package com.glxp.api.controller.auth; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.Log; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.BusinessType; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.DeptEntity; import com.glxp.api.entity.auth.WarehouseUserEntity; import com.glxp.api.req.auth.*; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.service.auth.AuthAdminService; import com.glxp.api.service.auth.DeptService; import com.glxp.api.service.auth.WarehouseUserService; import com.glxp.api.util.PasswordUtils; import com.glxp.api.util.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 管理员相关 */ @RestController public class AuthUserController extends BaseController { @Resource private AuthAdminService authAdminService; @Resource private WarehouseUserService warehouseUserService; @Resource DeptService deptService; @AuthRuleAnnotation("admin/auth/admin/updateInv") @PostMapping("/admin/auth/admin/updateInv") @Log(title = "用户管理", businessType = BusinessType.UPDATE) public BaseResponse updateInv(@RequestBody @Valid AuthUserSaveRequest authUserSaveRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } AuthAdmin authAdmin = new AuthAdmin(); BeanUtil.copyProperties(authUserSaveRequest, authAdmin); authAdmin.setId(getUserId()); authAdmin.setLastModifyTime(new Date()); boolean b = authAdminService.updateAuthAdmin(authAdmin); if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } return ResultVOUtils.success(); } /** * 删除 * * @return */ @Log(title = "用户管理", businessType = BusinessType.DELETE) @AuthRuleAnnotation("admin/auth/admin/delete") @PostMapping("/admin/auth/admin/delete") public BaseResponse delete(@RequestBody AuthUserSaveRequest authUserSaveRequest) { if (authUserSaveRequest.getId() == null) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数错误!"); } // 先得到要删除角色的 getLocSubInvCode AuthAdmin byId = authAdminService.findById(authUserSaveRequest.getId()); boolean b = authAdminService.deleteById(authUserSaveRequest.getId()); if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } warehouseUserService.deleteByCodeAndId(authUserSaveRequest.getId(), byId.getLocInvCode()); return ResultVOUtils.success(); } /** * 获取医院用户列表 * * @return */ @AuthRuleAnnotation("") @GetMapping("/admin/auth/admin/selectNotSelectUser") public BaseResponse selectNotSelectUser(FilterInvLinkDataRequest filterInvLinkDataRequest) { //获取当前仓库已关联用户 FilterInvLinkDataRequest temRequest = new FilterInvLinkDataRequest(); temRequest.setCode(filterInvLinkDataRequest.getCode()); List warehouseUserEntities = warehouseUserService.getWarehouseUserList(temRequest); List userIds = new ArrayList<>(); for (WarehouseUserEntity warehouseUserEntity : warehouseUserEntities) { userIds.add(warehouseUserEntity.getUserid()); } //过滤当前已关联用户 FilterNoSelectUserRequest filterNoSelectUserRequest = new FilterNoSelectUserRequest(); BeanUtils.copyProperties(filterInvLinkDataRequest, filterNoSelectUserRequest); filterNoSelectUserRequest.setUserIds(userIds); //查询部门id FilterInvWarehouseRequest filterInvWarehouseRequest = new FilterInvWarehouseRequest(); filterInvWarehouseRequest.setCode(filterInvLinkDataRequest.getParentId()); List deptEntities = deptService.filterGroupInvWarehouse(filterInvWarehouseRequest); filterNoSelectUserRequest.setDeptId(deptEntities.get(0).getId()); List hospitalUserList = authAdminService.selectNotSelectUser(filterNoSelectUserRequest); PageInfo authAdminPageInfo = new PageInfo<>(hospitalUserList); PageSimpleResponse authAdminPageSimpleResponse = new PageSimpleResponse<>(); authAdminPageSimpleResponse.setTotal(authAdminPageInfo.getTotal()); authAdminPageSimpleResponse.setList(hospitalUserList); return ResultVOUtils.success(authAdminPageSimpleResponse); } //仓库未关联用户列表 @AuthRuleAnnotation("") @GetMapping("/admin/auth/admin/hospitalUserList") public BaseResponse getHospitalUserList() { List hospitalUserList = authAdminService.getHospitalUserList(); return ResultVOUtils.success(hospitalUserList); } //修改用户信息 @AuthRuleAnnotation("") @PostMapping("/admin/auth/admin/updateUser") public BaseResponse updateUser(@RequestBody UpdateUserRequset updateUserRequset) { AuthAdmin authAdmin = getUser(); if (StrUtil.isEmpty(updateUserRequset.getPassWord())) { updateUserRequset.setPassWord(authAdmin.getPassWord()); } if (StringUtils.isBlank(updateUserRequset.getNewPassword())) { return ResultVOUtils.error(500, "请输入新密码!"); } if (StringUtils.isBlank(updateUserRequset.getConfirmPassword())) { return ResultVOUtils.error(500, "请输入确认密码!"); } if (!updateUserRequset.getPassWord().equals(authAdmin.getPassWord())) { return ResultVOUtils.error(500, "当前密码输入错误!请重新输入!"); } if (updateUserRequset.getNewPassword().equals(authAdmin.getPassWord())) { return ResultVOUtils.error(500, "新密码与旧密码重复!请重新修改!"); } if (updateUserRequset.getNewPassword().equals(updateUserRequset.getConfirmPassword()) && updateUserRequset.getPassWord().equals(authAdmin.getPassWord())) { authAdminService.updateUser(updateUserRequset); return ResultVOUtils.success("修改成功"); } else { return ResultVOUtils.error(500, "新密码与确认密码不相同!请重新修改!"); } } @AuthRuleAnnotation("") @PostMapping("/admin/auth/admin/force/updateUser") public BaseResponse forceUpdateUser(@RequestBody @Valid UpdateUserRequset updateUserRequset, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } AuthAdmin authAdmin = getUser(); if (StringUtils.isBlank(updateUserRequset.getNewPassword())) { return ResultVOUtils.error(500, "请输入新密码!"); } if (StringUtils.isBlank(updateUserRequset.getConfirmPassword())) { return ResultVOUtils.error(500, "请输入确认密码!"); } if (updateUserRequset.getNewPassword().equals(updateUserRequset.getOldPassword())) { return ResultVOUtils.error(500, "新密码与旧密码重复!请重新修改!"); } if (updateUserRequset.getNewPassword().equals(updateUserRequset.getConfirmPassword()) && updateUserRequset.getOldPassword().equals(authAdmin.getPassWord())) { String newPwd = PasswordUtils.authAdminPwd(updateUserRequset.getNewPassword()); authAdmin.setPassWord(newPwd); authAdmin.setLastUpdatePwdTime(new Date()); authAdminService.updateAuthAdmin(authAdmin); return ResultVOUtils.success("修改成功"); } else { return ResultVOUtils.error(500, "新密码与确认密码不相同!请重新修改!"); } } @AuthRuleAnnotation("") @GetMapping("/admin/auth/admin/selectUser") public BaseResponse selectUser() { AuthAdmin authAdmin = getUser(); return ResultVOUtils.success(authAdmin); } }