From ed19ea21f7c74c49bba1a130983d812f3d14890e Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 10 Feb 2026 17:36:19 +0800
Subject: [PATCH] feat(ai): 添加我的陪练功能接口

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java          |   24 ++++++-
 src/main/java/cc/mrbird/febs/ai/res/memberTalk/ApiMemberProductTalkVo.java               |   34 +++++++++++
 src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkStreamService.java                   |    8 +-
 src/main/resources/mapper/modules/AiMemberTalkMapper.xml                                 |   17 +++++
 src/main/java/cc/mrbird/febs/ai/req/memberTalk/ApiMemberProductTalkPageDto.java          |   29 +++++++++
 src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkStreamController.java |   18 ++++-
 src/main/java/cc/mrbird/febs/ai/mapper/AiMemberTalkMapper.java                           |    4 +
 7 files changed, 122 insertions(+), 12 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkStreamController.java b/src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkStreamController.java
index aa4f843..ece48b7 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkStreamController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkStreamController.java
@@ -1,11 +1,10 @@
 package cc.mrbird.febs.ai.controller.memberTalk;
 
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto;
-import cc.mrbird.febs.ai.req.memberTalk.ApiTalkMemberListDto;
-import cc.mrbird.febs.ai.req.memberTalk.ApiTalkReportListDto;
+import cc.mrbird.febs.ai.req.memberTalk.*;
 import cc.mrbird.febs.ai.req.memberTalkStream.*;
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkListDto;
+import cc.mrbird.febs.ai.req.memberTalkStream.ApiMemberTalkStreamDto;
 import cc.mrbird.febs.ai.res.memberTalk.*;
+import cc.mrbird.febs.ai.res.memberTalk.ApiMemberProductTalkVo;
 import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkReloadStreamVo;
 import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkStreamV2Vo;
 import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkStreamVo;
@@ -131,6 +130,17 @@
     }
 
 
+    @ApiOperation(value = "我的陪练", notes = "我的陪练")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = ApiMemberProductTalkVo.class)
+    })
+    @PostMapping(value = "/myTalkList")
+    public FebsResponse myTalkList(@RequestBody @Validated ApiMemberProductTalkPageDto dto) {
+
+        return aiMemberTalkStreamService.myTalkList(dto);
+    }
+
+
     @ApiOperation(value = "陪练记录", notes = "陪练记录")
     @ApiResponses({
             @ApiResponse(code = 200, message = "success", response = ApiMemberTalkListVo.class)
diff --git a/src/main/java/cc/mrbird/febs/ai/mapper/AiMemberTalkMapper.java b/src/main/java/cc/mrbird/febs/ai/mapper/AiMemberTalkMapper.java
index daad781..96e2815 100644
--- a/src/main/java/cc/mrbird/febs/ai/mapper/AiMemberTalkMapper.java
+++ b/src/main/java/cc/mrbird/febs/ai/mapper/AiMemberTalkMapper.java
@@ -2,9 +2,11 @@
 
 import cc.mrbird.febs.ai.entity.AiMemberTalk;
 import cc.mrbird.febs.ai.req.member.ApiMemberTalkPageDto;
+import cc.mrbird.febs.ai.req.memberTalk.ApiMemberProductTalkPageDto;
 import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkListDto;
 import cc.mrbird.febs.ai.res.member.ApiMemberTalkPageVo;
 import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkListVo;
+import cc.mrbird.febs.ai.res.memberTalk.ApiMemberProductTalkVo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -21,4 +23,6 @@
     IPage<ApiMemberTalkListVo> getPageByDto(Page<ApiMemberTalkListVo> page, @Param("record")ApiMemberTalkListDto dto);
 
     Page<ApiMemberTalkPageVo> getTalkPage(Page<ApiMemberTalkPageVo> page, @Param("record")ApiMemberTalkPageDto dto);
+
+    Page<ApiMemberProductTalkVo> getPageMyTalkListByQuery(Page<ApiMemberProductTalkVo> page, @Param("record")ApiMemberProductTalkPageDto dto);
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/req/memberTalk/ApiMemberProductTalkPageDto.java b/src/main/java/cc/mrbird/febs/ai/req/memberTalk/ApiMemberProductTalkPageDto.java
new file mode 100644
index 0000000..49da67c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/req/memberTalk/ApiMemberProductTalkPageDto.java
@@ -0,0 +1,29 @@
+package cc.mrbird.febs.ai.req.memberTalk;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author Administrator
+ */
+@Data
+@ApiModel(value = "ApiMemberProductTalkPageDto", description = "参数")
+public class ApiMemberProductTalkPageDto {
+
+    @NotNull(message = "页码不能为空")
+    @ApiModelProperty(value = "页码", example = "1")
+    private Integer pageNow;
+
+    @NotNull(message = "每页数量不能为空")
+    @ApiModelProperty(value = "每页数量", example = "10")
+    private Integer pageSize;
+
+    @ApiModelProperty(hidden = true)
+    private String memberUuid;
+
+    @ApiModelProperty(hidden = true)
+    private String companyId;
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/res/memberTalk/ApiMemberProductTalkVo.java b/src/main/java/cc/mrbird/febs/ai/res/memberTalk/ApiMemberProductTalkVo.java
new file mode 100644
index 0000000..87715ea
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/res/memberTalk/ApiMemberProductTalkVo.java
@@ -0,0 +1,34 @@
+package cc.mrbird.febs.ai.res.memberTalk;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author Administrator
+ */
+@Data
+@ApiModel(value = "ApiMemberProductTalkVo", description = "参数")
+public class ApiMemberProductTalkVo {
+
+    @ApiModelProperty(value = "ID")
+    private String id;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 目标
+     */
+    @ApiModelProperty(value = "目标")
+    private String target;
+
+    @ApiModelProperty(value = "时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkStreamService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkStreamService.java
index 35582c7..96a4099 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkStreamService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkStreamService.java
@@ -1,11 +1,9 @@
 package cc.mrbird.febs.ai.service;
 
 import cc.mrbird.febs.ai.entity.AiMemberTalk;
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto;
-import cc.mrbird.febs.ai.req.memberTalk.ApiTalkMemberListDto;
-import cc.mrbird.febs.ai.req.memberTalk.ApiTalkReportListDto;
+import cc.mrbird.febs.ai.req.memberTalk.*;
 import cc.mrbird.febs.ai.req.memberTalkStream.*;
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkListDto;
+import cc.mrbird.febs.ai.req.memberTalkStream.ApiMemberTalkStreamDto;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import com.baomidou.mybatisplus.extension.service.IService;
 import reactor.core.publisher.Flux;
@@ -22,6 +20,8 @@
 
     Flux<FebsResponse> startV2(ApiMemberTalkStreamV2Dto dto);
 
+    FebsResponse myTalkList(ApiMemberProductTalkPageDto dto);
+
     FebsResponse talkList(ApiMemberTalkListDto dto);
 
     FebsResponse talkMemberList(ApiTalkMemberListDto dto);
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
index e0b3d3a..0f226b3 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
@@ -4,12 +4,11 @@
 import cc.mrbird.febs.ai.enumerates.AiTalkOutputEnum;
 import cc.mrbird.febs.ai.enumerates.AiTypeEnum;
 import cc.mrbird.febs.ai.mapper.AiMemberTalkMapper;
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto;
-import cc.mrbird.febs.ai.req.memberTalk.ApiTalkMemberListDto;
-import cc.mrbird.febs.ai.req.memberTalk.ApiTalkReportListDto;
+import cc.mrbird.febs.ai.req.memberTalk.*;
 import cc.mrbird.febs.ai.req.memberTalkStream.*;
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkListDto;
+import cc.mrbird.febs.ai.req.memberTalkStream.ApiMemberTalkStreamDto;
 import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkMemberAnswerSavaVo;
+import cc.mrbird.febs.ai.res.memberTalk.ApiMemberProductTalkVo;
 import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkReloadStreamVo;
 import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkStreamVo;
 import cc.mrbird.febs.ai.service.*;
@@ -27,6 +26,7 @@
 import com.alibaba.dashscope.common.Role;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -167,6 +167,22 @@
     }
 
     @Override
+    public FebsResponse myTalkList(ApiMemberProductTalkPageDto dto) {
+
+        String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
+        dto.setMemberUuid(memberUuid);
+
+
+        String companyId = LoginUserUtil.getLoginUser().getCompanyId();
+        dto.setCompanyId(companyId);
+        // 创建分页对象,传入当前页和每页大小
+        Page<ApiMemberProductTalkVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
+        Page<ApiMemberProductTalkVo> pageListByQuery = aiMemberTalkMapper.getPageMyTalkListByQuery(page, dto);
+
+        return new FebsResponse().success().data(pageListByQuery);
+    }
+
+    @Override
     public FebsResponse talkList(ApiMemberTalkListDto dto) {
 
         return new FebsResponse().success().data(aiMemberTalkService.getPageByDto(dto));
diff --git a/src/main/resources/mapper/modules/AiMemberTalkMapper.xml b/src/main/resources/mapper/modules/AiMemberTalkMapper.xml
index 3f63aa0..7dfd73d 100644
--- a/src/main/resources/mapper/modules/AiMemberTalkMapper.xml
+++ b/src/main/resources/mapper/modules/AiMemberTalkMapper.xml
@@ -35,4 +35,21 @@
         order by a.CREATED_TIME desc
     </select>
 
+    <select id="getPageMyTalkListByQuery" resultType="cc.mrbird.febs.ai.res.memberTalk.ApiMemberProductTalkVo">
+        select DISTINCT
+        b.ID as id,
+        b.name as name,
+        b.target as target,
+        a.CREATED_TIME as createdTime
+        from ai_member_talk a
+        left join ai_product b on a.product_id = b.id
+        <where>
+            and a.member_id = #{record.memberUuid}
+            and a.company_id = #{record.companyId}
+            and a.state = 1
+            and b.state = 1
+        </where>
+        order by a.CREATED_TIME desc
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1