package com.yeshi.fanli.job;
|
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import com.yeshi.fanli.entity.taobao.PidUser;
|
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
|
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
|
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
|
import com.yeshi.fanli.exception.TaoBaoOrderException;
|
import com.yeshi.fanli.log.LogHelper;
|
import com.yeshi.fanli.service.inter.common.DataMonitorService;
|
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
|
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleGiftService;
|
import com.yeshi.fanli.service.inter.order.OrderItemServcie;
|
import com.yeshi.fanli.service.inter.order.OrderProcessService;
|
import com.yeshi.fanli.service.inter.order.PidOrderService;
|
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
|
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
|
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService;
|
import com.yeshi.fanli.util.CMQManager;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.TimeUtil;
|
import com.yeshi.fanli.util.taobao.TaoBao110Util;
|
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
|
|
//从淘宝爬去订单更新
|
@Component
|
public class UpdateOrderJob {
|
|
public UpdateOrderJob() {
|
System.out.println("初始化:UpdateOrderJob");
|
}
|
|
@Resource
|
private OrderItemServcie orderItemServcie;
|
|
@Resource
|
private ThreeSaleGiftService threeSaleGiftService;
|
|
@Resource
|
private HongBaoService hongBaoService;
|
|
@Resource
|
private PidOrderService pidOrderService;
|
|
@Resource
|
private OrderProcessService orderProcessService;
|
|
@Resource
|
private TaoBaoOrderUtil taoBaoOrderUtil;
|
|
@Resource
|
private TaoBaoOrderService taoBaoOrderService;
|
|
@Resource
|
private TaoBaoUnionConfigService taoBaoUnionConfigService;
|
|
@Resource
|
private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
|
|
@Resource
|
private DataMonitorService dataMonitorService;
|
|
private void updateOrder(long startTime, long endTime) {
|
List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
|
List<TaoBaoOrder> orderList = new ArrayList<>();
|
try {
|
orderList = TaoBaoOrderUtil.getOrderList(startTime, endTime, configList.get(0));
|
} catch (TaoBaoOrderException e2) {
|
try {
|
LogHelper.errorDetailInfo(e2);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
List<TaoBaoOrder> thirdOrderList = new ArrayList<>();
|
try {
|
thirdOrderList = TaoBaoOrderUtil.getThirdServiceOrderList(startTime, endTime, configList.get(0));
|
} catch (TaoBaoOrderException e2) {
|
try {
|
LogHelper.errorDetailInfo(e2);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
if (thirdOrderList != null && thirdOrderList.size() > 0)
|
orderList.addAll(thirdOrderList);
|
|
LogHelper.orderInfo("正在执行订单爬取结束,共有订单:" + orderList.size());
|
addOrder(orderList);
|
try {
|
Thread.sleep(10000);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
|
}
|
|
private void addOrder(List<TaoBaoOrder> orderList) {
|
try {
|
taoBaoOrderService.addTaoBaoOrderList(orderList);
|
} catch (Exception e) {
|
try {
|
LogHelper.errorDetailInfo(e);
|
} catch (Exception e1) {
|
e1.printStackTrace();
|
}
|
}
|
|
try {
|
Map<String, List<TaoBaoOrder>> map = TaoBaoOrderUtil.classifyTaoBaoOrderByOrderId(orderList);
|
if (map != null) {
|
Iterator<String> its = map.keySet().iterator();
|
while (its.hasNext()) {
|
String key = its.next();
|
List<TaoBaoOrder> orders = map.get(key);
|
CMQManager.getInstance().addTaoBaoOrderMsg(key, orders);
|
}
|
}
|
} catch (Exception e) {
|
try {
|
LogHelper.errorDetailInfo(e);
|
} catch (Exception e1) {
|
e1.printStackTrace();
|
}
|
}
|
}
|
|
// 每15分钟爬取一次
|
@Scheduled(cron = "0 0/15 * * * ? ")
|
public void doJob1() {
|
if (!Constant.IS_TASK)
|
return;
|
long currentTime = System.currentTimeMillis();
|
String h = TimeUtil.getGernalTime(currentTime, "HH");
|
String m = TimeUtil.getGernalTime(currentTime, "mm");
|
int mm = Integer.parseInt(h) * 60 + Integer.parseInt(m);
|
int pos = mm / 15;
|
if (pos >= 90)
|
pos = 89;
|
long startTime = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(currentTime, "yyyy-MM-dd"), "yyyy-MM-dd")
|
- (1000 * 60 * 60 * 24L * (90 - pos));
|
long endTime = startTime + 1000 * 60 * 60 * 24L;
|
LogHelper.orderInfo("正在执行订单爬取...");
|
updateOrder(startTime, endTime);
|
}
|
|
// 淘宝推广订单 每隔3分13秒执行一次
|
@Scheduled(cron = "13 0/3 0 24,25 * ? ")
|
public void doJob6() {
|
if (!Constant.IS_TASK)
|
return;
|
List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
|
LogHelper.orderInfo("正在执行订单爬取...");
|
// 爬取1分钟以前的
|
long endTime = System.currentTimeMillis() - 1000 * 60 * 1L;
|
List<TaoBaoOrder> orderList = new ArrayList<TaoBaoOrder>();
|
try {
|
orderList = TaoBaoOrderUtil.getOrderList(endTime - 1000 * 60 * 60 * 24 * 2L, endTime, configList.get(0));
|
TaoBao110Util.rightTaoBaoOrderWarning();
|
} catch (TaoBaoOrderException e) {
|
try {
|
LogHelper.errorDetailInfo(e);
|
TaoBao110Util.reportTaoBaoOrderWarning(e.getCode(), e.getMessage());
|
} catch (Exception e2) {
|
e2.printStackTrace();
|
}
|
}
|
List<TaoBaoOrder> thirdOrderList = new ArrayList<>();
|
try {
|
thirdOrderList = TaoBaoOrderUtil.getThirdServiceOrderList(endTime - 1000 * 60 * 60 * 24 * 2L, endTime,
|
configList.get(0));
|
} catch (TaoBaoOrderException e) {
|
try {
|
LogHelper.errorDetailInfo(e);
|
} catch (Exception e2) {
|
e2.printStackTrace();
|
}
|
}
|
if (thirdOrderList != null && thirdOrderList.size() > 0)
|
orderList.addAll(thirdOrderList);
|
if (orderList != null && orderList.size() > 0)
|
dataMonitorService.parseTaoBaoOrderSuccess();
|
LogHelper.orderInfo("正在执行订单爬取结束,共有订单:" + orderList.size());
|
addOrder(orderList);
|
}
|
|
// 返利
|
@Scheduled(cron = "0 0/5 * * * ? ")
|
public void doJob2() {
|
if (!Constant.IS_TASK)
|
return;
|
doJob4();
|
|
orderProcessService.fanli();
|
}
|
|
// 每月25号9点执行返利
|
@Scheduled(cron = "0 0 9 25 * ? ")
|
public void doJob3() {
|
if (!Constant.IS_TASK)
|
return;
|
orderProcessService.fanliInvaiteAndShare();
|
}
|
|
// 维权订单处理-处理最近60天的
|
// 30分钟一次
|
@Scheduled(cron = "0 0/30 * * * ? ")
|
public void doJob4() {
|
if (!Constant.IS_TASK)
|
return;
|
List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
|
List<TaoBaoWeiQuanOrder> orderList = TaoBaoOrderUtil.getWeiQuanOrders(
|
System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 60L, System.currentTimeMillis(), configList.get(0));
|
if (orderList != null)
|
for (TaoBaoWeiQuanOrder order : orderList)
|
taoBaoWeiQuanOrderService.addWeiQuanOrder(order);// 添加维权订单到数据库
|
// 处理维权订单
|
orderProcessService.weiQuanOrder(orderList);
|
}
|
|
// 处理分享商品所产生的订单
|
@Scheduled(cron = "0 0/2 * * * ? ")
|
public void doJob7() {
|
if (!Constant.IS_TASK)
|
return;
|
pidOrderService.doPidOrder();
|
}
|
|
}
|