diff --git a/src/main/java/com/kiisoo/ic/store/service/StorePromotionDataService.java b/src/main/java/com/kiisoo/ic/store/service/StorePromotionDataService.java index a3937b0..05a805e 100644 --- a/src/main/java/com/kiisoo/ic/store/service/StorePromotionDataService.java +++ b/src/main/java/com/kiisoo/ic/store/service/StorePromotionDataService.java @@ -11,18 +11,19 @@ import com.kiisoo.ic.common.utils.httpClientUtil.HttpClientUtil; import com.kiisoo.ic.common.utils.httpClientUtil.HttpResult; import com.kiisoo.ic.config.WxCpConfiguration; import com.kiisoo.ic.domain.service.PrivilageDomainService; +import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; +import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper; import com.kiisoo.ic.generalize.entity.PoiCustomerContactDataStat; import com.kiisoo.ic.generalize.mapper.PoiCustomerContactDataStatMapper; import com.kiisoo.ic.store.bean.BsdShareCodeResponse; import com.kiisoo.ic.store.constant.Constants; -import com.kiisoo.ic.store.entity.StaffDO; -import com.kiisoo.ic.store.entity.StorePromotionDataDO; -import com.kiisoo.ic.store.entity.WxCusInfoReqDO; -import com.kiisoo.ic.store.entity.WxCusInfoRespDO; +import com.kiisoo.ic.store.entity.*; +import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper; import com.kiisoo.ic.store.mapper.StorePromotionDataDOMapper; import com.kiisoo.ic.utils.DateUtils; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.cp.api.WxCpExternalContactService; import me.chanjar.weixin.cp.api.WxCpService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -68,6 +69,18 @@ public class StorePromotionDataService { @Autowired private PrivilageDomainService privilageDomainService; + /** + * 权限业务 + */ + @Autowired + private PrivilageCpUserDOMapper privilageCpUserDOMapper; + + /** + * 权限业务 + */ + @Autowired + private PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper; + @Value("${bsd.userBehavior}") private String userBehavior; @@ -337,14 +350,26 @@ public class StorePromotionDataService { public void syncCustomerBlackListByDate(Date startDate, Date endDate) throws Exception { //获取token String token = mainService.getAccessToken(); - List cusList = storePromotionDataDOMapper.selectCustomer(); - cusList.forEach(customer -> { + WxCpExternalContactService externalContactService = mainService.getExternalContactService(); + List cpUserIds = externalContactService.listFollowUser(); + cpUserIds.forEach(cpUserId -> { // 返回 try { - String userId = customer.getUserId(); + Long storeId = privilageCpUserStoreDOMapper.selectOneByCpUserId(cpUserId); + Long regionId = null; + if (storeId == null){ + QueryWrapper cpUserQw = new QueryWrapper<>(); + cpUserQw.eq("cpUserId",cpUserId).last("limit 1"); + PrivilageCpUserDO privilageCpUserDO = privilageCpUserDOMapper.selectOne(cpUserQw); + if (privilageCpUserDO != null){ + regionId = privilageCpUserDO.getId(); + }else { + return; + } + } WxCusInfoReqDO wxCusInfoReqDO = new WxCusInfoReqDO(); wxCusInfoReqDO.setAccess_token(token); - wxCusInfoReqDO.setUserid(userId); + wxCusInfoReqDO.setUserid(cpUserId); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //todo 分开写便于同步历史数据 最大跨度30天 最久当天往前180天 上线时改为System.currentTimeMillis() wxCusInfoReqDO.setStart_time(startDate.getTime() / 1000); @@ -353,11 +378,12 @@ public class StorePromotionDataService { if (wxCusInfoRespDO == null) { return; } - wxCusInfoRespDO.setStoreId(customer.getStoreId()); + wxCusInfoRespDO.setStoreId(storeId); + wxCusInfoRespDO.setRegionId(regionId); wxCusInfoRespDO.setStatTime(startDate); QueryWrapper qw = new QueryWrapper(); - qw.eq("store_id", customer.getStoreId()).eq("stat_time", startDate).last("limit 1"); + qw.eq("store_id", storeId).eq("region_id", regionId).eq("stat_time", startDate).last("limit 1"); PoiCustomerContactDataStat poiCustomerContactDataStat = poiCustomerContactDataStatMapper.selectOne(qw); int syncRes = 0; if (poiCustomerContactDataStat == null) { diff --git a/src/main/resources/mapper/StorePromotionDataDOMapper.xml b/src/main/resources/mapper/StorePromotionDataDOMapper.xml index 99d37d6..ddbe822 100644 --- a/src/main/resources/mapper/StorePromotionDataDOMapper.xml +++ b/src/main/resources/mapper/StorePromotionDataDOMapper.xml @@ -264,10 +264,10 @@ INSERT INTO poi_customer_contact_data_stat ( - store_id, new_apply_cnt,negative_feedback_cnt, new_contact_cnt, + store_id,region_id, new_apply_cnt,negative_feedback_cnt, new_contact_cnt, chat_cnt,message_cnt,reply_percentage,avg_reply_time, stat_time, create_time) VALUES ( - #{storeId}, #{new_apply_cnt},#{negative_feedback_cnt}, #{new_contact_cnt}, + #{storeId},#{regionId}, #{new_apply_cnt},#{negative_feedback_cnt}, #{new_contact_cnt}, #{chat_cnt}, #{message_cnt}, #{reply_percentage}, #{avg_reply_time}, #{statTime}, NOW())