You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-spms-java/src/main/java/com/glxp/api/controller/auth/AuthUserController.java

201 lines
8.6 KiB
Java

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.constant.BusinessType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.auth.*;
import com.glxp.api.req.auth.*;
import com.glxp.api.res.PageSimpleResponse;
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.service.auth.*;
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.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.*;
/**
* 管理员相关
*/
@RestController
public class AuthUserController extends BaseController {
@Resource
CustomerService customerService;
@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);
}
// 先删除之前的角色
//todo 记得删除用户关联角色表
// authRoleAdminService.deleteByAdminId(authAdminSaveRequest.getId());
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<WarehouseUserEntity> warehouseUserEntities = warehouseUserService.getWarehouseUserList(temRequest);
List<Long> 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<DeptEntity> deptEntities = deptService.filterGroupInvWarehouse(filterInvWarehouseRequest);
filterNoSelectUserRequest.setDeptId(deptEntities.get(0).getId());
List<AuthAdmin> hospitalUserList = authAdminService.selectNotSelectUser(filterNoSelectUserRequest);
PageInfo<AuthAdmin> authAdminPageInfo = new PageInfo<>(hospitalUserList);
PageSimpleResponse<AuthAdmin> authAdminPageSimpleResponse = new PageSimpleResponse<>();
authAdminPageSimpleResponse.setTotal(authAdminPageInfo.getTotal());
authAdminPageSimpleResponse.setList(hospitalUserList);
return ResultVOUtils.success(authAdminPageSimpleResponse);
}
//仓库未关联用户列表
@AuthRuleAnnotation("")
@GetMapping("/admin/auth/admin/hospitalUserList")
public BaseResponse getHospitalUserList() {
List<AuthAdmin> hospitalUserList = authAdminService.getHospitalUserList();
return ResultVOUtils.success(hospitalUserList);
}
//修改用户信息
@AuthRuleAnnotation("")
@PostMapping("/admin/auth/admin/updateUser")
public BaseResponse updateUser(@RequestBody UpdateUserRequset updateUserRequset) {
AuthAdmin authAdmin = customerService.getUserBean();
System.out.println(updateUserRequset.toString());
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 = customerService.getUserBean();
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 = customerService.getUserBean();
return ResultVOUtils.success(authAdmin);
}
}