package com.product.admin.controller;
|
|
import com.alibaba.druid.util.StringUtils;
|
import com.product.admin.config.CmnConst;
|
import com.product.admin.config.SystemCode;
|
import com.product.admin.service.SystemManagementUserService;
|
import com.product.admin.service.idel.ISystemManagementUserService;
|
import com.product.core.config.CoreConst;
|
import com.product.core.config.Global;
|
import com.product.core.controller.support.AbstractBaseController;
|
import com.product.core.entity.DataTableEntity;
|
import com.product.core.entity.FieldSetEntity;
|
import com.product.core.entity.RequestParameterEntity;
|
import com.product.core.exception.BaseException;
|
import com.product.core.permission.PermissionService;
|
import com.product.core.rsa.GenerateRSAKey;
|
import com.product.core.spring.context.SpringMVCContextHolder;
|
import com.product.module.sys.config.SystemErrorCode;
|
import com.product.module.sys.entity.SystemUser;
|
import com.product.module.sys.version.ApiVersion;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
/**
|
* Copyright LX-BASE
|
*
|
* @Title: SystemManagementUserController
|
* @Project: LX-BASE-SERVER
|
* @Date: 2020年6月3日 上午11:54:30
|
* @Author: 郑盟
|
* @Description: 系统管理员设置
|
*/
|
@RequestMapping("/api/systemmanagement")
|
@RestController
|
public class SystemManagementUserController extends AbstractBaseController {
|
@Autowired
|
private SystemManagementUserService systemManagementUserService;
|
/**
|
* 数据权限验证
|
*/
|
@Autowired
|
PermissionService permissionService;
|
|
/**
|
* 解冻账号 只能管理员调用
|
*
|
* @param request
|
* @return
|
*/
|
@PostMapping("/account-unfreeze/{version}")
|
@ApiVersion(1)
|
public String accountUnfreeze(HttpServletRequest request) {
|
try {
|
FieldSetEntity fse = null;
|
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
|
if (bean != null) {
|
RequestParameterEntity reqp = (RequestParameterEntity) bean;
|
fse = reqp.getFormData();
|
}
|
if (bean == null || fse == null) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
|
return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
|
}
|
//数据操作的权限验证 判断是否为管理员
|
if (!SpringMVCContextHolder.getCurrentUser().isManager()) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(),
|
SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText());
|
return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText());
|
}
|
// 判断表名是否正常
|
if (fse.getTableName() == null || !CmnConst.PRODUCT_SYS_USERS.equals(fse.getTableName())) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText());
|
return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText());
|
}
|
// 判断分页参数是否正常
|
if (StringUtils.isEmpty(fse.getUUID())) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
|
return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
|
}
|
return systemManagementUserService.accountUnfreeze(fse) ? OK() : error(SystemCode.ACCOUNT_UNFREEZE_FIAL.getValue(),
|
SystemCode.ACCOUNT_UNFREEZE_FIAL.getText());
|
} catch (BaseException e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return this.error(e);
|
} catch (Exception e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return error(SystemCode.ACCOUNT_UNFREEZE_FIAL.getValue(),
|
SystemCode.ACCOUNT_UNFREEZE_FIAL.getText() + e.getMessage());
|
}
|
}
|
|
/**
|
* 新增系统管理员
|
*/
|
@RequestMapping(value = "/add-user/{version}", method = RequestMethod.POST)
|
@ApiVersion(1)
|
public String addUser(HttpServletRequest request) {
|
try {
|
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
|
RequestParameterEntity reqp = (RequestParameterEntity) bean;
|
FieldSetEntity fs = reqp.getFormData();
|
SystemUser currentUser = SpringMVCContextHolder.getCurrentUser();
|
String manager_type = null;
|
if (currentUser != null && currentUser.getCurrentManager() != null) {
|
manager_type = currentUser.getCurrentManager().getString("manager_type");
|
} else {
|
return error(SystemCode.SYSTEM_MISSINGPERMISSION_FAIL.getValue(),
|
SystemCode.SYSTEM_MISSINGPERMISSION_FAIL.getText());
|
}
|
if ("1".equals(manager_type)) {
|
ISystemManagementUserService service = (ISystemManagementUserService) getProxyInstance(
|
systemManagementUserService);
|
//写死client为LX
|
String uuid = service.addUser(fs, 4);
|
return OK_Add(uuid);
|
} else {
|
return error(SystemCode.SYSTEM_MISSINGPERMISSION_FAIL.getValue(),
|
SystemCode.SYSTEM_MISSINGPERMISSION_FAIL.getText());
|
}
|
|
} catch (BaseException e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return this.error(e);
|
} catch (Exception e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return error(SystemCode.SYSTEM_ADD_SYSTEMANDMINISTRATOR_FAIL.getValue(),
|
SystemCode.SYSTEM_ADD_SYSTEMANDMINISTRATOR_FAIL.getText() + e.getMessage());
|
}
|
}
|
|
/**
|
* 修改系统管理员
|
*/
|
@RequestMapping(value = "/update-user/{version}", method = RequestMethod.POST)
|
@ApiVersion(1)
|
public String updateUser(HttpServletRequest request) {
|
try {
|
FieldSetEntity fs = null;
|
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
|
if (bean != null) {
|
RequestParameterEntity reqp = (RequestParameterEntity) bean;
|
fs = reqp.getFormData();
|
}
|
if (bean == null || fs == null) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
|
return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
|
}
|
//数据操作的权限验证
|
if (!permissionService.validDataPermission(fs, CoreConst.DATA_PERMISSION_VALID_TYPE_USER)) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(),
|
SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText());
|
return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText());
|
}
|
SystemUser currentUser = SpringMVCContextHolder.getCurrentUser();
|
String manager_type = null;
|
if (currentUser != null && currentUser.getCurrentManager() != null) {
|
manager_type = currentUser.getCurrentManager().getString("manager_type");
|
} else {
|
return error(SystemCode.SYSTEM_MISSINGPERMISSION_FAIL.getValue(),
|
SystemCode.SYSTEM_MISSINGPERMISSION_FAIL.getText());
|
}
|
if ("1".equals(manager_type)) {
|
ISystemManagementUserService service = (ISystemManagementUserService) getProxyInstance(
|
systemManagementUserService);
|
return service.updateUser(fs) ? OK()
|
: error(SystemCode.SYSTEM_UPDATE_SYSTEMUSER_FAIL.getValue(),
|
SystemCode.SYSTEM_UPDATE_SYSTEMUSER_FAIL.getText());
|
} else {
|
return error(SystemCode.SYSTEM_MISSINGPERMISSION_FAIL.getValue(),
|
SystemCode.SYSTEM_MISSINGPERMISSION_FAIL.getText());
|
}
|
} catch (BaseException e) {
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return this.error(e);
|
} catch (Exception e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return error(SystemCode.SYSTEM_UPDATE_SYSTEMANDMINISTRATOR_FAIL.getValue(),
|
SystemCode.SYSTEM_UPDATE_SYSTEMANDMINISTRATOR_FAIL.getText() + e.getMessage());
|
}
|
}
|
|
/**
|
* 系统管理员列表
|
*
|
* @return
|
*/
|
@RequestMapping(value = "/list-user/{version}", method = RequestMethod.POST)
|
public String listUser(HttpServletRequest request) {
|
try {
|
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
|
RequestParameterEntity reqp = (RequestParameterEntity) bean;
|
FieldSetEntity fse = reqp.getFormData();
|
DataTableEntity dt = systemManagementUserService.listUser(fse, "4");
|
return OK_List(dt);
|
} catch (BaseException e) {
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return this.error(e);
|
} catch (Exception e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return error(SystemCode.SYSTEM_LIST_SYSTEMANDMINISTRATOR_FAIL.getValue(),
|
SystemCode.SYSTEM_LIST_SYSTEMANDMINISTRATOR_FAIL.getText() + e.getMessage());
|
}
|
}
|
|
|
/**
|
* 系统管理员详情
|
*/
|
@RequestMapping(value = "/find-user/{version}", method = RequestMethod.POST)
|
public String findUser(HttpServletRequest request) {
|
try {
|
FieldSetEntity fse = null;
|
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
|
if (bean != null) {
|
RequestParameterEntity reqp = (RequestParameterEntity) bean;
|
fse = reqp.getFormData();
|
}
|
if (bean == null || fse == null) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
|
return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
|
}
|
//数据操作的权限验证
|
if (!permissionService.validDataPermission(fse.getTableName(), fse.getUUID(), CoreConst.DATA_PERMISSION_VALID_TYPE_USER)) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(),
|
SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText());
|
return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText());
|
}
|
FieldSetEntity fs = systemManagementUserService.findUser(fse);
|
return OK_List(fs);
|
} catch (BaseException e) {
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return this.error(e);
|
} catch (Exception e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return error(SystemCode.SYSTEM_FIND_SYSTEMANDMINISTRATOR_FAIL.getValue(),
|
SystemCode.SYSTEM_FIND_SYSTEMANDMINISTRATOR_FAIL.getText() + e.getMessage());
|
}
|
}
|
|
/**
|
* 重设密码
|
*/
|
@RequestMapping(value = "/update-reset-password/{version}", method = RequestMethod.POST)
|
public String resetPassword(HttpServletRequest request) {
|
Object userName = null;
|
try {
|
FieldSetEntity fse = null;
|
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
|
if (bean != null) {
|
RequestParameterEntity reqp = (RequestParameterEntity) bean;
|
fse = reqp.getFormData();
|
userName = reqp.getFormData().getObject(CmnConst.USER_ACCOUNT);
|
//是否启用登录用户名密码的非对称加密
|
boolean isEnable = Global.getPropertyToBoolean("login.ecc.isEnable", "false");
|
if (userName != null && isEnable) {
|
//用户名解密
|
userName = GenerateRSAKey.decrypt_str(userName.toString());
|
reqp.getFormData().setValue(CmnConst.USER_ACCOUNT, userName);
|
}
|
}
|
if (bean == null || fse == null) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
|
return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
|
}
|
//数据操作的权限验证
|
if (!permissionService.validDataPermission(fse, CoreConst.DATA_PERMISSION_VALID_TYPE_USER)) {
|
SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(),
|
SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText());
|
return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText());
|
}
|
return systemManagementUserService.resetPassword(fse) ? OK()
|
: error(SystemCode.SYSTEM_REBUILD_MANAGEMENT_PASSWORD_FAIL.getValue(),
|
SystemCode.SYSTEM_REBUILD_MANAGEMENT_PASSWORD_FAIL.getText());
|
} catch (BaseException e) {
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return this.error(e);
|
} catch (Exception e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return error(SystemCode.SYSTEM_REBUILD_MANAGEMENT_PASSWORD_FAIL.getValue(),
|
SystemCode.SYSTEM_REBUILD_MANAGEMENT_PASSWORD_FAIL.getText() + e.getMessage());
|
}
|
}
|
|
/**
|
* 禁用账号
|
*/
|
@RequestMapping(value = "/update-disable-account/{version}", method = RequestMethod.POST)
|
public String disableAccount(HttpServletRequest request) {
|
try {
|
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
|
RequestParameterEntity reqp = (RequestParameterEntity) bean;
|
FieldSetEntity fse = reqp.getFormData();
|
return systemManagementUserService.disableAccount(fse) ? OK()
|
: error(SystemCode.SYSTEM_DISABLE_USER_FAIL.getValue(),
|
SystemCode.SYSTEM_DISABLE_USER_FAIL.getText());
|
} catch (BaseException e) {
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return this.error(e);
|
} catch (Exception e) {
|
e.printStackTrace();
|
SpringMVCContextHolder.getSystemLogger().error(e);
|
return error(SystemCode.SYSTEM_DISABLE_USER_FAIL.getValue(),
|
SystemCode.SYSTEM_DISABLE_USER_FAIL.getText() + e.getMessage());
|
}
|
}
|
|
}
|