package cc.mrbird.febs.yinhe.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.utils.AppContants; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.common.utils.YHLoginUserUtil; import cc.mrbird.febs.yinhe.entity.*; import cc.mrbird.febs.yinhe.mapper.*; import cc.mrbird.febs.yinhe.req.*; import cc.mrbird.febs.yinhe.res.*; import cc.mrbird.febs.yinhe.service.YhAiService; 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.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class YhAiServiceImpl extends ServiceImpl implements YhAiService { private final YhAiMemberMapper yhAiMemberMapper; private final YHAiCompanyMapper yhAiCompanyMapper; private final YHAiAgentCategoryMapper yhAiAgentCategoryMapper; private final YHAiAgentMapper yhAiAgentMapper; private final YHAiAgentStartQuestionMapper yhAiAgentStartQuestionMapper; private final YhSysAgentCategoryMapper yhSysAgentCategoryMapper; private final YHSysAgentMapper yhSysAgentMapper; private final RedisUtils redisUtils; @Override public FebsResponse memberInfo() { String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid(); YHMemberVo yhMemberVo = new YHMemberVo(); YhAiMember yhAiMember = yhAiMemberMapper.selectOne( Wrappers.lambdaQuery(YhAiMember.class) .eq(YhAiMember::getMemberUuid, memberUuid) ); if (ObjectUtil.isNotEmpty(yhAiMember)){ String companyId = yhAiMember.getCompanyId(); YHAiCompany yhAiCompany = yhAiCompanyMapper.selectById(companyId); yhMemberVo.setMemberUuid(yhAiMember.getMemberUuid()); yhMemberVo.setAvatar(yhAiMember.getAvatar()); yhMemberVo.setName(yhAiMember.getName()); yhMemberVo.setRealName(yhAiMember.getRealName()); yhMemberVo.setSex(yhAiMember.getSex()); yhMemberVo.setCompanyId(yhAiCompany.getId()); yhMemberVo.setCompanyName(yhAiCompany.getName()); yhMemberVo.setPhone(yhAiMember.getPhone()); } return new FebsResponse().success().data(yhMemberVo); } @Override public FebsResponse categoryList(YHCategoryDto dto) { String companyId = YHLoginUserUtil.getLoginUser().getCompanyId(); List yhCategoryVos = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(YHAiAgentCategory.class); query.eq(YHAiAgentCategory::getCompanyId,companyId); query.eq(YHAiAgentCategory::getState,1); if (ObjectUtil.isNotEmpty(dto.getId())){ query.eq(YHAiAgentCategory::getId,dto.getId()); } if (ObjectUtil.isNotEmpty(dto.getHotState())){ query.eq(YHAiAgentCategory::getHotState,dto.getHotState()); } query.orderByAsc(YHAiAgentCategory::getSort); List yhAiAgentCategories = yhAiAgentCategoryMapper.selectList(query); if (CollUtil.isNotEmpty(yhAiAgentCategories)){ for (YHAiAgentCategory yhAiAgentCategory : yhAiAgentCategories) { YHCategoryVo yhCategoryVo = new YHCategoryVo(); yhCategoryVo.setName(yhAiAgentCategory.getName()); yhCategoryVo.setId(yhAiAgentCategory.getId()); yhCategoryVos.add(yhCategoryVo); } } return new FebsResponse().success().data(yhCategoryVos); } @Override public FebsResponse agentList(YHAgentDto dto) { String companyId = YHLoginUserUtil.getLoginUser().getCompanyId(); ArrayList yhAgentVos = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(YHAiAgent.class); query.eq(YHAiAgent::getCompanyId,companyId); query.eq(YHAiAgent::getState,1); if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){ query.eq(YHAiAgent::getAgentCategoryId,dto.getAgentCategoryId()); } query.orderByDesc(YHAiAgent::getCreateTime); List yhAiAgents = yhAiAgentMapper.selectList(query); if (CollUtil.isNotEmpty(yhAiAgents)){ for (YHAiAgent yhAiAgent : yhAiAgents) { YHAgentVo yhAgentVo = new YHAgentVo(); yhAgentVo.setId(yhAiAgent.getId()); yhAgentVo.setName(yhAiAgent.getName()); yhAgentVo.setDescription(yhAiAgent.getDescription()); yhAgentVo.setIconImg(yhAiAgent.getIconImg()); yhAgentVos.add(yhAgentVo); } } return new FebsResponse().success().data(yhAgentVos); } @Override public FebsResponse agentInfo(YHAgentInitDto dto) { String companyId = YHLoginUserUtil.getLoginUser().getCompanyId(); YHAgentInitVo yhAgentInitVo = new YHAgentInitVo(); String id = dto.getId(); YHAiAgent yhAiAgent = yhAiAgentMapper.selectById(id); if (ObjectUtil.isNotEmpty(yhAiAgent)){ yhAgentInitVo.setId(yhAiAgent.getId()); yhAgentInitVo.setName(yhAiAgent.getName()); yhAgentInitVo.setDescription(yhAiAgent.getDescription()); yhAgentInitVo.setIconImg(yhAiAgent.getIconImg()); yhAgentInitVo.setIntroduct(yhAiAgent.getIntroduct()); List yhAiAgentStartQuestions = yhAiAgentStartQuestionMapper.selectList( Wrappers.lambdaQuery(YHAiAgentStartQuestion.class).eq(YHAiAgentStartQuestion::getAgentId, id) ); if (CollUtil.isNotEmpty(yhAiAgentStartQuestions)){ List questions = new ArrayList<>(); for (YHAiAgentStartQuestion yhAiAgentStartQuestion : yhAiAgentStartQuestions) { questions.add(yhAiAgentStartQuestion.getTitle()); } yhAgentInitVo.setItems(questions); } } return new FebsResponse().success().data(yhAgentInitVo); } @Override public FebsResponse categorySysList(YHSysCategoryDto dto) { List vos = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(YhSysAgentCategory.class); query.eq(YhSysAgentCategory::getState,1); if (ObjectUtil.isNotEmpty(dto.getId())){ query.eq(YhSysAgentCategory::getId,dto.getId()); } if (ObjectUtil.isNotEmpty(dto.getHotState())){ query.eq(YhSysAgentCategory::getHotState,dto.getHotState()); } query.orderByAsc(YhSysAgentCategory::getSort); List yhSysAgentCategories = yhSysAgentCategoryMapper.selectList(query); if (CollUtil.isNotEmpty(yhSysAgentCategories)){ for (YhSysAgentCategory yhSysAgentCategory : yhSysAgentCategories) { YHSysCategoryVo vo = new YHSysCategoryVo(); vo.setId(yhSysAgentCategory.getId()); vo.setName(yhSysAgentCategory.getName()); vos.add(vo); } } return new FebsResponse().success().data(vos); } @Override public FebsResponse agentSysList(YHSysAgentDto dto) { ArrayList vos = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(YHSysAgent.class); query.eq(YHSysAgent::getState,1); if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){ query.eq(YHSysAgent::getAgentCategoryId,dto.getAgentCategoryId()); } query.orderByDesc(YHSysAgent::getCreateTime); List list = yhSysAgentMapper.selectList(query); if (CollUtil.isNotEmpty(list)){ for (YHSysAgent entity : list) { YHSysAgentVo vo = new YHSysAgentVo(); vo.setId(entity.getId()); vo.setName(entity.getName()); vo.setDescription(entity.getDescription()); vo.setIconImg(entity.getIconImg()); vos.add(vo); } } return new FebsResponse().success().data(vos); } @Override public FebsResponse logout() { String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); String redisKey = AppContants.XCX_LOGIN_PREFIX + memberUuid; String existToken = redisUtils.getString(redisKey); if (StrUtil.isNotBlank(existToken)) { Object o = redisUtils.get(existToken); if (ObjectUtil.isNotEmpty(o)) { redisUtils.del(existToken); } } redisUtils.del(AppContants.XCX_LOGIN_PREFIX + memberUuid); return new FebsResponse().success().message("退出登录"); } }