SysUserServiceImpl.java 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623
  1. package com.ydtech.modules.admin.service.impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  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.dao.SysUserMapper;
  14. import com.ydtech.modules.admin.model.*;
  15. import com.ydtech.modules.admin.model.dto.QuTeamNumDto;
  16. import com.ydtech.modules.admin.model.dto.SysUserDto;
  17. import com.ydtech.modules.admin.model.vo.SysUser2Vo;
  18. import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
  19. import com.ydtech.modules.admin.model.vo.SysUserInternalVO;
  20. import com.ydtech.modules.admin.model.vo.SysUserVO;
  21. import com.ydtech.modules.admin.service.*;
  22. import com.ydtech.modules.base.controller.BaseController;
  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.EsmUserImage;
  26. import com.ydtech.modules.esm.model.EsmUserReferrer;
  27. import com.ydtech.modules.esm.model.vo.EsmUserImageVo;
  28. import com.ydtech.modules.esm.service.EsmUserImageService;
  29. import com.ydtech.modules.esm.service.EsmUserReferrerService;
  30. import com.ydtech.security.utils.PasswordUtils;
  31. import com.ydtech.utils.StringUtils;
  32. import com.ydtech.utils.idgen.IdGenerate;
  33. import org.springframework.beans.factory.annotation.Autowired;
  34. import org.springframework.stereotype.Service;
  35. import org.springframework.transaction.annotation.Transactional;
  36. import java.math.BigDecimal;
  37. import java.time.LocalDate;
  38. import java.time.temporal.TemporalAdjusters;
  39. import java.util.*;
  40. import java.util.stream.Collectors;
  41. import java.util.stream.Stream;
  42. @Service
  43. public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
  44. @Autowired
  45. private SysMenuService sysMenuService;
  46. @Autowired
  47. private SysRoleMenuService sysRoleMenuService;
  48. @Autowired
  49. private SysDeptService sysDeptService;
  50. @Autowired
  51. private SysUserMapper sysUserMapper;
  52. @Autowired
  53. private SysUserRoleService sysUserRoleService;
  54. @Autowired
  55. private EsmUserReferrerService esmUserReferrerService;
  56. @Autowired
  57. private SysUserInfoService sysUserInfoService;
  58. @Autowired
  59. private EsmUserImageService esmUserImageService;
  60. @Override
  61. public IPage<SysUserBaseVO> findUserList(PageDto<SysUserDto> pageDto) {
  62. PageVo<SysUserBaseVO> pageVo = new PageVo();
  63. Page page = new Page(pageDto.getPageNum(), pageDto.getPageSize());
  64. pageVo.setPageNum(pageDto.getPageNum());
  65. pageVo.setPageSize(pageDto.getPageSize());
  66. SysUserDto sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(pageDto.getDto()), SysUserDto.class);
  67. if (sysUserVO.getAgentFlag() == null) {
  68. throw new SystemException("必传标识未传递");
  69. }
  70. return sysUserMapper.findUserList(page, sysUserVO);
  71. }
  72. @Override
  73. public IPage<QuTeamNum> quTeamNum(QuTeamNumDto quTeamNumDto) {
  74. //判断必传标识是否为空
  75. if (quTeamNumDto.getTeamOrUserFlag() != null) {
  76. //判断是要查询用户还是团队
  77. if ("1".equals(quTeamNumDto.getTeamOrUserFlag())) {
  78. PageRequest pageRequest = new PageRequest();
  79. pageRequest.setPageNum(quTeamNumDto.getPageNo());
  80. pageRequest.setPageSize(quTeamNumDto.getPageSize());
  81. Page page = PageRequest.buildPageRequest(pageRequest);
  82. if (quTeamNumDto.getCreateTimeStart() == null && quTeamNumDto.getCreateTimeEnd() == null) {
  83. LocalDate date = LocalDate.now();
  84. LocalDate firstDay = date.with(TemporalAdjusters.firstDayOfMonth()); // 获取当前月的第一天
  85. LocalDate lastDay = date.with(TemporalAdjusters.lastDayOfMonth()); // 获取当前月的最后一天
  86. quTeamNumDto.setCreateTimeStart(firstDay);
  87. quTeamNumDto.setCreateTimeEnd(lastDay);
  88. }
  89. return sysUserMapper.quTeamNum(page, quTeamNumDto);
  90. } else if ("2".equals(quTeamNumDto.getTeamOrUserFlag())) {
  91. PageRequest pageRequest = new PageRequest();
  92. pageRequest.setPageNum(quTeamNumDto.getPageNo());
  93. pageRequest.setPageSize(quTeamNumDto.getPageSize());
  94. Page page = PageRequest.buildPageRequest(pageRequest);
  95. if (quTeamNumDto.getCreateTimeStart() == null && quTeamNumDto.getCreateTimeEnd() == null) {
  96. LocalDate date = LocalDate.now();
  97. LocalDate firstDay = date.with(TemporalAdjusters.firstDayOfMonth()); // 获取当前月的第一天
  98. LocalDate lastDay = date.with(TemporalAdjusters.lastDayOfMonth()); // 获取当前月的最后一天
  99. quTeamNumDto.setCreateTimeStart(firstDay);
  100. quTeamNumDto.setCreateTimeEnd(lastDay);
  101. }
  102. return sysUserMapper.quUserNum(page, quTeamNumDto);
  103. }
  104. throw new SystemException("参数错误");
  105. }
  106. throw new SystemException("必传参数未传");
  107. }
  108. @Override
  109. public SysUser findByUsername(String username) {
  110. SysUser sysUser = null;
  111. if (StringUtils.isNotEmpty(username)) {
  112. sysUser = getById(username);
  113. }
  114. return sysUser;
  115. }
  116. @Override
  117. public SysUser findByPhone(String phone) {
  118. SysUser sysUser = null;
  119. LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
  120. lqw.eq(StringUtils.isNotEmpty(phone), SysUser::getMobile, phone);
  121. List<SysUser> lst = list(lqw);
  122. if (lst.size() > 0) {
  123. sysUser = lst.get(0);
  124. }
  125. return sysUser;
  126. }
  127. @Override
  128. public Set<String> findPermissions(SysUser sysUser) {
  129. Set<String> perms = new HashSet<>();
  130. String sql = "";
  131. List<String> lsPerms = null;
  132. if (sysUser.getId().equalsIgnoreCase("admin")) {
  133. LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<>();
  134. lqw.isNotNull(SysMenu::getPerms);
  135. lqw.select(SysMenu::getPerms);
  136. lsPerms = sysMenuService.listObjs(lqw, id -> id.toString());
  137. } else {
  138. List<SysMenu> sysMenuList = sysRoleMenuService.gainMenuIds(sysUser.getId());
  139. lsPerms =
  140. sysMenuList.stream().filter(a -> StringUtils.isNotEmpty(a.getPerms())).map(SysMenu::getPerms).collect(Collectors.toList());
  141. }
  142. if (lsPerms != null && lsPerms.size() > 0) {
  143. for (String perm : lsPerms) {
  144. if (!StringUtils.isNullOrEmpty(perm)) {
  145. perms.add(perm);
  146. }
  147. }
  148. }
  149. return perms;
  150. }
  151. // @Override
  152. // public Set<String> findPermissions(SysUser sysUser) {
  153. // Set<String> perms = new HashSet<>();
  154. // String sql = "";
  155. // JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  156. // List<String> lsPerms = null;
  157. //
  158. // if (sysUser.getId().equalsIgnoreCase("admin")) {
  159. // sql = "SELECT perms FROM sys_menu WHERE perms IS NOT NULL AND perms <> ''";
  160. //
  161. // lsPerms = jdbcTemplate.queryForList(sql, String.class);
  162. // } else {
  163. // sql = "SELECT perms FROM sys_menu sm WHERE sm.id IN ( " +
  164. // "SELECT menu_id FROM sys_role_menu srm, sys_user_role sur ,sys_user su " +
  165. // "WHERE srm.role_id=sur.role_id " +
  166. // "AND sur.user_id=su.id AND su.id=?) " +
  167. // "AND perms IS NOT NULL AND perms <> ''"
  168. // ;
  169. //
  170. // lsPerms = jdbcTemplate.queryForList(sql, String.class, sysUser.getId());
  171. // }
  172. //
  173. // if (lsPerms != null && lsPerms.size() > 0) {
  174. // for (String perm : lsPerms) {
  175. // if (!StringUtils.isNullOrEmpty(perm)) {
  176. // perms.add(perm);
  177. // }
  178. // }
  179. // }
  180. //
  181. // return perms;
  182. // }
  183. @Override
  184. public List<SysUserRole> findUserRoles(Long userId) {
  185. return null;
  186. }
  187. @Override
  188. public PageResult selectPagingCustom(int pageNumber, int pageSize, String name, String deptCode) {
  189. return null;
  190. }
  191. /**
  192. * 获取用户列表
  193. *
  194. * @param page 分页信息
  195. * @param sysUser 查询条件
  196. * @param containsSubDept 是否汉堡下级机构
  197. * @return
  198. */
  199. @Override
  200. public IPage<SysUser> selectUserPage(Page page, SysUser sysUser, String containsSubDept) {
  201. return baseMapper.selectUserPage(page, sysUser, containsSubDept);
  202. }
  203. @Override
  204. public void findSysUseresmUserInternalVORoles(PageResult pageResult) {
  205. }
  206. @Override
  207. public Integer deleteFlag(List<SysUser> lsSysUser) {
  208. List<String> ids = lsSysUser.stream().map(SysUser::getId).collect(Collectors.toList());
  209. LambdaUpdateWrapper<SysUser> lqw = new LambdaUpdateWrapper<>();
  210. lqw.set(SysUser::getStatus, "0");
  211. lqw.in(SysUser::getId, ids);
  212. return update(lqw) == true ? ids.size() : 0;
  213. }
  214. @Override
  215. public SysUser findById(String id) {
  216. if (!StringUtils.isNullOrEmpty(id)) {
  217. return getById(id);
  218. }
  219. return null;
  220. }
  221. @Override
  222. public SysUser findByUserId(String userId) {
  223. SysUser sysUser = null;
  224. if (!StringUtils.isNullOrEmpty(userId)) {
  225. sysUser = getById(userId);
  226. }
  227. return sysUser;
  228. }
  229. @Override
  230. public SysUserVO gainUserInternal(String userId) {
  231. return super.baseMapper.gainInternalUser(userId);
  232. }
  233. @Override
  234. public SysUserVO gainUserInternalByDeptId(String deptId) {
  235. return super.baseMapper.gainInternalUserByDeptId(deptId);
  236. }
  237. @Override
  238. public List<SysUserVO> findByReferrerId(String deptId) {
  239. return super.baseMapper.findByReferrerId(deptId);
  240. }
  241. @Override
  242. public PageVo gainUserPage(PageDto pageDto) {
  243. PageVo<SysUserBaseVO> pageVo = new PageVo();
  244. Page page = new Page(pageDto.getPageNum(), pageDto.getPageSize());
  245. pageVo.setPageNum(pageDto.getPageNum());
  246. pageVo.setPageSize(pageDto.getPageSize());
  247. SysUserDto sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(pageDto.getDto()), SysUserDto.class);
  248. Page<SysUserBaseVO> sysUserBaseVOIPage = super.baseMapper.gainUserBaseInfo(page, sysUserVO);
  249. pageVo.setContent(sysUserBaseVOIPage.getRecords());
  250. pageVo.setTotalPages((int) sysUserBaseVOIPage.getPages());
  251. pageVo.setTotalSize((int) sysUserBaseVOIPage.getTotal());
  252. return pageVo;
  253. }
  254. @Override
  255. public String gainNextUserId(String deptId) {
  256. int noCount = 3;//顺序号是几位的
  257. String nextPK;
  258. QueryWrapper<SysUser> lq = new QueryWrapper<>();
  259. lq.select(" MAX(id) as id ");
  260. // lq.eq("dept_id", deptId);
  261. lq.likeRight("id", deptId);
  262. SysUser userMaxId = getOne(lq);
  263. String maxId = "";
  264. if (null != userMaxId) maxId = userMaxId.getId();
  265. if (StringUtils.isNullOrEmpty(maxId)) {
  266. nextPK = deptId + "001";
  267. } else {
  268. nextPK = IdGenerate.nextCode(maxId, noCount);
  269. }
  270. return nextPK;
  271. }
  272. @Override
  273. public SysUserInternalVO gainUserSynthesisInfo(String userId) {
  274. SysUserInternalVO vo = new SysUserInternalVO();
  275. SysUser sysUser = getById(userId);
  276. // EsmUserInternal sysUserInternal = esmUserInternalService.selectByPk(userId);
  277. String pDeptId = sysUser.getDeptId();
  278. if (pDeptId.indexOf("D") > 1) {
  279. pDeptId = sysUser.getDeptId().substring(0, pDeptId.indexOf("D"));
  280. }
  281. SysDept sysDept = sysDeptService.getById(pDeptId);
  282. vo.setSysUser(sysUser);
  283. vo.setSysDept(sysDept);
  284. // vo.setSysUserInternal(sysUserInternal);
  285. return vo;
  286. }
  287. @Override
  288. public String findMaxId(String deptId) {
  289. QueryWrapper<SysUser> qw = new QueryWrapper<>();
  290. qw.select("IFNULL(MAX(id),0) maxId");
  291. qw.eq("dept_id", deptId);
  292. Map<String, Object> m = getMap(qw);
  293. String maxId = m.get("maxId").toString();
  294. return maxId;
  295. }
  296. @Override
  297. public boolean check(String userId, Integer approvalStatus, String approvalOpinion) {
  298. SysUser user = getById(userId);
  299. // user.setApprovalStatus(approvalStatus);
  300. user.setApprovalOpinion(approvalOpinion);
  301. return updateById(user);
  302. }
  303. @Override
  304. public SysUserBaseVO selectUserById(String userId) {
  305. return sysUserMapper.selectUserById(userId);
  306. }
  307. @Override
  308. @Transactional
  309. public boolean saveUser(SysUser sysUser) {
  310. // 判断用户id是否存在
  311. if (StringUtils.isNullOrEmpty(sysUser.getId())) {
  312. sysUser.setId(gainNextUserId(sysUser.getDeptId()));
  313. sysUser.setMobile(sysUser.getMobile());
  314. }
  315. // 角色信息
  316. SysUserRole sur = new SysUserRole();
  317. sur.setUserId(sysUser.getId());
  318. sur.setRoleId(StringUtils.toLong(sysUser.getRoleId()));
  319. // 删除角色
  320. sysUserRoleService.deleteByUserId(sysUser.getId());
  321. // 删除推荐人
  322. esmUserReferrerService.deldeleteByReferrerId(sysUser.getId());
  323. // 构建推荐人信息
  324. EsmUserReferrer eur = new EsmUserReferrer();
  325. eur.setId(sysUser.getId());
  326. eur.setReferrerId(sysUser.getReferrerId());//推荐人
  327. eur.setReferrerName(sysUser.getReferrerName());
  328. // 新增或跟新用户表
  329. save(sysUser);
  330. // 保存推荐人
  331. esmUserReferrerService.save(eur);
  332. // 保存角色
  333. sysUserRoleService.save(sur);
  334. return true;
  335. }
  336. @Override
  337. @Transactional
  338. public HttpResult saveUserInfo(SysUser2Vo sysUserVo) {
  339. SysUser sysUser = sysUserVo.getSysUser();
  340. // 手机号
  341. List<SysUser> mobileList = lambdaQuery().eq(SysUser::getMobile, sysUser.getMobile()).list();
  342. if (!mobileList.isEmpty()) {
  343. throw new SystemException("手机号已经注册请跟换手机号。");
  344. }
  345. // 身份证号
  346. List<SysUser> identityList = lambdaQuery().eq(SysUser::getIdentity, sysUser.getIdentity()).list();
  347. if (!identityList.isEmpty()) {
  348. throw new SystemException("身份证号已经注册请跟换身份证号。");
  349. }
  350. //处理密码
  351. if (StringUtils.isNotEmpty(sysUser.getPassword())) {
  352. String salt = PasswordUtils.getSalt();
  353. String pwd = PasswordUtils.encode(sysUser.getPassword(), salt);
  354. sysUser.setPassword(pwd);
  355. sysUser.setSalt(salt);
  356. } else {
  357. return HttpResult.error("密码不能为空");
  358. }
  359. if ("19".equals(sysUser.getRoleId())) {//19 出单员 校验机构和业务员机构是否一致
  360. return checkChuDanUser(sysUser);
  361. }
  362. String userId = gainNextUserId(sysUser.getDeptId());
  363. sysUser.setId(userId);
  364. save(sysUser);
  365. //角色配置
  366. SysUserRole userRole = new SysUserRole();
  367. userRole.setUserId(sysUser.getId());
  368. userRole.setRoleId(StringUtils.toLong(sysUser.getRoleId()));
  369. sysUserRoleService.save(userRole);
  370. if (StringUtils.isNotEmpty(sysUser.getReferrerId())) {
  371. //推荐人
  372. esmUserReferrerService.addReferrer(sysUser.getReferrerId(), userId);
  373. }
  374. // EsmUserReferrer eur = new EsmUserReferrer();
  375. // eur.setId(sysUser.getId());
  376. // eur.setReferrerName(sysUser.getReferrerName());
  377. // eur.setReferrerId(sysUser.getReferrerId());
  378. // eur.setLevel(1);
  379. //
  380. // esmUserReferrerService.save(eur);
  381. SysUserInfo userInfo = sysUserVo.getSysUserInfo();
  382. if (userInfo != null) {
  383. userInfo.setId(sysUser.getId());
  384. }
  385. // userInfo.setId(sysUser.getId());
  386. sysUserInfoService.save(userInfo);
  387. List<EsmUserImageVo> esmUserImageVo = sysUserVo.getEsmUserImageVo();
  388. List<EsmUserImage> esmUserImages = esmUserImageVo.stream().map(x -> new EsmUserImage(x, userId)).collect(Collectors.toList());
  389. esmUserImageService.saveBatch(esmUserImages);
  390. return HttpResult.ok("新增成功");
  391. }
  392. /**
  393. * 新增修改出单员
  394. *
  395. * @param sysUser
  396. * @return
  397. */
  398. HttpResult checkChuDanUser(SysUser sysUser) {
  399. if (StringUtils.isEmpty(sysUser.getReferrerId())) {
  400. return HttpResult.error("业务员工号不能为空");
  401. }
  402. //归属业务员和出单员部门必须一致
  403. SysUser user = getById(sysUser.getReferrerId());
  404. if (user == null || !user.getDeptId().equals(sysUser.getDeptId())) {
  405. return HttpResult.error("出单员机构必须和归属业务员机构一致");
  406. }
  407. sysUser.setOperatorCode(sysUser.getReferrerId());
  408. if (StringUtils.isEmpty(sysUser.getId())) {
  409. String userId = gainNextUserId(sysUser.getDeptId());
  410. sysUser.setId(userId);
  411. save(sysUser);
  412. //角色配置
  413. SysUserRole userRole = new SysUserRole();
  414. userRole.setUserId(sysUser.getId());
  415. userRole.setRoleId(StringUtils.toLong(sysUser.getRoleId()));
  416. sysUserRoleService.save(userRole);
  417. } else {
  418. updateById(sysUser);
  419. }
  420. return HttpResult.ok("操作成功");
  421. }
  422. @Override
  423. @Transactional
  424. public HttpResult updateUserInfo(String userId, SysUser2Vo sysUserVo) {
  425. SysUser sysUser = sysUserVo.getSysUser();
  426. //修改用户不能修改密码
  427. /*if (StringUtils.isNotEmpty(sysUser.getPassword())) {
  428. String salt = PasswordUtils.getSalt();
  429. String pwd = PasswordUtils.encode(sysUser.getPassword(), salt);
  430. sysUser.setPassword(pwd);
  431. sysUser.setSalt(salt);
  432. } else {
  433. return HttpResult.error("密码不能为空");
  434. }*/
  435. //删除状态必须有离司时间
  436. if (StringUtils.isNotEmpty(sysUser.getStatus().toString())) {
  437. if (sysUser.getStatus() == 0 && sysUser.getLogoutTime() == null && !sysUser.getRoleId().equals("19")) {
  438. return HttpResult.error("删除状态,离职时间必填");
  439. }
  440. } else {
  441. return HttpResult.error("状态不能为空");
  442. }
  443. SysUser sysUser_org = findByUserId(sysUser.getId());
  444. sysUser.setPassword(sysUser_org.getPassword());
  445. sysUser.setSalt(sysUser_org.getSalt());
  446. if ("19".equals(sysUser.getRoleId())) {//19 出单员 校验机构和业务员机构是否一致
  447. return checkChuDanUser(sysUser);
  448. }
  449. updateById(sysUser);
  450. //角色配置
  451. SysUserRole sysUserRole = sysUserRoleService.selectByUserId(userId);
  452. sysUserRole.setRoleId(StringUtils.toLong(sysUser.getRoleId()));
  453. sysUserRole.setLastUpdateBy(sysUser.getCreateBy());
  454. sysUserRole.setLastUpdateTime(new Date());
  455. sysUserRoleService.updateById(sysUserRole);
  456. if (StringUtils.isNotEmpty(sysUser.getReferrerId())) {
  457. //推荐人
  458. esmUserReferrerService.addReferrer(sysUser.getReferrerId(), userId);
  459. }
  460. // EsmUserReferrer referrer = esmUserReferrerService.getById(userId);
  461. // EsmUserReferrer eur = new EsmUserReferrer();
  462. // eur.setId(userId);
  463. // eur.setReferrerName(sysUser.getReferrerName());
  464. // eur.setReferrerId(sysUser.getReferrerId());
  465. // if (null != referrer) {
  466. // eur.setLevel(referrer.getLevel() + 1);
  467. // } else {
  468. // eur.setLevel(1);
  469. // }
  470. // esmUserReferrerService.updateById(eur);
  471. //用户详情信息
  472. SysUserInfo sysUserInfo = sysUserVo.getSysUserInfo();
  473. sysUserInfo.setId(userId);
  474. if (null == sysUserInfo.getRemark()) sysUserInfo.setRemark("");
  475. sysUserInfoService.saveOrUpdate(sysUserInfo);
  476. // 影像资料
  477. LambdaQueryWrapper<EsmUserImage> wrapper = new LambdaQueryWrapper<>();
  478. wrapper.eq(EsmUserImage::getUserId, userId);
  479. esmUserImageService.remove(wrapper);
  480. List<EsmUserImageVo> esmUserImageVo = sysUserVo.getEsmUserImageVo();
  481. List<EsmUserImage> esmUserImages = esmUserImageVo.stream().map(x -> new EsmUserImage(x, userId)).collect(Collectors.toList());
  482. esmUserImageService.saveBatch(esmUserImages);
  483. return HttpResult.ok("修改成功");
  484. }
  485. @Override
  486. public List<SysUser> getAllUsers(String userId) {
  487. LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
  488. lqw.eq(SysUser::getStatus, "1");
  489. lqw.eq(StringUtils.isNotEmpty(userId), SysUser::getId, userId);
  490. List<SysUser> lst = list(lqw);
  491. return lst;
  492. }
  493. @Override
  494. public List<SysUser> findAllAgentRoleUser(String userId, String roleId) {
  495. return super.baseMapper.findAllAgentRoleUser(userId, roleId);
  496. }
  497. @Override
  498. public int getDeptLevel(SysUser2Vo sysUser2Vo) {
  499. //获取机构层级
  500. SysUser sysUser = sysUser2Vo.getSysUser();
  501. String deptId = sysUser.getDeptId();
  502. int level = 0;
  503. //1 2 3 4 5级 M 6级 D
  504. if (deptId.length() > 8) {
  505. String substring = deptId.substring(8);
  506. return substring.length() / 3 + 4;
  507. } else {
  508. level = deptId.length() / 2;
  509. }
  510. return level;
  511. }
  512. }