zoujiajian 1 年間 前
コミット
12353e197f

+ 0 - 83
netflix-dao/src/main/java/com/cyksj/model/views/CorpKfServicerSessionRecordView.java

@@ -1,83 +0,0 @@
-package com.cyksj.model.views;
-
-import com.ejlchina.searcher.bean.DbField;
-import com.ejlchina.searcher.bean.SearchBean;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.Date;
-
-/**
- * 项目名: yhlxj2
- * 文件名: CorpKfServicerSessionRecordView
- * 创建者: JavaZou
- * 创建时间:2025/1/2 16:41
- */
-@Getter
-@Setter
-@SearchBean(tables = "(SELECT open_kf_id,external_userid, servicer_userid, MAX(id) msgId " +
-		"FROM corp_kf_account_session_chat where servicer_userid is not null" +
-		" :keyword: " +
-		"GROUP BY open_kf_id,external_userid,servicer_userid) t " +
-		"LEFT JOIN corp_kf_account_session_chat qm on qm.id = t.msgId " +
-		"LEFT JOIN corp_kf_user ku on ku.external_userid = t.external_userid " +
-		"LEFT JOIN corp_follow cf on cf.userid = t.servicer_userid"
-)
-public class CorpKfServicerSessionRecordView {
-	/**
-	 * 用户名称
-	 */
-	@DbField("ku.nickname")
-	private String nickname;
-
-	/**
-	 * 用户头像
-	 */
-	@DbField("ku.avatar")
-	private String avatar;
-
-	/**
-	 * 成员名称
-	 */
-	@DbField("cf.name")
-	private String followName;
-
-	/**
-	 * 成员id
-	 */
-	@DbField("t.servicer_userid")
-	private String servicerUserid;
-
-	/**
-	 * 用户id
-	 */
-	@DbField("t.external_userid")
-	private String externalUserid;
-
-	/**
-	 * 最近消息文本内容
-	 */
-	@DbField("qm.msg_content")
-	private String msgContent;
-
-	/**
-	 * 最近消息类型
-	 */
-	@DbField("qm.msg_type")
-	private String msgType;
-
-	/**
-	 * 最近消息时间 s
-	 */
-	@DbField("qm.send_time")
-	private Long sendTime;
-
-	/**
-	 * 最近消息时间
-	 */
-	@DbField("qm.send_date")
-	private Date sendDate;
-
-	@DbField("qm.open_kf_id")
-	private String openKfId;
-}

+ 89 - 0
netflix-dao/src/main/java/com/cyksj/model/views/CorpKfUserChatRecordView.java

@@ -0,0 +1,89 @@
+package com.cyksj.model.views;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: CorpKfUserChatView
+ * 创建者: JavaZou
+ * 创建时间:2025/1/10 11:30
+ */
+@Getter
+@Setter
+@SearchBean(tables = "corp_kf_servicer_session_record cr LEFT JOIN corp_follow cf on cf.userid = cc.servicer_userid" +
+		"LEFT JOIN corp_kf_user cu on cu.external_userid = cc.external_userid")
+public class CorpKfUserChatRecordView {
+	@DbField("cr.id")
+	private Long sessionId;
+
+	@DbField("cr.open_kf_id")
+	private String openKfId;
+
+	/**
+	 * 会话转接客服id
+	 */
+	@DbField("cr.from_userid")
+	private String fromUserid;
+
+	@DbField("cr.servicer_userid")
+	private String servicerUserid;
+
+	/**
+	 * 成员名称
+	 */
+	@DbField("cf.name")
+	@TableField(exist = false)
+	private String followName;
+
+	@DbField("cr.external_userid")
+	private String externalUserid;
+
+	/**
+	 * 用户昵称
+	 */
+	@DbField("cu.nickname")
+	@TableField(exist = false)
+	private String name;
+
+	@DbField("cu.avatar")
+	@TableField(exist = false)
+	private String avatar;
+
+	/**
+	 * 接待状态
+	 * 0接待中 1已结束,2转接出去
+	 */
+	@DbField("cr.service_state")
+	private Integer serviceState;
+
+	/**
+	 * 0未评价 1.满意 2.一般 3.不满意
+	 * 满意度
+	 */
+	@DbField("cr.satisfaction")
+	private Integer satisfaction;
+
+	/**
+	 * 是否发送满意度测评 默认false
+	 */
+	@DbField("cr.send_satisfaction")
+	private Boolean sendSatisfaction;
+
+	/**
+	 * 会话开始时间
+	 */
+	@DbField("cr.start_time")
+	private Date startTime;
+
+	/**
+	 * 会话关闭时间
+	 */
+	@DbField("cr.close_time")
+	private Date closeTime;
+}

+ 4 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/wxkf/CorpKfController.java

@@ -12,7 +12,7 @@ import com.cyksj.model.entity.*;
 import com.cyksj.model.request.CorpKfDutySetReq;
 import com.cyksj.model.request.corp.kf.CorpKfDutyReq;
 import com.cyksj.model.views.CorpKfDutyServicersStatusView;
-import com.cyksj.model.views.CorpKfServicerSessionRecordView;
+import com.cyksj.model.views.CorpKfUserChatRecordView;
 import com.cyksj.model.views.SysCorpFollowView;
 import com.cyksj.service.corp.kf.CorpKfService;
 import com.cyksj.service.mange.cms.service.CmsUserService;
@@ -193,12 +193,12 @@ public class CorpKfController {
 	 * 会话记录
 	 */
 	@GetMapping("/get/session")
-	public Result<SearchResult<CorpKfServicerSessionRecordView>> getSession(String keyword) {
+	public Result<SearchResult<CorpKfUserChatRecordView>> getSession(String keyword) {
 		MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
 		if (StringUtils.isNotBlank(keyword)) {
-			builder.put("keyword", String.format(" and q.msg_content like '%s%%')", keyword));
+			builder.put("keyword", String.format(" and exist (select 1 from corp_kf_account_session_chat ct where ct.session_id = cr.id and ct.msg_content like '%s%%')", keyword));
 		}
-		SearchResult<CorpKfServicerSessionRecordView> search = beanSearcher.search(CorpKfServicerSessionRecordView.class, builder.build());
+		SearchResult<CorpKfUserChatRecordView> search = beanSearcher.search(CorpKfUserChatRecordView.class, builder.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}