8 files added
9 files modified
381 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java 6 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 31 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/controller/YHApiBannerController.java 70 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiBanner.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiLogo.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiBannerMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiLogoMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/req/YHCategoryDto.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentDto.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/res/YHBannerVo.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/res/YHLogoVo.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java 136 ●●●● patch | view | raw | blame | history
src/main/resources/application-test.yml 2 ●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/YHSysAgentMapper.xml 25 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -27,7 +27,8 @@
    public void addInterceptors(InterceptorRegistry registry) {
        InterceptorRegistration registration = registry.addInterceptor(new LoginInterceptor());
        registration.addPathPatterns("/api/**");
        registration.excludePathPatterns("/api/login/**");
//        registration.excludePathPatterns("/api/login/**");
        registration.excludePathPatterns("/api/login/xcxLogin");
        registration.excludePathPatterns("/api/common/**");
        registration.excludePathPatterns("/api/category/**");
        registration.excludePathPatterns("/api/goods/**");
@@ -72,5 +73,8 @@
        registration.excludePathPatterns("/api/yh/agent/categorySysList");
        registration.excludePathPatterns("/api/yh/agent/agentSysList");
        registration.excludePathPatterns("/api/yh/agent/agentSysInfo");
        registration.excludePathPatterns("/api/yh/banner/bannerList");
        registration.excludePathPatterns("/api/yh/banner/logoInfo");
    }
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -34,8 +34,10 @@
import cc.mrbird.febs.vip.entity.MallVipConfig;
import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
import cc.mrbird.febs.yinhe.entity.YHAiCompany;
import cc.mrbird.febs.yinhe.entity.YHSysCompanyLevel;
import cc.mrbird.febs.yinhe.entity.YhAiMember;
import cc.mrbird.febs.yinhe.mapper.YHAiCompanyMapper;
import cc.mrbird.febs.yinhe.mapper.YHSysCompanyLevelMapper;
import cc.mrbird.febs.yinhe.mapper.YhAiMemberMapper;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
@@ -702,8 +704,10 @@
    private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
    private final YhAiMemberMapper yhAiMemberMapper;
    private final YHAiCompanyMapper yhAiCompanyMapper;
    private final YHSysCompanyLevelMapper yhSysCompanyLevelMapper;
    @Override
    @Transactional
    public FebsResponse xcxLogin(ApiXcxLoginDto apiXcxLoginDto) throws IOException {
        log.info("登录请求参数:{}", JSONObject.toJSONString(apiXcxLoginDto));
        FebsResponse febsResponse = new FebsResponse();
@@ -743,9 +747,25 @@
                                Wrappers.lambdaQuery(YHAiCompany.class)
                                        .eq(YHAiCompany::getCode, apiXcxLoginDto.getCompanyId())
                        );
                        if (ObjectUtil.isNotEmpty(aiCompany)){
                            entity.setCompanyId(aiCompany.getId());
                        if (ObjectUtil.isEmpty(aiCompany)){
                            throw new FebsException("公司编码错误");
                        }
                        String levelCode = aiCompany.getLevelCode();
                        YHSysCompanyLevel yhSysCompanyLevel = yhSysCompanyLevelMapper.selectOne(
                                Wrappers.lambdaQuery(YHSysCompanyLevel.class)
                                        .eq(YHSysCompanyLevel::getCode, levelCode)
                        );
                        Integer memberNum = yhSysCompanyLevel.getMemberNum();
                        List<YhAiMember> yhAiMembers = yhAiMemberMapper.selectList(
                                Wrappers.lambdaQuery(YhAiMember.class)
                                        .eq(YhAiMember::getCompanyId, aiCompany.getId())
                                        .isNull(YhAiMember::getRoleId)
                        );
                        Integer realNum = CollUtil.isEmpty(yhAiMembers) ? 0 : yhAiMembers.size();
                        if (realNum >= memberNum){
                            throw new FebsException("公司会员已满");
                        }
                        entity.setCompanyId(aiCompany.getId());
                    }
                    entity.setCreateTime(systemTime);
                    entity.setUpdateTime(systemTime);
@@ -777,13 +797,14 @@
                    redisUtils.del(existToken);
                }
            }
            YhAiMember yhAiMember = yhAiMemberMapper.selectById(entity.getId());
            String token = IdUtil.simpleUUID();
            redisUtils.set(token, JSONObject.toJSONString(entity), -1);
            redisUtils.set(token, JSONObject.toJSONString(yhAiMember), -1);
            redisUtils.set(redisKey, token, -1);
            Map<String, Object> authInfo = new HashMap<>();
            authInfo.put("token", token);
            authInfo.put("appid", xcxProperties.getXcxAppid());
            authInfo.put("member", entity);
            authInfo.put("member", yhAiMember);
            authInfo.put("rasToken", generateAsaToken(token));
            febsResponse.success().data(authInfo);
        } else {
@@ -797,7 +818,7 @@
    public FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto) {
        log.info("name={},phone={},avatar={},sex={}",
                apiXcxSaveInfoDto.getNickName(),apiXcxSaveInfoDto.getPhone(),apiXcxSaveInfoDto.getAvatarUrl(),apiXcxSaveInfoDto.getGender());
        String memberId = LoginUserUtil.getLoginUser().getMemberUuid();
        String memberId = YHLoginUserUtil.getLoginUser().getMemberUuid();
        YhAiMember entity = yhAiMemberMapper.selectOne(
                Wrappers.lambdaQuery(YhAiMember.class)
                        .eq(YhAiMember::getMemberUuid, memberId)
src/main/java/cc/mrbird/febs/yinhe/controller/YHApiBannerController.java
New file
@@ -0,0 +1,70 @@
package cc.mrbird.febs.yinhe.controller;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.yinhe.req.*;
import cc.mrbird.febs.yinhe.res.*;
import cc.mrbird.febs.yinhe.service.YhAiService;
import cn.hutool.core.util.StrUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
/**
 * @author Administrator
 */
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping(value = "/api/yh/banner")
@Api(value = "YHApiBannerController", tags = "AI-银和-轮播图相关接口")
public class YHApiBannerController {
    private final YhAiService service;
    @ApiOperation(value = "未登录-轮播图列表", notes = "未登录-轮播图列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = YHBannerVo.class)
    })
    @GetMapping(value = "/bannerList")
    public FebsResponse bannerList() {
        return service.bannerList();
    }
    @ApiOperation(value = "未登录-logo", notes = "未登录-logo")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = YHLogoVo.class)
    })
    @GetMapping(value = "/logoInfo")
    public FebsResponse logoInfo() {
        return service.logoInfo();
    }
    @ApiOperation(value = "登录-轮播图列表", notes = "未登录-轮播图列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = YHBannerVo.class)
    })
    @GetMapping(value = "/loginBannerList")
    public FebsResponse loginBannerList() {
        return service.loginBannerList();
    }
    @ApiOperation(value = "登录-logo", notes = "未登录-logo")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = YHLogoVo.class)
    })
    @GetMapping(value = "/loginLogoInfo")
    public FebsResponse loginLogoInfo() {
        return service.loginLogoInfo();
    }
}
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiBanner.java
New file
@@ -0,0 +1,17 @@
package cc.mrbird.febs.yinhe.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("ai_banner")
public class YHAiBanner extends YhBaseEntity {
    private String id;
    private String name;
    private String imageUrl;
    private Integer sort;
    //状态 0-禁用 1-启用
    private Integer state;
    private String companyId;
}
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiLogo.java
New file
@@ -0,0 +1,18 @@
package cc.mrbird.febs.yinhe.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("ai_logo")
public class YHAiLogo extends YhBaseEntity {
    private String id;
    private String companyId;
    private String name;
    private String imageUrl;
    //状态 0-禁用 1-启用
    private Integer state;
    private String desription;
}
src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java
@@ -11,4 +11,5 @@
    private String code;
    private Integer agentNum;
    private Integer token;
    private Integer memberNum;
}
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiBannerMapper.java
New file
@@ -0,0 +1,7 @@
package cc.mrbird.febs.yinhe.mapper;
import cc.mrbird.febs.yinhe.entity.YHAiBanner;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface YHAiBannerMapper extends BaseMapper<YHAiBanner> {
}
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiLogoMapper.java
New file
@@ -0,0 +1,7 @@
package cc.mrbird.febs.yinhe.mapper;
import cc.mrbird.febs.yinhe.entity.YHAiLogo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface YHAiLogoMapper extends BaseMapper<YHAiLogo> {
}
src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java
@@ -1,7 +1,14 @@
package cc.mrbird.febs.yinhe.mapper;
import cc.mrbird.febs.yinhe.entity.YHSysAgent;
import cc.mrbird.febs.yinhe.req.YHSysAgentDto;
import cc.mrbird.febs.yinhe.res.YHSysAgentVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
public interface YHSysAgentMapper extends BaseMapper<YHSysAgent> {
    Page<YHSysAgentVo> getPageListByQuery(Page<YHSysAgentVo> page, @Param("record")YHSysAgentDto dto);
}
src/main/java/cc/mrbird/febs/yinhe/req/YHCategoryDto.java
@@ -10,9 +10,6 @@
@ApiModel(value = "YHCategoryDto", description = "参数")
public class YHCategoryDto {
    @ApiModelProperty(value = "ID", example = "10")
    private String id;
    @ApiModelProperty(value = "是否推荐到小程序首页 1-推荐 0-不推荐", example = "1")
    private Integer hotState;
src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentDto.java
@@ -4,10 +4,20 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "YHSysAgentDto", description = "参数")
public class YHSysAgentDto {
    @NotNull(message = "页码不能为空")
    @ApiModelProperty(value = "页码", example = "1")
    private Integer pageNow;
    @NotNull(message = "每页数量不能为空")
    @ApiModelProperty(value = "每页数量", example = "10")
    private Integer pageSize;
    @ApiModelProperty(value = "分类", example = "1")
    private String agentCategoryId;
}
src/main/java/cc/mrbird/febs/yinhe/res/YHBannerVo.java
New file
@@ -0,0 +1,17 @@
package cc.mrbird.febs.yinhe.res;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "YHBannerVo", description = "参数")
public class YHBannerVo {
    @ApiModelProperty(value = "名称*", example = "1")
    private String name;
    @ApiModelProperty(value = "图片链接*", example = "1")
    private String imageUrl;
    @ApiModelProperty(value = "排序*", example = "1")
    private Integer sort;
}
src/main/java/cc/mrbird/febs/yinhe/res/YHLogoVo.java
New file
@@ -0,0 +1,16 @@
package cc.mrbird.febs.yinhe.res;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "YHLogoVo", description = "参数")
public class YHLogoVo {
    @ApiModelProperty(value = "名称*", example = "1")
    private String name;
    @ApiModelProperty(value = "图片链接*", example = "1")
    private String imageUrl;
    @ApiModelProperty(value = "欢迎语*", example = "1")
    private String desription;
}
src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java
@@ -35,4 +35,12 @@
    FebsResponse saveContext(YHSaveContextDto dto);
    Flux<FebsResponse> aiAnswer(YHAitalkItemStreamDto dto);
    FebsResponse bannerList();
    FebsResponse logoInfo();
    FebsResponse loginBannerList();
    FebsResponse loginLogoInfo();
}
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -1,12 +1,12 @@
package cc.mrbird.febs.yinhe.service.impl;
import cc.mrbird.febs.ai.res.product.ApiProductVo;
import cc.mrbird.febs.ai.strategy.LlmStrategyFactory;
import cc.mrbird.febs.ai.strategy.enumerates.LlmStrategyEnum;
import cc.mrbird.febs.ai.utils.UUID;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.exception.FebsException;
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.rabbit.producter.AgentProducer;
@@ -22,6 +22,7 @@
import com.alibaba.dashscope.common.Role;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
@@ -39,6 +40,8 @@
    private final YhAiMemberMapper yhAiMemberMapper;
    private final YHAiCompanyMapper yhAiCompanyMapper;
    private final YHAiBannerMapper yhAiBannerMapper;
    private final YHAiLogoMapper yhAiLogoMapper;
    private final YHAiAgentCategoryMapper yhAiAgentCategoryMapper;
    private final YHAiAgentMapper yhAiAgentMapper;
@@ -87,15 +90,15 @@
    @Override
    public FebsResponse categoryList(YHCategoryDto dto) {
        String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
        String companyId = yhAiMember.getCompanyId();
        List<YHCategoryVo> yhCategoryVos = new ArrayList<>();
        LambdaQueryWrapper<YHAiAgentCategory> 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());
        }
@@ -116,7 +119,9 @@
    @Override
    public FebsResponse agentList(YHAgentDto dto) {
        String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
        String companyId = yhAiMember.getCompanyId();
        ArrayList<YHAgentVo> yhAgentVos = new ArrayList<>();
        LambdaQueryWrapper<YHAiAgent> query = Wrappers.lambdaQuery(YHAiAgent.class);
@@ -145,7 +150,7 @@
    @Override
    public FebsResponse agentInfo(YHAgentInitDto dto) {
        String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        YHAgentInitVo yhAgentInitVo = new YHAgentInitVo();
        String id = dto.getId();
@@ -196,27 +201,10 @@
    @Override
    public FebsResponse agentSysList(YHSysAgentDto dto) {
        ArrayList<YHSysAgentVo> vos = new ArrayList<>();
        LambdaQueryWrapper<YHSysAgent> 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<YHSysAgent> 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);
        // 创建分页对象,传入当前页和每页大小
        Page<YHSysAgentVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
        Page<YHSysAgentVo> pageListByQuery = yhSysAgentMapper.getPageListByQuery(page, dto);
        return new FebsResponse().success().data(pageListByQuery);
    }
    @Override
@@ -248,7 +236,7 @@
    @Override
    public FebsResponse logout() {
        String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        String redisKey = AppContants.XCX_LOGIN_PREFIX + memberUuid;
        String existToken = redisUtils.getString(redisKey);
@@ -264,7 +252,7 @@
    @Override
    public FebsResponse initSend(YHSendInitDto dto) {
        String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        YHSendInitVo vo = new YHSendInitVo();
@@ -438,4 +426,92 @@
        }
        return messages;
    }
    @Override
    public FebsResponse bannerList() {
        List<YHBannerVo> vos = new ArrayList<>();
        List<YHAiBanner> list = yhAiBannerMapper.selectList(
                Wrappers.lambdaQuery(YHAiBanner.class)
                        .eq(YHAiBanner::getState, 1)
                        .isNull(YHAiBanner::getCompanyId)
                        .orderByDesc(YHAiBanner::getSort)
        );
        if (CollUtil.isNotEmpty(list)){
            for (YHAiBanner aiBanner : list){
                YHBannerVo vo = new YHBannerVo();
                vo.setName(aiBanner.getName());
                vo.setImageUrl(aiBanner.getImageUrl());
                vo.setSort(aiBanner.getSort());
                vos.add(vo);
            }
        }
        return new FebsResponse().success().data(vos);
    }
    @Override
    public FebsResponse logoInfo() {
        YHLogoVo yhLogoVo = new YHLogoVo();
        List<YHAiLogo> yhAiLogos = yhAiLogoMapper.selectList(
                Wrappers.lambdaQuery(YHAiLogo.class)
                        .eq(YHAiLogo::getState, 1)
                        .isNull(YHAiLogo::getCompanyId)
        );
        if (CollUtil.isNotEmpty(yhAiLogos)){
            YHAiLogo yhAiLogo = yhAiLogos.get(0);
            yhLogoVo.setName(yhAiLogo.getName());
            yhLogoVo.setImageUrl(yhAiLogo.getImageUrl());
            yhLogoVo.setDesription(yhAiLogo.getDesription());
        }
        return new FebsResponse().success().data(yhLogoVo);
    }
    @Override
    public FebsResponse loginBannerList() {
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
        String companyId = yhAiMember.getCompanyId();
        List<YHBannerVo> vos = new ArrayList<>();
        List<YHAiBanner> list = yhAiBannerMapper.selectList(
                Wrappers.lambdaQuery(YHAiBanner.class)
                        .eq(YHAiBanner::getState, 1)
                        .eq(YHAiBanner::getCompanyId, companyId)
                        .orderByAsc(YHAiBanner::getSort)
        );
        if (CollUtil.isNotEmpty(list)){
            for (YHAiBanner aiBanner : list){
                YHBannerVo vo = new YHBannerVo();
                vo.setName(aiBanner.getName());
                vo.setImageUrl(aiBanner.getImageUrl());
                vo.setSort(aiBanner.getSort());
                vos.add(vo);
            }
        }
        return new FebsResponse().success().data(vos);
    }
    @Override
    public FebsResponse loginLogoInfo() {
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
        String companyId = yhAiMember.getCompanyId();
        YHLogoVo yhLogoVo = new YHLogoVo();
        List<YHAiLogo> yhAiLogos = yhAiLogoMapper.selectList(
                Wrappers.lambdaQuery(YHAiLogo.class)
                        .eq(YHAiLogo::getState, 1)
                        .eq(YHAiLogo::getCompanyId, companyId)
        );
        if (CollUtil.isNotEmpty(yhAiLogos)){
            YHAiLogo yhAiLogo = yhAiLogos.get(0);
            yhLogoVo.setName(yhAiLogo.getName());
            yhLogoVo.setImageUrl(yhAiLogo.getImageUrl());
            yhLogoVo.setDesription(yhAiLogo.getDesription());
        }
        return new FebsResponse().success().data(yhLogoVo);
    }
}
src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
  datasource:
    dynamic:
      # 是否开启 SQL日志输出,生产环境建议关闭,有性能损耗
      p6spy: false
      p6spy: true
      hikari:
        connection-timeout: 30000
        max-lifetime: 1800000
src/main/resources/mapper/modules/YHSysAgentMapper.xml
New file
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cc.mrbird.febs.yinhe.mapper.YHSysAgentMapper">
    <select id="getPageListByQuery" resultType="cc.mrbird.febs.yinhe.res.YHSysAgentVo">
        select
        a.id as id,
        a.name as name,
        a.icon_img as iconImg,
        a.description as description
        from sys_agent a
        <where>
            a.state = 1
            <if test="record != null">
                <if test="record.agentCategoryId != null and record.agentCategoryId != ''">
                    and a.agent_category_id = #{record.agentCategoryId}
                </if>
            </if>
        </where>
        order by a.create_time desc
    </select>
</mapper>