浏览代码

更新im账户,增加企业id识别

WIN10-20210525Q\Administrator 1 年之前
父节点
当前提交
eedabd3dda

+ 25 - 0
menduner/menduner-im-biz/src/main/java/com/citu/module/menduner/im/controller/app/base/user/ImUserInfoVo.java

@@ -0,0 +1,25 @@
+package com.citu.module.menduner.im.controller.app.base.user;
+
+public class ImUserInfoVo {
+
+    private Long userId;
+
+    private String uid;
+
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getUid() {
+        return uid;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+}

+ 25 - 0
menduner/menduner-im-biz/src/main/java/com/citu/module/menduner/im/controller/app/base/user/ImUserReqVo.java

@@ -3,12 +3,28 @@ package com.citu.module.menduner.im.controller.app.base.user;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 
 
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
+import java.util.HashMap;
+import java.util.Map;
 
 
 public class ImUserReqVo {
 public class ImUserReqVo {
     @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6824")
     @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6824")
     @NotNull(message = "{1_099_000_006}")
     @NotNull(message = "{1_099_000_006}")
     private Long userId;
     private Long userId;
 
 
+    private Long enterpriseId;
+
+
+//    private Map content=new HashMap();
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
     public Long getUserId() {
     public Long getUserId() {
         return userId;
         return userId;
     }
     }
@@ -16,4 +32,13 @@ public class ImUserReqVo {
     public void setUserId(Long userId) {
     public void setUserId(Long userId) {
         this.userId = userId;
         this.userId = userId;
     }
     }
+
+
+//    public Map getContent() {
+//        return content;
+//    }
+//
+//    public void setContent(Map content) {
+//        this.content = content;
+//    }
 }
 }

+ 15 - 5
menduner/menduner-im-biz/src/main/java/com/citu/module/menduner/im/dal/dataobject/UserDO.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+import java.util.Map;
 
 
 @TableName("im_user")
 @TableName("im_user")
 public class UserDO {
 public class UserDO {
@@ -13,15 +15,13 @@ public class UserDO {
     @TableId(type= IdType.INPUT)
     @TableId(type= IdType.INPUT)
     private Long userId;
     private Long userId;
 
 
-
-
-
-
     private String uid;
     private String uid;
 
 
-
     private String token;
     private String token;
 
 
+
+    private Long enterpriseId;
+
     private LocalDateTime createTime;
     private LocalDateTime createTime;
 
 
     private LocalDateTime updateTime;
     private LocalDateTime updateTime;
@@ -66,4 +66,14 @@ public class UserDO {
     public void setUpdateTime(LocalDateTime updateTime) {
     public void setUpdateTime(LocalDateTime updateTime) {
         this.updateTime = updateTime;
         this.updateTime = updateTime;
     }
     }
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+
 }
 }

+ 4 - 0
menduner/menduner-im-biz/src/main/java/com/citu/module/menduner/im/service/UserService.java

@@ -4,8 +4,12 @@ import com.citu.framework.common.pojo.CommonResult;
 import com.citu.module.menduner.im.controller.app.base.user.ImUserReqVo;
 import com.citu.module.menduner.im.controller.app.base.user.ImUserReqVo;
 import com.citu.module.menduner.im.controller.app.base.user.ImUserResoVO;
 import com.citu.module.menduner.im.controller.app.base.user.ImUserResoVO;
 
 
+import java.util.Set;
+
 public interface UserService {
 public interface UserService {
     CommonResult<ImUserResoVO> getUser(ImUserReqVo reqVo);
     CommonResult<ImUserResoVO> getUser(ImUserReqVo reqVo);
 
 
     String getCurrentLoginUid();
     String getCurrentLoginUid();
+
+//    CommonResult<List<ImUserInfoVo>> getUserByUids(Set<String> );
 }
 }

+ 35 - 2
menduner/menduner-im-biz/src/main/java/com/citu/module/menduner/im/service/UserServiceImpl.java

@@ -1,10 +1,12 @@
 package com.citu.module.menduner.im.service;
 package com.citu.module.menduner.im.service;
 
 
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.citu.framework.common.exception.enums.GlobalErrorCodeConstants;
 import com.citu.framework.common.exception.enums.GlobalErrorCodeConstants;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.security.core.util.SecurityFrameworkUtils;
 import com.citu.framework.security.core.util.SecurityFrameworkUtils;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.im.controller.app.base.user.ImUserInfoVo;
 import com.citu.module.menduner.im.controller.app.base.user.ImUserReqVo;
 import com.citu.module.menduner.im.controller.app.base.user.ImUserReqVo;
 import com.citu.module.menduner.im.controller.app.base.user.ImUserResoVO;
 import com.citu.module.menduner.im.controller.app.base.user.ImUserResoVO;
 import com.citu.module.menduner.im.convert.UserConvert;
 import com.citu.module.menduner.im.convert.UserConvert;
@@ -16,6 +18,10 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
 
 
 @Service
 @Service
 public class UserServiceImpl implements UserService{
 public class UserServiceImpl implements UserService{
@@ -25,27 +31,45 @@ public class UserServiceImpl implements UserService{
     WuKongUserService wuKongUserService;
     WuKongUserService wuKongUserService;
 
 
 
 
+    private static final Long DEFAULT_ENTERPRISE_ID = -999L;
+
+
     @Override
     @Override
     @Transactional()
     @Transactional()
     public CommonResult<ImUserResoVO> getUser(ImUserReqVo reqVo) {
     public CommonResult<ImUserResoVO> getUser(ImUserReqVo reqVo) {
-        UserDO userDO = mapper.selectById(reqVo.getUserId());
+
+        if(null==reqVo.getEnterpriseId()){
+            reqVo.setEnterpriseId(DEFAULT_ENTERPRISE_ID);
+        }
+        UserDO userDO = mapper.selectOne(new LambdaQueryWrapper<UserDO>()
+                .eq(UserDO::getUserId,reqVo.getUserId())
+                .eq(UserDO::getEnterpriseId,reqVo.getEnterpriseId())
+        );
 
 
         Long userLoginId = LoginUserContext.getUserId();
         Long userLoginId = LoginUserContext.getUserId();
+        Long loginEnterpriseId = DEFAULT_ENTERPRISE_ID;
+        try{
+            loginEnterpriseId=LoginUserContext.getEnterpriseId();
+        } catch (Exception e){
+
+        }
         if(null == userDO){
         if(null == userDO){
             // 开始注册
             // 开始注册
             userDO =new UserDO();
             userDO =new UserDO();
             userDO.setCreateTime(LocalDateTime.now());
             userDO.setCreateTime(LocalDateTime.now());
             userDO.setUpdateTime(LocalDateTime.now());
             userDO.setUpdateTime(LocalDateTime.now());
             userDO.setUserId(reqVo.getUserId());
             userDO.setUserId(reqVo.getUserId());
+            userDO.setEnterpriseId(reqVo.getEnterpriseId());
             userDO.setToken(IdUtil.fastSimpleUUID());
             userDO.setToken(IdUtil.fastSimpleUUID());
             userDO.setUid(IdUtil.fastSimpleUUID());
             userDO.setUid(IdUtil.fastSimpleUUID());
+//            userDO.setContent(reqVo.getContent());
             mapper.insert(userDO);
             mapper.insert(userDO);
             CommonResult<Boolean> booleanCommonResult = wuKongUserService.userToken(userDO.getUid(), userDO.getToken());
             CommonResult<Boolean> booleanCommonResult = wuKongUserService.userToken(userDO.getUid(), userDO.getToken());
             if(!booleanCommonResult.isSuccess()){
             if(!booleanCommonResult.isSuccess()){
                 return CommonResult.error(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR);
                 return CommonResult.error(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR);
             }
             }
         }
         }
-        if(userLoginId!=reqVo.getUserId()){
+        if(!Objects.equals(userLoginId, reqVo.getUserId())  || !Objects.equals(loginEnterpriseId, reqVo.getEnterpriseId()) ){
             userDO.setToken(null);
             userDO.setToken(null);
         }
         }
         ImUserResoVO imUserResoVO = UserConvert.INSTANCE.userDOConvertUserResoVO(userDO);
         ImUserResoVO imUserResoVO = UserConvert.INSTANCE.userDOConvertUserResoVO(userDO);
@@ -79,6 +103,15 @@ public class UserServiceImpl implements UserService{
         return userDO.getUid();
         return userDO.getUid();
     }
     }
 
 
+//    @Override
+//    public CommonResult<List<ImUserInfoVo>> getUserByUids(Set<String> uids) {
+//        if(null == uids || uids.isEmpty()){
+//            return CommonResult.success(new ArrayList<ImUserInfoVo>());
+//        }
+//        List<UserDO> userDOS = mapper.selectList(new LambdaQueryWrapper<UserDO>().in(UserDO::getUid, uids));
+//        return null;
+//    }
+
 
 
     @Autowired
     @Autowired
     public void setWuKongUserService(WuKongUserService wuKongUserService) {
     public void setWuKongUserService(WuKongUserService wuKongUserService) {

+ 16 - 0
menduner/menduner-im-biz/src/main/java/com/citu/module/menduner/im/service/wukong/WuKongSessionServiceImpl.java

@@ -1,12 +1,19 @@
 package com.citu.module.menduner.im.service.wukong;
 package com.citu.module.menduner.im.service.wukong;
 
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.CommonResult;
+import com.citu.module.menduner.im.controller.app.base.user.ImUserInfoVo;
+import com.citu.module.menduner.im.controller.app.base.user.ImUserResoVO;
 import com.citu.module.menduner.im.controller.app.base.wukong.ConversationSyncReqVo;
 import com.citu.module.menduner.im.controller.app.base.wukong.ConversationSyncReqVo;
+import com.citu.module.menduner.im.controller.app.base.wukong.ConversationSyncRespVo;
 import com.citu.module.menduner.im.controller.app.base.wukong.ConversationsDeleteReqVo;
 import com.citu.module.menduner.im.controller.app.base.wukong.ConversationsDeleteReqVo;
 import com.citu.module.menduner.im.service.UserService;
 import com.citu.module.menduner.im.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
 @Service
 @Service
 public class WuKongSessionServiceImpl implements WuKongSessionService{
 public class WuKongSessionServiceImpl implements WuKongSessionService{
 
 
@@ -19,6 +26,15 @@ public class WuKongSessionServiceImpl implements WuKongSessionService{
     public CommonResult conversatioSync(ConversationSyncReqVo reqVo) {
     public CommonResult conversatioSync(ConversationSyncReqVo reqVo) {
          String uid  =  userService.getCurrentLoginUid();
          String uid  =  userService.getCurrentLoginUid();
         reqVo.setUid(uid);
         reqVo.setUid(uid);
+        List<ConversationSyncRespVo> conversationSyncRespVos = wuKongApiService.conversationSync(reqVo);
+
+        Set<String> uids =new HashSet<>();
+        for (ConversationSyncRespVo conversationSyncRespVo : conversationSyncRespVos) {
+            conversationSyncRespVo.getRecents().forEach(item->uids.add(item.get("from_uid").toString()));
+        }
+
+//        CommonResult<List<ImUserInfoVo>> result =   userService.getUserByUids(uids);
+
         return CommonResult.success(wuKongApiService.conversationSync(reqVo));
         return CommonResult.success(wuKongApiService.conversationSync(reqVo));
     }
     }