| | |
| | | package cc.mrbird.febs.ai.service.impl; |
| | | |
| | | import cc.mrbird.febs.ai.entity.AiCompany; |
| | | import cc.mrbird.febs.ai.entity.AiCompanyMemberApply; |
| | | import cc.mrbird.febs.ai.entity.AiKnowledgeFile; |
| | | import cc.mrbird.febs.ai.entity.AiMember; |
| | | import cc.mrbird.febs.ai.mapper.AiCompanyMapper; |
| | | import cc.mrbird.febs.ai.mapper.AiCompanyMemberApplyMapper; |
| | | import cc.mrbird.febs.ai.service.AiCompanyMemberApplyService; |
| | | import cc.mrbird.febs.ai.service.AiMemberService; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.LoginUserUtil; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.mapper.MallMemberMapper; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Slf4j |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class AiCompanyMemberApplyServiceImpl extends ServiceImpl<AiCompanyMemberApplyMapper, AiCompanyMemberApply> implements AiCompanyMemberApplyService { |
| | | |
| | | private final MallMemberMapper mallMemberMapper; |
| | | private final AiMemberService aiMemberService; |
| | | private final AiCompanyMapper aiCompanyMapper; |
| | | |
| | | @Override |
| | | public IPage<AiCompanyMemberApply> listInPage(AiCompanyMemberApply dto, QueryRequest request) { |
| | | |
| | | Page<AiCompanyMemberApply> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | LambdaQueryWrapper<AiCompanyMemberApply> query = Wrappers.lambdaQuery(AiCompanyMemberApply.class); |
| | | if (StrUtil.isNotEmpty(dto.getCompanyId())){ |
| | | AiCompany aiCompany = aiCompanyMapper.selectById(dto.getCompanyId()); |
| | | query.eq(AiCompanyMemberApply::getCompanyCode, aiCompany.getCode()); |
| | | } |
| | | query.orderByDesc(AiCompanyMemberApply::getCreatedTime); |
| | | Page<AiCompanyMemberApply> pages = this.baseMapper.selectPage(page, query); |
| | | List<AiCompanyMemberApply> records = pages.getRecords(); |
| | | if(CollUtil.isNotEmpty(records)){ |
| | | //获取records的全部memberId |
| | | List<String> memberIds = records.stream().map(AiCompanyMemberApply::getMemberId).collect(Collectors.toList()); |
| | | |
| | | List<MallMember> mallMembers = mallMemberMapper.selectList( |
| | | Wrappers.lambdaQuery(MallMember.class) |
| | | .select(MallMember::getMemberUuid, MallMember::getName, MallMember::getRealName) |
| | | .in(MallMember::getMemberUuid, memberIds) |
| | | ); |
| | | if (CollUtil.isNotEmpty(mallMembers)){ |
| | | records.forEach(record -> { |
| | | MallMember mallMember = mallMembers.stream().filter(m -> m.getMemberUuid().equals(record.getMemberId())).findFirst().orElse(null); |
| | | if (mallMember != null){ |
| | | record.setName(mallMember.getName()); |
| | | record.setRealName(mallMember.getRealName()); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | return pages; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse agree(AiCompanyMemberApply dto) { |
| | | String id = dto.getId(); |
| | | AiCompanyMemberApply aiCompanyMemberApply = this.getById(id); |
| | | if (ObjectUtil.isEmpty(aiCompanyMemberApply)){ |
| | | throw new RuntimeException("申请不存在"); |
| | | } |
| | | if (0 != aiCompanyMemberApply.getState()){ |
| | | throw new RuntimeException("申请已处理"); |
| | | } |
| | | String companyCode = aiCompanyMemberApply.getCompanyCode(); |
| | | AiCompany aiCompany = aiCompanyMapper.selectOne( |
| | | Wrappers.lambdaQuery(AiCompany.class) |
| | | .eq(AiCompany::getCode, companyCode) |
| | | .last("limit 1") |
| | | ); |
| | | |
| | | if (ObjectUtil.isEmpty(aiCompany)){ |
| | | throw new FebsException("公司编码不存在"); |
| | | } |
| | | |
| | | this.update( |
| | | null, |
| | | Wrappers.lambdaUpdate(AiCompanyMemberApply.class) |
| | | .set(AiCompanyMemberApply::getState, 1) |
| | | .eq(AiCompanyMemberApply::getId, id) |
| | | ); |
| | | |
| | | String memberUuid = aiCompanyMemberApply.getMemberId(); |
| | | String companyId = aiCompany.getId(); |
| | | |
| | | mallMemberMapper.update(null, |
| | | Wrappers.lambdaUpdate(MallMember.class) |
| | | .set(MallMember::getCompanyId, companyId) |
| | | .eq(MallMember::getMemberUuid, memberUuid) |
| | | ); |
| | | |
| | | aiMemberService.update(null, |
| | | Wrappers.lambdaUpdate(AiMember.class) |
| | | .set(AiMember::getCompanyId, companyId) |
| | | .eq(AiMember::getId, memberUuid) |
| | | ); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse disagree(AiCompanyMemberApply dto) { |
| | | String id = dto.getId(); |
| | | AiCompanyMemberApply aiCompanyMemberApply = this.getById(id); |
| | | if (ObjectUtil.isEmpty(aiCompanyMemberApply)){ |
| | | throw new RuntimeException("申请不存在"); |
| | | } |
| | | if (0 != aiCompanyMemberApply.getState()){ |
| | | throw new RuntimeException("申请已处理"); |
| | | } |
| | | this.update(null, |
| | | Wrappers.lambdaUpdate(AiCompanyMemberApply.class) |
| | | .set(AiCompanyMemberApply::getState, 2) |
| | | .eq(AiCompanyMemberApply::getId, id) |
| | | ); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse unbind(AiCompanyMemberApply dto) { |
| | | String id = dto.getId(); |
| | | AiCompanyMemberApply aiCompanyMemberApply = this.getById(id); |
| | | if (ObjectUtil.isEmpty(aiCompanyMemberApply)){ |
| | | throw new RuntimeException("申请不存在"); |
| | | } |
| | | if (1 != aiCompanyMemberApply.getState()){ |
| | | throw new RuntimeException("申请已处理"); |
| | | } |
| | | String companyCode = aiCompanyMemberApply.getCompanyCode(); |
| | | AiCompany aiCompany = aiCompanyMapper.selectOne( |
| | | Wrappers.lambdaQuery(AiCompany.class) |
| | | .eq(AiCompany::getCode, companyCode) |
| | | .last("limit 1") |
| | | ); |
| | | |
| | | if (ObjectUtil.isEmpty(aiCompany)){ |
| | | throw new FebsException("公司编码不存在"); |
| | | } |
| | | |
| | | this.update(null, |
| | | Wrappers.lambdaUpdate(AiCompanyMemberApply.class) |
| | | .set(AiCompanyMemberApply::getState, 3) |
| | | .eq(AiCompanyMemberApply::getId, id) |
| | | ); |
| | | |
| | | String memberUuid = aiCompanyMemberApply.getMemberId(); |
| | | mallMemberMapper.update(null, |
| | | Wrappers.lambdaUpdate(MallMember.class) |
| | | .set(MallMember::getCompanyId, null) |
| | | .eq(MallMember::getMemberUuid, memberUuid) |
| | | ); |
| | | |
| | | aiMemberService.update(null, |
| | | Wrappers.lambdaUpdate(AiMember.class) |
| | | .set(AiMember::getCompanyId, null) |
| | | .eq(AiMember::getId, memberUuid) |
| | | ); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | } |