From cba91796368ab184d921ac59bba5cfac90c25436 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 21 Aug 2025 10:29:11 +0800 Subject: [PATCH] feat(ai): 添加我的训练功能- 新增 ApiMemberProductWorkPageDto 和 ApiMemberProductWorkVo 类 - 在 AiMemberAnswerMapper 中添加 getPageMyWorkListByQuery 方法 - 在 AiMemberAnswerService 中添加 myWork 方法 - 在 AiMemberAnswerController 中添加 myWork接口 --- src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java | 2 + src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java | 11 +++++ src/main/java/cc/mrbird/febs/ai/controller/memberAnswer/ApiMemberAnswerController.java | 10 +++++ src/main/java/cc/mrbird/febs/ai/mapper/AiMemberAnswerMapper.java | 5 ++ src/main/resources/mapper/modules/AiMemberAnswerMapper.xml | 21 ++++++++++ src/main/java/cc/mrbird/febs/ai/req/memberAnswer/ApiMemberProductWorkPageDto.java | 29 ++++++++++++++ src/main/java/cc/mrbird/febs/ai/res/memberAnswer/ApiMemberProductWorkVo.java | 33 ++++++++++++++++ 7 files changed, 111 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/controller/memberAnswer/ApiMemberAnswerController.java b/src/main/java/cc/mrbird/febs/ai/controller/memberAnswer/ApiMemberAnswerController.java index e3c6dec..b589fc0 100644 --- a/src/main/java/cc/mrbird/febs/ai/controller/memberAnswer/ApiMemberAnswerController.java +++ b/src/main/java/cc/mrbird/febs/ai/controller/memberAnswer/ApiMemberAnswerController.java @@ -92,4 +92,14 @@ return apiMemberAnswerService.wrongPage(dto); } + + @ApiOperation(value = "我的训练", notes = "我的训练") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiMemberProductWorkVo.class) + }) + @PostMapping(value = "/myWork") + public FebsResponse myWork(@RequestBody @Validated ApiMemberProductWorkPageDto dto) { + + return apiMemberAnswerService.myWork(dto); + } } diff --git a/src/main/java/cc/mrbird/febs/ai/mapper/AiMemberAnswerMapper.java b/src/main/java/cc/mrbird/febs/ai/mapper/AiMemberAnswerMapper.java index 6fa6188..041afbd 100644 --- a/src/main/java/cc/mrbird/febs/ai/mapper/AiMemberAnswerMapper.java +++ b/src/main/java/cc/mrbird/febs/ai/mapper/AiMemberAnswerMapper.java @@ -1,7 +1,11 @@ package cc.mrbird.febs.ai.mapper; import cc.mrbird.febs.ai.entity.AiMemberAnswer; +import cc.mrbird.febs.ai.req.memberAnswer.ApiMemberProductWorkPageDto; +import cc.mrbird.febs.ai.res.memberAnswer.ApiMemberProductWorkVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; /** * AI用户答题记录 Mapper接口 @@ -11,4 +15,5 @@ */ public interface AiMemberAnswerMapper extends BaseMapper<AiMemberAnswer> { + Page<ApiMemberProductWorkVo> getPageMyWorkListByQuery(Page<ApiMemberProductWorkVo> page, @Param("record")ApiMemberProductWorkPageDto dto); } diff --git a/src/main/java/cc/mrbird/febs/ai/req/memberAnswer/ApiMemberProductWorkPageDto.java b/src/main/java/cc/mrbird/febs/ai/req/memberAnswer/ApiMemberProductWorkPageDto.java new file mode 100644 index 0000000..493be87 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/ai/req/memberAnswer/ApiMemberProductWorkPageDto.java @@ -0,0 +1,29 @@ +package cc.mrbird.febs.ai.req.memberAnswer; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author Administrator + */ +@Data +@ApiModel(value = "ApiMemberProductWorkPageDto", description = "参数") +public class ApiMemberProductWorkPageDto { + + @NotNull(message = "页码不能为空") + @ApiModelProperty(value = "页码", example = "1") + private Integer pageNow; + + @NotNull(message = "每页数量不能为空") + @ApiModelProperty(value = "每页数量", example = "10") + private Integer pageSize; + + @ApiModelProperty(value = "状态 0-进行中 1-已结束", example = "0") + private Integer state; + + @ApiModelProperty(hidden = true) + private String memberUuid; +} diff --git a/src/main/java/cc/mrbird/febs/ai/res/memberAnswer/ApiMemberProductWorkVo.java b/src/main/java/cc/mrbird/febs/ai/res/memberAnswer/ApiMemberProductWorkVo.java new file mode 100644 index 0000000..d9f86db --- /dev/null +++ b/src/main/java/cc/mrbird/febs/ai/res/memberAnswer/ApiMemberProductWorkVo.java @@ -0,0 +1,33 @@ +package cc.mrbird.febs.ai.res.memberAnswer; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + */ +@Data +@ApiModel(value = "ApiMemberProductWorkVo", description = "参数") +public class ApiMemberProductWorkVo { + + @ApiModelProperty(value = "ID") + private String id; + /** + * 名称 + */ + @ApiModelProperty(value = "ID") + private String name; + + /** + * 目标 + */ + @ApiModelProperty(value = "ID") + private String target; + + /** + * 状态 0-进行中 1-已结束 + */ + @ApiModelProperty(value = "ID") + private Integer state; +} diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java index bf48a10..5c5a946 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java +++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java @@ -30,4 +30,6 @@ FebsResponse previous(ApiMemberAnswerPreviousDto dto); FebsResponse wrongPage(ApiMemberAnswerWrongPageDto dto); + + FebsResponse myWork(ApiMemberProductWorkPageDto dto); } diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java index 5cb8f6c..8a33d36 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java @@ -369,4 +369,15 @@ dto.setMemberUuid(memberUuid); return aiMemberAnswerItemService.wrongPage(dto); } + + @Override + public FebsResponse myWork(ApiMemberProductWorkPageDto dto) { + String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); + dto.setMemberUuid(memberUuid); + // 创建分页对象,传入当前页和每页大小 + Page<ApiMemberProductWorkVo> page = new Page<>(dto.getPageNow(), dto.getPageSize()); + Page<ApiMemberProductWorkVo> pageListByQuery = this.getBaseMapper().getPageMyWorkListByQuery(page, dto); + + return new FebsResponse().success().data(pageListByQuery); + } } diff --git a/src/main/resources/mapper/modules/AiMemberAnswerMapper.xml b/src/main/resources/mapper/modules/AiMemberAnswerMapper.xml index be1b5f2..2c6e453 100644 --- a/src/main/resources/mapper/modules/AiMemberAnswerMapper.xml +++ b/src/main/resources/mapper/modules/AiMemberAnswerMapper.xml @@ -1,4 +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.ai.mapper.AiMemberAnswerMapper"> + + + + <select id="getPageMyWorkListByQuery" resultType="cc.mrbird.febs.ai.res.memberAnswer.ApiMemberProductWorkVo"> + select + b.id as id, + b.name as name, + b.target as target + from ai_member_answer a + left join ai_product b on a.product_id = b.id and b.state = 1 + <where> + and a.member_id = #{record.memberUuid} + <if test="record != null"> + <if test="record.state != null"> + and a.state = #{record.state} + </if> + </if> + </where> + group by a.product_id + order by a.CREATED_TIME desc + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1