Ver código fonte

Merge branch 'saas_2022_05_17_activity' of http://git.dayaedu.com/yonge/mec into zouxuan-2022-05-27

zouxuan 3 anos atrás
pai
commit
06f345d5fd

+ 32 - 54
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -1,37 +1,5 @@
 package com.ym.mec.biz.service.impl;
 
-import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
-
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Random;
-import java.util.Set;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import com.ym.mec.common.entity.*;
-import net.coobird.thumbnailator.Thumbnails;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-
 import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
@@ -52,6 +20,9 @@ import com.ym.mec.biz.dal.enums.SendStatusEnum;
 import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.ImMessageDto;
+import com.ym.mec.common.entity.ImPrivateMessage;
+import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
@@ -65,8 +36,27 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.string.MessageFormatter;
+import net.coobird.thumbnailator.Thumbnails;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
 
 import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.*;
+import java.util.Map.Entry;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
 
 @Service
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
@@ -234,22 +224,12 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	public void batchSendImMessage(MessageTypeEnum type, String senderId,String extra, String[] targetIds, String url, Object... args) {
-		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(type);
-		if (messageConfig == null) {
-			throw new BizException("消息类型错误");
-		}else if(messageConfig.getSendFlag() == null || messageConfig.getSendFlag() == 0){
-			return;
-		}
-		String content = MessageFormatter.arrayFormat(messageConfig.getContent(), args);
-		if(StringUtils.isNotEmpty(url)){
-			content += url;
-		}
-		ImPrivateMessage privateMessage = new ImPrivateMessage();
-		privateMessage.setObjectName("RC:TxtMsg");
-		privateMessage.setTargetId(targetIds);
-		privateMessage.setSenderId(senderId);
-		privateMessage.setContent(new ImTxtMessage(content,extra));
-		imFeignService.privateSend(privateMessage);
+		String messageContent = checkMessageConfig(type);
+		String content = getContent(messageContent,url, args);
+		ExecutorService executor = Executors.newCachedThreadPool();
+		CompletableFuture.runAsync(()->{
+			imFeignService.privateSend(getImGroupMessage("RC:TxtMsg",senderId,targetIds,content,extra));
+		},executor);
 	}
 
 	@Override
@@ -361,12 +341,10 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if(sysUser == null){
 			throw new BizException("用户信息获取失败");
 		}
-		ImPrivateMessage privateMessage = new ImPrivateMessage();
-		privateMessage.setObjectName("RC:TxtMsg");
-		privateMessage.setTargetId(studentId.split(","));
-		privateMessage.setSenderId(sysUser.getId().toString());
-		privateMessage.setContent(new ImTxtMessage(content,null));
-		imFeignService.privateSend(privateMessage);
+		ExecutorService executor = Executors.newCachedThreadPool();
+		CompletableFuture.runAsync(()->{
+			imFeignService.privateSend(getImGroupMessage("RC:TxtMsg",sysUser.getId().toString(),studentId.split(","),content,null));
+		},executor);
 	}
 
 	@Override

+ 14 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempLittleArtistTrainingCampServiceImpl.java

@@ -10,6 +10,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TempLittleArtistTrainingCampDao;
 import com.ym.mec.biz.dal.dto.TempLittleArtistTrainingCampDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
 import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCampUserRelation;
 import com.ym.mec.biz.dal.vo.TempCampUserTrainingDetailVo;
@@ -17,15 +18,18 @@ import com.ym.mec.biz.dal.vo.TempCampUserTrainingPlayTimeVo;
 import com.ym.mec.biz.dal.vo.TempCampUserVo;
 import com.ym.mec.biz.dal.vo.TempUserTrainingTimeDetailVo;
 import com.ym.mec.biz.service.ImGroupService;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.TempLittleArtistTrainingCampService;
 import com.ym.mec.biz.service.TempLittleArtistTrainingCampUserRelationService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.WrapperUtil;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.excel.POIUtil;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -61,6 +65,8 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
     private TempLittleArtistTrainingCampUserRelationService tempLittleArtistTrainingCampUserRelationService;
     @Autowired
     private ImGroupService imGroupService;
+    @Autowired
+    private SysConfigService sysConfigService;
 
     @Override
     public TempLittleArtistTrainingCampDao getDao() {
@@ -409,9 +415,15 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         if (CollectionUtils.isEmpty(groupCampList)) {
             return;
         }
+        TenantContextHolder.setTenantId(1);
         String groupType = "TRAINING";
         //每个房间最大人数
-        BigDecimal maxUserNum = new BigDecimal("1");
+        BigDecimal maxUserNum = Optional.of("temp_little_artist_training_camp_grouping_num")
+                .map(sysConfigService::findByParamName)
+                .filter(a -> StringUtils.isNotBlank(a.getParanValue()))
+                .map(SysConfig::getParanValue)
+                .map(BigDecimal::new)
+                .orElse(new BigDecimal("60"));
         //key-训练营id  value-训练营集合
         groupCampList.forEach(camp -> {
             List<String> imGroupIds = new ArrayList<>();
@@ -453,6 +465,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
             camp.setImGroupIds(String.join(",", imGroupIds));
             this.updateById(camp);
         });
+        TenantContextHolder.clearTenantId();
     }
 
     /**

+ 1 - 1
mec-client-api/src/main/java/com/ym/mec/im/ImFeignService.java

@@ -112,7 +112,7 @@ public interface ImFeignService {
      * @return
      */
     @PostMapping(value = "private/send")
-    Object privateSend(@RequestBody ImPrivateMessage privateMessage);
+    Object privateSend(@RequestBody ImMessageDto imMessageDto);
 
     @PostMapping(value = "group/send")
     Object groupSend(@RequestBody ImMessageDto imMessageDto);

+ 1 - 1
mec-client-api/src/main/java/com/ym/mec/im/fallback/ImFeignServiceFallback.java

@@ -61,7 +61,7 @@ public class ImFeignServiceFallback implements ImFeignService {
     }
 
     @Override
-    public Object privateSend(ImPrivateMessage privateMessage) {
+    public Object privateSend(ImMessageDto imMessageDto) {
         return null;
     }
 

+ 6 - 6
mec-im/src/main/java/com/ym/controller/PrivateController.java

@@ -1,5 +1,6 @@
 package com.ym.controller;
 
+import com.ym.mec.common.entity.ImMessageDto;
 import com.ym.mec.common.entity.ImPrivateMessage;
 import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.service.MessageService;
@@ -24,14 +25,13 @@ public class PrivateController {
     MessageService messageService;
 
     @RequestMapping(value = "/send", method = RequestMethod.POST)
-    public Object send(@RequestBody ImPrivateMessage imPrivateMessage) throws Exception {
+    public Object send(@RequestBody ImMessageDto imMessageDto) throws Exception {
         PrivateMessage privateMessage = new PrivateMessage();
-        ImTxtMessage content = imPrivateMessage.getContent();
-        TxtMessage txtMessage = new TxtMessage(content.getMessageContent(),content.getExtra());
+        TxtMessage txtMessage = new TxtMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra());
         privateMessage.setContent(txtMessage);
-        privateMessage.setTargetId(imPrivateMessage.getTargetId());
-        privateMessage.setSenderId(imPrivateMessage.getSenderId());
-        privateMessage.setObjectName(imPrivateMessage.getObjectName());
+        privateMessage.setTargetId(imMessageDto.getTargetIds());
+        privateMessage.setSenderId(imMessageDto.getSenderId());
+        privateMessage.setObjectName(imMessageDto.getObjectName());
         privateMessage.setIsIncludeSender(1);
         return messageService.privateSend(privateMessage);
     }

+ 1 - 1
mec-im/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-    <property name="LOG_HOME" value="/mdata/logs/im-%d{yyyy-MM-dd_HH}-%i.log" />
+    <property name="LOG_HOME" value="/Users/chenxiaoyu/Documents/logs/im-%d{yyyy-MM-dd_HH}-%i.log" />
     <property name="CONSOLE_LOG_PATTERN"
               value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />