admin
2021-06-23 b47f8a03db79bb1f6356479cd8a5cf190d7d9694
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
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-syncLijinData")
    public ReturnT<String> syncLijinData(String param) throws Exception {
 
 
 
        return ReturnT.SUCCESS;
    }
 
 
}