package com.sandu.ximon.admin.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.sandu.ximon.admin.utils.OrderUtils; import com.sandu.ximon.dao.domain.C3mOrder; import com.sandu.ximon.dao.enums.OrderStatus; import com.sandu.ximon.dao.enums.OrderType; import lombok.Data; import java.util.Date; /** * @Author liuhaonan * @Date 2022/3/10 11:48 * @Version 1.0 */ @Data public class C3mOrderVO extends C3mOrder{ public static String REQUEST_URL = "http://www.ximonsmart.com/charge/#/charge/"; /** * 订单ID */ private Long orderId; /** * 灯杆ID */ private Long poleId; /** * 充电桩MAC */ private String c3Mac; /** * 对应的灯杆设备mac */ private String poleMac; /** * 订单商户号 */ private String outTradeNo; /** * 订单类型(C3mOrderType) */ private String orderType; /** * 订单总金额 */ private Double totalAmount; /** * 实收金额 */ private Double receiptAmount; /** * 退款 */ private Double refundAmount; /** * 买家帐号(支付宝) */ private String aliBuyerLogonId; /** * 预约电量 */ private Integer subscribeChargingCapacity; /** * 实充电量 */ private Double actualChargingCapacity; /** * 订单创建时间戳 */ private Long createTimestamp; /** * 订单支付时间戳 */ private Long payTimestamp; /** * 订单退款时间戳 */ private Long refundTimestamp; /** * 订单退款说明 */ private String refundMsg; /** * 开始充电时间戳 */ private Long startChargingTimestamp; /** * 结束充电时间戳 */ private Long stopChargingTimestamp; /** * 订单状态:// 未支付(0),已支付(1),已退款(2),退款中(3),退款失败(4),订单完成(5) */ private Integer orderStatus; /** * 充电桩名称 */ private String c3Name; /** * 灯杆名称 */ private String poleName; @TableField(exist = false) private static final long serialVersionUID = 1L; /** * 生成新订单 * @param c3Mac C3物理地址 * @param orderType 订单类型 * @param totalAmount 总金额 * @param subscribeChargingCapacity 预充电量 */ public C3mOrder generateOrder(Long poleId, String poleMac, String c3Mac, OrderType orderType, Double totalAmount, Integer subscribeChargingCapacity) { this.poleId = poleId; this.poleMac = poleMac; this.orderId = -1L; this.c3Mac = c3Mac; this.outTradeNo = OrderUtils.generateOutTradeNo(); this.orderType = orderType.getCode(); this.totalAmount = totalAmount; this.receiptAmount = 0d; this.refundAmount = 0d; this.aliBuyerLogonId = ""; this.subscribeChargingCapacity = subscribeChargingCapacity; this.actualChargingCapacity = 0d; this.createTimestamp = new Date().getTime(); this.payTimestamp = 0L; this.startChargingTimestamp = 0L; this.stopChargingTimestamp = 0L; this.refundTimestamp = 0L; this.refundMsg = ""; this.orderStatus = OrderStatus.NO_PAY.getStatus(); return this; } }