SysUserController.java 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744
  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 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. Integer result = 0;
  399. String resultStr = "";
  400. String phoneMsg = dto.getMobileMsg();
  401. if (StringUtils.isNullOrEmpty(phoneMsg)) {
  402. return HttpResult.error("短信验证码不能为空");
  403. }
  404. // //从数据库获取最新验证码
  405. // String msg = stringRedisTemplate.opsForValue().get(PHONE_VERIFICATION_CODE_KEY + dto.getMobile());
  406. //
  407. // if (msg == null || msg.length() == 0) {
  408. // return HttpResult.error("短信验证码发送失败");
  409. // }
  410. // if (!phoneMsg.equals(msg)) {
  411. // return HttpResult.error("短信验证码不正确");
  412. // }
  413. String recommenderid = dto.getReferrerId();
  414. // if (StringUtils.isNullOrEmpty(recommenderid)) {
  415. // return HttpResult.error("推荐人ID不能为空");
  416. // }
  417. SysUser recommender = sysUserService.getById(recommenderid);
  418. if (recommender == null) {
  419. return HttpResult.error("推荐人信息不存在");
  420. }
  421. //只有团队长和代理人才能邀请 by gws
  422. SysUserRole recommenderRole =sysUserRoleService.selectByUserId(recommenderid);
  423. if(!"20".equals(recommenderRole.getRoleId())&&!"21".equals(recommenderRole.getRoleId())){
  424. return HttpResult.error("只有团队长和代理人才能邀请");
  425. }
  426. SysUser sysUser = sysUserService.findByPhone(dto.getMobile());
  427. if (sysUser != null) {
  428. return HttpResult.error("手机号已存在");
  429. } else {
  430. sysUser = new SysUser();
  431. }
  432. String nextPK = "001";
  433. //根据机构号获取userid最大值,不需要加人员类型判断 从sys_user获取
  434. String maxId = sysUserService.findMaxId(recommender.getDeptId());
  435. if (StringUtils.isNullOrEmpty(maxId)) {
  436. nextPK = recommender.getDeptId() + "001";
  437. } else {
  438. nextPK = IdGenerate.nextCode(maxId, noCount);
  439. }
  440. if (dto.getName() != null && !dto.getName().equals("")) {
  441. } else {
  442. sysUser.setName("游客");
  443. }
  444. sysUser.setMobile(dto.getMobile());
  445. sysUser.setDeptId(recommender.getDeptId());
  446. //密码加密
  447. String salt = PasswordUtils.getSalt();
  448. String password = PasswordUtils.encode(dto.getPassword(), salt);
  449. sysUser.setPassword(password);
  450. sysUser.setSalt(salt);
  451. sysUser.setStatus(2);
  452. sysUser.setId(nextPK);
  453. sysUser.setCreateBy("admin");
  454. sysUserService.save(sysUser);
  455. //角色配置
  456. SysUserRole userRole = new SysUserRole();
  457. userRole.setUserId(nextPK);
  458. userRole.setRoleId(20L);
  459. sysUserRoleService.save(userRole);
  460. esmUserReferrerService.addReferrer(dto.getReferrerId(),nextPK);
  461. return HttpResult.ok("保存成功", sysUser.getId());
  462. }
  463. @PostMapping(value = "/newUserImport")
  464. @ApiOperation(value = "新用户导入")
  465. @ApiImplicitParams({
  466. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file"),
  467. @ApiImplicitParam(name = "deptId", value = "机构部门ID", required = true, dataType = "String", paramType = "formData")
  468. })
  469. @Transactional
  470. public HttpResult newUserImport(@RequestPart MultipartFile file, @RequestParam String deptId) {
  471. SysDept sd = sysDeptService.getById(deptId);
  472. if (null == sd) return HttpResult.error("机构部门不存在");
  473. try {
  474. List<SysUser> userList = ExcelEasypoiUtils.importExcel(file, SysUser.class, 0, 1, 1);
  475. userList = userList.stream().filter(l -> StringUtils.isNotEmpty(l.getMobile())).collect(Collectors.toList());
  476. userList.stream().forEach(a -> {
  477. if (StringUtils.isNullOrEmpty(a.getMobile())) throw new SystemException("手机不能为空");
  478. //处理密码
  479. if (StringUtils.isNotEmpty(a.getPassword())) {
  480. String salt = PasswordUtils.getSalt();
  481. String pwd = PasswordUtils.encode(a.getPassword(), salt);
  482. a.setPassword(pwd);
  483. a.setSalt(salt);
  484. }
  485. a.setDeptId(sd.getId());
  486. a.setDeptName(sd.getName());
  487. //获取角色
  488. LambdaQueryWrapper<SysRole> lqwRole = new LambdaQueryWrapper<>();
  489. lqwRole.like(SysRole::getName, a.getRoleName());
  490. SysRole sr = sysRoleService.getOne(lqwRole);
  491. a.setRoleId(sr.getId().toString());
  492. a.setRoleName(sr.getName());
  493. //状态
  494. if (a.getExcelStatus().equals("正常")) {
  495. a.setStatus(1);
  496. }
  497. if (a.getExcelStatus().equals("新注册")) {
  498. a.setStatus(2);
  499. }
  500. // //性别
  501. // if (a.getSex().equals("未知")) {
  502. // a.setSex("U");
  503. // }
  504. // if (a.getSex().equals("男")) {
  505. // a.setSex("M");
  506. // }
  507. // if (a.getSex().equals("女")) {
  508. // a.setSex("W");
  509. // }
  510. if (StringUtils.isNullOrEmpty(a.getDeptId())) throw new SystemException("机构ID不能为空");
  511. //by gws 21 团队长 20 代理人 必须归属团队
  512. // 22 后线人员 必须归属部门
  513. if (StringUtils.isNullOrEmpty(a.getRoleId())) throw new SystemException("角色ID不能为空");
  514. if("21".equals(a.getRoleId())||"20".equals(a.getRoleId())){//21 团队长 20 代理人
  515. boolean teamflag=false;
  516. char[] deptids=a.getDeptId().toCharArray();
  517. char ch1 = 'D';
  518. char ch2 = 'M';
  519. if(deptids.length>6){
  520. teamflag=deptids[deptids.length-3]==ch1&&deptids[deptids.length-6]==ch2;
  521. }
  522. if(!teamflag){
  523. throw new SystemException("团队长和代理人只能归属团队中") ;
  524. }
  525. }else if("22".equals(a.getRoleId())){//22 后线人员
  526. boolean deptflag=false;
  527. char[] deptids=a.getDeptId().toCharArray();
  528. char ch1 = 'D';
  529. char ch2 = 'M';
  530. if(deptids.length>6){
  531. deptflag=deptids[deptids.length-3]==ch1&&deptids[deptids.length-6]!=ch2;
  532. }else if(deptids.length<=6 && deptids.length>3){
  533. deptflag=deptids[deptids.length-3]==ch1;
  534. }
  535. if(!deptflag){
  536. throw new SystemException("后线人员只能归属业务部门中") ;
  537. }
  538. }else{
  539. throw new SystemException("角色id有误") ;
  540. }
  541. sysUserService.saveUser(a);
  542. });
  543. } catch (IOException e) {
  544. throw new SystemException(e.getMessage());
  545. }
  546. return HttpResult.ok("导入成功");
  547. }
  548. // @ApiOperation(value = "保存或更新用户信息")
  549. // @PostMapping(value = "/saveOrUpdateInfo")
  550. // public HttpResult saveOrUpdateInfo(@RequestBody SysUserInfo sysUserInfo) {
  551. // if (StringUtils.isNullOrEmpty(sysUserInfo.getId())) return HttpResult.error("用户ID不能为空");
  552. // return HttpResult.ok(sysUserInfoService.saveOrUpdate(sysUserInfo));
  553. //
  554. // }
  555. @GetMapping(value = "/findUserInfo/{userId}")
  556. @ApiOperation(value = "获取用户信息")
  557. @ApiImplicitParams({
  558. @ApiImplicitParam(name = "userId", value = "用户信息", required = true, dataType = "String")
  559. })
  560. //@SaCheckPermission("sys:menu:add")
  561. public HttpResult findUserInfo(@PathVariable String userId) {
  562. return HttpResult.ok(sysUserInfoService.getById(userId));
  563. }
  564. @ApiOperation(value = "保存用户基本详情信息")
  565. @Transactional
  566. @PostMapping(value = "/saveUserInfo")
  567. public HttpResult saveUserInfo(@RequestBody SysUser2Vo sysUserVo){
  568. //by gws 21 团队长 20 代理人 必须归属团队
  569. // 22 后线人员 必须归属部门
  570. SysUser sysUser=sysUserVo.getSysUser();
  571. if (StringUtils.isNullOrEmpty(sysUser)) {
  572. return HttpResult.error("用户信息不能为空");
  573. }
  574. if (StringUtils.isNullOrEmpty(sysUser.getDeptId())) {
  575. return HttpResult.error("机构ID不能为空");
  576. }
  577. if (StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
  578. throw new SystemException("角色id不能为空") ;
  579. }
  580. if (!StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
  581. if("21".equals(sysUser.getRoleId())||"20".equals(sysUser.getRoleId())){//21 团队长 20 代理人
  582. boolean teamflag=false;
  583. char[] deptids=sysUser.getDeptId().toCharArray();
  584. char ch1 = 'D';
  585. char ch2 = 'M';
  586. if(deptids.length>6){
  587. teamflag=deptids[deptids.length-3]==ch1&&deptids[deptids.length-6]==ch2;
  588. }
  589. if(!teamflag){
  590. throw new SystemException("团队长和代理人只能归属团队中") ;
  591. }
  592. }else if("22".equals(sysUser.getRoleId())){//22 后线人员
  593. boolean deptflag=false;
  594. char[] deptids=sysUser.getDeptId().toCharArray();
  595. char ch1 = 'D';
  596. char ch2 = 'M';
  597. if(deptids.length>6){
  598. deptflag=deptids[deptids.length-3]==ch1&&deptids[deptids.length-6]!=ch2;
  599. }else if(deptids.length<=6 && deptids.length>3){
  600. deptflag=deptids[deptids.length-3]==ch1;
  601. }
  602. if(!deptflag){
  603. throw new SystemException("后线人员只能归属业务部门中") ;
  604. }
  605. }else{
  606. throw new SystemException("角色id有误") ;
  607. }
  608. }
  609. return HttpResult.ok(sysUserService.saveUserInfo(sysUserVo)) ;
  610. }
  611. @ApiOperation(value = "修改用户详情信息")
  612. @PostMapping(value = "/updateUserInfo/{userId}")
  613. @ApiImplicitParams({
  614. @ApiImplicitParam(name = "userId", value = "用户信息", required = true, dataType = "String")
  615. })
  616. @Transactional
  617. public HttpResult updateUserInfo(@PathVariable String userId,@RequestBody SysUser2Vo sysUserVo) {
  618. return HttpResult.ok(sysUserService.updateUserInfo(userId,sysUserVo));
  619. }
  620. @ApiOperation(value = "获取推荐人分页信息")
  621. @PostMapping(value = "/referrerFindPage")
  622. public HttpResult<PageVo<SysReferrerVo>> referrerFindPage(@RequestBody PageDto<SysReferrerVo> pageDto) {
  623. return HttpResult.ok(esmUserReferrerService.gainReferrerPage(pageDto));
  624. }
  625. @PostMapping(value = "/realNameAuth")
  626. @ApiOperation(value = "实名认证", notes = "" +
  627. "参数1:姓名" +
  628. "</br>参数2:身份证号" )
  629. public HttpResult realNameAuth(@RequestBody BaseDto dto) {
  630. SysUser sysUser = sysUserService.getById(getUserId());
  631. sysUser.setName(dto.getParam1());
  632. sysUser.setIdentity(dto.getParam2());
  633. // sysUser.setStatus(1);
  634. return HttpResult.ok(sysUserService.updateById(sysUser));
  635. }
  636. }