提交 4d065995 authored 作者: 000516's avatar 000516 提交者: Coding

终端门店目前无用信息删除,门店绑定经销商信息由qc_id改为编码;

1、删除部分单元测试; 2、修改本地连接xxljob配置; 3、重新拉取经销商、终端门店; 4、终端门店目前无用信息删除,门店绑定经销商信息由qc_id改为编码;
package com.wangxiaolu.promotion.controller.user.qince;
import com.wangxiaolu.promotion.result.basedata.R;
import com.wangxiaolu.promotion.service.user.QinCeDataTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author : liqiulin
* @date : 2024-03-29 16
* @describe : 勤策同步数据接口
*/
@RestController
@RequestMapping("/user/qince/task")
public class QinCeDataTaskController {
@Autowired
QinCeDataTaskService qinCeDataTaskService;
/**
* 同步组织架构/部门数据
*/
@GetMapping("/department")
public R departmentTask(){
qinCeDataTaskService.departmentSyncTask();
return R.success();
}
/**
* 同步员工数据
*/
@GetMapping("/employee")
public R employeeTask(){
qinCeDataTaskService.employeeSyncTask();
return R.success();
}
/**
* 同步[终端数据]
*/
@GetMapping("/shops")
public R shopDetailAllTask(){
qinCeDataTaskService.shopDetailAllTask();
return R.success();
}
/**
* 同步商品类型
*/
@GetMapping("/product/type")
public R productQueryPdTypeAllTask(){
qinCeDataTaskService.productQueryPdTypeAllTask();
return R.success();
}
/**
* 同步商品数据
*/
@GetMapping("/product")
public R productAllTask(){
qinCeDataTaskService.productAllTask();
return R.success();
}
/**
* 同步经销商数据
*/
@GetMapping("/dealers")
public R productDealers(){
qinCeDataTaskService.productDealers();
return R.success();
}
}
...@@ -50,7 +50,7 @@ public class QinCeClienteleStoreDaoImpl implements QinCeClienteleStoreDao { ...@@ -50,7 +50,7 @@ public class QinCeClienteleStoreDaoImpl implements QinCeClienteleStoreDao {
List<JSONObject> dealers = qinCeShopDO.getDealers(); List<JSONObject> dealers = qinCeShopDO.getDealers();
if (!CollectionUtils.isEmpty(dealers)){ if (!CollectionUtils.isEmpty(dealers)){
qinCeShopDO.setDealersName(dealers.get(0).getString("dealer_name")); qinCeShopDO.setDealersName(dealers.get(0).getString("dealer_name"));
qinCeShopDO.setWaiqin365DealersId(dealers.get(0).getString("waiqin365_dealer_id")); qinCeShopDO.setDealerId(dealers.get(0).getString("dealer_code"));
} }
qw.eq(QinCeClienteleStoreDO::getQcId, qinCeShopDO.getQcId()); qw.eq(QinCeClienteleStoreDO::getQcId, qinCeShopDO.getQcId());
...@@ -97,7 +97,8 @@ public class QinCeClienteleStoreDaoImpl implements QinCeClienteleStoreDao { ...@@ -97,7 +97,8 @@ public class QinCeClienteleStoreDaoImpl implements QinCeClienteleStoreDao {
qw.select(QinCeClienteleStoreDO::getQcId, qw.select(QinCeClienteleStoreDO::getQcId,
QinCeClienteleStoreDO::getStoreName, QinCeClienteleStoreDO::getStoreName,
QinCeClienteleStoreDO::getStoreAddr, QinCeClienteleStoreDO::getStoreAddr,
QinCeClienteleStoreDO::getDealersName); QinCeClienteleStoreDO::getDealersName,
QinCeClienteleStoreDO::getDealerId);
QinCeClienteleStoreDO qinCeClienteleStoreDO = qinCeClienteleStoreMapper.selectOne(qw); QinCeClienteleStoreDO qinCeClienteleStoreDO = qinCeClienteleStoreMapper.selectOne(qw);
return transitionDto(qinCeClienteleStoreDO); return transitionDto(qinCeClienteleStoreDO);
......
...@@ -31,7 +31,7 @@ public class QinceDealerDaoImpl implements QinceDealerDao { ...@@ -31,7 +31,7 @@ public class QinceDealerDaoImpl implements QinceDealerDao {
@Override @Override
public void saveList(List<Object> dealerJsons) { public void saveList(List<Object> dealerJsons) {
// 目前没有查重逻辑,只在前边判断逻辑中进行新增 // 目前没有查重逻辑,只在前边判断逻辑中判断是否新增
qinceDealerMapper.saveList(dealerJsons); qinceDealerMapper.saveList(dealerJsons);
log.info("勤策同步经销商,新增数量:{}",dealerJsons.size()); log.info("勤策同步经销商,新增数量:{}",dealerJsons.size());
} }
......
...@@ -31,12 +31,6 @@ public class QinCeClienteleStoreDO implements Serializable { ...@@ -31,12 +31,6 @@ public class QinCeClienteleStoreDO implements Serializable {
@JsonProperty("id") @JsonProperty("id")
private String qcId; private String qcId;
/**
* 源于第三方系统的门店唯一ID
*/
@JsonProperty("store_id")
private String storeId;
/** /**
* 创建人id,来源勤策员工唯一ID * 创建人id,来源勤策员工唯一ID
*/ */
...@@ -49,18 +43,6 @@ public class QinCeClienteleStoreDO implements Serializable { ...@@ -49,18 +43,6 @@ public class QinCeClienteleStoreDO implements Serializable {
@JsonProperty("creator_name") @JsonProperty("creator_name")
private String creatorName; private String creatorName;
/**
* 创建人id,来源第三方系统的唯一ID
*/
@JsonProperty("creator_id")
private String creatorId;
/**
* 退回原因
*/
@JsonProperty("return_pool_reason")
private String returnPoolReason;
/** /**
* 门店名称 * 门店名称
*/ */
...@@ -78,19 +60,6 @@ public class QinCeClienteleStoreDO implements Serializable { ...@@ -78,19 +60,6 @@ public class QinCeClienteleStoreDO implements Serializable {
*/ */
@JsonProperty("store_manager") @JsonProperty("store_manager")
private String storeManager; private String storeManager;
/**
* 勤策门店经理id。第三方唯一标识,多门店经理id间以“,”分隔
*/
@JsonProperty("store_manager_id")
private String storeManagerId;
/**
* 勤策门店经理id。勤策唯一标识,多门店经理id间以“,”分隔。store_manager_waiqin365_id、store_manager_id、store_manager如果同时存在,优先级依次降低
*/
@JsonProperty("store_manager_waiqin365_id")
private String storeManagerWaiqin365Id;
/** /**
* 门店类型名称 * 门店类型名称
*/ */
...@@ -103,24 +72,6 @@ public class QinCeClienteleStoreDO implements Serializable { ...@@ -103,24 +72,6 @@ public class QinCeClienteleStoreDO implements Serializable {
@JsonProperty("store_type_code") @JsonProperty("store_type_code")
private String storeTypeCode; private String storeTypeCode;
/**
* 门店类型id
*/
@JsonProperty("store_type_id")
private String storeTypeId;
/**
* 勤策门店等级ID
*/
@JsonProperty("store_level_id")
private String storeLevelId;
/**
* 门店等级名称
*/
@JsonProperty("store_level")
private String storeLevel;
/** /**
* 勤策门店所属部门ID * 勤策门店所属部门ID
*/ */
...@@ -139,198 +90,42 @@ public class QinCeClienteleStoreDO implements Serializable { ...@@ -139,198 +90,42 @@ public class QinCeClienteleStoreDO implements Serializable {
@JsonProperty("store_dept_name") @JsonProperty("store_dept_name")
private String storeDeptName; private String storeDeptName;
/**
* 门店所属销售区域,此字段为 销售区域的最末级结构
*/
@JsonProperty("store_district")
private String storeDistrict;
/**
* 门店所属销售区域,此字段为销售区域的完整层级结构,多层级间以“,”分隔。 如:华中大区,南京分区,秦淮社区
*/
@JsonProperty("store_district_full_path")
private String storeDistrictFullPath;
/**
* 门店所属销售区域ID,来源于勤策的销售区域唯一ID
*/
@JsonProperty("store_district_waiqin365_id")
private String storeDistrictWaiqin365Id;
/**
* 第三方销售区域id
*/
@JsonProperty("store_third_district_id")
private String storeThirdDistrictId;
/** /**
* 门店所属行政区域-省份名称,如:北京市、江苏省 * 门店所属行政区域-省份名称,如:北京市、江苏省
*/ */
@JsonProperty("store_mss_province") @JsonProperty("store_mss_province")
private String storeMssProvince; private String storeMssProvince;
/**
* 门店所属行政区域-省份编码,如:110000、320000
*/
@JsonProperty("store_mss_province_code")
private String storeMssProvinceCode;
/** /**
* 门店所属行政区域-城市名称,如:南京市 * 门店所属行政区域-城市名称,如:南京市
*/ */
@JsonProperty("store_mss_city") @JsonProperty("store_mss_city")
private String storeMssCity; private String storeMssCity;
/**
* 门店所属行政区域-城市编码,如:320100
*/
@JsonProperty("store_mss_city_code")
private String storeMssCityCode;
/** /**
* 门店所属行政区域-区县名称,如:鼓楼区 * 门店所属行政区域-区县名称,如:鼓楼区
*/ */
@JsonProperty("store_mss_area") @JsonProperty("store_mss_area")
private String storeMssArea; private String storeMssArea;
/**
* 门店所属行政区域-区县编码,如:320106
*/
@JsonProperty("store_mss_area_code")
private String storeMssAreaCode;
/** /**
* 门店所属行政区域-乡镇街道名称,如:宁海路街道 * 门店所属行政区域-乡镇街道名称,如:宁海路街道
*/ */
@JsonProperty("store_mss_street") @JsonProperty("store_mss_street")
private String storeMssStreet; private String storeMssStreet;
/**
* 门店所属行政区域-乡镇街道编码,如:320106001
*/
@JsonProperty("store_mss_street_code")
private String storeMssStreetCode;
/** /**
* 门店所在地址 * 门店所在地址
*/ */
@JsonProperty("store_addr") @JsonProperty("store_addr")
private String storeAddr; private String storeAddr;
/**
* 勤策合作状态ID
*/
@JsonProperty("store_cooperate_status_id")
private String storeCooperateStatusId;
/** /**
* 合作状态编码。0:终止合作,1:合作中,2:未合作,3:有意向 * 合作状态编码。0:终止合作,1:合作中,2:未合作,3:有意向
*/ */
@JsonProperty("store_cooperate_status") @JsonProperty("store_cooperate_status")
private String storeCooperateStatus; private String storeCooperateStatus;
/**
* 门店所属连锁品牌
*/
@JsonProperty("store_ka_sys")
private String storeKaSys;
/**
* 门店电话,如:02544550010或025-44550010
*/
@JsonProperty("store_tel")
private String storeTel;
/**
* 门店传真,如:02544550010或025-44550010
*/
@JsonProperty("store_fax")
private String storeFax;
/**
* 门店邮编
*/
@JsonProperty("store_post")
private String storePost;
/**
* 门店备注
*/
@JsonProperty("store_remarks")
private String storeRemarks;
/**
* 商圈等级
*/
@JsonProperty("tradingarea_big")
private String tradingareaBig;
/**
* 商圈标签
*/
@JsonProperty("tradingarea")
private String tradingarea;
/**
* 商圈等级编码
*/
@JsonProperty("tradingarea_level_code")
private String tradingareaLevelCode;
/**
* 商圈等级名称
*/
@JsonProperty("tradingarea_level_name")
private String tradingareaLevelName;
/**
* 勤策销售区域id。此字段从2021年8月01日起,对新创建第三方应用不再返回真实store_district_id,使用store_district_waiqin365_id代替store_district_id
*/
@JsonProperty("store_district_id")
private String storeDistrictId;
/**
* 门店所属销售区域编码,来源于勤策的销售区域编码。
*/
@JsonProperty("store_district_code")
private String storeDistrictCode;
/**
* 销售区域创建时间。格式:yyyy-MM-dd HH:mm:ss
*/
@JsonProperty("store_district_create_time")
private String storeDistrictCreateTime;
/**
* 销售区域修改时间。格式:yyyy-MM-dd HH:mm:ss
*/
@JsonProperty("store_district_modify_time")
private String storeDistrictModifyTime;
/**
* 销售区域创建人
*/
@JsonProperty("store_district_creator_name")
private String storeDistrictCreatorName;
/**
* 销售区域修改人
*/
@JsonProperty("store_district_modifyier_name")
private String storeDistrictModifyierName;
/**
* 销售区域状态。1:正常,0:删除。默认值为1
*/
@JsonProperty("store_district_status")
private String storeDistrictStatus;
/**
* 勤策客户层级id。“-1”表示是根节点
*/
@JsonProperty("store_rel_level_id")
private String storeRelLevelId;
/** /**
* 门店分层标签名称。多分层标签名称以“,”分隔 * 门店分层标签名称。多分层标签名称以“,”分隔
*/ */
...@@ -343,54 +138,6 @@ public class QinCeClienteleStoreDO implements Serializable { ...@@ -343,54 +138,6 @@ public class QinCeClienteleStoreDO implements Serializable {
@JsonProperty("store_label_id") @JsonProperty("store_label_id")
private String storeLabelId; private String storeLabelId;
/**
* 门店协助员唯一标识。多协助员唯一标识以“,”分隔
*/
@JsonProperty("store_assistant_id")
private String storeAssistantId;
/**
* 门店协助员名称。多协助员名称以“,”分隔
*/
@JsonProperty("store_assistant_name")
private String storeAssistantName;
/**
* 门店道路信息
*/
@JsonProperty("store_road_msg")
private String storeRoadMsg;
/**
* 门店门牌号信息
*/
@JsonProperty("store_house_number")
private String storeHouseNumber;
/**
* 门店营业执照信息
*/
@JsonProperty("store_liscence_name")
private String storeLiscenceName;
/**
* 门店工商注册号信息
*/
@JsonProperty("store_registration_no")
private String storeRegistrationNo;
/**
* 门店注册日期。格式:yyyy-MM-dd
*/
@JsonProperty("store_registration_date")
private String storeRegistrationDate;
/**
* 门店经营者信息
*/
@JsonProperty("store_operator")
private String storeOperator;
/** /**
* 是否直接交易客户。0:是,1:否 * 是否直接交易客户。0:是,1:否
*/ */
...@@ -409,78 +156,18 @@ public class QinCeClienteleStoreDO implements Serializable { ...@@ -409,78 +156,18 @@ public class QinCeClienteleStoreDO implements Serializable {
@JsonProperty("store_modifyier_name") @JsonProperty("store_modifyier_name")
private String storeModifyierName; private String storeModifyierName;
/**
* 新增门店最终审批通过时间。格式:yyyy-MM-dd HH:mm:ss
*/
@JsonProperty("store_create_approval_time")
private String storeCreateApprovalTime;
/**
* 修改客户审批通过时间。格式:yyyy-MM-dd HH:mm:ss
*/
@JsonProperty("store_modify_approval_time")
private String storeModifyApprovalTime;
/** /**
* 创建方式 * 创建方式
*/ */
@JsonProperty("store_source_type") @JsonProperty("store_source_type")
private String storeSourceType; private String storeSourceType;
/**
* 门店营业面积
*/
@JsonProperty("store_selling_area")
private String storeSellingArea;
/**
* 门店收银台个数
*/
@JsonProperty("store_cashiers_num")
private String storeCashiersNum;
/**
* 门店货架组数
*/
@JsonProperty("store_shelf_num")
private String storeShelfNum;
/**
* 门店总排面数
*/
@JsonProperty("store_total_num")
private String storeTotalNum;
/**
* 门店本品排面数
*/
@JsonProperty("store_self_product_num")
private String storeSelfProductNum;
/**
* 门店营业开始时间。格式:yyyy-MM-dd HH:mm:ss
*/
@JsonProperty("store_open_time")
private Date storeOpenTime;
/**
* 门店营业结束时间。格式:yyyy-MM-dd HH:mm:ss
*/
@JsonProperty("store_close_time")
private Date storeCloseTime;
/** /**
* 门店门头照信息,多个以“,”号隔开 * 门店门头照信息,多个以“,”号隔开
*/ */
@JsonProperty("store_pictures") @JsonProperty("store_pictures")
private String storePictures; private String storePictures;
/**
* 门店营业执照信息,多个以“,”号隔开
*/
@JsonProperty("store_liscence")
private String storeLiscence;
/** /**
* 门店客户经理编码,即为员工登录账号,多客户经理唯一标识间以英文“,”隔开 * 门店客户经理编码,即为员工登录账号,多客户经理唯一标识间以英文“,”隔开
*/ */
...@@ -509,11 +196,7 @@ public class QinCeClienteleStoreDO implements Serializable { ...@@ -509,11 +196,7 @@ public class QinCeClienteleStoreDO implements Serializable {
* 经销商名称 * 经销商名称
*/ */
private String dealersName; private String dealersName;
private String dealerId;
/**
* 经销商勤策id
*/
private String waiqin365DealersId;
@TableField(exist = false) @TableField(exist = false)
@JsonProperty("dealers") @JsonProperty("dealers")
......
...@@ -25,4 +25,5 @@ public class QinCeClienteleStoreDto { ...@@ -25,4 +25,5 @@ public class QinCeClienteleStoreDto {
private String storeAddr; private String storeAddr;
private String dealersName; private String dealersName;
private String dealerId;
} }
...@@ -282,31 +282,29 @@ public class ActivityPlanRecordCoreServiceImpl implements ActivityPlanRecordCore ...@@ -282,31 +282,29 @@ public class ActivityPlanRecordCoreServiceImpl implements ActivityPlanRecordCore
sb.append("系统名称不可为空;"); sb.append("系统名称不可为空;");
} }
String dealerId = ((String) value.get(1)).trim();
if (StringUtils.isBlank(dealerId)) {
sb.append("经销商编码不可为空;");
dealerId = "";
}
String qinceStoreCode = (String) value.get(3); String qinceStoreCode = (String) value.get(3);
String storeName = (String) value.get(4); String storeName = (String) value.get(4);
if (StringUtils.isBlank(qinceStoreCode)) { if (StringUtils.isBlank(storeName) || StringUtils.isBlank(qinceStoreCode)) {
sb.append("勤策店铺编码不可为空;"); sb.append("店铺编码/名称不可为空;");
if (StringUtils.isBlank(storeName)) {
sb.append("店铺名称不可为空;");
}
} else { } else {
// 验证店铺code是否存在 // 验证店铺code是否存在
StoreWrapper storeWrap = new StoreWrapper() StoreWrapper storeWrap = new StoreWrapper().setStoreCode(qinceStoreCode);
.setStoreCode(qinceStoreCode);
QinCeClienteleStoreDto oneStore = qinCeClienteleStoreDao.getOneStore(storeWrap); QinCeClienteleStoreDto oneStore = qinCeClienteleStoreDao.getOneStore(storeWrap);
if (ObjectUtil.isEmpty(oneStore)) { if (ObjectUtil.isEmpty(oneStore)) {
sb.append("勤策店铺编码不正确;"); sb.append("勤策店铺编码不正确;");
} else { } else {
if (StringUtils.isBlank(storeName)) { if (!storeName.equals(oneStore.getStoreName())) {
sb.append("勤策店铺名称不可为空;"); sb.append("店铺名称不正确;");
} else if (!storeName.equals(oneStore.getStoreName())) {
sb.append("勤策店铺编码/名称不正确;");
} }
String dealersName = oneStore.getDealersName(); if (!dealerId.equals(oneStore.getDealerId())) {
String dealerId = ((String) value.get(1)).trim(); sb.append("经销商编码不正确;");
if (!dealers.containsKey(dealerId) || !dealers.get(dealerId).equals(dealersName)) {
sb.append("店铺不归属此经销商;");
} }
} }
} }
...@@ -362,43 +360,38 @@ public class ActivityPlanRecordCoreServiceImpl implements ActivityPlanRecordCore ...@@ -362,43 +360,38 @@ public class ActivityPlanRecordCoreServiceImpl implements ActivityPlanRecordCore
employeeNos.add((String) value.get(1)); employeeNos.add((String) value.get(1));
} }
// if (!dealers.containsKey(((String) value.get(2)).trim())) {
// sb.append("经销商编码错误;");
// }
if (StringUtils.isBlank((String) value.get(3))) { if (StringUtils.isBlank((String) value.get(3))) {
sb.append("系统名称不可为空;"); sb.append("系统名称不可为空;");
} }
String dealerId = ((String) value.get(2)).trim();
if (StringUtils.isBlank(dealerId)) {
sb.append("经销商编码不可为空;");
dealerId = "";
}
String qinceStoreCode = (String) value.get(4); String qinceStoreCode = (String) value.get(4);
String storeName = (String) value.get(5); String storeName = (String) value.get(5);
if (StringUtils.isBlank(qinceStoreCode)) { if (StringUtils.isBlank(storeName) || StringUtils.isBlank(qinceStoreCode)) {
sb.append("勤策店铺编码不可为空;"); sb.append("店铺编码/名称不可为空;");
if (StringUtils.isBlank(storeName)) {
sb.append("店铺名称不可为空;");
}
} else { } else {
// 验证店铺code是否存在 // 验证店铺code是否存在
StoreWrapper storeWrap = new StoreWrapper() StoreWrapper storeWrap = new StoreWrapper().setStoreCode(qinceStoreCode);
.setStoreCode(qinceStoreCode);
QinCeClienteleStoreDto oneStore = qinCeClienteleStoreDao.getOneStore(storeWrap); QinCeClienteleStoreDto oneStore = qinCeClienteleStoreDao.getOneStore(storeWrap);
if (ObjectUtil.isEmpty(oneStore)) { if (ObjectUtil.isEmpty(oneStore)) {
sb.append("勤策店铺编码不正确;"); sb.append("勤策店铺编码不正确;");
} else { } else {
if (StringUtils.isBlank(storeName)) { if (!storeName.equals(oneStore.getStoreName())) {
sb.append("勤策店铺名称不可为空;"); sb.append("店铺名称不正确;");
} else if (!storeName.equals(oneStore.getStoreName())) {
sb.append("勤策店铺编码/名称不正确;");
} }
String dealersName = oneStore.getDealersName(); if (!dealerId.equals(oneStore.getDealerId())) {
String dealerId = ((String) value.get(2)).trim(); sb.append("经销商编码不正确;");
if (!dealers.containsKey(dealerId) || !dealers.get(dealerId).equals(dealersName)) {
sb.append("店铺不归属此经销商;");
} }
} }
} }
String pattern = (String) value.get(6); String pattern = (String) value.get(6);
if (StringUtils.isBlank(pattern)) { if (StringUtils.isBlank(pattern)) {
sb.append("活动模式不可为空;"); sb.append("活动模式不可为空;");
......
...@@ -69,7 +69,6 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService { ...@@ -69,7 +69,6 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
// 查询组织架构参数、创建url // 查询组织架构参数、创建url
Map<String, Object> params = qinCeUtils.queryEmployeeParam(false); Map<String, Object> params = qinCeUtils.queryEmployeeParam(false);
String url = qinCeUtils.builderUrl(QinCeUtils.QUERY_EMPLOYEE, params); String url = qinCeUtils.builderUrl(QinCeUtils.QUERY_EMPLOYEE, params);
System.out.println(url);
// 发起请求、接收结果 // 发起请求、接收结果
JSONObject resultJson = OkHttp.postQC(url, params); JSONObject resultJson = OkHttp.postQC(url, params);
JSONArray responseDatas = resultJson.getJSONArray("response_data"); JSONArray responseDatas = resultJson.getJSONArray("response_data");
...@@ -145,7 +144,6 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService { ...@@ -145,7 +144,6 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
JSONObject resultJson = OkHttp.postQC(url, params); JSONObject resultJson = OkHttp.postQC(url, params);
JSONArray responseDatas = resultJson.getJSONArray("response_data"); JSONArray responseDatas = resultJson.getJSONArray("response_data");
log.info("勤策-查询一周内修改过的经销商,第{}页数据「{}」条", pageNum, responseDatas.size());
if (responseDatas.size() <= 0) { if (responseDatas.size() <= 0) {
return false; return false;
} }
...@@ -156,7 +154,11 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService { ...@@ -156,7 +154,11 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
for (int index = 0; index < responseDatas.size(); index++) { for (int index = 0; index < responseDatas.size(); index++) {
JSONObject jsonObject = responseDatas.getJSONObject(index); JSONObject jsonObject = responseDatas.getJSONObject(index);
String dealerId = jsonObject.getString("dealer_id"); String dealerId = jsonObject.getString("dealer_id");
if (StringUtils.isBlank(dealerId)|| (dealerId.length() != 6) || dealerIdsR.contains(dealerId)){ if (Objects.isNull(dealerId)){
dealerId = jsonObject.getString("dealer_code");
jsonObject.put("dealer_id",dealerId);
}
if (StringUtils.isBlank(dealerId)|| dealerIdsR.contains(dealerId)){
continue; continue;
} }
dealerJsons.add(jsonObject); dealerJsons.add(jsonObject);
...@@ -167,7 +169,7 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService { ...@@ -167,7 +169,7 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
if (CollectionUtils.isEmpty(dealerJsons)){ if (CollectionUtils.isEmpty(dealerJsons)){
return true; return true;
} }
log.info("勤策-同步一周内修改过的经销商,第{}页数据「{}」条", pageNum, dealerJsons.size()); log.info("勤策-经销商新增,第{}页数据「{}」条", pageNum, dealerJsons.size());
qinceDealerDao.saveList(dealerJsons); qinceDealerDao.saveList(dealerJsons);
redisCache.putAllHash(RedisKeys.UserKeys.DEALER_HAVE_LIST.getKey(),dealers); redisCache.putAllHash(RedisKeys.UserKeys.DEALER_HAVE_LIST.getKey(),dealers);
return true; return true;
...@@ -177,7 +179,6 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService { ...@@ -177,7 +179,6 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
private boolean booleanshopDetailPage(Integer pageNum) { private boolean booleanshopDetailPage(Integer pageNum) {
// 查找一周内修改或新增的数据
Map<String, Object> params = qinCeUtils.queryShopParam(pageNum); Map<String, Object> params = qinCeUtils.queryShopParam(pageNum);
String url = qinCeUtils.builderUrl(QinCeUtils.QUERY_SHORE, params); String url = qinCeUtils.builderUrl(QinCeUtils.QUERY_SHORE, params);
...@@ -191,7 +192,7 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService { ...@@ -191,7 +192,7 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
log.info("勤策-同步一周内修改过的终端store数据,第{}页数据「{}」条", pageNum, responseDatas.size()); log.info("勤策-同步一周内修改过的终端store数据,第{}页数据「{}」条", pageNum, responseDatas.size());
qinCeClienteleShopDao.shopDetailAllTask(responseDatas); qinCeClienteleShopDao.shopDetailAllTask(responseDatas);
promotionStoreDao.qinceShopDetailAllTask(responseDatas); // promotionStoreDao.qinceShopDetailAllTask(responseDatas);
return true; return true;
} }
} }
...@@ -110,10 +110,9 @@ public class QinCeUtils { ...@@ -110,10 +110,9 @@ public class QinCeUtils {
HashMap<String, Object> params = new HashMap<>(); HashMap<String, Object> params = new HashMap<>();
// 分页页码,默认1 // 分页页码,默认1
params.put("page_number", pageNum); params.put("page_number", pageNum);
// 记录状态。0:已删除(客户回收站中的终端数据),1:正常
// params.put("status", "1"); // after_modify_date:更新时间之后,查询更新时间之后的门店数据。格式:yyyy-MM-dd HH:mm:SS
// after_modify_date:更新时间之后,查询更新时间之后的门店数据。格式:yyyy-MM-dd HH:mm:SS DateTime dateTime = DateUtil.offsetDay(new Date(), -2);
DateTime dateTime = DateUtil.offsetDay(new Date(), -7);
params.put("after_modify_date", DateUtil.format(dateTime, DatePattern.NORM_DATETIME_PATTERN)); params.put("after_modify_date", DateUtil.format(dateTime, DatePattern.NORM_DATETIME_PATTERN));
return params; return params;
} }
...@@ -158,10 +157,11 @@ public class QinCeUtils { ...@@ -158,10 +157,11 @@ public class QinCeUtils {
public Map<String, Object> queryDealerParam(Integer pageNum) { public Map<String, Object> queryDealerParam(Integer pageNum) {
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("page_number", pageNum); params.put("page_number", pageNum);
// 记录状态。0:已删除,1:正常
params.put("status", "1"); params.put("status", "1");
// 全量数据同步后,再开启指定日期同步 // 全量数据同步后,再开启指定日期同步
DateTime dateTime = DateUtil.offsetDay(new Date(), -7); DateTime dateTime = DateUtil.offsetDay(new Date(), -2);
params.put("after_create_date", DateUtil.format(dateTime, DatePattern.NORM_DATETIME_PATTERN)); params.put("after_create_date", DateUtil.format(dateTime, DatePattern.NORM_DATETIME_PATTERN));
return params; return params;
} }
......
...@@ -51,7 +51,7 @@ public class XxlJobHandler { ...@@ -51,7 +51,7 @@ public class XxlJobHandler {
/** /**
* 同步[终端数据] * 同步[终端数据]
* 7日内有更新的终端 * 近2日内有更新的终端
* 0 0 0 * 0 0 0
*/ */
@XxlJob("qince_shop_task") @XxlJob("qince_shop_task")
...@@ -87,6 +87,7 @@ public class XxlJobHandler { ...@@ -87,6 +87,7 @@ public class XxlJobHandler {
/** /**
* 同步[经销商列表] * 同步[经销商列表]
* 近2日内更新的经销商
* 0 0 2 * 0 0 2
*/ */
@XxlJob("qince_dealers") @XxlJob("qince_dealers")
......
...@@ -85,11 +85,11 @@ xxl: ...@@ -85,11 +85,11 @@ xxl:
job: job:
accessToken: default_token accessToken: default_token
admin: admin:
addresses: http://42.193.103.153:9001/xxl-job-admin addresses: http://192.168.100.38:9001/xxl-job-admin
executor: executor:
appname: promotion-dev appname: promotion-dev
port: 9999 port: 9996
logretentiondays: 30 logretentiondays: 30
address: address:
ip: ip:
logpath: /var/logs/xxl_job # 执行器日志路径 logpath: /Users/a02200059/Desktop/wangxiaolu-sfa/log/xxl_job # 执行器日志路径
\ No newline at end of file
...@@ -24,6 +24,9 @@ ...@@ -24,6 +24,9 @@
(#{item.dealer_id}, #{item.dealer_name}, (#{item.dealer_id}, #{item.dealer_name},
#{item.dealer_cooperate_status},#{item.create_time}) #{item.dealer_cooperate_status},#{item.create_time})
</foreach> </foreach>
ON DUPLICATE KEY UPDATE
dealer_name = values(dealer_name),
dealer_cooperate_status = values(dealer_cooperate_status);
</insert> </insert>
</mapper> </mapper>
package com.wangxiaolu.promotion.service.user.impl;
import com.wangxiaolu.promotion.service.user.QinCeDataTaskService;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author : liqiulin
* @date : 2025-01-02 14
* @describe :
*/
@SpringBootTest
@RunWith(SpringRunner.class)
class QinCeDataTaskServiceImplTest {
@Autowired
private QinCeDataTaskService qinCeDataTaskService;
@Test
void productDealers() {
qinCeDataTaskService.productDealers();
}
}
\ No newline at end of file
...@@ -17,11 +17,4 @@ import static org.junit.jupiter.api.Assertions.*; ...@@ -17,11 +17,4 @@ import static org.junit.jupiter.api.Assertions.*;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
class ActivityTypeXxlJobHandlerTest { class ActivityTypeXxlJobHandlerTest {
@Autowired
ActivityTypeXxlJobHandler activityTypeXxlJobHandler;
@Test
void activityTypePattern() {
activityTypeXxlJobHandler.activityTypePattern();
}
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论