Commit 1cfccccf by 周晓航

开发 每天下单门店 需求

parent 467cb1f3
...@@ -84,6 +84,11 @@ public class RedisKeyConstant { ...@@ -84,6 +84,11 @@ public class RedisKeyConstant {
/** /**
* 记录当日下单的门店
*/
public final static String KGD_NO_ORDER_STORE_DATE = "obs:no:order:store:date:";
/**
* cocoNotMadeGoods:商户号:门店号:yyyy-MM-dd * cocoNotMadeGoods:商户号:门店号:yyyy-MM-dd
* *
* @param partnerId * @param partnerId
......
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.entities.dto.openplatform.PushOrderStoreDto;
import cn.freemud.entities.dto.openplatform.ReportStoreIdsRequestVo;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.thirdparty.StoreBackstageClient;
import cn.freemud.utils.LogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.BoundHashOperations;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/5/10 下午4:18
* @description : 【ID1027442】 下单门店记录并每天推送门店
* 第二天凌晨4点 报上 上一天的门店支付情况
* 暂时放在这个位置, 等28版本上线, 需要使用xxl-job 定时器跑
*/
@Component
public class OrderReportJobHandler {
@Autowired
private RedisCache redisCache;
@Autowired
private StoreBackstageClient storeBackstageClient;
public void execute(String param) {
String date = getYesterdayString();
BoundHashOperations<String, String, Set<String>> boundHashOperations = redisCache.getRedisTemplate().boundHashOps(RedisKeyConstant.KGD_NO_ORDER_STORE_DATE + date);
Map<String, Set<String>> entries = boundHashOperations.entries();
LogUtil.info("下单门店记录推送 entries", entries, null);
if (entries != null && !entries.isEmpty()) {
// 推送门店 服务
List<ReportStoreIdsRequestVo> requestDto = new ArrayList<>(entries.size());
entries.forEach((partnerId, storeIds) -> {
ReportStoreIdsRequestVo build = ReportStoreIdsRequestVo.builder().partnerCode(partnerId).storeCodeList(storeIds).build();
requestDto.add(build);
});
// 发送服务
PushOrderStoreDto pushOrderStoreDto = PushOrderStoreDto.builder().pushDate(date)
.partnerList(requestDto)
.build();
BaseResponse baseResponse = storeBackstageClient.pushOrderStore(pushOrderStoreDto);
LogUtil.info("上报门店支付情况", pushOrderStoreDto, baseResponse);
}
}
/**
* 需要获取 昨天的 yyyy-MM-dd
*
* @return
*/
private String getYesterdayString() {
Calendar start = Calendar.getInstance();
// 取昨天时间
start.add(5, -1);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM
return simpleDateFormat.format(start.getTime());
}
}
package cn.freemud.entities.dto.openplatform;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/5/10 下午5:50
* @description :
*/
@Data
@Builder
public class PushOrderStoreDto {
private String pushDate;
private List<ReportStoreIdsRequestVo> partnerList;
}
package cn.freemud.entities.dto.openplatform;
import lombok.Builder;
import lombok.Data;
import java.util.List;
import java.util.Set;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/5/10 下午5:02
* @description :
*/
@Data
@Builder
public class ReportStoreIdsRequestVo {
String partnerCode;
Set<String> storeCodeList;
}
package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.openplatform.PushOrderStoreDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/5/10 下午5:45
* @description :
*/
@FeignClient(name = "STORE-BACKSTAGE")
@RequestMapping(consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public interface StoreBackstageClient {
@PostMapping("/orderStore/pushOrderStore")
BaseResponse pushOrderStore(@RequestBody PushOrderStoreDto request);
}
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