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