package com.kiisoo.ic.job.count; import com.kiisoo.ic.customer.CustomerService; import com.kiisoo.ic.store.entity.PoiStoreStaff; import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper; import com.kiisoo.ic.synchronous.entity.TurnBackDTO; import com.kiisoo.ic.synchronous.entity.WxDataDTO; import com.kiisoo.ic.wx.service.QWMailListManageService; import com.lmax.disruptor.EventHandler; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.cp.bean.WxCpUserExternalContactInfo; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; @Slf4j public class CountDTOMessageHandler implements EventHandler { /** * 处理事件, 如入库操作 * @param countDtoMessage * @throws Exception */ @Override public void onEvent(CountDTOMessage countDtoMessage, long l, boolean b) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); countDtoMessage.setId(UUID.randomUUID().toString()); String cpUserId = countDtoMessage.getCpUserId(); CustomerService customerService = countDtoMessage.getCustomerService(); PoiStoreStaffDOMapper poiStoreStaffDOMapper = countDtoMessage.getPoiStoreStaffDOMapper(); QWMailListManageService qwMailListManageService = countDtoMessage.getQwMailListManageService(); Long storeId = countDtoMessage.getStoreId(); List> tagList = poiStoreStaffDOMapper.selectStaffTagByStoreId(storeId); Map tagMap = new HashMap<>(); for (Map map:tagList){ tagMap.put((String)map.get("tag"),(Long)map.get("staffId")); } List customers = null; try { customers = qwMailListManageService.getCustomer(cpUserId); }catch (Exception e) { log.error("查询联系人失败:"+cpUserId,e); } if (CollectionUtils.isEmpty(customers)){ return; } for (WxCpUserExternalContactInfo customer:customers){ TurnBackDTO turnBackDTO = new TurnBackDTO(); WxCpUserExternalContactInfo.ExternalContact externalContact = customer.getExternalContact(); List followedUsers = customer.getFollowedUsers(); turnBackDTO.setEaCode(""); if (CollectionUtils.isNotEmpty(followedUsers)){ for (WxCpUserExternalContactInfo.FollowedUser followedUser:followedUsers){ if (cpUserId.equals(followedUser.getUserId())){ String state = followedUser.getState(); WxCpUserExternalContactInfo.Tag[] tags = followedUser.getTags(); if (StringUtils.isNotBlank(state)){ //判断是否有导购码 turnBackDTO.setEaCode(state); }else if(tags != null && tags.length > 0 && tagList != null && tagList.size() > 0){ //判断是否有打tag //todo 根据tag获取导购码 for (int j = 0;j