Kaynağa Gözat

启用微信公众号和ai 模块 同时开发AI 提示词管理页面

zrd 4 ay önce
ebeveyn
işleme
0bc8ac32e7
15 değiştirilmiş dosya ile 407 ekleme ve 23 silme
  1. 2 2
      pom.xml
  2. 2 0
      yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/ErrorCodeConstants.java
  3. 93 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/aipromptmanagement/AiPromptManagementController.java
  4. 33 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/aipromptmanagement/vo/AiPromptManagementPageReqVO.java
  5. 31 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/aipromptmanagement/vo/AiPromptManagementRespVO.java
  6. 22 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/aipromptmanagement/vo/AiPromptManagementSaveReqVO.java
  7. 42 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/aipromptmanagement/AiPromptManagementDO.java
  8. 26 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/aipromptmanagement/AiPromptManagementMapper.java
  9. 54 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/aipromptmanagement/AiPromptManagementService.java
  10. 70 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/aipromptmanagement/AiPromptManagementServiceImpl.java
  11. 12 0
      yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/aipromptmanagement/AiPromptManagementMapper.xml
  12. 3 3
      yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/userbusinesslicense/UserBusinessLicenseDO.java
  13. 3 3
      yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/useridcard/UserIdcardDO.java
  14. 3 3
      yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/userpersonalcredit/UserPersonalCreditDO.java
  15. 11 12
      yudao-server/pom.xml

+ 2 - 2
pom.xml

@@ -20,12 +20,12 @@
         <module>yudao-module-member</module>
 <!--        <module>yudao-module-bpm</module>-->
 <!--        <module>yudao-module-report</module>-->
-<!--        <module>yudao-module-mp</module>-->
+        <module>yudao-module-mp</module>
         <module>yudao-module-pay</module>
         <module>yudao-module-mall</module>
 <!--        <module>yudao-module-crm</module>-->
 <!--        <module>yudao-module-erp</module>-->
-<!--        <module>yudao-module-ai</module>-->
+        <module>yudao-module-ai</module>
 <!--        <module>yudao-module-iot</module>-->
     </modules>
 

+ 2 - 0
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/ErrorCodeConstants.java

@@ -67,5 +67,7 @@ public interface ErrorCodeConstants {
     ErrorCode DEMO03_STUDENT_NOT_EXISTS = new ErrorCode(1_001_201_007, "学生不存在");
     ErrorCode DEMO03_GRADE_NOT_EXISTS = new ErrorCode(1_001_201_008, "学生班级不存在");
     ErrorCode DEMO03_GRADE_EXISTS = new ErrorCode(1_001_201_009, "学生班级已存在");
+    
+    ErrorCode AI_PROMPT_MANAGEMENT_NOT_EXISTS = new ErrorCode(1_001_201_011, "AI 提示词管理不存在");
 
 }

+ 93 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/aipromptmanagement/AiPromptManagementController.java

@@ -0,0 +1,93 @@
+package cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo.AiPromptManagementPageReqVO;
+import cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo.AiPromptManagementRespVO;
+import cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo.AiPromptManagementSaveReqVO;
+import cn.iocoder.yudao.module.infra.dal.dataobject.aipromptmanagement.AiPromptManagementDO;
+import cn.iocoder.yudao.module.infra.service.aipromptmanagement.AiPromptManagementService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - AI 提示词管理")
+@RestController
+@RequestMapping("/infra/ai-prompt-management")
+@Validated
+public class AiPromptManagementController {
+    
+    @Resource
+    private AiPromptManagementService aiPromptManagementService;
+    
+    @PostMapping("/create")
+    @Operation(summary = "创建AI 提示词管理")
+    @PreAuthorize("@ss.hasPermission('infra:ai-prompt-management:create')")
+    public CommonResult<Long> createAiPromptManagement(@Valid @RequestBody AiPromptManagementSaveReqVO createReqVO) {
+        return success(aiPromptManagementService.createAiPromptManagement(createReqVO));
+    }
+    
+    @PutMapping("/update")
+    @Operation(summary = "更新AI 提示词管理")
+    @PreAuthorize("@ss.hasPermission('infra:ai-prompt-management:update')")
+    public CommonResult<Boolean> updateAiPromptManagement(@Valid @RequestBody AiPromptManagementSaveReqVO updateReqVO) {
+        aiPromptManagementService.updateAiPromptManagement(updateReqVO);
+        return success(true);
+    }
+    
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除AI 提示词管理")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('infra:ai-prompt-management:delete')")
+    public CommonResult<Boolean> deleteAiPromptManagement(@RequestParam("id") Long id) {
+        aiPromptManagementService.deleteAiPromptManagement(id);
+        return success(true);
+    }
+    
+    @GetMapping("/get")
+    @Operation(summary = "获得AI 提示词管理")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('infra:ai-prompt-management:query')")
+    public CommonResult<AiPromptManagementRespVO> getAiPromptManagement(@RequestParam("id") Long id) {
+        AiPromptManagementDO aiPromptManagement = aiPromptManagementService.getAiPromptManagement(id);
+        return success(BeanUtils.toBean(aiPromptManagement, AiPromptManagementRespVO.class));
+    }
+    
+    @GetMapping("/page")
+    @Operation(summary = "获得AI 提示词管理分页")
+    @PreAuthorize("@ss.hasPermission('infra:ai-prompt-management:query')")
+    public CommonResult<PageResult<AiPromptManagementRespVO>> getAiPromptManagementPage(@Valid AiPromptManagementPageReqVO pageReqVO) {
+        PageResult<AiPromptManagementDO> pageResult = aiPromptManagementService.getAiPromptManagementPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, AiPromptManagementRespVO.class));
+    }
+    
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出AI 提示词管理 Excel")
+    @PreAuthorize("@ss.hasPermission('infra:ai-prompt-management:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportAiPromptManagementExcel(@Valid AiPromptManagementPageReqVO pageReqVO,
+                                              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<AiPromptManagementDO> list = aiPromptManagementService.getAiPromptManagementPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "AI 提示词管理.xls", "数据", AiPromptManagementRespVO.class,
+                BeanUtils.toBean(list, AiPromptManagementRespVO.class));
+    }
+    
+}

+ 33 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/aipromptmanagement/vo/AiPromptManagementPageReqVO.java

@@ -0,0 +1,33 @@
+package cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - AI 提示词管理分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AiPromptManagementPageReqVO extends PageParam {
+    
+    @Serial
+    private static final long serialVersionUID = -6148090602077406310L;
+    @Schema(description = "提示词主题")
+    private String topic;
+    
+    @Schema(description = "提示词内容")
+    private String content;
+    
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+    
+}

+ 31 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/aipromptmanagement/vo/AiPromptManagementRespVO.java

@@ -0,0 +1,31 @@
+package cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - AI 提示词管理 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class AiPromptManagementRespVO {
+    
+    @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13181")
+    @ExcelProperty("自增主键")
+    private Long id;
+    
+    @Schema(description = "提示词主题", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("提示词主题")
+    private String topic;
+    
+    @Schema(description = "提示词内容", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("提示词内容")
+    private String content;
+    
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+    
+}

+ 22 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/aipromptmanagement/vo/AiPromptManagementSaveReqVO.java

@@ -0,0 +1,22 @@
+package cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+@Schema(description = "管理后台 - AI 提示词管理新增/修改 Request VO")
+@Data
+public class AiPromptManagementSaveReqVO {
+    
+    @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13181")
+    private Long id;
+    
+    @Schema(description = "提示词主题", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "提示词主题不能为空")
+    private String topic;
+    
+    @Schema(description = "提示词内容", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "提示词内容不能为空")
+    private String content;
+    
+}

+ 42 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/aipromptmanagement/AiPromptManagementDO.java

@@ -0,0 +1,42 @@
+package cn.iocoder.yudao.module.infra.dal.dataobject.aipromptmanagement;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.io.Serial;
+
+/**
+ * AI 提示词管理 DO
+ *
+ * @author 芋道源码
+ */
+@TableName("infra_ai_prompt_management")
+@KeySequence("infra_ai_prompt_management_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AiPromptManagementDO extends BaseDO {
+    
+    @Serial
+    private static final long serialVersionUID = -3623625428100425764L;
+    /**
+     * 自增主键
+     */
+    @TableId
+    private Long id;
+    /**
+     * 提示词主题
+     */
+    private String topic;
+    /**
+     * 提示词内容
+     */
+    private String content;
+    
+}

+ 26 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/aipromptmanagement/AiPromptManagementMapper.java

@@ -0,0 +1,26 @@
+package cn.iocoder.yudao.module.infra.dal.mysql.aipromptmanagement;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo.AiPromptManagementPageReqVO;
+import cn.iocoder.yudao.module.infra.dal.dataobject.aipromptmanagement.AiPromptManagementDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * AI 提示词管理 Mapper
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface AiPromptManagementMapper extends BaseMapperX<AiPromptManagementDO> {
+    
+    default PageResult<AiPromptManagementDO> selectPage(AiPromptManagementPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<AiPromptManagementDO>()
+                .eqIfPresent(AiPromptManagementDO::getTopic, reqVO.getTopic())
+                .eqIfPresent(AiPromptManagementDO::getContent, reqVO.getContent())
+                .betweenIfPresent(AiPromptManagementDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(AiPromptManagementDO::getId));
+    }
+    
+}

+ 54 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/aipromptmanagement/AiPromptManagementService.java

@@ -0,0 +1,54 @@
+package cn.iocoder.yudao.module.infra.service.aipromptmanagement;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo.AiPromptManagementPageReqVO;
+import cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo.AiPromptManagementSaveReqVO;
+import cn.iocoder.yudao.module.infra.dal.dataobject.aipromptmanagement.AiPromptManagementDO;
+import jakarta.validation.Valid;
+
+/**
+ * AI 提示词管理 Service 接口
+ *
+ * @author 芋道源码
+ */
+public interface AiPromptManagementService {
+    
+    /**
+     * 创建AI 提示词管理
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createAiPromptManagement(@Valid AiPromptManagementSaveReqVO createReqVO);
+    
+    /**
+     * 更新AI 提示词管理
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateAiPromptManagement(@Valid AiPromptManagementSaveReqVO updateReqVO);
+    
+    /**
+     * 删除AI 提示词管理
+     *
+     * @param id 编号
+     */
+    void deleteAiPromptManagement(Long id);
+    
+    /**
+     * 获得AI 提示词管理
+     *
+     * @param id 编号
+     * @return AI 提示词管理
+     */
+    AiPromptManagementDO getAiPromptManagement(Long id);
+    
+    /**
+     * 获得AI 提示词管理分页
+     *
+     * @param pageReqVO 分页查询
+     * @return AI 提示词管理分页
+     */
+    PageResult<AiPromptManagementDO> getAiPromptManagementPage(AiPromptManagementPageReqVO pageReqVO);
+    
+}

+ 70 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/aipromptmanagement/AiPromptManagementServiceImpl.java

@@ -0,0 +1,70 @@
+package cn.iocoder.yudao.module.infra.service.aipromptmanagement;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo.AiPromptManagementPageReqVO;
+import cn.iocoder.yudao.module.infra.controller.admin.aipromptmanagement.vo.AiPromptManagementSaveReqVO;
+import cn.iocoder.yudao.module.infra.dal.dataobject.aipromptmanagement.AiPromptManagementDO;
+import cn.iocoder.yudao.module.infra.dal.mysql.aipromptmanagement.AiPromptManagementMapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.AI_PROMPT_MANAGEMENT_NOT_EXISTS;
+
+/**
+ * AI 提示词管理 Service 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class AiPromptManagementServiceImpl implements AiPromptManagementService {
+    
+    @Resource
+    private AiPromptManagementMapper aiPromptManagementMapper;
+    
+    @Override
+    public Long createAiPromptManagement(AiPromptManagementSaveReqVO createReqVO) {
+        // 插入
+        AiPromptManagementDO aiPromptManagement = BeanUtils.toBean(createReqVO, AiPromptManagementDO.class);
+        aiPromptManagementMapper.insert(aiPromptManagement);
+        // 返回
+        return aiPromptManagement.getId();
+    }
+    
+    @Override
+    public void updateAiPromptManagement(AiPromptManagementSaveReqVO updateReqVO) {
+        // 校验存在
+        validateAiPromptManagementExists(updateReqVO.getId());
+        // 更新
+        AiPromptManagementDO updateObj = BeanUtils.toBean(updateReqVO, AiPromptManagementDO.class);
+        aiPromptManagementMapper.updateById(updateObj);
+    }
+    
+    @Override
+    public void deleteAiPromptManagement(Long id) {
+        // 校验存在
+        validateAiPromptManagementExists(id);
+        // 删除
+        aiPromptManagementMapper.deleteById(id);
+    }
+    
+    private void validateAiPromptManagementExists(Long id) {
+        if (aiPromptManagementMapper.selectById(id) == null) {
+            throw exception(AI_PROMPT_MANAGEMENT_NOT_EXISTS);
+        }
+    }
+    
+    @Override
+    public AiPromptManagementDO getAiPromptManagement(Long id) {
+        return aiPromptManagementMapper.selectById(id);
+    }
+    
+    @Override
+    public PageResult<AiPromptManagementDO> getAiPromptManagementPage(AiPromptManagementPageReqVO pageReqVO) {
+        return aiPromptManagementMapper.selectPage(pageReqVO);
+    }
+    
+}

+ 12 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/aipromptmanagement/AiPromptManagementMapper.xml

@@ -0,0 +1,12 @@
+<?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="cn.iocoder.yudao.module.infra.dal.mysql.aipromptmanagement.AiPromptManagementMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 3 - 3
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/userbusinesslicense/UserBusinessLicenseDO.java

@@ -1,11 +1,11 @@
 package cn.iocoder.yudao.module.member.dal.dataobject.userbusinesslicense;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.framework.mybatis.core.type.StringListTypeHandler;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import lombok.*;
 
 import java.io.Serial;
@@ -17,7 +17,7 @@ import java.util.List;
  *
  * @author 芋道源码
  */
-@TableName("member_user_business_license")
+@TableName(value = "member_user_business_license", autoResultMap = true)
 @KeySequence("member_user_business_license_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -77,7 +77,7 @@ public class UserBusinessLicenseDO extends BaseDO {
     /**
      * 相关照片
      */
-    @TableField(typeHandler = JacksonTypeHandler.class)
+    @TableField(typeHandler = StringListTypeHandler.class)
     private List<String> infoImages;
     /**
      * 数据使用状态 0 使用 1 作废  2 异常

+ 3 - 3
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/useridcard/UserIdcardDO.java

@@ -1,11 +1,11 @@
 package cn.iocoder.yudao.module.member.dal.dataobject.useridcard;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.framework.mybatis.core.type.StringListTypeHandler;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import lombok.*;
 
 import java.io.Serial;
@@ -17,7 +17,7 @@ import java.util.List;
  *
  * @author 芋道源码
  */
-@TableName("member_user_idcard")
+@TableName(value = "member_user_idcard", autoResultMap = true)
 @KeySequence("member_user_idcard_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -77,7 +77,7 @@ public class UserIdcardDO extends BaseDO {
     /**
      * 相关照片
      */
-    @TableField(typeHandler = JacksonTypeHandler.class)
+    @TableField(typeHandler = StringListTypeHandler.class)
     private List<String> infoImages;
     /**
      * 数据使用状态 0 使用 1 作废  2 异常

+ 3 - 3
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/userpersonalcredit/UserPersonalCreditDO.java

@@ -1,11 +1,11 @@
 package cn.iocoder.yudao.module.member.dal.dataobject.userpersonalcredit;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.framework.mybatis.core.type.StringListTypeHandler;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import lombok.*;
 
 import java.io.Serial;
@@ -19,7 +19,7 @@ import java.util.List;
  *
  * @author 芋道源码
  */
-@TableName("member_user_personal_credit")
+@TableName(value = "member_user_personal_credit", autoResultMap = true)
 @KeySequence("member_user_personal_credit_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -247,7 +247,7 @@ public class UserPersonalCreditDO extends BaseDO {
     /**
      * 相关照片
      */
-    @TableField(typeHandler = JacksonTypeHandler.class)
+    @TableField(typeHandler = StringListTypeHandler.class)
     private List<String> infoImages;
     /**
      * 数据使用状态 0 使用 1 作废  2 异常

+ 11 - 12
yudao-server/pom.xml

@@ -58,12 +58,11 @@
             <version>${revision}</version>
         </dependency>
 
-        <!-- 微信公众号模块。默认注释,保证编译速度 -->
-<!--        <dependency>-->
-<!--            <groupId>cn.iocoder.boot</groupId>-->
-<!--            <artifactId>yudao-module-mp-biz</artifactId>-->
-<!--            <version>${revision}</version>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-mp-biz</artifactId>
+            <version>${revision}</version>
+        </dependency>
 
         <!-- 商城相关模块。默认注释,保证编译速度-->
         <dependency>
@@ -101,12 +100,12 @@
 <!--            <version>${revision}</version>-->
 <!--        </dependency>-->
 
-        <!-- AI 大模型相关模块。默认注释,保证编译速度 -->
-<!--        <dependency>-->
-<!--            <groupId>cn.iocoder.boot</groupId>-->
-<!--            <artifactId>yudao-module-ai-biz</artifactId>-->
-<!--            <version>${revision}</version>-->
-<!--        </dependency>-->
+
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-ai-biz</artifactId>
+            <version>${revision}</version>
+        </dependency>
 
 
         <dependency>