This commit is contained in:
admin
2024-06-14 16:34:37 +08:00
parent 12422d8c06
commit b7afadce44
11 changed files with 302 additions and 35 deletions

View File

@@ -1,14 +1,27 @@
package com.starry.admin.modules.clerk.controller; package com.starry.admin.modules.clerk.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.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.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.annotation.Log;
import com.starry.common.enums.BusinessType; import com.starry.common.enums.BusinessType;
import com.starry.common.result.R; 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 org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 店员分组信息Controller * 店员分组信息Controller
@@ -19,33 +32,43 @@ import javax.annotation.Resource;
@RestController @RestController
@RequestMapping("/clerk/group") @RequestMapping("/clerk/group")
public class PlayClerkGroupInfoController { public class PlayClerkGroupInfoController {
@Resource @Resource
private IPlayClerkGroupInfoService playClerkGroupInfoService; private IPlayClerkGroupInfoService playClerkGroupInfoService;
@Resource
private IPlayClerkUserInfoService playClerkUserInfoService;
@Resource
private SysUserService sysUserService;
/** /**
* 查询店员分组信息列表 * 查询店员分组信息列表
*/ */
@GetMapping("/list") @PostMapping("/listByPage")
public R list(PlayClerkGroupInfoEntity playClerkGroupInfo) { public R listByPage(@Validated @RequestBody PlayClerkGroupInfoQueryVo vo) {
IPage<PlayClerkGroupInfoEntity> list = playClerkGroupInfoService.selectPlayClerkGroupInfoByPage(playClerkGroupInfo); IPage<PlayClerkGroupInfoReturnVo> list = playClerkGroupInfoService.selectByPage(vo);
for (PlayClerkGroupInfoReturnVo record : list.getRecords()) {
List<PlayClerkUserInfoEntity> 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); 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) @Log(title = "店员分组信息", businessType = BusinessType.INSERT)
@PostMapping("/create") @PostMapping("/createBaseInfo")
public R create(@RequestBody PlayClerkGroupInfoEntity playClerkGroupInfo) { public R createBaseInfo(@Validated @RequestBody PlayClerkGroupInfoEditAddInfoVo vo) {
boolean success = playClerkGroupInfoService.create(playClerkGroupInfo); SysUserEntity sysUserEntity = sysUserService.selectUserById(vo.getSysUserId());
PlayClerkGroupInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkGroupInfoEntity.class);
entity.setSysUserCode(sysUserEntity.getUserCode());
boolean success = playClerkGroupInfoService.create(entity);
if (success) { if (success) {
return R.ok(); return R.ok();
} }
@@ -56,22 +79,31 @@ public class PlayClerkGroupInfoController {
* 修改店员分组信息 * 修改店员分组信息
*/ */
@Log(title = "店员分组信息", businessType = BusinessType.UPDATE) @Log(title = "店员分组信息", businessType = BusinessType.UPDATE)
@PostMapping(value = "/update/{id}") @PostMapping(value = "/updateBaseInfo")
public R update(@PathVariable String id, @RequestBody PlayClerkGroupInfoEntity playClerkGroupInfo) { public R updateBaseInfo(@Validated @RequestBody PlayClerkGroupInfoEditBaseInfoVo vo) {
playClerkGroupInfo.setId(id); SysUserEntity sysUserEntity = sysUserService.selectUserById(vo.getSysUserId());
boolean success = playClerkGroupInfoService.update(playClerkGroupInfo); PlayClerkGroupInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkGroupInfoEntity.class);
entity.setSysUserCode(sysUserEntity.getUserCode());
boolean success = playClerkGroupInfoService.update(entity);
if (success) { if (success) {
return R.ok(); return R.ok();
} }
return R.error("修改失败"); return R.error("修改失败");
} }
/** /**
* 删除店员分组信息 * 删除店员分组信息
*/ */
@Log(title = "店员分组信息", businessType = BusinessType.DELETE) @Log(title = "店员分组信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public R remove(@PathVariable String[] ids) { public R remove(@PathVariable String[] ids) {
for (String id : ids) {
List<PlayClerkUserInfoEntity> clerkUserInfoEntities = playClerkUserInfoService.selecyByGroupId(id);
if (!clerkUserInfoEntities.isEmpty()) {
throw new CustomException("分组中存在店员,禁止删除");
}
}
return R.ok(playClerkGroupInfoService.deletePlayClerkGroupInfoByIds(ids)); return R.ok(playClerkGroupInfoService.deletePlayClerkGroupInfoByIds(ids));
} }
} }

View File

@@ -2,6 +2,7 @@ package com.starry.admin.modules.clerk.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity;
/** /**
@@ -10,7 +11,7 @@ import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity;
* @author admin * @author admin
* @since 2024-05-31 * @since 2024-05-31
*/ */
public interface PlayClerkGroupInfoMapper extends BaseMapper<PlayClerkGroupInfoEntity> { public interface PlayClerkGroupInfoMapper extends MPJBaseMapper<PlayClerkGroupInfoEntity> {
} }

View File

@@ -22,16 +22,34 @@ public class PlayClerkGroupInfoEntity extends BaseEntity<PlayClerkGroupInfoEntit
*/ */
private String id; private String id;
/** /**
* 租户ID * 租户ID
*/ */
private String tenantId; private String tenantId;
/**
* 用户ID
**/
private String sysUserId;
/**
* 用户账号
**/
private String sysUserCode;
/** /**
* 分组名称 * 分组名称
*/ */
private String groupName; private String groupName;
/**
* 组长名称
**/
private String leaderName;
/** /**
* 排序 * 排序
*/ */

View File

@@ -0,0 +1,39 @@
package com.starry.admin.modules.clerk.module.vo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 店员分组基本信息修改
*
* @author 杭州世平信息科技有限公司-xuhq
* @since 2024/6/14 14:45
**/
@Data
public class PlayClerkGroupInfoEditAddInfoVo {
/**
* 分组名称
*/
@NotBlank(message = "用户ID不能为空")
private String sysUserId;
/**
* 分组名称
*/
@NotBlank(message = "分组名称不能为空")
@Length(min = 1, max = 100, message = "字符长度在1-100之间")
private String groupName;
/**
* 分组名称
*/
@NotBlank(message = "组长名称不能为空")
@Length(min = 1, max = 100, message = "字符长度在1-100之间")
private String leaderName;
}

View File

@@ -0,0 +1,47 @@
package com.starry.admin.modules.clerk.module.vo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 店员分组基本信息修改
*
* @author 杭州世平信息科技有限公司-xuhq
* @since 2024/6/14 14:45
**/
@Data
public class PlayClerkGroupInfoEditBaseInfoVo {
/**
* UUID
*
* @since 2024/6/14 16:08
**/
@NotBlank(message = "ID不能为空")
private String id;
/**
* 分组名称
*/
@NotBlank(message = "用户ID不能为空")
private String sysUserId;
/**
* 分组名称
*/
@NotBlank(message = "分组名称不能为空")
@Length(min = 1, max = 100, message = "字符长度在1-100之间")
private String groupName;
/**
* 分组名称
*/
@NotBlank(message = "组长名称不能为空")
@Length(min = 1, max = 100, message = "字符长度在1-100之间")
private String leaderName;
}

View File

@@ -0,0 +1,23 @@
package com.starry.admin.modules.clerk.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 店员分组管理信息
*
* @author 杭州世平信息科技有限公司-xuhq
* @since 2024/6/14 14:45
**/
@EqualsAndHashCode(callSuper = true)
@Data
public class PlayClerkGroupInfoQueryVo extends BasePageEntity {
/**
* 分组名称
*/
private String groupName;
}

View File

@@ -0,0 +1,65 @@
package com.starry.admin.modules.clerk.module.vo;
import lombok.Data;
/**
* 店员分组管理信息
*
* @author 杭州世平信息科技有限公司-xuhq
* @since 2024/6/14 14:45
**/
@Data
public class PlayClerkGroupInfoReturnVo {
/**
* UUID
*/
private String id;
/**
* 租户ID
*/
private String tenantId;
/**
* 用户ID
**/
private String sysUserId;
/**
* 用户账号
**/
private String userCode;
/**
* 分组名称
*/
private String groupName;
/**
* 组长名称
**/
private String leaderName;
/**
* 排序
*/
private Long sort;
/**
* 员工总数量
**/
private Integer totalEmployeesNumber;
/**
* 上架员工数量
**/
private Integer listingEmployeesNumber;
}

View File

@@ -3,6 +3,8 @@ package com.starry.admin.modules.clerk.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkGroupInfoQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkGroupInfoReturnVo;
/** /**
* 店员分组信息Service接口 * 店员分组信息Service接口
@@ -27,6 +29,16 @@ public interface IPlayClerkGroupInfoService extends IService<PlayClerkGroupInfoE
*/ */
IPage<PlayClerkGroupInfoEntity> selectPlayClerkGroupInfoByPage(PlayClerkGroupInfoEntity playClerkGroupInfo); IPage<PlayClerkGroupInfoEntity> selectPlayClerkGroupInfoByPage(PlayClerkGroupInfoEntity playClerkGroupInfo);
/**
* 分页查询店员分组信息列表
*
* @param vo 查询店员分组信息查询对象
* @return com.baomidou.mybatisplus.core.metadata.IPage<com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity>
* @author 杭州世平信息科技有限公司-xuhq
* @since 2024/6/14 15:46
**/
IPage<PlayClerkGroupInfoReturnVo> selectByPage(PlayClerkGroupInfoQueryVo vo);
/** /**
* 新增店员分组信息 * 新增店员分组信息
* *

View File

@@ -25,6 +25,7 @@ import java.util.List;
public interface IPlayClerkUserInfoService extends IService<PlayClerkUserInfoEntity> { public interface IPlayClerkUserInfoService extends IService<PlayClerkUserInfoEntity> {
List<PlayClerkUserInfoEntity> selecyByGroupId(String groupId);
/** /**
* 查询当前租户店员总数 * 查询当前租户店员总数
* *

View File

@@ -5,14 +5,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.mapper.PlayClerkGroupInfoMapper;
import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; 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.IPlayClerkGroupInfoService;
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
import com.starry.common.utils.IdUtils; import com.starry.common.utils.IdUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 店员分组信息Service业务层处理 * 店员分组信息Service业务层处理
@@ -25,6 +32,9 @@ public class PlayClerkGroupInfoServiceImpl extends ServiceImpl<PlayClerkGroupInf
@Resource @Resource
private PlayClerkGroupInfoMapper playClerkGroupInfoMapper; private PlayClerkGroupInfoMapper playClerkGroupInfoMapper;
@Resource
private IPlayClerkUserInfoService playClerkUserInfoService;
/** /**
* 查询店员分组信息 * 查询店员分组信息
* *
@@ -36,6 +46,16 @@ public class PlayClerkGroupInfoServiceImpl extends ServiceImpl<PlayClerkGroupInf
return this.baseMapper.selectById(id); return this.baseMapper.selectById(id);
} }
@Override
public IPage<PlayClerkGroupInfoReturnVo> selectByPage(PlayClerkGroupInfoQueryVo vo) {
MPJLambdaWrapper<PlayClerkGroupInfoEntity> 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);
}
/** /**
* 查询店员分组信息列表 * 查询店员分组信息列表
* *

View File

@@ -63,6 +63,14 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl<PlayClerkUserInfoM
private IPlayOrderInfoService playOrderInfoService; private IPlayOrderInfoService playOrderInfoService;
@Override
public List<PlayClerkUserInfoEntity> selecyByGroupId(String groupId) {
MPJLambdaWrapper<PlayClerkUserInfoEntity> lambdaWrapper = new MPJLambdaWrapper<>();
lambdaWrapper.select(PlayClerkUserInfoEntity::getId, PlayClerkUserInfoEntity::getListingState);
lambdaWrapper.eq(PlayClerkUserInfoEntity::getGroupId, groupId);
return this.baseMapper.selectList(lambdaWrapper);
}
@Override @Override
public Long getTotalClerkUser(String tenantId) { public Long getTotalClerkUser(String tenantId) {
MPJLambdaWrapper<PlayClerkUserInfoEntity> lambdaWrapper = new MPJLambdaWrapper<>(); MPJLambdaWrapper<PlayClerkUserInfoEntity> lambdaWrapper = new MPJLambdaWrapper<>();
@@ -126,7 +134,7 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl<PlayClerkUserInfoM
result.setAudioAllowEdit(false); result.setAudioAllowEdit(false);
} }
// 是店员之后,判断是否可以登录 // 是店员之后,判断是否可以登录
if (result.getClerkState().equals("1")) { if ("1".equals(result.getClerkState())) {
// 设置店员是否运行登录 // 设置店员是否运行登录
if ("0".equals(userInfo.getOnboardingState())) { if ("0".equals(userInfo.getOnboardingState())) {
result.setAllowLogin("1"); result.setAllowLogin("1");
@@ -251,6 +259,7 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl<PlayClerkUserInfoM
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderSettlementState, "0"); lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderSettlementState, "0");
return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkUnsettledWagesInfoReturnVo.class, lambdaQueryWrapper); return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkUnsettledWagesInfoReturnVo.class, lambdaQueryWrapper);
} }
@Override @Override
public IPage<PlayClerkUserReturnVo> selectByPage(PlayClerkUserQueryVo vo) { public IPage<PlayClerkUserReturnVo> selectByPage(PlayClerkUserQueryVo vo) {
MPJLambdaWrapper<PlayClerkUserInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>(); MPJLambdaWrapper<PlayClerkUserInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();