diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupInfoController.java index b0ae521..3bfd481 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupInfoController.java @@ -1,14 +1,27 @@ package com.starry.admin.modules.clerk.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkGroupInfoEditAddInfoVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkGroupInfoEditBaseInfoVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkGroupInfoQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkGroupInfoReturnVo; import com.starry.admin.modules.clerk.service.IPlayClerkGroupInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; +import com.starry.admin.modules.system.entity.SysUserEntity; +import com.starry.admin.modules.system.service.SysUserService; import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; import com.starry.common.result.R; +import com.starry.common.utils.ConvertUtil; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; /** * 店员分组信息Controller @@ -19,33 +32,43 @@ import javax.annotation.Resource; @RestController @RequestMapping("/clerk/group") public class PlayClerkGroupInfoController { + @Resource private IPlayClerkGroupInfoService playClerkGroupInfoService; + + @Resource + private IPlayClerkUserInfoService playClerkUserInfoService; + + @Resource + private SysUserService sysUserService; + + /** * 查询店员分组信息列表 */ - @GetMapping("/list") - public R list(PlayClerkGroupInfoEntity playClerkGroupInfo) { - IPage list = playClerkGroupInfoService.selectPlayClerkGroupInfoByPage(playClerkGroupInfo); + @PostMapping("/listByPage") + public R listByPage(@Validated @RequestBody PlayClerkGroupInfoQueryVo vo) { + IPage list = playClerkGroupInfoService.selectByPage(vo); + for (PlayClerkGroupInfoReturnVo record : list.getRecords()) { + List clerkUserInfoEntities = playClerkUserInfoService.selecyByGroupId(record.getId()); + record.setTotalEmployeesNumber(clerkUserInfoEntities.size()); + record.setListingEmployeesNumber(clerkUserInfoEntities.stream().collect(Collectors.toMap(PlayClerkUserInfoEntity::getListingState, PlayClerkUserInfoEntity::getId)).size()); + } return R.ok(list); } - /** - * 获取店员分组信息详细信息 - */ - @GetMapping(value = "/{id}") - public R getInfo(@PathVariable("id") String id) { - return R.ok(playClerkGroupInfoService.selectPlayClerkGroupInfoById(id)); - } /** * 新增店员分组信息 */ @Log(title = "店员分组信息", businessType = BusinessType.INSERT) - @PostMapping("/create") - public R create(@RequestBody PlayClerkGroupInfoEntity playClerkGroupInfo) { - boolean success = playClerkGroupInfoService.create(playClerkGroupInfo); + @PostMapping("/createBaseInfo") + public R createBaseInfo(@Validated @RequestBody PlayClerkGroupInfoEditAddInfoVo vo) { + SysUserEntity sysUserEntity = sysUserService.selectUserById(vo.getSysUserId()); + PlayClerkGroupInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkGroupInfoEntity.class); + entity.setSysUserCode(sysUserEntity.getUserCode()); + boolean success = playClerkGroupInfoService.create(entity); if (success) { return R.ok(); } @@ -56,22 +79,31 @@ public class PlayClerkGroupInfoController { * 修改店员分组信息 */ @Log(title = "店员分组信息", businessType = BusinessType.UPDATE) - @PostMapping(value = "/update/{id}") - public R update(@PathVariable String id, @RequestBody PlayClerkGroupInfoEntity playClerkGroupInfo) { - playClerkGroupInfo.setId(id); - boolean success = playClerkGroupInfoService.update(playClerkGroupInfo); + @PostMapping(value = "/updateBaseInfo") + public R updateBaseInfo(@Validated @RequestBody PlayClerkGroupInfoEditBaseInfoVo vo) { + SysUserEntity sysUserEntity = sysUserService.selectUserById(vo.getSysUserId()); + PlayClerkGroupInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkGroupInfoEntity.class); + entity.setSysUserCode(sysUserEntity.getUserCode()); + boolean success = playClerkGroupInfoService.update(entity); if (success) { return R.ok(); } return R.error("修改失败"); } + /** * 删除店员分组信息 */ @Log(title = "店员分组信息", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R remove(@PathVariable String[] ids) { + for (String id : ids) { + List clerkUserInfoEntities = playClerkUserInfoService.selecyByGroupId(id); + if (!clerkUserInfoEntities.isEmpty()) { + throw new CustomException("分组中存在店员,禁止删除"); + } + } return R.ok(playClerkGroupInfoService.deletePlayClerkGroupInfoByIds(ids)); } } diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupInfoMapper.java index 39dceef..350a3ba 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupInfoMapper.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupInfoMapper.java @@ -2,6 +2,7 @@ package com.starry.admin.modules.clerk.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; /** @@ -10,7 +11,7 @@ import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; * @author admin * @since 2024-05-31 */ -public interface PlayClerkGroupInfoMapper extends BaseMapper { +public interface PlayClerkGroupInfoMapper extends MPJBaseMapper { } diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupInfoEntity.java index c68acb4..dc846e1 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupInfoEntity.java @@ -22,16 +22,34 @@ public class PlayClerkGroupInfoEntity extends BaseEntity selectPlayClerkGroupInfoByPage(PlayClerkGroupInfoEntity playClerkGroupInfo); + /** + * 分页查询店员分组信息列表 + * + * @param vo 查询店员分组信息查询对象 + * @return com.baomidou.mybatisplus.core.metadata.IPage + * @author 杭州世平信息科技有限公司-xuhq + * @since 2024/6/14 15:46 + **/ + IPage selectByPage(PlayClerkGroupInfoQueryVo vo); + /** * 新增店员分组信息 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserInfoService.java index c7ab7d9..be3eafd 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserInfoService.java @@ -25,6 +25,7 @@ import java.util.List; public interface IPlayClerkUserInfoService extends IService { + List selecyByGroupId(String groupId); /** * 查询当前租户店员总数 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupInfoServiceImpl.java index 2f7e23e..d4ce579 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupInfoServiceImpl.java @@ -5,14 +5,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.starry.admin.modules.clerk.mapper.PlayClerkGroupInfoMapper; import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkGroupInfoQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkGroupInfoReturnVo; import com.starry.admin.modules.clerk.service.IPlayClerkGroupInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; import com.starry.common.utils.IdUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; /** * 店员分组信息Service业务层处理 @@ -25,6 +32,9 @@ public class PlayClerkGroupInfoServiceImpl extends ServiceImpl selectByPage(PlayClerkGroupInfoQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + if (StrUtil.isNotBlank(vo.getGroupName())) { + lambdaQueryWrapper.eq(PlayClerkGroupInfoEntity::getGroupName, vo.getGroupName()); + } + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkGroupInfoReturnVo.class, lambdaQueryWrapper); + } + /** * 查询店员分组信息列表 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java index ef1a29a..818bc1c 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java @@ -63,6 +63,14 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl selecyByGroupId(String groupId) { + MPJLambdaWrapper lambdaWrapper = new MPJLambdaWrapper<>(); + lambdaWrapper.select(PlayClerkUserInfoEntity::getId, PlayClerkUserInfoEntity::getListingState); + lambdaWrapper.eq(PlayClerkUserInfoEntity::getGroupId, groupId); + return this.baseMapper.selectList(lambdaWrapper); + } + @Override public Long getTotalClerkUser(String tenantId) { MPJLambdaWrapper lambdaWrapper = new MPJLambdaWrapper<>(); @@ -74,10 +82,10 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl lambdaWrapper = new MPJLambdaWrapper<>(); lambdaWrapper.selectAll(PlayClerkLevelInfoEntity.class); - lambdaWrapper.selectAs(PlayClerkUserInfoEntity::getLevelId,"levelId"); - lambdaWrapper.leftJoin(PlayClerkLevelInfoEntity.class,PlayClerkLevelInfoEntity::getId,PlayClerkUserInfoEntity::getLevelId); - lambdaWrapper.eq(PlayClerkUserInfoEntity::getId,clerkId); - return this.baseMapper.selectJoinOne(PlayClerkLevelInfoEntity.class,lambdaWrapper); + lambdaWrapper.selectAs(PlayClerkUserInfoEntity::getLevelId, "levelId"); + lambdaWrapper.leftJoin(PlayClerkLevelInfoEntity.class, PlayClerkLevelInfoEntity::getId, PlayClerkUserInfoEntity::getLevelId); + lambdaWrapper.eq(PlayClerkUserInfoEntity::getId, clerkId); + return this.baseMapper.selectJoinOne(PlayClerkLevelInfoEntity.class, lambdaWrapper); } @@ -125,9 +133,9 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl listUnsettledWagesByPage(PlayClerkUnsettledWagesInfoQueryVo vo) { MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); - //查询所有店员 + // 查询所有店员 lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getId, "clerkId"); lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getClerkState, "1"); if (StrUtil.isNotBlank(vo.getClerkId())) { @@ -245,24 +253,25 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl(vo.getPageNum(), vo.getPageSize()), PlayClerkUnsettledWagesInfoReturnVo.class, lambdaQueryWrapper); } + @Override public IPage selectByPage(PlayClerkUserQueryVo vo) { MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); - //主表(店员表全部字段) + // 主表(店员表全部字段) lambdaQueryWrapper.selectAll(PlayClerkUserInfoEntity.class); - if(StrUtil.isNotBlank(vo.getId())) { + if (StrUtil.isNotBlank(vo.getId())) { lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getId, vo.getId()); } - if(StrUtil.isNotBlank(vo.getNickname())) { + if (StrUtil.isNotBlank(vo.getNickname())) { lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getNickname, vo.getNickname()); } - if(StrUtil.isNotBlank(vo.getNickname())) { + if (StrUtil.isNotBlank(vo.getNickname())) { lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getNickname, vo.getNickname()); } if (StrUtil.isNotBlank(vo.getPhone())) {