Browse Source

调整

contract
Yen 2 years ago
parent
commit
3b44a5f728
  1. 22
      src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java
  2. 19
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionUserController.java
  3. 12
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  4. 5
      src/main/java/com/qs/serve/modules/bms/entity/BmsRegionUser.java
  5. 2
      src/main/java/com/qs/serve/modules/bms/service/BmsSupplierAddressService.java
  6. 2
      src/main/java/com/qs/serve/modules/bms/service/BmsSupplierVisitAddressService.java
  7. 21
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java
  8. 7
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierAddressServiceImpl.java
  9. 8
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierVisitAddressServiceImpl.java
  10. 51
      src/main/java/com/qs/serve/modules/sys/controller/SysPostController.java
  11. 93
      src/main/java/com/qs/serve/modules/sys/controller/SysPostUserController.java
  12. 13
      src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java
  13. 41
      src/main/java/com/qs/serve/modules/sys/entity/SysPost.java
  14. 132
      src/main/java/com/qs/serve/modules/sys/entity/SysPostUser.java
  15. 39
      src/main/java/com/qs/serve/modules/sys/entity/SysUser.java
  16. 43
      src/main/java/com/qs/serve/modules/sys/entity/bo/SysPostUserBo.java
  17. 86
      src/main/java/com/qs/serve/modules/sys/entity/so/SysPostUserSo.java
  18. 47
      src/main/java/com/qs/serve/modules/sys/entity/vo/SysPostTreeVo.java
  19. 14
      src/main/java/com/qs/serve/modules/sys/mapper/SysPostUserMapper.java
  20. 2
      src/main/java/com/qs/serve/modules/sys/service/SysPostService.java
  21. 21
      src/main/java/com/qs/serve/modules/sys/service/SysPostUserService.java
  22. 9
      src/main/java/com/qs/serve/modules/sys/service/SysUserService.java
  23. 66
      src/main/java/com/qs/serve/modules/sys/service/impl/SysPostServiceImpl.java
  24. 112
      src/main/java/com/qs/serve/modules/sys/service/impl/SysPostUserServiceImpl.java
  25. 19
      src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java

22
src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java

@ -17,10 +17,7 @@ import com.qs.serve.modules.baz.mapper.BazVisitMapper;
import com.qs.serve.modules.baz.service.BazVisitInfoService;
import com.qs.serve.modules.baz.service.BazVisitInstanceFlowService;
import com.qs.serve.modules.bms.entity.*;
import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierVisitAddressMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierVisitFormMapper;
import com.qs.serve.modules.bms.mapper.*;
import com.qs.serve.modules.bms.service.BmsSupplierVisitAddressService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
@ -45,6 +42,7 @@ import java.util.List;
@AllArgsConstructor
public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMapper,BazVisitInstance> implements BazVisitInstanceService {
BmsSupplierContactsMapper bmsSupplierContactsMapper;
BmsChannelPointMapper pointMapper;
BmsSupplierMapper supplierMapper;
SysUserMapper sysUserMapper;
@ -198,6 +196,14 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
countLqw.eq(BazVisitInstanceFlow::getFlowState,0);
long count = instanceFlowService.count(countLqw);
if(count<1){
//客户拜访无联系人
if(instanceFlowDb.getTargetType().equals("customer")){
LambdaQueryWrapper<BmsSupplierContacts> contactsLqw = new LambdaQueryWrapper<>();
contactsLqw.eq(BmsSupplierContacts::getSupplierId,instanceFlowDb.getTargetId());
if(bmsSupplierContactsMapper.selectCount(contactsLqw)<1){
return;
}
}
BazVisitInstance visitInstance = new BazVisitInstance();
visitInstance.setFinishedTime(LocalDateTime.now());
visitInstance.setVisitState(1);
@ -209,6 +215,14 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
@Override
public void finished(Long instanceId) {
BazVisitInstance instanceDb = this.getById(instanceId);
//客户拜访无联系人
if(instanceDb.getTargetType().equals("customer")){
LambdaQueryWrapper<BmsSupplierContacts> contactsLqw = new LambdaQueryWrapper<>();
contactsLqw.eq(BmsSupplierContacts::getSupplierId,instanceDb.getTargetId());
if(bmsSupplierContactsMapper.selectCount(contactsLqw)<1){
Assert.throwEx("请补充客户联系人");
}
}
if(instanceDb.getVisitState().equals(0)){
LambdaQueryWrapper<BazVisitInstanceFlow> countLqw = new LambdaQueryWrapper<>();
countLqw.select(

19
src/main/java/com/qs/serve/modules/bms/controller/BmsRegionUserController.java

@ -24,6 +24,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
@ -117,6 +118,7 @@ public class BmsRegionUserController {
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "区域负责人", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:regionUser:insert')")
@Transactional(rollbackFor = Exception.class)
public R<?> save(@RequestBody @Valid BmsRegionUserSaveBo param){
Integer type = param.getType();
List<BmsRegionUser> bmsRegionUsers = new ArrayList<>();
@ -124,15 +126,30 @@ public class BmsRegionUserController {
for (String userId : param.getUserIds()) {
BmsRegionUser regionUser = bmsRegionUserService.getByParam(type,regionId,userId);
if(regionUser==null){
boolean isSale = type.equals(0);
String pathIds;
String pathName;
if(isSale){
BmsRegion region = bmsRegionService.getById(regionId);
pathIds = region.getPathIds();
pathName = region.getPathNames();
}else {
BmsRegion2 region = bmsRegion2Service.getById(regionId);
pathIds = region.getPathIds();
pathName = region.getPathNames();
}
regionUser = new BmsRegionUser();
regionUser.setType(type);
regionUser.setRegionId(regionId);
regionUser.setUserId(userId);
regionUser.setPathIds(pathIds);
regionUser.setPathNames(pathName);
bmsRegionUsers.add(regionUser);
}
}
}
bmsRegionUserService.saveBatch(bmsRegionUsers);
List<String> userIds = param.getUserIds();
// 类型:0=销售区域;1=行政区域
if(type.equals(0)){
List<BmsRegion> regionList = bmsRegionService.listByIds(param.getRegionIds());
@ -145,7 +162,6 @@ public class BmsRegionUserController {
List<Long> pointIds = pointList.stream().map(BmsChannelPoint::getId)
.distinct().collect(Collectors.toList());
String pathIds = region.getPathIds();
List<String> userIds = param.getUserIds();
hisUserChannelPointService.flushBatchUserRegion(userIds,pointIds,2,pathIds);
}
}else {
@ -159,7 +175,6 @@ public class BmsRegionUserController {
List<Long> pointIds = pointList.stream().map(BmsChannelPoint::getId)
.distinct().collect(Collectors.toList());
String pathIds = region.getPathIds();
List<String> userIds = param.getUserIds();
hisUserChannelPointService.flushBatchUserRegion(userIds,pointIds,1,pathIds);
}
}

12
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -13,12 +13,12 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsSupplierVisitAddress;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierParentBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.bms.service.*;
import com.qs.serve.modules.his.entity.HisUserSupplier;
import com.qs.serve.modules.his.service.HisUserSupplierService;
import com.qs.serve.modules.sys.entity.SysUser;
@ -33,7 +33,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import javax.validation.Valid;
import java.util.*;
@ -51,6 +50,8 @@ import java.util.stream.Collectors;
public class BmsSupplierController {
private BmsSupplierService bmsSupplierService;
private BmsSupplierAddressService bmsSupplierAddressService;
private BmsSupplierVisitAddressService bmsSupplierVisitAddressService;
private BmsRegionService bmsRegionService;
private BmsRegion2Service bmsRegion2Service;
private SysUserService sysUserService;
@ -489,13 +490,16 @@ public class BmsSupplierController {
@PreAuthorize("hasRole('bms:supplier:delete')")
public R<?> deleteById(@PathVariable("id") String id){
if(bmsSupplierService.listChild(id).size()>0){
return R.error("含有子公司客户无法删除");
return R.error("含有子客户无法删除");
}
bmsSupplierService.removeById(id);
//清空临时表
hisUserSupplierService.cleanTable();
redisService.remove(RedisCacheKeys.SUPPLIER_RELATE_TREE);
//删除客户地址
bmsSupplierAddressService.removeBySupplierId(id);
bmsSupplierVisitAddressService.removeBySupplierId(id);
return R.ok();
}

5
src/main/java/com/qs/serve/modules/bms/entity/BmsRegionUser.java

@ -77,6 +77,11 @@ public class BmsRegionUser implements Serializable {
@JsonProperty
private Boolean delFlag;
/** 祖级id */
private String pathIds;
/** 祖级id */
private String pathNames;
/** 区域名称 */
@TableField(exist = false)

2
src/main/java/com/qs/serve/modules/bms/service/BmsSupplierAddressService.java

@ -19,5 +19,7 @@ public interface BmsSupplierAddressService extends IService<BmsSupplierAddress>
List<BmsSupplierAddress> selectBmsSupplierAddressList(BmsSupplierAddress query);
void removeBySupplierId(String supplierId);
}

2
src/main/java/com/qs/serve/modules/bms/service/BmsSupplierVisitAddressService.java

@ -10,5 +10,7 @@ import com.qs.serve.modules.bms.entity.BmsSupplierVisitAddress;
*/
public interface BmsSupplierVisitAddressService extends IService<BmsSupplierVisitAddress> {
void removeBySupplierId(String supplierId);
}

21
src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bms.common.MasterUserType;
import com.qs.serve.modules.bms.entity.*;
@ -13,6 +14,8 @@ import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.his.service.HisUserChannelPointService;
import com.qs.serve.modules.sys.common.enums.BusinessLogType;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.sys.service.SysBusinessLogService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -39,6 +42,7 @@ public class BmsChannelPointServiceImpl extends ServiceImpl<BmsChannelPointMappe
private HisUserChannelPointService hisUserChannelPointService;
private SysBusinessLogService sysBusinessLogService;
private SysUserMapper sysUserMapper;
private BmsMasterUserMapper bmsMasterUserMapper;
@ -46,8 +50,9 @@ public class BmsChannelPointServiceImpl extends ServiceImpl<BmsChannelPointMappe
@Transactional(rollbackFor = Exception.class)
public boolean modify(BmsChannelPointBo param) {
BmsChannelPoint channelPoint = CopierUtil.copy(param,new BmsChannelPoint());
BmsChannel channel = null;
if(channelPoint.getChannelId()!=null){
BmsChannel channel = bmsChannelService.getById(channelPoint.getChannelId());
channel = bmsChannelService.getById(channelPoint.getChannelId());
if(channel!=null) {
channelPoint.setChannelName(channel.getChannelName());
}else{
@ -68,6 +73,20 @@ public class BmsChannelPointServiceImpl extends ServiceImpl<BmsChannelPointMappe
if(channelPoint.getId()==null){
this.save(channelPoint);
sysBusinessLogService.buildLog4Save(BusinessLogType.Point,channelPoint.getId()+"",channelPoint.getPointCode(),channelPoint.getPointName(),null,channelPoint);
//添加默认为该网点联系人
SysUser sysUser = sysUserMapper.selectById(AuthContextUtils.getSysUserId());
BmsMasterUser masterUser = new BmsMasterUser();
masterUser.setType(MasterUserType.Point);
masterUser.setTargetId(channelPoint.getId()+"");
masterUser.setChannelName(channel.getChannelName());
masterUser.setChannelCode(channel.getChannelCode());
masterUser.setPointCode(channelPoint.getPointCode());
masterUser.setPointName(channelPoint.getPointName());
masterUser.setUserId(sysUser.getSyUserId());
masterUser.setUserName(sysUser.getName());
masterUser.setUserCode(sysUser.getCode());
//更新底层的关联表
//hisUserChannelPointService.initSetupByPointId(channelPoint.getId());
}else {
BmsChannelPoint orgData = this.getById(channelPoint.getId());
sysBusinessLogService.buildLog4Change(BusinessLogType.Point,

7
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierAddressServiceImpl.java

@ -40,5 +40,12 @@ public class BmsSupplierAddressServiceImpl extends ServiceImpl<BmsSupplierAddres
public List<BmsSupplierAddress> selectBmsSupplierAddressList(BmsSupplierAddress query) {
return baseMapper.selectBmsSupplierAddressList(query);
}
@Override
public void removeBySupplierId(String supplierId) {
LambdaQueryWrapper<BmsSupplierAddress> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsSupplierAddress::getSupplierId,supplierId);
this.remove(lqw);
}
}

8
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierVisitAddressServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -18,5 +19,12 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierVisitAddressMapper;
@AllArgsConstructor
public class BmsSupplierVisitAddressServiceImpl extends ServiceImpl<BmsSupplierVisitAddressMapper,BmsSupplierVisitAddress> implements BmsSupplierVisitAddressService {
@Override
public void removeBySupplierId(String supplierId) {
LambdaQueryWrapper<BmsSupplierVisitAddress> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsSupplierVisitAddress::getSupplierId,supplierId);
this.remove(lqw);
}
}

51
src/main/java/com/qs/serve/modules/sys/controller/SysPostController.java

@ -6,9 +6,12 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.TreeUtil;
import com.qs.serve.modules.sys.entity.SysPost;
import com.qs.serve.modules.sys.entity.vo.SysPostTreeVo;
import com.qs.serve.modules.sys.service.SysDeptService;
import com.qs.serve.modules.sys.service.SysPostService;
import com.qs.serve.modules.tag.entity.vo.TagCategoryTreeVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
@ -16,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.stream.Collectors;
/**
* 系统职务
@ -29,18 +33,30 @@ import java.util.List;
public class SysPostController {
private SysPostService sysPostService;
private SysDeptService sysDeptService;
/**
* 列表查询
* @param param
* @return
*/
@GetMapping("/list")
public R<List<SysPost>> getList(@Valid SysPost param){
@GetMapping("/tree")
public R<List<SysPostTreeVo>> getList(SysPost param){
List<SysPost> list = sysPostService.list(new QueryWrapper<>(param));
return R.ok(list);
List<SysPostTreeVo> treeVoList = list.stream().map(source->{
SysPostTreeVo treeVo = new SysPostTreeVo();
treeVo.setId(source.getId());
treeVo.setPostName(source.getPostName());
treeVo.setPostCode(source.getPostCode());
treeVo.setPathIds(source.getPathIds());
treeVo.setPathNames(source.getPathNames());
treeVo.setRemark(source.getRemark());
treeVo.setId(source.getId());
treeVo.setParentId(source.getPid());
treeVo.setSort(0);
return treeVo;
}).collect(Collectors.toList());
treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING);
return R.ok(treeVoList);
}
/**
@ -53,11 +69,6 @@ public class SysPostController {
public R<PageVo<SysPost>> getPage(SysPost param){
PageUtil.startPage();
List<SysPost> list = sysPostService.list(new QueryWrapper<>(param));
for (SysPost sysPost : list) {
if(sysPost.getId()!=null&&!sysPost.getId().equals(0L)){
sysPost.setSysDept(sysDeptService.getById(sysPost.getDeptId()));
}
}
return R.byPageHelperList(list);
}
@ -68,17 +79,12 @@ public class SysPostController {
*/
@GetMapping("/getById/{id}")
@SysLog(title = "职务",biz = BizType.QUERY)
@PreAuthorize("hasRole('sys:post:query')")
public R<SysPost> getById(@PathVariable("id") String id){
SysPost sysPost = sysPostService.getById(id);
if(sysPost.getId()!=null&&!sysPost.getId().equals(0L)){
sysPost.setSysDept(sysDeptService.getById(sysPost.getDeptId()));
}
return R.ok(sysPost);
}
/**
* 根据ID更新
* @param param
@ -86,10 +92,12 @@ public class SysPostController {
*/
@SysLog(title = "职务",biz = BizType.UPDATE)
@PostMapping("/updateById")
@PreAuthorize("hasRole('sys:post:update')")
public R<?> updateById(@RequestBody @Valid SysPost param){
boolean result = sysPostService.updateById(param);
return R.isTrue(result);
if(param.getId()==null){
return R.error2();
}
sysPostService.modify(param);
return R.ok();
}
@ -101,10 +109,10 @@ public class SysPostController {
*/
@PostMapping("/save")
@SysLog(title = "职务",biz = BizType.INSERT)
@PreAuthorize("hasRole('sys:post:insert')")
public R<?> save(@RequestBody @Valid SysPost param){
boolean result = sysPostService.save(param);
return R.isTrue(result);
param.setId(null);
sysPostService.modify(param);
return R.ok(param);
}
/**
@ -114,7 +122,6 @@ public class SysPostController {
*/
@SysLog(title = "职务",biz = BizType.DELETE)
@DeleteMapping("/deleteById/{id}")
@PreAuthorize("hasRole('sys:post:delete')")
public R<?> deleteById(@PathVariable("id") String id){
boolean result = sysPostService.removeById(id);
return R.isTrue(result);

93
src/main/java/com/qs/serve/modules/sys/controller/SysPostUserController.java

@ -0,0 +1,93 @@
package com.qs.serve.modules.sys.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.sys.entity.so.SysPostUserSo;
import com.qs.serve.modules.sys.entity.bo.SysPostUserBo;
import com.qs.serve.modules.sys.entity.SysPostUser;
import com.qs.serve.modules.sys.service.SysPostUserService;
import javax.validation.Valid;
import java.util.List;
/**
* 系统 系统职务
* @author YenHex
* @since 2023-04-27
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("sys/postUser")
public class SysPostUserController {
private SysPostUserService sysPostUserService;
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<SysPostUser>> getPage(SysPostUserSo param){
SysPostUser entity = CopierUtil.copy(param,new SysPostUser());
LambdaQueryWrapper<SysPostUser> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<SysPostUser> list = sysPostUserService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
//@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.SYSTEM, title = "系统职务", biz = BizType.QUERY)
public R<SysPostUser> getById(@PathVariable("id") String id){
SysPostUser sysPostUser = sysPostUserService.getById(id);
return R.ok(sysPostUser);
}
/**
* 绑定用户与职务
* @param param
* @return
*/
@PostMapping("/bind")
@SysLog(module = SystemModule.SYSTEM, title = "系统职务", biz = BizType.INSERT)
public R<?> save(@RequestBody @Valid SysPostUserBo param){
sysPostUserService.bind(param);
return R.ok();
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.SYSTEM, title = "系统职务", biz = BizType.DELETE)
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = sysPostUserService.removeByIds(idsLong);
return R.isTrue(result);
}
}

13
src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java

@ -10,6 +10,7 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.dto.TreeNode;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.sys.entity.*;
import com.qs.serve.modules.sys.entity.bo.*;
@ -46,6 +47,14 @@ public class SysUserController {
private WxUserService wxUserService;
private SysUserSalesService sysUserSalesService;
@GetMapping("/getChildList")
public R<List<SysPostUser>> getChildList(){
List<SysPostUser> postUsers = sysUserService.listByChildIds(AuthContextUtils.getSysUserId());
return R.ok(postUsers);
}
/**
* 树查询
* @return
@ -95,8 +104,8 @@ public class SysUserController {
SysUserVo sysUserVo = sysUser.toSysUserVo(false);
SysDept dept = sysDeptService.getById(sysUser.getDeptId());
sysUserVo.setDeptInfo(dept);
SysPost sysPost = sysPostService.getById(sysUser.getPositionId());
sysUserVo.setPostInfo(sysPost);
//SysPost sysPost = sysPostService.getById(sysUser.getPositionId());
//sysUserVo.setPostInfo(sysPost);
return R.ok(sysUserVo);
}

41
src/main/java/com/qs/serve/modules/sys/entity/SysPost.java

@ -1,20 +1,25 @@
package com.qs.serve.modules.sys.entity;
import java.time.LocalDateTime;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 系统职务 实体类
* @author YenHex
* @since 2022-04-01
* @since 2023-04-27
*/
@Data
@TableName("sys_post")
@ -23,18 +28,33 @@ public class SysPost implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
@TableId(type = IdType.ASSIGN_UUID)
private String id;
/** 部门ID */
/** 名称 */
@NotNull
private String deptId;
@Length(max = 20,message = "名称长度不能超过20字")
@TableField(condition = SqlCondition.LIKE)
private String postName;
/** 名称 */
/** 编码 */
@Length(max = 30,message = "编码长度不能超过30字")
@TableField(condition = SqlCondition.LIKE)
private String name;
private String postCode;
private String pid;
/** id路径 */
@Length(max = 4255,message = "id路径长度不能超过4255字")
private String pathIds;
/** 名称路径 */
@Length(max = 4255,message = "名称路径长度不能超过4255字")
@TableField(condition = SqlCondition.LIKE)
private String pathNames;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@ -58,14 +78,15 @@ public class SysPost implements Serializable {
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
@TableField(exist = false)
private SysDept sysDept;
}

132
src/main/java/com/qs/serve/modules/sys/entity/SysPostUser.java

@ -0,0 +1,132 @@
package com.qs.serve.modules.sys.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 系统职务 实体类
* @author YenHex
* @since 2023-04-27
*/
@Data
@TableName("sys_post_user")
public class SysPostUser implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 用户id */
@Length(max = 255,message = "用户id长度不能超过255字")
private String userId;
/** 用户编码 */
@Length(max = 255,message = "用户编码长度不能超过255字")
@TableField(condition = SqlCondition.LIKE)
private String userCode;
/** 用户名称 */
@Length(max = 255,message = "用户名称长度不能超过255字")
@TableField(condition = SqlCondition.LIKE)
private String userName;
/** 岗位id */
@Length(max = 64,message = "岗位id长度不能超过64字")
private String postId;
/** 岗位名称 */
@Length(max = 20,message = "岗位名称长度不能超过20字")
@TableField(condition = SqlCondition.LIKE)
private String postName;
/** 岗位编码 */
@Length(max = 30,message = "岗位编码长度不能超过30字")
@TableField(condition = SqlCondition.LIKE)
private String postCode;
/** 岗位pid */
@Length(max = 64,message = "岗位pid长度不能超过64字")
private String pid;
/** id路径 */
@Length(max = 4255,message = "id路径长度不能超过4255字")
private String pathIds;
/** 名称路径 */
@Length(max = 4255,message = "名称路径长度不能超过4255字")
private String pathNames;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
public static SysPostUser toNewObject(SysPostUser source){
SysPostUser postUser = new SysPostUser();
postUser.setId(source.getId());
postUser.setUserId(source.getUserId());
postUser.setUserCode(source.getUserCode());
postUser.setUserName(source.getUserName());
postUser.setPostId(source.getPostId());
postUser.setPostName(source.getPostName());
postUser.setPostCode(source.getPostCode());
postUser.setPid(source.getPid());
postUser.setPathIds(source.getPathIds());
postUser.setPathNames(source.getPathNames());
postUser.setRemark(source.getRemark());
postUser.setCreateTime(source.getCreateTime());
postUser.setCreateBy(source.getCreateBy());
postUser.setUpdateTime(source.getUpdateTime());
postUser.setUpdateBy(source.getUpdateBy());
postUser.setTenantId(source.getTenantId());
postUser.setDelFlag(source.getDelFlag());
return postUser;
}
}

39
src/main/java/com/qs/serve/modules/sys/entity/SysUser.java

@ -111,45 +111,6 @@ public class SysUser implements Serializable {
/** 致远用户id */
private String syUserId;
/** 一级区域ID */
@Length(max = 32,message = "一级区域ID长度不能超过32字")
private String regionFirst;
/** 二级区域ID */
@Length(max = 32,message = "二级区域ID长度不能超过32字")
private String regionSecond;
/** 三级区域ID */
@Length(max = 32,message = "三级区域ID长度不能超过32字")
private String regionThird;
/** 4级区域ID */
@Length(max = 32,message = "4级区域ID长度不能超过32字")
private String regionFourthly;
/** 最子级区域ID */
@Length(max = 32,message = "最子级区域ID长度不能超过32字")
private String regionLast;
/** 行政一级区域ID */
@Length(max = 32,message = "行政一级区域ID长度不能超过32字")
private String region2First;
/** 行政二级区域ID */
@Length(max = 32,message = "行政二级区域ID长度不能超过32字")
private String region2Second;
/** 行政三级区域ID */
@Length(max = 32,message = "行政三级区域ID长度不能超过32字")
private String region2Third;
/** 行政最子级区域ID */
@Length(max = 32,message = "行政最子级区域ID长度不能超过32字")
private String region2Last;
/** 行政4级区域ID */
@Length(max = 32,message = "行政4级区域ID长度不能超过32字")
private String region2Fourthly;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

43
src/main/java/com/qs/serve/modules/sys/entity/bo/SysPostUserBo.java

@ -0,0 +1,43 @@
package com.qs.serve.modules.sys.entity.bo;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 系统职务 Bo
* @author YenHex
* @since 2023-04-27
*/
@Data
public class SysPostUserBo implements Serializable {
private static final long serialVersionUID = 1L;
/** 用户id */
private List<String> userIds;
/** 岗位id */
private List<String> postIds;
/**
* 0添加不进行删除
* 1`用户id`为参照物删除历史`岗位id`并重新添加新的`岗位id`
* 2`岗位id`为参照物删除历史`用户id`并重新添加新的`用户id`
*/
private Integer saveType;
}

86
src/main/java/com/qs/serve/modules/sys/entity/so/SysPostUserSo.java

@ -0,0 +1,86 @@
package com.qs.serve.modules.sys.entity.so;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 系统职务 查询参数
* @author YenHex
* @since 2023-04-27
*/
@Data
public class SysPostUserSo implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 用户id */
private String userId;
/** 用户编码 */
private String userCode;
/** 用户名称 */
private String userName;
/** 岗位id */
private String postId;
/** 岗位名称 */
private String postName;
/** 岗位编码 */
private String postCode;
/** 岗位pid */
private String pid;
/** id路径 */
private String pathIds;
/** 名称路径 */
private String pathNames;
/** 备注 */
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 创建人 */
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 更新人 */
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

47
src/main/java/com/qs/serve/modules/sys/entity/vo/SysPostTreeVo.java

@ -0,0 +1,47 @@
package com.qs.serve.modules.sys.entity.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.qs.serve.common.model.dto.TreeNode;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
/**
* @author YenHex
* @since 2023/4/27
*/
@Data
public class SysPostTreeVo extends TreeNode {
/** id */
@TableId(type = IdType.ASSIGN_UUID)
private String id;
/** 名称 */
@Length(max = 20,message = "名称长度不能超过20字")
@TableField(condition = SqlCondition.LIKE)
private String postName;
/** 编码 */
@Length(max = 30,message = "编码长度不能超过30字")
@TableField(condition = SqlCondition.LIKE)
private String postCode;
private String pid;
/** id路径 */
@Length(max = 4255,message = "id路径长度不能超过4255字")
private String pathIds;
/** 名称路径 */
@Length(max = 4255,message = "名称路径长度不能超过4255字")
@TableField(condition = SqlCondition.LIKE)
private String pathNames;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
}

14
src/main/java/com/qs/serve/modules/sys/mapper/SysPostUserMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.sys.entity.SysPostUser;
/**
* 系统职务 Mapper
* @author YenHex
* @date 2023-04-27
*/
public interface SysPostUserMapper extends BaseMapper<SysPostUser> {
}

2
src/main/java/com/qs/serve/modules/sys/service/SysPostService.java

@ -10,5 +10,7 @@ import com.qs.serve.modules.sys.entity.SysPost;
*/
public interface SysPostService extends IService<SysPost> {
void modify(SysPost param);
}

21
src/main/java/com/qs/serve/modules/sys/service/SysPostUserService.java

@ -0,0 +1,21 @@
package com.qs.serve.modules.sys.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.sys.entity.SysPostUser;
import com.qs.serve.modules.sys.entity.bo.SysPostUserBo;
import java.util.List;
/**
* 系统职务 服务接口
* @author YenHex
* @date 2023-04-27
*/
public interface SysPostUserService extends IService<SysPostUser> {
List<SysPostUser> listByUserId(String userId);
void updatePathIds(String orgPathIds,String newPathIds,String orgPathNames,String newPathNames);
void bind(SysPostUserBo param);
}

9
src/main/java/com/qs/serve/modules/sys/service/SysUserService.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.sys.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.common.framework.security.model.LoginUser;
import com.qs.serve.modules.sys.entity.SysPostUser;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.entity.bo.SysUserLeaveBo;
@ -68,8 +69,12 @@ public interface SysUserService extends IService<SysUser> {
*/
void reEntry(String userId);
List<String> listByChildIds(String userId);
/**
* 通过岗位上下级加载下级用户
* @param userId
* @return
*/
List<SysPostUser> listByChildIds(String userId);
}

66
src/main/java/com/qs/serve/modules/sys/service/impl/SysPostServiceImpl.java

@ -1,12 +1,21 @@
package com.qs.serve.modules.sys.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.IdUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.sys.entity.SysPost;
import com.qs.serve.modules.sys.mapper.SysPostMapper;
import com.qs.serve.modules.sys.service.SysPostService;
import com.qs.serve.modules.sys.service.SysPostUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
* 系统职务 服务实现类
@ -18,5 +27,62 @@ import org.springframework.stereotype.Service;
@AllArgsConstructor
public class SysPostServiceImpl extends ServiceImpl<SysPostMapper, SysPost> implements SysPostService {
SysPostUserService postUserService;
@Override
@Transactional(rollbackFor = Exception.class)
public void modify(SysPost param) {
SysPost dbData = this.getById(param.getId());
SysPost parent = null;
if(param.getPid()!=null&&!param.getPid().equals("0")){
parent = this.getById(param.getPid());
if(parent==null){
Assert.throwEx("父级标签不存在");
}
}
if(param.getId()==null){
this.save(param);
}
if(parent==null){
param.setPid("0");
param.setPostCode(StringUtils.genShortId()+IdUtil.genCode(4));
param.setPathIds(param.getId());
}else {
param.setPathIds(parent.getPathIds()+"_"+param.getId());
}
if(dbData==null){
this.saveOrUpdate(param);
}else {
param.setPostCode(null);
this.updateById(param);
boolean changePid = !dbData.getPid().equals(param.getPid());
if(changePid){
LambdaQueryWrapper<SysPost> lqw = new LambdaQueryWrapper<>();
lqw.and(v1->{
v1.eq(SysPost::getPathIds,dbData.getPathIds())
.or().likeRight(SysPost::getPathIds,dbData.getPathIds()+"_");
});
List<SysPost> childList = this.list(lqw);
List<SysPost> childList4Upd = childList.stream().map(obj->{
SysPost par = new SysPost();
par.setId(obj.getId());
par.setPathIds(obj.getPathIds().replace(dbData.getPathIds(),param.getPathIds()));
return par;
}).collect(Collectors.toList());
this.updateBatchById(childList4Upd);
//更新关联表
postUserService.updatePathIds(dbData.getPathIds(),param.getPathIds(),
dbData.getPathNames(), param.getPathNames());
}else {
//不进行更新
param.setPathIds(null);
param.setPid(null);
}
this.updateById(param);
}
}
}

112
src/main/java/com/qs/serve/modules/sys/service/impl/SysPostUserServiceImpl.java

@ -0,0 +1,112 @@
package com.qs.serve.modules.sys.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.modules.sys.entity.SysPost;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.entity.bo.SysPostUserBo;
import com.qs.serve.modules.sys.mapper.SysPostMapper;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.sys.service.SysPostService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tag.entity.TagData;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.sys.entity.SysPostUser;
import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.mapper.SysPostUserMapper;
import java.util.ArrayList;
import java.util.List;
/**
* 系统职务 服务实现类
* @author YenHex
* @since 2023-04-27
*/
@Slf4j
@Service
@AllArgsConstructor
public class SysPostUserServiceImpl extends ServiceImpl<SysPostUserMapper,SysPostUser> implements SysPostUserService {
SysPostMapper postMapper;
SysUserMapper userMapper;
@Override
public List<SysPostUser> listByUserId(String userId) {
LambdaQueryWrapper<SysPostUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(SysPostUser::getUserId,userId);
return this.list(lqw);
}
@Override
public void updatePathIds(String orgPathIds,String newPathIds,String orgPathNames,String newPathNames){
LambdaQueryWrapper<SysPostUser> lqw = new LambdaQueryWrapper<>();
lqw.likeRight(SysPostUser::getPathIds,orgPathIds+"_");
lqw.select(SysPostUser::getId,SysPostUser::getPathIds,SysPostUser::getPathNames);
List<SysPostUser> postUserList = this.list(lqw);
if(CollectionUtil.isNotEmpty(postUserList)){
for (SysPostUser postUser : postUserList) {
postUser.setPathIds(postUser.getPathIds().replace(orgPathIds,newPathIds));
postUser.setPostName(postUser.getPathNames().replace(orgPathNames,newPathNames));
}
this.updateBatchById(postUserList);
}
}
@Override
public void bind(SysPostUserBo param) {
Integer saveType = param.getSaveType()==null?0: param.getSaveType();
LambdaQueryWrapper<SysPost> postLqw = new LambdaQueryWrapper<>();
postLqw.in(SysPost::getId,param.getUserIds());
List<SysPost> postList = postMapper.selectList(postLqw);
LambdaQueryWrapper<SysUser> userLqw = new LambdaQueryWrapper<>();
userLqw.in(SysUser::getId,param.getUserIds());
List<SysUser> userList = userMapper.selectList(userLqw);
if(CollectionUtil.isNotEmpty(postList)&&CollectionUtil.isNotEmpty(userList)){
//移除历史数据
if (saveType.equals(1)){
LambdaQueryWrapper<SysPostUser> lqw = new LambdaQueryWrapper<>();
lqw.in(SysPostUser::getUserId,param.getUserIds());
this.remove(lqw);
}else if (saveType.equals(2)){
LambdaQueryWrapper<SysPostUser> lqw = new LambdaQueryWrapper<>();
lqw.in(SysPostUser::getPostId,param.getPostIds());
this.remove(lqw);
}
List<SysPostUser> resultList = new ArrayList<>();
for (SysUser sysUser : userList) {
for (SysPost sysPost : postList) {
//避免重复
if(saveType.equals(0)){
LambdaQueryWrapper<SysPostUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(SysPostUser::getPostId,sysPost.getId());
lqw.eq(SysPostUser::getUserId,sysUser.getId());
if(this.count(lqw)>0){
continue;
}
}
SysPostUser postUser = new SysPostUser();
postUser.setUserId(sysUser.getId());
postUser.setUserCode(sysUser.getCode());
postUser.setUserName(sysUser.getName());
postUser.setPostId(sysPost.getId());
postUser.setPostName(sysPost.getPostName());
postUser.setPostCode(sysPost.getPostCode());
postUser.setPid(sysPost.getPid());
postUser.setPathIds(sysPost.getPathIds());
postUser.setPathNames(sysPost.getPathNames());
resultList.add(postUser);
}
}
if(CollectionUtil.isNotEmpty(resultList)){
this.saveBatch(resultList);
}
}
}
}

19
src/main/java/com/qs/serve/modules/sys/service/impl/SysUserServiceImpl.java

@ -8,6 +8,7 @@ import com.qs.serve.common.framework.security.model.LoginUser;
import com.qs.serve.common.framework.security.model.LoginUserType;
import com.qs.serve.common.model.enums.HttpCode;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegionUser;
import com.qs.serve.modules.sys.entity.*;
import com.qs.serve.modules.sys.entity.bo.SysUserLeaveBo;
import com.qs.serve.modules.sys.mapper.*;
@ -33,6 +34,7 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
private final SysPostUserService sysPostUserService;
private final SysUserRoleService sysUserRoleService;
private final SysUserLeaveService sysUserLeaveService;
private final SysRoleMenuMapper sysRoleMenuMapper;
@ -248,9 +250,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
@Override
public List<String> listByChildIds(String userId) {
return null;
public List<SysPostUser> listByChildIds(String userId) {
List<SysPostUser> postUsers = sysPostUserService.listByUserId(userId);
if(CollectionUtil.isEmpty(postUsers)){
return new ArrayList<>();
}
LambdaQueryWrapper<SysPostUser> lqw = new LambdaQueryWrapper<>();
lqw.ne(SysPostUser::getUserId,userId);
lqw.and(aa->{
for (SysPostUser postUser : postUsers) {
aa.or().likeRight(SysPostUser::getPathIds,postUser.getPathIds()+"_");
}
});
List<SysPostUser> childPostUsers = sysPostUserService.list(lqw);
return childPostUsers;
}
}

Loading…
Cancel
Save