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()); } } }