Commit b20d1531 by guojx

Merge remote-tracking branch 'origin/developer' into developer

parents f3cbbd55 a28e277f
......@@ -33,6 +33,8 @@ import com.gic.haoban.manage.api.dto.hm.HmPageDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO;
import com.gic.haoban.manage.api.service.hm.HmLinkApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.errorcode.HaoBanErrCode;
import com.gic.haoban.manage.service.pojo.bo.hm.HmLinkBO;
import com.gic.haoban.manage.service.pojo.bo.hm.HmPageBO;
......@@ -84,6 +86,8 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
private HmPageService hmPageService;
@Autowired
private HmQrcodeTempService hmQrcodeTempService;
@Autowired
private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper;
@Override
public ServiceResponse<String> getHmLinkUrl() {
......@@ -222,7 +226,6 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
memberId = mobileMemberId;
}
}
System.out.println("");
log.info("小程序获取活码memberId={}", memberId);
if (StringUtils.isNotBlank(memberId)) {
MemberDataDTO member = this.getMemberClerk(enterpriseId, memberId);
......@@ -240,6 +243,8 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
// 协管门店
List<MemberStoreClerkDataDTO> list = member.getStoreClerkRel();
if (null == hm && null != xgStore && CollectionUtils.isNotEmpty(list)) {
// 排序协管导购
list = this.sortMemberClerk(list);
List<String> storeIdList = new ArrayList<>();
// 协管导购
for (MemberStoreClerkDataDTO item : list) {
......@@ -298,17 +303,32 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
}
}
if (null != hm) {
KeyDataLinkBO bo = new KeyDataLinkBO();
bo.setUnionid(unionid);
bo.setLinkId(linkId);
bo.setHmId(hm.getHmId());
String dthmKey = this.keyDataService.saveDataForLink(enterpriseId, bo);
if (null != dthmKey) {
ServiceResponse<String> addResp = this.addQrcode(hm, dthmKey, wxEnterpriseDTO.getCorpid(), retDTO);
if (!addResp.isSuccess()) {
// 判断是否已经是好友
boolean isFriend = false;
if (null != memberId) {
String staffId = hm.getStaffId();
TabHaobanExternalClerkRelated friend = tabHaobanExternalClerkRelatedMapper
.getByMemberIdAndStaffId(staffId, enterpriseId, memberId);
if (null != friend) {
isFriend = true;
log.info("已经是好友,staffid={},memberId={}", staffId, memberId);
retDTO.setHmQrcode(hm.getWxQrcode());
}else {
retDTO.setHmQrcode(addResp.getResult());
}
}
if (!isFriend) {
KeyDataLinkBO bo = new KeyDataLinkBO();
bo.setUnionid(unionid);
bo.setLinkId(linkId);
bo.setHmId(hm.getHmId());
String dthmKey = this.keyDataService.saveDataForLink(enterpriseId, bo);
if (null != dthmKey) {
ServiceResponse<String> addResp = this.addQrcode(hm, dthmKey, wxEnterpriseDTO.getCorpid(), retDTO);
if (!addResp.isSuccess()) {
retDTO.setHmQrcode(hm.getWxQrcode());
} else {
retDTO.setHmQrcode(addResp.getResult());
}
}
}
// 查询页面
......@@ -322,10 +342,25 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
return ServiceResponse.success(retDTO);
}
private List<MemberStoreClerkDataDTO> sortMemberClerk(List<MemberStoreClerkDataDTO> list) {
List<MemberStoreClerkDataDTO> retList = new ArrayList<>();
List<String> mainClerkIdList = new ArrayList<>();
List<MemberStoreClerkDataDTO> notMainClerkList = new ArrayList<>();
for (MemberStoreClerkDataDTO item : retList) {
if (mainClerkIdList.contains(item.getClerkIdRel())) {
retList.add(item);
} else {
notMainClerkList.add(item);
}
}
retList.addAll(notMainClerkList);
return retList;
}
// 创建活码
private ServiceResponse<String> addQrcode(HmQrcodeBO hm, String key, String corpid, HmLinkWxaDTO retDTO) {
String limitQrcode = this.limitIp(hm) ;
if(StringUtils.isNotEmpty(limitQrcode)) {
String limitQrcode = this.limitIp(hm);
if (StringUtils.isNotEmpty(limitQrcode)) {
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "超限制数");
}
QywxExternalcontactDTO paramsDTO = new QywxExternalcontactDTO();
......@@ -352,21 +387,20 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
}
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "企微错误:" + dto.getErrmsg());
}
private String limitIp(HmQrcodeBO hm) {
String ipKey = "hmadd:limit:ip" ;
String ipKey = "hmadd:limit:ip";
int ipLimitCount = 1;
RRateLimiter rateLimiter = RedisUtil.getRedisClient().getRateLimiter(ipKey);
rateLimiter.trySetRate(RateType.OVERALL, ipLimitCount, 1, RateIntervalUnit.SECONDS);
if(rateLimiter.tryAcquire()) {
return null ;
if (rateLimiter.tryAcquire()) {
return null;
}
String msg = "活码调用次数告警【ip】";
DingUtils.send(msg, false);
return hm.getWxQrcode() ;
return hm.getWxQrcode();
}
private HmQrcodeBO getHmFromClerk(String clerkId, String wxEnterpriseId) {
if (StringUtils.isBlank(clerkId) || "-1".equals(clerkId)) {
return null;
......
......@@ -51,6 +51,7 @@ import com.gic.member.tag.api.service.MemberTagApiService;
import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.dto.qywx.response.QywxResponseDTO;
import com.gic.wechat.api.dto.qywx.welcome.QywxExternalcontactDTO;
import com.gic.wechat.api.dto.qywx.welcome.QywxExternalcontactResultDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -105,7 +106,6 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
@Autowired
private WelcomeService welcomeService;
@GicLogRecord(value = "新增员工活码-${#logContent}",
category = GicLogRecordCategoryEnum.HUOMA,
optType = GicLogRecordOptTypeEnum.HUOMA_ADD,
......@@ -151,12 +151,12 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
}
qywxExternalcontactDTO.setUser(userIds);
logger.info("新增活码参数:{}", JSON.toJSONString(qywxExternalcontactDTO));
//QywxExternalcontactResultDTO qywxExternalcontactResultDTO = qywxUserApiService.addContactWay(wxEnterpriseDTO.getCorpid(), config.getWxSuiteid(), qywxExternalcontactDTO);
//if (qywxExternalcontactResultDTO.getErrcode() != 0) {
// return ServiceResponse.failure(Convert.toStr(HaoBanErrCodeCommon.ERR_0.getCode()), "创建活码失败:" + qywxExternalcontactResultDTO.getErrmsg());
//}
//hmQrcodeQDTO.setWxQrcode(qywxExternalcontactResultDTO.getQr_code());
//hmQrcodeQDTO.setWxConfigId(qywxExternalcontactResultDTO.getConfig_id());
QywxExternalcontactResultDTO qywxExternalcontactResultDTO = qywxUserApiService.addContactWay(wxEnterpriseDTO.getCorpid(), config.getWxSuiteid(), qywxExternalcontactDTO);
if (qywxExternalcontactResultDTO.getErrcode() != 0) {
return ServiceResponse.failure(Convert.toStr(HaoBanErrCodeCommon.ERR_0.getCode()), "创建活码失败:" + qywxExternalcontactResultDTO.getErrmsg());
}
hmQrcodeQDTO.setWxQrcode(qywxExternalcontactResultDTO.getQr_code());
hmQrcodeQDTO.setWxConfigId(qywxExternalcontactResultDTO.getConfig_id());
int saveResult = hmQrcodeService.insert(hmQrcodeQDTO);
if (saveResult == 1) {
// save welcome relation
......@@ -194,7 +194,7 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
add(hmQrcodeQDTO);
}
setLoggerContext(hmQrcodeQDTO.getEnterpriseId(), wxEnterpriseId, hmQrcodeQDTO.getCreatorId(), hmQrcodeQDTO.getCreatorName());
GicLogRecordEvaluationContext.putAttribute("logContent", "【"+"批量创建数量" + clerkIdList.size() + "】");
GicLogRecordEvaluationContext.putAttribute("logContent", "【" + "批量创建数量" + clerkIdList.size() + "】");
return ServiceResponse.success();
}
......@@ -212,8 +212,8 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
private void setLoggerContext(String enterpriseId, String wxEnterpriseId, String userId, String userName) {
GicLogRecordEvaluationContext.putAttribute("enterpriseId", enterpriseId);
GicLogRecordEvaluationContext.putAttribute("wxEnterpriseId", wxEnterpriseId);
GicLogRecordEvaluationContext.putAttribute("userId", userId);
GicLogRecordEvaluationContext.putAttribute("userName", userName);
GicLogRecordEvaluationContext.putAttribute("userId", StringUtils.isNotBlank(userId) ? userId : "0");
GicLogRecordEvaluationContext.putAttribute("userName", StringUtils.isNotBlank(userName) ? userName : "系统");
}
......@@ -250,11 +250,11 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
return ServiceResponse.failure(Convert.toStr(HaoBanErrCodeCommon.ERR_8.getCode()), "导购未关联好办");
}
qywxExternalcontactDTO.setUser(userIds);
//QywxResponseDTO qywxResponseDTO = qywxUserApiService.updateContactWay(wxEnterpriseDTO.getCorpid(), config.getWxSuiteid(), qywxExternalcontactDTO);
//if (qywxResponseDTO.getErrcode() != 0) {
// logger.error("更新企微活码失败");
// return ServiceResponse.failure(Convert.toStr(HaoBanErrCodeCommon.ERR_0.getCode()), qywxResponseDTO.getErrmsg());
//}
QywxResponseDTO qywxResponseDTO = qywxUserApiService.updateContactWay(wxEnterpriseDTO.getCorpid(), config.getWxSuiteid(), qywxExternalcontactDTO);
if (qywxResponseDTO.getErrcode() != 0) {
logger.error("更新企微活码失败");
return ServiceResponse.failure(Convert.toStr(HaoBanErrCodeCommon.ERR_0.getCode()), qywxResponseDTO.getErrmsg());
}
int updateResult = hmQrcodeService.update(hmQrcodeQDTO);
if (updateResult == 1) {
......@@ -316,7 +316,7 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
String oldTagName = "";
String tagName = "";
if (memberTagDTOOld != null) {
oldTagName = memberTagDTOOld.getTagName();
oldTagName = memberTagDTOOld.getTagName();
}
if (memberTagDTO != null) {
tagName = memberTagDTO.getTagName();
......
......@@ -474,6 +474,7 @@ public class LoginController extends WebBaseController {
loginUser.setRoleId(roleId);
loginUser.setDepartAuth(clerk.getDepartAuth());
loginUser.setBrandName(enterprise.getBrandName());
loginUser.setClerkPhone(clerk.getPhoneNumber()) ;
AuthWebRequestUtil.setSessionUser(loginUser);
AuthWebRequestUtil.setAppLoginUser(token, loginUser);
boolean flag = wxEnterpriseApiService.enterpriseIsOver(enterpriseId);
......
......@@ -570,6 +570,7 @@ public class HmLinkController {
MemberTagItemDTO tag = this.memberTagApiService.findMemberTagItem(memberLabelId);
if (null != tag) {
linkVO.setMemberLabelName(tag.getTagName() + "-" + tag.getTagItemName());
linkVO.setMemberLabelStatus(tag.getStatus());
}
}
ServiceResponse<String> urlResp = this.hmLinkApiService.getHmLinkUrl();
......
......@@ -41,12 +41,21 @@ public class HmLinkVO implements Serializable {
/**会员活动标签*/
private String memberLabelId;
private String memberLabelName;
private Integer memberLabelStatus ;
/**0删除 1正常*/
private Integer statusFlag;
private String shortCode;
private String linkUrl;
private List<HmLinkStoreVO> storeList;
public Integer getMemberLabelStatus() {
return memberLabelStatus;
}
public void setMemberLabelStatus(Integer memberLabelStatus) {
this.memberLabelStatus = memberLabelStatus;
}
public String getMemberLabelName() {
return memberLabelName;
}
......
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