diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMerchantPoiController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMerchantPoiController.java index dbe9631ed..548b264b3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMerchantPoiController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMerchantPoiController.java @@ -126,6 +126,17 @@ public class TtMerchantPoiController extends BaseController { return ttMerchantPoiService.merchantSync(getTenantInfo(),id); } + @ApiOperation("商铺同步结果") + @GetMapping("merchantQuery") + @SystemControllerLog(description = "商铺同步") + public ResultData merchantQuery(Long id) { + logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::merchantQuery"); + if(id == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + return ttMerchantPoiService.supplierQuery(getTenantInfo(),id); + } + @ApiOperation("获取商品可用的POI") @GetMapping("/findPoi") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/TtMerchantReciverSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/TtMerchantReciverSchedule.java index d0f950f93..ea8a754ea 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/TtMerchantReciverSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/TtMerchantReciverSchedule.java @@ -42,7 +42,7 @@ public class TtMerchantReciverSchedule { /** * 每两小时 */ - @Scheduled(cron = "0 0 */1 * * ?") + @Scheduled(cron = "0 */30 * * * ?") // @Scheduled(cron = "0 */5 * * * *?") //测试五分钟执行 public void updateMerchantReciverSchedule() { WxMall mallQ = new WxMall(); diff --git a/mallinkService/src/main/java/com/iformall/service/TtMerchantPoiService.java b/mallinkService/src/main/java/com/iformall/service/TtMerchantPoiService.java index 6ac69be1d..2baa3490a 100644 --- a/mallinkService/src/main/java/com/iformall/service/TtMerchantPoiService.java +++ b/mallinkService/src/main/java/com/iformall/service/TtMerchantPoiService.java @@ -39,7 +39,7 @@ public interface TtMerchantPoiService { List findIdList(TtMerchantPoi merchantPoiQ); - void supplierQuery(Long id); + ResultData supplierQuery(TenantEntity tenantInfo,Long id); TtWebService getTtWebService(TenantEntity tenantInfo); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java index e790c937a..56445eb35 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java @@ -269,12 +269,14 @@ public class TtMerchantPoiServiceImpl implements TtMerchantPoiService { // if(StringUtils.isBlank(supplierId)){ // return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"同步失败"); // } - TtMerchantPoi updPoi = new TtMerchantPoi(); - updPoi.setId(id); - updPoi.setSupplierId(supplierId); - updPoi.setLastSyncStatus(EnumSupplierSyncStatus.sync_success.getCode()); - updPoi.setUpdateDate(new Date()); - ttMerchantPoiMapper.updateById(merchantPoi); + if(!EnumSupplierSyncStatus.sync_success.getCode().equals(merchantPoi.getSyncStatus())){ + TtMerchantPoi updPoi = new TtMerchantPoi(); + updPoi.setId(id); + updPoi.setSupplierId(supplierId); + updPoi.setLastSyncStatus(EnumSupplierSyncStatus.sync_wait.getCode()); + updPoi.setUpdateDate(new Date()); + ttMerchantPoiMapper.updateById(merchantPoi); + } return new ResultData(); } @@ -426,15 +428,15 @@ public class TtMerchantPoiServiceImpl implements TtMerchantPoiService { } @Override - public void supplierQuery(Long id) { + public ResultData supplierQuery(TenantEntity tenantEntity, Long id) { TtMerchantPoi merchantPoi = ttMerchantPoiMapper.selectById(id); if(merchantPoi == null){ logger.error("未找到数据"); - return; + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到数据"); } - if(!EnumSupplierSyncStatus.sync_wait.getCode().equals(merchantPoi.getLastSyncStatus())){ - logger.error("该店铺暂未申请同步或已知同步结果"); - return; + if(merchantPoi.getLastSyncStatus() == null){ + logger.error("该店铺暂未申请同步"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该店铺暂未申请同步"); } try { TtSupplierSyncQuery syncQuery = getTtWebService(merchantPoi).getProductService().supplierQuery(merchantPoi.getSupplierExtId()); @@ -448,12 +450,33 @@ public class TtMerchantPoiServiceImpl implements TtMerchantPoiService { poiUpd.setFailReason(syncQuery.getSyncStatus().getFailReason()); poiUpd.setUpdateDate(new Date()); ttMerchantPoiMapper.updateById(poiUpd); - }else{ - logger.error("请求接口返回为空"); } + return new ResultData(handSupplieSync(syncQuery)); } catch (WxErrorException e) { logger.error("查询匹配任务error"+e.getMessage()); + return new ResultData(ErrorCode.MSG_METHOD_REQUEST_ERROR.getCode(),e.getMessage()); + } catch (Exception e){ + logger.error("查询匹配任务error"+e.getMessage()); + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); + } + + } + + private Map handSupplieSync(TtSupplierSyncQuery syncQuery){ + Map map = new HashMap<>(); + if(syncQuery != null){ + if(syncQuery.getDataDetail() != null){ + map.put("data_detail",syncQuery.getDataDetail().toJson()); + } + if(syncQuery.getSyncStatus() != null){ + Map statusMap = new HashMap<>(); + statusMap.put("last_sync_status",syncQuery.getSyncStatus().getLastSyncStatus()); + statusMap.put("fail_reason",syncQuery.getSyncStatus().getFailReason()); + map.put("sync_status",syncQuery.getSyncStatus()); + } + } + return map; } diff --git a/mallinkService/src/main/resources/mapper/TtMerchantPoiMapper.xml b/mallinkService/src/main/resources/mapper/TtMerchantPoiMapper.xml index 3c44afdae..c454a8489 100644 --- a/mallinkService/src/main/resources/mapper/TtMerchantPoiMapper.xml +++ b/mallinkService/src/main/resources/mapper/TtMerchantPoiMapper.xml @@ -80,6 +80,10 @@ and `poi_id` = #{poiId} + + and `poi_name` like concat('%', #{poiName},'%') + + and `merchant_name` like concat('%', #{merchantName},'%')