Просмотр исходного кода

[超级用户管理issue][修复]

release_toaliyun_real
Stormeye.Wu 7 лет назад
Родитель
Сommit
bf9ac2c6eb
4 измененных файлов: 90 добавлений и 30 удалений
  1. +50
    -29
      mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java
  2. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/WxPayController.java
  3. +1
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  4. +38
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumUserAdmin.java

+ 50
- 29
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.common.ResultData;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.enums.EnumMallUserStatus; import com.iformall.enums.EnumMallUserStatus;
import com.iformall.enums.EnumUserAdmin;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.shiro.PasswordHelper; import com.iformall.shiro.PasswordHelper;
import com.iformall.shiro.UserSession; import com.iformall.shiro.UserSession;
@@ -88,6 +89,10 @@ public class MallUserInfoController extends BaseController {
@ApiOperation(value = "创建用户接口", response = String.class) @ApiOperation(value = "创建用户接口", response = String.class)
@PostMapping("add") @PostMapping("add")
public ResultData createUser(@RequestBody MallUserInfo userInfo) { 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)){ if(checkUniqueName(userInfo.getUsername(), null)){
return new ResultData(ErrorCode.USER_NAME_IS_FOUND,"用户名已存在"); return new ResultData(ErrorCode.USER_NAME_IS_FOUND,"用户名已存在");
@@ -119,18 +124,41 @@ public class MallUserInfoController extends BaseController {
if(checkUniquePhone(userInfo.getPhone(), userInfo.getId())){ if(checkUniquePhone(userInfo.getPhone(), userInfo.getId())){
return new ResultData(ErrorCode.USER_PHONE_IS_FOUND,"手机号已存在"); 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()); 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(); return new ResultData();
} }


@@ -138,6 +166,9 @@ public class MallUserInfoController extends BaseController {
@PostMapping("/del") @PostMapping("/del")
public ResultData deleteUser(@RequestBody MallUserInfo userInfo) { public ResultData deleteUser(@RequestBody MallUserInfo userInfo) {
MallUserInfo currentUser = getUser(); MallUserInfo currentUser = getUser();
if (currentUser.getIsAdmin().equals(EnumUserAdmin.Normal.getCode())) {
return new ResultData(ErrorCode.USER_NOT_ADMIN.getCode(), "只有超级管理员才能删除用户");
}
if (currentUser.getId().equals(userInfo.getId())) { if (currentUser.getId().equals(userInfo.getId())) {
return new ResultData(ErrorCode.USER_IS_EMPTY); return new ResultData(ErrorCode.USER_IS_EMPTY);
} }
@@ -156,6 +187,10 @@ public class MallUserInfoController extends BaseController {
@ApiOperation(value = "起停用户接口", response = String.class) @ApiOperation(value = "起停用户接口", response = String.class)
@GetMapping("status") @GetMapping("status")
public ResultData modifyStatus(Long userId, Integer 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); MallUserInfo userInfo = userInfoService.getById(userId);
userInfo.setStatus(status); userInfo.setStatus(status);
userInfo.setTenantId(getTenantId()); userInfo.setTenantId(getTenantId());
@@ -163,21 +198,6 @@ public class MallUserInfoController extends BaseController {
return new ResultData(userInfo); return new ResultData(userInfo);
} }


@ApiOperation(value = "用户添加角色接口", response = String.class)
@PostMapping("setRoles")
public ResultData setRoles(Long userId, String roleIds) {
/*String[] roIds = roleIds.split(",");
List<MallUserRole> 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) { private boolean checkUniqueName(String username, Long id) {
return userInfoService.cntByUserName(username,id); return userInfoService.cntByUserName(username,id);
} }
@@ -189,10 +209,11 @@ public class MallUserInfoController extends BaseController {


@GetMapping("hasButtonPermission") @GetMapping("hasButtonPermission")
public ResultData hasButtonPermission(String permissions) { public ResultData hasButtonPermission(String permissions) {
MallUserInfo info = getUser();
info.setPassword("保密");
Map<String, Boolean> map = new HashMap<>(); Map<String, Boolean> map = new HashMap<>();
for (String name : permissions.split(",")) { 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); boolean has = userInfoService.hasButtonPermission(userId, name);
map.put(name, has); map.put(name, has);
} }
@@ -208,9 +229,9 @@ public class MallUserInfoController extends BaseController {


@GetMapping("getUser") @GetMapping("getUser")
public ResultData getUserInfo() { public ResultData getUserInfo() {
MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
MallUserInfo info = getUser();
info.setPassword("保密"); info.setPassword("保密");
if (info.getIsAdmin() == 1) { // isAdmin
if (info.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { // isAdmin
MallPermission q = new MallPermission(); MallPermission q = new MallPermission();
PageInfo<MallPermission> list = mallPermissionService.listAsPage(q, 1, 100); PageInfo<MallPermission> list = mallPermissionService.listAsPage(q, 1, 100);
String menus = ""; String menus = "";


+ 1
- 1
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.service.WxRefundOrderService;
import com.iformall.utils.XmlUtil; import com.iformall.utils.XmlUtil;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.jdom2.JDOMException;
import org.jdom.JDOMException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;


+ 1
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Просмотреть файл

@@ -50,6 +50,7 @@ public enum ErrorCode{
*/ */
USER_PHONE_IS_NOT_FOUND(1990,"手机号不存在"), USER_PHONE_IS_NOT_FOUND(1990,"手机号不存在"),
USER_DEL_SELF(1991,"用户删除自己"), USER_DEL_SELF(1991,"用户删除自己"),
USER_NOT_ADMIN(1992,"用户非超管"),
USER_IS_EMPTY(2000, "用户不存在"), USER_IS_EMPTY(2000, "用户不存在"),
PASSWORD_ERROR(2001, "密码错误"), PASSWORD_ERROR(2001, "密码错误"),
LOGIN_USER_OR_PWD_ERROR(2002, "用户名或密码错误"), LOGIN_USER_OR_PWD_ERROR(2002, "用户名或密码错误"),


+ 38
- 0
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;
}
}

Загрузка…
Отмена
Сохранить