Browse Source

违规视频同步

wangyunpeng 3 days ago
parent
commit
5207bef8e0

+ 10 - 0
api-module/src/main/java/com/tzld/piaoquan/api/component/WeComThirdPartyApiClient.java

@@ -139,6 +139,16 @@ public class WeComThirdPartyApiClient {
         return postRequest("/wxwork/SetChatroomInvite", request);
     }
 
+    /**
+     * 修改群名
+     *
+     * @param request 请求体
+     * @return 响应结果
+     */
+    public String updateRoomName(UpdateRoomNameRequest request) {
+        return postRequest("/wxwork/UpdateRoomName", request);
+    }
+
     /**
      * 禁止群内添加和禁止修改群名
      *

+ 6 - 0
api-module/src/main/java/com/tzld/piaoquan/api/controller/WeComThirdPartyController.java

@@ -90,4 +90,10 @@ public class WeComThirdPartyController {
         return CommonResponse.success();
     }
 
+    @PostMapping("/updateRoomName")
+    public CommonResponse<Void> updateRoomName(@RequestBody UpdateRoomNameRequest request) {
+        service.updateRoomName(request);
+        return CommonResponse.success();
+    }
+
 }

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

@@ -48,6 +48,8 @@ public class WeComCreateRoomJob {
     private Integer dailyMaxNum;
     @Value("${create.room.daily.max.add.user.times:5}")
     private Integer dailyMaxAddUserTimes;
+    @Value("${create.room.name.prefix:票圈快看}")
+    private String roomNamePrefix;
 
     private final static ExecutorService pool = new ThreadPoolExecutor(5, 5, 0L, TimeUnit.SECONDS,
             new LinkedBlockingQueue<>(1000),
@@ -93,10 +95,10 @@ public class WeComCreateRoomJob {
                 .map(o -> {
                     try {
                         String roomName = o.getName();
-                        if (!roomName.contains("票圈快讯")) {
+                        if (!roomName.contains(roomNamePrefix)) {
                             return null;
                         }
-                        return Integer.parseInt(roomName.replace("票圈快讯", ""));
+                        return Integer.parseInt(roomName.replace(roomNamePrefix, ""));
                     } catch (Exception e) {
                         return null;
                     }
@@ -163,7 +165,7 @@ public class WeComCreateRoomJob {
         // 群创建
         CreateRoomWxRequest request = new CreateRoomWxRequest();
         request.setUuid(staff.getThirdUuid());
-        request.setRoomName("票圈快讯" + (++roomNum));
+        request.setRoomName(roomNamePrefix + (++roomNum));
         request.setVids(vids);
         CreateRoomWxResponse createRoomWxResponse = weComThirdPartyService.createRoom(request);
         if (Objects.isNull(createRoomWxResponse)) {

+ 10 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/UpdateRoomNameRequest.java

@@ -0,0 +1,10 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import lombok.Data;
+
+@Data
+public class UpdateRoomNameRequest {
+    private String uuid;
+    private Long roomid;
+    private String roomname;
+}

+ 9 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/UpdateRoomNameResponse.java

@@ -0,0 +1,9 @@
+package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
+
+import lombok.Data;
+
+@Data
+public class UpdateRoomNameResponse {
+    private Long roomid;
+    private String roomname;
+}

+ 2 - 0
api-module/src/main/java/com/tzld/piaoquan/api/service/WeComThirdPartyService.java

@@ -41,6 +41,8 @@ public interface WeComThirdPartyService {
 
     CreateRoomWxResponse createRoom(CreateRoomWxRequest request);
 
+    void updateRoomName(UpdateRoomNameRequest request);
+
     List<AntiSpamRuleResponse.AntiSpamRule> queryCRMAntiSpamRule(QueryCRMAntiSpamRuleRequest request);
 
     void updateRoomSendStatus(UpdateRoomSendStatusRequest request);

+ 10 - 0
api-module/src/main/java/com/tzld/piaoquan/api/service/impl/WeComThirdPartyServiceImpl.java

@@ -342,6 +342,16 @@ public class WeComThirdPartyServiceImpl implements WeComThirdPartyService {
         return commonResponse.getData();
     }
 
+    @Override
+    public void updateRoomName(UpdateRoomNameRequest request) {
+        String response = apiClient.updateRoomName(request);
+        CommonResponse<UpdateRoomNameResponse> commonResponse =
+                JSONObject.parseObject(response, new TypeReference<CommonResponse<UpdateRoomNameResponse>>() {});
+        if (commonResponse.getErrcode() != 0) {
+            log.error("WeComThirdPartyService updateRoomName failed, request: {}, response: {}", request, response);
+        }
+    }
+
     @Override
     public List<AntiSpamRuleResponse.AntiSpamRule> queryCRMAntiSpamRule(QueryCRMAntiSpamRuleRequest request) {
         List<AntiSpamRuleResponse.AntiSpamRule> result = new ArrayList<>();

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

@@ -1,18 +1,32 @@
 package com.tzld.piaoquan.api;
 
+import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomMapper;
+import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComStaffMapper;
 import com.tzld.piaoquan.api.job.wecom.thirdpart.WeComAccountJob;
 import com.tzld.piaoquan.api.job.wecom.thirdpart.WeComCreateRoomJob;
 import com.tzld.piaoquan.api.job.wecom.thirdpart.WeComSendMsgJob;
 import com.tzld.piaoquan.api.job.wecom.thirdpart.WeComUserDetailJob;
+import com.tzld.piaoquan.api.model.param.wecom.thirdpart.UpdateRoomNameRequest;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoom;
+import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaff;
+import com.tzld.piaoquan.api.service.WeComThirdPartyService;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.util.List;
+
 @SpringBootTest(classes = GrowthServerApplication.class)
 @Slf4j
 public class WeComThirdPartTest {
 
+    @Autowired
+    WeComThirdPartyService weComThirdPartyService;
+    @Autowired
+    ThirdPartWeComStaffMapper staffMapper;
+    @Autowired
+    ThirdPartWeComRoomMapper roomMapper;
     @Autowired
     WeComSendMsgJob weComSendMsgJob;
     @Autowired
@@ -52,4 +66,25 @@ public class WeComThirdPartTest {
         weComCreateRoomJob.autoAddRoomUserJob("");
     }
 
+    @Test
+    public void updateRoomName() {
+        ThirdPartWeComStaff staff = weComThirdPartyService.getStaffByUuid("796ab5e7ccfd81ffde0d810e5205e656");
+        List<ThirdPartWeComRoom> roomList = weComThirdPartyService.getAllStaffRoomList(staff.getId());
+        String roomNamePrefix = "票圈快看";
+        int index = 1;
+        for (ThirdPartWeComRoom room : roomList) {
+            if (room.getName().contains(roomNamePrefix)) {
+                continue;
+            }
+            String name = roomNamePrefix + index++;
+            room.setName(name);
+            roomMapper.updateByPrimaryKeySelective(room);
+            UpdateRoomNameRequest request = new UpdateRoomNameRequest();
+            request.setUuid(staff.getThirdUuid());
+            request.setRoomid(Long.valueOf(room.getThirdRoomId()));
+            request.setRoomname(name);
+            weComThirdPartyService.updateRoomName(request);
+        }
+    }
+
 }