admin
2025-05-09 6159dc58f50d3e4680779b7989bbd4d49a76bad5
src/main/java/com/taoke/autopay/factory/OrderFactory.java
@@ -1,10 +1,22 @@
package com.taoke.autopay.factory;
import com.google.gson.Gson;
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.IPUtil;
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 com.taoke.autopay.vo.OrderFilter;
import java.math.BigDecimal;
/**
 * @author hxh
@@ -19,12 +31,12 @@
        return StringUtil.Md5(day + key);
    }
    public static KeyOrderVO create(KeyOrder order){
        KeyOrderVO vo=new KeyOrderVO();
    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()){
        switch (order.getState()) {
            case KeyOrder.STATE_NOT_PROCESS:
                vo.setState(KeyOrderVO.STATE_NOT_PROCESS);
                break;
@@ -38,7 +50,87 @@
                vo.setState(KeyOrderVO.STATE_PROCESSED);
                break;
        }
        vo.setPayType(order.getPayType());
        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());
        vo.setPayMerchant(order.getPayMerchant());
        vo.setIp(order.getIp());
        vo.setIgnore(order.getIgnore());
        if(!StringUtil.isNullOrEmpty(order.getIpInfo())){
            vo.setIpInfo(new Gson().fromJson(order.getIpInfo(), IPUtil.IPInfo.class));
        }
        if(agent!=null){
            vo.setAgent(agent.getName());
        }else{
            vo.setAgent("");
        }
        return vo;
    }
    public static String createId(WxUserOrderCount orderCountInfo) {
        return String.format("%s-%s-%s-%s", orderCountInfo.getDay(), orderCountInfo.getUid(), orderCountInfo.getOrderType(),orderCountInfo.getOrderChannel()==null?"": orderCountInfo.getOrderChannel().name());
    }
}