Commit 3dc95b53 authored by shiyu's avatar shiyu

重构

parent 447e178a
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc; import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.admin.service.AdminService;
import com.wwdz.ch.admin.util.AdminResponseCode; import com.wwdz.ch.admin.util.AdminResponseCode;
import com.wwdz.ch.admin.util.AdminResponseUtil; import com.wwdz.ch.admin.util.AdminResponseUtil;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
...@@ -23,12 +19,9 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -23,12 +19,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.util.RegexUtil; import com.wwdz.ch.core.util.RegexUtil;
import com.wwdz.ch.core.util.ResponseUtil; import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.util.bcrypt.BCryptPasswordEncoder;
import com.wwdz.ch.core.validator.Order; import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.db.domain.Admin; import com.wwdz.ch.db.domain.Admin;
...@@ -41,6 +34,9 @@ public class AdminAdminController { ...@@ -41,6 +34,9 @@ public class AdminAdminController {
@Autowired @Autowired
private DtsAdminDao dtsAdminDao; private DtsAdminDao dtsAdminDao;
@Autowired
private AdminService adminService;
@RequiresPermissions("admin:admin:list") @RequiresPermissions("admin:admin:list")
@RequiresPermissionsDesc(menu = { "系统管理", "管理员管理" }, button = "查询") @RequiresPermissionsDesc(menu = { "系统管理", "管理员管理" }, button = "查询")
@GetMapping("/list") @GetMapping("/list")
...@@ -49,14 +45,13 @@ public class AdminAdminController { ...@@ -49,14 +45,13 @@ public class AdminAdminController {
@RequestParam(defaultValue = "add_time") String sort, @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->管理员管理->查询,请求参数:username:{},page:{}", username, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->管理员管理->查询,请求参数:username:{},page:{}", username, page);
Object data = null;
List<Admin> adminList = dtsAdminDao.querySelective(username, page, limit, sort, order); try {
long total = PageInfo.of(adminList).getTotal(); data = adminService.findList(username, page, limit, sort, order);
Map<String, Object> data = new HashMap<>(); } catch (Exception e) {
data.put("total", total); logger.error("管理员管理->查询 error :{}", e);
data.put("items", adminList); }
logger.info("【请求结束】系统管理->管理员管理->查询,响应结果:{}", data);
logger.info("【请求结束】系统管理->管理员管理->查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} }
...@@ -87,22 +82,7 @@ public class AdminAdminController { ...@@ -87,22 +82,7 @@ public class AdminAdminController {
if (error != null) { if (error != null) {
return error; return error;
} }
return adminService.create(admin);
String username = admin.getUsername();
List<Admin> adminList = dtsAdminDao.findAdmin(username);
if (adminList.size() > 0) {
logger.error("系统管理->管理员管理->添加 ,错误:{}", AdminResponseCode.ADMIN_NAME_EXIST.desc());
return AdminResponseUtil.fail(AdminResponseCode.ADMIN_NAME_EXIST);
}
String rawPassword = admin.getPassword();
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String encodedPassword = encoder.encode(rawPassword);
admin.setPassword(encodedPassword);
dtsAdminDao.add(admin);
logger.info("【请求结束】系统管理->管理员管理->添加,响应结果:{}", JSONObject.toJSONString(admin));
return ResponseUtil.ok(admin);
} }
@RequiresPermissions("admin:admin:read") @RequiresPermissions("admin:admin:read")
...@@ -110,9 +90,7 @@ public class AdminAdminController { ...@@ -110,9 +90,7 @@ public class AdminAdminController {
@GetMapping("/read") @GetMapping("/read")
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->管理员管理->详情,请求参数,id:{}", id); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->管理员管理->详情,请求参数,id:{}", id);
Admin admin = adminService.read(id);
Admin admin = dtsAdminDao.findById(id);
logger.info("【请求结束】系统管理->管理员管理->详情,响应结果:{}", JSONObject.toJSONString(admin)); logger.info("【请求结束】系统管理->管理员管理->详情,响应结果:{}", JSONObject.toJSONString(admin));
return ResponseUtil.ok(admin); return ResponseUtil.ok(admin);
} }
...@@ -127,24 +105,7 @@ public class AdminAdminController { ...@@ -127,24 +105,7 @@ public class AdminAdminController {
if (error != null) { if (error != null) {
return error; return error;
} }
return adminService.update(admin);
Integer anotherAdminId = admin.getId();
if (anotherAdminId == null) {
return ResponseUtil.badArgument();
}
String rawPassword = admin.getPassword();
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String encodedPassword = encoder.encode(rawPassword);
admin.setPassword(encodedPassword);
if (dtsAdminDao.updateById(admin) == 0) {
logger.error("系统管理->管理员管理-编辑 ,错误:{}", "更新数据失败!");
return ResponseUtil.updatedDataFailed();
}
logger.info("【请求结束】系统管理->管理员管理->编辑,响应结果:{}", JSONObject.toJSONString(admin));
return ResponseUtil.ok(admin);
} }
@RequiresPermissions("admin:admin:delete") @RequiresPermissions("admin:admin:delete")
...@@ -157,10 +118,6 @@ public class AdminAdminController { ...@@ -157,10 +118,6 @@ public class AdminAdminController {
if (anotherAdminId == null) { if (anotherAdminId == null) {
return ResponseUtil.badArgument(); return ResponseUtil.badArgument();
} }
return adminService.deleteById(anotherAdminId);
dtsAdminDao.deleteById(anotherAdminId);
logger.info("【请求结束】系统管理->管理员管理->删除 成功!");
return ResponseUtil.ok();
} }
} }
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import com.wwdz.ch.admin.entity.request.LoginRequestDto; import com.wwdz.ch.admin.entity.request.LoginRequestDto;
import com.wwdz.ch.db.dao.dts.DtsPermissionDao; import com.wwdz.ch.admin.service.AdminAuthService;
import com.wwdz.ch.db.dao.dts.DtsRoleDao;
import com.xxdxxs.utils.JsonUtils; import com.xxdxxs.utils.JsonUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationException;
...@@ -25,7 +16,6 @@ import org.apache.shiro.subject.Subject; ...@@ -25,7 +16,6 @@ import org.apache.shiro.subject.Subject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -36,14 +26,9 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -36,14 +26,9 @@ import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.wwdz.ch.admin.util.AdminResponseCode; import com.wwdz.ch.admin.util.AdminResponseCode;
import com.wwdz.ch.admin.util.AdminResponseUtil; import com.wwdz.ch.admin.util.AdminResponseUtil;
import com.wwdz.ch.admin.util.Permission;
import com.wwdz.ch.admin.util.PermissionUtil;
import com.wwdz.ch.admin.util.VerifyCodeUtils;
import com.wwdz.ch.core.captcha.CaptchaCodeManager; import com.wwdz.ch.core.captcha.CaptchaCodeManager;
import com.wwdz.ch.core.util.Base64;
import com.wwdz.ch.core.util.ResponseUtil; import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.util.UUID;
import com.wwdz.ch.db.domain.Admin;
@RestController @RestController
@RequestMapping("/admin/auth") @RequestMapping("/admin/auth")
...@@ -52,10 +37,7 @@ public class AdminAuthController { ...@@ -52,10 +37,7 @@ public class AdminAuthController {
private static final Logger logger = LoggerFactory.getLogger(AdminAuthController.class); private static final Logger logger = LoggerFactory.getLogger(AdminAuthController.class);
@Autowired @Autowired
private DtsRoleDao dtsRoleDao; private AdminAuthService adminAuthService;
@Autowired
private DtsPermissionDao dtsPermissionDao;
/* /*
* { username : value, password : value } * { username : value, password : value }
...@@ -119,90 +101,17 @@ public class AdminAuthController { ...@@ -119,90 +101,17 @@ public class AdminAuthController {
@RequiresAuthentication @RequiresAuthentication
@GetMapping("/info") @GetMapping("/info")
public Object info() { public Object info() {
try { return adminAuthService.info();
Subject currentUser = SecurityUtils.getSubject();
Admin admin = (Admin) currentUser.getPrincipal();
Map<String, Object> data = new HashMap<>();
data.put("name", admin.getUsername());
data.put("avatar", admin.getAvatar());
Integer[] roleIds = admin.getRoleIds();
Set<String> roles = dtsRoleDao.queryByIds(roleIds);
Set<String> permissions = dtsPermissionDao.queryByRoleIds(roleIds);
data.put("roles", roles);
// NOTE
// 这里需要转换perms结构,因为对于前端而已API形式的权限更容易理解
data.put("perms", toAPI(permissions));
logger.info("【请求结束】系统管理->用户信息获取,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("用户信息获取 error{}", e);
}
return ResponseUtil.fail();
}
@Autowired
private ApplicationContext context;
private HashMap<String, String> systemPermissionsMap = null;
private Collection<String> toAPI(Set<String> permissions) {
if (systemPermissionsMap == null) {
systemPermissionsMap = new HashMap<>();
final String basicPackage = "com.wwdz.ch.admin";
List<Permission> systemPermissions = PermissionUtil.listPermission(context, basicPackage);
for (Permission permission : systemPermissions) {
String perm = permission.getRequiresPermissions().value()[0];
String api = permission.getApi();
systemPermissionsMap.put(perm, api);
}
} }
Collection<String> apis = new HashSet<>();
for (String perm : permissions) {
String api = systemPermissionsMap.get(perm);
apis.add(api);
if (perm.equals("*")) {
apis.clear();
apis.add("*");
return apis;
// return systemPermissionsMap.values();
}
}
return apis;
}
/** /**
* 生成验证码 * 生成验证码
*/ */
@GetMapping("/captchaImage") @GetMapping("/captchaImage")
public Object getCode(HttpServletResponse response) throws IOException { public Object getCode(HttpServletResponse response) {
// 生成随机字串 return adminAuthService.getCode();
String verifyCode = VerifyCodeUtils.generateVerifyCode(4);
// 唯一标识
String uuid = UUID.randomUUID().toString(true);
boolean successful = CaptchaCodeManager.addToCache(uuid, verifyCode,10);//存储内存
if (!successful) {
logger.error("请求验证码出错:{}", AdminResponseCode.AUTH_CAPTCHA_FREQUENCY.desc());
return AdminResponseUtil.fail(AdminResponseCode.AUTH_CAPTCHA_FREQUENCY);
}
// 生成图片
int w = 111, h = 36;
ByteArrayOutputStream stream = new ByteArrayOutputStream();
VerifyCodeUtils.outputImage(w, h, stream, verifyCode);
try {
Map<String, Object> data = new HashMap<>();
data.put("uuid", uuid);
data.put("img", Base64.encode(stream.toByteArray()));
return ResponseUtil.ok(data);
} catch (Exception e){
e.printStackTrace();
return ResponseUtil.serious();
} finally {
stream.close();
}
} }
@GetMapping("/401") @GetMapping("/401")
......
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc; import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.admin.service.AdminCollectService;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.dao.dts.DtsCollectDao; import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -17,13 +17,6 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -17,13 +17,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort;
import com.wwdz.ch.db.domain.CollectObsolete;
@RestController @RestController
@RequestMapping("/admin/collect") @RequestMapping("/admin/collect")
@Validated @Validated
...@@ -31,24 +24,23 @@ public class AdminCollectController { ...@@ -31,24 +24,23 @@ public class AdminCollectController {
private static final Logger logger = LoggerFactory.getLogger(AdminCollectController.class); private static final Logger logger = LoggerFactory.getLogger(AdminCollectController.class);
@Autowired @Autowired
private DtsCollectDao dtsCollectDao; private AdminCollectService adminCollectService;
@RequiresPermissions("admin:collect:list") @RequiresPermissions("admin:collect:list")
@RequiresPermissionsDesc(menu = { "用户管理", "用户收藏" }, button = "查询") @RequiresPermissionsDesc(menu = {"用户管理", "用户收藏"}, button = "查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String userId, String valueId, @RequestParam(defaultValue = "1") Integer page, public Object list(String userId, String valueId, @RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer limit, @RequestParam(defaultValue = "10") Integer limit,
@Sort @RequestParam(defaultValue = "add_time") String sort, @Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->用户收藏->查询,请求参数:userId:{},page:{}", userId, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName() + "] 用户管理->用户收藏->查询,请求参数:userId:{},page:{}", userId, page);
try {
List<CollectObsolete> collectList = dtsCollectDao.querySelective(userId, valueId, page, limit, sort, order); Object data = adminCollectService.findList(userId, valueId, page, limit, sort, order);
long total = PageInfo.of(collectList).getTotal(); logger.info("【请求结束】用户管理->用户收藏->查询:total:{}", data);
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", collectList);
logger.info("【请求结束】用户管理->用户收藏->查询:total:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("用户管理->用户收藏->查询 error :{}", e);
}
return ResponseUtil.fail();
} }
} }
...@@ -8,12 +8,10 @@ import java.util.HashSet; ...@@ -8,12 +8,10 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import com.wwdz.ch.admin.entity.vo.OrderAmtsVo; import com.wwdz.ch.admin.entity.vo.OrderAmtsVo;
import com.wwdz.ch.admin.entity.vo.UserOrderCntVo; import com.wwdz.ch.admin.entity.vo.UserOrderCntVo;
import com.wwdz.ch.admin.service.AdminDashbordService;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.dao.dts.DtsGoodsProductDao;
import com.wwdz.ch.db.dao.dts.DtsUserDao; import com.wwdz.ch.db.dao.dts.DtsUserDao;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -22,7 +20,6 @@ import org.springframework.validation.annotation.Validated; ...@@ -22,7 +20,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.wwdz.ch.core.util.ResponseUtil; import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.bean.DayStatis; import com.wwdz.ch.db.bean.DayStatis;
...@@ -38,26 +35,21 @@ public class AdminDashbordController { ...@@ -38,26 +35,21 @@ public class AdminDashbordController {
@Autowired @Autowired
private DtsUserDao userService; private DtsUserDao userService;
@Autowired
private ItemDao itemDao;
@Autowired @Autowired
private DtsGoodsProductDao productService; AdminDashbordService adminDashbordService;
@GetMapping("") @GetMapping("")
public Object info() { public Object info() {
logger.info("【请求开始】操作人:[" + AuthSupport.userName() + "] 系统管理->首页仪表盘查询"); logger.info("【请求开始】操作人:[" + AuthSupport.userName() + "] 系统管理->首页仪表盘查询");
try {
int userTotal = userService.count(); Object data = adminDashbordService.info();
int goodsTotal = itemDao.count(); logger.info("【请求结束】系统管理->首页仪表盘查询:响应结果:{}", data);
// int productTotal = productService.count();
Map<String, Integer> data = new HashMap<>();
data.put("userTotal", userTotal);
data.put("goodsTotal", goodsTotal);
// data.put("productTotal", productTotal);
logger.info("【请求结束】系统管理->首页仪表盘查询:响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("系统管理->首页仪表盘查询 error : {}", e);
}
return ResponseUtil.fail();
} }
@GetMapping("/chart") @GetMapping("/chart")
...@@ -68,7 +60,6 @@ public class AdminDashbordController { ...@@ -68,7 +60,6 @@ public class AdminDashbordController {
UserOrderCntVo userOrderCnt = new UserOrderCntVo(); UserOrderCntVo userOrderCnt = new UserOrderCntVo();
List<DayStatis> userCnts = userService.recentCount(STATIS_DAYS_RANG); List<DayStatis> userCnts = userService.recentCount(STATIS_DAYS_RANG);
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
data.put("userOrderCnt", userOrderCnt); data.put("userOrderCnt", userOrderCnt);
......
...@@ -5,6 +5,7 @@ import java.util.List; ...@@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc; import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.admin.service.AdminFeedbackService;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.dao.dts.DtsFeedbackDao; import com.wwdz.ch.db.dao.dts.DtsFeedbackDao;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
...@@ -36,7 +37,7 @@ public class AdminFeedbackController { ...@@ -36,7 +37,7 @@ public class AdminFeedbackController {
private static final Logger logger = LoggerFactory.getLogger(AdminFeedbackController.class); private static final Logger logger = LoggerFactory.getLogger(AdminFeedbackController.class);
@Autowired @Autowired
private DtsFeedbackDao dtsFeedbackDao; AdminFeedbackService adminFeedbackService;
@RequiresPermissions("admin:feedback:list") @RequiresPermissions("admin:feedback:list")
@RequiresPermissionsDesc(menu = { "用户管理", "意见反馈" }, button = "查询") @RequiresPermissionsDesc(menu = { "用户管理", "意见反馈" }, button = "查询")
...@@ -47,13 +48,13 @@ public class AdminFeedbackController { ...@@ -47,13 +48,13 @@ public class AdminFeedbackController {
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->意见反馈->查询,请求参数:userId:{},username:{},page:{}", userId, username, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->意见反馈->查询,请求参数:userId:{},username:{},page:{}", userId, username, page);
List<Feedback> feedbackList = dtsFeedbackDao.querySelective(userId, username, page, limit, sort, order); try {
long total = PageInfo.of(feedbackList).getTotal(); Object data = adminFeedbackService.findList(userId, username, page, limit, sort, order);
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", feedbackList);
logger.info("【请求结束】用户管理->意见反馈->查询,响应结果:{}", JSONObject.toJSONString(data)); logger.info("【请求结束】用户管理->意见反馈->查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("用户管理->意见反馈->查询 error :{}", e);
}
return ResponseUtil.fail();
} }
} }
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc; import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.admin.service.AdminFootprintService;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.dao.dts.DtsFootprintDao;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -16,13 +12,10 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -16,13 +12,10 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.util.ResponseUtil; import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order; import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort; import com.wwdz.ch.core.validator.Sort;
import com.wwdz.ch.db.domain.Footprint;
@RestController @RestController
@RequestMapping("/admin/footprint") @RequestMapping("/admin/footprint")
...@@ -31,7 +24,7 @@ public class AdminFootprintController { ...@@ -31,7 +24,7 @@ public class AdminFootprintController {
private static final Logger logger = LoggerFactory.getLogger(AdminFootprintController.class); private static final Logger logger = LoggerFactory.getLogger(AdminFootprintController.class);
@Autowired @Autowired
private DtsFootprintDao dtsFootprintDao; private AdminFootprintService adminFootprintService;
@RequiresPermissions("admin:footprint:list") @RequiresPermissions("admin:footprint:list")
@RequiresPermissionsDesc(menu = { "用户管理", "用户足迹" }, button = "查询") @RequiresPermissionsDesc(menu = { "用户管理", "用户足迹" }, button = "查询")
...@@ -41,14 +34,13 @@ public class AdminFootprintController { ...@@ -41,14 +34,13 @@ public class AdminFootprintController {
@Sort @RequestParam(defaultValue = "add_time") String sort, @Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->用户足迹->查询,请求参数:userId:{},goodsId:{},page:{}", userId, goodsId, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->用户足迹->查询,请求参数:userId:{},goodsId:{},page:{}", userId, goodsId, page);
try {
List<Footprint> footprintList = dtsFootprintDao.querySelective(userId, goodsId, page, limit, sort, order); Object data = adminFootprintService.findList(userId, goodsId, page, limit, sort, order);
long total = PageInfo.of(footprintList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", footprintList);
logger.info("【请求结束】用户管理->用户足迹->查询,响应结果:{}", JSONObject.toJSONString(data)); logger.info("【请求结束】用户管理->用户足迹->查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("用户管理->用户足迹->查询 error :{}", e);
}
return ResponseUtil.fail();
} }
} }
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import java.util.HashMap; import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.Map;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc; import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.admin.service.AdminHistoryService;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.dao.dts.DtsSearchHistoryDao; import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -16,20 +16,13 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -16,20 +16,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort;
import com.wwdz.ch.db.domain.SearchHistory;
@RestController @RestController
@RequestMapping("/admin/history") @RequestMapping("/admin/history")
public class AdminHistoryController { public class AdminHistoryController {
private static final Logger logger = LoggerFactory.getLogger(AdminHistoryController.class); private static final Logger logger = LoggerFactory.getLogger(AdminHistoryController.class);
@Autowired @Autowired
private DtsSearchHistoryDao dtsSearchHistoryDao; private AdminHistoryService adminHistoryService;
@RequiresPermissions("admin:history:list") @RequiresPermissions("admin:history:list")
@RequiresPermissionsDesc(menu = { "用户管理", "搜索历史" }, button = "查询") @RequiresPermissionsDesc(menu = { "用户管理", "搜索历史" }, button = "查询")
...@@ -39,15 +32,13 @@ public class AdminHistoryController { ...@@ -39,15 +32,13 @@ public class AdminHistoryController {
@Sort @RequestParam(defaultValue = "add_time") String sort, @Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->搜索历史->查询,请求参数:userId:{},keyword:{},page:{}", userId, keyword, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->搜索历史->查询,请求参数:userId:{},keyword:{},page:{}", userId, keyword, page);
try {
List<SearchHistory> footprintList = dtsSearchHistoryDao.querySelective(userId, keyword, page, limit, sort, Object data = adminHistoryService.findList(userId, keyword, page, limit, sort, order);
order);
long total = PageInfo.of(footprintList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", footprintList);
logger.info("【请求结束】用户管理->搜索历史->查询,响应结果:{}", JSONObject.toJSONString(data)); logger.info("【请求结束】用户管理->搜索历史->查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("用户管理->搜索历史->查询 error:{}", e);
}
return ResponseUtil.fail();
} }
} }
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import java.util.HashMap; import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotNull;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc; import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.admin.service.AdminIssueService;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.dao.dts.DtsIssueDao; import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort;
import com.wwdz.ch.db.domain.Issue;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping; import javax.validation.constraints.NotNull;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort;
import com.wwdz.ch.db.domain.Issue;
@RestController @RestController
@RequestMapping("/admin/issue") @RequestMapping("/admin/issue")
...@@ -36,7 +24,7 @@ public class AdminIssueController { ...@@ -36,7 +24,7 @@ public class AdminIssueController {
private static final Logger logger = LoggerFactory.getLogger(AdminIssueController.class); private static final Logger logger = LoggerFactory.getLogger(AdminIssueController.class);
@Autowired @Autowired
private DtsIssueDao dtsIssueDao; private AdminIssueService adminIssueService;
@RequiresPermissions("admin:issue:list") @RequiresPermissions("admin:issue:list")
@RequiresPermissionsDesc(menu = { "商场管理", "通用问题" }, button = "查询") @RequiresPermissionsDesc(menu = { "商场管理", "通用问题" }, button = "查询")
...@@ -46,15 +34,14 @@ public class AdminIssueController { ...@@ -46,15 +34,14 @@ public class AdminIssueController {
@Sort @RequestParam(defaultValue = "add_time") String sort, @Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 商场管理->通用问题->查询,请求参数:question:{},page:{}", question, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 商场管理->通用问题->查询,请求参数:question:{},page:{}", question, page);
try {
List<Issue> issueList = dtsIssueDao.querySelective(question, page, limit, sort, order); Object data = adminIssueService.findList(question, page, limit, sort, order);
long total = PageInfo.of(issueList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", issueList);
logger.info("【请求结束】商场管理->通用问题->查询,响应结果:{}", JSONObject.toJSONString(data)); logger.info("【请求结束】商场管理->通用问题->查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("商场管理->通用问题->查询 error :{}", e);
}
return ResponseUtil.fail();
} }
private Object validate(Issue issue) { private Object validate(Issue issue) {
...@@ -79,21 +66,21 @@ public class AdminIssueController { ...@@ -79,21 +66,21 @@ public class AdminIssueController {
if (error != null) { if (error != null) {
return error; return error;
} }
dtsIssueDao.add(issue); return adminIssueService.create(issue);
logger.info("【请求结束】商场管理->通用问题->查询,响应结果:{}", JSONObject.toJSONString(issue));
return ResponseUtil.ok(issue);
} }
@RequiresPermissions("admin:issue:read") @RequiresPermissions("admin:issue:read")
@GetMapping("/read") @GetMapping("/read")
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 商场管理->通用问题->详情,请求参数,id:{}", id); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 商场管理->通用问题->详情,请求参数,id:{}", id);
try {
Issue issue = dtsIssueDao.findById(id); Issue issue = adminIssueService.read(id);
logger.info("【请求结束】商场管理->通用问题->详情,响应结果:{}", JSONObject.toJSONString(issue)); logger.info("【请求结束】商场管理->通用问题->详情,响应结果:{}", JSONObject.toJSONString(issue));
return ResponseUtil.ok(issue); return ResponseUtil.ok(issue);
} catch (Exception e) {
logger.error("商场管理->通用问题->详情 error :{}",e);
}
return ResponseUtil.fail();
} }
@RequiresPermissions("admin:issue:update") @RequiresPermissions("admin:issue:update")
...@@ -106,13 +93,7 @@ public class AdminIssueController { ...@@ -106,13 +93,7 @@ public class AdminIssueController {
if (error != null) { if (error != null) {
return error; return error;
} }
if (dtsIssueDao.updateById(issue) == 0) { return adminIssueService.update(issue);
logger.error("商场管理->通用问题->编辑 失败:{}", "更新数据失败!");
return ResponseUtil.updatedDataFailed();
}
logger.info("【请求结束】商场管理->通用问题->编辑,响应结果:{}", JSONObject.toJSONString(issue));
return ResponseUtil.ok(issue);
} }
@RequiresPermissions("admin:issue:delete") @RequiresPermissions("admin:issue:delete")
...@@ -125,10 +106,7 @@ public class AdminIssueController { ...@@ -125,10 +106,7 @@ public class AdminIssueController {
if (id == null) { if (id == null) {
return ResponseUtil.badArgument(); return ResponseUtil.badArgument();
} }
dtsIssueDao.deleteById(id); return adminIssueService.deleteById(id);
logger.info("【请求结束】商场管理->通用问题->删除,响应结果:{}", "成功!");
return ResponseUtil.ok();
} }
} }
...@@ -6,6 +6,8 @@ import java.util.Map; ...@@ -6,6 +6,8 @@ import java.util.Map;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import com.sun.corba.se.spi.ior.ObjectKey;
import com.wwdz.ch.admin.service.AdminKeywordService;
import com.wwdz.ch.db.dao.dts.DtsKeywordDao; import com.wwdz.ch.db.dao.dts.DtsKeywordDao;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -36,7 +38,7 @@ public class AdminKeywordController { ...@@ -36,7 +38,7 @@ public class AdminKeywordController {
private static final Logger logger = LoggerFactory.getLogger(AdminKeywordController.class); private static final Logger logger = LoggerFactory.getLogger(AdminKeywordController.class);
@Autowired @Autowired
private DtsKeywordDao dtsKeywordDao; private AdminKeywordService adminKeywordService;
@RequiresPermissions("admin:keyword:list") @RequiresPermissions("admin:keyword:list")
@RequiresPermissionsDesc(menu = { "商场管理", "关键词" }, button = "查询") @RequiresPermissionsDesc(menu = { "商场管理", "关键词" }, button = "查询")
...@@ -46,15 +48,14 @@ public class AdminKeywordController { ...@@ -46,15 +48,14 @@ public class AdminKeywordController {
@Sort @RequestParam(defaultValue = "add_time") String sort, @Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 商场管理->关键词->查询,请求参数:keyword:{},url:{},page:{}", keyword, url, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 商场管理->关键词->查询,请求参数:keyword:{},url:{},page:{}", keyword, url, page);
try {
List<Keyword> brandList = dtsKeywordDao.querySelective(keyword, url, page, limit, sort, order); Object data = adminKeywordService.findList(keyword, url, page, limit, sort, order);
long total = PageInfo.of(brandList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", brandList);
logger.info("【请求结束】商场管理->关键词->查询,响应结果:{}", JSONObject.toJSONString(data)); logger.info("【请求结束】商场管理->关键词->查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("商场管理->关键词->查询 error:{}", e);
}
return ResponseUtil.fail();
} }
private Object validate(Keyword keywords) { private Object validate(Keyword keywords) {
...@@ -78,9 +79,7 @@ public class AdminKeywordController { ...@@ -78,9 +79,7 @@ public class AdminKeywordController {
if (error != null) { if (error != null) {
return error; return error;
} }
dtsKeywordDao.add(keywords); return adminKeywordService.create(keywords);
logger.info("【请求结束】商场管理->关键词->添加,响应结果:{}", JSONObject.toJSONString(keywords));
return ResponseUtil.ok(keywords);
} }
@RequiresPermissions("admin:keyword:read") @RequiresPermissions("admin:keyword:read")
...@@ -88,9 +87,7 @@ public class AdminKeywordController { ...@@ -88,9 +87,7 @@ public class AdminKeywordController {
@GetMapping("/read") @GetMapping("/read")
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 商场管理->关键词->详情,请求参数,id:{}", id); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 商场管理->关键词->详情,请求参数,id:{}", id);
Keyword keywords = adminKeywordService.read(id);
Keyword keywords = dtsKeywordDao.findById(id);
logger.info("【请求结束】商场管理->关键词->详情,响应结果:{}", JSONObject.toJSONString(keywords)); logger.info("【请求结束】商场管理->关键词->详情,响应结果:{}", JSONObject.toJSONString(keywords));
return ResponseUtil.ok(keywords); return ResponseUtil.ok(keywords);
} }
...@@ -105,13 +102,7 @@ public class AdminKeywordController { ...@@ -105,13 +102,7 @@ public class AdminKeywordController {
if (error != null) { if (error != null) {
return error; return error;
} }
if (dtsKeywordDao.updateById(keywords) == 0) { return adminKeywordService.updateById(keywords);
logger.info("商场管理->关键词->编辑 错误:{}", "更新数据失败!");
return ResponseUtil.updatedDataFailed();
}
logger.info("【请求结束】商场管理->关键词->编辑,响应结果:{}", JSONObject.toJSONString(keywords));
return ResponseUtil.ok(keywords);
} }
@RequiresPermissions("admin:keyword:delete") @RequiresPermissions("admin:keyword:delete")
...@@ -124,10 +115,7 @@ public class AdminKeywordController { ...@@ -124,10 +115,7 @@ public class AdminKeywordController {
if (id == null) { if (id == null) {
return ResponseUtil.badArgument(); return ResponseUtil.badArgument();
} }
dtsKeywordDao.deleteById(id); return adminKeywordService.deleteById(id);
logger.info("【请求结束】商场管理->关键词->删除,响应结果:{}", "成功!");
return ResponseUtil.ok();
} }
} }
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import com.wwdz.ch.admin.service.AdminService;
import com.wwdz.ch.admin.util.AdminResponseCode; import com.wwdz.ch.admin.util.AdminResponseCode;
import com.wwdz.ch.admin.util.AdminResponseUtil; import com.wwdz.ch.admin.util.AdminResponseUtil;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
...@@ -29,7 +30,7 @@ public class AdminProfileController { ...@@ -29,7 +30,7 @@ public class AdminProfileController {
private static final Logger logger = LoggerFactory.getLogger(AdminProfileController.class); private static final Logger logger = LoggerFactory.getLogger(AdminProfileController.class);
@Autowired @Autowired
private DtsAdminDao dtsAdminDao; private AdminService adminService;
@RequiresAuthentication @RequiresAuthentication
@PostMapping("/password") @PostMapping("/password")
...@@ -57,7 +58,7 @@ public class AdminProfileController { ...@@ -57,7 +58,7 @@ public class AdminProfileController {
String encodedNewPassword = encoder.encode(newPassword); String encodedNewPassword = encoder.encode(newPassword);
admin.setPassword(encodedNewPassword); admin.setPassword(encodedNewPassword);
dtsAdminDao.updateById(admin); adminService.updateById(admin);
logger.info("【请求结束】系统管理->修改密码,响应结果:{}", "成功!"); logger.info("【请求结束】系统管理->修改密码,响应结果:{}", "成功!");
return ResponseUtil.ok(); return ResponseUtil.ok();
......
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import java.util.ArrayList; import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.validation.constraints.NotNull;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc; import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.db.dao.dts.DtsPermissionDao; import com.wwdz.ch.admin.service.AdminRoleService;
import com.wwdz.ch.db.dao.dts.DtsRoleDao; import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.admin.util.PermVo;
import com.wwdz.ch.core.util.JacksonUtil;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.db.domain.Role; import com.wwdz.ch.db.domain.Role;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping; import javax.validation.constraints.NotNull;
import org.springframework.web.bind.annotation.RequestBody; import java.util.HashMap;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.List;
import org.springframework.web.bind.annotation.RequestParam; import java.util.Map;
import org.springframework.web.bind.annotation.RestController; import java.util.Set;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.util.AdminResponseCode;
import com.wwdz.ch.admin.util.AdminResponseUtil;
import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.admin.util.PermVo;
import com.wwdz.ch.admin.util.PermissionUtil;
import com.wwdz.ch.core.util.JacksonUtil;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.db.domain.Permission;
@RestController @RestController
@RequestMapping("/admin/role") @RequestMapping("/admin/role")
...@@ -45,10 +29,9 @@ public class AdminRoleController { ...@@ -45,10 +29,9 @@ public class AdminRoleController {
private static final Logger logger = LoggerFactory.getLogger(AdminRoleController.class); private static final Logger logger = LoggerFactory.getLogger(AdminRoleController.class);
@Autowired @Autowired
private DtsRoleDao dtsRoleDao; private AdminRoleService adminRoleService;
@Autowired
private DtsPermissionDao dtsPermissionDao;
@RequiresPermissions("admin:role:list") @RequiresPermissions("admin:role:list")
@RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "角色查询") @RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "角色查询")
...@@ -58,32 +41,19 @@ public class AdminRoleController { ...@@ -58,32 +41,19 @@ public class AdminRoleController {
@RequestParam(defaultValue = "add_time") String sort, @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->角色查询,请求参数,name:{},page:{}", name, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->角色查询,请求参数,name:{},page:{}", name, page);
try {
List<Role> roleList = dtsRoleDao.querySelective(name, page, limit, sort, order); Object data = adminRoleService.findList(name, page, limit, sort, order);
long total = PageInfo.of(roleList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", roleList);
logger.info("【请求结束】系统管理->角色管理->角色查询,响应结果:{}", JSONObject.toJSONString(data)); logger.info("【请求结束】系统管理->角色管理->角色查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e){
logger.error("系统管理->角色管理->角色查询 error:{}", e);
}
return ResponseUtil.fail();
} }
@GetMapping("/options") @GetMapping("/options")
public Object options() { public Object options() {
List<Role> roleList = dtsRoleDao.queryAll(); return adminRoleService.options();
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->查询所有角色");
List<Map<String, Object>> options = new ArrayList<>(roleList.size());
for (Role role : roleList) {
Map<String, Object> option = new HashMap<>(2);
option.put("value", role.getId());
option.put("label", role.getName());
options.add(option);
}
logger.info("【请求结束】系统管理->角色管理->查询所有角色,响应结果:{}", JSONObject.toJSONString(options));
return ResponseUtil.ok(options);
} }
@RequiresPermissions("admin:role:read") @RequiresPermissions("admin:role:read")
...@@ -92,10 +62,7 @@ public class AdminRoleController { ...@@ -92,10 +62,7 @@ public class AdminRoleController {
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->角色详情,请求参数,id:{}", id); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->角色详情,请求参数,id:{}", id);
Role role = dtsRoleDao.findById(id); return adminRoleService.read(id);
logger.info("【请求结束】系统管理->角色管理->角色详情,响应结果:{}", JSONObject.toJSONString(role));
return ResponseUtil.ok(role);
} }
private Object validate(Role role) { private Object validate(Role role) {
...@@ -117,16 +84,7 @@ public class AdminRoleController { ...@@ -117,16 +84,7 @@ public class AdminRoleController {
if (error != null) { if (error != null) {
return error; return error;
} }
return adminRoleService.create(role);
if (dtsRoleDao.checkExist(role.getName())) {
logger.info("系统管理->角色管理->角色添加错误:{}", AdminResponseCode.ROLE_NAME_EXIST.desc());
return AdminResponseUtil.fail(AdminResponseCode.ROLE_NAME_EXIST);
}
dtsRoleDao.add(role);
logger.info("【请求结束】系统管理->角色管理->角色添加,响应结果:{}", JSONObject.toJSONString(role));
return ResponseUtil.ok(role);
} }
@RequiresPermissions("admin:role:update") @RequiresPermissions("admin:role:update")
...@@ -139,10 +97,7 @@ public class AdminRoleController { ...@@ -139,10 +97,7 @@ public class AdminRoleController {
if (error != null) { if (error != null) {
return error; return error;
} }
return adminRoleService.update(role);
dtsRoleDao.updateById(role);
logger.info("【请求结束】系统管理->角色管理->角色编辑,响应结果:{}", "成功!");
return ResponseUtil.ok();
} }
@RequiresPermissions("admin:role:delete") @RequiresPermissions("admin:role:delete")
...@@ -155,40 +110,11 @@ public class AdminRoleController { ...@@ -155,40 +110,11 @@ public class AdminRoleController {
if (id == null) { if (id == null) {
return ResponseUtil.badArgument(); return ResponseUtil.badArgument();
} }
dtsRoleDao.deleteById(id); return adminRoleService.delete(role);
logger.info("【请求结束】系统管理->角色管理->角色删除,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
@Autowired
private ApplicationContext context;
private List<PermVo> systemPermissions = null;
private Set<String> systemPermissionsString = null;
private List<PermVo> getSystemPermissions() {
final String basicPackage = "com.wwdz.ch.admin";
if (systemPermissions == null) {
List<com.wwdz.ch.admin.util.Permission> permissions = PermissionUtil.listPermission(context, basicPackage);
systemPermissions = PermissionUtil.listPermVo(permissions);
systemPermissionsString = PermissionUtil.listPermissionString(permissions);
}
return systemPermissions;
} }
private Set<String> getAssignedPermissions(Integer roleId) {
// 这里需要注意的是,如果存在超级权限*,那么这里需要转化成当前所有系统权限。
// 之所以这么做,是因为前端不能识别超级权限,所以这里需要转换一下。
Set<String> assignedPermissions = null;
if (dtsPermissionDao.checkSuperPermission(roleId)) {
getSystemPermissions();
assignedPermissions = systemPermissionsString;
} else {
assignedPermissions = dtsPermissionDao.queryByRoleId(roleId);
}
return assignedPermissions;
}
/** /**
* 管理员的权限情况 * 管理员的权限情况
...@@ -201,8 +127,8 @@ public class AdminRoleController { ...@@ -201,8 +127,8 @@ public class AdminRoleController {
public Object getPermissions(Integer roleId) { public Object getPermissions(Integer roleId) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->权限详情,请求参数,roleId:{}", roleId); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->权限详情,请求参数,roleId:{}", roleId);
List<PermVo> systemPermissions = getSystemPermissions(); List<PermVo> systemPermissions = adminRoleService.getSystemPermissions();
Set<String> assignedPermissions = getAssignedPermissions(roleId); Set<String> assignedPermissions = adminRoleService.getAssignedPermissions(roleId);
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
data.put("systemPermissions", systemPermissions); data.put("systemPermissions", systemPermissions);
...@@ -229,24 +155,7 @@ public class AdminRoleController { ...@@ -229,24 +155,7 @@ public class AdminRoleController {
if (roleId == null || permissions == null) { if (roleId == null || permissions == null) {
return ResponseUtil.badArgument(); return ResponseUtil.badArgument();
} }
return adminRoleService.updatePermissions(body);
// 如果修改的角色是超级权限,则拒绝修改。
if (dtsPermissionDao.checkSuperPermission(roleId)) {
logger.error("系统管理->角色管理->权限变更 错误:{}", AdminResponseCode.ROLE_SUPER_SUPERMISSION.desc());
return AdminResponseUtil.fail(AdminResponseCode.ROLE_SUPER_SUPERMISSION);
}
// 先删除旧的权限,再更新新的权限
dtsPermissionDao.deleteByRoleId(roleId);
for (String permission : permissions) {
Permission permission1 = new Permission();
permission1.setRoleId(roleId);
permission1.setPermission(permission);
dtsPermissionDao.add(permission1);
}
logger.info("【请求结束】系统管理->角色管理->权限变更,响应结果:{}", "成功!");
return ResponseUtil.ok();
} }
} }
package com.wwdz.ch.admin.controller; package com.wwdz.ch.admin.controller;
import java.util.HashMap; import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.Map;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc; import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.admin.service.AdminUserService;
import com.wwdz.ch.admin.util.AuthSupport; import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.dao.dts.DtsUserDao; import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -17,13 +17,6 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -17,13 +17,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.validator.Order;
import com.wwdz.ch.core.validator.Sort;
import com.wwdz.ch.db.domain.User;
@RestController @RestController
@RequestMapping("/admin/user") @RequestMapping("/admin/user")
@Validated @Validated
...@@ -31,7 +24,8 @@ public class AdminUserController { ...@@ -31,7 +24,8 @@ public class AdminUserController {
private static final Logger logger = LoggerFactory.getLogger(AdminUserController.class); private static final Logger logger = LoggerFactory.getLogger(AdminUserController.class);
@Autowired @Autowired
private DtsUserDao dtsUserDao; private AdminUserService adminUserService;
@RequiresPermissions("admin:user:list") @RequiresPermissions("admin:user:list")
@RequiresPermissionsDesc(menu = { "用户管理", "会员管理" }, button = "查询") @RequiresPermissionsDesc(menu = { "用户管理", "会员管理" }, button = "查询")
...@@ -41,15 +35,14 @@ public class AdminUserController { ...@@ -41,15 +35,14 @@ public class AdminUserController {
@Sort @RequestParam(defaultValue = "add_time") String sort, @Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) { @Order @RequestParam(defaultValue = "desc") String order) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->会员管理->查询,请求参数,username:{},code:{},page:{}", username, mobile, page); logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 用户管理->会员管理->查询,请求参数,username:{},code:{},page:{}", username, mobile, page);
try {
List<User> userList = dtsUserDao.querySelective(username, mobile, page, limit, sort, order); Object data = adminUserService.findList(username, mobile, page, limit, sort, order);
long total = PageInfo.of(userList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", userList);
logger.info("【请求结束】用户管理->会员管理->查询:响应结果:{}", JSONObject.toJSONString(data)); logger.info("【请求结束】用户管理->会员管理->查询:响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("用户管理->会员管理->查询 error:{]",e);
}
return ResponseUtil.fail();
} }
} }
package com.wwdz.ch.admin.impl;
import com.alibaba.fastjson.JSONObject;
import com.wwdz.ch.admin.controller.AdminAuthController;
import com.wwdz.ch.admin.service.AdminAuthService;
import com.wwdz.ch.admin.util.*;
import com.wwdz.ch.core.captcha.CaptchaCodeManager;
import com.wwdz.ch.core.util.Base64;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.util.UUID;
import com.wwdz.ch.db.dao.dts.DtsPermissionDao;
import com.wwdz.ch.db.dao.dts.DtsRoleDao;
import com.wwdz.ch.db.domain.Admin;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.*;
@Service
public class AdminAuthServiceImpl implements AdminAuthService {
private static final Logger logger = LoggerFactory.getLogger(AdminAuthServiceImpl.class);
private HashMap<String, String> systemPermissionsMap = null;
@Autowired
private DtsRoleDao dtsRoleDao;
@Autowired
private DtsPermissionDao dtsPermissionDao;
@Autowired
private ApplicationContext context;
@Override
public Object info() {
try {
Subject currentUser = SecurityUtils.getSubject();
Admin admin = (Admin) currentUser.getPrincipal();
Map<String, Object> data = new HashMap<>();
data.put("name", admin.getUsername());
data.put("avatar", admin.getAvatar());
Integer[] roleIds = admin.getRoleIds();
Set<String> roles = dtsRoleDao.queryByIds(roleIds);
Set<String> permissions = dtsPermissionDao.queryByRoleIds(roleIds);
data.put("roles", roles);
// NOTE
// 这里需要转换perms结构,因为对于前端而已API形式的权限更容易理解
data.put("perms", toAPI(permissions));
logger.info("【请求结束】系统管理->用户信息获取,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("用户信息获取 error{}", e);
}
return ResponseUtil.fail();
}
@Override
public Object getCode() {
// 生成随机字串
String verifyCode = VerifyCodeUtils.generateVerifyCode(4);
// 唯一标识
String uuid = UUID.randomUUID().toString(true);
boolean successful = CaptchaCodeManager.addToCache(uuid, verifyCode,10);//存储内存
if (!successful) {
logger.error("请求验证码出错:{}", AdminResponseCode.AUTH_CAPTCHA_FREQUENCY.desc());
return AdminResponseUtil.fail(AdminResponseCode.AUTH_CAPTCHA_FREQUENCY);
}
// 生成图片
int w = 111, h = 36;
ByteArrayOutputStream stream = new ByteArrayOutputStream();
try {
VerifyCodeUtils.outputImage(w, h, stream, verifyCode);
} catch (IOException e) {
throw new RuntimeException(e);
}
try {
Map<String, Object> data = new HashMap<>();
data.put("uuid", uuid);
data.put("img", Base64.encode(stream.toByteArray()));
return ResponseUtil.ok(data);
} catch (Exception e){
e.printStackTrace();
return ResponseUtil.serious();
} finally {
try {
stream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
private Collection<String> toAPI(Set<String> permissions) {
if (systemPermissionsMap == null) {
systemPermissionsMap = new HashMap<>();
final String basicPackage = "com.wwdz.ch.admin";
List<Permission> systemPermissions = PermissionUtil.listPermission(context, basicPackage);
for (Permission permission : systemPermissions) {
String perm = permission.getRequiresPermissions().value()[0];
String api = permission.getApi();
systemPermissionsMap.put(perm, api);
}
}
Collection<String> apis = new HashSet<>();
for (String perm : permissions) {
String api = systemPermissionsMap.get(perm);
apis.add(api);
if (perm.equals("*")) {
apis.clear();
apis.add("*");
return apis;
// return systemPermissionsMap.values();
}
}
return apis;
}
}
package com.wwdz.ch.admin.impl;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.service.AdminCollectService;
import com.wwdz.ch.db.dao.dts.DtsCollectDao;
import com.wwdz.ch.db.domain.CollectObsolete;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AdminCollectServiceImpl implements AdminCollectService {
private static final Logger logger = LoggerFactory.getLogger(AdminCollectServiceImpl.class);
@Autowired
private DtsCollectDao dtsCollectDao;
@Override
public Object findList(String userId, String valueId, Integer page, Integer size, String sort, String order) {
List<CollectObsolete> collectList = dtsCollectDao.querySelective(userId, valueId, page, size, sort, order);
long total = PageInfo.of(collectList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", collectList);
return data;
}
}
package com.wwdz.ch.admin.impl;
import com.wwdz.ch.admin.controller.AdminDashbordController;
import com.wwdz.ch.admin.service.AdminDashbordService;
import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.dao.dts.DtsUserDao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
public class AdminDashbordServiceImpl implements AdminDashbordService {
private static final Logger logger = LoggerFactory.getLogger(AdminDashbordServiceImpl.class);
@Autowired
private DtsUserDao userService;
@Autowired
private ItemDao itemDao;
@Override
public Object info() {
int userTotal = userService.count();
int goodsTotal = itemDao.count();
// int productTotal = productService.count();
Map<String, Integer> data = new HashMap<>();
data.put("userTotal", userTotal);
data.put("goodsTotal", goodsTotal);
// data.put("productTotal", productTotal);
return data;
}
}
package com.wwdz.ch.admin.impl;
import java.util.Set;
import com.wwdz.ch.admin.service.AdminDataAuthService;
import com.wwdz.ch.db.dao.dts.DtsRoleDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.domain.Admin;
@Service
public class AdminDataAuthServiceImpl implements AdminDataAuthService {
@Autowired
private DtsRoleDao dtsRoleDao;
/**
* 是否属于运营商管理员,超级管理员除外
* @return
*/
@Override
public boolean isBrandManager() {
Integer[] roleIds = null;
Admin currentUser = AuthSupport.currentUser();
if (currentUser != null) {
roleIds = currentUser.getRoleIds();
Set<String> roles = dtsRoleDao.queryByIds(roleIds);
//仅仅只是品牌管理员且不属于超级管理员
if (roles.contains(AuthSupport.BRAND_ROLE_NAME) && !roles.contains(AuthSupport.SUPER_ROLE_NAME)) {
return true;
}
}
return false;
}
}
package com.wwdz.ch.admin.impl;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.controller.AdminFeedbackController;
import com.wwdz.ch.admin.service.AdminFeedbackService;
import com.wwdz.ch.db.dao.dts.DtsFeedbackDao;
import com.wwdz.ch.db.domain.Feedback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AdminFeedbackServiceImpl implements AdminFeedbackService {
private static final Logger logger = LoggerFactory.getLogger(AdminFeedbackServiceImpl.class);
@Autowired
private DtsFeedbackDao dtsFeedbackDao;
@Override
public Object findList(Long userId, String username, Integer page, Integer limit, String sort, String order) {
List<Feedback> feedbackList = dtsFeedbackDao.querySelective(userId, username, page, limit, sort, order);
long total = PageInfo.of(feedbackList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", feedbackList);
return data;
}
}
package com.wwdz.ch.admin.impl;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.service.AdminFootprintService;
import com.wwdz.ch.db.dao.dts.DtsFootprintDao;
import com.wwdz.ch.db.domain.Footprint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AdminFootprintServiceImpl implements AdminFootprintService {
private static final Logger logger = LoggerFactory.getLogger(AdminFootprintServiceImpl.class);
@Autowired
private DtsFootprintDao dtsFootprintDao;
@Override
public Object findList(String userId, String coinsId, Integer page, Integer size, String sort, String order) {
List<Footprint> footprintList = dtsFootprintDao.querySelective(userId, coinsId, page, size, sort, order);
long total = PageInfo.of(footprintList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", footprintList);
return data;
}
}
package com.wwdz.ch.admin.impl;
import java.util.*;
import java.util.stream.Collectors;
import com.wwdz.ch.admin.entity.vo.ItemVo;
import com.wwdz.ch.admin.service.AdminGoodsService;
import com.wwdz.ch.db.dao.CategoryDao;
import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.domain.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.qcode.QCodeService;
import com.wwdz.ch.core.util.ResponseUtil;
@Service
public class AdminGoodsServiceImpl implements AdminGoodsService {
private static final Logger logger = LoggerFactory.getLogger(AdminGoodsServiceImpl.class);
@Autowired
private ItemDao itemDao;
@Autowired
private CategoryDao categoryDao;
@Autowired
private QCodeService qCodeService;
@Override
public Object list(String name, Integer page, Integer limit, String sort, String order) {
Map<String, Object> data = new HashMap<>();
try {
List<Item> itemList = itemDao.querySelective(name, page, limit, sort, order);
long total = PageInfo.of(itemList).getTotal();
List<ItemVo> itemVoList = new ArrayList<>();
itemVoList = itemList.stream().map(i -> ItemVo.fromItem(i)).collect(Collectors.toList());
data.put("total", total);
data.put("items", itemVoList);
logger.info("【请求结束】商品管理->商品管理->查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("钱币列表 error {}", e);
}
return ResponseUtil.fail();
}
private Object validate(Item item) {
String name = item.getName();
if (StringUtils.isEmpty(name)) {
return ResponseUtil.badArgument();
}
// 分类可以不设置,如果设置则需要验证分类存在
Integer categoryId = item.getCid();
if (categoryId != null && categoryId != 0) {
if (categoryDao.findById(categoryId) == null) {
return ResponseUtil.badArgumentValue();
}
}
return null;
}
/**
* 编辑商品
* <p>
* TODO 目前商品修改的逻辑是 1. 更新Dts_goods表 2.
* 逻辑删除Dts_goods_specification、Dts_goods_attribute、Dts_goods_product 3.
* 添加Dts_goods_specification、Dts_goods_attribute、Dts_goods_product
* <p>
* 这里商品三个表的数据采用删除再添加的策略是因为 商品编辑页面,支持管理员添加删除商品规格、添加删除商品属性,因此这里仅仅更新是不可能的,
* 只能删除三个表旧的数据,然后添加新的数据。 但是这里又会引入新的问题,就是存在订单商品货品ID指向了失效的商品货品表。
* 因此这里会拒绝管理员编辑商品,如果订单或购物车中存在商品。 所以这里可能需要重新设计。
*/
@Override
public Object update(Item item) {
logger.error("商品管理->商品管理->编辑商品item :{}", item);
Object error = validate(item);
if (error != null) {
return error;
}
//如果该商品为标准件则替换原有的标准件
if (item.getIsStd()) {
//查询出该分类下原有的标准件
Item oldStanardItem = itemDao.findStandard(item.getCid());
if (oldStanardItem != null) {
itemDao.cancelStandardItem(oldStanardItem.getId());
}
}
Long id = item.getId();
Item oldItem = itemDao.findDetails(id);
oldItem.setName(item.getName());
oldItem.setCid(item.getCid());
oldItem.setDetail(item.getDetail());
oldItem.setImages(item.getImages());
oldItem.setPrice(item.getPrice());
oldItem.setIsOnSale(item.getIsOnSale());
oldItem.setIsStd(item.getIsStd());
oldItem.setTopImage(item.getTopImage());
if (itemDao.updateById(oldItem) == 0) {
logger.error("商品管理->商品管理->编辑错误:{}", "更新数据失败");
throw new RuntimeException("更新数据失败");
}
logger.info("【请求结束】商品管理->商品管理->编辑,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
@Override
@Transactional
public Object delete(Item item) {
Long id = item.getId();
if (id == null) {
return ResponseUtil.badArgument();
}
Long gid = item.getId();
itemDao.deleteById(id);
logger.info("【请求结束】商品管理->商品管理->删除,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
@Override
@Transactional
public Object create(Item item) {
Object error = validate(item);
if (error != null) {
return error;
}
Date now = new Date();
// 商品基本信息表Dts_goods
item.setCreateTime(now);
item.setUpdateTime(now);
item.setIsDeleted(false);
itemDao.add(item);
// 将生成的分享图片地址写入数据库
/* String url = qCodeService.createGoodShareImage(null, item.getId().toString(), item.getImages().split(";")[0], item.getName(), item.getPrice());
if (!StringUtils.isEmpty(url)) {
item.setShareImage(url);
if (itemService.updateById(item) == 0) {
logger.error("商品管理->商品管理->上架错误:{}", "更新数据失败");
throw new RuntimeException("更新数据失败");
}
}*/
logger.info("【请求结束】商品管理->商品管理->上架,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
@Override
public Object detail(Long id) {
Item item = itemDao.findById(id);
//用于展示商品归属的类目(页面级联下拉控件数据展示)
Integer categoryId = item.getCid();
Category category = categoryDao.findById(categoryId);
List<Integer> categoryIds = new ArrayList<>();
if (null != category) {
categoryIds.add(0, category.getId());
Integer pid = category.getPid();
while (pid != 0) {
categoryIds.add(0, pid);
Category pCategory = categoryDao.findById(pid);
if (null != pCategory) {
pid = pCategory.getPid();
} else {
break;
}
}
}
Map<String, Object> data = new HashMap<>();
data.put("goods", ItemVo.fromItem(item));
data.put("categoryIds", categoryIds.toArray());
logger.info("【请求结束】商品管理->商品管理->详情,响应结果:{}", "成功!");
return ResponseUtil.ok(data);
}
}
package com.wwdz.ch.admin.impl;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.service.AdminHistoryService;
import com.wwdz.ch.db.dao.dts.DtsSearchHistoryDao;
import com.wwdz.ch.db.domain.SearchHistory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AdminHistoryServiceImpl implements AdminHistoryService {
private static final Logger logger = LoggerFactory.getLogger(AdminHistoryServiceImpl.class);
@Autowired
private DtsSearchHistoryDao dtsSearchHistoryDao;
@Override
public Object findList(String userId, String keyword, Integer page, Integer size, String sort, String order) {
List<SearchHistory> footprintList = dtsSearchHistoryDao.querySelective(userId, keyword, page, size, sort, order);
long total = PageInfo.of(footprintList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", footprintList);
return data;
}
}
package com.wwdz.ch.admin.impl;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.controller.AdminIssueController;
import com.wwdz.ch.admin.service.AdminIssueService;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.dao.dts.DtsIssueDao;
import com.wwdz.ch.db.domain.Admin;
import com.wwdz.ch.db.domain.Issue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AdminIssueServiceImpl implements AdminIssueService {
private static final Logger logger = LoggerFactory.getLogger(AdminIssueServiceImpl.class);
@Autowired
private DtsIssueDao dtsIssueDao;
@Override
public Object findList(String question, Integer page, Integer size, String sort, String order) {
List<Issue> issueList = dtsIssueDao.querySelective(question, page, size, sort, order);
long total = PageInfo.of(issueList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", issueList);
return data;
}
@Override
public Object create(Issue issue) {
try {
dtsIssueDao.add(issue);
logger.info("【请求结束】商场管理->通用问题->添加,响应结果:{}", JSONObject.toJSONString(issue));
return ResponseUtil.ok(issue);
} catch (Exception e) {
logger.error("商场管理->通用问题->添加 error:{}", e);
}
return ResponseUtil.fail();
}
@Override
public Issue read(Integer id) {
Issue issue = dtsIssueDao.findById(id);
return issue;
}
@Override
public Object update(Issue issue) {
if (dtsIssueDao.updateById(issue) == 0) {
logger.error("商场管理->通用问题->编辑 失败:{}", "更新数据失败!");
return ResponseUtil.updatedDataFailed();
}
logger.info("【请求结束】商场管理->通用问题->编辑,响应结果:{}", JSONObject.toJSONString(issue));
return ResponseUtil.ok(issue);
}
@Override
public Object deleteById(Integer id) {
try {
dtsIssueDao.deleteById(id);
logger.info("【请求结束】商场管理->通用问题->删除,响应结果:{}", "成功!");
return ResponseUtil.ok();
} catch (Exception e) {
logger.error("商场管理->通用问题->删除 error:{}" ,e);
}
return ResponseUtil.fail();
}
}
package com.wwdz.ch.admin.impl;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.service.AdminKeywordService;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.dao.dts.DtsKeywordDao;
import com.wwdz.ch.db.domain.Keyword;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AdminKeywordServiceImpl implements AdminKeywordService {
private static final Logger logger = LoggerFactory.getLogger(AdminKeywordServiceImpl.class);
@Autowired
private DtsKeywordDao dtsKeywordDao;
@Override
public Object findList(String keyword, String url, Integer page, Integer limit, String sort, String order) {
List<Keyword> brandList = dtsKeywordDao.querySelective(keyword, url, page, limit, sort, order);
long total = PageInfo.of(brandList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", brandList);
return data;
}
@Override
public Object create(Keyword issue) {
try {
dtsKeywordDao.add(issue);
logger.info("【请求结束】商场管理->关键词->添加,响应结果:{}", JSONObject.toJSONString(issue));
return ResponseUtil.ok(issue);
} catch (Exception e) {
logger.error("商场管理->关键词->添加 error:{}", e);
}
return ResponseUtil.fail();
}
@Override
public Keyword read(Integer id) {
Keyword keyword = dtsKeywordDao.findById(id);
return keyword;
}
@Override
public Object update(Keyword keyword) {
if (dtsKeywordDao.updateById(keyword) == 0) {
logger.error("商场管理->关键词->编辑 失败:{}", "更新数据失败!");
return ResponseUtil.updatedDataFailed();
}
logger.info("【请求结束】商场管理->关键词->编辑,响应结果:{}", JSONObject.toJSONString(keyword));
return ResponseUtil.ok(keyword);
}
@Override
public Object deleteById(Integer id) {
try {
dtsKeywordDao.deleteById(id);
logger.info("【请求结束】商场管理->关键词->删除,响应结果:{}", "成功!");
return ResponseUtil.ok();
} catch (Exception e) {
logger.error("商场管理->关键词->删除 error:{}" ,e);
}
return ResponseUtil.fail();
}
@Override
public Object updateById(Keyword keyword) {
try {
if (dtsKeywordDao.updateById(keyword) == 0) {
logger.info("商场管理->关键词->编辑 错误:{}", "更新数据失败!");
return ResponseUtil.updatedDataFailed();
}
logger.info("【请求结束】商场管理->关键词->编辑,响应结果:{}", JSONObject.toJSONString(keyword));
return ResponseUtil.ok(keyword);
} catch (Exception e) {
logger.error("商场管理->关键词->编辑 error:{}" ,e);
}
return ResponseUtil.fail();
}
}
package com.wwdz.ch.admin.impl;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.service.AdminRoleService;
import com.wwdz.ch.admin.util.*;
import com.wwdz.ch.core.util.JacksonUtil;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.dao.dts.DtsPermissionDao;
import com.wwdz.ch.db.dao.dts.DtsRoleDao;
import com.wwdz.ch.db.domain.Permission;
import com.wwdz.ch.db.domain.Role;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.constraints.NotNull;
import java.util.*;
@Service
public class AdminRoleServiceImpl implements AdminRoleService {
private static final Logger logger = LoggerFactory.getLogger(AdminRoleServiceImpl.class);
@Autowired
private DtsRoleDao dtsRoleDao;
@Autowired
private DtsPermissionDao dtsPermissionDao;
@Override
public Object findList(String roleName, Integer page, Integer size, String sort, String order) {
List<Role> roleList = dtsRoleDao.querySelective(roleName, page, size, sort, order);
long total = PageInfo.of(roleList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", roleList);
return data;
}
@Override
public Object options() {
List<Role> roleList = dtsRoleDao.queryAll();
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->查询所有角色");
List<Map<String, Object>> options = new ArrayList<>(roleList.size());
for (Role role : roleList) {
Map<String, Object> option = new HashMap<>(2);
option.put("value", role.getId());
option.put("label", role.getName());
options.add(option);
}
logger.info("【请求结束】系统管理->角色管理->查询所有角色,响应结果:{}", JSONObject.toJSONString(options));
return ResponseUtil.ok(options);
}
@Override
public Object read(@NotNull Integer id) {
logger.info("【请求开始】操作人:[" + AuthSupport.userName()+ "] 系统管理->角色管理->角色详情,请求参数,id:{}", id);
Role role = dtsRoleDao.findById(id);
logger.info("【请求结束】系统管理->角色管理->角色详情,响应结果:{}", JSONObject.toJSONString(role));
return ResponseUtil.ok(role);
}
private Object validate(Role role) {
String name = role.getName();
if (StringUtils.isEmpty(name)) {
return ResponseUtil.badArgument();
}
return null;
}
@Override
public Object create(Role role) {
Object error = validate(role);
if (error != null) {
return error;
}
if (dtsRoleDao.checkExist(role.getName())) {
logger.info("系统管理->角色管理->角色添加错误:{}", AdminResponseCode.ROLE_NAME_EXIST.desc());
return AdminResponseUtil.fail(AdminResponseCode.ROLE_NAME_EXIST);
}
dtsRoleDao.add(role);
logger.info("【请求结束】系统管理->角色管理->角色添加,响应结果:{}", JSONObject.toJSONString(role));
return ResponseUtil.ok(role);
}
@Override
public Object update(Role role) {
Object error = validate(role);
if (error != null) {
return error;
}
dtsRoleDao.updateById(role);
logger.info("【请求结束】系统管理->角色管理->角色编辑,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
@Override
public Object delete(Role role) {
Integer id = role.getId();
if (id == null) {
return ResponseUtil.badArgument();
}
dtsRoleDao.deleteById(id);
logger.info("【请求结束】系统管理->角色管理->角色删除,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
@Autowired
private ApplicationContext context;
private List<PermVo> systemPermissions = null;
private Set<String> systemPermissionsString = null;
public List<PermVo> getSystemPermissions() {
final String basicPackage = "com.wwdz.ch.admin";
if (systemPermissions == null) {
List<com.wwdz.ch.admin.util.Permission> permissions = PermissionUtil.listPermission(context, basicPackage);
systemPermissions = PermissionUtil.listPermVo(permissions);
systemPermissionsString = PermissionUtil.listPermissionString(permissions);
}
return systemPermissions;
}
public Set<String> getAssignedPermissions(Integer roleId) {
// 这里需要注意的是,如果存在超级权限*,那么这里需要转化成当前所有系统权限。
// 之所以这么做,是因为前端不能识别超级权限,所以这里需要转换一下。
Set<String> assignedPermissions = null;
if (dtsPermissionDao.checkSuperPermission(roleId)) {
getSystemPermissions();
assignedPermissions = systemPermissionsString;
} else {
assignedPermissions = dtsPermissionDao.queryByRoleId(roleId);
}
return assignedPermissions;
}
@Override
public Object getPermissions(Integer roleId) {
List<PermVo> systemPermissions = getSystemPermissions();
Set<String> assignedPermissions = getAssignedPermissions(roleId);
Map<String, Object> data = new HashMap<>();
data.put("systemPermissions", systemPermissions);
data.put("assignedPermissions", assignedPermissions);
logger.info("【请求结束】系统管理->角色管理->权限详情,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data);
}
/**
* 更新管理员的权限
*
* @param body
* @return
*/
@Override
public Object updatePermissions(@RequestBody String body) {
Integer roleId = JacksonUtil.parseInteger(body, "roleId");
List<String> permissions = JacksonUtil.parseStringList(body, "permissions");
if (roleId == null || permissions == null) {
return ResponseUtil.badArgument();
}
// 如果修改的角色是超级权限,则拒绝修改。
if (dtsPermissionDao.checkSuperPermission(roleId)) {
logger.error("系统管理->角色管理->权限变更 错误:{}", AdminResponseCode.ROLE_SUPER_SUPERMISSION.desc());
return AdminResponseUtil.fail(AdminResponseCode.ROLE_SUPER_SUPERMISSION);
}
// 先删除旧的权限,再更新新的权限
dtsPermissionDao.deleteByRoleId(roleId);
for (String permission : permissions) {
Permission permission1 = new Permission();
permission1.setRoleId(roleId);
permission1.setPermission(permission);
dtsPermissionDao.add(permission1);
}
logger.info("【请求结束】系统管理->角色管理->权限变更,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
}
package com.wwdz.ch.admin.impl;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.service.AdminService;
import com.wwdz.ch.admin.util.AdminResponseCode;
import com.wwdz.ch.admin.util.AdminResponseUtil;
import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.core.util.bcrypt.BCryptPasswordEncoder;
import com.wwdz.ch.db.dao.dts.DtsAdminDao;
import com.wwdz.ch.db.domain.Admin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AdminServiceImpl implements AdminService {
private static final Logger logger = LoggerFactory.getLogger(AdminServiceImpl.class);
@Autowired
private DtsAdminDao dtsAdminDao;
@Override
public Object findList(String username, Integer page, Integer limit, String sort, String order) {
List<Admin> adminList = dtsAdminDao.querySelective(username, page, limit, sort, order);
long total = PageInfo.of(adminList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", adminList);
return data;
}
@Override
public Object create(Admin admin) {
try {
String username = admin.getUsername();
List<Admin> adminList = dtsAdminDao.findAdmin(username);
if (adminList.size() > 0) {
logger.error("系统管理->管理员管理->添加 ,错误:{}", AdminResponseCode.ADMIN_NAME_EXIST.desc());
return AdminResponseUtil.fail(AdminResponseCode.ADMIN_NAME_EXIST);
}
String rawPassword = admin.getPassword();
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String encodedPassword = encoder.encode(rawPassword);
admin.setPassword(encodedPassword);
dtsAdminDao.add(admin);
logger.info("【请求结束】系统管理->管理员管理->添加,响应结果:{}", JSONObject.toJSONString(admin));
return ResponseUtil.ok(admin);
} catch (Exception e) {
logger.error("系统管理->管理员管理->添加 ,错误:{}", e);
}
return ResponseUtil.fail();
}
@Override
public Admin read(Integer id) {
Admin admin = dtsAdminDao.findById(id);
return admin;
}
@Override
public Object update(Admin admin) {
Integer anotherAdminId = admin.getId();
if (anotherAdminId == null) {
return ResponseUtil.badArgument();
}
try {
String rawPassword = admin.getPassword();
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String encodedPassword = encoder.encode(rawPassword);
admin.setPassword(encodedPassword);
if (dtsAdminDao.updateById(admin) == 0) {
logger.error("系统管理->管理员管理-编辑 ,错误:{}", "更新数据失败!");
return ResponseUtil.updatedDataFailed();
}
logger.info("【请求结束】系统管理->管理员管理->编辑,响应结果:{}", JSONObject.toJSONString(admin));
return ResponseUtil.ok(admin);
} catch (Exception e) {
logger.error("管理员管理->编辑 ,错误:{}", e);
}
return ResponseUtil.fail();
}
@Override
public int updateById(Admin admin) {
return dtsAdminDao.updateById(admin);
}
@Override
public Object deleteById(Integer id) {
try {
dtsAdminDao.deleteById(id);
logger.info("【请求结束】系统管理->管理员管理->删除 成功!");
return ResponseUtil.ok();
} catch (Exception e) {
logger.error("管理员管理->删除 ,错误:{}", e);
}
return ResponseUtil.fail();
}
}
package com.wwdz.ch.admin.impl;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.controller.AdminUserController;
import com.wwdz.ch.admin.service.AdminUserService;
import com.wwdz.ch.db.dao.dts.DtsUserDao;
import com.wwdz.ch.db.domain.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AdminUserServiceImpl implements AdminUserService {
private static final Logger logger = LoggerFactory.getLogger(AdminUserServiceImpl.class);
@Autowired
private DtsUserDao dtsUserDao;
@Override
public Object findList(String username, String mobile, Integer page, Integer size, String sort, String order) {
List<User> userList = dtsUserDao.querySelective(username, mobile, page, size, sort, order);
long total = PageInfo.of(userList).getTotal();
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", userList);
return data;
}
}
package com.wwdz.ch.admin.service;
public interface AdminAuthService {
Object info();
/**
* 生成验证码
* @return
*/
Object getCode();
}
package com.wwdz.ch.admin.service;
public interface AdminCollectService {
Object findList(String userId, String valueId, Integer page, Integer size, String sort, String order);
}
package com.wwdz.ch.admin.service;
public interface AdminDashbordService {
Object info();
}
package com.wwdz.ch.admin.service; package com.wwdz.ch.admin.service;
import java.util.Set; public interface AdminDataAuthService {
boolean isBrandManager();
import com.wwdz.ch.db.dao.dts.DtsRoleDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.db.domain.Admin;
@Service
public class AdminDataAuthService {
@Autowired
private DtsRoleDao dtsRoleDao;
/**
* 是否属于运营商管理员,超级管理员除外
* @return
*/
public boolean isBrandManager() {
Integer[] roleIds = null;
Admin currentUser = AuthSupport.currentUser();
if (currentUser != null) {
roleIds = currentUser.getRoleIds();
Set<String> roles = dtsRoleDao.queryByIds(roleIds);
//仅仅只是品牌管理员且不属于超级管理员
if (roles.contains(AuthSupport.BRAND_ROLE_NAME) && !roles.contains(AuthSupport.SUPER_ROLE_NAME)) {
return true;
}
}
return false;
}
} }
package com.wwdz.ch.admin.service;
public interface AdminFeedbackService {
Object findList(Long userId, String username, Integer page, Integer limit, String sort, String order);
}
package com.wwdz.ch.admin.service;
public interface AdminFootprintService {
Object findList(String userId, String coinsId, Integer page, Integer size, String sort, String order);
}
package com.wwdz.ch.admin.service; package com.wwdz.ch.admin.service;
import java.util.*; import com.wwdz.ch.db.domain.Item;
import java.util.stream.Collectors;
import com.wwdz.ch.admin.entity.vo.ItemVo;
import com.wwdz.ch.db.dao.CategoryDao;
import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.domain.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.qcode.QCodeService;
import com.wwdz.ch.core.util.ResponseUtil;
@Service
public class AdminGoodsService {
private static final Logger logger = LoggerFactory.getLogger(AdminGoodsService.class);
@Autowired
private ItemDao itemDao;
@Autowired
private CategoryDao categoryDao;
@Autowired
private QCodeService qCodeService;
public Object list(String name, Integer page, Integer limit, String sort, String order) {
Map<String, Object> data = new HashMap<>();
try {
List<Item> itemList = itemDao.querySelective(name, page, limit, sort, order);
long total = PageInfo.of(itemList).getTotal();
List<ItemVo> itemVoList = new ArrayList<>();
itemVoList = itemList.stream().map(i -> ItemVo.fromItem(i)).collect(Collectors.toList());
data.put("total", total);
data.put("items", itemVoList);
logger.info("【请求结束】商品管理->商品管理->查询,响应结果:{}", JSONObject.toJSONString(data));
return ResponseUtil.ok(data);
} catch (Exception e) {
logger.error("钱币列表 error {}", e);
}
return ResponseUtil.fail();
}
private Object validate(Item item) { public interface AdminGoodsService {
String name = item.getName(); Object list(String name, Integer page, Integer limit, String sort, String order);
if (StringUtils.isEmpty(name)) {
return ResponseUtil.badArgument();
}
// 分类可以不设置,如果设置则需要验证分类存在
Integer categoryId = item.getCid();
if (categoryId != null && categoryId != 0) {
if (categoryDao.findById(categoryId) == null) {
return ResponseUtil.badArgumentValue();
}
}
return null;
}
/** Object update(Item item);
* 编辑商品
* <p>
* TODO 目前商品修改的逻辑是 1. 更新Dts_goods表 2.
* 逻辑删除Dts_goods_specification、Dts_goods_attribute、Dts_goods_product 3.
* 添加Dts_goods_specification、Dts_goods_attribute、Dts_goods_product
* <p>
* 这里商品三个表的数据采用删除再添加的策略是因为 商品编辑页面,支持管理员添加删除商品规格、添加删除商品属性,因此这里仅仅更新是不可能的,
* 只能删除三个表旧的数据,然后添加新的数据。 但是这里又会引入新的问题,就是存在订单商品货品ID指向了失效的商品货品表。
* 因此这里会拒绝管理员编辑商品,如果订单或购物车中存在商品。 所以这里可能需要重新设计。
*/
public Object update(Item item) {
logger.error("商品管理->商品管理->编辑商品item :{}", item);
Object error = validate(item);
if (error != null) {
return error;
}
//如果该商品为标准件则替换原有的标准件
if (item.getIsStd()) {
//查询出该分类下原有的标准件
Item oldStanardItem = itemDao.findStandard(item.getCid());
if (oldStanardItem != null) {
itemDao.cancelStandardItem(oldStanardItem.getId());
}
}
Long id = item.getId();
Item oldItem = itemDao.findDetails(id);
oldItem.setName(item.getName());
oldItem.setCid(item.getCid());
oldItem.setDetail(item.getDetail());
oldItem.setImages(item.getImages());
oldItem.setPrice(item.getPrice());
oldItem.setIsOnSale(item.getIsOnSale());
oldItem.setIsStd(item.getIsStd());
oldItem.setTopImage(item.getTopImage());
if (itemDao.updateById(oldItem) == 0) {
logger.error("商品管理->商品管理->编辑错误:{}", "更新数据失败");
throw new RuntimeException("更新数据失败");
}
logger.info("【请求结束】商品管理->商品管理->编辑,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
@Transactional @Transactional
public Object delete(Item item) { Object delete(Item item);
Long id = item.getId();
if (id == null) {
return ResponseUtil.badArgument();
}
Long gid = item.getId();
itemDao.deleteById(id);
logger.info("【请求结束】商品管理->商品管理->删除,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
@Transactional @Transactional
public Object create(Item item) { Object create(Item item);
Object error = validate(item);
if (error != null) {
return error;
}
Date now = new Date();
// 商品基本信息表Dts_goods
item.setCreateTime(now);
item.setUpdateTime(now);
item.setIsDeleted(false);
itemDao.add(item);
// 将生成的分享图片地址写入数据库
/* String url = qCodeService.createGoodShareImage(null, item.getId().toString(), item.getImages().split(";")[0], item.getName(), item.getPrice());
if (!StringUtils.isEmpty(url)) {
item.setShareImage(url);
if (itemService.updateById(item) == 0) {
logger.error("商品管理->商品管理->上架错误:{}", "更新数据失败");
throw new RuntimeException("更新数据失败");
}
}*/
logger.info("【请求结束】商品管理->商品管理->上架,响应结果:{}", "成功!");
return ResponseUtil.ok();
}
public Object detail(Long id) {
Item item = itemDao.findById(id);
//用于展示商品归属的类目(页面级联下拉控件数据展示)
Integer categoryId = item.getCid();
Category category = categoryDao.findById(categoryId);
List<Integer> categoryIds = new ArrayList<>();
if (null != category) {
categoryIds.add(0, category.getId());
Integer pid = category.getPid();
while (pid != 0) {
categoryIds.add(0, pid);
Category pCategory = categoryDao.findById(pid);
if (null != pCategory) {
pid = pCategory.getPid();
} else {
break;
}
}
}
Map<String, Object> data = new HashMap<>();
data.put("goods", ItemVo.fromItem(item));
data.put("categoryIds", categoryIds.toArray());
logger.info("【请求结束】商品管理->商品管理->详情,响应结果:{}", "成功!");
return ResponseUtil.ok(data);
}
Object detail(Long id);
} }
package com.wwdz.ch.admin.service;
public interface AdminHistoryService {
Object findList(String userId, String keyword, Integer page, Integer size, String sort, String order);
}
package com.wwdz.ch.admin.service;
import com.wwdz.ch.db.domain.Issue;
public interface AdminIssueService {
Object findList(String question, Integer page, Integer size, String sort, String order);
Object create(Issue issue);
Issue read(Integer id);
Object update(Issue issue);
Object deleteById(Integer id);
}
package com.wwdz.ch.admin.service;
import com.wwdz.ch.db.domain.Keyword;
public interface AdminKeywordService {
Object findList(String keyword, String url, Integer page, Integer limit, String sort, String order);
Object create(Keyword keyword);
Keyword read(Integer id);
Object update(Keyword keyword);
Object deleteById(Integer id);
Object updateById(Keyword keyword);
}
package com.wwdz.ch.admin.service;
import com.wwdz.ch.admin.util.PermVo;
import com.wwdz.ch.admin.util.PermissionUtil;
import com.wwdz.ch.db.domain.Role;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Set;
public interface AdminRoleService {
Object findList(String roleName, Integer page, Integer size, String sort, String order);
Object options();
Object read(@NotNull Integer id);
Object create(Role role);
Object update(Role role);
Object delete(Role role);
Object getPermissions(Integer roleId);
Object updatePermissions(@RequestBody String body);
List<PermVo> getSystemPermissions();
Set<String> getAssignedPermissions(Integer roleId);
}
package com.wwdz.ch.admin.service;
import com.wwdz.ch.db.domain.Admin;
public interface AdminService {
Object findList(String username, Integer page, Integer limit, String sort, String order);
Object create(Admin admin);
Admin read(Integer id);
Object update(Admin admin);
Object deleteById(Integer id);
int updateById(Admin admin);
}
package com.wwdz.ch.admin.service;
import com.wwdz.ch.db.domain.User;
import java.util.List;
public interface AdminUserService {
Object findList(String username, String mobile, Integer page, Integer size, String sort, String order);
}
...@@ -10,7 +10,7 @@ import lombok.Data; ...@@ -10,7 +10,7 @@ import lombok.Data;
/** /**
* @author shiyu * @author shiyu
* @date 2023/08/15 * @date 2023/08/16
*/ */
@Data @Data
public class Item implements Entity { public class Item implements Entity {
...@@ -97,7 +97,7 @@ public class Item implements Entity { ...@@ -97,7 +97,7 @@ public class Item implements Entity {
private String originalSourceUrl; private String originalSourceUrl;
/** /**
* 来源(1,2,3,7,8,10,11):中国的 * 来源7(1,2,3,,8,10,11):中国的
*/ */
private Integer source; private Integer source;
...@@ -119,7 +119,7 @@ public class Item implements Entity { ...@@ -119,7 +119,7 @@ public class Item implements Entity {
/** /**
* 商品视频, 分号分隔 * 商品视频, 分号分隔
*/ */
private String vedios; private String videos;
/** /**
* 商品详细介绍,是富文本格式 * 商品详细介绍,是富文本格式
...@@ -160,7 +160,7 @@ public class Item implements Entity { ...@@ -160,7 +160,7 @@ public class Item implements Entity {
sb.append(", type=").append(type); sb.append(", type=").append(type);
sb.append(", extra=").append(extra); sb.append(", extra=").append(extra);
sb.append(", images=").append(images); sb.append(", images=").append(images);
sb.append(", vedios=").append(vedios); sb.append(", videos=").append(videos);
sb.append(", detail=").append(detail); sb.append(", detail=").append(detail);
sb.append(", originalExtra=").append(originalExtra); sb.append(", originalExtra=").append(originalExtra);
sb.append(", serialVersionUID=").append(serialVersionUID); sb.append(", serialVersionUID=").append(serialVersionUID);
...@@ -201,7 +201,7 @@ public class Item implements Entity { ...@@ -201,7 +201,7 @@ public class Item implements Entity {
&& (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType())) && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
&& (this.getExtra() == null ? other.getExtra() == null : this.getExtra().equals(other.getExtra())) && (this.getExtra() == null ? other.getExtra() == null : this.getExtra().equals(other.getExtra()))
&& (this.getImages() == null ? other.getImages() == null : this.getImages().equals(other.getImages())) && (this.getImages() == null ? other.getImages() == null : this.getImages().equals(other.getImages()))
&& (this.getVedios() == null ? other.getVedios() == null : this.getVedios().equals(other.getVedios())) && (this.getVideos() == null ? other.getVideos() == null : this.getVideos().equals(other.getVideos()))
&& (this.getDetail() == null ? other.getDetail() == null : this.getDetail().equals(other.getDetail())) && (this.getDetail() == null ? other.getDetail() == null : this.getDetail().equals(other.getDetail()))
&& (this.getOriginalExtra() == null ? other.getOriginalExtra() == null : this.getOriginalExtra().equals(other.getOriginalExtra())); && (this.getOriginalExtra() == null ? other.getOriginalExtra() == null : this.getOriginalExtra().equals(other.getOriginalExtra()));
} }
...@@ -231,7 +231,7 @@ public class Item implements Entity { ...@@ -231,7 +231,7 @@ public class Item implements Entity {
result = prime * result + ((getType() == null) ? 0 : getType().hashCode()); result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
result = prime * result + ((getExtra() == null) ? 0 : getExtra().hashCode()); result = prime * result + ((getExtra() == null) ? 0 : getExtra().hashCode());
result = prime * result + ((getImages() == null) ? 0 : getImages().hashCode()); result = prime * result + ((getImages() == null) ? 0 : getImages().hashCode());
result = prime * result + ((getVedios() == null) ? 0 : getVedios().hashCode()); result = prime * result + ((getVideos() == null) ? 0 : getVideos().hashCode());
result = prime * result + ((getDetail() == null) ? 0 : getDetail().hashCode()); result = prime * result + ((getDetail() == null) ? 0 : getDetail().hashCode());
result = prime * result + ((getOriginalExtra() == null) ? 0 : getOriginalExtra().hashCode()); result = prime * result + ((getOriginalExtra() == null) ? 0 : getOriginalExtra().hashCode());
return result; return result;
...@@ -266,7 +266,7 @@ public class Item implements Entity { ...@@ -266,7 +266,7 @@ public class Item implements Entity {
type("type", "type", "INTEGER", true), type("type", "type", "INTEGER", true),
extra("extra", "extra", "LONGVARCHAR", false), extra("extra", "extra", "LONGVARCHAR", false),
images("images", "images", "LONGVARCHAR", false), images("images", "images", "LONGVARCHAR", false),
vedios("vedios", "vedios", "LONGVARCHAR", false), videos("videos", "videos", "LONGVARCHAR", false),
detail("detail", "detail", "LONGVARCHAR", false), detail("detail", "detail", "LONGVARCHAR", false),
originalExtra("original_extra", "originalExtra", "LONGVARCHAR", false); originalExtra("original_extra", "originalExtra", "LONGVARCHAR", false);
......
...@@ -66,9 +66,9 @@ public class ItemDaoImpl implements ItemDao { ...@@ -66,9 +66,9 @@ public class ItemDaoImpl implements ItemDao {
ItemExample example = new ItemExample(); ItemExample example = new ItemExample();
ItemExample.Criteria criteria = example.createCriteria(); ItemExample.Criteria criteria = example.createCriteria();
criteria.andIsDeletedEqualTo(false); criteria.andIsDeletedEqualTo(false);
//暂时去除华夏古泉和天眷堂的钱币, 对应编码1和7 //暂时去除华夏古泉和天眷堂的钱币, 对应编码2和7
if (!ObjectUtils.isEmpty(coinRequestDto.getIsExcluded()) && coinRequestDto.getIsExcluded() == 1) { if (!ObjectUtils.isEmpty(coinRequestDto.getIsExcluded()) && coinRequestDto.getIsExcluded() == 1) {
criteria.andSourceNotEqualTo(1); criteria.andSourceNotEqualTo(2);
criteria.andSourceNotEqualTo(7); criteria.andSourceNotEqualTo(7);
} }
example.orderBy("update_time desc"); example.orderBy("update_time desc");
......
...@@ -2,11 +2,11 @@ package com.wwdz.ch.db.mapper; ...@@ -2,11 +2,11 @@ package com.wwdz.ch.db.mapper;
import com.wwdz.ch.db.domain.Item; import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.domain.ItemExample; import com.wwdz.ch.db.domain.ItemExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper @Mapper
public interface ItemMapper { public interface ItemMapper {
long countByExample(ItemExample example); long countByExample(ItemExample example);
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.wwdz.ch.db.domain.Item"> <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.wwdz.ch.db.domain.Item">
<result column="extra" jdbcType="LONGVARCHAR" property="extra" /> <result column="extra" jdbcType="LONGVARCHAR" property="extra" />
<result column="images" jdbcType="LONGVARCHAR" property="images" /> <result column="images" jdbcType="LONGVARCHAR" property="images" />
<result column="vedios" jdbcType="LONGVARCHAR" property="vedios" /> <result column="videos" jdbcType="LONGVARCHAR" property="videos" />
<result column="detail" jdbcType="LONGVARCHAR" property="detail" /> <result column="detail" jdbcType="LONGVARCHAR" property="detail" />
<result column="original_extra" jdbcType="LONGVARCHAR" property="originalExtra" /> <result column="original_extra" jdbcType="LONGVARCHAR" property="originalExtra" />
</resultMap> </resultMap>
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
`source`, `type` `source`, `type`
</sql> </sql>
<sql id="Blob_Column_List"> <sql id="Blob_Column_List">
extra, images, vedios, detail, original_extra extra, images, videos, detail, original_extra
</sql> </sql>
<select id="selectByExampleWithBLOBs" parameterType="com.wwdz.ch.db.domain.ItemExample" resultMap="ResultMapWithBLOBs"> <select id="selectByExampleWithBLOBs" parameterType="com.wwdz.ch.db.domain.ItemExample" resultMap="ResultMapWithBLOBs">
select select
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
<otherwise> <otherwise>
id, `name`, cid, is_on_sale, is_std, sort, share_image, top_image, price, create_time, id, `name`, cid, is_on_sale, is_std, sort, share_image, top_image, price, create_time,
source_type, update_time, is_deleted, bid_time, remark, is_setted, original_source_url, source_type, update_time, is_deleted, bid_time, remark, is_setted, original_source_url,
`source`, `type`, extra, images, vedios, detail, original_extra `source`, `type`, extra, images, videos, detail, original_extra
</otherwise> </otherwise>
</choose> </choose>
from item from item
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
<otherwise> <otherwise>
id, `name`, cid, is_on_sale, is_std, sort, share_image, top_image, price, create_time, id, `name`, cid, is_on_sale, is_std, sort, share_image, top_image, price, create_time,
source_type, update_time, is_deleted, bid_time, remark, is_setted, original_source_url, source_type, update_time, is_deleted, bid_time, remark, is_setted, original_source_url,
`source`, `type`, extra, images, vedios, detail, original_extra `source`, `type`, extra, images, videos, detail, original_extra
</otherwise> </otherwise>
</choose> </choose>
from item from item
...@@ -210,7 +210,7 @@ ...@@ -210,7 +210,7 @@
source_type, update_time, is_deleted, source_type, update_time, is_deleted,
bid_time, remark, is_setted, bid_time, remark, is_setted,
original_source_url, `source`, `type`, original_source_url, `source`, `type`,
extra, images, vedios, extra, images, videos,
detail, original_extra) detail, original_extra)
values (#{name,jdbcType=VARCHAR}, #{cid,jdbcType=INTEGER}, #{isOnSale,jdbcType=BIT}, values (#{name,jdbcType=VARCHAR}, #{cid,jdbcType=INTEGER}, #{isOnSale,jdbcType=BIT},
#{isStd,jdbcType=BIT}, #{sort,jdbcType=INTEGER}, #{shareImage,jdbcType=VARCHAR}, #{isStd,jdbcType=BIT}, #{sort,jdbcType=INTEGER}, #{shareImage,jdbcType=VARCHAR},
...@@ -218,7 +218,7 @@ ...@@ -218,7 +218,7 @@
#{sourceType,jdbcType=INTEGER}, #{updateTime,jdbcType=TIMESTAMP}, #{isDeleted,jdbcType=BIT}, #{sourceType,jdbcType=INTEGER}, #{updateTime,jdbcType=TIMESTAMP}, #{isDeleted,jdbcType=BIT},
#{bidTime,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{isSetted,jdbcType=INTEGER}, #{bidTime,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{isSetted,jdbcType=INTEGER},
#{originalSourceUrl,jdbcType=VARCHAR}, #{source,jdbcType=INTEGER}, #{type,jdbcType=INTEGER}, #{originalSourceUrl,jdbcType=VARCHAR}, #{source,jdbcType=INTEGER}, #{type,jdbcType=INTEGER},
#{extra,jdbcType=LONGVARCHAR}, #{images,jdbcType=LONGVARCHAR}, #{vedios,jdbcType=LONGVARCHAR}, #{extra,jdbcType=LONGVARCHAR}, #{images,jdbcType=LONGVARCHAR}, #{videos,jdbcType=LONGVARCHAR},
#{detail,jdbcType=LONGVARCHAR}, #{originalExtra,jdbcType=LONGVARCHAR}) #{detail,jdbcType=LONGVARCHAR}, #{originalExtra,jdbcType=LONGVARCHAR})
</insert> </insert>
<insert id="insertSelective" parameterType="com.wwdz.ch.db.domain.Item"> <insert id="insertSelective" parameterType="com.wwdz.ch.db.domain.Item">
...@@ -287,8 +287,8 @@ ...@@ -287,8 +287,8 @@
<if test="images != null"> <if test="images != null">
images, images,
</if> </if>
<if test="vedios != null"> <if test="videos != null">
vedios, videos,
</if> </if>
<if test="detail != null"> <if test="detail != null">
detail, detail,
...@@ -358,8 +358,8 @@ ...@@ -358,8 +358,8 @@
<if test="images != null"> <if test="images != null">
#{images,jdbcType=LONGVARCHAR}, #{images,jdbcType=LONGVARCHAR},
</if> </if>
<if test="vedios != null"> <if test="videos != null">
#{vedios,jdbcType=LONGVARCHAR}, #{videos,jdbcType=LONGVARCHAR},
</if> </if>
<if test="detail != null"> <if test="detail != null">
#{detail,jdbcType=LONGVARCHAR}, #{detail,jdbcType=LONGVARCHAR},
...@@ -441,8 +441,8 @@ ...@@ -441,8 +441,8 @@
<if test="record.images != null"> <if test="record.images != null">
images = #{record.images,jdbcType=LONGVARCHAR}, images = #{record.images,jdbcType=LONGVARCHAR},
</if> </if>
<if test="record.vedios != null"> <if test="record.videos != null">
vedios = #{record.vedios,jdbcType=LONGVARCHAR}, videos = #{record.videos,jdbcType=LONGVARCHAR},
</if> </if>
<if test="record.detail != null"> <if test="record.detail != null">
detail = #{record.detail,jdbcType=LONGVARCHAR}, detail = #{record.detail,jdbcType=LONGVARCHAR},
...@@ -478,7 +478,7 @@ ...@@ -478,7 +478,7 @@
`type` = #{record.type,jdbcType=INTEGER}, `type` = #{record.type,jdbcType=INTEGER},
extra = #{record.extra,jdbcType=LONGVARCHAR}, extra = #{record.extra,jdbcType=LONGVARCHAR},
images = #{record.images,jdbcType=LONGVARCHAR}, images = #{record.images,jdbcType=LONGVARCHAR},
vedios = #{record.vedios,jdbcType=LONGVARCHAR}, videos = #{record.videos,jdbcType=LONGVARCHAR},
detail = #{record.detail,jdbcType=LONGVARCHAR}, detail = #{record.detail,jdbcType=LONGVARCHAR},
original_extra = #{record.originalExtra,jdbcType=LONGVARCHAR} original_extra = #{record.originalExtra,jdbcType=LONGVARCHAR}
<if test="_parameter != null"> <if test="_parameter != null">
...@@ -573,8 +573,8 @@ ...@@ -573,8 +573,8 @@
<if test="images != null"> <if test="images != null">
images = #{images,jdbcType=LONGVARCHAR}, images = #{images,jdbcType=LONGVARCHAR},
</if> </if>
<if test="vedios != null"> <if test="videos != null">
vedios = #{vedios,jdbcType=LONGVARCHAR}, videos = #{videos,jdbcType=LONGVARCHAR},
</if> </if>
<if test="detail != null"> <if test="detail != null">
detail = #{detail,jdbcType=LONGVARCHAR}, detail = #{detail,jdbcType=LONGVARCHAR},
...@@ -607,7 +607,7 @@ ...@@ -607,7 +607,7 @@
`type` = #{type,jdbcType=INTEGER}, `type` = #{type,jdbcType=INTEGER},
extra = #{extra,jdbcType=LONGVARCHAR}, extra = #{extra,jdbcType=LONGVARCHAR},
images = #{images,jdbcType=LONGVARCHAR}, images = #{images,jdbcType=LONGVARCHAR},
vedios = #{vedios,jdbcType=LONGVARCHAR}, videos = #{videos,jdbcType=LONGVARCHAR},
detail = #{detail,jdbcType=LONGVARCHAR}, detail = #{detail,jdbcType=LONGVARCHAR},
original_extra = #{originalExtra,jdbcType=LONGVARCHAR} original_extra = #{originalExtra,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
...@@ -689,7 +689,7 @@ ...@@ -689,7 +689,7 @@
<otherwise> <otherwise>
id, `name`, cid, is_on_sale, is_std, sort, share_image, top_image, price, create_time, id, `name`, cid, is_on_sale, is_std, sort, share_image, top_image, price, create_time,
source_type, update_time, is_deleted, bid_time, remark, is_setted, original_source_url, source_type, update_time, is_deleted, bid_time, remark, is_setted, original_source_url,
`source`, `type`, extra, images, vedios, detail, original_extra `source`, `type`, extra, images, videos, detail, original_extra
</otherwise> </otherwise>
</choose> </choose>
from item from item
...@@ -701,6 +701,7 @@ ...@@ -701,6 +701,7 @@
</if> </if>
limit 1 limit 1
</select> </select>
<select id="selectNameByExample" parameterType="com.wwdz.ch.db.domain.ItemExample" resultMap="StringResultMap"> <select id="selectNameByExample" parameterType="com.wwdz.ch.db.domain.ItemExample" resultMap="StringResultMap">
select select
<if test="distinct"> <if test="distinct">
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment