package cn.iocoder.yudao.module.member.service.group; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupCreateReqVO; import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUpdateReqVO; import cn.iocoder.yudao.module.member.convert.group.MemberGroupConvert; import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO; import cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import jakarta.annotation.Resource; import java.util.Collection; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.GROUP_HAS_USER; import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.GROUP_NOT_EXISTS; /** * 用户分组 Service 实现类 * * @author owen */ @Service @Validated public class MemberGroupServiceImpl implements MemberGroupService { @Resource private MemberGroupMapper memberGroupMapper; @Resource private MemberUserService memberUserService; @Override public Long createGroup(MemberGroupCreateReqVO createReqVO) { // 插入 MemberGroupDO group = MemberGroupConvert.INSTANCE.convert(createReqVO); memberGroupMapper.insert(group); // 返回 return group.getId(); } @Override public void updateGroup(MemberGroupUpdateReqVO updateReqVO) { // 校验存在 validateGroupExists(updateReqVO.getId()); // 更新 MemberGroupDO updateObj = MemberGroupConvert.INSTANCE.convert(updateReqVO); memberGroupMapper.updateById(updateObj); } @Override public void deleteGroup(Long id) { // 校验存在 validateGroupExists(id); // 校验分组下是否有用户 validateGroupHasUser(id); // 删除 memberGroupMapper.deleteById(id); } void validateGroupExists(Long id) { if (memberGroupMapper.selectById(id) == null) { throw exception(GROUP_NOT_EXISTS); } } void validateGroupHasUser(Long id) { Long count = memberUserService.getUserCountByGroupId(id); if (count > 0) { throw exception(GROUP_HAS_USER); } } @Override public MemberGroupDO getGroup(Long id) { return memberGroupMapper.selectById(id); } @Override public List getGroupList(Collection ids) { if (CollUtil.isEmpty(ids)) { return ListUtil.empty(); } return memberGroupMapper.selectByIds(ids); } @Override public PageResult getGroupPage(MemberGroupPageReqVO pageReqVO) { return memberGroupMapper.selectPage(pageReqVO); } @Override public List getGroupListByStatus(Integer status) { return memberGroupMapper.selectListByStatus(status); } }