admin
2024-08-04 bc56870059cca013649077af0e53891cba8dbfd1
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
125
126
127
package com.taoke.autopay.factory;
 
import com.taoke.autopay.entity.ClientInfo;
import com.taoke.autopay.entity.KeyOrder;
import com.taoke.autopay.entity.OrderChannelEnum;
import com.taoke.autopay.entity.WxUserOrderCount;
import com.taoke.autopay.entity.agent.ChannelAgent;
import com.taoke.autopay.utils.Constant;
import com.taoke.autopay.utils.StringUtil;
import com.taoke.autopay.utils.TimeUtil;
import com.taoke.autopay.utils.order.OrderChannelUtil;
import com.taoke.autopay.vo.AgentOrderVO;
import com.taoke.autopay.vo.UserInfoVO;
import com.taoke.autopay.vo.admin.AdminOrderVO;
import com.taoke.autopay.vo.KeyOrderVO;
 
import java.math.BigDecimal;
 
/**
 * @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;
    }
 
    public static AgentOrderVO createAgentOrder(KeyOrder order, BigDecimal money) {
 
        String time=TimeUtil.getGernalTime(order.getCreateTime().getTime(), "yyyy.MM.dd HH:mm:ss");
        time = time.replace(" ","<br>");
        return AgentOrderVO.builder()
                .payMoney(order.getOrderMoney()!=null?order.getOrderMoney().toString():"未知")
                .settleMoney(money.toString())
                .createTime(time)
                .valid(order.getPayTime() != null && order.getState() == KeyOrder.STATE_PAY)
                .user(order.getUser() != null ? UserInfoVO.builder().id(order.getUser().getId()).nickName(order.getUser().getNickName()).portrait(order.getUser().getPortrait()).build() : null)
                .build();
    }
 
    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, ChannelAgent agent) {
        AdminOrderVO vo = new AdminOrderVO();
        vo.setCreateTime(order.getCreateTime());
        vo.setId(order.getId());
        vo.setKey(order.getKey());
        vo.setState(order.getState());
        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());
        OrderChannelEnum orderChannel=OrderChannelUtil.getChannelByKey(order.getOrderChannel());
        vo.setOrderChannel(orderChannel==null?"未知":orderChannel.getName());
        if(agent!=null){
            vo.setAgent(agent.getName());
        }else{
            vo.setAgent("");
        }
 
        return vo;
    }
 
    public static String createId(WxUserOrderCount orderCountInfo) {
        return String.format("%s-%s-%s", orderCountInfo.getDay(), orderCountInfo.getUid(), orderCountInfo.getOrderType());
    }
 
 
}