| 
					
				 | 
			
			
				@@ -3,6 +3,7 @@ package com.fs.im.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.collection.CollectionUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.http.HttpRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.json.JSONUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fasterxml.jackson.annotation.JsonInclude; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fasterxml.jackson.core.JsonProcessingException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fasterxml.jackson.databind.ObjectMapper; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -36,6 +37,7 @@ import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.context.annotation.Lazy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.scheduling.annotation.Async; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -67,6 +69,9 @@ public class OpenIMServiceImpl implements OpenIMService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Lazy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private AiHookService aiHookService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Value("${openIM.prefix}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String openImPrefix; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /*@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private IFsUserService fsUserService;*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -459,16 +464,21 @@ public class OpenIMServiceImpl implements OpenIMService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("进入发消息的方法"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String adminToken = getAdminToken(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         JSONObject jsonObject = new JSONObject(openImMsgDTO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String url = IMConfig.URL+"/msg/send_msg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.info("请求url: {}",url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("发送消息的请求体:\n{}", jsonObject.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         long time = new Date().getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String result = HttpRequest.post(IMConfig.URL+"/msg/send_msg") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.info("请求header: token={},operationID={}",adminToken,time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String result = HttpRequest.post(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .header("operationID", time + "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .header("token",adminToken) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .body(jsonObject.toString()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .execute() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .body(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         OpenImResponseDTO responseDTO= JSONUtil.toBean(result,OpenImResponseDTO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        log.info("发送消息返回内容:\n{}", responseDTO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.info("发送消息返回内容:\n{}", result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return responseDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -502,14 +512,12 @@ public class OpenIMServiceImpl implements OpenIMService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         openImMsgDTO.setOfflinePushInfo(offlinePushInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         openImMsgDTO.setContent(content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         openImMsgDTO.setSendID(IMConfig.PREFIX+"C"+companyUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         openImMsgDTO.setRecvID(IMConfig.PREFIX+"U"+userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         openImMsgDTO.setContentType(110); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         openImMsgDTO.setSessionType(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 输出格式化JSON日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        log.info("课程消息:\n{}", objectMapper.writeValueAsString(openImMsgDTO)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.info("课程消息: {}", JSON.toJSONString(openImMsgDTO)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         OpenImResponseDTO openImResponseDTO = openIMSendMsg(openImMsgDTO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         openImMsgDTO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         content = null; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -899,7 +907,7 @@ public class OpenIMServiceImpl implements OpenIMService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     String s = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     switch (type){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         case "2": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            s = userId.replaceFirst("^scrmC", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            s = userId.replaceFirst("^"+openImPrefix+"C", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             CompanyUser companyUser = companyUserMapper.selectCompanyUserByCompanyUserId(Long.parseLong(s)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (null==companyUser){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 return R.error("用户不存在"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -911,7 +919,7 @@ public class OpenIMServiceImpl implements OpenIMService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             map.put("faceURL",companyUser.getAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            s = userId.replaceFirst("^scrmU", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            s = userId.replaceFirst("^"+openImPrefix+"U", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             FsUser fsUser = fsUserMapper.selectFsUserByUserId(Long.parseLong(s)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (null==fsUser){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 return R.error("用户不存在"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -921,7 +929,7 @@ public class OpenIMServiceImpl implements OpenIMService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             map.put("faceURL",fsUser.getAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         case "3": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            s = userId.replaceFirst("^scrmD", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            s = userId.replaceFirst("^"+openImPrefix+"D", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             FsDoctor fsDoctor = fsDoctorMapper.selectFsDoctorByDoctorId(Long.parseLong(s)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (null==fsDoctor){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 return R.error("用户不存在"); 
			 |