| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- package com.ydtech.modules.esm.controller;
- import cn.hutool.core.collection.CollUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.modules.admin.model.SysDept;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.model.SysUserRole;
- import com.ydtech.modules.admin.model.dto.SysUserDto;
- import com.ydtech.modules.admin.service.SysDeptService;
- import com.ydtech.modules.admin.service.SysUserRoleService;
- import com.ydtech.modules.admin.service.SysUserService;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.esm.model.EsmUserReferrer;
- import com.ydtech.modules.esm.model.vo.*;
- import com.ydtech.modules.esm.service.EsmUserReferrerService;
- import com.ydtech.utils.StringUtils;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- @RestController
- @Api(tags = "业务用户控制器")
- @RequestMapping("esm/user")
- public class EsmUserController extends BaseController {
- @Resource
- private SysUserService sysUserService;
- @Resource
- private EsmUserReferrerService esmUserReferrerService;
- @Resource
- private SysDeptService sysDeptService;
- @Resource
- private SysUserRoleService sysUserRoleService;
- /**
- * 查询团队人数:我的团队人数,一级团队人数,二级团队人数,三级团队人数,临时用户人数
- *
- * @author: lig
- * @date: 2023年07月03日 0003
- */
- @ApiOperation(value = "查询团队人数")
- @PostMapping("/queryTeamNum")
- public HttpResult queryTeamNum(@RequestBody SysUserDto dto) {
- List<TeamUserVO> teamList = new ArrayList<>();
- LambdaQueryWrapper<SysUserRole> userRoleLqw = new LambdaQueryWrapper<>();
- userRoleLqw.select(SysUserRole::getUserId);
- userRoleLqw.eq(SysUserRole::getRoleId,20);
- userRoleLqw.eq(StringUtils.isNotEmpty(dto.getUserId()),SysUserRole::getUserId,dto.getUserId());
- // List<SysUserRole> userRoleList = sysUserRoleService.list(userRoleLqw);
- // List<String> strings = userRoleList.stream().map(x -> x.getUserId() + "").collect(Collectors.toList());
- //用户ID 代理人角色
- List<String> longs = sysUserRoleService.listObjs(userRoleLqw, Object::toString);
- if(CollUtil.isNotEmpty(longs)){
- //获取团队长
- LambdaQueryWrapper<SysUser> lqwUser = new LambdaQueryWrapper<>();
- lqwUser.in(SysUser::getId,longs);
- lqwUser.eq(SysUser::getStatus,1);
- lqwUser.ne(SysUser::getId,"admin");
- lqwUser.eq(StringUtils.isNotEmpty(dto.getName()),SysUser::getName,dto.getName());
- lqwUser.eq(StringUtils.isNotEmpty(dto.getMobile()),SysUser::getMobile,dto.getMobile());
- List<SysUser> userList= sysUserService.list(lqwUser);
- userList.forEach(a ->{
- TeamUserVO vo = new TeamUserVO();
- List<SysUser> oneList = new ArrayList<>();
- List<SysUser> oneTempList = new ArrayList<>();
- List<SysUser> twoList = new ArrayList<>();
- List<SysUser> twoTempList = new ArrayList<>();
- List<SysUser> threeList = new ArrayList<>();
- List<SysUser> threeTempList = new ArrayList<>();
- //一级
- esmUserReferrerService.buildLevelList(a,oneList,oneTempList);
- oneList.forEach(b ->{
- //二级
- esmUserReferrerService.buildLevelList(b,twoList,twoTempList);
- twoList.forEach(c ->{
- //三级
- esmUserReferrerService.buildLevelList(c,threeList,threeTempList);
- });
- });
- vo.setLevel1num(oneList.size());
- vo.setLevel2num(twoList.size());
- vo.setLevel3num(threeList.size());
- //临时人数
- vo.setTempnum(oneTempList.size() + twoTempList.size() + threeTempList.size());
- //我的团队数
- vo.setTeamnum(vo.getTempnum() + oneList.size() + twoList.size() + threeList.size());
- vo.setId(a.getId());
- vo.setName(a.getName());
- vo.setMobile(a.getMobile());
- // vo.setSex(a.getSex());
- SysDept sysDept = sysDeptService.getById(a.getDeptId());
- if(null != sysDept){
- vo.setDeptId(sysDept.getId());
- vo.setDeptName(sysDept.getName());
- }
- teamList.add(vo);
- });
- }
- return HttpResult.ok(teamList);
- }
- /**
- * 团队业绩统计
- *
- * @param record
- * @return
- */
- @PostMapping("/queryUserCount")
- public HttpResult<EsmUserCountVO> queryUserCount(@RequestBody TeamUserQryVO record){
- if (StringUtils.isNullOrEmpty(record.getStartdate()) || StringUtils.isNullOrEmpty(record.getEnddate())) {
- return HttpResult.error("起止时间不能为空!");
- }
- String userid =getUserId();//获取登录用户
- record.setId(userid);
- SysUserRole sysUser=sysUserRoleService.query().eq("user_id",userid).list().get(0);
- if(!"20".equals(String.valueOf(sysUser.getRoleId()))&&!"21".equals(String.valueOf(sysUser.getRoleId()))){
- return HttpResult.error("只有团队长和代理角色可以查询");
- }
- EsmUserCountVO esmUserCountVO = esmUserReferrerService.queryUserCount(record);
- return HttpResult.ok(esmUserCountVO);
- }
- /**
- * 团队业绩统计
- *
- * @param record
- * @return
- */
- @PostMapping("/queryTeamPolicy")
- public HttpResult queryTeamPolicy(@RequestBody TeamUserQryVO record){
- StringBuffer whereStr = new StringBuffer();
- ArrayList<String> params = new ArrayList<String>();
- if (StringUtils.isNullOrEmpty(record.getId())) {
- return HttpResult.error("用户ID不能为空!");
- }
- if (StringUtils.isNullOrEmpty(record.getStartdate()) || StringUtils.isNullOrEmpty(record.getEnddate())) {
- return HttpResult.error("起止时间不能为空!");
- }
- params.add(record.getId());
- params.add(record.getId());
- params.add(record.getId());
- params.add(record.getStartdate());
- params.add(record.getEnddate());
- List<EsmTeamPolicyVO> list = esmUserReferrerService.countTeamPolicy(whereStr.toString(), params.toArray());
- return HttpResult.ok(list);
- }
- /**
- * 人员业绩统计
- *
- * @param record
- * @return
- */
- @PostMapping("/queryUserPolicy")
- public HttpResult countUserPolicy(@RequestBody TeamUserQryVO record){
- StringBuffer whereStr = new StringBuffer();
- ArrayList<String> params = new ArrayList<String>();
- if (StringUtils.isNullOrEmpty(record.getId())) {
- return HttpResult.error("用户ID不能为空!");
- }
- if (StringUtils.isNullOrEmpty(record.getStartdate()) || StringUtils.isNullOrEmpty(record.getEnddate())) {
- return HttpResult.error("起止时间不能为空!");
- }
- params.add(record.getStartdate());
- params.add(record.getEnddate());
- params.add(record.getId());
- List<EsmUserPolicyVO> list = esmUserReferrerService.countUserPolicy(whereStr.toString(), params.toArray());
- return HttpResult.ok(list);
- }
- }
|