From 3f674bd17a4ec680b49e0a1444c78780d1f12306 Mon Sep 17 00:00:00 2001 From: liwq <122639653@qq.com> Date: Fri, 29 Aug 2025 09:44:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AE=A2=E5=8D=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/handler/GlobalExceptionHandler.java | 4 +- .../order/vo/TradeOrderDetailRespVO.java | 133 ++++++++++++------ .../app/order/AppTradeOrderController.java | 2 +- .../convert/order/TradeOrderConvert.java | 28 ++-- .../dto/CombinationRecordCreateReqDTO.java | 2 +- .../dal/dataobject/order/TradeOrderDO.java | 119 +--------------- .../dataobject/order/TradeOrderItemDO.java | 4 +- .../dal/mysql/order/TradeOrderMapper.java | 39 ++--- .../aftersale/AfterSaleServiceImpl.java | 8 +- .../order/TradeOrderQueryServiceImpl.java | 2 +- .../order/TradeOrderUpdateServiceImpl.java | 65 ++++----- 11 files changed, 163 insertions(+), 243 deletions(-) diff --git a/tashow-framework/tashow-framework-web/src/main/java/com/tashow/cloud/web/web/core/handler/GlobalExceptionHandler.java b/tashow-framework/tashow-framework-web/src/main/java/com/tashow/cloud/web/web/core/handler/GlobalExceptionHandler.java index 5514a74..914490f 100644 --- a/tashow-framework/tashow-framework-web/src/main/java/com/tashow/cloud/web/web/core/handler/GlobalExceptionHandler.java +++ b/tashow-framework/tashow-framework-web/src/main/java/com/tashow/cloud/web/web/core/handler/GlobalExceptionHandler.java @@ -351,9 +351,9 @@ public class GlobalExceptionHandler { } // 4. 订单系统 if (StrUtil.containsAny(message, "product_", "promotion_", "trade_")) { - log.error("[商城系统 tashow-module-trade - 表结构未导入]"); + log.error("[订单系统 tashow-module-trade"+StrUtil.subBetween(message,"Table","does")+"- 表结构未导入]"); return CommonResult.error(NOT_IMPLEMENTED.getCode(), - "[商城系统 tashow-module-trade - 表结构未导入]"); + "[订单系统表结构未导入]"); } // 5. ERP 系统 if (message.contains("erp_")) { diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java index 6a4801e..a87ae08 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java @@ -2,63 +2,114 @@ package com.tashow.cloud.trade.controller.admin.order.vo; // 移除Swagger相关导入 -import com.tashow.cloud.trade.controller.admin.base.member.user.MemberUserRespVO; -import com.tashow.cloud.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO; import lombok.Data; +import lombok.experimental.Accessors; import java.time.LocalDateTime; -import java.util.List; // 管理后台 - 交易订单的详情 Response VO @Data +@Accessors(chain = true) public class TradeOrderDetailRespVO extends TradeOrderBaseVO { - /** - * 订单项列表 - */ - private List items; + //基本信息 + private TradeOrderBaseInfo tradeOrderInfoBase; + //配送信息 + private TradeDeliveryInfo tradeDeliveryInfo; + //商品信息 + private String tradeProductInfo; + //扩展服务信息 + private String tradeExtendServeInfo; + //附加费信息 + private String tradeExtendCostInfo; - /** - * 下单用户信息 - */ - private MemberUserRespVO user; - /** - * 推广用户信息 - */ - private MemberUserRespVO brokerageUser; - /** - * 操作日志列表 - */ - private List logs; - - // 收件人地区名字 - 必填,示例:上海 上海市 普陀区 - private String receiverAreaName; - - // 管理后台 - 交易订单的操作日志 @Data - public static class OrderLog { - - // 操作详情 - 必填,示例:订单发货 - private String content; - - // 创建时间 - 必填,示例:2023-06-01 10:50:20 + @Accessors(chain = true) + class TradeOrderBaseInfo{ + //订单id + private String id; + //订单编号 + private String orderNo; + //订单状态 + private String orderStatus; + //订单类型 + private String orderType; + //订单来源 + private String orderTerminal; + //创建时间 private LocalDateTime createTime; - - // 用户类型 - 必填,示例:1 - private Integer userType; + //完成时间 + private LocalDateTime finishTime; + //取消时间 + private LocalDateTime cancelTime; + //订单金额 + private String payPrice; + //优惠金额 + private String discountPrice; + //退款金额 + private String refundPrice; + //实收金额 + private String actualPrice; + //支付方式 + private String payChannel; + //交易流水号 + private String payOrderId; + //支付时间 + private LocalDateTime payTime; + // 退款状态 - 必填,示例:待审核/待退款/已退款/已拒绝 + private String refundStatus; + // 售后编号 - 必填,示例:450878 + private String afterSaleCode; + // 售后类型 - 必填,示例:仅退款/退货退款/可扩展增加使用 + private String afterSaleType; + // 退款类型 - 必填,示例:订单退款/差价退款/运费退款/可扩展增加 + private String refundType; + // 退款原因 - 必填,示例:不想要了 + private String refundReason; + // 退款说明 - 必填,示例:这里是用户填写的退款描述 + private String refundRemark; + // 退款金额 - 必填 + private Integer refundAmount; + // 申请人 - 必填,示例:用户/商家/平台+ID + private String applicant; + // 审核人 - 必填,示例:姓名+ID + private String auditor; + // 审核时间 - 必填,示例:2025-07-01 12:00:00 + private LocalDateTime auditTime; + // 退款方式 - 必填,示例:系统自动退款 + private String refundMethod; + // 退款至 - 必填,示例:原支付方式返还 + private String refundTo; + // 关闭时间 - 必填,示例:2025-07-01 12:00:00 + private LocalDateTime closeTime; + //用户昵称 示例:钱多多 + private String userNickname; + //用户ID 示例:666 + private Long userId; } - // 管理后台 - 交易订单的详情的订单项目 @Data - public static class Item extends TradeOrderItemBaseVO { - - /** - * 属性数组 - */ - private List properties; - + @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; } + + + } diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/app/order/AppTradeOrderController.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/app/order/AppTradeOrderController.java index 842fed3..f842109 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/app/order/AppTradeOrderController.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/app/order/AppTradeOrderController.java @@ -96,7 +96,7 @@ public class AppTradeOrderController { } // 1.2 sync 仅在等待支付 if (Boolean.TRUE.equals(sync) - && TradeOrderStatusEnum.isUnpaid(order.getStatus()) && !order.getPayStatus()) { + && TradeOrderStatusEnum.isUnpaid(order.getOrderStatus()) && !order.getPayStatus()) { tradeOrderUpdateService.syncOrderPayStatusQuietly(order.getId(), order.getPayOrderId()); // 重新查询,因为同步后,可能会有变化 order = tradeOrderQueryService.getOrder(id); diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java index 12173ef..862d9f7 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java @@ -53,8 +53,7 @@ public interface TradeOrderConvert { @Mappings({ @Mapping(target = "id", ignore = true), @Mapping(source = "userId", target = "userId"), - @Mapping(source = "createReqVO.couponId", target = "couponId"), - @Mapping(target = "remark", ignore = true), + @Mapping(target = "merchantRemark", ignore = true), @Mapping(source = "createReqVO.remark", target = "userRemark"), }) TradeOrderDO convert(Long userId, AppTradeOrderCreateReqVO createReqVO); @@ -92,7 +91,7 @@ public interface TradeOrderConvert { .setAppKey(orderProperties.getPayAppKey()).setUserIp(order.getUserIp()); // 商户相关字段 createReqDTO.setMerchantOrderId(String.valueOf(order.getId())); - String subject = orderItems.get(0).getSpuName(); + String subject = orderItems.get(0).getProdName(); subject = StrUtils.maxLength(subject, PayOrderCreateReqDTO.SUBJECT_MAX_LENGTH); // 避免超过 32 位 createReqDTO.setSubject(subject); createReqDTO.setBody(subject); // TODO 芋艿:临时写死 @@ -130,16 +129,16 @@ public interface TradeOrderConvert { List 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)); +// // 处理收货地址 +// orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId())); +// // 处理用户信息 +// orderVO.setUser(convert(user)); +// orderVO.setBrokerageUser(convert(brokerageUser)); +// // 处理日志 +// orderVO.setLogs(convertList03(orderLogs)); return orderVO; } - List convertList03(List orderLogs); + List convertList03(List orderLogs); TradeOrderDetailRespVO convert2(TradeOrderDO order, List items); @@ -251,7 +250,7 @@ public interface TradeOrderConvert { ProductSpuRespDTO spu, ProductSkuRespDTO sku) { BrokerageAddReqBO bo = new BrokerageAddReqBO().setBizId(String.valueOf(item.getId())).setSourceUserId(item.getUserId()) .setBasePrice(item.getPayPrice()) - .setTitle(StrUtil.format("{}成功购买{}", user.getNickname(), item.getSpuName())) + .setTitle(StrUtil.format("{}成功购买{}", user.getNickname(), item.getProdId())) .setFirstFixedPrice(0).setSecondFixedPrice(0); if (BooleanUtil.isTrue(spu.getSubCommissionType())) { bo.setFirstFixedPrice(sku.getFirstBrokeragePrice()).setSecondFixedPrice(sku.getSecondBrokeragePrice()); @@ -263,14 +262,11 @@ public interface TradeOrderConvert { List convertList04(List list); @Mappings({ - @Mapping(target = "activityId", source = "order.combinationActivityId"), - @Mapping(target = "spuId", source = "item.spuId"), + @Mapping(target = "prodId", source = "item.prodId"), @Mapping(target = "skuId", source = "item.skuId"), @Mapping(target = "count", source = "item.count"), @Mapping(target = "orderId", source = "order.id"), @Mapping(target = "userId", source = "order.userId"), - @Mapping(target = "headId", source = "order.combinationHeadId"), - @Mapping(target = "combinationPrice", source = "item.payPrice"), }) CombinationRecordCreateReqDTO convert(TradeOrderDO order, TradeOrderItemDO item); diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/dto/CombinationRecordCreateReqDTO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/dto/CombinationRecordCreateReqDTO.java index 1db81d0..b40d7d4 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/dto/CombinationRecordCreateReqDTO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/dto/CombinationRecordCreateReqDTO.java @@ -20,7 +20,7 @@ public class CombinationRecordCreateReqDTO { * spu 编号 */ @NotNull(message = "spu 编号不能为空") - private Long spuId; + private Long prodId; /** * sku 编号 */ diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderDO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderDO.java index 5f5654e..133a138 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderDO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderDO.java @@ -1,11 +1,8 @@ package com.tashow.cloud.trade.dal.dataobject.order; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.tashow.cloud.common.enums.TerminalEnum; import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; -import com.tashow.cloud.mybatis.mybatis.core.type.LongListTypeHandler; import com.tashow.cloud.trade.dal.dataobject.delivery.DeliveryExpressDO; import com.tashow.cloud.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; import com.tashow.cloud.tradeapi.enums.delivery.DeliveryTypeEnum; @@ -16,15 +13,13 @@ import com.tashow.cloud.tradeapi.enums.order.TradeOrderTypeEnum; import lombok.*; import java.time.LocalDateTime; -import java.util.List; -import java.util.Map; /** * 交易订单 DO * * @author 芋道源码 */ -@TableName(value = "trade_order", autoResultMap = true) +@TableName(value = "tz_trade_order", autoResultMap = true) @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @@ -54,13 +49,13 @@ public class TradeOrderDO extends BaseDO { * * 枚举 {@link TradeOrderTypeEnum} */ - private Integer type; + private Integer orderType; /** * 订单来源 * * 枚举 {@link TerminalEnum} */ - private Integer terminal; + private Integer orderTerminal; /** * 用户编号 * @@ -80,7 +75,7 @@ public class TradeOrderDO extends BaseDO { * * 枚举 {@link TradeOrderStatusEnum} */ - private Integer status; + private Integer orderStatus; /** * 购买的商品数量 */ @@ -102,7 +97,7 @@ public class TradeOrderDO extends BaseDO { /** * 商家备注 */ - private String remark; + private String merchantRemark; /** * 是否评价 * @@ -111,12 +106,6 @@ public class TradeOrderDO extends BaseDO { */ private Boolean commentStatus; - /** - * 推广人编号 - * - */ - private Long brokerageUserId; - // ========== 价格 + 支付基本信息 ========== // 价格文档 - 淘宝:https://open.taobao.com/docV3.htm?docId=108471&docType=1 @@ -257,102 +246,4 @@ public class TradeOrderDO extends BaseDO { */ private Integer refundPrice; - // ========== 营销基本信息 ========== - /** - * 优惠劵编号 - */ - private Long couponId; - /** - * 优惠劵减免金额,单位:分 - * - * 对应 taobao 的 trade.coupon_fee 字段 - */ - private Integer couponPrice; - /** - * 使用的积分 - */ - private Integer usePoint; - /** - * 积分抵扣的金额,单位:分 - * - * 对应 taobao 的 trade.point_fee 字段 - */ - private Integer pointPrice; - /** - * 赠送的积分 - */ - private Integer givePoint; - /** - * 退还的使用的积分 - */ - private Integer refundPoint; - /** - * VIP 减免金额,单位:分 - */ - private Integer vipPrice; - - /** - * 赠送的优惠劵 - * - * key: 优惠劵模版编号 - * value:对应的优惠券数量 - * - * 目的:用于订单支付后赠送优惠券 - */ - @TableField(typeHandler = JacksonTypeHandler.class) - private Map giveCouponTemplateCounts; - /** - * 赠送的优惠劵编号 - * - * 目的:用于后续取消或者售后订单时,需要扣减赠送 - */ - @TableField(typeHandler = LongListTypeHandler.class) - private List giveCouponIds; - - /** - * 秒杀活动编号 - * - * 关联 SeckillActivityDO 的 id 字段 - */ - private Long seckillActivityId; - - /** - * 砍价活动编号 - * - * 关联 BargainActivityDO 的 id 字段 - */ - private Long bargainActivityId; - /** - * 砍价记录编号 - * - * 关联 BargainRecordDO 的 id 字段 - */ - private Long bargainRecordId; - - /** - * 拼团活动编号 - * - * 关联 CombinationActivityDO 的 id 字段 - */ - private Long combinationActivityId; - /** - * 拼团团长编号 - * - * 关联 CombinationRecordDO 的 headId 字段 - */ - private Long combinationHeadId; - /** - * 拼团记录编号 - * - * 关联 CombinationRecordDO 的 id 字段 - */ - private Long combinationRecordId; - - /** - * 积分商城活动的编号 - * - * 关联 PointActivityDO 的 id 字段 - */ - private Long pointActivityId; - } diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderItemDO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderItemDO.java index 6cf1a25..02ef66f 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderItemDO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderItemDO.java @@ -52,13 +52,13 @@ public class TradeOrderItemDO extends BaseDO { * * 关联 ProductSkuDO 的 spuId 编号 */ - private Long spuId; + private Long prodId; /** * 商品 SPU 名称 * * 冗余 ProductSkuDO 的 spuName 编号 */ - private String spuName; + private String prodName; /** * 商品 SKU 编号 * diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/mysql/order/TradeOrderMapper.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/mysql/order/TradeOrderMapper.java index c418946..b8e219d 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/mysql/order/TradeOrderMapper.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/mysql/order/TradeOrderMapper.java @@ -21,7 +21,7 @@ public interface TradeOrderMapper extends BaseMapperX { default int updateByIdAndStatus(Long id, Integer status, TradeOrderDO update) { return update(update, new LambdaUpdateWrapper() - .eq(TradeOrderDO::getId, id).eq(TradeOrderDO::getStatus, status)); + .eq(TradeOrderDO::getId, id).eq(TradeOrderDO::getOrderStatus, status)); } default TradeOrderDO selectByIdAndUserId(Long id, Long userId) { @@ -34,10 +34,10 @@ public interface TradeOrderMapper extends BaseMapperX { .eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId()) .eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType()) .inIfPresent(TradeOrderDO::getUserId, userIds) - .eqIfPresent(TradeOrderDO::getType, reqVO.getType()) - .eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus()) + .eqIfPresent(TradeOrderDO::getOrderType, reqVO.getType()) + .eqIfPresent(TradeOrderDO::getOrderStatus, reqVO.getStatus()) .eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode()) - .eqIfPresent(TradeOrderDO::getTerminal, reqVO.getTerminal()) + .eqIfPresent(TradeOrderDO::getOrderTerminal, reqVO.getTerminal()) .eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId()) .inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds()) .likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode()) @@ -55,10 +55,10 @@ public interface TradeOrderMapper extends BaseMapperX { .eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId()) .eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType()) .inIfPresent(TradeOrderDO::getUserId, userIds) - .eqIfPresent(TradeOrderDO::getType, reqVO.getType()) - .eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus()) + .eqIfPresent(TradeOrderDO::getOrderType, reqVO.getType()) + .eqIfPresent(TradeOrderDO::getOrderStatus, reqVO.getStatus()) .eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode()) - .eqIfPresent(TradeOrderDO::getTerminal, reqVO.getTerminal()) + .eqIfPresent(TradeOrderDO::getOrderTerminal, reqVO.getTerminal()) .eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId()) .inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds()) .likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode()) @@ -69,7 +69,7 @@ public interface TradeOrderMapper extends BaseMapperX { default PageResult selectPage(AppTradeOrderPageReqVO reqVO, Long userId) { return selectPage(reqVO, new LambdaQueryWrapperX() .eq(TradeOrderDO::getUserId, userId) - .eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus()) + .eqIfPresent(TradeOrderDO::getOrderStatus, reqVO.getStatus()) .eqIfPresent(TradeOrderDO::getCommentStatus, reqVO.getCommentStatus()) .orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status,不同的排序 } @@ -77,7 +77,7 @@ public interface TradeOrderMapper extends BaseMapperX { default Long selectCountByUserIdAndStatus(Long userId, Integer status, Boolean commentStatus) { return selectCount(new LambdaQueryWrapperX() .eq(TradeOrderDO::getUserId, userId) - .eqIfPresent(TradeOrderDO::getStatus, status) + .eqIfPresent(TradeOrderDO::getOrderStatus, status) .eqIfPresent(TradeOrderDO::getCommentStatus, commentStatus)); } @@ -89,20 +89,20 @@ public interface TradeOrderMapper extends BaseMapperX { default List selectListByStatusAndCreateTimeLt(Integer status, LocalDateTime createTime) { return selectList(new LambdaUpdateWrapper() - .eq(TradeOrderDO::getStatus, status) + .eq(TradeOrderDO::getOrderStatus, status) .lt(TradeOrderDO::getCreateTime, createTime)); } default List selectListByStatusAndDeliveryTimeLt(Integer status, LocalDateTime deliveryTime) { return selectList(new LambdaUpdateWrapper() - .eq(TradeOrderDO::getStatus, status) + .eq(TradeOrderDO::getOrderStatus, status) .lt(TradeOrderDO::getDeliveryTime, deliveryTime)); } default List selectListByStatusAndReceiveTimeLt(Integer status, LocalDateTime receive, Boolean commentStatus) { return selectList(new LambdaUpdateWrapper() - .eq(TradeOrderDO::getStatus, status) + .eq(TradeOrderDO::getOrderStatus, status) .lt(TradeOrderDO::getReceiveTime, receive) .eq(TradeOrderDO::getCommentStatus, commentStatus)); } @@ -110,18 +110,6 @@ public interface TradeOrderMapper extends BaseMapperX { default List selectListByUserIdAndActivityId(Long userId, Long activityId, TradeOrderTypeEnum type) { LambdaQueryWrapperX queryWrapperX = new LambdaQueryWrapperX<>(); queryWrapperX.eq(TradeOrderDO::getUserId, userId); - if (TradeOrderTypeEnum.isSeckill(type.getType())) { - queryWrapperX.eq(TradeOrderDO::getSeckillActivityId, activityId); - } - if (TradeOrderTypeEnum.isBargain(type.getType())) { - queryWrapperX.eq(TradeOrderDO::getBargainActivityId, activityId); - } - if (TradeOrderTypeEnum.isCombination(type.getType())) { - queryWrapperX.eq(TradeOrderDO::getCombinationActivityId, activityId); - } - if (TradeOrderTypeEnum.isPoint(type.getType())) { - queryWrapperX.eq(TradeOrderDO::getPointActivityId, activityId); - } return selectList(queryWrapperX); } @@ -132,8 +120,7 @@ public interface TradeOrderMapper extends BaseMapperX { default TradeOrderDO selectByUserIdAndCombinationActivityIdAndStatus(Long userId, Long combinationActivityId, Integer status) { return selectOne(new LambdaQueryWrapperX() .eq(TradeOrderDO::getUserId, userId) - .eq(TradeOrderDO::getStatus, status) - .eq(TradeOrderDO::getCombinationActivityId, combinationActivityId) + .eq(TradeOrderDO::getOrderStatus, status) ); } diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/aftersale/AfterSaleServiceImpl.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/aftersale/AfterSaleServiceImpl.java index f70b6e4..fc54f80 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/aftersale/AfterSaleServiceImpl.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/aftersale/AfterSaleServiceImpl.java @@ -137,16 +137,16 @@ public class AfterSaleServiceImpl implements AfterSaleService { } // TODO 芋艿:超过一定时间,不允许售后 // 已取消,无法发起售后 - if (TradeOrderStatusEnum.isCanceled(order.getStatus())) { + if (TradeOrderStatusEnum.isCanceled(order.getOrderStatus())) { throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_CANCELED); } // 未支付,无法发起售后 - if (!TradeOrderStatusEnum.havePaid(order.getStatus())) { + if (!TradeOrderStatusEnum.havePaid(order.getOrderStatus())) { throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_PAID); } // 如果是【退货退款】的情况,需要额外校验是否发货 if (createReqVO.getWay().equals(AfterSaleWayEnum.RETURN_AND_REFUND.getWay()) - && !TradeOrderStatusEnum.haveDelivered(order.getStatus())) { + && !TradeOrderStatusEnum.haveDelivered(order.getOrderStatus())) { throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_DELIVERED); } return orderItem; @@ -161,7 +161,7 @@ public class AfterSaleServiceImpl implements AfterSaleService { // 标记是售中还是售后 TradeOrderDO order = tradeOrderQueryService.getOrder(orderItem.getUserId(), orderItem.getOrderId()); afterSale.setOrderNo(order.getOrderNum()); // 记录 orderNo 订单流水,方便后续检索 - afterSale.setType(TradeOrderStatusEnum.isCompleted(order.getStatus()) + afterSale.setType(TradeOrderStatusEnum.isCompleted(order.getOrderStatus()) ? AfterSaleTypeEnum.AFTER_SALE.getType() : AfterSaleTypeEnum.IN_SALE.getType()); tradeAfterSaleMapper.insert(afterSale); diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryServiceImpl.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryServiceImpl.java index 3ad1c72..d045a6c 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryServiceImpl.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderQueryServiceImpl.java @@ -177,7 +177,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService { public int getActivityProductCount(Long userId, Long activityId, TradeOrderTypeEnum type) { // 获得订单列表 List orders = tradeOrderMapper.selectListByUserIdAndActivityId(userId, activityId, type); - orders.removeIf(order -> TradeOrderStatusEnum.isCanceled(order.getStatus())); // 过滤掉【已取消】的订单 + orders.removeIf(order -> TradeOrderStatusEnum.isCanceled(order.getOrderStatus())); // 过滤掉【已取消】的订单 if (CollUtil.isEmpty(orders)) { return 0; } diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java index 1bae542..0790c1b 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/service/order/TradeOrderUpdateServiceImpl.java @@ -177,15 +177,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { // TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, createReqVO, calculateRespBO); // order.setType(calculateRespBO.getType()); // order.setOrderNum(tradeNoRedisDAO.generate(TradeNoRedisDAO.TRADE_ORDER_NO_PREFIX)); -// order.setStatus(TradeOrderStatusEnum.UNPAID.getStatus()); -// order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()); +// order.setStatus(TradeOrderStatusEnum.UNPAID.getOrderStatus()); +// order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getOrderStatus()); // order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum)); // order.setUserIp(getClientIP()).setTerminal(getTerminal()); // // 使用 + 赠送优惠券 // order.setGiveCouponTemplateCounts(calculateRespBO.getGiveCouponTemplateCounts()); // // 支付 + 退款信息 // order.setAdjustPrice(0).setPayStatus(false); -// order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0); +// order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getOrderStatus()).setRefundPrice(0); // // 物流信息 // order.setDeliveryType(createReqVO.getDeliveryType()); // if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.EXPRESS.getType())) { @@ -232,7 +232,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { } // 4. 插入订单日志 - TradeOrderLogUtils.setOrderInfo(order.getId(), null, order.getStatus()); + TradeOrderLogUtils.setOrderInfo(order.getId(), null, order.getOrderStatus()); // TODO @LeeYan9: 是可以思考下, 订单的营销优惠记录, 应该记录在哪里, 微信讨论起来! } @@ -255,7 +255,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { // 1.1 校验订单是否存在 TradeOrderDO order = validateOrderExists(id); // 1.2 校验订单已支付 - if (!TradeOrderStatusEnum.isUnpaid(order.getStatus()) || order.getPayStatus()) { + if (!TradeOrderStatusEnum.isUnpaid(order.getOrderStatus()) || order.getPayStatus()) { // 特殊:如果订单已支付,且支付单号相同,直接返回,说明重复回调 if (ObjectUtil.equals(order.getPayOrderId(), payOrderId)) { log.warn("[updateOrderPaid][order({}) 已支付,且支付单号相同({}),直接返回]", order, payOrderId); @@ -270,8 +270,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { PayOrderRespDTO payOrder = validatePayOrderPaid(order, payOrderId); // 3. 更新 TradeOrderDO 状态为已支付,等待发货 - int updateCount = tradeOrderMapper.updateByIdAndStatus(id, order.getStatus(), - new TradeOrderDO().setStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus()).setPayStatus(true) + int updateCount = tradeOrderMapper.updateByIdAndStatus(id, order.getOrderStatus(), + new TradeOrderDO().setOrderStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus()).setPayStatus(true) .setPayTime(LocalDateTime.now()).setPayChannelCode("")); if (updateCount == 0) { throw exception(ORDER_UPDATE_PAID_STATUS_NOT_UNPAID); @@ -282,7 +282,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { tradeOrderHandlers.forEach(handler -> handler.afterPayOrder(order, orderItems)); // 5. 记录订单日志 - TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.UNDELIVERED.getStatus()); + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), TradeOrderStatusEnum.UNDELIVERED.getStatus()); TradeOrderLogUtils.setUserInfo(order.getUserId(), UserTypeEnum.MEMBER.getValue()); } @@ -361,14 +361,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { updateOrderObj.setLogisticsId(0L).setLogisticsNo(""); } // 执行更新 - updateOrderObj.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus()).setDeliveryTime(LocalDateTime.now()); - int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), updateOrderObj); + updateOrderObj.setOrderStatus(TradeOrderStatusEnum.DELIVERED.getStatus()).setDeliveryTime(LocalDateTime.now()); + int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getOrderStatus(), updateOrderObj); if (updateCount == 0) { throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED); } // 3. 记录订单日志 - TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.DELIVERED.getStatus(), + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), TradeOrderStatusEnum.DELIVERED.getStatus(), MapUtil.builder().put("deliveryName", express != null ? express.getName() : "") .put("logisticsNo", express != null ? deliveryReqVO.getLogisticsNo() : "").build()); @@ -476,14 +476,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { */ private void receiveOrder0(TradeOrderDO order) { // 更新 TradeOrderDO 状态为已完成 - int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), - new TradeOrderDO().setStatus(TradeOrderStatusEnum.COMPLETED.getStatus()).setReceiveTime(LocalDateTime.now())); + int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getOrderStatus(), + new TradeOrderDO().setOrderStatus(TradeOrderStatusEnum.COMPLETED.getStatus()).setReceiveTime(LocalDateTime.now())); if (updateCount == 0) { throw exception(ORDER_RECEIVE_FAIL_STATUS_NOT_DELIVERED); } // 插入订单日志 - TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.COMPLETED.getStatus()); + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), TradeOrderStatusEnum.COMPLETED.getStatus()); } /** @@ -502,7 +502,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { throw exception(ORDER_NOT_FOUND); } // 校验订单是否是待收货状态 - if (!TradeOrderStatusEnum.isDelivered(order.getStatus())) { + if (!TradeOrderStatusEnum.isDelivered(order.getOrderStatus())) { throw exception(ORDER_RECEIVE_FAIL_STATUS_NOT_DELIVERED); } return order; @@ -518,7 +518,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { throw exception(ORDER_NOT_FOUND); } // 1.2 校验状态 - if (ObjectUtil.notEqual(order.getStatus(), TradeOrderStatusEnum.UNPAID.getStatus())) { + if (ObjectUtil.notEqual(order.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus())) { throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID); } @@ -568,8 +568,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { */ private void cancelOrder0(TradeOrderDO order, TradeOrderCancelTypeEnum cancelType) { // 1. 更新 TradeOrderDO 状态为已取消 - int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), - new TradeOrderDO().setStatus(TradeOrderStatusEnum.CANCELED.getStatus()) + int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getOrderStatus(), + new TradeOrderDO().setOrderStatus(TradeOrderStatusEnum.CANCELED.getStatus()) .setCancelType(cancelType.getType()).setCancelTime(LocalDateTime.now())); if (updateCount == 0) { throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID); @@ -580,7 +580,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { tradeOrderHandlers.forEach(handler -> handler.afterCancelOrder(order, orderItems)); // 3. 增加订单日志 - TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.CANCELED.getStatus()); + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), TradeOrderStatusEnum.CANCELED.getStatus()); } /** @@ -597,7 +597,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { return; } tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()) - .setStatus(TradeOrderStatusEnum.CANCELED.getStatus()) + .setOrderStatus(TradeOrderStatusEnum.CANCELED.getStatus()) .setCancelType(TradeOrderCancelTypeEnum.AFTER_SALE_CLOSE.getType()).setCancelTime(LocalDateTime.now())); // 2. 执行 TradeOrderHandler 的后置处理 @@ -615,14 +615,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { throw exception(ORDER_NOT_FOUND); } // 1.2 校验状态 - if (ObjectUtil.notEqual(order.getStatus(), TradeOrderStatusEnum.CANCELED.getStatus())) { + if (ObjectUtil.notEqual(order.getOrderStatus(), TradeOrderStatusEnum.CANCELED.getStatus())) { throw exception(ORDER_DELETE_FAIL_STATUS_NOT_CANCEL); } // 2. 删除订单 tradeOrderMapper.deleteById(id); // 3. 记录日志 - TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus()); + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus()); } @Override @@ -674,7 +674,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { payOrderApi.updatePayOrderPrice(order.getPayOrderId(), newPayPrice).checkError(); // 5. 记录订单日志 - TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus(), + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus(), MapUtil.builder().put("oldPayPrice", MoneyUtils.fenToYuanStr(order.getPayPrice())) .put("adjustPrice", MoneyUtils.fenToYuanStr(reqVO.getAdjustPrice())) .put("newPayPrice", MoneyUtils.fenToYuanStr(newPayPrice)).build()); @@ -686,7 +686,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { // 校验交易订单 TradeOrderDO order = validateOrderExists(reqVO.getId()); // 只有待发货状态,才可以修改订单收货地址; - if (!TradeOrderStatusEnum.isUndelivered(order.getStatus())) { + if (!TradeOrderStatusEnum.isUndelivered(order.getOrderStatus())) { throw exception(ORDER_UPDATE_ADDRESS_FAIL_STATUS_NOT_DELIVERED); } @@ -694,7 +694,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { tradeOrderMapper.updateById(TradeOrderConvert.INSTANCE.convert(reqVO)); // 记录订单日志 - TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus()); + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus()); } @Override @@ -753,13 +753,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { // 2.1 更新订单的退款金额、积分 Integer orderRefundPrice = order.getRefundPrice() + refundPrice; - Integer orderRefundPoint = order.getRefundPoint() + orderItem.getUsePoint(); Integer refundStatus = isAllOrderItemAfterSaleSuccess(order.getId()) ? TradeOrderRefundStatusEnum.ALL.getStatus() // 如果都售后成功,则需要取消订单 : TradeOrderRefundStatusEnum.PART.getStatus(); tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()) - .setRefundStatus(refundStatus) - .setRefundPrice(orderRefundPrice).setRefundPoint(orderRefundPoint)); + .setRefundStatus(refundStatus)); // 2.2 如果全部退款,则进行取消订单 getSelf().cancelOrderByAfterSale(order, orderRefundPrice); } @@ -807,7 +805,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { if (order == null) { throw exception(ORDER_NOT_FOUND); } - if (ObjectUtil.notEqual(order.getStatus(), TradeOrderStatusEnum.COMPLETED.getStatus())) { + if (ObjectUtil.notEqual(order.getOrderStatus(), TradeOrderStatusEnum.COMPLETED.getStatus())) { throw exception(ORDER_COMMENT_FAIL_STATUS_NOT_COMPLETED); } if (ObjectUtil.notEqual(order.getCommentStatus(), Boolean.FALSE)) { @@ -823,7 +821,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { // tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE) // .setFinishTime(LocalDateTime.now())); // // 增加订单日志。注意:只有在所有订单项都评价后,才会增加 -// TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus()); +// TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus()); // } return commentId; } @@ -855,8 +853,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @Transactional(rollbackFor = Exception.class) public void updateOrderCombinationInfo(Long orderId, Long activityId, Long combinationRecordId, Long headId) { tradeOrderMapper.updateById( - new TradeOrderDO().setId(orderId).setCombinationActivityId(activityId) - .setCombinationRecordId(combinationRecordId).setCombinationHeadId(headId)); + new TradeOrderDO().setId(orderId)); } @Override @@ -900,8 +897,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { throw exception(ORDER_NOT_FOUND); } - // 2. 更新订单赠送的优惠券编号列表 - tradeOrderMapper.updateById(new TradeOrderDO().setId(orderId).setGiveCouponIds(giveCouponIds)); } /** @@ -935,7 +930,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE) .setFinishTime(LocalDateTime.now())); // 增加订单日志。注意:只有在所有订单项都评价后,才会增加 - TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus()); + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus()); } /**