| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- package com.ydtech.modules.admin.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.ydtech.core.page.PageRequest;
- import com.ydtech.core.page.PageResult;
- import com.ydtech.modules.admin.dao.SysUserMapper;
- import com.ydtech.modules.admin.model.SysDept;
- import com.ydtech.modules.admin.model.SysMenu;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.model.SysUserRole;
- import com.ydtech.modules.admin.service.SysDeptService;
- import com.ydtech.modules.admin.service.SysMenuService;
- import com.ydtech.modules.admin.service.SysRoleMenuService;
- import com.ydtech.modules.admin.service.SysUserService;
- import com.ydtech.modules.admin.vo.SysUserBaseVO;
- import com.ydtech.modules.admin.vo.SysUserInternalVO;
- import com.ydtech.modules.admin.vo.SysUserVO;
- import com.ydtech.modules.esm.model.EsmUserAgentCheck;
- import com.ydtech.modules.esm.model.EsmUserInternal;
- import com.ydtech.modules.esm.service.EsmUserInternalService;
- import com.ydtech.utils.StringUtils;
- import com.ydtech.utils.idgen.IdGenerate;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.jdbc.core.BatchPreparedStatementSetter;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.stereotype.Service;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import java.util.*;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- @Service
- public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
- implements SysUserService {
- @Autowired
- private SysMenuService sysMenuService;
- @Autowired
- private SysRoleMenuService sysRoleMenuService;
- @Autowired
- private SysDeptService sysDeptService;
- @Override
- public SysUser findByUsername(String username) {
- SysUser sysUser = null;
- if (StringUtils.isNotEmpty(username)) {
- sysUser = getById(username);
- }
- return sysUser;
- }
- @Override
- public SysUser findByPhone(String phone) {
- SysUser sysUser = null;
- LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
- lqw.eq(StringUtils.isNotEmpty(phone),SysUser::getMobile,phone);
- List<SysUser> lst = list(lqw);
- if (lst.size() > 0) {
- sysUser = lst.get(0);
- }
- return sysUser;
- }
- @Override
- public Set<String> findPermissions(SysUser sysUser) {
- Set<String> perms = new HashSet<>();
- String sql = "";
- List<String> lsPerms = null;
- if (sysUser.getId().equalsIgnoreCase("admin")) {
- LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<>();
- lqw.isNotNull(SysMenu::getPerms);
- lqw.select(SysMenu::getPerms);
- lsPerms = sysMenuService.listObjs(lqw, new Function<Object, String>() {
- @Override
- public String apply(Object id) {
- return id.toString();
- }
- });
- } else {
- List<SysMenu> sysMenuList = sysRoleMenuService.gainMenuIds(sysUser.getId());
- lsPerms = sysMenuList.stream().filter(a ->StringUtils.isNotEmpty(a.getPerms())).map(SysMenu::getPerms).collect(Collectors.toList());
- }
- if (lsPerms != null && lsPerms.size() > 0) {
- for (String perm : lsPerms) {
- if (!StringUtils.isNullOrEmpty(perm)) {
- perms.add(perm);
- }
- }
- }
- return perms;
- }
- // @Override
- // public Set<String> findPermissions(SysUser sysUser) {
- // Set<String> perms = new HashSet<>();
- // String sql = "";
- // JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
- // List<String> lsPerms = null;
- //
- // if (sysUser.getId().equalsIgnoreCase("admin")) {
- // sql = "SELECT perms FROM sys_menu WHERE perms IS NOT NULL AND perms <> ''";
- //
- // lsPerms = jdbcTemplate.queryForList(sql, String.class);
- // } else {
- // sql = "SELECT perms FROM sys_menu sm WHERE sm.id IN ( " +
- // "SELECT menu_id FROM sys_role_menu srm, sys_user_role sur ,sys_user su " +
- // "WHERE srm.role_id=sur.role_id " +
- // "AND sur.user_id=su.id AND su.id=?) " +
- // "AND perms IS NOT NULL AND perms <> ''"
- // ;
- //
- // lsPerms = jdbcTemplate.queryForList(sql, String.class, sysUser.getId());
- // }
- //
- // if (lsPerms != null && lsPerms.size() > 0) {
- // for (String perm : lsPerms) {
- // if (!StringUtils.isNullOrEmpty(perm)) {
- // perms.add(perm);
- // }
- // }
- // }
- //
- // return perms;
- // }
- @Override
- public List<SysUserRole> findUserRoles(Long userId) {
- return null;
- }
- @Override
- public PageResult selectPagingCustom(int pageNumber, int pageSize, String name, String deptCode) {
- return null;
- }
- @Override
- public void findSysUseresmUserInternalVORoles(PageResult pageResult) {
- }
- @Override
- public Integer deleteFlag(List<SysUser> lsSysUser) {
- List<String> ids = lsSysUser.stream().map(SysUser::getId).collect(Collectors.toList());
- LambdaUpdateWrapper<SysUser> lqw = new LambdaUpdateWrapper<>();
- lqw.set(SysUser::getDelFlag,"-1");
- lqw.in(SysUser::getId,ids);
- return update(lqw)==true?ids.size():0;
- }
- @Override
- public SysUser findById(String id) {
- if (!StringUtils.isNullOrEmpty(id)) {
- return getById(id);
- }
- return null;
- }
- @Override
- public SysUser findByUserId(String userId) {
- SysUser sysUser = null;
- if (!StringUtils.isNullOrEmpty(userId)) {
- sysUser = getById(userId);
- }
- return sysUser;
- }
- @Override
- public SysUserVO gainUserInternal(String userId) {
- return super.baseMapper.gainInternalUser(userId);
- }
- @Override
- public SysUserVO gainUserInternalByDeptId(String deptId) {
- return super.baseMapper.gainInternalUserByDeptId(deptId);
- }
- @Override
- public PageResult gainUserPage(PageRequest pageRequest) {
- PageResult<SysUserBaseVO> pageResult = new PageResult();
- //获取分页数量
- int total = super.baseMapper.gainUserBaseInfoCount(pageRequest);
- //计算mysql分页起索引
- int firstIndex = pageRequest.getPageNum()==1?0:(pageRequest.getPageNum()-1) * pageRequest.getPageSize() +1;
- //请求替换分页开始索引
- pageRequest.setPageNum(firstIndex);
- //计算mysql分页总页数
- int totalPages = total % pageRequest.getPageSize() == 0?total / pageRequest.getPageSize():total / pageRequest.getPageSize() +1;
- // if(pageRequest.getPageNum() > 0){
- // int newPageNum = pageRequest.getPageNum() -1;
- // pageRequest.setPageNum(newPageNum * pageRequest.getPageSize());
- // }
- pageResult.setContent(super.baseMapper.gainUserBaseInfo(pageRequest));
- //响应
- pageResult.setTotalSize(total);
- pageResult.setPageNum(pageRequest.getPageNum());
- pageResult.setPageSize(pageRequest.getPageSize());
- pageResult.setTotalPages(totalPages);
- return pageResult;
- }
- @Override
- public String gainNextUserId(String deptId) {
- int noCount = 3;//顺序号是几位的
- String nextPK;
- QueryWrapper<SysUser> lq = new QueryWrapper<>();
- lq.select(" MAX(id) as id ");
- lq.eq("dept_id",deptId);
- SysUser userMaxId = getOne(lq);
- String maxId = "";
- if(null != userMaxId) maxId = userMaxId.getId();
- if (StringUtils.isNullOrEmpty(maxId)) {
- nextPK = deptId + "001";
- } else {
- nextPK = IdGenerate.nextCode(maxId, noCount);
- }
- return nextPK;
- }
- @Override
- public SysUserInternalVO gainUserSynthesisInfo(String userId) {
- SysUserInternalVO vo = new SysUserInternalVO();
- SysUser sysUser = getById(userId);
- // EsmUserInternal sysUserInternal = esmUserInternalService.selectByPk(userId);
- String pDeptId = sysUser.getDeptId();
- if(pDeptId.indexOf("D") > 1){
- pDeptId = sysUser.getDeptId().substring(0,pDeptId.indexOf("D"));
- }
- SysDept sysDept = sysDeptService.getById(pDeptId);
- vo.setSysUser(sysUser);
- vo.setSysDept(sysDept);
- // vo.setSysUserInternal(sysUserInternal);
- return vo;
- }
- @Override
- public String findMaxId(String deptId) {
- QueryWrapper<SysUser> qw = new QueryWrapper<>();
- qw.select("IFNULL(MAX(id),0) maxId");
- qw.eq("dept_id",deptId);
- Map<String,Object> m = getMap(qw);
- String maxId = m.get("maxId").toString();
- return maxId;
- }
- @Override
- public boolean check(String userId,Integer approvalStatus,String approvalOpinion) {
- SysUser user = getById(userId);
- user.setApprovalStatus(approvalStatus);
- user.setApprovalOpinion(approvalOpinion);
- return updateById(user);
- }
- }
|