Administrator
5 days ago 90ba2873de753917a21874e0ce21dd1578c2be5a
feat(yinhe): 添加轮播图和logo功能模块

- 在WebMvcConfigure中排除新的轮播图和logo接口路径
- 新增YHAiBanner实体类和对应的Mapper接口
- 新增YHAiLogo实体类和对应的Mapper接口
- 在YhAiService中添加bannerList和logoInfo方法定义
- 在YhAiServiceImpl中注入新的Mapper并实现具体逻辑
- 修复agentInfo方法中的变量名错误,使用正确的memberUuid
- 新增YHApiBannerController控制器处理轮播图和logo接口
- 新增YHBannerVo和YHLogoVo响应对象用于数据传输
7 files added
3 files modified
179 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/controller/YHApiBannerController.java 50 ●●●●● 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 17 ●●●●● 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/res/YHBannerVo.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/res/YHLogoVo.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -73,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/yinhe/controller/YHApiBannerController.java
New file
@@ -0,0 +1,50 @@
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();
    }
}
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,17 @@
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;
}
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/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,14 @@
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;
}
src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java
@@ -35,4 +35,8 @@
    FebsResponse saveContext(YHSaveContextDto dto);
    Flux<FebsResponse> aiAnswer(YHAitalkItemStreamDto dto);
    FebsResponse bannerList();
    FebsResponse logoInfo();
}
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -40,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;
@@ -143,7 +145,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();
@@ -419,4 +421,43 @@
        }
        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().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());
        }
        return new FebsResponse().data(yhLogoVo);
    }
}