wangxy 2 недель назад
Родитель
Сommit
3c7a9384ad

+ 3 - 1
fs-doctor-app/src/main/java/com/fs/app/controller/CommonController.java

@@ -41,6 +41,7 @@ import com.google.gson.Gson;
 import com.tencentyun.TLSSigAPIv2;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.annotation.Cacheable;
@@ -63,6 +64,7 @@ import java.util.logging.Logger;
 @Api("公共接口")
 @RestController
 @RequestMapping(value="/app/common")
+@Slf4j
 public class CommonController {
 
 	private static Logger logger = Logger.getLogger("com.fs.app.controller.CommonController");
@@ -249,7 +251,7 @@ public class CommonController {
 
 		//openIMService.AiAutoReply(messageInfo);
 
-		//log.info("收到的参数{}", JSON.toJSONString(messageInfo));
+		log.info("收到的参数{}", JSON.toJSONString(messageInfo));
 		return inquiryOrderMsgService.openImSaveMsg(messageInfo);
 	}
 	/**

+ 2 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -2179,6 +2179,8 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService {
             // 设置 Redis 记录的过期时间(例如 5 分钟)
             redisCache.expire(redisKey, 300, TimeUnit.SECONDS);
         }
+        //导入im好友
+        openIMService.checkAndImportFriendByDianBoNew(param.getCompanyUserId(), param.getUserId().toString(), true);
 
         // 添加会员销售关系表数据
         // 逻辑调整:如果会员已经绑定了销售,直接提示,不添加重粉数据了-2025年6月16日14点58分

+ 8 - 0
fs-service/src/main/java/com/fs/im/service/OpenIMService.java

@@ -36,6 +36,14 @@ public interface OpenIMService {
     OpenImResponseDTO sendCourse(Long userId,Long companyUserId,String url,String title,String linkImageUrl,String cropId) throws JsonProcessingException;
     void checkAndImportFriendByDianBo(Long companyUserId,String fsUserId,String cropId, boolean isUpdate);
 
+    /**
+     * 导入im好友
+     * @param companyUserId
+     * @param fsUserId
+     * @param isUpdate
+     */
+    void checkAndImportFriendByDianBoNew(Long companyUserId,String fsUserId,boolean isUpdate);
+
     OpenImResponseDTO updateUserInfo(CompanyUser companyUser);
 
     OpenImResponseDTO sendPackageUtil(String sendID, String recvID, Integer contentType, String payloadData,String packageName,String packageId);

+ 50 - 0
fs-service/src/main/java/com/fs/im/service/impl/OpenIMServiceImpl.java

@@ -1058,6 +1058,25 @@ public class OpenIMServiceImpl implements OpenIMService {
         }
     }
 
+    @Override
+    public void checkAndImportFriendByDianBoNew(Long companyUserId, String fsUserId, boolean isUpdate) {
+        try {
+            // 注册账号
+            accountCheck("C" + companyUserId, "2");
+            accountCheck("U"+fsUserId, "1");
+
+            // 导入好友关系
+            ArrayList<String> userIds = new ArrayList<>();
+            userIds.add("U" + fsUserId);
+            importFriend("C" + companyUserId, userIds);
+            if(isUpdate){
+                updateFriendByDianBoNew("C" + companyUserId, userIds);
+            }
+        } catch (Exception e) {
+            log.error("异步执行IM注册/添加好友失败:", e);
+        }
+    }
+
 
     @Override
     @Transactional
@@ -1514,6 +1533,37 @@ public class OpenIMServiceImpl implements OpenIMService {
         OpenImResponseDTO responseDTO= JSONUtil.toBean(body,OpenImResponseDTO.class);
         return responseDTO;
     }
+
+    public OpenImResponseDTO updateFriendByDianBoNew(String ownerUserID, List<String> friendUserIDs) {
+        //先检查用户是否存在好友关系
+        //List<String> newFriendIds = new ArrayList<>();
+        for (String friendUserID : friendUserIDs) {
+            OpenImResponseDTO friend = isFriend(ownerUserID,friendUserID);
+            if (friend.getErrCode()==0){
+                Object data = friend.getData();
+                cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(data);
+                Boolean inUser1Friends = (Boolean)jsonObject.get("inUser1Friends");
+                Boolean inUser2Friends = (Boolean)jsonObject.get("inUser2Friends");
+                //如果不存在好友关系,则不执行im修改好友信息
+                if (!inUser1Friends&&!inUser2Friends){
+                    return null;
+                    //friendUserIDs.remove(friendUserID);
+                }
+            }
+        }
+        String adminToken = getAdminToken();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("ownerUserID",ownerUserID);
+        jsonObject.put("friendUserIDs",friendUserIDs);
+        String body = HttpRequest.post(IMConfig.URL+"/friend/update_friends")
+                .header("operationID", String.valueOf(System.currentTimeMillis()))
+                .header("token", adminToken)
+                .body(jsonObject.toString())
+                .execute()
+                .body();
+        OpenImResponseDTO responseDTO= JSONUtil.toBean(body,OpenImResponseDTO.class);
+        return responseDTO;
+    }
     @Override
     public OpenImResponseDTO sendInquiryUtil(String sendID, String recvID, Integer contentType, String payloadData, String inquiryName, String type,Long companyId,Long companyUserId,String doctorId) {
         try {

+ 15 - 0
fs-service/src/main/java/com/fs/watch/param/DeviceSendParam.java

@@ -0,0 +1,15 @@
+package com.fs.watch.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class DeviceSendParam {
+    @NotNull
+    private String deviceId;
+    @NotNull
+    private String fileUrl;
+    @NotNull
+    private String sendUserName;
+}