From f974bf528f0fd1f7316bdb3f06be8004e8db9f15 Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Wed, 21 Aug 2024 17:24:07 +0800 Subject: [PATCH] 用户中心部分迁移1 --- dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java | 282 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 201 insertions(+), 81 deletions(-) diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java index 730926e..7417445 100644 --- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java +++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUserWebController.java @@ -1,11 +1,22 @@ -package cn.huge.module.ctuser.controller; +package cn.huge.module.ctuser.controller.web; +import cn.huge.base.common.dto.SelectTermDTO; +import cn.huge.base.common.utils.ObjectUtils; import cn.huge.base.common.utils.ReturnFailUtils; import cn.huge.base.common.utils.ReturnSucUtils; -import cn.huge.module.ctuser.domain.po.CtUser; -import cn.huge.module.ctuser.service.CtUserService; +import cn.huge.base.common.utils.SelectTermUtils; +import cn.huge.base.config.CurrentUser; +import cn.huge.module.ctrole.domain.po.CtRole; +import cn.huge.module.ctrole.service.CtRoleService; +import cn.huge.module.ctuser.domain.po.*; +import cn.huge.module.ctuser.service.*; +import cn.huge.module.cust.constant.RoleBaseEnum; +import cn.huge.module.cust.constant.UserBaseConsts; +import cn.huge.module.cust.dto.CtUserDTO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; @@ -14,6 +25,8 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -23,7 +36,7 @@ * @description: 客户用户表接口api * @company: hugeinfo * @author: liyj - * @time: 2024-08-17 15:30:57 + * @time: 2024-08-19 20:04:19 * @version: 1.0.0 */ @Slf4j @@ -36,6 +49,24 @@ @Autowired private CtUserService service; + + @Autowired + private CtUnitService ctUnitService; + + @Autowired + private CtRoleService ctRoleService; + + @Autowired + private CtDeptService ctDeptService; + + @Autowired + private CtUseroleService ctUseroleService; + + @Autowired + private CtAccountService ctAccountService; + + @Autowired + private CtUsepostService ctUsepostService; /** * 获取请求URL参数 @@ -241,89 +272,178 @@ } /** - * 条件查询多个 - * @url {ctx}/api/web/ctUser/listQuery - * @return Object - */ - @GetMapping("/listQuery") - public Object listQuery() { - try { - Map<String, Object> terms = getParameter(); - return ReturnSucUtils.getRepInfo(service.listTerms(terms)); - } catch (Exception e) { - return ReturnFailUtils.getRepInfo(); - } - } - - /** - * 条件分页查询 - * @url {ctx}/api/web/ctUser/pageQuery - * @param page 页码 - * @param size 每页数量 - * @return Object - */ - @GetMapping("/pageQuery") - public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) { - try { - Map<String, Object> terms = getParameter(); - Sort sort = Sort.by(Sort.Direction.DESC, "create_time"); - PageRequest pageRequest = PageRequest.of(page-1, size, sort); - Page<CtUser> ctUserPage = service.pageQuery(pageRequest, terms); - return ReturnSucUtils.getRepInfo( "处理成功", ctUserPage); - } catch (Exception e) { - return ReturnFailUtils.getRepInfo(); - } - } - - /** - * 根据编号查询单个 - * @url {ctx}/api/web/ctUser/getById - * @param id 主键编号 - * @return Object - */ - @GetMapping("/getById") - public Object getById(@RequestParam(value = "id") String id) { - try { - return ReturnSucUtils.getRepInfo(service.getById(id)); - } catch (Exception e) { - return ReturnFailUtils.getRepInfo(); - } - } - - /** - * 根据主键单个/批量删除 - * @url {ctx}/api/web/ctUser/deleteByIds - * @param ids 主键编号 - * @return Object - */ - @GetMapping("/deleteByIds") - public Object deleteByIds(@RequestParam(value = "ids") String ids) { - try { - if (ids.indexOf(",") != -1) { - service.removeByIds(Stream.of(ids.split(",")).collect(Collectors.toList())); - }else{ - service.removeById(ids); - } - return ReturnSucUtils.getRepInfo(); - } catch (Exception e) { - return ReturnFailUtils.getRepInfo(); - } - } - - /** - * 新增或更新对象 - * @url {ctx}/api/web/ctUser/saveCtUser - * @param ctUser 实体对象 - * @return Object - */ + * web端-人员信息管理-新增/新用户信息 + * @url {ctx}/api/v1/ctUser/saveCtUser + * @param userId + * @return Object + * @throws Exception + */ @PostMapping("/saveCtUser") - public Object saveCtUser(@RequestBody CtUser ctUser) { + public Object saveCtUser(@RequestBody CtUser ctUser, @CurrentUser String userId) { try { - service.saveCtUser(ctUser); + // 保存更新用户信息 + service.webSaveCtUser(ctUser, userId); return ReturnSucUtils.getRepInfo(); } catch (Exception e) { return ReturnFailUtils.getRepInfo(); } } + /** + * 获取人员信息列表查询条件 + * @url {ctx}/api/v1/ctUser/listSelectTerm + * @return userId 登录用户标识称 + * @return Object + * @throws Exception + */ + @GetMapping("/listSelectTerm") + public Object listSelectTerm(@CurrentUser String userId) { + try { + Map<String, Object> result = Maps.newHashMap(); + // 获取当前登录用户 + CtUser loginUser = service.getById(userId); + // 组织条件 + QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>(); + ctUnitQueryWrapper.eq("cust_id", loginUser.getCustId()); + List<CtUnit> ctUnits = ctUnitService.list(ctUnitQueryWrapper); + List<SelectTermDTO> unitSelectTerms = new ArrayList<>(); + for (CtUnit ctUnit: ctUnits) { + SelectTermDTO unitSelectTerm = new SelectTermDTO(); + unitSelectTerm.setValue(ctUnit.getId()); + unitSelectTerm.setLabel(ctUnit.getUnitName()); + unitSelectTerm.setParentId(ctUnit.getParentId()); + unitSelectTerms.add(unitSelectTerm); + + // 部门条件 + QueryWrapper<CtDept> ctDeptQueryWrapper = new QueryWrapper<>(); + ctDeptQueryWrapper.eq("unit_id", ctUnit.getId()); + List<CtDept> ctDepts = ctDeptService.list(ctDeptQueryWrapper); + if (CollectionUtils.isNotEmpty(ctDepts)) { + List<SelectTermDTO> deptSelectTerms = new ArrayList<>(); + for (CtDept ctDept : ctDepts) { + SelectTermDTO deptSelectTerm = new SelectTermDTO(); + deptSelectTerm.setValue(ctDept.getId()); + deptSelectTerm.setLabel(ctDept.getName()); + deptSelectTerm.setParentId(ctDept.getParentId()); + deptSelectTerms.add(deptSelectTerm); + } + List<SelectTermDTO> depts = SelectTermUtils.createTreeByRoot(deptSelectTerms); + unitSelectTerm.setChainList(depts); + } + } + result.put("units", SelectTermUtils.createTreeByFirst(unitSelectTerms, loginUser.getUnitId())); + + // 角色条件 + QueryWrapper<CtRole> ctRoleQueryWrapper = new QueryWrapper<>(); + ctRoleQueryWrapper.eq("unit_id", loginUser.getUnitId()); + //判断是否为村居(村居不应该有调委会管理员角色) + QueryWrapper<CtUnit> ctUnitQueryWrapper1 = new QueryWrapper<>(); + ctUnitQueryWrapper1.eq("id", loginUser.getUnitId()).eq("cust_id", loginUser.getCustId()) + .select("unit_type"); + CtUnit ctUnit = ctUnitService.getOne(ctUnitQueryWrapper1); + if(UserBaseConsts.UNIT_TYPE_4.equals(ctUnit.getUnitType())){ + ctRoleQueryWrapper.ne("role_code", RoleBaseEnum.ROLE_9.getIndex()); + } + List<CtRole> ctRoleList = ctRoleService.list(ctRoleQueryWrapper); + List<SelectTermDTO> roleSelectTerms = new ArrayList<>(); + for (CtRole ctRole: ctRoleList){ + SelectTermDTO selectTerm = new SelectTermDTO(); + selectTerm.setValue(ctRole.getRoleCode()); + selectTerm.setLabel(ctRole.getName()); + roleSelectTerms.add(selectTerm); + } + result.put("roles", roleSelectTerms); + return ReturnSucUtils.getRepInfo( "查询成功", result); + } catch (Exception e) { + log.error("Controller接口[CtUserController.listSelectTerm]请求异常:"+e, e); + return ReturnFailUtils.getRepInfo("查询失败", null); + } + } + + /** + * 条件分页查询人员信息 + * @url {ctx}/api/v1/ctUser/pageQuery + * @param page 页码 + * @param size 每页数量 + * @return Object + */ + @GetMapping("/pageQuery") + public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size, + @CurrentUser String userId) { + try { + // 获取当前登录用户 + CtUserDTO loginUser = service.clientGetUserAll(userId); + Map<String, Object> result = Maps.newHashMap(); + Map<String, Object> terms = getParameter(); + if (RoleBaseEnum.checkAdminPower(loginUser)){ + terms.put("custId", loginUser.getCustId()); + }else if (RoleBaseEnum.checkCourtOrUnitPower(loginUser.getRoleCodes())){ + terms.put("custId", loginUser.getCustId()); + String unitId = (String) terms.get("unitId"); + if (StringUtils.isEmpty(unitId)){ + terms.put("unitId", loginUser.getUnitId()); + } + }else { + terms.put("custId", loginUser.getCustId()); + terms.put("id", loginUser.getId()); + } + Sort sort = Sort.by(Sort.Direction.DESC, "t1.create_time"); + PageRequest pageRequest = PageRequest.of(page-1, size, sort); + Page<CtUser> ctUserPage = service.pageUserAndRole(pageRequest, terms); + QueryWrapper<CtAccount> accountQueryWrapper = new QueryWrapper<>(); + QueryWrapper<CtUserole> ctUseroleQueryWrapper = new QueryWrapper<>(); + QueryWrapper<CtUsepost> ctUsepostQueryWrapper = new QueryWrapper<>(); + for (CtUser ctUser: ctUserPage){ + accountQueryWrapper.clear(); + // 密码 + accountQueryWrapper.eq("acc_type", UserBaseConsts.ACC_TYPE_1); + accountQueryWrapper.eq("user_id", ctUser.getId()); + CtAccount ctAccount = ctAccountService.getOne(accountQueryWrapper); + if (ObjectUtils.isNotEmpty(ctAccount)){ + ctUser.setAcc(ctAccount.getAcc()); + ctUser.setCipher(ctAccount.getCipherOpen()); + } + // 角色 + ctUseroleQueryWrapper.clear(); + ctUseroleQueryWrapper.eq("user_id", ctUser.getId()); + List<CtUserole> ctUseroleList = ctUseroleService.list(ctUseroleQueryWrapper); + if (ObjectUtils.isNotEmpty(ctUseroleList)){ + for (CtUserole ctUserole: ctUseroleList){ + ctUserole.setRoleId(ctUserole.getRoleCode()); + } + ctUser.setCtUseroleList(ctUseroleList); + } + // 岗位 + ctUsepostQueryWrapper.clear(); + ctUsepostQueryWrapper.eq("user_id", ctUser.getId()); + List<CtUsepost> ctUsepostList = ctUsepostService.list(ctUsepostQueryWrapper); + if (ObjectUtils.isNotEmpty(ctUsepostList)) { + ctUser.setCtUsepostList(ctUsepostList); + } + } + result.put("ctUserPage", ctUserPage); + terms = Maps.newHashMap(); + // 生效名额 + terms.put("status", UserBaseConsts.USER_STATUS_1); + terms.put("custId", loginUser.getCustId()); + if (RoleBaseEnum.checkAdminPower(loginUser)){ + terms.put("custId", loginUser.getCustId()); + }else if (RoleBaseEnum.checkCourtOrUnitPower(loginUser.getRoleCodes())){ + terms.put("custId", loginUser.getCustId()); + String unitId = (String) terms.get("unitId"); + if (StringUtils.isEmpty(unitId)){ + terms.put("unitId", loginUser.getUnitId()); + } + }else { + terms.put("custId", loginUser.getCustId()); + terms.put("id", loginUser.getId()); + } + long countZzStatus = service.countTerms(terms); + result.put("countZzStatus", countZzStatus); + return ReturnSucUtils.getRepInfo( "处理成功", result); + } catch (Exception e) { + log.error("Controller接口[CtUserController.pageQuery]请求异常:"+e, e); + return ReturnFailUtils.getRepInfo(e.getMessage(), null); + } + } } -- Gitblit v1.8.0