admin
2024-06-30 b6fdf185c7e8fb1f06da0e609e39aecaef6b66f5
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
package com.taoke.autopay.factory;
 
import com.taoke.autopay.entity.ClientInfo;
import com.taoke.autopay.entity.KeyOrder;
import com.taoke.autopay.entity.WxUserOrderCount;
import com.taoke.autopay.utils.Constant;
import com.taoke.autopay.utils.StringUtil;
import com.taoke.autopay.utils.TimeUtil;
import com.taoke.autopay.vo.AdminOrderVO;
import com.taoke.autopay.vo.KeyOrderVO;
import com.taoke.autopay.vo.OrderFilter;
 
/**
 * @author hxh
 * @title: OrderFactory
 * @description:
 * @date 2024/6/14 17:42
 */
public class OrderFactory {
 
    public static String createId(String key) {
        String day = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyMMdd");
        return StringUtil.Md5(day + key);
    }
 
    public static KeyOrderVO create(KeyOrder order) {
        KeyOrderVO vo = new KeyOrderVO();
        vo.setCreateTime(order.getCreateTime());
        vo.setId(order.getId());
        vo.setKey(order.getKey());
        switch (order.getState()) {
            case KeyOrder.STATE_NOT_PROCESS:
                vo.setState(KeyOrderVO.STATE_NOT_PROCESS);
                break;
            case KeyOrder.STATE_NOT_PAY:
                vo.setState(KeyOrderVO.STATE_PROCESS_ERROR);
                break;
            case KeyOrder.STATE_PAY:
                vo.setState(KeyOrderVO.STATE_PROCESSED);
                break;
            case KeyOrder.STATE_REJECT_PAY:
                vo.setState(KeyOrderVO.STATE_PROCESSED);
                break;
        }
        return vo;
    }
 
    private static String getOrderStateDesc(Integer orderState, Integer orderType) {
 
        if (orderState == null || orderType == null) {
            return "未知";
        }
        if (orderType == Constant.ORDER_TYPE_DY) {
//            1 待确认/待支付-订单创建完毕:105-已支付;2-备货中;101-部分发货;3-已发货(全部发货):4-已取消:5 已完成(已收货);
 
            switch (orderState) {
                case 1:
                    return "待确认/待支付";
                case 105:
                    return "已支付";
                case 2:
                    return "备货中";
                case 101:
                    return "已发货(全部发货)";
                case 4:
                    return "已取消";
                case 5:
                    return " 已完成(已收货);";
                default:
                    return "状态码:" + orderState;
            }
        }
        return "未知";
 
    }
 
    public static AdminOrderVO createAdminVO(KeyOrder order, ClientInfo info) {
        AdminOrderVO vo = new AdminOrderVO();
        vo.setCreateTime(order.getCreateTime());
        vo.setId(order.getId());
        vo.setKey(order.getKey());
        switch (order.getState()) {
            case KeyOrder.STATE_NOT_PROCESS:
                vo.setState(KeyOrderVO.STATE_NOT_PROCESS);
                break;
            case KeyOrder.STATE_NOT_PAY:
                vo.setState(KeyOrderVO.STATE_PROCESS_ERROR);
                break;
            case KeyOrder.STATE_PAY:
                vo.setState(KeyOrderVO.STATE_PROCESSED);
                break;
            case KeyOrder.STATE_REJECT_PAY:
                vo.setState(KeyOrderVO.STATE_PROCESSED);
                break;
        }
        vo.setStateDesc(order.getStateDesc());
        vo.setOrderStateDesc(getOrderStateDesc(order.getOrderState(), order.getOrderType()));
        vo.setExcutePayTime(order.getExcutePayTime());
        vo.setPayTime(order.getPayTime());
        vo.setOrderNo(order.getOrderNo());
        vo.setOrderType(order.getOrderType());
        vo.setDistributedTime(order.getDistributeTime());
        vo.setDistributedClientInfo(info);
        vo.setUid(order.getUid());
        return vo;
    }
 
    public static String createId(WxUserOrderCount orderCountInfo) {
        return String.format("%s-%s-%s", orderCountInfo.getDay(), orderCountInfo.getUid(), orderCountInfo.getOrderType());
    }
 
 
}