From bf9ac2c6ebf2e45748b202136c15016f1c96fc06 Mon Sep 17 00:00:00 2001 From: "Stormeye.Wu" Date: Tue, 25 Sep 2018 18:01:12 +0800 Subject: [PATCH] =?UTF-8?q?[=E8=B6=85=E7=BA=A7=E7=94=A8=E6=88=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86issue][=E4=BF=AE=E5=A4=8D]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MallUserInfoController.java | 79 ++++++++++++------- .../iformall/controller/WxPayController.java | 2 +- .../java/com/iformall/common/ErrorCode.java | 1 + .../com/iformall/enums/EnumUserAdmin.java | 38 +++++++++ 4 files changed, 90 insertions(+), 30 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumUserAdmin.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java index afbc97a6a..cbc05221d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java @@ -6,6 +6,7 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.enums.EnumMallUserStatus; +import com.iformall.enums.EnumUserAdmin; import com.iformall.service.*; import com.iformall.shiro.PasswordHelper; import com.iformall.shiro.UserSession; @@ -88,6 +89,10 @@ public class MallUserInfoController extends BaseController { @ApiOperation(value = "创建用户接口", response = String.class) @PostMapping("add") public ResultData createUser(@RequestBody MallUserInfo userInfo) { + MallUserInfo currentUser = getUser(); + if(currentUser.getIsAdmin().equals(EnumUserAdmin.Normal.getCode())) { + return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能添加用户"); + } if(checkUniqueName(userInfo.getUsername(), null)){ return new ResultData(ErrorCode.USER_NAME_IS_FOUND,"用户名已存在"); @@ -119,18 +124,41 @@ public class MallUserInfoController extends BaseController { if(checkUniquePhone(userInfo.getPhone(), userInfo.getId())){ return new ResultData(ErrorCode.USER_PHONE_IS_FOUND,"手机号已存在"); } -// Assert.notNull(userInfo.getPassword(), "密码不能为空"); - PasswordHelper passwordHelper = new PasswordHelper(); - passwordHelper.encryptPassword(userInfo); + + // is_admin 不能在此系统设置 + userInfo.setIsAdmin(null); + if (StringUtils.isNotBlank(userInfo.getPassword()) && userInfo.getPassword().length() > 0) { + PasswordHelper passwordHelper = new PasswordHelper(); + passwordHelper.encryptPassword(userInfo); + } userInfo.setTenantId(getTenantId()); - userInfoService.saveOrUpdate(userInfo); - if (userInfo.getRoleId() != null) { - userRoleService.deleteByUserId(userInfo.getId()); - MallUserRole r = new MallUserRole(); - r.setRoleId(userInfo.getRoleId()); - r.setUid(userInfo.getId()); - userRoleService.saveOrUpdate(r); + + MallUserInfo currentUser = getUser(); + if(currentUser.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { + // 超管 + boolean bModify = false; + MallUserInfo adminUser = new MallUserInfo(); + if (StringUtils.isNotBlank(userInfo.getPassword()) && userInfo.getPassword().length() > 0) { + adminUser.setPassword(userInfo.getPassword()); + bModify = true; + } + if (StringUtils.isNotBlank(userInfo.getNickName())) { + adminUser.setNickName(userInfo.getNickName()); + } + if (bModify) { + userInfoService.saveOrUpdate(adminUser); + } + } else { + userInfoService.saveOrUpdate(userInfo); + if (userInfo.getRoleId() != null) { + userRoleService.deleteByUserId(userInfo.getId()); + MallUserRole r = new MallUserRole(); + r.setRoleId(userInfo.getRoleId()); + r.setUid(userInfo.getId()); + userRoleService.saveOrUpdate(r); + } } + return new ResultData(); } @@ -138,6 +166,9 @@ public class MallUserInfoController extends BaseController { @PostMapping("/del") public ResultData deleteUser(@RequestBody MallUserInfo userInfo) { MallUserInfo currentUser = getUser(); + if (currentUser.getIsAdmin().equals(EnumUserAdmin.Normal.getCode())) { + return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能删除用户"); + } if (currentUser.getId().equals(userInfo.getId())) { return new ResultData(ErrorCode.USER_IS_EMPTY); } @@ -156,6 +187,10 @@ public class MallUserInfoController extends BaseController { @ApiOperation(value = "起停用户接口", response = String.class) @GetMapping("status") public ResultData modifyStatus(Long userId, Integer status) { + MallUserInfo currentUser = getUser(); + if (currentUser.getIsAdmin().equals(EnumUserAdmin.Normal.getCode())) { + return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能删除用户"); + } MallUserInfo userInfo = userInfoService.getById(userId); userInfo.setStatus(status); userInfo.setTenantId(getTenantId()); @@ -163,21 +198,6 @@ public class MallUserInfoController extends BaseController { return new ResultData(userInfo); } - @ApiOperation(value = "用户添加角色接口", response = String.class) - @PostMapping("setRoles") - public ResultData setRoles(Long userId, String roleIds) { - /*String[] roIds = roleIds.split(","); - List u2rs = new ArrayList<>(roIds.length); - for (String roleId : roIds) { - MallUserRole userRole = new MallUserRole(); - userRole.setRoleId(roleId); - userRole.setUid(userId); - u2rs.add(userRole); - } - userRoleService.batchInsert(u2rs);*/ - return new ResultData(); - } - private boolean checkUniqueName(String username, Long id) { return userInfoService.cntByUserName(username,id); } @@ -189,10 +209,11 @@ public class MallUserInfoController extends BaseController { @GetMapping("hasButtonPermission") public ResultData hasButtonPermission(String permissions) { + MallUserInfo info = getUser(); + info.setPassword("保密"); Map map = new HashMap<>(); for (String name : permissions.split(",")) { - Long userId = (Long) - SecurityUtils.getSubject().getSession().getAttribute(UserSession.userId); + Long userId = (Long)SecurityUtils.getSubject().getSession().getAttribute(UserSession.userId); boolean has = userInfoService.hasButtonPermission(userId, name); map.put(name, has); } @@ -208,9 +229,9 @@ public class MallUserInfoController extends BaseController { @GetMapping("getUser") public ResultData getUserInfo() { - MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); + MallUserInfo info = getUser(); info.setPassword("保密"); - if (info.getIsAdmin() == 1) { // isAdmin + if (info.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { // isAdmin MallPermission q = new MallPermission(); PageInfo list = mallPermissionService.listAsPage(q, 1, 100); String menus = ""; diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxPayController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxPayController.java index 39ad435ac..825956c60 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxPayController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxPayController.java @@ -9,7 +9,7 @@ import com.iformall.service.WxProfitSharingOrderService; import com.iformall.service.WxRefundOrderService; import com.iformall.utils.XmlUtil; import org.apache.commons.io.IOUtils; -import org.jdom2.JDOMException; +import org.jdom.JDOMException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.MediaType; diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 7dc11b2ac..6b2d51b31 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -50,6 +50,7 @@ public enum ErrorCode{ */ USER_PHONE_IS_NOT_FOUND(1990,"手机号不存在"), USER_DEL_SELF(1991,"用户删除自己"), + USER_NOT_ADMIN(1992,"用户非超管"), USER_IS_EMPTY(2000, "用户不存在"), PASSWORD_ERROR(2001, "密码错误"), LOGIN_USER_OR_PWD_ERROR(2002, "用户名或密码错误"), diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumUserAdmin.java b/mallinkService/src/main/java/com/iformall/enums/EnumUserAdmin.java new file mode 100644 index 000000000..e55dfabe6 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumUserAdmin.java @@ -0,0 +1,38 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumUserAdmin { + + // 0-不是超管 1是超管 + + Normal(0, "不是超管"), + ADMIN(1, "超管") + ; + + public static EnumUserAdmin getEnum(Integer code) { + for (EnumUserAdmin value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumUserAdmin(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +}