EsmUserController.java 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. package com.ydtech.modules.esm.controller;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
  5. import com.ydtech.core.page.HttpResult;
  6. import com.ydtech.modules.admin.model.SysDept;
  7. import com.ydtech.modules.admin.model.SysUser;
  8. import com.ydtech.modules.admin.model.SysUserRole;
  9. import com.ydtech.modules.admin.model.dto.SysUserDto;
  10. import com.ydtech.modules.admin.service.SysDeptService;
  11. import com.ydtech.modules.admin.service.SysUserRoleService;
  12. import com.ydtech.modules.admin.service.SysUserService;
  13. import com.ydtech.modules.base.controller.BaseController;
  14. import com.ydtech.modules.esm.model.EsmUserReferrer;
  15. import com.ydtech.modules.esm.model.vo.*;
  16. import com.ydtech.modules.esm.service.EsmUserReferrerService;
  17. import com.ydtech.utils.StringUtils;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.PostMapping;
  22. import org.springframework.web.bind.annotation.RequestBody;
  23. import org.springframework.web.bind.annotation.RequestMapping;
  24. import org.springframework.web.bind.annotation.RestController;
  25. import javax.annotation.Resource;
  26. import java.util.ArrayList;
  27. import java.util.List;
  28. import java.util.Map;
  29. import java.util.function.Function;
  30. import java.util.stream.Collectors;
  31. @RestController
  32. @Api(tags = "业务用户控制器")
  33. @RequestMapping("esm/user")
  34. public class EsmUserController extends BaseController {
  35. @Resource
  36. private SysUserService sysUserService;
  37. @Resource
  38. private EsmUserReferrerService esmUserReferrerService;
  39. @Resource
  40. private SysDeptService sysDeptService;
  41. @Resource
  42. private SysUserRoleService sysUserRoleService;
  43. /**
  44. * 查询团队人数:我的团队人数,一级团队人数,二级团队人数,三级团队人数,临时用户人数
  45. *
  46. * @author: lig
  47. * @date: 2023年07月03日 0003
  48. */
  49. @ApiOperation(value = "查询团队人数")
  50. @PostMapping("/queryTeamNum")
  51. public HttpResult queryTeamNum(@RequestBody SysUserDto dto) {
  52. List<TeamUserVO> teamList = new ArrayList<>();
  53. LambdaQueryWrapper<SysUserRole> userRoleLqw = new LambdaQueryWrapper<>();
  54. userRoleLqw.select(SysUserRole::getUserId);
  55. userRoleLqw.eq(SysUserRole::getRoleId,20);
  56. userRoleLqw.eq(StringUtils.isNotEmpty(dto.getUserId()),SysUserRole::getUserId,dto.getUserId());
  57. // List<SysUserRole> userRoleList = sysUserRoleService.list(userRoleLqw);
  58. // List<String> strings = userRoleList.stream().map(x -> x.getUserId() + "").collect(Collectors.toList());
  59. //用户ID 代理人角色
  60. List<String> longs = sysUserRoleService.listObjs(userRoleLqw, Object::toString);
  61. if(CollUtil.isNotEmpty(longs)){
  62. //获取团队长
  63. LambdaQueryWrapper<SysUser> lqwUser = new LambdaQueryWrapper<>();
  64. lqwUser.in(SysUser::getId,longs);
  65. lqwUser.eq(SysUser::getStatus,1);
  66. lqwUser.ne(SysUser::getId,"admin");
  67. lqwUser.eq(StringUtils.isNotEmpty(dto.getName()),SysUser::getName,dto.getName());
  68. lqwUser.eq(StringUtils.isNotEmpty(dto.getMobile()),SysUser::getMobile,dto.getMobile());
  69. List<SysUser> userList= sysUserService.list(lqwUser);
  70. userList.forEach(a ->{
  71. TeamUserVO vo = new TeamUserVO();
  72. List<SysUser> oneList = new ArrayList<>();
  73. List<SysUser> oneTempList = new ArrayList<>();
  74. List<SysUser> twoList = new ArrayList<>();
  75. List<SysUser> twoTempList = new ArrayList<>();
  76. List<SysUser> threeList = new ArrayList<>();
  77. List<SysUser> threeTempList = new ArrayList<>();
  78. //一级
  79. esmUserReferrerService.buildLevelList(a,oneList,oneTempList);
  80. oneList.forEach(b ->{
  81. //二级
  82. esmUserReferrerService.buildLevelList(b,twoList,twoTempList);
  83. twoList.forEach(c ->{
  84. //三级
  85. esmUserReferrerService.buildLevelList(c,threeList,threeTempList);
  86. });
  87. });
  88. vo.setLevel1num(oneList.size());
  89. vo.setLevel2num(twoList.size());
  90. vo.setLevel3num(threeList.size());
  91. //临时人数
  92. vo.setTempnum(oneTempList.size() + twoTempList.size() + threeTempList.size());
  93. //我的团队数
  94. vo.setTeamnum(vo.getTempnum() + oneList.size() + twoList.size() + threeList.size());
  95. vo.setId(a.getId());
  96. vo.setName(a.getName());
  97. vo.setMobile(a.getMobile());
  98. // vo.setSex(a.getSex());
  99. SysDept sysDept = sysDeptService.getById(a.getDeptId());
  100. if(null != sysDept){
  101. vo.setDeptId(sysDept.getId());
  102. vo.setDeptName(sysDept.getName());
  103. }
  104. teamList.add(vo);
  105. });
  106. }
  107. return HttpResult.ok(teamList);
  108. }
  109. /**
  110. * 团队业绩统计
  111. *
  112. * @param record
  113. * @return
  114. */
  115. @PostMapping("/queryUserCount")
  116. public HttpResult<EsmUserCountVO> queryUserCount(@RequestBody TeamUserQryVO record){
  117. if (StringUtils.isNullOrEmpty(record.getStartdate()) || StringUtils.isNullOrEmpty(record.getEnddate())) {
  118. return HttpResult.error("起止时间不能为空!");
  119. }
  120. String userid =getUserId();//获取登录用户
  121. record.setId(userid);
  122. SysUserRole sysUser=sysUserRoleService.query().eq("user_id",userid).list().get(0);
  123. if(!"20".equals(String.valueOf(sysUser.getRoleId()))&&!"21".equals(String.valueOf(sysUser.getRoleId()))){
  124. return HttpResult.error("只有团队长和代理角色可以查询");
  125. }
  126. EsmUserCountVO esmUserCountVO = esmUserReferrerService.queryUserCount(record);
  127. return HttpResult.ok(esmUserCountVO);
  128. }
  129. /**
  130. * 团队业绩统计
  131. *
  132. * @param record
  133. * @return
  134. */
  135. @PostMapping("/queryTeamPolicy")
  136. public HttpResult queryTeamPolicy(@RequestBody TeamUserQryVO record){
  137. StringBuffer whereStr = new StringBuffer();
  138. ArrayList<String> params = new ArrayList<String>();
  139. if (StringUtils.isNullOrEmpty(record.getId())) {
  140. return HttpResult.error("用户ID不能为空!");
  141. }
  142. if (StringUtils.isNullOrEmpty(record.getStartdate()) || StringUtils.isNullOrEmpty(record.getEnddate())) {
  143. return HttpResult.error("起止时间不能为空!");
  144. }
  145. params.add(record.getId());
  146. params.add(record.getId());
  147. params.add(record.getId());
  148. params.add(record.getStartdate());
  149. params.add(record.getEnddate());
  150. List<EsmTeamPolicyVO> list = esmUserReferrerService.countTeamPolicy(whereStr.toString(), params.toArray());
  151. return HttpResult.ok(list);
  152. }
  153. /**
  154. * 人员业绩统计
  155. *
  156. * @param record
  157. * @return
  158. */
  159. @PostMapping("/queryUserPolicy")
  160. public HttpResult countUserPolicy(@RequestBody TeamUserQryVO record){
  161. StringBuffer whereStr = new StringBuffer();
  162. ArrayList<String> params = new ArrayList<String>();
  163. if (StringUtils.isNullOrEmpty(record.getId())) {
  164. return HttpResult.error("用户ID不能为空!");
  165. }
  166. if (StringUtils.isNullOrEmpty(record.getStartdate()) || StringUtils.isNullOrEmpty(record.getEnddate())) {
  167. return HttpResult.error("起止时间不能为空!");
  168. }
  169. params.add(record.getStartdate());
  170. params.add(record.getEnddate());
  171. params.add(record.getId());
  172. List<EsmUserPolicyVO> list = esmUserReferrerService.countUserPolicy(whereStr.toString(), params.toArray());
  173. return HttpResult.ok(list);
  174. }
  175. }