|
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.google.gson.JsonArray;
|
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonObject;
|
|
|
import com.google.gson.JsonParser;
|
|
import com.google.gson.JsonParser;
|
|
|
import com.linkwechat.common.core.domain.AjaxResult;
|
|
import com.linkwechat.common.core.domain.AjaxResult;
|
|
@@ -543,35 +544,38 @@ public class WeGroupFissionServiceImpl extends ServiceImpl<WeGroupFissionMapper,
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public String getChartQrCodeByChatId(String chatId, String activityId) {
|
|
public String getChartQrCodeByChatId(String chatId, String activityId) {
|
|
|
- WeGroupFissionQrCodeRecord weGroupFissionQrCodeRecord = weGroupFissionQrCodeRecordService.findEntityByActivityIdAndShareId(activityId, null);
|
|
|
|
|
|
|
+ WeGroupFissionQrCodeRecord weGroupFissionQrCodeRecord = weGroupFissionQrCodeRecordService.findEntityByActivityIdAndChatId(activityId,chatId);
|
|
|
WxCpExternalContactService service = wxCpService.getExternalContactService();
|
|
WxCpExternalContactService service = wxCpService.getExternalContactService();
|
|
|
WxCpContactWayInfo contactWayInfo = new WxCpContactWayInfo();
|
|
WxCpContactWayInfo contactWayInfo = new WxCpContactWayInfo();
|
|
|
WxCpContactWayInfo.ContactWay contactWay = new WxCpContactWayInfo.ContactWay();
|
|
WxCpContactWayInfo.ContactWay contactWay = new WxCpContactWayInfo.ContactWay();
|
|
|
- // ========== 基础必填参数(内部类已有属性) ==========
|
|
|
|
|
// 类型:MULTI(2) 表示群聊(SINGLE(1)是单人)
|
|
// 类型:MULTI(2) 表示群聊(SINGLE(1)是单人)
|
|
|
contactWay.setType(WxCpContactWayInfo.TYPE.MULTI);
|
|
contactWay.setType(WxCpContactWayInfo.TYPE.MULTI);
|
|
|
- // 场景:QRCODE(2) 对应接口的「链接入群」场景(枚举命名虽为二维码,但值是2,接口兼容)
|
|
|
|
|
|
|
+ // 场景:QRCODE(2) 对应接口的「链接入群」场景
|
|
|
contactWay.setScene(WxCpContactWayInfo.SCENE.QRCODE);
|
|
contactWay.setScene(WxCpContactWayInfo.SCENE.QRCODE);
|
|
|
// 自定义状态值(关联你的裂变记录ID)
|
|
// 自定义状态值(关联你的裂变记录ID)
|
|
|
contactWay.setState(weGroupFissionQrCodeRecord.getId().toString());
|
|
contactWay.setState(weGroupFissionQrCodeRecord.getId().toString());
|
|
|
// 跳过验证:用户扫码直接入群
|
|
// 跳过验证:用户扫码直接入群
|
|
|
contactWay.setSkipVerify(Boolean.TRUE);
|
|
contactWay.setSkipVerify(Boolean.TRUE);
|
|
|
contactWayInfo.setContactWay(contactWay);
|
|
contactWayInfo.setContactWay(contactWay);
|
|
|
- // ========== 兼容群聊专属属性(SDK封装不全,手动补充JSON) ==========
|
|
|
|
|
- // 4.1.0 SDK的ContactWay类未封装roomBaseName/chatIdList等群聊属性,需手动拼接JSON
|
|
|
|
|
String baseJson = contactWayInfo.toJson();
|
|
String baseJson = contactWayInfo.toJson();
|
|
|
JsonObject jsonObject = JsonParser.parseString(baseJson).getAsJsonObject();
|
|
JsonObject jsonObject = JsonParser.parseString(baseJson).getAsJsonObject();
|
|
|
JsonObject contactWayJson = jsonObject.getAsJsonObject("contact_way");
|
|
JsonObject contactWayJson = jsonObject.getAsJsonObject("contact_way");
|
|
|
-
|
|
|
|
|
- // 添加群聊专属属性(接口要求的核心参数)
|
|
|
|
|
DistDto distDto = querySingleChatDetail(chatId);
|
|
DistDto distDto = querySingleChatDetail(chatId);
|
|
|
String roomBaseName = distDto.getName();
|
|
String roomBaseName = distDto.getName();
|
|
|
- contactWayJson.addProperty("room_base_name", roomBaseName); // 群聊基础名称
|
|
|
|
|
- contactWayJson.addProperty("room_base_id", 0); // 固定传0
|
|
|
|
|
- contactWayJson.addProperty("auto_create_room", 0); // 关闭自动建群(用已有群)
|
|
|
|
|
|
|
+ // 群聊基础名称
|
|
|
|
|
+ contactWayJson.addProperty("room_base_name", roomBaseName);
|
|
|
|
|
+ // 固定传0
|
|
|
|
|
+ contactWayJson.addProperty("room_base_id", 0);
|
|
|
|
|
+ // 关闭自动建群(用已有群)
|
|
|
|
|
+ contactWayJson.addProperty("auto_create_room", 0);
|
|
|
|
|
+ // 群聊ID列表
|
|
|
List<String> chatIdList = new ArrayList<>();
|
|
List<String> chatIdList = new ArrayList<>();
|
|
|
chatIdList.add(chatId);
|
|
chatIdList.add(chatId);
|
|
|
contactWayJson.add("chat_id_list", JsonParser.parseString(com.alibaba.fastjson.JSON.toJSONString(chatIdList)).getAsJsonArray());
|
|
contactWayJson.add("chat_id_list", JsonParser.parseString(com.alibaba.fastjson.JSON.toJSONString(chatIdList)).getAsJsonArray());
|
|
|
|
|
+ //添加部门权限为5 暂定为开发部 不能为空
|
|
|
|
|
+ JsonArray partyArray = new JsonArray();
|
|
|
|
|
+ partyArray.add(5);
|
|
|
|
|
+ contactWayJson.add("party", partyArray);
|
|
|
String finalJson = jsonObject.toString();
|
|
String finalJson = jsonObject.toString();
|
|
|
try{
|
|
try{
|
|
|
WxCpContactWayResult result = service.addContactWay(WxCpContactWayInfo.fromJson(finalJson));
|
|
WxCpContactWayResult result = service.addContactWay(WxCpContactWayInfo.fromJson(finalJson));
|