package cc.mrbird.febs.ai.service.impl; import cc.mrbird.febs.ai.entity.AiCompany; import cc.mrbird.febs.ai.entity.AiMemberRole; import cc.mrbird.febs.ai.mapper.AiCompanyMapper; import cc.mrbird.febs.ai.mapper.AiMemberRoleMapper; import cc.mrbird.febs.ai.req.memberRole.ApiMemberRoleDto; import cc.mrbird.febs.ai.res.company.ApiCompanyVo; import cc.mrbird.febs.ai.res.memberRole.ApiMemberRoleVo; import cc.mrbird.febs.ai.service.AiMemberRoleService; import cc.mrbird.febs.common.entity.FebsResponse; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** * AI用户选择角色表 Service实现类 * * @author yourname * @date 2025-07-29 */ @Slf4j @Service @RequiredArgsConstructor public class AiMemberRoleServiceImpl extends ServiceImpl implements AiMemberRoleService { private final AiMemberRoleMapper aiMemberRoleMapper; private final AiCompanyMapper aiCompanyMapper; @Override public List getListByQuery(LambdaQueryWrapper query) { return aiMemberRoleMapper.selectList( query); } @Override public FebsResponse memberRoleList() { List list = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(AiMemberRole.class); query.eq(AiMemberRole::getState, 1); List listByQuery = this.getListByQuery(query); if (CollUtil.isNotEmpty(listByQuery)){ for (AiMemberRole aiMemberRole : listByQuery){ ApiMemberRoleVo apiMemberRoleVo = new ApiMemberRoleVo(); apiMemberRoleVo.setId(aiMemberRole.getId()); apiMemberRoleVo.setName(aiMemberRole.getName()); apiMemberRoleVo.setIconImg(aiMemberRole.getIconImg()); list.add(apiMemberRoleVo); } } return new FebsResponse().success().data(list); } @Override public FebsResponse memberRoleListV1(ApiMemberRoleDto dto) { List list = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(AiMemberRole.class); if (StrUtil.isNotEmpty(dto.getCompanyId())){ query.eq(AiMemberRole::getCompanyId, dto.getCompanyId()); }else{ query.isNull(AiMemberRole::getCompanyId); } query.eq(AiMemberRole::getState, 1); List listByQuery = this.getListByQuery(query); if (CollUtil.isNotEmpty(listByQuery)){ for (AiMemberRole aiMemberRole : listByQuery){ ApiMemberRoleVo apiMemberRoleVo = new ApiMemberRoleVo(); apiMemberRoleVo.setId(aiMemberRole.getId()); apiMemberRoleVo.setName(aiMemberRole.getName()); apiMemberRoleVo.setIconImg(aiMemberRole.getIconImg()); list.add(apiMemberRoleVo); } } return new FebsResponse().success().data(list); } @Override public String getDefaultMemberRoleId() { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(AiMemberRole.class); queryWrapper.eq(AiMemberRole::getState, 1); queryWrapper.isNull(AiMemberRole::getCompanyId); queryWrapper.orderByAsc(AiMemberRole::getCreatedTime); queryWrapper.last("limit 1"); List listByQuery = this.getListByQuery(queryWrapper); if (CollUtil.isNotEmpty(listByQuery)){ for (AiMemberRole aiMemberRole : listByQuery){ return aiMemberRole.getId(); } } return null; } @Override public FebsResponse companyList() { List list = new ArrayList<>(); List aiCompanies = aiCompanyMapper.selectList(null); if (CollUtil.isNotEmpty(aiCompanies)){ for (AiCompany aiCompany : aiCompanies){ ApiCompanyVo apiCompanyVo = new ApiCompanyVo(); apiCompanyVo.setId(aiCompany.getId()); apiCompanyVo.setName(aiCompany.getName()); list.add(apiCompanyVo); } } return new FebsResponse().success().data(list); } }