Commit 9198b035 by fudahua

素材列表fix

parent 7ac53d64
package com.gic.haoban.manage.api.service;
import com.gic.haoban.manage.api.dto.CheckFriendSettingDTO;
import com.gic.haoban.manage.api.dto.ExternalUserDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
/**
* Created 2021/5/31.
......@@ -21,5 +23,11 @@ public interface CheckQywxSettingApiService {
*/
public CheckFriendSettingDTO getFriendSetting();
/**
* 校验保存
*
* @param externalUserDTO
* @param dto
*/
public void saveFriendCallback(String wxEnterpriseId, ExternalUserDTO externalUserDTO, MemberUnionidRelatedDTO dto);
}
package com.gic.haoban.manage.service.service.out.impl;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.haoban.manage.api.dto.CheckFriendSettingDTO;
import com.gic.haoban.manage.api.dto.ExternalUserDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.redis.data.util.RedisUtil;
import org.redisson.api.RBucket;
import org.redisson.api.RMap;
import org.redisson.api.RedissonClient;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import static org.slf4j.LoggerFactory.getLogger;
/**
* Created 2021/5/31.
*
* @author hua
*/
@Service
public class CheckQywxSettingApiServiceImpl implements CheckQywxSettingApiService {
private static final Logger logger = getLogger(CheckQywxSettingApiServiceImpl.class);
private static final String FRIEND_SETTING_KEY = "haoban-check-friend-setting";
private static final String FRIEND_SETTING_VAL_KEY = "haoban-check-friend-setting-val";
private static final String SELF_APP = "selfSuiteId";
private static final String THIRD_APP = "thirdSuiteId";
private static final String ALERT_KEY = "friend-alert:";
private static final String ALERT_URL = "https://oapi.dingtalk.com/robot/send?access_token=435c0ddaacda849e145b64cc3a83c37f742105d88cf27b719b2dbef167436ad4";
@Autowired
private WxEnterpriseService wxEnterpriseService;
@Override
public void setFriendSetting(String wxEnterpriseId, String name) {
......@@ -19,10 +52,63 @@ public class CheckQywxSettingApiServiceImpl implements CheckQywxSettingApiServic
checkFriendSettingDTO.setName(name);
checkFriendSettingDTO.setWxEnterpriseId(wxEnterpriseId);
RedisUtil.setCache(FRIEND_SETTING_KEY, checkFriendSettingDTO);
RedissonClient redisClient = RedisUtil.getRedisClient();
RMap<Object, Object> map = redisClient.getMap(FRIEND_SETTING_VAL_KEY);
map.delete();
}
@Override
public CheckFriendSettingDTO getFriendSetting() {
return RedisUtil.getCache(FRIEND_SETTING_KEY, CheckFriendSettingDTO.class);
}
@Override
public void saveFriendCallback(String wxEnterpriseId, ExternalUserDTO externalUserDTO, MemberUnionidRelatedDTO dto) {
if (null == externalUserDTO) {
messageAlert(wxEnterpriseId, dto);
//todo 告警
return;
}
CheckFriendSettingDTO friendSetting = this.getFriendSetting();
if (!friendSetting.getName().equals(externalUserDTO.getName())) {
return;
}
RedissonClient redisClient = RedisUtil.getRedisClient();
RMap<Object, Object> map = redisClient.getMap(FRIEND_SETTING_VAL_KEY);
if (SELF_APP.equals(dto.getSuiteid())) {
map.put(SELF_APP, externalUserDTO);
} else {
map.put(THIRD_APP, externalUserDTO);
}
}
/**
* 告警
*
* @param wxEnterpriseId
* @param dto
*/
private void messageAlert(String wxEnterpriseId, MemberUnionidRelatedDTO dto) {
String key = ALERT_KEY + wxEnterpriseId;
RBucket<Object> bucket = RedisUtil.getRedisClient().getBucket(key);
boolean b = bucket.trySet(1, 60L, TimeUnit.SECONDS);
if (!b) {
return;
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
ProviderLocalTag providerLocalTag = ProviderLocalTag.tag.get();
String traceId = providerLocalTag.traceId;
String traceUrl = "http://212.64.4.231:8780/damo-stats/mongodb/getLogMessagesView?trace_id=" + traceId;
String title = wxEnterpriseDTO.getCorpName() + ": 加好友异常";
Map<String, Object> map = new HashMap<>();
Map<String, Object> link = new HashMap<>();
map.put("msgtype", "link");
link.put("title", title);
link.put("text", JSONObject.toJSONString(dto));
link.put("messageUrl", traceUrl);
map.put("link", link);
String post = HttpUtil.post(ALERT_URL, JSONObject.toJSONString(map));
logger.info("alert:{}", post);
}
}
......@@ -22,6 +22,7 @@ import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.api.service.MaterialApiService;
import com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService;
......@@ -125,6 +126,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Autowired
private TabHaobanWelcomeMapper welcomeMapper;
@Autowired
private CheckQywxSettingApiService checkQywxSettingApiService;
@Override
public void dealQywxExternalUser(String params) {
log.info("回调:{}", params);
......@@ -674,6 +678,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (wxEnterprise == null) {
return null;
}
//校验friend
CheckFriendSettingDTO friendSettingDTO = checkQywxSettingApiService.getFriendSetting();
String wxEnterpriseId = wxEnterprise.getWxEnterpriseId();
String userId = dto.getWxUserId();
String suiteid = dto.getSuiteid();
......@@ -684,6 +690,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
externalUserDTO = this.getExternalUseridInfo(wxEnterpriseId, userId, dto.getExternalUserid());
}
if (externalUserDTO == null) {
checkQywxSettingApiService.saveFriendCallback(wxEnterpriseId, externalUserDTO, dto);
log.info("【新增外部联系人回调】unionIdJson=null");
return null;
}
......
......@@ -627,6 +627,14 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
@Override
public boolean setClerkEditFlag(String wxEnterprieseRelatedId, int clerkEditFlag) {
TabHaobanWxEnterpriseRelated tabHaobanWxEnterpriseRelated = wxEnterpriseRelatedService.getByGicEnterpriseIdByEnterpriseRelatedId(wxEnterprieseRelatedId);
if (tabHaobanWxEnterpriseRelated == null) {
return false;
}
if (tabHaobanWxEnterpriseRelated.getWxEnterpriseType() == 1) {
logger.info("非总部不能设置好友");
return false;
}
wxEnterpriseRelatedService.setClerkEdit(wxEnterprieseRelatedId, clerkEditFlag);
return true;
}
......
......@@ -5,6 +5,7 @@ import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.FlushStoreMqDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.api.enums.ChannelCodeEnum;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.service.service.MemberUnionRelatedService;
......@@ -55,6 +56,8 @@ public class ServiceTest {
@Autowired
private MaterialApiService materialApiService;
@Autowired
private CheckQywxSettingApiService checkQywxSettingApiService;
private final ExecutorService pools = Executors.newFixedThreadPool(50);
......@@ -73,9 +76,11 @@ public class ServiceTest {
// wxEnterpriseRelatedApiService.flushBindStoreByEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000",
// "-1", "-1", ChannelCodeEnum.SYNC_UNBIND.getCode());
// }
wxEnterpriseRelatedApiService.flushBindStoreByEnterpriseId("ff808081593917d90159398ec6340012",
"ca66a01b79474c40b3e7c7f93daf1a3b", "-1", ChannelCodeEnum.SYNC_UNBIND.getCode());
MemberUnionidRelatedDTO dto = new MemberUnionidRelatedDTO();
dto.setSuiteid("selfSuiteId");
checkQywxSettingApiService.saveFriendCallback("ca66a01b79474c40b3e7c7f93daf1a3b", null, dto);
// wxEnterpriseRelatedApiService.flushBindStoreByEnterpriseId("ff808081593917d90159398ec6340012",
// "ca66a01b79474c40b3e7c7f93daf1a3b", "-1", ChannelCodeEnum.SYNC_UNBIND.getCode());
// List<String> ids = new ArrayList<>();
// ids.add("8f5ddb9df0a54332acfa2d5804e90c64");
......
......@@ -850,8 +850,12 @@ public class WxEnterpriseController extends WebBaseController{
logger.info("缺少参数");
return resultResponse(HaoBanErrCode.ERR_2);
}
wxEnterpriseRelatedApiService.setClerkEditFlag(wxEnterprieseRelatedId, clerkEditFlag);
boolean b = wxEnterpriseRelatedApiService.setClerkEditFlag(wxEnterprieseRelatedId, clerkEditFlag);
if (b) {
return resultResponse(HaoBanErrCode.ERR_1);
} else {
return resultResponse(HaoBanErrCode.ERR_100032);
}
}
}
......@@ -117,6 +117,7 @@ public enum HaoBanErrCode {
ERR_100021(100021,"创建任务失败"),
ERR_100031(100031, "该小程序已经绑定过,不能重复绑定"),
ERR_100032(100032, "代理不能设置导购编辑权限"),
ERR_DEFINE(-888, "自定义错误"),
ERR_OTHER(-999, "未知错误code");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment