Explorar el Código

添加修改企业微信客户群活码接口

zoujiajian hace 3 años
padre
commit
c87657a0b5

+ 40 - 0
netflix-dao/src/main/java/com/cyksj/model/request/corp/CorpGroupConfig.java

@@ -0,0 +1,40 @@
+package com.cyksj.model.request.corp;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/*
+ *项目名: netflix
+ *文件名: A
+ *创建者: JavaZou
+ *创建时间:2023/7/7 12:28
+ */
+@Getter
+@Setter
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CorpGroupConfig {
+	@NotEmpty
+	private String config_id;
+
+	@NotEmpty
+	private int scene;
+
+	private String remark;
+
+	@NotEmpty
+	private int auto_create_room;
+
+	private String room_base_name;
+
+	private int room_base_id;
+
+	@NotEmpty
+	private List<String> chat_id_list;
+
+	private String state;
+}
+

+ 4 - 0
netflix-service/src/main/java/com/cyksj/service/corp/CropChatService.java

@@ -1,5 +1,7 @@
 package com.cyksj.service.corp;
 
+import com.cyksj.model.request.corp.CorpGroupConfig;
+
 import java.util.List;
 
 /*
@@ -21,4 +23,6 @@ public interface CropChatService {
 	String getGroupsDetail(String chatId) throws Exception;
 
 	String getCropWxChatGroupByGoodsId(Long goodsId) throws Exception;
+
+	void updateGroupsConfig(CorpGroupConfig config) throws Exception;
 }

+ 3 - 0
netflix-service/src/main/java/com/cyksj/service/corp/WxCorpOps.java

@@ -2,6 +2,7 @@ package com.cyksj.service.corp;
 
 import cn.hutool.json.JSONObject;
 import com.cyksj.dto.CorpOauth2UserInfo;
+import com.cyksj.model.request.corp.CorpGroupConfig;
 import com.cyksj.model.request.corp.CorpMsgTemplate;
 import com.cyksj.model.response.corp.*;
 
@@ -133,4 +134,6 @@ public interface WxCorpOps {
 	 * 获取标签组下所有标签
 	 */
 	List<CorpUserExternalTagGroupInfo.TagGroup> getAllCorpTagByGroupsId(String groupId,String corpId) throws Exception;
+
+	void updateGroupsConfig(CorpGroupConfig config) throws Exception;
 }

+ 6 - 0
netflix-service/src/main/java/com/cyksj/service/corp/impl/CropChatServiceImpl.java

@@ -6,6 +6,7 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.mapper.corp.CorpGroupChatMapper;
 import com.cyksj.mapper.corp.WxCorpAppMapper;
 import com.cyksj.model.entity.CorpGroupChat;
+import com.cyksj.model.request.corp.CorpGroupConfig;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.corp.CropChatService;
 import com.cyksj.service.corp.WxCorpOps;
@@ -69,4 +70,9 @@ public class CropChatServiceImpl implements CropChatService {
 		redisService.setNx(RedisService.key.CORP_CHAT_GROUP_CODE.getName() + goodsId, configId, RedisService.key.CORP_CHAT_GROUP_CODE.getTimeout());
 		return wxCorpOps.getCorpChatGroups(null, configId);
 	}
+
+	@Override
+	public void updateGroupsConfig(CorpGroupConfig config) throws Exception {
+		wxCorpOps.updateGroupsConfig(config);
+	}
 }

+ 18 - 0
netflix-service/src/main/java/com/cyksj/service/corp/impl/WxCorpOpsImpl.java

@@ -15,6 +15,7 @@ import com.cyksj.config.corp.YHLXWxCorpConfig;
 import com.cyksj.dto.CorpOauth2UserInfo;
 import com.cyksj.dto.RedisKey;
 import com.cyksj.model.entity.WxCorpApp;
+import com.cyksj.model.request.corp.CorpGroupConfig;
 import com.cyksj.model.request.corp.CorpMsgTemplate;
 import com.cyksj.model.response.OffiaccountJsTicket;
 import com.cyksj.model.response.UserExternalContactList;
@@ -257,6 +258,7 @@ public class WxCorpOpsImpl implements WxCorpOps {
 		jsonObject.putOpt("scene", 2);
 		jsonObject.putOpt("chat_id_list", chatIds);
 		jsonObject.putOpt("room_base_name", "Ai银河课堂 MJ SD教程分享");
+		//auto_create_room当群满了后,是否自动新建群。0-否;1-是。 默认为1
 		HttpResponse<byte[]> res =
 				J11HttpC.custom()
 						.ofPost()
@@ -338,6 +340,22 @@ public class WxCorpOpsImpl implements WxCorpOps {
 		return tagGroups;
 	}
 
+	@Override
+	public void updateGroupsConfig(CorpGroupConfig config) throws Exception {
+		String url = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/groupchat/update_join_way?access_token=" + getAccessToken(null);
+
+		HttpResponse<String> res =
+				J11HttpC.custom()
+						.ofPost()
+						.url(url)
+						.headers(J11HttpC.ReqType.raw_json)
+						.body(HttpRequest.BodyPublishers.ofString(Jsons.toJson(config), IoKit.Charsets.UTF_8.getCharset()))
+						.send(HttpResponse.BodyHandlers.ofString());
+		if (200 != res.statusCode()) {
+			throw BusinessRuntimeException.getInstance("更新企业微信客户群配置失败: " + res.body());
+		}
+	}
+
 	@Override
 	public CorpBaseResult editCorpTag(JSONObject params) throws Exception {
 		String url = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/edit_corp_tag?access_token=" + getAccessToken(null);

+ 11 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/CorpChatController.java

@@ -2,8 +2,10 @@ package com.cyksj.web.controller.manage.corp;
 
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.model.request.corp.CorpGroupConfig;
 import com.cyksj.service.corp.CropChatService;
 import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -57,6 +59,15 @@ public class CorpChatController {
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
 
+	/**
+	 * 更新配置客户群
+	 */
+	@PutMapping("/put/groups")
+	public Result<String> updateGroupsConfig(@RequestBody @Validated CorpGroupConfig config) throws Exception {
+		cropChatService.updateGroupsConfig(config);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
 }