SysUserController.java 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126
  1. package com.ydtech.modules.admin.controller;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import cn.hutool.extra.spring.SpringUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  6. import com.baomidou.mybatisplus.core.metadata.IPage;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.ydtech.aop.request.RequestSingleParam;
  9. import com.ydtech.constants.SysConstants;
  10. import com.ydtech.core.page.HttpResult;
  11. import com.ydtech.core.page.PageRequest;
  12. import com.ydtech.core.page.PageResult;
  13. import com.ydtech.exception.SystemException;
  14. import com.ydtech.modules.admin.components.UnionPayRequestApiComponent;
  15. import com.ydtech.modules.admin.components.request.UnionPayRequest;
  16. import com.ydtech.modules.admin.components.response.UnionPayResponse;
  17. import com.ydtech.modules.admin.constants.RoleConstants;
  18. import com.ydtech.modules.admin.constants.UserWorkStatus;
  19. import com.ydtech.modules.admin.dao.SysUserRecordMapper;
  20. import com.ydtech.modules.admin.model.*;
  21. import com.ydtech.modules.admin.model.dto.*;
  22. import com.ydtech.modules.admin.model.po.SysUserBankCard;
  23. import com.ydtech.modules.admin.model.po.SysUserIsDial;
  24. import com.ydtech.modules.admin.model.po.SysUserTreeShowLevel;
  25. import com.ydtech.modules.admin.model.vo.*;
  26. import com.ydtech.modules.admin.service.*;
  27. import com.ydtech.modules.admin.utils.DifferentPropertyUtils;
  28. import com.ydtech.modules.admin.utils.RecordUserUtils;
  29. import com.ydtech.modules.base.controller.BaseController;
  30. import com.ydtech.modules.base.model.dto.BaseDto;
  31. import com.ydtech.modules.base.model.dto.PageDto;
  32. import com.ydtech.modules.base.model.vo.PageVo;
  33. import com.ydtech.modules.esm.model.EsmUserReferrer;
  34. import com.ydtech.modules.esm.model.vo.EsmUserImageQueryVo;
  35. import com.ydtech.modules.esm.service.EsmUserImageService;
  36. import com.ydtech.modules.esm.service.EsmUserReferrerService;
  37. import com.ydtech.modules.message.constants.MessageTypeConstants;
  38. import com.ydtech.modules.message.service.MessageSecretaryService;
  39. import com.ydtech.modules.order.entity.po.InsUploadFiles;
  40. import com.ydtech.modules.order.service.InsUploadFilesService;
  41. import com.ydtech.modules.protocol.utils.AssertionUtils;
  42. import com.ydtech.security.utils.PasswordUtils;
  43. import com.ydtech.utils.StringUtils;
  44. import com.ydtech.utils.idgen.IdGenerate;
  45. import io.swagger.annotations.Api;
  46. import io.swagger.annotations.ApiImplicitParam;
  47. import io.swagger.annotations.ApiImplicitParams;
  48. import io.swagger.annotations.ApiOperation;
  49. import lombok.RequiredArgsConstructor;
  50. import org.springframework.beans.factory.annotation.Autowired;
  51. import org.springframework.data.redis.core.StringRedisTemplate;
  52. import org.springframework.transaction.annotation.Transactional;
  53. import org.springframework.util.CollectionUtils;
  54. import org.springframework.util.ObjectUtils;
  55. import org.springframework.web.bind.annotation.*;
  56. import javax.validation.Valid;
  57. import java.util.*;
  58. import static com.ydtech.constants.RedisConstant.PHONE_VERIFICATION_CODE_KEY;
  59. /**
  60. * 用户控制器
  61. *
  62. * @author Yasepix
  63. * @date Oct 29, 2018
  64. */
  65. @RestController
  66. @Api(tags = "用户控制器")
  67. @RequestMapping("user")
  68. @RequiredArgsConstructor
  69. public class SysUserController extends BaseController {
  70. private final SysUserService sysUserService;
  71. private final SysUserRoleService sysUserRoleService;
  72. private final SysDeptService sysDeptService;
  73. private final SysUserInfoService sysUserInfoService;
  74. private final SysUserTreeShowLevelService sysUserTreeShowLevelService;
  75. private final EsmUserReferrerService esmUserReferrerService;
  76. private final SysRoleService sysRoleService;
  77. private final EsmUserImageService esmUserImageService;
  78. private final StringRedisTemplate redisTemplate;
  79. private final InsUploadFilesService insUploadFilesService;
  80. private final SysUserIsDialService sysUserIsDialService;
  81. private final MessageSecretaryService messageSecretaryService;
  82. private final SysUserTrackService sysUserTrackService;
  83. private final UnionPayRequestApiComponent unionPayRequestApiComponent;
  84. // @PreAuthorize("hasAuthority('sys:user:delete')")
  85. @ApiOperation(value = "逻辑删除")
  86. @PostMapping(value = "/deleteFlag")
  87. public HttpResult deleteFlag(@RequestBody List<SysUser> records) {
  88. for (SysUser record : records) {
  89. SysUser sysUser = sysUserService.getById(record.getId());
  90. if (sysUser != null && SysConstants.ADMIN.equalsIgnoreCase(sysUser.getName())) {
  91. return HttpResult.error("超级管理员不允许删除!");
  92. }
  93. }
  94. return HttpResult.ok(sysUserService.deleteFlag(records));
  95. }
  96. // @PreAuthorize("hasAuthority('sys:user:view')")
  97. @GetMapping(value = "/findByName")
  98. public HttpResult findByUserName(@RequestParam String name) {
  99. return HttpResult.ok(sysUserService.getById(name));
  100. }
  101. // @PreAuthorize("hasAuthority('sys:user:view')")
  102. @GetMapping(value = "/findPermissions")
  103. public HttpResult findPermissions(@RequestParam String name) {
  104. SysUser sysUser = new SysUser();
  105. sysUser.setId(name);
  106. return HttpResult.ok(sysUserService.findPermissions(sysUser));
  107. }
  108. // @PreAuthorize("hasAuthority('sys:user:view')")
  109. @GetMapping(value = "/findUserRoles")
  110. public HttpResult findUserRoles(@RequestParam Long userId) {
  111. return HttpResult.ok(sysUserService.findUserRoles(userId));
  112. }
  113. /**
  114. * 用户角色分页查询
  115. *
  116. * @param pageRequest
  117. * @return
  118. */
  119. @PostMapping(value = "/queryPage")
  120. public HttpResult queryPage(@RequestBody PageRequest pageRequest) {
  121. String deptid = pageRequest.getColumnFilterValue(pageRequest, "deptid");
  122. String name = pageRequest.getColumnFilterValue(pageRequest, "name");
  123. String containsSubDept = pageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
  124. String mobile = pageRequest.getColumnFilterValue(pageRequest, "mobile");
  125. SysUser sysUser = new SysUser();
  126. sysUser.setDeptId(deptid);
  127. sysUser.setName(name);
  128. sysUser.setMobile(mobile);
  129. Page page = PageRequest.buildPageRequest(pageRequest);
  130. IPage<SysUser> pResult = sysUserService.selectUserPage(page, sysUser, containsSubDept);
  131. //传入查询条件
  132. PageResult pageResult = PageResult.buildPageResult(pResult);
  133. return HttpResult.ok(pageResult);
  134. }
  135. /**
  136. * 保存用户角色信息
  137. *
  138. * @param sysUserRoleVo 用户角色信息对象,包括用户ID、角色ID、展示级别、是否允许拨号、拨号用户名和密码
  139. * @return 返回操作结果,成功返回ok
  140. */
  141. @PostMapping(value = "/saveUserRole")
  142. @Transactional
  143. @ApiOperation(value = "保存用户角色信息")
  144. public HttpResult saveUserRole(@RequestBody SysUserRoleVo sysUserRoleVo) {
  145. String userId = sysUserRoleVo.getUserId();
  146. String roleId = sysUserRoleVo.getRoleId();
  147. String showLevel = sysUserRoleVo.getShowLevel();
  148. String isDial = sysUserRoleVo.getIsDial();
  149. String dialUserName = sysUserRoleVo.getDialUserName();
  150. String dialPassWord = sysUserRoleVo.getDialPassWord();
  151. //添加用户角色
  152. SysUserRole userRole = new SysUserRole();
  153. sysUserRoleService.deleteByUserId(userId);
  154. String userName = getUserName();
  155. userRole = new SysUserRole();
  156. userRole.setUserId(userId);
  157. userRole.setRoleId(Long.parseLong(roleId));
  158. userRole.setCreateBy(userName);
  159. userRole.setCreateTime(new Date());
  160. sysUserRoleService.save(userRole);
  161. //添加树权限
  162. sysUserTreeShowLevelService.remove(new LambdaQueryWrapper<SysUserTreeShowLevel>().eq(SysUserTreeShowLevel::getUserId, userId));
  163. SysUserTreeShowLevel sysUserTreeShowLevel = new SysUserTreeShowLevel();
  164. sysUserTreeShowLevel.setUserId(userId);
  165. sysUserTreeShowLevel.setShowLevel(showLevel);
  166. sysUserTreeShowLevel.setCreateName(userName);
  167. sysUserTreeShowLevel.setCreateTime(new Date());
  168. sysUserTreeShowLevelService.save(sysUserTreeShowLevel);
  169. //添加拨号权限
  170. sysUserIsDialService.remove(new LambdaQueryWrapper<SysUserIsDial>().eq(SysUserIsDial::getUserId, userId));
  171. SysUserIsDial sysUserIsDial = new SysUserIsDial();
  172. sysUserIsDial.setUserId(userId);
  173. sysUserIsDial.setDialUserName(dialUserName);
  174. sysUserIsDial.setDialPassWord(dialPassWord);
  175. sysUserIsDial.setIsDial(isDial);
  176. sysUserIsDial.setCreateName(userName);
  177. sysUserIsDial.setCreateTime(new Date());
  178. sysUserIsDialService.save(sysUserIsDial);
  179. return HttpResult.ok();
  180. }
  181. @ApiOperation(value = "获取用户综合信息")
  182. @PostMapping(value = "/gainUserSynthesisInfo/{userId}")
  183. public HttpResult gainUserSynthesisInfo(@PathVariable String userId) {
  184. return HttpResult.ok(sysUserService.gainUserSynthesisInfo(userId));
  185. }
  186. /**
  187. * Used
  188. *
  189. * @author: lig
  190. * @date: 2023年05月10日 0010
  191. */
  192. // @PreAuthorize("hasAuthority('sys:user:view')")
  193. @PostMapping(value = "/findPageUsed")
  194. @Deprecated
  195. public HttpResult findPageUsed(@RequestBody PageRequest pageRequest) {
  196. int pageNum = pageRequest.getPageNum();
  197. int pageSize = pageRequest.getPageSize();
  198. String name = pageRequest.getColumnFilterValue(pageRequest, "name");
  199. //需要处理传入的部门
  200. PageResult pageResult = sysUserService.selectPagingCustom(pageNum, pageSize, name, "");
  201. sysUserService.findSysUseresmUserInternalVORoles(pageResult);
  202. return HttpResult.ok(pageResult);
  203. }
  204. /**
  205. * 密码修改
  206. *
  207. * @param id
  208. * @param password
  209. * @return
  210. */
  211. @PostMapping(value = "/updatePwd")
  212. public HttpResult updatePwd(@RequestParam String id, @RequestParam String password, @RequestParam String oldPassword) {
  213. if (StringUtils.isEmpty(id) || StringUtils.isEmpty(password)) {
  214. return HttpResult.error("ID和密码不能为空");
  215. }
  216. SysUser sysUser = sysUserService.getById(id);
  217. if (sysUser == null) {
  218. return HttpResult.error("ID不存在");
  219. }
  220. if (password.equals(oldPassword)) {
  221. return HttpResult.error("新密码不能与旧密码相同");
  222. }
  223. if (!PasswordUtils.matches(sysUser.getSalt(), oldPassword, sysUser.getPassword())) {
  224. return HttpResult.error("旧密码输入不正确");
  225. }
  226. //密码加密
  227. String pwd = PasswordUtils.encode(password, sysUser.getSalt());
  228. sysUser.setPassword(pwd);
  229. sysUserService.updateById(sysUser);
  230. StpUtil.logout();
  231. return HttpResult.ok("修改成功,请重新登录");
  232. }
  233. /**
  234. * 手机号更新
  235. *
  236. * @param id
  237. * @param mobile
  238. * @return
  239. */
  240. @PostMapping(value = "/updateMobile")
  241. public HttpResult updateMobile(@RequestParam String id, @RequestParam String mobile) {
  242. if (StringUtils.isEmpty(id) || StringUtils.isEmpty(mobile)) {
  243. return HttpResult.error("ID和手机号不能为空");
  244. }
  245. SysUser sysUser = sysUserService.getById(id);
  246. if (sysUser == null) {
  247. return HttpResult.error("ID不存在");
  248. }
  249. LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
  250. lqw.ne(SysUser::getId, id);
  251. lqw.eq(SysUser::getMobile, mobile);
  252. List<SysUser> users = sysUserService.list(lqw);
  253. if (users != null && !users.isEmpty()) {
  254. return HttpResult.error("手机号已存在");
  255. }
  256. sysUser.setMobile(mobile);
  257. sysUserService.updateById(sysUser);
  258. return HttpResult.ok("修改成功");
  259. }
  260. /**
  261. * 根据工号查询推荐人信息
  262. *
  263. * @param id
  264. * @return
  265. */
  266. @GetMapping(value = "/findById")
  267. public HttpResult findByUserId(@RequestParam String id) {
  268. SysUserVO sysUserVO = sysUserService.gainUserInternal(id);
  269. if (sysUserVO != null) {
  270. return HttpResult.ok(sysUserVO);
  271. }
  272. throw new SystemException("没有推荐人");
  273. }
  274. /**
  275. * 根据部门ID查询该部门的团队长信息
  276. *
  277. * @param deptId
  278. * @return
  279. */
  280. @GetMapping(value = "/selectByDeptId")
  281. public HttpResult selectByDeptId(String deptId) {
  282. return HttpResult.ok(sysUserService.gainUserInternalByDeptId(deptId));
  283. }
  284. /**
  285. * 根据部门id查询该部门的推荐人信息
  286. */
  287. @GetMapping("/selectfindByreferrerId")
  288. public HttpResult findByReferrerId(@Valid String deptId) {
  289. return HttpResult.ok(sysUserService.findByReferrerId(deptId));
  290. }
  291. /**
  292. * 根据部门id查询后线人员的所有人信息
  293. */
  294. @ApiOperation(value = "获取后线人员信息")
  295. @GetMapping("/findBackListByDeptId")
  296. public HttpResult findBackListByDeptId(String deptId) {
  297. return HttpResult.ok(sysUserService.findBackListByDeptId(deptId));
  298. }
  299. /**
  300. * 根据部门id查询该部门的所有人信息
  301. */
  302. @PostMapping("/findListByDeptId")
  303. public HttpResult findListByDeptId(@RequestBody SysUser sysUser) {
  304. return HttpResult.ok(sysUserService.findListByDeptId(sysUser));
  305. }
  306. /**
  307. * @author: lig
  308. * @date: 2023年06月30日 0030
  309. */
  310. @ApiOperation(value = "(重构)保存或更新")
  311. @PostMapping(value = "/saveOrUpdate")
  312. @Transactional
  313. public HttpResult saveOrUpdate(@RequestBody SysUser sysUser) {
  314. if (StringUtils.isNullOrEmpty(sysUser.getMobile())) {
  315. return HttpResult.error("手机不能为空");
  316. }
  317. if (StringUtils.isNullOrEmpty(sysUser.getDeptId())) {
  318. return HttpResult.error("机构ID不能为空");
  319. }
  320. //处理密码
  321. if (StringUtils.isNotEmpty(sysUser.getPassword())) {
  322. String salt = PasswordUtils.getSalt();
  323. String pwd = PasswordUtils.encode(sysUser.getPassword(), salt);
  324. sysUser.setPassword(pwd);
  325. sysUser.setSalt(salt);
  326. }
  327. sysUserService.saveUser(sysUser);
  328. return HttpResult.ok(sysUser);
  329. }
  330. @ApiOperation(value = "(重构)逻辑删除")
  331. @PostMapping(value = "/logicDeleteBatch")
  332. public HttpResult logicDeleteBatch(@RequestBody List<String> userIds) {
  333. if (null != userIds && !userIds.isEmpty()) {
  334. LambdaUpdateWrapper<SysUser> luw = new LambdaUpdateWrapper<>();
  335. luw.set(SysUser::getStatus, "0");
  336. luw.in(SysUser::getId, userIds);
  337. sysUserService.update(luw);
  338. return HttpResult.ok();
  339. }
  340. return HttpResult.error("请正确选择参数");
  341. }
  342. @ApiOperation(value = "(重构)用户查询分页")
  343. @PostMapping(value = "/findPage")
  344. public HttpResult<PageVo<SysUserBaseVO>> findPage(@RequestBody PageDto<SysUserDto> pageDto) {
  345. //获取用户角色
  346. SysUser user = getUser();
  347. //如果查询后线人员
  348. // if (RoleConstants.R22.getCode().equals(pageDto.getDto().getRoleId())) {
  349. // if (RoleConstants.R17.getCode().equals(user.getRoleId())) {
  350. // pageDto.getDto().setRoleId("18,22");
  351. // } else if (RoleConstants.R18.getCode().equals(user.getRoleId())) {
  352. // pageDto.getDto().setRoleId("22");
  353. // }
  354. // }
  355. if (RoleConstants.R22.getCode().equals(pageDto.getDto().getRoleId())) {
  356. pageDto.getDto().setRoleId("17,18,22,23,24,25,28,29,30,31,32,38");
  357. }
  358. //设置登录用户的部门
  359. if ("".equals(pageDto.getDto().getDeptId()) || null == pageDto.getDto().getDeptId()) {
  360. pageDto.getDto().setDeptId(user.getDeptId());
  361. }
  362. return HttpResult.ok(sysUserService.gainUserPage(pageDto));
  363. }
  364. @ApiOperation(value = "渠道、个代、电销 的用户查询分页")
  365. @PostMapping(value = "/findUserList")
  366. public HttpResult findUserList(@RequestBody PageDto<SysUserDto> pageDto) {
  367. if (pageDto.getDto().getDeptId() == null) {
  368. pageDto.getDto().setDeptId(BaseController.getDeptId());
  369. }
  370. return HttpResult.ok(sysUserService.findUserList(pageDto));
  371. }
  372. @ApiOperation(value = "后线用户查询分页")
  373. @PostMapping(value = "/findBackUserList")
  374. public HttpResult findBackUserList(@RequestBody SysUserDto sysUserDto) {
  375. if (sysUserDto.getDeptId() == null) {
  376. sysUserDto.setDeptId(BaseController.getDeptId());
  377. }
  378. return HttpResult.ok(sysUserService.findBackUserList(sysUserDto));
  379. }
  380. @ApiOperation(value = "后线用户查询不分页(编辑时查询领导人)")
  381. @PostMapping(value = "/findBackUserList1")
  382. public HttpResult findBackUserList1(@RequestBody SysUserDto sysUserDto) {
  383. if (sysUserDto.getDeptId() == null) {
  384. sysUserDto.setDeptId(BaseController.getDeptId());
  385. }
  386. return HttpResult.ok(sysUserService.findBackUserList1(sysUserDto));
  387. }
  388. @ApiOperation(value = "渠道数据统计")
  389. @PostMapping(value = "/quTeamNum")
  390. public HttpResult quTeamNum(@RequestBody QuTeamNumDto quTeamNumDto) {
  391. return HttpResult.ok("", sysUserService.quTeamNum(quTeamNumDto));
  392. }
  393. @ApiOperation(value = "渠道数据统计详情")
  394. @PostMapping(value = "/quTeamNumDetail")
  395. public HttpResult quTeamNumDetail(@RequestBody QuTeamNumDto quTeamNumDto) {
  396. return HttpResult.ok("", sysUserService.getQuTeamByCompany(quTeamNumDto));
  397. }
  398. @ApiOperation(value = "(重构)审批通过")
  399. @ApiImplicitParams({
  400. @ApiImplicitParam(name = "userId", value = "用户ID")
  401. })
  402. @GetMapping(value = "/approvalPass")
  403. public HttpResult approvalPass(@RequestParam String userId) {
  404. SysUser sysUser = sysUserService.getById(userId);
  405. if (Objects.equals(sysUser.getStatus(), UserWorkStatus.UWS_2.getCode())) {
  406. sysUser.setStatus(UserWorkStatus.UWS_1.getCode());
  407. } else if (Objects.equals(sysUser.getStatus(), UserWorkStatus.UWS_4.getCode())) {
  408. sysUser.setStatus(UserWorkStatus.UWS_0.getCode());
  409. } else if (Objects.equals(sysUser.getStatus(), UserWorkStatus.UWS_6.getCode())) {
  410. sysUser.setStatus(UserWorkStatus.UWS_1.getCode());
  411. }
  412. SysUserTrack sysUserTrack = new SysUserTrack(sysUser);
  413. sysUserTrackService.save(sysUserTrack);
  414. return HttpResult.ok(sysUserService.updateById(sysUser));
  415. }
  416. @ApiOperation(value = "(重构)审批不通过")
  417. @ApiImplicitParams({
  418. @ApiImplicitParam(name = "userId", value = "用户ID"),
  419. @ApiImplicitParam(name = "reason", value = "原因")
  420. })
  421. @GetMapping(value = "/approvalNotPass")
  422. public HttpResult<Boolean> approvalNotPass(@RequestParam String userId, @RequestParam String reason) {
  423. SysUser sysUser = sysUserService.getById(userId);
  424. if (Objects.equals(sysUser.getStatus(), UserWorkStatus.UWS_2.getCode())) {
  425. sysUser.setStatus(UserWorkStatus.UWS_3.getCode());
  426. } else if (Objects.equals(sysUser.getStatus(), UserWorkStatus.UWS_4.getCode())) {
  427. sysUser.setStatus(UserWorkStatus.UWS_5.getCode());
  428. } else if (Objects.equals(sysUser.getStatus(), UserWorkStatus.UWS_6.getCode())) {
  429. sysUser.setStatus(UserWorkStatus.UWS_7.getCode());
  430. }
  431. SysUserTrack sysUserTrack = new SysUserTrack(sysUser);
  432. sysUserTrack.setApproveMess(reason);
  433. sysUserTrackService.save(sysUserTrack);
  434. return HttpResult.ok(sysUserService.updateById(sysUser));
  435. }
  436. @Autowired
  437. private SysUserBankCardService sysUserBankCardService;
  438. @ApiOperation(value = "(重构)获取用户")
  439. @ApiImplicitParams({
  440. @ApiImplicitParam(name = "userId", required = true, value = "用户ID")
  441. })
  442. @GetMapping(value = "/{userId}")
  443. public HttpResult findUserById(@PathVariable String userId) {
  444. SysUserInfoQuery sysUserVo = new SysUserInfoQuery();
  445. // 查询用户
  446. SysUser sysUser = sysUserService.getById(userId);
  447. // 查询角色
  448. SysUserRole sysUserRole = sysUserRoleService.selectByUserId(userId);
  449. // SysUserRole sysUserRole = sysUserRoleService.getById(userId);
  450. if (!ObjectUtils.isEmpty(sysUserRole)) {
  451. sysUser.setRoleId(StringUtils.toString(sysUserRole.getRoleId()));
  452. }
  453. //查询 机构的上级
  454. SysDept sysDept = sysDeptService.getById(sysUser.getDeptId());
  455. sysUser.setPdeptId(sysDept.getParentId());
  456. if ("19".equals(sysUser.getRoleId())) {
  457. SysUser operator = sysUserService.getById(sysUser.getOperatorCode());
  458. sysUser.setReferrerId(operator != null ? operator.getId() : "");
  459. sysUser.setReferrerName(operator != null ? operator.getName() : "");
  460. sysUserVo.setSysUser(sysUser);
  461. List<EsmUserImageQueryVo> esmUserImageQueryVo = esmUserImageService.getEsmUserImageQueryVo(userId);
  462. sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
  463. sysUserVo.setSysUserInfo(sysUserInfoService.getById(userId));
  464. SpringUtil.getBean(RecordUserUtils.class).addRecord(userId,BaseController.getUserName());
  465. return HttpResult.ok(sysUserVo);
  466. }
  467. // 查询推荐人
  468. EsmUserReferrer referrer = esmUserReferrerService.getById(userId);
  469. if (ObjectUtils.isEmpty(referrer)) {
  470. sysUser.setReferrerId(null);
  471. sysUser.setReferrerName(null);
  472. } else {
  473. sysUser.setReferrerId(referrer.getReferrerId());
  474. sysUser.setReferrerName(referrer.getReferrerName());
  475. }
  476. //查询详情信息
  477. SysUserInfo userInfo = sysUserInfoService.getById(userId);
  478. String addr = Optional.ofNullable(userInfo).map(SysUserInfo::getLiveAddress).orElse(null);
  479. if (StringUtils.isNotEmpty(addr)){
  480. userInfo.setLiveAddressString(addr.split(","));
  481. }
  482. //查询用户绑定的银行卡信息
  483. SysUserBankCard queryBank = new SysUserBankCard();
  484. queryBank.setUserId(userId);
  485. queryBank.setAuditStatus("1");
  486. HttpResult<List<SysUserBankCard>> userBankList = sysUserBankCardService.getUserBankListByQueryParam(queryBank);
  487. if (!Objects.isNull(userInfo)) {
  488. if (userBankList.getData().isEmpty()) {
  489. userInfo.setBankName(null);
  490. userInfo.setAccountno(null);
  491. } else {
  492. userInfo.setBankName(userBankList.getData().get(0).getBankAccount());
  493. userInfo.setAccountno(userBankList.getData().get(0).getBankNumber());
  494. }
  495. }
  496. List<EsmUserImageQueryVo> esmUserImageQueryVo = esmUserImageService.getEsmUserImageQueryVo(userId);
  497. sysUserVo.setSysUser(sysUser);
  498. sysUserVo.setSysUserInfo(userInfo);
  499. sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
  500. //初始化添加人员修改记录
  501. SpringUtil.getBean(RecordUserUtils.class).addRecord(userId,BaseController.getUserName());
  502. return HttpResult.ok(sysUserVo);
  503. }
  504. @ApiOperation(value = "(new)获取登录用户")
  505. @GetMapping(value = "/loginUser")
  506. public HttpResult loginUser() {
  507. SysUser sysUser = sysUserService.getById(getUserId());
  508. SysRole sysRole = sysUserRoleService.gainRoleByUserId(sysUser.getId());
  509. if (null != sysRole) {
  510. sysUser.setRoleId(StringUtils.toString(sysRole.getId()));
  511. sysUser.setRoleName(sysRole.getName());
  512. }
  513. if (StringUtils.isNotEmpty(sysUser.getDeptId())) {
  514. SysDept sysDept = sysDeptService.getById(sysUser.getDeptId());
  515. sysUser.setDeptName(sysDept.getName());
  516. sysUser.setIsHasAddUser(sysDept.getManagementSource() != null ? 1 : 0);
  517. sysUser.setManagementSource(sysDept.getManagementSource());
  518. }
  519. EsmUserReferrer eur = esmUserReferrerService.getById(sysUser.getId());
  520. if (null != eur) {
  521. sysUser.setReferrerId(eur.getReferrerId());
  522. sysUser.setReferrerName(eur.getReferrerName());
  523. }
  524. InsUploadFiles insUploadFiles = insUploadFilesService.getById(sysUser.getHeadSculpture());
  525. if (null != insUploadFiles) {
  526. sysUser.setHeadSculpture(insUploadFiles.getUrl());
  527. }
  528. return HttpResult.ok(sysUser);
  529. }
  530. @ApiOperation(value = "获取可选业务员列表")
  531. @GetMapping(value = "/getAllUsers")
  532. public HttpResult getAllUsers(@RequestParam(required = false) String userId) {
  533. List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId, "20");
  534. return HttpResult.ok(userList);
  535. }
  536. @ApiOperation(value = "(new)是否绑定微信")
  537. @GetMapping(value = "/isBindWechat")
  538. public HttpResult<Object> isBindWechat() {
  539. SysUser sysUser = sysUserService.getById(getUserId());
  540. String openid = sysUser.getOpenid();
  541. AssertionUtils.isStringEmpty(openid, "未绑定微信");
  542. return HttpResult.ok();
  543. }
  544. /**
  545. * 个代注册、出单员注册
  546. *
  547. * @author: lig
  548. * @date: 2023年07月03日 0003
  549. */
  550. @ApiOperation(value = "(new)个代/出单员注册")
  551. @PostMapping(value = "/agentRegist")
  552. @Transactional
  553. public HttpResult agentRegist(@RequestBody AgentUserDto dto) {
  554. int noCount = 3;//顺序号是几位的
  555. List<SysUser> list = sysUserService.lambdaQuery().eq(SysUser::getMobile, dto.getMobile()).list();
  556. if (!list.isEmpty()) {
  557. throw new SystemException("手机号已经被注册请重新跟换手机号。如有疑问请联系管理人员。");
  558. }
  559. if (StringUtils.isNullOrEmpty(dto.getFlag())) {
  560. return HttpResult.error("个代、出单员标识不能为空");
  561. }
  562. if (StringUtils.isNullOrEmpty(dto.getMobile()) || StringUtils.isNullOrEmpty(dto.getMobileMsg())) {
  563. return HttpResult.error("手机号、验证码不能为空");
  564. }
  565. if (StringUtils.isNullOrEmpty(dto.getName())) {
  566. return HttpResult.error("姓名不能为空");
  567. }
  568. if (StringUtils.isNullOrEmpty(dto.getPassword())) {
  569. return HttpResult.error("密码不能为空");
  570. }
  571. if (StringUtils.isNullOrEmpty(dto.getReferrerId())) {
  572. return HttpResult.error("推荐人不能为空");
  573. }
  574. String captcha_redis = (String) redisTemplate.opsForValue().get(PHONE_VERIFICATION_CODE_KEY + dto.getMobile());
  575. redisTemplate.delete(PHONE_VERIFICATION_CODE_KEY + dto.getMobile());
  576. if (captcha_redis == null) {
  577. return HttpResult.error("验证码已失效");
  578. }
  579. if (!dto.getMobileMsg().equals(captcha_redis)) {
  580. return HttpResult.error("验证码错误");
  581. }
  582. String recommenderid = dto.getReferrerId();
  583. SysUser recommender = sysUserService.getById(recommenderid);
  584. if (recommender == null) {
  585. return HttpResult.error("推荐人信息不存在");
  586. }
  587. SysUser reUser = sysUserService.getByUserId(recommenderid);
  588. //个代
  589. UnionPayResponse response = new UnionPayResponse();
  590. if ("2".equals(reUser.getManagementSource())) {
  591. if (StringUtils.isNullOrEmpty(dto.getIdentity())) {
  592. return HttpResult.error("机构来源为个代的证件号不能为空");
  593. }
  594. UnionPayRequest request = new UnionPayRequest();
  595. request.setName(dto.getName());
  596. request.setPhoneNo(dto.getMobile());
  597. request.setCertNo(dto.getIdentity());
  598. response = unionPayRequestApiComponent.threeFactorVerifyRequest(request);
  599. if (response != null&&!"00".equals(response.getRespCode())) {
  600. return HttpResult.error("认证信息不一致:"+response.getDetailRespMsg());
  601. }
  602. }
  603. //只有团队长和代理人才能邀请 by gws
  604. SysUserRole recommenderRole = sysUserRoleService.selectByUserId(recommenderid);
  605. if (!"20".equals(recommenderRole.getRoleId().toString()) && !"21".equals(recommenderRole.getRoleId().toString())) {
  606. return HttpResult.error("只有团队长和代理人才能推荐");
  607. }
  608. SysUser sysUser = sysUserService.findByPhone(dto.getMobile());
  609. if (sysUser != null) {
  610. return HttpResult.error("手机号已存在");
  611. } else {
  612. sysUser = new SysUser();
  613. }
  614. String nextPK;
  615. //根据机构号获取userid最大值,不需要加人员类型判断 从sys_user获取
  616. String maxId = sysUserService.findMaxId(recommender.getDeptId());
  617. if (StringUtils.isNullOrEmpty(maxId)) {
  618. nextPK = recommender.getDeptId() + "001";
  619. } else {
  620. nextPK = IdGenerate.nextCode(maxId, noCount);
  621. }
  622. sysUser.setName(dto.getName());
  623. sysUser.setMobile(dto.getMobile());
  624. sysUser.setDeptId(recommender.getDeptId());
  625. //密码加密
  626. String salt = PasswordUtils.getSalt();
  627. String password = PasswordUtils.encode(dto.getPassword(), salt);
  628. sysUser.setPassword(password);
  629. sysUser.setSalt(salt);
  630. sysUser.setStatus("2".equals(dto.getFlag()) ? 2 : 1);//1:正常 2:审批中
  631. sysUser.setId(nextPK);
  632. sysUser.setCreateBy("admin");
  633. if ("1".equals(dto.getFlag())) {
  634. sysUser.setOperatorCode(recommenderid);
  635. }
  636. sysUser.setIdentity(dto.getIdentity());
  637. sysUser.setFactorVerify(response != null && "00".equals(response.getRespCode())? 1:0);
  638. sysUserService.save(sysUser);
  639. //角色配置
  640. SysUserRole userRole = new SysUserRole();
  641. userRole.setUserId(nextPK);
  642. userRole.setRoleId(dto.getFlag().equals("2") ? 20L : 19L);
  643. sysUserRoleService.save(userRole);
  644. //添加增员服务消息
  645. //添加订单消息
  646. messageSecretaryService.addMessage(MessageTypeConstants.M_6, dto.getReferrerId(),
  647. dto.getMobile() + "(" + dto.getName() + ")" + "进行注册,请立即审核.");
  648. if ("2".equals(dto.getFlag())) {
  649. esmUserReferrerService.addReferrer(dto.getReferrerId(), nextPK);
  650. }
  651. return HttpResult.ok("保存成功", sysUser.getId());
  652. }
  653. @GetMapping(value = "/findUserInfo/{userId}")
  654. @ApiOperation(value = "获取用户信息")
  655. @ApiImplicitParams({
  656. @ApiImplicitParam(name = "userId", value = "用户信息", required = true, dataType = "String")
  657. })
  658. //@SaCheckPermission("sys:menu:add")
  659. public HttpResult findUserInfo(@PathVariable String userId) {
  660. return HttpResult.ok(sysUserInfoService.getById(userId));
  661. }
  662. @ApiOperation(value = "保存用户基本详情信息")
  663. @PostMapping(value = "/saveUserInfo")
  664. public HttpResult saveUserInfo(@RequestBody SysUser2Vo sysUserVo) {
  665. //by gws 21 团队长 20 代理人 必须归属团队
  666. // 22 后线人员 必须归属部门
  667. SysUser sysUser = sysUserVo.getSysUser();
  668. if (StringUtils.isNullOrEmpty(sysUser)) {
  669. return HttpResult.error("用户信息不能为空");
  670. }
  671. if (StringUtils.isNullOrEmpty(sysUser.getDeptId())) {
  672. return HttpResult.error("机构ID不能为空");
  673. }
  674. if (StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
  675. throw new SystemException("角色id不能为空");
  676. }
  677. //获取机构层级
  678. int deptLevel = sysUserService.getDeptLevel(sysUserVo);
  679. if (!StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
  680. if (RoleConstants.R21.getCode().equals(sysUser.getRoleId())
  681. || RoleConstants.R20.getCode().equals(sysUser.getRoleId())
  682. || RoleConstants.R19.getCode().equals(sysUser.getRoleId())) {//19 出单员 21 团队长 20 代理人
  683. if (deptLevel != 6) {
  684. throw new SystemException("团队长、代理人、出单员只能归属团队中");
  685. }
  686. //如果为团队长,判断是否已经存在团队长,存在不允许添加 add by hxl 2024-05-07 ============begin
  687. if (RoleConstants.R21.getCode().equals(sysUser.getRoleId())) {
  688. int count = sysUserService.getCountByDeptAndRoleId(sysUser);
  689. if (count > 0) {
  690. throw new SystemException("该机构已存在团队长,不允许再添加!!");
  691. }
  692. }
  693. // =========================add by hxl end ====================
  694. } else if (RoleConstants.R18.getCode().equals(sysUser.getRoleId())) { // 42 门店长
  695. if (deptLevel != 5) {
  696. throw new SystemException("机构管理员只能归属机构中");
  697. }
  698. } else if (RoleConstants.R17.getCode().equals(sysUser.getRoleId())) {
  699. if (deptLevel != 4) {
  700. throw new SystemException("部长只能归属于4级");
  701. }
  702. }
  703. }
  704. return sysUserService.saveUserInfo(sysUserVo);
  705. }
  706. @ApiOperation(value = "修改用户详情信息")
  707. @PostMapping(value = "/updateUserInfo/{userId}")
  708. @ApiImplicitParams({
  709. @ApiImplicitParam(name = "userId", value = "用户信息", required = true, dataType = "String")
  710. })
  711. @Transactional
  712. public HttpResult updateUserInfo(@PathVariable String userId, @RequestBody SysUser2Vo sysUserVo) {
  713. return sysUserService.updateUserInfo(userId, sysUserVo);
  714. }
  715. @ApiOperation(value = "获取推荐人分页信息")
  716. @PostMapping(value = "/referrerFindPage")
  717. public HttpResult<PageVo<SysReferrerVo>> referrerFindPage(@RequestBody PageDto<SysReferrerVo> pageDto) {
  718. return esmUserReferrerService.gainReferrerPage(pageDto);
  719. }
  720. @PostMapping(value = "/realNameAuth")
  721. @ApiOperation(value = "实名认证", notes = "参数1:姓名" +
  722. "</br>参数2:身份证号")
  723. public HttpResult realNameAuth(@RequestBody BaseDto dto) {
  724. SysUser sysUser = sysUserService.getById(getUserId());
  725. sysUser.setName(dto.getParam1());
  726. sysUser.setIdentity(dto.getParam2());
  727. // sysUser.setStatus(1);
  728. return HttpResult.ok(sysUserService.updateById(sysUser));
  729. }
  730. @PostMapping("/modifyingTheAvatar")
  731. @ApiOperation(value = "修改头像")
  732. public HttpResult modifyingTheAvatar(@RequestSingleParam("imagesId") String imagesId) {
  733. SysUser sysUser = sysUserService.getById(getUserId());
  734. sysUser.setHeadSculpture(imagesId);
  735. sysUserService.updateById(sysUser);
  736. return HttpResult.ok();
  737. }
  738. @ApiOperation(value = "根据传入机构,查询所有人员")
  739. @GetMapping(value = "/findUserList")
  740. public HttpResult findUserList(String deptId) {
  741. return HttpResult.ok(sysUserService.findUserList(deptId));
  742. }
  743. @ApiOperation(value = "获取树结构")
  744. @GetMapping(value = "/findTree")
  745. public HttpResult<List<SysUser>> findTree() {
  746. List<SysUser> list = sysUserService.findTree();
  747. return HttpResult.ok(list);
  748. }
  749. /**
  750. * 获取当前用户的下级所有人员
  751. * @return
  752. */
  753. @ApiOperation(value = "获取当前用户的下级所有人员")
  754. @GetMapping(value = "/findNextTree")
  755. public HttpResult<List<SysUser>> findNextTree() {
  756. List<SysUser> list = sysUserService.findNextTree();
  757. return HttpResult.ok(list);
  758. }
  759. /**
  760. * 获取当前用户的所有代理人
  761. * @return
  762. */
  763. @ApiOperation(value = "获取代理人树形")
  764. @GetMapping(value = "/findNextAgentTree")
  765. public HttpResult<List<SysUser>> findNextAgentTree(String pid) {
  766. List<SysUser> list = sysUserService.findNextAgentTree( pid);
  767. return HttpResult.ok(list);
  768. }
  769. @ApiOperation(value = "渠道区域业绩管理")
  770. @PostMapping(value = "/quUserNum")
  771. public HttpResult quUserNum(@RequestBody QuUserNumDto quUserNumDto) {
  772. return HttpResult.ok("", sysUserService.quUserNum(quUserNumDto));
  773. }
  774. @ApiOperation(value = "渠道区域业绩地区管理详情")
  775. @PostMapping(value = "/quUserNumDetail")
  776. public HttpResult quUserNumDetail(@RequestBody QuUserNumDto quUserNumDto) {
  777. return HttpResult.ok("", sysUserService.getQuUserByCompany(quUserNumDto));
  778. }
  779. @ApiOperation(value = "个代区域业绩管理")
  780. @PostMapping(value = "quAgentAreaAdmin")
  781. public HttpResult quAgentAreaAdmin(@RequestBody QuUserNumDto quUserNumDto) {
  782. return HttpResult.ok("", sysUserService.quAgentAreaAdmin(quUserNumDto));
  783. }
  784. @ApiOperation(value = "个代区域业绩地区管理详情")
  785. @PostMapping(value = "/quAgentAreaAdminDetail")
  786. public HttpResult quAgentAreaAdminDetail(@RequestBody QuUserNumDto quUserNumDto) {
  787. return HttpResult.ok("", sysUserService.quAgentAreaAdminDetail(quUserNumDto));
  788. }
  789. /**
  790. * @version
  791. * @author: hxl
  792. * @Date: 2024/4/16 16:16
  793. * @Description: 获取待客录入可选业务员列表 通过工号、姓名、手机号、身份证号
  794. */
  795. @ApiOperation(value = "获取待客录入可选业务员列表 通过工号、姓名、手机号、身份证号")
  796. @PostMapping(value = "/getAllUsersByHospitality")
  797. public HttpResult getAllUsersByHospitality(@RequestBody SysUserVOExt sysUserVOExt) {
  798. try {
  799. List<SysUserBaseVO> userList = sysUserService.getAllUsersByHospitality(sysUserVOExt);
  800. return HttpResult.ok(userList);
  801. } catch (Exception e) {
  802. return HttpResult.error("查询失败" + e.getMessage());
  803. }
  804. }
  805. /**
  806. * @version
  807. * @author: hxl
  808. * @Date: 2024/4/18 16:12
  809. * @Description: 查询客服人员列表数据
  810. */
  811. @ApiOperation(value = "获取客服人员列表数据")
  812. @PostMapping(value = "/getCustomerUsers")
  813. public HttpResult getCustomerUsers() {
  814. try {
  815. List<SysUserBaseVO> userList = sysUserService.getCustomerUsers();
  816. return HttpResult.ok(userList);
  817. } catch (Exception e) {
  818. return HttpResult.error("查询失败" + e.getMessage());
  819. }
  820. }
  821. /**
  822. * @version
  823. * @author: whp
  824. * @Date: 2024/10/12 16:12
  825. * @Description: 机构人员树
  826. */
  827. @ApiOperation(value = "获取机构人员树")
  828. @PostMapping(value = "/getTreeDeptUser")
  829. public HttpResult getTreeDeptUser() {
  830. try {
  831. List<SysDeptTreeVo> userList = sysUserService.getTreeDeptUser();
  832. return HttpResult.ok(userList);
  833. } catch (Exception e) {
  834. return HttpResult.error("查询失败" + e.getMessage());
  835. }
  836. }
  837. /**
  838. * @version
  839. * @author: whp
  840. * @Date: 2024/10/12 16:12
  841. * @Description: 机构人员树
  842. */
  843. @ApiOperation(value = "获取机构人员树")
  844. @GetMapping(value = "/getTreeUser")
  845. public HttpResult getTreeUser() {
  846. try {
  847. List<SysUser> userList = sysUserService.getTreeUser();
  848. return HttpResult.ok(userList);
  849. } catch (Exception e) {
  850. return HttpResult.error("查询失败" + e.getMessage());
  851. }
  852. }
  853. /**
  854. * @version
  855. * @author: hxl
  856. * @Date: 2024/7/11 16:04
  857. * @Description: 查询的所有的后线人员
  858. */
  859. @ApiOperation(value = "后线用户查询不分页(编辑时查询领导人)")
  860. @GetMapping(value = "/findHxUserList")
  861. public HttpResult findHxUserList() {
  862. return HttpResult.ok(sysUserService.findHxUserList());
  863. }
  864. @ApiOperation(value = "离职申请")
  865. @PostMapping("/departApply")
  866. public HttpResult departApply(@RequestBody SysUser2Vo sysUserVO) {
  867. return sysUserService.departApply(sysUserVO) ? HttpResult.ok("离职申请提交成功") : HttpResult.error("离职申请提交失败");
  868. }
  869. @ApiOperation(value = "离职恢复")
  870. @GetMapping("/separationReinstatement/{userId}")
  871. public HttpResult separationReinstatement(@PathVariable String userId) {
  872. sysUserService.separationReinstatement(userId);
  873. return HttpResult.ok("恢复成功");
  874. }
  875. /**
  876. * @version
  877. * @author: hxl
  878. * @Date: 2024/4/18 16:12
  879. * @Description: 查询修改记录
  880. */
  881. @ApiOperation(value = "查询修改记录")
  882. @GetMapping(value = "/getUserModificationRecords")
  883. public HttpResult getUserModificationRecords(@RequestParam("userId") String userId) throws IllegalAccessException {
  884. List<SysUserRecord> userList = SpringUtil.getBean(SysUserRecordMapper.class).queryByUserId(userId);
  885. if (CollectionUtils.isEmpty(userList)){
  886. return HttpResult.ok(new ArrayList[0]);
  887. }
  888. SysUserInfoQuery sysUserVo = new SysUserInfoQuery();
  889. // 查询用户
  890. SysUser sysUser = sysUserService.getById(userId);
  891. // 查询角色
  892. SysUserRole sysUserRole = sysUserRoleService.selectByUserId(userId);
  893. // SysUserRole sysUserRole = sysUserRoleService.getById(userId);
  894. if (!ObjectUtils.isEmpty(sysUserRole)) {
  895. sysUser.setRoleId(StringUtils.toString(sysUserRole.getRoleId()));
  896. }
  897. //查询 机构的上级
  898. SysDept sysDept = sysDeptService.getById(sysUser.getDeptId());
  899. sysUser.setPdeptId(sysDept.getParentId());
  900. if ("19".equals(sysUser.getRoleId())) {
  901. SysUser operator = sysUserService.getById(sysUser.getOperatorCode());
  902. sysUser.setReferrerId(operator != null ? operator.getId() : "");
  903. sysUser.setReferrerName(operator != null ? operator.getName() : "");
  904. sysUserVo.setSysUser(sysUser);
  905. sysUserVo.setSysUserInfo(sysUserInfoService.getById(userId));
  906. List<EsmUserImageQueryVo> esmUserImageQueryVo = esmUserImageService.getEsmUserImageQueryVo(userId);
  907. sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
  908. return HttpResult.ok(DifferentPropertyUtils.ModificationRecordData(sysUserVo, userList));
  909. }
  910. // 查询推荐人
  911. EsmUserReferrer referrer = esmUserReferrerService.getById(userId);
  912. if (ObjectUtils.isEmpty(referrer)) {
  913. sysUser.setReferrerId(null);
  914. sysUser.setReferrerName(null);
  915. } else {
  916. sysUser.setReferrerId(referrer.getReferrerId());
  917. sysUser.setReferrerName(referrer.getReferrerName());
  918. }
  919. //查询详情信息
  920. SysUserInfo userInfo = sysUserInfoService.getById(userId);
  921. if (StringUtils.isNotEmpty(userInfo.getLiveAddress())){
  922. userInfo.setLiveAddressString(userInfo.getLiveAddress().split(","));
  923. }
  924. //查询用户绑定的银行卡信息
  925. SysUserBankCard queryBank = new SysUserBankCard();
  926. queryBank.setUserId(userId);
  927. queryBank.setAuditStatus("1");
  928. HttpResult<List<SysUserBankCard>> userBankList = sysUserBankCardService.getUserBankListByQueryParam(queryBank);
  929. if (!Objects.isNull(userInfo)) {
  930. if (userBankList.getData().isEmpty()) {
  931. userInfo.setBankName(null);
  932. userInfo.setAccountno(null);
  933. } else {
  934. userInfo.setBankName(userBankList.getData().get(0).getBankAccount());
  935. userInfo.setAccountno(userBankList.getData().get(0).getBankNumber());
  936. }
  937. }
  938. List<EsmUserImageQueryVo> esmUserImageQueryVo = esmUserImageService.getEsmUserImageQueryVo(userId);
  939. sysUserVo.setSysUser(sysUser);
  940. sysUserVo.setSysUserInfo(userInfo);
  941. sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
  942. return HttpResult.ok(DifferentPropertyUtils.ModificationRecordData(sysUserVo, userList));
  943. }
  944. /**
  945. * 代理人和渠道添加批量设置管理人
  946. */
  947. @PostMapping("updateManagementPersonnel")
  948. public HttpResult updateManagementPersonnel(@RequestBody UpdateManagementDto managementDto){
  949. return sysUserService.updateManagementPersonnel(managementDto);
  950. }
  951. /**
  952. * 代理人和渠道取消管理人
  953. */
  954. @PostMapping("cancelManagementPersonnel")
  955. public HttpResult cancelManagementPersonnel(@RequestBody UpdateManagementDto managementDto){
  956. return sysUserService.cancelManagementPersonnel(managementDto);
  957. }
  958. /**
  959. * @version
  960. * @author: hxl
  961. * @Date: 2024/7/11 16:04
  962. * @Description: 查询的所有的后线人员
  963. */
  964. @ApiOperation(value = "后线用户查询不分页(管理人设置)")
  965. @PostMapping(value = "/selectHxUserList")
  966. public HttpResult selectHxUserList(@RequestBody SysUserDto sysUserDto) {
  967. return HttpResult.ok(sysUserService.selectHxUserList(sysUserDto));
  968. }
  969. /**
  970. * 代理人和渠道用户查询
  971. */
  972. @PostMapping("selectForAgentsAndChannelsPage")
  973. public HttpResult selectForAgentsAndChannelsPage(@RequestBody PageDto<SysUserDto> pageDto){
  974. return HttpResult.ok(sysUserService.selectForAgentsAndChannelsPage(pageDto));
  975. }
  976. /**
  977. * @version
  978. * @author: hxl
  979. * @Date: 2024/9/24 17:37
  980. * @Description: 电销管理人数据列表
  981. */
  982. @ApiOperation(value = "电销管理人数据列表")
  983. @GetMapping(value = "/findDxUserList")
  984. public HttpResult findDxUserList() {
  985. return HttpResult.ok(sysUserService.findDxUserList());
  986. }
  987. }