SysUserController.java 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750
  1. package com.ydtech.modules.admin.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.ydtech.constants.SysConstants;
  7. import com.ydtech.core.page.HttpResult;
  8. import com.ydtech.core.page.PageRequest;
  9. import com.ydtech.core.page.PageResult;
  10. import com.ydtech.exception.SystemException;
  11. import com.ydtech.modules.admin.model.*;
  12. import com.ydtech.modules.admin.model.dto.AgentUserDto;
  13. import com.ydtech.modules.admin.model.dto.SysUserDto;
  14. import com.ydtech.modules.admin.model.vo.*;
  15. import com.ydtech.modules.admin.service.*;
  16. import com.ydtech.modules.base.controller.BaseController;
  17. import com.ydtech.modules.base.model.dto.BaseDto;
  18. import com.ydtech.modules.base.model.dto.PageDto;
  19. import com.ydtech.modules.base.model.vo.PageVo;
  20. import com.ydtech.modules.esm.model.EsmUserReferrer;
  21. import com.ydtech.modules.esm.model.vo.EsmUserImageQueryVo;
  22. import com.ydtech.modules.esm.service.EsmUserImageService;
  23. import com.ydtech.modules.esm.service.EsmUserReferrerService;
  24. import com.ydtech.modules.protocol.utils.AssertionUtils;
  25. import com.ydtech.security.utils.PasswordUtils;
  26. import com.ydtech.utils.StringUtils;
  27. import com.ydtech.utils.excel.ExcelEasypoiUtils;
  28. import com.ydtech.utils.idgen.IdGenerate;
  29. import io.swagger.annotations.Api;
  30. import io.swagger.annotations.ApiImplicitParam;
  31. import io.swagger.annotations.ApiImplicitParams;
  32. import io.swagger.annotations.ApiOperation;
  33. import lombok.RequiredArgsConstructor;
  34. import org.springframework.transaction.annotation.Transactional;
  35. import org.springframework.util.ObjectUtils;
  36. import org.springframework.web.bind.annotation.*;
  37. import org.springframework.web.multipart.MultipartFile;
  38. import javax.validation.Valid;
  39. import java.io.IOException;
  40. import java.util.Date;
  41. import java.util.List;
  42. import java.util.stream.Collectors;
  43. /**
  44. * 用户控制器
  45. *
  46. * @author Yasepix
  47. * @date Oct 29, 2018
  48. */
  49. @RestController
  50. @Api(tags = "用户控制器")
  51. @RequestMapping("user")
  52. @RequiredArgsConstructor
  53. public class SysUserController extends BaseController {
  54. private final SysUserService sysUserService;
  55. private final SysUserRoleService sysUserRoleService;
  56. private final SysDeptService sysDeptService;
  57. private final SysUserInfoService sysUserInfoService;
  58. private final EsmUserReferrerService esmUserReferrerService;
  59. private final SysRoleService sysRoleService;
  60. private final EsmUserImageService esmUserImageService;
  61. // @PreAuthorize("hasAuthority('sys:user:delete')")
  62. @ApiOperation(value = "逻辑删除")
  63. @PostMapping(value = "/deleteFlag")
  64. public HttpResult deleteFlag(@RequestBody List<SysUser> records) {
  65. for (SysUser record : records) {
  66. SysUser sysUser = sysUserService.getById(record.getId());
  67. if (sysUser != null && SysConstants.ADMIN.equalsIgnoreCase(sysUser.getName())) {
  68. return HttpResult.error("超级管理员不允许删除!");
  69. }
  70. }
  71. return HttpResult.ok(sysUserService.deleteFlag(records));
  72. }
  73. // @PreAuthorize("hasAuthority('sys:user:view')")
  74. @GetMapping(value = "/findByName")
  75. public HttpResult findByUserName(@RequestParam String name) {
  76. return HttpResult.ok(sysUserService.getById(name));
  77. }
  78. // @PreAuthorize("hasAuthority('sys:user:view')")
  79. @GetMapping(value = "/findPermissions")
  80. public HttpResult findPermissions(@RequestParam String name) {
  81. SysUser sysUser = new SysUser();
  82. sysUser.setId(name);
  83. return HttpResult.ok(sysUserService.findPermissions(sysUser));
  84. }
  85. // @PreAuthorize("hasAuthority('sys:user:view')")
  86. @GetMapping(value = "/findUserRoles")
  87. public HttpResult findUserRoles(@RequestParam Long userId) {
  88. return HttpResult.ok(sysUserService.findUserRoles(userId));
  89. }
  90. /**
  91. * 用户角色分页查询
  92. *
  93. * @param pageRequest
  94. * @return
  95. */
  96. @PostMapping(value = "/queryPage")
  97. public HttpResult queryPage(@RequestBody PageRequest pageRequest) {
  98. String deptid = pageRequest.getColumnFilterValue(pageRequest, "deptid");
  99. String name = pageRequest.getColumnFilterValue(pageRequest, "name");
  100. String containsSubDept = pageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
  101. String mobile = pageRequest.getColumnFilterValue(pageRequest, "mobile");
  102. SysUser sysUser = new SysUser();
  103. sysUser.setDeptId(deptid);
  104. sysUser.setName(name);
  105. sysUser.setMobile(mobile);
  106. Page page = PageRequest.buildPageRequest(pageRequest);
  107. IPage<SysUser> pResult = sysUserService.selectUserPage(page, sysUser, containsSubDept);
  108. //传入查询条件
  109. PageResult pageResult = PageResult.buildPageResult(pResult);
  110. return HttpResult.ok(pageResult);
  111. }
  112. /**
  113. * 配置用户角色
  114. *
  115. * @param userId
  116. * @param roleId
  117. * @return
  118. */
  119. @PostMapping(value = "/saveUserRole")
  120. @Transactional
  121. public HttpResult saveUserRole(@RequestParam String userId, @RequestParam String roleId) {
  122. SysUserRole userRole = new SysUserRole();
  123. // List<SysUserRole> list = sysUserRoleService.selectList(" where user_id=?", new Object[]{userId});
  124. sysUserRoleService.deleteByUserId(userId);
  125. userRole = new SysUserRole();
  126. userRole.setUserId(userId);
  127. userRole.setRoleId(Long.parseLong(roleId));
  128. userRole.setCreateBy(getUserName());
  129. userRole.setCreateTime(new Date());
  130. sysUserRoleService.save(userRole);
  131. return HttpResult.ok();
  132. }
  133. @ApiOperation(value = "获取用户综合信息")
  134. @PostMapping(value = "/gainUserSynthesisInfo/{userId}")
  135. public HttpResult gainUserSynthesisInfo(@PathVariable String userId) {
  136. return HttpResult.ok(sysUserService.gainUserSynthesisInfo(userId));
  137. }
  138. /**
  139. * Used
  140. *
  141. * @author: lig
  142. * @date: 2023年05月10日 0010
  143. */
  144. // @PreAuthorize("hasAuthority('sys:user:view')")
  145. @PostMapping(value = "/findPageUsed")
  146. @Deprecated
  147. public HttpResult findPageUsed(@RequestBody PageRequest pageRequest) {
  148. //return HttpResult.ok(sysUserService.findPage(pageRequest));
  149. int pageNum = pageRequest.getPageNum();
  150. int pageSize = pageRequest.getPageSize();
  151. String name = pageRequest.getColumnFilterValue(pageRequest, "name");
  152. // String email = pageRequest.getColumnFilterValue(pageRequest, "email");
  153. //需要处理传入的部门
  154. PageResult pageResult = sysUserService.selectPagingCustom(pageNum, pageSize, name, "");
  155. sysUserService.findSysUseresmUserInternalVORoles(pageResult);
  156. return HttpResult.ok(pageResult);
  157. }
  158. /**
  159. * 密码修改
  160. *
  161. * @param id
  162. * @param password
  163. * @return
  164. */
  165. @PostMapping(value = "/updatePwd")
  166. public HttpResult updatePwd(@RequestParam String id, @RequestParam String password) {
  167. if (StringUtils.isEmpty(id) || StringUtils.isEmpty(password)) {
  168. return HttpResult.error("ID和密码不能为空");
  169. }
  170. SysUser sysUser = sysUserService.getById(id);
  171. if (sysUser == null) {
  172. return HttpResult.error("ID不存在");
  173. }
  174. //密码加密
  175. String salt = PasswordUtils.getSalt();
  176. String pwd = PasswordUtils.encode(password, sysUser.getSalt());
  177. sysUser.setPassword(pwd);
  178. sysUserService.updateById(sysUser);
  179. return HttpResult.ok("修改成功");
  180. }
  181. /**
  182. * 手机号更新
  183. *
  184. * @param id
  185. * @param mobile
  186. * @return
  187. */
  188. @PostMapping(value = "/updateMobile")
  189. public HttpResult updateMobile(@RequestParam String id, @RequestParam String mobile) {
  190. if (StringUtils.isEmpty(id) || StringUtils.isEmpty(mobile)) {
  191. return HttpResult.error("ID和手机号不能为空");
  192. }
  193. SysUser sysUser = sysUserService.getById(id);
  194. if (sysUser == null) {
  195. return HttpResult.error("ID不存在");
  196. }
  197. LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
  198. lqw.ne(SysUser::getId, id);
  199. lqw.eq(SysUser::getMobile, mobile);
  200. List<SysUser> users = sysUserService.list(lqw);
  201. // List<SysUser> users = sysUserService.selectList(" where id != ? and mobile=?", new Object[]{id, mobile});
  202. if (users != null && users.size() > 0) {
  203. return HttpResult.error("手机号已存在");
  204. }
  205. sysUser.setMobile(mobile);
  206. sysUserService.updateById(sysUser);
  207. return HttpResult.ok("修改成功");
  208. }
  209. /**
  210. * 根据工号查询推荐人信息
  211. *
  212. * @param id
  213. * @return
  214. */
  215. @GetMapping(value = "/findById")
  216. public HttpResult findByUserId(@RequestParam String id) {
  217. SysUser sysUser = sysUserService.getById(id);
  218. SysUserVO sysUserVO = new SysUserVO();
  219. sysUserVO = sysUserService.gainUserInternal(id);
  220. // SysUserVO sysUserVO = sysUserService.selectById(id);
  221. if (sysUserVO != null) {
  222. return HttpResult.ok(sysUserVO);
  223. }
  224. throw new SystemException("没有推荐人");
  225. }
  226. /**
  227. * 根据部门ID查询该部门的团队长信息
  228. *
  229. * @param deptId
  230. * @return
  231. */
  232. @GetMapping(value = "/selectByDeptId")
  233. public HttpResult selectByDeptId(String deptId) {
  234. return HttpResult.ok(sysUserService.gainUserInternalByDeptId(deptId));
  235. // return HttpResult.ok(sysUserService.selectByDeptId(deptId));
  236. }
  237. /**
  238. * 根据部门id查询该部门的推荐人信息
  239. */
  240. @GetMapping("/selectfindByreferrerId")
  241. public HttpResult findByReferrerId(@Valid String deptId) {
  242. return HttpResult.ok(sysUserService.findByReferrerId(deptId));
  243. }
  244. // /**
  245. // * 审批
  246. // *
  247. // * @param userId
  248. // * @param status 审批
  249. // * @return
  250. // */
  251. // @ApiOperation(value = "审批")
  252. // @ApiImplicitParams({
  253. // @ApiImplicitParam(name = "userId", value = "用户ID")
  254. // , @ApiImplicitParam(name = "status", value = "审批状态")
  255. // })
  256. // @GetMapping(value = "/approval")
  257. // public HttpResult approval(@RequestParam String userId, @RequestParam String status) {
  258. //
  259. // LambdaUpdateWrapper<SysUser> luw = new LambdaUpdateWrapper();
  260. // luw.eq(SysUser::getId, userId);
  261. // luw.set(SysUser::getApprovalStatus, status);
  262. //
  263. // return HttpResult.ok(sysUserService.update(luw));
  264. //
  265. // }
  266. //======================== 重构新接口
  267. /**
  268. * @author: lig
  269. * @date: 2023年06月30日 0030
  270. */
  271. @ApiOperation(value = "(重构)保存或更新")
  272. @PostMapping(value = "/saveOrUpdate")
  273. @Transactional
  274. public HttpResult saveOrUpdate(@RequestBody SysUser sysUser) {
  275. if (StringUtils.isNullOrEmpty(sysUser.getMobile())) {
  276. return HttpResult.error("手机不能为空");
  277. }
  278. if (StringUtils.isNullOrEmpty(sysUser.getDeptId())) {
  279. return HttpResult.error("机构ID不能为空");
  280. }
  281. //处理密码
  282. if (StringUtils.isNotEmpty(sysUser.getPassword())) {
  283. String salt = PasswordUtils.getSalt();
  284. String pwd = PasswordUtils.encode(sysUser.getPassword(), salt);
  285. sysUser.setPassword(pwd);
  286. sysUser.setSalt(salt);
  287. }
  288. sysUserService.saveUser(sysUser);
  289. return HttpResult.ok(sysUser);
  290. }
  291. @ApiOperation(value = "(重构)逻辑删除")
  292. @PostMapping(value = "/logicDeleteBatch")
  293. public HttpResult logicDeleteBatch(@RequestBody List<String> userIds) {
  294. if (null != userIds && userIds.size() > 0) {
  295. LambdaUpdateWrapper<SysUser> luw = new LambdaUpdateWrapper<>();
  296. luw.set(SysUser::getStatus, "0");
  297. luw.in(SysUser::getId, userIds);
  298. sysUserService.update(luw);
  299. return HttpResult.ok();
  300. }
  301. return HttpResult.error("请正确选择参数");
  302. }
  303. @ApiOperation(value = "(重构)用户查询分页")
  304. @PostMapping(value = "/findPage")
  305. public HttpResult<PageVo<SysUserBaseVO>> findPage(@RequestBody PageDto<SysUserDto> pageDto) {
  306. return HttpResult.ok(sysUserService.gainUserPage(pageDto));
  307. }
  308. @ApiOperation(value = "(重构)审批通过")
  309. @ApiImplicitParams({
  310. @ApiImplicitParam(name = "userId", value = "用户ID")
  311. })
  312. @GetMapping(value = "/approvalPass")
  313. public HttpResult approvalPass(@RequestParam String userId) {
  314. SysUser sysUser = sysUserService.getById(userId);
  315. sysUser.setStatus(1);
  316. return HttpResult.ok(sysUserService.updateById(sysUser));
  317. }
  318. @ApiOperation(value = "(重构)审批不通过")
  319. @ApiImplicitParams({
  320. @ApiImplicitParam(name = "userId", value = "用户ID"),
  321. @ApiImplicitParam(name = "reason", value = "原因")
  322. })
  323. @GetMapping(value = "/approvalNotPass")
  324. public HttpResult<Boolean> approvalNotPass(@RequestParam String userId, @RequestParam String reason) {
  325. SysUser sysUser = sysUserService.getById(userId);
  326. sysUser.setStatus(3);
  327. sysUser.setApprovalOpinion(reason);
  328. return HttpResult.ok(sysUserService.updateById(sysUser));
  329. }
  330. @ApiOperation(value = "(重构)获取用户")
  331. @ApiImplicitParams({
  332. @ApiImplicitParam(name = "userId", required = true, value = "用户ID")
  333. })
  334. @GetMapping(value = "/{userId}")
  335. public HttpResult findUserById(@PathVariable String userId) {
  336. // 查询用户
  337. SysUser sysUser = sysUserService.getById(userId);
  338. // 查询角色
  339. SysUserRole sysUserRole = sysUserRoleService.selectByUserId(userId);
  340. // SysUserRole sysUserRole = sysUserRoleService.getById(userId);
  341. if (!ObjectUtils.isEmpty(sysUserRole)) {
  342. sysUser.setRoleId(StringUtils.toString(sysUserRole.getRoleId()));
  343. }
  344. // 查询推荐人
  345. EsmUserReferrer referrer = esmUserReferrerService.getById(userId);
  346. if (ObjectUtils.isEmpty(referrer)) {
  347. sysUser.setReferrerId(null);
  348. sysUser.setReferrerName(null);
  349. } else {
  350. sysUser.setReferrerId(referrer.getReferrerId());
  351. sysUser.setReferrerName(referrer.getReferrerName());
  352. }
  353. //查询详情信息
  354. SysUserInfo userInfo = sysUserInfoService.getById(userId);
  355. SysUserInfoQuery sysUserVo = new SysUserInfoQuery();
  356. List<EsmUserImageQueryVo> esmUserImageQueryVo = esmUserImageService.getEsmUserImageQueryVo(userId);
  357. sysUserVo.setSysUser(sysUser);
  358. sysUserVo.setSysUserInfo(userInfo);
  359. sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
  360. return HttpResult.ok(sysUserVo);
  361. }
  362. @ApiOperation(value = "(new)获取登录用户")
  363. @GetMapping(value = "/loginUser")
  364. public HttpResult loginUser() {
  365. SysUser sysUser = sysUserService.getById(getUserId());
  366. SysRole sysRole = sysUserRoleService.gainRoleByUserId(sysUser.getId());
  367. if (null != sysRole) {
  368. sysUser.setRoleId(StringUtils.toString(sysRole.getId()));
  369. sysUser.setRoleName(sysRole.getName());
  370. }
  371. if (StringUtils.isNotEmpty(sysUser.getDeptId())) {
  372. SysDept sysDept = sysDeptService.getById(sysUser.getDeptId());
  373. sysUser.setDeptName(sysDept.getName());
  374. }
  375. EsmUserReferrer eur = esmUserReferrerService.getById(sysUser.getId());
  376. if (null != eur) {
  377. sysUser.setReferrerId(eur.getReferrerId());
  378. sysUser.setReferrerName(eur.getReferrerName());
  379. }
  380. return HttpResult.ok(sysUser);
  381. }
  382. @ApiOperation(value = "获取可选业务员列表")
  383. @GetMapping(value = "/getAllUsers")
  384. public HttpResult getAllUsers(@RequestParam(required = false) String userId) {
  385. List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId);
  386. return HttpResult.ok(userList);
  387. }
  388. @ApiOperation(value = "(new)是否绑定微信")
  389. @GetMapping(value = "/isBindWechat")
  390. public HttpResult<Object> isBindWechat() {
  391. SysUser sysUser = sysUserService.getById(getUserId());
  392. String openid = sysUser.getOpenid();
  393. AssertionUtils.isStringEmpty(openid, "未绑定微信");
  394. return HttpResult.ok();
  395. }
  396. /**
  397. * 个代注册
  398. *
  399. * @author: lig
  400. * @date: 2023年07月03日 0003
  401. */
  402. @ApiOperation(value = "(new)个代注册")
  403. @PostMapping(value = "/agentRegist")
  404. @Transactional
  405. public HttpResult agentRegist(@RequestBody AgentUserDto dto) {
  406. int noCount = 3;//顺序号是几位的
  407. String phoneMsg = dto.getMobileMsg();
  408. if (StringUtils.isNullOrEmpty(phoneMsg)) {
  409. return HttpResult.error("短信验证码不能为空");
  410. }
  411. String recommenderid = dto.getReferrerId();
  412. SysUser recommender = sysUserService.getById(recommenderid);
  413. if (recommender == null) {
  414. return HttpResult.error("推荐人信息不存在");
  415. }
  416. //只有团队长和代理人才能邀请 by gws
  417. SysUserRole recommenderRole = sysUserRoleService.selectByUserId(recommenderid);
  418. if (!"20".equals(recommenderRole.getRoleId().toString()) && !"21".equals(recommenderRole.getRoleId().toString())) {
  419. return HttpResult.error("只有团队长和代理人才能邀请");
  420. }
  421. SysUser sysUser = sysUserService.findByPhone(dto.getMobile());
  422. if (sysUser != null) {
  423. return HttpResult.error("手机号已存在");
  424. } else {
  425. sysUser = new SysUser();
  426. }
  427. String nextPK;
  428. //根据机构号获取userid最大值,不需要加人员类型判断 从sys_user获取
  429. String maxId = sysUserService.findMaxId(recommender.getDeptId());
  430. if (StringUtils.isNullOrEmpty(maxId)) {
  431. nextPK = recommender.getDeptId() + "001";
  432. } else {
  433. nextPK = IdGenerate.nextCode(maxId, noCount);
  434. }
  435. if (dto.getName() != null && !dto.getName().isEmpty()) {
  436. } else {
  437. sysUser.setName("游客");
  438. }
  439. sysUser.setMobile(dto.getMobile());
  440. sysUser.setDeptId(recommender.getDeptId());
  441. //密码加密
  442. if(StringUtils.isEmpty(dto.getPassword())){
  443. return HttpResult.error("密码不能为空");
  444. }
  445. String salt = PasswordUtils.getSalt();
  446. String password = PasswordUtils.encode(dto.getPassword(), salt);
  447. sysUser.setPassword(password);
  448. sysUser.setSalt(salt);
  449. sysUser.setStatus(2);
  450. sysUser.setId(nextPK);
  451. sysUser.setCreateBy("admin");
  452. sysUserService.save(sysUser);
  453. //角色配置
  454. SysUserRole userRole = new SysUserRole();
  455. userRole.setUserId(nextPK);
  456. userRole.setRoleId(20L);
  457. sysUserRoleService.save(userRole);
  458. esmUserReferrerService.addReferrer(dto.getReferrerId(), nextPK);
  459. return HttpResult.ok("保存成功", sysUser.getId());
  460. }
  461. @PostMapping(value = "/newUserImport")
  462. @ApiOperation(value = "新用户导入")
  463. @ApiImplicitParams({
  464. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file"),
  465. @ApiImplicitParam(name = "deptId", value = "机构部门ID", required = true, dataType = "String", paramType = "formData")
  466. })
  467. @Transactional
  468. public HttpResult newUserImport(@RequestPart MultipartFile file, @RequestParam String deptId) {
  469. SysDept sd = sysDeptService.getById(deptId);
  470. if (null == sd) return HttpResult.error("机构部门不存在");
  471. try {
  472. List<SysUser> userList = ExcelEasypoiUtils.importExcel(file, SysUser.class, 0, 1, 1);
  473. userList = userList.stream().filter(l -> StringUtils.isNotEmpty(l.getMobile())).collect(Collectors.toList());
  474. userList.stream().forEach(a -> {
  475. if (StringUtils.isNullOrEmpty(a.getMobile())) throw new SystemException("手机不能为空");
  476. //处理密码
  477. if (StringUtils.isNotEmpty(a.getPassword())) {
  478. String salt = PasswordUtils.getSalt();
  479. String pwd = PasswordUtils.encode(a.getPassword(), salt);
  480. a.setPassword(pwd);
  481. a.setSalt(salt);
  482. }
  483. a.setDeptId(sd.getId());
  484. a.setDeptName(sd.getName());
  485. //获取角色
  486. LambdaQueryWrapper<SysRole> lqwRole = new LambdaQueryWrapper<>();
  487. lqwRole.like(SysRole::getName, a.getRoleName());
  488. SysRole sr = sysRoleService.getOne(lqwRole);
  489. a.setRoleId(sr.getId().toString());
  490. a.setRoleName(sr.getName());
  491. //状态
  492. if (a.getExcelStatus().equals("正常")) {
  493. a.setStatus(1);
  494. }
  495. if (a.getExcelStatus().equals("新注册")) {
  496. a.setStatus(2);
  497. }
  498. // //性别
  499. // if (a.getSex().equals("未知")) {
  500. // a.setSex("U");
  501. // }
  502. // if (a.getSex().equals("男")) {
  503. // a.setSex("M");
  504. // }
  505. // if (a.getSex().equals("女")) {
  506. // a.setSex("W");
  507. // }
  508. if (StringUtils.isNullOrEmpty(a.getDeptId())) throw new SystemException("机构ID不能为空");
  509. //by gws 21 团队长 20 代理人 必须归属团队
  510. // 22 后线人员 必须归属部门
  511. if (StringUtils.isNullOrEmpty(a.getRoleId())) throw new SystemException("角色ID不能为空");
  512. if ("21".equals(a.getRoleId()) || "20".equals(a.getRoleId())) {//21 团队长 20 代理人
  513. boolean teamflag = false;
  514. char[] deptids = a.getDeptId().toCharArray();
  515. char ch1 = 'D';
  516. char ch2 = 'M';
  517. if (deptids.length > 6) {
  518. teamflag = deptids[deptids.length - 3] == ch1 && deptids[deptids.length - 6] == ch2;
  519. }
  520. if (!teamflag) {
  521. throw new SystemException("团队长和代理人只能归属团队中");
  522. }
  523. } else if ("22".equals(a.getRoleId())) {//22 后线人员
  524. boolean deptflag = false;
  525. char[] deptids = a.getDeptId().toCharArray();
  526. char ch1 = 'D';
  527. char ch2 = 'M';
  528. if (deptids.length > 6) {
  529. deptflag = deptids[deptids.length - 3] == ch1 && deptids[deptids.length - 6] != ch2;
  530. } else if (deptids.length <= 6 && deptids.length > 3) {
  531. deptflag = deptids[deptids.length - 3] == ch1;
  532. }
  533. if (!deptflag) {
  534. throw new SystemException("后线人员只能归属业务部门中");
  535. }
  536. } else {
  537. throw new SystemException("角色id有误");
  538. }
  539. sysUserService.saveUser(a);
  540. });
  541. } catch (IOException e) {
  542. throw new SystemException(e.getMessage());
  543. }
  544. return HttpResult.ok("导入成功");
  545. }
  546. // @ApiOperation(value = "保存或更新用户信息")
  547. // @PostMapping(value = "/saveOrUpdateInfo")
  548. // public HttpResult saveOrUpdateInfo(@RequestBody SysUserInfo sysUserInfo) {
  549. // if (StringUtils.isNullOrEmpty(sysUserInfo.getId())) return HttpResult.error("用户ID不能为空");
  550. // return HttpResult.ok(sysUserInfoService.saveOrUpdate(sysUserInfo));
  551. //
  552. // }
  553. @GetMapping(value = "/findUserInfo/{userId}")
  554. @ApiOperation(value = "获取用户信息")
  555. @ApiImplicitParams({
  556. @ApiImplicitParam(name = "userId", value = "用户信息", required = true, dataType = "String")
  557. })
  558. //@SaCheckPermission("sys:menu:add")
  559. public HttpResult findUserInfo(@PathVariable String userId) {
  560. return HttpResult.ok(sysUserInfoService.getById(userId));
  561. }
  562. @ApiOperation(value = "保存用户基本详情信息")
  563. @PostMapping(value = "/saveUserInfo")
  564. public HttpResult saveUserInfo(@RequestBody SysUser2Vo sysUserVo) {
  565. //by gws 21 团队长 20 代理人 必须归属团队
  566. // 22 后线人员 必须归属部门
  567. SysUser sysUser = sysUserVo.getSysUser();
  568. if (StringUtils.isNullOrEmpty(sysUser)) {
  569. return HttpResult.error("用户信息不能为空");
  570. }
  571. if (StringUtils.isNullOrEmpty(sysUser.getDeptId())) {
  572. return HttpResult.error("机构ID不能为空");
  573. }
  574. if (StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
  575. throw new SystemException("角色id不能为空");
  576. }
  577. if (!StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
  578. if ("21".equals(sysUser.getRoleId()) || "20".equals(sysUser.getRoleId())) {//21 团队长 20 代理人
  579. boolean teamflag = false;
  580. char[] deptids = sysUser.getDeptId().toCharArray();
  581. char ch1 = 'D';
  582. char ch2 = 'M';
  583. if (deptids.length > 6) {
  584. teamflag = deptids[deptids.length - 3] == ch1 && deptids[deptids.length - 6] == ch2;
  585. }
  586. if (!teamflag) {
  587. throw new SystemException("团队长和代理人只能归属团队中");
  588. }
  589. } else if ("22".equals(sysUser.getRoleId())) {//22 后线人员
  590. boolean deptflag = false;
  591. char[] deptids = sysUser.getDeptId().toCharArray();
  592. char ch1 = 'D';
  593. char ch2 = 'M';
  594. if (deptids.length > 6) {
  595. deptflag = deptids[deptids.length - 3] == ch1 && deptids[deptids.length - 6] != ch2;
  596. } else if (deptids.length > 3) {
  597. deptflag = deptids[deptids.length - 3] == ch1;
  598. }
  599. if (!deptflag) {
  600. throw new SystemException("后线人员只能归属业务部门中");
  601. }
  602. } else {
  603. throw new SystemException("角色id有误");
  604. }
  605. }
  606. return sysUserService.saveUserInfo(sysUserVo);
  607. }
  608. @ApiOperation(value = "修改用户详情信息")
  609. @PostMapping(value = "/updateUserInfo/{userId}")
  610. @ApiImplicitParams({
  611. @ApiImplicitParam(name = "userId", value = "用户信息", required = true, dataType = "String")
  612. })
  613. @Transactional
  614. public HttpResult updateUserInfo(@PathVariable String userId, @RequestBody SysUser2Vo sysUserVo) {
  615. return sysUserService.updateUserInfo(userId, sysUserVo);
  616. }
  617. @ApiOperation(value = "获取推荐人分页信息")
  618. @PostMapping(value = "/referrerFindPage")
  619. public HttpResult<PageVo<SysReferrerVo>> referrerFindPage(@RequestBody PageDto<SysReferrerVo> pageDto) {
  620. return esmUserReferrerService.gainReferrerPage(pageDto);
  621. }
  622. @PostMapping(value = "/realNameAuth")
  623. @ApiOperation(value = "实名认证", notes = "" +
  624. "参数1:姓名" +
  625. "</br>参数2:身份证号")
  626. public HttpResult realNameAuth(@RequestBody BaseDto dto) {
  627. SysUser sysUser = sysUserService.getById(getUserId());
  628. sysUser.setName(dto.getParam1());
  629. sysUser.setIdentity(dto.getParam2());
  630. // sysUser.setStatus(1);
  631. return HttpResult.ok(sysUserService.updateById(sysUser));
  632. }
  633. }