Pārlūkot izejas kodu

autoOpenSendStatusJob

wangyunpeng 1 nedēļu atpakaļ
vecāks
revīzija
a07bcf4799

+ 30 - 3
api-module/src/main/java/com/tzld/piaoquan/api/job/wecom/thirdpart/WeComSendMsgJob.java

@@ -6,6 +6,7 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.tzld.piaoquan.api.component.VideoApiService;
 import com.tzld.piaoquan.api.dao.mapper.contentplatform.ext.ContentPlatformPlanMapperExt;
 import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComMsgMapper;
+import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomMapper;
 import com.tzld.piaoquan.api.model.param.wecom.thirdpart.CdnUploadImgLinkRequest;
 import com.tzld.piaoquan.api.model.param.wecom.thirdpart.CdnUploadImgLinkResponse;
 import com.tzld.piaoquan.api.model.param.wecom.thirdpart.SendAppMsgRequest;
@@ -54,7 +55,9 @@ public class WeComSendMsgJob {
     @Autowired
     ContentPlatformPlanMapperExt planMapperExt;
     @Autowired
-    ThirdPartWeComMsgMapper thirdPartWeComMsgMapper;
+    ThirdPartWeComRoomMapper roomMapper;
+    @Autowired
+    ThirdPartWeComMsgMapper msgMapper;
 
     @Value("${send.room.msg.video.min.score:3}")
     private Double videoMinScore;
@@ -68,6 +71,8 @@ public class WeComSendMsgJob {
     private Map<Long, JSONObject> videoSourceStaffConfig;
     @ApolloJsonValue("${send.room.msg.staff.put.scene.config:{}}")
     private Map<Long, String> staffPutSceneConfig;
+    @ApolloJsonValue("${send.room.msg.auto.open.staff:[]}")
+    private List<Long> autoOpenStaffList;
 
     private final static ExecutorService pool = new ThreadPoolExecutor(5, 5, 0L, TimeUnit.SECONDS,
             new LinkedBlockingQueue<>(1000),
@@ -249,7 +254,7 @@ public class WeComSendMsgJob {
         ThirdPartWeComMsgExample msgExample = new ThirdPartWeComMsgExample();
         msgExample.createCriteria().andSendUseridEqualTo(roomId)
                 .andCreateTimeGreaterThan(DateUtil.getDaysAgoDate(duplicateDays));
-        List<ThirdPartWeComMsg> msgList = thirdPartWeComMsgMapper.selectByExample(msgExample);
+        List<ThirdPartWeComMsg> msgList = msgMapper.selectByExample(msgExample);
         return msgList.stream().map(ThirdPartWeComMsg::getVideoId).collect(Collectors.toList());
     }
 
@@ -272,6 +277,28 @@ public class WeComSendMsgJob {
         msg.setMd5(request.getMd5());
         msg.setAeskey(request.getAeskey());
         msg.setFilesize(request.getFileSize());
-        thirdPartWeComMsgMapper.insertSelective(msg);
+        msgMapper.insertSelective(msg);
+    }
+
+
+    @XxlJob("autoOpenSendStatusJob")
+    public ReturnT<String> autoOpenSendStatusJob(String param) {
+        List<ThirdPartWeComStaff> activeStaffList = weComThirdPartyService.getActiveStaffList();
+        for (ThirdPartWeComStaff staff : activeStaffList) {
+            if (!autoOpenStaffList.contains(staff.getThirdStaffId())) {
+                continue;
+            }
+            List<ThirdPartWeComRoom> roomList = weComThirdPartyService.getStaffRoomList(staff.getId());
+            for (ThirdPartWeComRoom room : roomList) {
+                if (room.getSendStatus() == 1) {
+                    continue;
+                }
+                if (room.getMemberCount() > 20) {
+                    room.setSendStatus(1);
+                    roomMapper.updateByPrimaryKeySelective(room);
+                }
+            }
+        }
+        return ReturnT.SUCCESS;
     }
 }

+ 5 - 0
api-module/src/test/java/com/tzld/piaoquan/api/WeComThirdPartTest.java

@@ -56,6 +56,11 @@ public class WeComThirdPartTest {
         weComSendMsgJob.autoSendAppMsg("");
     }
 
+    @Test
+    public void autoOpenSendStatusJob() {
+        weComSendMsgJob.autoOpenSendStatusJob("");
+    }
+
     @Test
     public void autoCreateRoomJob() {
         weComCreateRoomJob.autoCreateRoomJob("");