Administrator
19 hours ago cf329233aef9b144942a16e9d2d9988ccbda3d56
feat(ai): 新增AI通用分享接口和枚举配置

新增 AiCommonEnum 枚举类用于定义分享相关的字典类型常量,包括分享标题、描述和LOGO。同时新增 ApiCommonController 控制器,提供 /api/ai/common/share 接口,用于获取分享相关配置信息。

在 WebMvcConfigure 中放行了 /api/ai/common/** 路径的拦截配置,确保该接口可被正常访问。
1 files modified
2 files added
95 ■■■■■ changed files
src/main/java/cc/mrbird/febs/ai/controller/common/ApiCommonController.java 68 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/enumerates/AiCommonEnum.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/controller/common/ApiCommonController.java
New file
@@ -0,0 +1,68 @@
package cc.mrbird.febs.ai.controller.common;
import cc.mrbird.febs.ai.enumerates.AiCommonEnum;
import cc.mrbird.febs.ai.res.company.ApiCompanyVo;
import cc.mrbird.febs.ai.service.AiMemberRoleService;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
import cn.hutool.core.util.ObjectUtil;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
 * @author Administrator
 */
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping(value = "/api/ai/common")
@Api(value = "ApiCommonController", tags = "AI-通用")
public class ApiCommonController {
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    @ApiOperation(value = "分享", notes = "分享")
    @GetMapping(value = "/share")
    public FebsResponse share() {
        HashMap<String, String> map = new HashMap<>();
        DataDictionaryCustom logoDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                AiCommonEnum.SHARE_LOGO.getCode(),
                AiCommonEnum.SHARE_LOGO.getCode()
        );
        if (ObjectUtil.isNotNull(logoDic)){
            map.put(AiCommonEnum.SHARE_LOGO.getCode(),logoDic.getValue());
        }
        DataDictionaryCustom titleDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                AiCommonEnum.SHARE_TITLE.getCode(),
                AiCommonEnum.SHARE_TITLE.getCode()
        );
        if (ObjectUtil.isNotNull(titleDic)){
            map.put(AiCommonEnum.SHARE_TITLE.getCode(),titleDic.getValue());
        }
        DataDictionaryCustom describeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                AiCommonEnum.SHARE_DESCRIBE.getCode(),
                AiCommonEnum.SHARE_DESCRIBE.getCode()
        );
        if (ObjectUtil.isNotNull(describeDic)){
            map.put(AiCommonEnum.SHARE_DESCRIBE.getCode(),describeDic.getValue());
        }
        return new FebsResponse().success().data(map);
    }
}
src/main/java/cc/mrbird/febs/ai/enumerates/AiCommonEnum.java
New file
@@ -0,0 +1,26 @@
package cc.mrbird.febs.ai.enumerates;
import lombok.Getter;
/**
 * @author Administrator
 */
@Getter
public enum AiCommonEnum {
    SHARE_DESCRIBE("SHARE_DESCRIBE","描述"),
    SHARE_TITLE("SHARE_TITLE","标题"),
    SHARE_LOGO("SHARE_LOGO","分享LOGO");
    private final String code;
    private final String prompt;
    AiCommonEnum(String code, String prompt) {
        this.code = code;
        this.prompt = prompt;
    }
}
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -65,5 +65,6 @@
        registration.excludePathPatterns("/api/ai/memberTalk/answer-stream");
        registration.excludePathPatterns("/api/ai/talk/questionList");
        registration.excludePathPatterns("/api/ai/company/list");
        registration.excludePathPatterns("/api/ai/common/**");
    }
}