|
|
@@ -33,6 +33,8 @@ import com.fs.his.dto.PayloadDTO;
|
|
|
import com.fs.his.mapper.FsDoctorMapper;
|
|
|
import com.fs.his.mapper.FsFollowMapper;
|
|
|
import com.fs.his.mapper.FsUserMapper;
|
|
|
+import com.fs.live.domain.Live;
|
|
|
+import com.fs.live.mapper.LiveMapper;
|
|
|
import com.fs.im.config.IMConfig;
|
|
|
import com.fs.im.domain.FsImMsgSendDetail;
|
|
|
import com.fs.im.domain.FsImMsgSendLog;
|
|
|
@@ -80,6 +82,8 @@ public class OpenIMServiceImpl implements OpenIMService {
|
|
|
@Autowired
|
|
|
private CompanyMapper companyMapper;
|
|
|
@Autowired
|
|
|
+ private LiveMapper liveMapper;
|
|
|
+ @Autowired
|
|
|
private FsFollowMapper fsFollowMapper;
|
|
|
@Autowired
|
|
|
private QwExternalContactMapper qwExternalContactMapper;
|
|
|
@@ -558,6 +562,51 @@ public class OpenIMServiceImpl implements OpenIMService {
|
|
|
content = null;
|
|
|
return openImResponseDTO;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public OpenImResponseDTO sendLive(Long userId, Long companyUserId, String url, String title, Long liveId, String cropId, Long companyId) throws JsonProcessingException {
|
|
|
+ Live live = liveMapper.selectLiveByLiveId(liveId);
|
|
|
+ Company company = companyMapper.selectCompanyById(companyId);
|
|
|
+ CompanyUser companyUser = companyUserMapper.selectCompanyUserById(companyUserId);
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
+ objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
|
|
+ checkAndImportFriendByDianBo(companyUserId, userId.toString(), cropId, true);
|
|
|
+ OpenImMsgDTO.Content content = new OpenImMsgDTO.Content();
|
|
|
+ OpenImMsgDTO.ImData imData = new OpenImMsgDTO.ImData();
|
|
|
+ PayloadDTO payload = new PayloadDTO();
|
|
|
+ PayloadDTO.Extension extension = new PayloadDTO.Extension();
|
|
|
+ payload.setData("live");
|
|
|
+ extension.setTitle(title);
|
|
|
+ extension.setAppRealLink(url);
|
|
|
+ extension.setSendTime(new Date());
|
|
|
+ extension.setLiveId(liveId);
|
|
|
+ if (company != null) {
|
|
|
+ extension.setCompanyId(company.getCompanyId());
|
|
|
+ }
|
|
|
+ extension.setCompanyUserId(companyUserId);
|
|
|
+ extension.setLive(live);
|
|
|
+ payload.setExtension(extension);
|
|
|
+ imData.setPayload(payload);
|
|
|
+ String imJson = objectMapper.writeValueAsString(imData);
|
|
|
+ content.setData(imJson);
|
|
|
+
|
|
|
+ OpenImMsgDTO.OfflinePushInfo offlinePushInfo = new OpenImMsgDTO.OfflinePushInfo();
|
|
|
+ offlinePushInfo.setDesc(title);
|
|
|
+ if (companyUser != null) {
|
|
|
+ offlinePushInfo.setTitle(StringUtils.isNotEmpty(companyUser.getNickName()) ? companyUser.getNickName() : companyUser.getUserName());
|
|
|
+ }
|
|
|
+
|
|
|
+ OpenImMsgDTO openImMsgDTO = new OpenImMsgDTO();
|
|
|
+ openImMsgDTO.setOfflinePushInfo(offlinePushInfo);
|
|
|
+ openImMsgDTO.setContent(content);
|
|
|
+ openImMsgDTO.setSendID("C" + companyUserId);
|
|
|
+ openImMsgDTO.setRecvID("U" + userId);
|
|
|
+ openImMsgDTO.setContentType(110);
|
|
|
+ openImMsgDTO.setSessionType(1);
|
|
|
+ log.info("app直播消息: {}", JSON.toJSONString(openImMsgDTO));
|
|
|
+ return openIMSendMsg(openImMsgDTO);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public OpenImResponseDTO sendPackageUtil(String sendID, String recvID, Integer contentType, String payloadData,String packageName,String packageId){
|
|
|
try {
|