SysUserController.java 26 KB

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