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 { ...@@ -375,4 +375,8 @@ public interface TabHaobanExternalClerkRelatedMapper {
int getCountExternalClerk(@Param("wxEnterpriseId") String wxEnterpriseId, int getCountExternalClerk(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("staffId") String staffId, @Param("staffId") String staffId,
@Param("statusFlags") List<Integer> statusFlags); @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 { ...@@ -80,4 +80,7 @@ public interface ExternalClerkRelatedService {
*/ */
List<String> getByStoreIdAndStaffId(String storeId,String staffId); List<String> getByStoreIdAndStaffId(String storeId,String staffId);
int getCountByMemberId(String memberId);
} }
...@@ -499,4 +499,9 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -499,4 +499,9 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
public List<String> getByStoreIdAndStaffId(String storeId, String staffId) { public List<String> getByStoreIdAndStaffId(String storeId, String staffId) {
return mapper.getByStoreIdAndStaffId(storeId, 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 ...@@ -81,7 +81,7 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
public boolean delBind(String oldClerkId, String optStaffId, int channelCode) { public boolean delBind(String oldClerkId, String optStaffId, int channelCode) {
return this.delBind(oldClerkId, optStaffId, channelCode, null) ; return this.delBind(oldClerkId, optStaffId, channelCode, null) ;
} }
@Override @Override
public boolean delBind(String oldClerkId, String optStaffId, int channelCode, String newClerkId) { public boolean delBind(String oldClerkId, String optStaffId, int channelCode, String newClerkId) {
TabHaobanStaffClerkRelation clerkRelation = mapper.getByClerkId(oldClerkId); TabHaobanStaffClerkRelation clerkRelation = mapper.getByClerkId(oldClerkId);
...@@ -92,20 +92,34 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -92,20 +92,34 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
int i = mapper.changeStatusByClerkId(oldClerkId, 0); int i = mapper.changeStatusByClerkId(oldClerkId, 0);
String enterpriseId = clerkRelation.getEnterpriseId(); String enterpriseId = clerkRelation.getEnterpriseId();
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(clerkRelation.getStoreId(), clerkRelation.getStaffId()); 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()); clerkMainStoreRelatedService.delMainStore(clerkRelation.getStaffId(), clerkRelation.getStoreId(), clerkRelation.getWxEnterpriseId());
//推入日志 //推入日志
staffClerkBindLogService.pushToMq(clerkRelation.getStaffId(), optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, clerkRelation.getStaffClerkRelationId()); staffClerkBindLogService.pushToMq(clerkRelation.getStaffId(), optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, clerkRelation.getStaffClerkRelationId());
//废弃活码 //废弃活码
hmClerkRelationApiService.delByClerkId(oldClerkId, enterpriseId, clerkRelation.getWxEnterpriseId(), channelCode, newClerkId); hmClerkRelationApiService.delByClerkId(oldClerkId, enterpriseId, clerkRelation.getWxEnterpriseId(), channelCode, newClerkId);
hmClerkRelationApiService.delByClerkId(clerkId, enterpriseId, clerkRelation.getWxEnterpriseId(), channelCode);
delMemberQywxFlag(enterpriseId, memberIds);
return i > 0; 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 @Override
public boolean delBindByStoreIds(String wxEnterpriseId, Set<String> storeIds, String optStaffId, int channelCode) { public boolean delBindByStoreIds(String wxEnterpriseId, Set<String> storeIds, String optStaffId, int channelCode) {
if (CollectionUtils.isEmpty(storeIds)) { if (CollectionUtils.isEmpty(storeIds)) {
...@@ -118,24 +132,24 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -118,24 +132,24 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
return true; 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); mapper.delByStoreIds(storeIds);
//删除主门店 //删除主门店
clerkMainStoreRelatedService.delMainStoreByStoreIds(storeIds); clerkMainStoreRelatedService.delMainStoreByStoreIds(storeIds);
List<String> need = needUnbind.stream().map(tab -> tab.getStaffClerkRelationId()).collect(Collectors.toList());
//放入队列 //放入队列
staffClerkBindLogService.pushToMqBatch(optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, need); staffClerkBindLogService.pushToMqBatch(optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, need);
for (TabHaobanStaffClerkRelation clerkRelation : needUnbind) { for (TabHaobanStaffClerkRelation clerkRelation : needUnbind) {
//废弃活码 //废弃活码
String enterpriseId = clerkRelation.getEnterpriseId(); String enterpriseId = clerkRelation.getEnterpriseId();
hmClerkRelationApiService.delByClerkId(clerkRelation.getClerkId(), enterpriseId, wxEnterpriseId, channelCode); 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; return true;
} }
......
...@@ -261,7 +261,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -261,7 +261,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
log.info("欧泊莱定制:推送会员,memberId:{},changeType:{}", memberId, changeType); log.info("欧泊莱定制:推送会员,memberId:{},changeType:{}", memberId, changeType);
//欧泊莱定制需求 //欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId); ClerkDTO clerkDTO = clerkService.getClerkByClerkIdNoStatus(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId); StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId); MemberDTO member = memberService.getMember(memberId);
if (member == null) { if (member == null) {
......
...@@ -683,7 +683,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -683,7 +683,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
} }
log.info("欧泊莱定制:推送会员,memberId:{},changeType:{}", memberId, changeType); log.info("欧泊莱定制:推送会员,memberId:{},changeType:{}", memberId, changeType);
//欧泊莱定制需求 //欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId); ClerkDTO clerkDTO = clerkService.getClerkByClerkIdNoStatus(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId); StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId); MemberDTO member = memberService.getMember(memberId);
if (member == null) { if (member == null) {
......
...@@ -271,8 +271,15 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -271,8 +271,15 @@ public class StaffApiServiceImpl implements StaffApiService {
if(qwDTO.getWxSecurityType()==4) { if(qwDTO.getWxSecurityType()==4) {
list = qywxUserApiService.useridToOpenuserid(qwDTO.getThirdCorpid(), config.getWxSuiteid(), Collections.singletonList(userId)); list = qywxUserApiService.useridToOpenuserid(qwDTO.getThirdCorpid(), config.getWxSuiteid(), Collections.singletonList(userId));
}else { }else {
SecretSettingDTO set = this.secretSettingService.getSecretSetting(qwDTO.getWxEnterpriseId(), SecretTypeEnum.CUSTOMIZED_APP.getVal()) ; // 绝色这类商户在2个服务商,在2023516要切换调
list = qywxUserApiService.getSelfUseridToOpenuserid(qwDTO.getDkCorpid(), set.getSecretVal() , Collections.singletonList(userId)); 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)); logger.info("明文userId转密文={},{}",userId , JSON.toJSONString(list));
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
......
...@@ -704,4 +704,12 @@ ...@@ -704,4 +704,12 @@
</foreach> </foreach>
</select> </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> </mapper>
\ No newline at end of file
...@@ -10,6 +10,8 @@ import com.gic.haoban.manage.api.dto.MaidianLogDTO; ...@@ -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.api.service.MaidianLogApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode; import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -17,39 +19,57 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -17,39 +19,57 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
@RestController @RestController
public class MaidianLogController extends WebBaseController{ public class MaidianLogController extends WebBaseController {
private static final Logger logger = LoggerFactory.getLogger(MaidianLogController.class);
@Autowired
private MaidianLogApiService maidianLogApiService; @Autowired
@Autowired private MaidianLogApiService maidianLogApiService;
private ClerkService clerkService; @Autowired
@Autowired private ClerkService clerkService;
private StoreService storeService; @Autowired
private StoreService storeService;
@RequestMapping("save-maidian-log")
@IgnoreLogin @RequestMapping("save-maidian-log")
public HaobanResponse saveUserLoginLog(String maidianLogStr) { @IgnoreLogin
if(StringUtils.isBlank(maidianLogStr)){ public HaobanResponse saveUserLoginLog(String maidianLogStr) {
return resultResponse(HaoBanErrCode.ERR_2); if (StringUtils.isBlank(maidianLogStr)) {
} return resultResponse(HaoBanErrCode.ERR_2);
List<MaidianLogDTO> maidianLogDTOList = JSON.parseArray(maidianLogStr,MaidianLogDTO.class); }
for (MaidianLogDTO maidianLogDTO : maidianLogDTOList) { if (!isJsonArray(maidianLogStr)) {
String options = maidianLogDTO.getOptions(); logger.error("埋点格式不正确:{}", maidianLogStr);
if(StringUtils.isNotBlank(options) && options.length() > 2000){ return resultResponse(HaoBanErrCode.ERR_1);
maidianLogDTO.setOptions(options.substring(0,1999)); }
} List<MaidianLogDTO> maidianLogDTOList = JSON.parseArray(maidianLogStr, MaidianLogDTO.class);
StoreDTO store = storeService.getStore(maidianLogDTO.getStoreId()); for (MaidianLogDTO maidianLogDTO : maidianLogDTOList) {
if(store != null){ String options = maidianLogDTO.getOptions();
com.gic.clerk.api.dto.ClerkDTO clerkDTO = clerkService.getClerkByClerkCode(store.getEnterpriseId(), maidianLogDTO.getClerkCode()); if (StringUtils.isNotBlank(options) && options.length() > 2000) {
maidianLogDTO.setEnterpriseId(store.getEnterpriseId()); maidianLogDTO.setOptions(options.substring(0, 1999));
if(clerkDTO != null){ }
maidianLogDTO.setClerkId(clerkDTO.getClerkId()); StoreDTO store = storeService.getStore(maidianLogDTO.getStoreId());
} if (store != null) {
} com.gic.clerk.api.dto.ClerkDTO clerkDTO = clerkService.getClerkByClerkCode(store.getEnterpriseId(), maidianLogDTO.getClerkCode());
maidianLogApiService.insert(maidianLogDTO); maidianLogDTO.setEnterpriseId(store.getEnterpriseId());
} if (clerkDTO != null) {
return resultResponse(HaoBanErrCode.ERR_1); 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