|
@@ -4,24 +4,21 @@ import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.crypto.SecureUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.xy.collections.list.JArrayList;
|
|
|
+import com.xy.collections.list.JList;
|
|
|
+import com.xy.collections.map.JHashMap;
|
|
|
+import com.xy.collections.map.JMap;
|
|
|
import com.xy.dto.SysWorkUser.*;
|
|
|
-import com.xy.entity.SysUserDept;
|
|
|
-import com.xy.entity.SysUserRole;
|
|
|
-import com.xy.entity.SysWorkUser;
|
|
|
-import com.xy.mapper.SysUserDeptMapper;
|
|
|
-import com.xy.mapper.SysUserRoleMapper;
|
|
|
-import com.xy.mapper.SysWorkUserMapper;
|
|
|
+import com.xy.entity.*;
|
|
|
+import com.xy.mapper.*;
|
|
|
import com.xy.redis.RedisCache;
|
|
|
import com.xy.service.SysUserDeptService;
|
|
|
import com.xy.service.SysUserRoleService;
|
|
|
import com.xy.service.SysWorkUserService;
|
|
|
import com.xy.utils.Beans;
|
|
|
-import com.xy.utils.Emptys;
|
|
|
-import com.xy.utils.PageBean;
|
|
|
import com.xy.utils.R;
|
|
|
import icu.mhb.mybatisplus.plugln.core.JoinLambdaWrapper;
|
|
|
import io.swagger.annotations.Api;
|
|
@@ -33,12 +30,10 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static com.xy.utils.PlusBeans.toIPage;
|
|
|
-import static com.xy.utils.PlusBeans.toPageBean;
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -54,12 +49,17 @@ import static com.xy.utils.PlusBeans.toPageBean;
|
|
|
public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWorkUser> implements SysWorkUserService {
|
|
|
|
|
|
private final SysUserRoleService sysUserRoleService;
|
|
|
+
|
|
|
private final SysUserDeptService sysUserDeptService;
|
|
|
|
|
|
private final SysUserRoleMapper sysUserRoleMapper;
|
|
|
|
|
|
private final SysUserDeptMapper sysUserDeptMapper;
|
|
|
|
|
|
+ private final SysRoleMapper sysRoleMapper;
|
|
|
+
|
|
|
+ private final SysDeptMapper sysDeptMapper;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R<Long> register(AddDto addDto) {
|
|
@@ -191,43 +191,62 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
- @ApiOperation("分页查询")
|
|
|
- @PostMapping("page")
|
|
|
- public R<PageBean<SysWorkVo>> page(@RequestBody PageDto pageDto) {
|
|
|
+ @ApiOperation("集合查询")
|
|
|
+ @PostMapping("list")
|
|
|
+ public R<List<SysWorkVo>> list(@RequestBody ListDto listDto) {
|
|
|
//条件构造
|
|
|
JoinLambdaWrapper<SysWorkUser> joinLambdaWrapper = new JoinLambdaWrapper<>(SysWorkUser.class)
|
|
|
- .eq(pageDto.getId() != null, SysWorkUser::getId, pageDto.getId())
|
|
|
- .like(StringUtils.isNotEmpty(pageDto.getAccount()), SysWorkUser::getAccount, pageDto.getAccount())
|
|
|
- .like(StringUtils.isNotEmpty(pageDto.getEmail()), SysWorkUser::getEmail, pageDto.getEmail())
|
|
|
- .like(StringUtils.isNotEmpty(pageDto.getPhone()), SysWorkUser::getPhone, pageDto.getPhone())
|
|
|
- .like(pageDto.getStatus() != null, SysWorkUser::getStatus, pageDto.getStatus())
|
|
|
- .ge(pageDto.getBeginCreateTime() != null, SysWorkUser::getCreateTime, pageDto.getBeginCreateTime())
|
|
|
- .le(pageDto.getEndCreateTime() != null, SysWorkUser::getCreateTime, pageDto.getEndCreateTime())
|
|
|
+ .in(SysWorkUser::getId, listDto.getId())
|
|
|
.leftJoin(SysUserRole.class, SysUserRole::getWorkUserId, SysWorkUser::getId)
|
|
|
- .eq(pageDto.getRoleId() != null, SysUserRole::getRoleId, pageDto.getRoleId())
|
|
|
- .eq(pageDto.getSysId() != null, SysUserRole::getSysId, pageDto.getSysId())
|
|
|
.manyToManySelect(SysWorkVo::getRoleIds, Long.class, cb -> cb.add(SysUserRole::getRoleId))
|
|
|
.end()
|
|
|
.leftJoin(SysUserDept.class, SysUserDept::getWorkUserId, SysWorkUser::getId)
|
|
|
- .eq(pageDto.getDeptId() != null, SysUserDept::getDeptId, pageDto.getDeptId())
|
|
|
.manyToManySelect(SysWorkVo::getDeptIds, Long.class, cb -> cb.add(SysUserDept::getDeptId))
|
|
|
.end();
|
|
|
- PageBean page = pageDto.getPage();
|
|
|
- if (!Emptys.check(page.getOrders())) {
|
|
|
- joinLambdaWrapper.orderByDesc(SysWorkUser::getCreateTime);
|
|
|
- }
|
|
|
//查询数据
|
|
|
- IPage<SysWorkVo> sysWorkUserIPage = baseMapper.joinSelectPage(toIPage(page), joinLambdaWrapper, SysWorkVo.class);
|
|
|
- List<SysWorkVo> records = sysWorkUserIPage.getRecords();
|
|
|
- records.forEach(sysWorkVo -> sysWorkVo.setPassword(null));
|
|
|
- return R.ok(toPageBean(sysWorkUserIPage));
|
|
|
- }
|
|
|
-
|
|
|
- @ApiOperation("根据创建人分页查询")
|
|
|
- @PostMapping("pageByCreateUser")
|
|
|
- public R<PageBean<SysWorkVo>> pageByCreateUser(@RequestBody PageDto pageDto) {
|
|
|
- Long loginId = RedisCache.getLoginId(Long.class);
|
|
|
- pageDto.setCreateUser(loginId);
|
|
|
- return page(pageDto);
|
|
|
+ List<SysWorkVo> sysWorkVos = baseMapper.joinSelectList(joinLambdaWrapper, SysWorkVo.class);
|
|
|
+ if (sysWorkVos.size() > 0) {
|
|
|
+ //查询角色信息
|
|
|
+ JList<List<Long>> roleIdss = new JArrayList<>(sysWorkVos).getProperty(SysWorkVo::getRoleIds);
|
|
|
+ List<Long> roleIds = new ArrayList<>();
|
|
|
+ roleIdss.forEach(longs -> roleIds.addAll(longs));
|
|
|
+ JMap<Long, SysRole> sysRoleJMap = new JHashMap<>();
|
|
|
+ if (roleIds.size() > 0) {
|
|
|
+ List<SysRole> sysRoles = sysRoleMapper.selectList(new LambdaQueryWrapper<SysRole>().in(SysRole::getId, roleIds));
|
|
|
+ sysRoleJMap = new JArrayList<>(sysRoles).toMap(SysRole::getId).cover();
|
|
|
+ }
|
|
|
+ //查询部门信息
|
|
|
+ JList<List<Long>> deptIdss = new JArrayList<>(sysWorkVos).getProperty(SysWorkVo::getDeptIds);
|
|
|
+ List<Long> deptIds = new ArrayList<>();
|
|
|
+ deptIdss.forEach(longs -> deptIds.addAll(longs));
|
|
|
+ JMap<Long, SysDept> sysDeptJMap = new JHashMap<>();
|
|
|
+ if (deptIds.size() > 0) {
|
|
|
+ List<SysDept> sysDepts = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>().in(SysDept::getId, deptIds));
|
|
|
+ sysDeptJMap = new JArrayList<>(sysDepts).toMap(SysDept::getId).cover();
|
|
|
+ }
|
|
|
+ //处理结果值
|
|
|
+ for (SysWorkVo sysWorkVo : sysWorkVos) {
|
|
|
+ List<Long> workVoRoleIds = sysWorkVo.getRoleIds();
|
|
|
+ sysWorkVo.setRoleNames(new ArrayList<>());
|
|
|
+ for (Long workVoRoleId : workVoRoleIds) {
|
|
|
+ SysRole sysRole = sysRoleJMap.get(workVoRoleId);
|
|
|
+ if (sysRole == null) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ sysWorkVo.getRoleNames().add(sysRole.getName());
|
|
|
+ }
|
|
|
+ List<Long> workVoDeptIds = sysWorkVo.getDeptIds();
|
|
|
+ sysWorkVo.setDeptNames(new ArrayList<>());
|
|
|
+ for (Long workVoDeptId : workVoDeptIds) {
|
|
|
+ SysDept sysDept = sysDeptJMap.get(workVoDeptId);
|
|
|
+ if (sysDept == null) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ sysWorkVo.getDeptNames().add(sysDept.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysWorkVos.forEach(sysWorkVo -> sysWorkVo.setPassword(null));
|
|
|
+ return R.ok(sysWorkVos);
|
|
|
}
|
|
|
}
|