Commit 8b0a3dda by 墨竹

Merge branch 'master' into feature-haoban-role

# Conflicts:
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/TabHaobanExternalClerkRelatedMapper.java
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/StaffClerkRelationServiceImpl.java
#	haoban-manage3-service/src/main/resources/mapper/TabHaobanExternalClerkRelatedMapper.xml
parents c3c996cb 5391e673
......@@ -375,4 +375,8 @@ public interface TabHaobanExternalClerkRelatedMapper {
int getCountExternalClerk(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("staffId") String staffId,
@Param("statusFlags") List<Integer> statusFlags);
List<String> listMemberAndClerk(@Param("memberIdList") List<String> memberIdList, @Param("clerkIdList") List<String> clerkIdList, @Param("enterpriseId") String enterpriseId);
int getCountByMemberId(@Param("memberId") String memberId);
}
\ No newline at end of file
......@@ -80,4 +80,7 @@ public interface ExternalClerkRelatedService {
*/
List<String> getByStoreIdAndStaffId(String storeId,String staffId);
int getCountByMemberId(String memberId);
}
......@@ -499,4 +499,9 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
public List<String> getByStoreIdAndStaffId(String storeId, String staffId) {
return mapper.getByStoreIdAndStaffId(storeId, staffId);
}
@Override
public int getCountByMemberId(String memberId) {
return mapper.getCountByMemberId(memberId);
}
}
......@@ -81,7 +81,7 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
public boolean delBind(String oldClerkId, String optStaffId, int channelCode) {
return this.delBind(oldClerkId, optStaffId, channelCode, null) ;
}
@Override
public boolean delBind(String oldClerkId, String optStaffId, int channelCode, String newClerkId) {
TabHaobanStaffClerkRelation clerkRelation = mapper.getByClerkId(oldClerkId);
......@@ -92,20 +92,34 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
int i = mapper.changeStatusByClerkId(oldClerkId, 0);
String enterpriseId = clerkRelation.getEnterpriseId();
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(clerkRelation.getStoreId(), clerkRelation.getStaffId());
for (String memberId : memberIds) {
//解绑通知会员
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0);
memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 0, new Date());
}
//删除 并设置主门店
clerkMainStoreRelatedService.delMainStore(clerkRelation.getStaffId(), clerkRelation.getStoreId(), clerkRelation.getWxEnterpriseId());
//推入日志
staffClerkBindLogService.pushToMq(clerkRelation.getStaffId(), optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, clerkRelation.getStaffClerkRelationId());
//废弃活码
hmClerkRelationApiService.delByClerkId(oldClerkId, enterpriseId, clerkRelation.getWxEnterpriseId(), channelCode, newClerkId);
hmClerkRelationApiService.delByClerkId(clerkId, enterpriseId, clerkRelation.getWxEnterpriseId(), channelCode);
delMemberQywxFlag(enterpriseId, memberIds);
return i > 0;
}
private void delMemberQywxFlag(String enterpriseId, List<String> memberIds) {
for (String memberId : memberIds) {
//解绑通知会员
int count = externalClerkRelatedService.getCountByMemberId(memberId);
if (count == 0) {
logger.info("通知会员 删除企微好友,该会员无任何好友关系,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0);
memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 0, new Date());
return;
}
logger.info("通知会员 删除企微好友 每次调用更新为非企微好友时间 memberId:{}", memberId);
memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 1, new Date());
}
}
@Override
public boolean delBindByStoreIds(String wxEnterpriseId, Set<String> storeIds, String optStaffId, int channelCode) {
if (CollectionUtils.isEmpty(storeIds)) {
......@@ -118,24 +132,24 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
return true;
}
for (TabHaobanStaffClerkRelation staffClerkRelation : needUnbind) {
String enterpriseId = staffClerkRelation.getEnterpriseId();
//删除好友通知会员
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(staffClerkRelation.getStoreId(), staffClerkRelation.getStaffId());
delMemberQywxFlag(enterpriseId, memberIds);
}
List<String> need = needUnbind.stream().map(tab -> tab.getStaffClerkRelationId()).collect(Collectors.toList());
//清除绑定
mapper.delByStoreIds(storeIds);
//删除主门店
clerkMainStoreRelatedService.delMainStoreByStoreIds(storeIds);
List<String> need = needUnbind.stream().map(tab -> tab.getStaffClerkRelationId()).collect(Collectors.toList());
//放入队列
staffClerkBindLogService.pushToMqBatch(optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, need);
for (TabHaobanStaffClerkRelation clerkRelation : needUnbind) {
//废弃活码
String enterpriseId = clerkRelation.getEnterpriseId();
hmClerkRelationApiService.delByClerkId(clerkRelation.getClerkId(), enterpriseId, wxEnterpriseId, channelCode);
//删除好友通知会员
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(clerkRelation.getStoreId(), clerkRelation.getStaffId());
for (String memberId : memberIds) {
//解绑通知会员
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0);
memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 0, new Date());
}
}
return true;
}
......
......@@ -261,7 +261,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
log.info("欧泊莱定制:推送会员,memberId:{},changeType:{}", memberId, changeType);
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
ClerkDTO clerkDTO = clerkService.getClerkByClerkIdNoStatus(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
if (member == null) {
......
......@@ -683,7 +683,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
log.info("欧泊莱定制:推送会员,memberId:{},changeType:{}", memberId, changeType);
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
ClerkDTO clerkDTO = clerkService.getClerkByClerkIdNoStatus(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
if (member == null) {
......
......@@ -271,8 +271,15 @@ public class StaffApiServiceImpl implements StaffApiService {
if(qwDTO.getWxSecurityType()==4) {
list = qywxUserApiService.useridToOpenuserid(qwDTO.getThirdCorpid(), config.getWxSuiteid(), Collections.singletonList(userId));
}else {
SecretSettingDTO set = this.secretSettingService.getSecretSetting(qwDTO.getWxEnterpriseId(), SecretTypeEnum.CUSTOMIZED_APP.getVal()) ;
list = qywxUserApiService.getSelfUseridToOpenuserid(qwDTO.getDkCorpid(), set.getSecretVal() , Collections.singletonList(userId));
// 绝色这类商户在2个服务商,在2023516要切换调
Object o = RedisUtil.getCache("bgrjswxEnterpriseId") ;
if(null != o && o.toString().contains(qwDTO.getWxEnterpriseId())) {
logger.info("绝色同步通讯录");
list = qywxUserApiService.useridToOpenuserid(qwDTO.getThirdCorpid(), config.getWxSuiteid(), Collections.singletonList(userId));
}else {
SecretSettingDTO set = this.secretSettingService.getSecretSetting(qwDTO.getWxEnterpriseId(), SecretTypeEnum.CUSTOMIZED_APP.getVal()) ;
list = qywxUserApiService.getSelfUseridToOpenuserid(qwDTO.getDkCorpid(), set.getSecretVal() , Collections.singletonList(userId));
}
}
logger.info("明文userId转密文={},{}",userId , JSON.toJSONString(list));
if (CollectionUtils.isEmpty(list)) {
......
......@@ -704,4 +704,12 @@
</foreach>
</select>
<select id="getCountByMemberId" resultType="java.lang.Integer" parameterType="java.lang.String">
select
count(*)
from tab_haoban_external_clerk_related
where
member_id = #{memberId} and status_flag in (1,3,4)
</select>
</mapper>
\ No newline at end of file
......@@ -10,6 +10,8 @@ import com.gic.haoban.manage.api.dto.MaidianLogDTO;
import com.gic.haoban.manage.api.service.MaidianLogApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -17,39 +19,57 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class MaidianLogController extends WebBaseController{
@Autowired
private MaidianLogApiService maidianLogApiService;
@Autowired
private ClerkService clerkService;
@Autowired
private StoreService storeService;
@RequestMapping("save-maidian-log")
@IgnoreLogin
public HaobanResponse saveUserLoginLog(String maidianLogStr) {
if(StringUtils.isBlank(maidianLogStr)){
return resultResponse(HaoBanErrCode.ERR_2);
}
List<MaidianLogDTO> maidianLogDTOList = JSON.parseArray(maidianLogStr,MaidianLogDTO.class);
for (MaidianLogDTO maidianLogDTO : maidianLogDTOList) {
String options = maidianLogDTO.getOptions();
if(StringUtils.isNotBlank(options) && options.length() > 2000){
maidianLogDTO.setOptions(options.substring(0,1999));
}
StoreDTO store = storeService.getStore(maidianLogDTO.getStoreId());
if(store != null){
com.gic.clerk.api.dto.ClerkDTO clerkDTO = clerkService.getClerkByClerkCode(store.getEnterpriseId(), maidianLogDTO.getClerkCode());
maidianLogDTO.setEnterpriseId(store.getEnterpriseId());
if(clerkDTO != null){
maidianLogDTO.setClerkId(clerkDTO.getClerkId());
}
}
maidianLogApiService.insert(maidianLogDTO);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
public class MaidianLogController extends WebBaseController {
private static final Logger logger = LoggerFactory.getLogger(MaidianLogController.class);
@Autowired
private MaidianLogApiService maidianLogApiService;
@Autowired
private ClerkService clerkService;
@Autowired
private StoreService storeService;
@RequestMapping("save-maidian-log")
@IgnoreLogin
public HaobanResponse saveUserLoginLog(String maidianLogStr) {
if (StringUtils.isBlank(maidianLogStr)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
if (!isJsonArray(maidianLogStr)) {
logger.error("埋点格式不正确:{}", maidianLogStr);
return resultResponse(HaoBanErrCode.ERR_1);
}
List<MaidianLogDTO> maidianLogDTOList = JSON.parseArray(maidianLogStr, MaidianLogDTO.class);
for (MaidianLogDTO maidianLogDTO : maidianLogDTOList) {
String options = maidianLogDTO.getOptions();
if (StringUtils.isNotBlank(options) && options.length() > 2000) {
maidianLogDTO.setOptions(options.substring(0, 1999));
}
StoreDTO store = storeService.getStore(maidianLogDTO.getStoreId());
if (store != null) {
com.gic.clerk.api.dto.ClerkDTO clerkDTO = clerkService.getClerkByClerkCode(store.getEnterpriseId(), maidianLogDTO.getClerkCode());
maidianLogDTO.setEnterpriseId(store.getEnterpriseId());
if (clerkDTO != null) {
maidianLogDTO.setClerkId(clerkDTO.getClerkId());
}
}
maidianLogApiService.insert(maidianLogDTO);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
/**
* 检查JSON数据合法性
*/
public boolean isJsonArray(String str) {
try {
JSON.parseArray(str);
return true;
} catch (Exception e) {
logger.error("埋点格式不正确:{}", str, e);
return false;
}
}
}
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