feat(ai): 添加我的训练功能- 新增 ApiMemberProductWorkPageDto 和 ApiMemberProductWorkVo 类
- 在 AiMemberAnswerMapper 中添加 getPageMyWorkListByQuery 方法
- 在 AiMemberAnswerService 中添加 myWork 方法
- 在 AiMemberAnswerController 中添加 myWork接口
5 files modified
2 files added
| | |
| | | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | 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接口 |
| | |
| | | */ |
| | | public interface AiMemberAnswerMapper extends BaseMapper<AiMemberAnswer> { |
| | | |
| | | Page<ApiMemberProductWorkVo> getPageMyWorkListByQuery(Page<ApiMemberProductWorkVo> page, @Param("record")ApiMemberProductWorkPageDto dto); |
| | | } |
New file |
| | |
| | | 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; |
| | | } |
New file |
| | |
| | | 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; |
| | | } |
| | |
| | | FebsResponse previous(ApiMemberAnswerPreviousDto dto); |
| | | |
| | | FebsResponse wrongPage(ApiMemberAnswerWrongPageDto dto); |
| | | |
| | | FebsResponse myWork(ApiMemberProductWorkPageDto dto); |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | <?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> |