订单详情接口调整

This commit is contained in:
2025-10-16 16:49:36 +08:00
parent 191eadbf77
commit 3fbb1383fd
4 changed files with 271 additions and 96 deletions

View File

@@ -87,12 +87,8 @@ public class TradeOrderController {
// 查询订单项
List<TradeOrderItemDO> orderItems = tradeOrderQueryService.getOrderItemListByOrderId(id);
// 拼接数据
// MemberUserRespDTO user = memberUserApi.getUser(order.getUserId()).getCheckedData();
// MemberUserRespDTO brokerageUser = order.getBrokerageUserId() != null ?
// memberUserApi.getUser(order.getBrokerageUserId()).getCheckedData() : null;
List<TradeOrderLogDO> orderLogs = tradeOrderLogService.getOrderLogListByOrderId(id);
return success(TradeOrderConvert.INSTANCE.convert(order, orderItems, orderLogs, null, null));
return success(TradeOrderConvert.INSTANCE.convert(order, orderItems, orderLogs));
}
// // 获得交易订单统计

View File

@@ -6,30 +6,95 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
// 管理后台 - 交易订单的详情 Response VO
@Data
@Accessors(chain = true)
public class TradeOrderDetailRespVO extends TradeOrderBaseVO {
public class TradeOrderDetailRespVO {
//基本信息
private TradeOrderBaseInfo tradeOrderInfoBase;
//商品信息
private TradeProductInfo tradeProductInfo;
//服务信息
private TradeServeInfo tradeServeInfo;
//扩展服务信息
private String tradeExtendServeInfo;
private TradeExtendServeInfo tradeExtendServeInfo;
//附加费信息
private String tradeExtendCostInfo;
//配送信息
private TradeDeliveryInfo tradeDeliveryInfo;
private TradeExtendCostInfo tradeExtendCostInfo;
/**
* 订单基本信息
*/
@Data
@Accessors(chain = true)
class TradeProductInfo{
public static class TradeOrderBaseInfo{
//订单id
private String id;
//订单编号
private String orderNo;
//订单状态
private String orderStatus;
//订单类型
private String orderType;
//订单类目
private String orderCategoryNameAndId;
//订单来源
private String orderTerminal;
//用户信息
private String userInfo;
//取消时间
private String cancelTime;
//取消原因
private String cancelReason;
//商家备注
private String merchantRemark;
//退款时间
private String refundTime;
//保障时间
private String propertyTime;
//保障状态
private String propertyStatus;
//订单总价
private Integer price;
//优惠金额
private Integer discountPrice;
//实付金额
private Integer payPrice;
//退款金额
private Integer refundPrice;
//实收金额
private Integer livePrice;
//支付方式(支付宝微信)
private String payType;
//支付渠道 (线上线下)
private String payChannelCode;
//交易流水号
private String payOrderId;
//支付时间
private LocalDateTime payTime;
//创建时间
private LocalDateTime createTime;
//完成时间
private LocalDateTime finishTime;
}
/**
* 商品信息
*/
@Data
@Accessors(chain = true)
public class TradeProductInfo{
//店铺log
private String shopLogoUrl;
@@ -76,86 +141,195 @@ public class TradeOrderDetailRespVO extends TradeOrderBaseVO {
}
/**
* 服务信息(殡葬专属字段)
*/
@Data
@Accessors(chain = true)
class TradeOrderBaseInfo{
//订单id
private String id;
//订单编号
private String orderNo;
//订单状态
private String orderStatus;
//订单类型
private String orderType;
//订单类目
private String orderCategoryNameAndId;
//订单来源
private String orderTerminal;
//用户信息
private String userInfo;
public class TradeServeInfo{
// 内部存储动态属性的 Map键为属性名称值为属性值
private Map<String, Object> properties;
/**
* 构造方法:初始化动态属性 Map
*/
public TradeServeInfo() {
properties = new HashMap<>();
}
//取消时间
private LocalDateTime cancelTime;
//取消原因
private String cancelReason;
//商家备注
private String merchantRemark;
/**
* setProperty 方法:添加或更新指定属性
*
* @param key 属性名称
* @param value 属性值
*/
public void setProperty(String key, Object value) {
if (key == null) {
throw new IllegalArgumentException("属性名称不能为 null");
}
properties.put(key, value);
}
//退款时间
private String refundTime;
/**
* getProperty 方法:获取指定属性的值
*
* @param key 属性名称
* @return 属性值;若不存在则返回 null
*/
public Object getProperty(String key) {
if (key == null) {
return null;
}
return properties.get(key);
}
//保障时间
private String propertyTime;
//保障状态
private String propertyStatus;
//订单总价
private String price;
//优惠金额
private String discountPrice;
//实付金额
private Integer payPrice;
//退款金额
private String refundPrice;
//实收金额
private String livePrice;
//支付方式(支付宝微信)
private String payType;
//支付渠道 (线上线下)
private String payChannelCode;
//交易流水号
private String payOrderId;
//支付时间
private LocalDateTime payTime;
//创建时间
private LocalDateTime createTime;
//完成时间
private LocalDateTime finishTime;
/**
* removeProperty 方法:删除指定属性
*
* @param key 属性名称
* @return 删除的属性值;若属性不存在则返回 null
*/
public Object removeProperty(String key) {
if (key == null) {
return null;
}
return properties.remove(key);
}
/**
* getProperties 方法:返回所有动态属性的 Map
*
* @return 内部存储属性的 Map
*/
public Map<String, Object> getProperties() {
return properties;
}
}
/**
* 服务信息(殡葬专属字段)
*/
@Data
@Accessors(chain = true)
class TradeDeliveryInfo{
//承运方
private String logisticsName;
//送货方式
private String logisticsType;
//送货上门
private String logisticsNum;
//收货人
private String receiverName;
//收货手机
private String receiverMobile;
//收货地址
private String receiverDetailAddress;
//快递详情
private String deliveryDetail;
public class TradeExtendServeInfo{
// 内部存储动态属性的 Map键为属性名称值为属性值
private Map<String, Object> properties;
/**
* 构造方法:初始化动态属性 Map
*/
public TradeExtendServeInfo() {
properties = new HashMap<>();
}
/**
* setProperty 方法:添加或更新指定属性
*
* @param key 属性名称
* @param value 属性值
*/
public void setProperty(String key, Object value) {
if (key == null) {
throw new IllegalArgumentException("属性名称不能为 null");
}
properties.put(key, value);
}
/**
* getProperty 方法:获取指定属性的值
*
* @param key 属性名称
* @return 属性值;若不存在则返回 null
*/
public Object getProperty(String key) {
if (key == null) {
return null;
}
return properties.get(key);
}
/**
* removeProperty 方法:删除指定属性
*
* @param key 属性名称
* @return 删除的属性值;若属性不存在则返回 null
*/
public Object removeProperty(String key) {
if (key == null) {
return null;
}
return properties.remove(key);
}
/**
* getProperties 方法:返回所有动态属性的 Map
*
* @return 内部存储属性的 Map
*/
public Map<String, Object> getProperties() {
return properties;
}
}
/**
* 服务信息(殡葬专属字段)
*/
@Data
@Accessors(chain = true)
public class TradeExtendCostInfo{
// 内部存储动态属性的 Map键为属性名称值为属性值
private Map<String, Object> properties;
/**
* 构造方法:初始化动态属性 Map
*/
public TradeExtendCostInfo() {
properties = new HashMap<>();
}
/**
* setProperty 方法:添加或更新指定属性
*
* @param key 属性名称
* @param value 属性值
*/
public void setProperty(String key, Object value) {
if (key == null) {
throw new IllegalArgumentException("属性名称不能为 null");
}
properties.put(key, value);
}
/**
* getProperty 方法:获取指定属性的值
*
* @param key 属性名称
* @return 属性值;若不存在则返回 null
*/
public Object getProperty(String key) {
if (key == null) {
return null;
}
return properties.get(key);
}
/**
* removeProperty 方法:删除指定属性
*
* @param key 属性名称
* @return 删除的属性值;若属性不存在则返回 null
*/
public Object removeProperty(String key) {
if (key == null) {
return null;
}
return properties.remove(key);
}
/**
* getProperties 方法:返回所有动态属性的 Map
*
* @return 内部存储属性的 Map
*/
public Map<String, Object> getProperties() {
return properties;
}
}
}

View File

@@ -73,6 +73,24 @@ public interface TradeOrderConvert {
TradeOrderPageRespVO convert(TradeOrderDO order, TradeOrderItemDO items);
//endregion
//region 订单详情
default TradeOrderDetailRespVO convert(TradeOrderDO order, List<TradeOrderItemDO> orderItems,List<TradeOrderLogDO> orderLogs) {
//
TradeOrderDetailRespVO orderVO = convert2(order, orderItems);
return orderVO;
}
@Mappings({
@Mapping(source = "order", target = "tradeOrderInfoBase"),
})
TradeOrderDetailRespVO convert2(TradeOrderDO order, List<TradeOrderItemDO> items);
@Mappings({
@Mapping(source = "items", target = "tradeOrderInfoBase"),
})
TradeOrderDetailRespVO convert3(TradeOrderItemDO items);
//endregion
@Mappings({
@Mapping(target = "id", ignore = true),
@Mapping(source = "userId", target = "userId"),
@@ -126,23 +144,11 @@ public interface TradeOrderConvert {
// ProductPropertyValueDetailRespVO convert(ProductPropertyValueDetailRespDTO bean);
default TradeOrderDetailRespVO convert(TradeOrderDO order, List<TradeOrderItemDO> orderItems,
List<TradeOrderLogDO> orderLogs,
MemberUserRespDTO user, MemberUserRespDTO brokerageUser) {
TradeOrderDetailRespVO orderVO = convert2(order, orderItems);
// // 处理收货地址
// orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId()));
// // 处理用户信息
// orderVO.setUser(convert(user));
// orderVO.setBrokerageUser(convert(brokerageUser));
// // 处理日志
// orderVO.setLogs(convertList03(orderLogs));
return orderVO;
}
List<TradeOrderDetailRespVO> convertList03(List<TradeOrderLogDO> orderLogs);
TradeOrderDetailRespVO convert2(TradeOrderDO order, List<TradeOrderItemDO> items);
MemberUserRespVO convert(MemberUserRespDTO bean);

View File

@@ -1,6 +1,5 @@
package com.tashow.cloud.trade.dal.dataobject.order;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.tashow.cloud.common.enums.UserTypeEnum;
@@ -13,7 +12,7 @@ import lombok.*;
*
* @author 陈賝
*/
@TableName("trade_order_log")
@TableName("tz_trade_order_log")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)