Explorar o código

对话前端用户管理修改

Zhangbw hai 2 meses
pai
achega
041db30b5f

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java

@@ -24,7 +24,7 @@ public class SysUser extends TenantEntity {
     /**
      * 用户ID
      */
-    @TableId(value = "user_id")
+    @TableId(value = "user_id", type = IdType.AUTO)
     private Long userId;
 
     /**

+ 0 - 25
ruoyi-modules/yp-talk/src/main/java/org/dromara/talk/domain/TalkSession.java

@@ -48,31 +48,6 @@ public class TalkSession extends TenantEntity {
      */
     private String conversationJson;
 
-    /**
-     * 消息总数
-     */
-    private Long messageCount;
-
-    /**
-     * 用户消息数
-     */
-    private Long userMessageCount;
-
-    /**
-     * 客服消息数
-     */
-    private Long agentMessageCount;
-
-    /**
-     * 对话时长(秒)
-     */
-    private Long duration;
-
-    /**
-     * 会话状态(0=进行中 1=已结束)
-     */
-    private String status;
-
     /**
      * 会话开始时间
      */

+ 37 - 9
ruoyi-modules/yp-talk/src/main/java/org/dromara/talk/domain/TalkUser.java

@@ -1,22 +1,23 @@
 package org.dromara.talk.domain;
 
-import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.tenant.core.TenantEntity;
 import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
+import java.util.Date;
 
 /**
- * 对话用户对象 talk_user
+ * 对话用户对象 sys_user (映射到系统用户表)
  *
  * @author Lion Li
  * @date 2026-01-28
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@TableName("talk_user")
-public class TalkUser extends BaseEntity {
+@TableName("sys_user")
+public class TalkUser extends TenantEntity {
 
     @Serial
     private static final long serialVersionUID = 1L;
@@ -24,24 +25,41 @@ public class TalkUser extends BaseEntity {
     /**
      * 用户ID
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "user_id", type = IdType.AUTO)
     private Long id;
 
     /**
-     * 用户名
+     * 部门ID
      */
-    private String username;
+    private Long deptId;
 
     /**
-     * 密码
+     * 用户名
      */
-    private String password;
+    @TableField("user_name")
+    private String username;
 
     /**
      * 昵称
      */
+    @TableField("nick_name")
     private String nickname;
 
+    /**
+     * 用户类型(固定为 talk_web_user)
+     */
+    private String userType;
+
+    /**
+     * 密码
+     */
+    @TableField(
+        insertStrategy = FieldStrategy.NOT_EMPTY,
+        updateStrategy = FieldStrategy.NOT_EMPTY,
+        whereStrategy = FieldStrategy.NOT_EMPTY
+    )
+    private String password;
+
     /**
      * 状态(0=正常 1=停用)
      */
@@ -53,5 +71,15 @@ public class TalkUser extends BaseEntity {
     @TableLogic
     private String delFlag;
 
+    /**
+     * 最后登录IP
+     */
+    private String loginIp;
+
+    /**
+     * 最后登录时间
+     */
+    private Date loginDate;
+
 
 }

+ 0 - 25
ruoyi-modules/yp-talk/src/main/java/org/dromara/talk/domain/bo/TalkSessionBo.java

@@ -49,31 +49,6 @@ public class TalkSessionBo extends BaseEntity {
      */
     private String conversationJson;
 
-    /**
-     * 消息总数
-     */
-    private Long messageCount;
-
-    /**
-     * 用户消息数
-     */
-    private Long userMessageCount;
-
-    /**
-     * 客服消息数
-     */
-    private Long agentMessageCount;
-
-    /**
-     * 对话时长(秒)
-     */
-    private Long duration;
-
-    /**
-     * 会话状态(0=进行中 1=已结束)
-     */
-    private String status;
-
     /**
      * 会话开始时间
      */

+ 0 - 34
ruoyi-modules/yp-talk/src/main/java/org/dromara/talk/domain/vo/TalkSessionVo.java

@@ -5,8 +5,6 @@ import java.util.Date;
 import org.dromara.talk.domain.TalkSession;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
@@ -58,38 +56,6 @@ public class TalkSessionVo implements Serializable {
     @ExcelProperty(value = "对话详细数据")
     private String conversationJson;
 
-    /**
-     * 消息总数
-     */
-    @ExcelProperty(value = "消息总数")
-    private Long messageCount;
-
-    /**
-     * 用户消息数
-     */
-    @ExcelProperty(value = "用户消息数")
-    private Long userMessageCount;
-
-    /**
-     * 客服消息数
-     */
-    @ExcelProperty(value = "客服消息数")
-    private Long agentMessageCount;
-
-    /**
-     * 对话时长(秒)
-     */
-    @ExcelProperty(value = "对话时长", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "秒=")
-    private Long duration;
-
-    /**
-     * 会话状态(0=进行中 1=已结束)
-     */
-    @ExcelProperty(value = "会话状态", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "0==进行中,1==已结束")
-    private String status;
-
     /**
      * 会话开始时间
      */

+ 6 - 0
ruoyi-modules/yp-talk/src/main/java/org/dromara/talk/domain/vo/TalkUserVo.java

@@ -59,5 +59,11 @@ public class TalkUserVo implements Serializable {
     @ExcelDictFormat(readConverterExp = "0==正常,1==停用")
     private String status;
 
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date createTime;
+
 
 }

+ 0 - 5
ruoyi-modules/yp-talk/src/main/java/org/dromara/talk/service/impl/TalkSessionServiceImpl.java

@@ -78,11 +78,6 @@ public class TalkSessionServiceImpl implements ITalkSessionService {
         lqw.eq(bo.getAgentId() != null, TalkSession::getAgentId, bo.getAgentId());
         lqw.eq(StringUtils.isNotBlank(bo.getCustomerPhone()), TalkSession::getCustomerPhone, bo.getCustomerPhone());
         lqw.eq(StringUtils.isNotBlank(bo.getConversationJson()), TalkSession::getConversationJson, bo.getConversationJson());
-        lqw.eq(bo.getMessageCount() != null, TalkSession::getMessageCount, bo.getMessageCount());
-        lqw.eq(bo.getUserMessageCount() != null, TalkSession::getUserMessageCount, bo.getUserMessageCount());
-        lqw.eq(bo.getAgentMessageCount() != null, TalkSession::getAgentMessageCount, bo.getAgentMessageCount());
-        lqw.eq(bo.getDuration() != null, TalkSession::getDuration, bo.getDuration());
-        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TalkSession::getStatus, bo.getStatus());
         lqw.eq(bo.getStartTime() != null, TalkSession::getStartTime, bo.getStartTime());
         lqw.eq(bo.getEndTime() != null, TalkSession::getEndTime, bo.getEndTime());
         return lqw;

+ 4 - 0
ruoyi-modules/yp-talk/src/main/java/org/dromara/talk/service/impl/TalkUserServiceImpl.java

@@ -73,6 +73,7 @@ public class TalkUserServiceImpl implements ITalkUserService {
     private LambdaQueryWrapper<TalkUser> buildQueryWrapper(TalkUserBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<TalkUser> lqw = Wrappers.lambdaQuery();
+        lqw.eq(TalkUser::getUserType, "talk_web_user");
         lqw.orderByDesc(TalkUser::getId);
         lqw.like(StringUtils.isNotBlank(bo.getUsername()), TalkUser::getUsername, bo.getUsername());
         lqw.eq(StringUtils.isNotBlank(bo.getPassword()), TalkUser::getPassword, bo.getPassword());
@@ -90,6 +91,7 @@ public class TalkUserServiceImpl implements ITalkUserService {
     @Override
     public Boolean insertByBo(TalkUserBo bo) {
         TalkUser add = MapstructUtils.convert(bo, TalkUser.class);
+        add.setUserType("talk_web_user");
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -135,12 +137,14 @@ public class TalkUserServiceImpl implements ITalkUserService {
     @Override
     public TalkUser queryByUsernameWithPassword(String username) {
         return baseMapper.selectOne(new LambdaQueryWrapper<TalkUser>()
+            .eq(TalkUser::getUserType, "talk_web_user")
             .eq(TalkUser::getUsername, username));
     }
 
     @Override
     public TalkUserVo queryByUsername(String username) {
         return baseMapper.selectVoOne(new LambdaQueryWrapper<TalkUser>()
+            .eq(TalkUser::getUserType, "talk_web_user")
             .eq(TalkUser::getUsername, username));
     }