admin
2025-05-09 6159dc58f50d3e4680779b7989bbd4d49a76bad5
src/main/java/com/taoke/autopay/factory/OrderFactory.java
@@ -1,14 +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.vo.AdminOrderVO;
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
@@ -42,7 +50,21 @@
                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) {
@@ -74,25 +96,12 @@
    }
    public static AdminOrderVO createAdminVO(KeyOrder order, ClientInfo info) {
    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());
        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.setState(order.getState());
        vo.setStateDesc(order.getStateDesc());
        vo.setOrderStateDesc(getOrderStateDesc(order.getOrderState(), order.getOrderType()));
        vo.setExcutePayTime(order.getExcutePayTime());
@@ -102,11 +111,25 @@
        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", orderCountInfo.getDay(), orderCountInfo.getUid(), orderCountInfo.getOrderType());
        return String.format("%s-%s-%s-%s", orderCountInfo.getDay(), orderCountInfo.getUid(), orderCountInfo.getOrderType(),orderCountInfo.getOrderChannel()==null?"": orderCountInfo.getOrderChannel().name());
    }