package com.ks.lijin.job;
|
|
import com.ks.lijin.pojo.DO.LiJinProviderTaoKeAccount;
|
import com.ks.lijin.pojo.DO.TaoBaoOrderRecord;
|
import com.ks.lijin.service.LiJinProviderAccountService;
|
import com.ks.lijin.service.manager.LiJinProviderTaoKeAccountManager;
|
import com.ks.lijin.service.manager.LijinOrderManager;
|
import com.ks.lijin.utils.taobao.TaoBaoOrderUtil;
|
import com.ks.lijin.utils.taobao.TaoKeApiUtil;
|
import com.taobao.api.internal.util.TaobaoUtils;
|
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
import org.springframework.stereotype.Component;
|
import org.yeshi.utils.DateUtil;
|
import org.yeshi.utils.NumberUtil;
|
import org.yeshi.utils.StringUtil;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Component
|
public class LijinOrderJob {
|
|
@Resource
|
private LijinOrderManager lijinOrderManager;
|
|
@Resource
|
private LiJinProviderAccountService liJinProviderAccountService;
|
|
|
/**
|
* 保存最近2分钟的淘宝订单数据
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("lijin-order-saveLatestTaoBaoOrder")
|
public ReturnT<String> saveLatestTaoBaoOrder(String param) throws Exception {
|
//保存最近5分钟的淘宝订单
|
List<String> pubIds = getPubIds();
|
Date endTime = TaoKeApiUtil.getTaoBaoSystemTime();
|
if (endTime == null) {
|
throw new Exception("淘宝系统时间获取出错");
|
}
|
//查询最近2分钟的订单
|
Date startTime = new Date(endTime.getTime() - 1000 * 60 * 2);
|
for (String pubId : pubIds) {
|
saveTaoBaoOrder(pubId, startTime, endTime);
|
}
|
return ReturnT.SUCCESS;
|
}
|
|
|
@XxlJob("lijin-order-saveTaoBaoOrder")
|
public ReturnT<String> saveTaoBaoOrder(String param) throws Exception {
|
if (StringUtil.isNullOrEmpty(param) || !NumberUtil.isNumeric(param)) {
|
throw new Exception("请输入正确小时数");
|
}
|
int hour = Integer.parseInt(param);
|
int page = hour % 2 == 0 ? hour / 2 : hour / 2 + 1;
|
//获取当前时间
|
Date now = TaoKeApiUtil.getTaoBaoSystemTime();
|
if (now == null) {
|
throw new Exception("淘宝系统时间获取出错");
|
}
|
List<String> pubIds = getPubIds();
|
for (int i = 0; i < page; i++) {
|
Date endTime = new Date(now.getTime() - 1000 * 60 * 60 * 2L * i);
|
Date startTime = new Date(endTime.getTime() - 1000 * 60 * 60 * 2L);
|
for (String pubId : pubIds) {
|
saveTaoBaoOrder(pubId, startTime, endTime);
|
}
|
}
|
return ReturnT.SUCCESS;
|
}
|
|
|
/**
|
* 获取淘宝会员ID
|
*
|
* @return
|
*/
|
private List<String> getPubIds() {
|
List<LiJinProviderTaoKeAccount> list = liJinProviderAccountService.listValidByProviderId(1L, null);
|
//获取淘客账号
|
List<String> pubIds = new ArrayList<>();
|
for (LiJinProviderTaoKeAccount account : list) {
|
pubIds.add(account.getPid().split("_")[1]);
|
}
|
return pubIds;
|
}
|
|
private void saveTaoBaoOrder(String pubId, Date startTime, Date endTime) throws Exception {
|
List<TaoBaoOrderRecord> orderRecordList = TaoBaoOrderUtil.getOrderByModifyTime(pubId, startTime, endTime);
|
if (orderRecordList == null) {
|
return;
|
}
|
for (TaoBaoOrderRecord record : orderRecordList) {
|
//保存
|
lijinOrderManager.saveTaoBaoOrder(record);
|
}
|
|
}
|
|
|
/**
|
* 同步礼金数据
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("lijin-order-syncLijinReportData")
|
public ReturnT<String> syncLijinReportData(String param) throws Exception {
|
lijinOrderManager.syncOnGoingLijin();
|
return ReturnT.SUCCESS;
|
}
|
|
|
}
|