调整订单接口

This commit is contained in:
2025-08-29 09:44:37 +08:00
parent 52839e17cc
commit 3f674bd17a
11 changed files with 163 additions and 243 deletions

View File

@@ -351,9 +351,9 @@ public class GlobalExceptionHandler {
} }
// 4. 订单系统 // 4. 订单系统
if (StrUtil.containsAny(message, "product_", "promotion_", "trade_")) { 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(), return CommonResult.error(NOT_IMPLEMENTED.getCode(),
"[商城系统 tashow-module-trade - 表结构未导入]"); "[订单系统表结构未导入]");
} }
// 5. ERP 系统 // 5. ERP 系统
if (message.contains("erp_")) { if (message.contains("erp_")) {

View File

@@ -2,63 +2,114 @@ package com.tashow.cloud.trade.controller.admin.order.vo;
// 移除Swagger相关导入 // 移除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.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
// 管理后台 - 交易订单的详情 Response VO // 管理后台 - 交易订单的详情 Response VO
@Data @Data
@Accessors(chain = true)
public class TradeOrderDetailRespVO extends TradeOrderBaseVO { public class TradeOrderDetailRespVO extends TradeOrderBaseVO {
/** //基本信息
* 订单项列表 private TradeOrderBaseInfo tradeOrderInfoBase;
*/ //配送信息
private List<Item> items; private TradeDeliveryInfo tradeDeliveryInfo;
//商品信息
private String tradeProductInfo;
//扩展服务信息
private String tradeExtendServeInfo;
//附加费信息
private String tradeExtendCostInfo;
/**
* 下单用户信息
*/
private MemberUserRespVO user;
/**
* 推广用户信息
*/
private MemberUserRespVO brokerageUser;
/**
* 操作日志列表
*/
private List<OrderLog> logs;
// 收件人地区名字 - 必填,示例:上海 上海市 普陀区
private String receiverAreaName;
// 管理后台 - 交易订单的操作日志
@Data @Data
public static class OrderLog { @Accessors(chain = true)
class TradeOrderBaseInfo{
// 操作详情 - 必填,示例:订单发货 //订单id
private String content; private String id;
//订单编号
// 创建时间 - 必填示例2023-06-01 10:50:20 private String orderNo;
//订单状态
private String orderStatus;
//订单类型
private String orderType;
//订单来源
private String orderTerminal;
//创建时间
private LocalDateTime createTime; private LocalDateTime createTime;
//完成时间
// 用户类型 - 必填示例1 private LocalDateTime finishTime;
private Integer userType; //取消时间
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 @Data
public static class Item extends TradeOrderItemBaseVO { @Accessors(chain = true)
class TradeDeliveryInfo{
/** //承运方
* 属性数组 private String logisticsName;
*/ //送货方式
private List<ProductPropertyValueDetailRespVO> properties; private String logisticsType;
//送货上门
private String logisticsNum;
//收货人
private String receiverName;
//收货手机
private String receiverMobile;
//收货地址
private String receiverDetailAddress;
//快递详情
private String deliveryDetail;
} }
} }

View File

@@ -96,7 +96,7 @@ public class AppTradeOrderController {
} }
// 1.2 sync 仅在等待支付 // 1.2 sync 仅在等待支付
if (Boolean.TRUE.equals(sync) if (Boolean.TRUE.equals(sync)
&& TradeOrderStatusEnum.isUnpaid(order.getStatus()) && !order.getPayStatus()) { && TradeOrderStatusEnum.isUnpaid(order.getOrderStatus()) && !order.getPayStatus()) {
tradeOrderUpdateService.syncOrderPayStatusQuietly(order.getId(), order.getPayOrderId()); tradeOrderUpdateService.syncOrderPayStatusQuietly(order.getId(), order.getPayOrderId());
// 重新查询,因为同步后,可能会有变化 // 重新查询,因为同步后,可能会有变化
order = tradeOrderQueryService.getOrder(id); order = tradeOrderQueryService.getOrder(id);

View File

@@ -53,8 +53,7 @@ public interface TradeOrderConvert {
@Mappings({ @Mappings({
@Mapping(target = "id", ignore = true), @Mapping(target = "id", ignore = true),
@Mapping(source = "userId", target = "userId"), @Mapping(source = "userId", target = "userId"),
@Mapping(source = "createReqVO.couponId", target = "couponId"), @Mapping(target = "merchantRemark", ignore = true),
@Mapping(target = "remark", ignore = true),
@Mapping(source = "createReqVO.remark", target = "userRemark"), @Mapping(source = "createReqVO.remark", target = "userRemark"),
}) })
TradeOrderDO convert(Long userId, AppTradeOrderCreateReqVO createReqVO); TradeOrderDO convert(Long userId, AppTradeOrderCreateReqVO createReqVO);
@@ -92,7 +91,7 @@ public interface TradeOrderConvert {
.setAppKey(orderProperties.getPayAppKey()).setUserIp(order.getUserIp()); .setAppKey(orderProperties.getPayAppKey()).setUserIp(order.getUserIp());
// 商户相关字段 // 商户相关字段
createReqDTO.setMerchantOrderId(String.valueOf(order.getId())); 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 位 subject = StrUtils.maxLength(subject, PayOrderCreateReqDTO.SUBJECT_MAX_LENGTH); // 避免超过 32 位
createReqDTO.setSubject(subject); createReqDTO.setSubject(subject);
createReqDTO.setBody(subject); // TODO 芋艿:临时写死 createReqDTO.setBody(subject); // TODO 芋艿:临时写死
@@ -130,16 +129,16 @@ public interface TradeOrderConvert {
List<TradeOrderLogDO> orderLogs, List<TradeOrderLogDO> orderLogs,
MemberUserRespDTO user, MemberUserRespDTO brokerageUser) { MemberUserRespDTO user, MemberUserRespDTO brokerageUser) {
TradeOrderDetailRespVO orderVO = convert2(order, orderItems); TradeOrderDetailRespVO orderVO = convert2(order, orderItems);
// 处理收货地址 // // 处理收货地址
orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId())); // orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId()));
// 处理用户信息 // // 处理用户信息
orderVO.setUser(convert(user)); // orderVO.setUser(convert(user));
orderVO.setBrokerageUser(convert(brokerageUser)); // orderVO.setBrokerageUser(convert(brokerageUser));
// 处理日志 // // 处理日志
orderVO.setLogs(convertList03(orderLogs)); // orderVO.setLogs(convertList03(orderLogs));
return orderVO; return orderVO;
} }
List<TradeOrderDetailRespVO.OrderLog> convertList03(List<TradeOrderLogDO> orderLogs); List<TradeOrderDetailRespVO> convertList03(List<TradeOrderLogDO> orderLogs);
TradeOrderDetailRespVO convert2(TradeOrderDO order, List<TradeOrderItemDO> items); TradeOrderDetailRespVO convert2(TradeOrderDO order, List<TradeOrderItemDO> items);
@@ -251,7 +250,7 @@ public interface TradeOrderConvert {
ProductSpuRespDTO spu, ProductSkuRespDTO sku) { ProductSpuRespDTO spu, ProductSkuRespDTO sku) {
BrokerageAddReqBO bo = new BrokerageAddReqBO().setBizId(String.valueOf(item.getId())).setSourceUserId(item.getUserId()) BrokerageAddReqBO bo = new BrokerageAddReqBO().setBizId(String.valueOf(item.getId())).setSourceUserId(item.getUserId())
.setBasePrice(item.getPayPrice()) .setBasePrice(item.getPayPrice())
.setTitle(StrUtil.format("{}成功购买{}", user.getNickname(), item.getSpuName())) .setTitle(StrUtil.format("{}成功购买{}", user.getNickname(), item.getProdId()))
.setFirstFixedPrice(0).setSecondFixedPrice(0); .setFirstFixedPrice(0).setSecondFixedPrice(0);
if (BooleanUtil.isTrue(spu.getSubCommissionType())) { if (BooleanUtil.isTrue(spu.getSubCommissionType())) {
bo.setFirstFixedPrice(sku.getFirstBrokeragePrice()).setSecondFixedPrice(sku.getSecondBrokeragePrice()); bo.setFirstFixedPrice(sku.getFirstBrokeragePrice()).setSecondFixedPrice(sku.getSecondBrokeragePrice());
@@ -263,14 +262,11 @@ public interface TradeOrderConvert {
List<TradeOrderRespDTO> convertList04(List<TradeOrderDO> list); List<TradeOrderRespDTO> convertList04(List<TradeOrderDO> list);
@Mappings({ @Mappings({
@Mapping(target = "activityId", source = "order.combinationActivityId"), @Mapping(target = "prodId", source = "item.prodId"),
@Mapping(target = "spuId", source = "item.spuId"),
@Mapping(target = "skuId", source = "item.skuId"), @Mapping(target = "skuId", source = "item.skuId"),
@Mapping(target = "count", source = "item.count"), @Mapping(target = "count", source = "item.count"),
@Mapping(target = "orderId", source = "order.id"), @Mapping(target = "orderId", source = "order.id"),
@Mapping(target = "userId", source = "order.userId"), @Mapping(target = "userId", source = "order.userId"),
@Mapping(target = "headId", source = "order.combinationHeadId"),
@Mapping(target = "combinationPrice", source = "item.payPrice"),
}) })
CombinationRecordCreateReqDTO convert(TradeOrderDO order, TradeOrderItemDO item); CombinationRecordCreateReqDTO convert(TradeOrderDO order, TradeOrderItemDO item);

View File

@@ -20,7 +20,7 @@ public class CombinationRecordCreateReqDTO {
* spu 编号 * spu 编号
*/ */
@NotNull(message = "spu 编号不能为空") @NotNull(message = "spu 编号不能为空")
private Long spuId; private Long prodId;
/** /**
* sku 编号 * sku 编号
*/ */

View File

@@ -1,11 +1,8 @@
package com.tashow.cloud.trade.dal.dataobject.order; package com.tashow.cloud.trade.dal.dataobject.order;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.tashow.cloud.common.enums.TerminalEnum; import com.tashow.cloud.common.enums.TerminalEnum;
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; 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.DeliveryExpressDO;
import com.tashow.cloud.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; import com.tashow.cloud.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
import com.tashow.cloud.tradeapi.enums.delivery.DeliveryTypeEnum; import com.tashow.cloud.tradeapi.enums.delivery.DeliveryTypeEnum;
@@ -16,15 +13,13 @@ import com.tashow.cloud.tradeapi.enums.order.TradeOrderTypeEnum;
import lombok.*; import lombok.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/** /**
* 交易订单 DO * 交易订单 DO
* *
* @author 芋道源码 * @author 芋道源码
*/ */
@TableName(value = "trade_order", autoResultMap = true) @TableName(value = "tz_trade_order", autoResultMap = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
@@ -54,13 +49,13 @@ public class TradeOrderDO extends BaseDO {
* *
* 枚举 {@link TradeOrderTypeEnum} * 枚举 {@link TradeOrderTypeEnum}
*/ */
private Integer type; private Integer orderType;
/** /**
* 订单来源 * 订单来源
* *
* 枚举 {@link TerminalEnum} * 枚举 {@link TerminalEnum}
*/ */
private Integer terminal; private Integer orderTerminal;
/** /**
* 用户编号 * 用户编号
* *
@@ -80,7 +75,7 @@ public class TradeOrderDO extends BaseDO {
* *
* 枚举 {@link TradeOrderStatusEnum} * 枚举 {@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 Boolean commentStatus;
/**
* 推广人编号
*
*/
private Long brokerageUserId;
// ========== 价格 + 支付基本信息 ========== // ========== 价格 + 支付基本信息 ==========
// 价格文档 - 淘宝https://open.taobao.com/docV3.htm?docId=108471&docType=1 // 价格文档 - 淘宝https://open.taobao.com/docV3.htm?docId=108471&docType=1
@@ -257,102 +246,4 @@ public class TradeOrderDO extends BaseDO {
*/ */
private Integer refundPrice; 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<Long, Integer> giveCouponTemplateCounts;
/**
* 赠送的优惠劵编号
*
* 目的:用于后续取消或者售后订单时,需要扣减赠送
*/
@TableField(typeHandler = LongListTypeHandler.class)
private List<Long> 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;
} }

View File

@@ -52,13 +52,13 @@ public class TradeOrderItemDO extends BaseDO {
* *
* 关联 ProductSkuDO 的 spuId 编号 * 关联 ProductSkuDO 的 spuId 编号
*/ */
private Long spuId; private Long prodId;
/** /**
* 商品 SPU 名称 * 商品 SPU 名称
* *
* 冗余 ProductSkuDO 的 spuName 编号 * 冗余 ProductSkuDO 的 spuName 编号
*/ */
private String spuName; private String prodName;
/** /**
* 商品 SKU 编号 * 商品 SKU 编号
* *

View File

@@ -21,7 +21,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
default int updateByIdAndStatus(Long id, Integer status, TradeOrderDO update) { default int updateByIdAndStatus(Long id, Integer status, TradeOrderDO update) {
return update(update, new LambdaUpdateWrapper<TradeOrderDO>() return update(update, new LambdaUpdateWrapper<TradeOrderDO>()
.eq(TradeOrderDO::getId, id).eq(TradeOrderDO::getStatus, status)); .eq(TradeOrderDO::getId, id).eq(TradeOrderDO::getOrderStatus, status));
} }
default TradeOrderDO selectByIdAndUserId(Long id, Long userId) { default TradeOrderDO selectByIdAndUserId(Long id, Long userId) {
@@ -34,10 +34,10 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
.eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId()) .eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId())
.eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType()) .eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType())
.inIfPresent(TradeOrderDO::getUserId, userIds) .inIfPresent(TradeOrderDO::getUserId, userIds)
.eqIfPresent(TradeOrderDO::getType, reqVO.getType()) .eqIfPresent(TradeOrderDO::getOrderType, reqVO.getType())
.eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus()) .eqIfPresent(TradeOrderDO::getOrderStatus, reqVO.getStatus())
.eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode()) .eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
.eqIfPresent(TradeOrderDO::getTerminal, reqVO.getTerminal()) .eqIfPresent(TradeOrderDO::getOrderTerminal, reqVO.getTerminal())
.eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId()) .eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId())
.inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds()) .inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds())
.likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode()) .likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode())
@@ -55,10 +55,10 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
.eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId()) .eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId())
.eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType()) .eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType())
.inIfPresent(TradeOrderDO::getUserId, userIds) .inIfPresent(TradeOrderDO::getUserId, userIds)
.eqIfPresent(TradeOrderDO::getType, reqVO.getType()) .eqIfPresent(TradeOrderDO::getOrderType, reqVO.getType())
.eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus()) .eqIfPresent(TradeOrderDO::getOrderStatus, reqVO.getStatus())
.eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode()) .eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
.eqIfPresent(TradeOrderDO::getTerminal, reqVO.getTerminal()) .eqIfPresent(TradeOrderDO::getOrderTerminal, reqVO.getTerminal())
.eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId()) .eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId())
.inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds()) .inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds())
.likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode()) .likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode())
@@ -69,7 +69,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
default PageResult<TradeOrderDO> selectPage(AppTradeOrderPageReqVO reqVO, Long userId) { default PageResult<TradeOrderDO> selectPage(AppTradeOrderPageReqVO reqVO, Long userId) {
return selectPage(reqVO, new LambdaQueryWrapperX<TradeOrderDO>() return selectPage(reqVO, new LambdaQueryWrapperX<TradeOrderDO>()
.eq(TradeOrderDO::getUserId, userId) .eq(TradeOrderDO::getUserId, userId)
.eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus()) .eqIfPresent(TradeOrderDO::getOrderStatus, reqVO.getStatus())
.eqIfPresent(TradeOrderDO::getCommentStatus, reqVO.getCommentStatus()) .eqIfPresent(TradeOrderDO::getCommentStatus, reqVO.getCommentStatus())
.orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status不同的排序 .orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status不同的排序
} }
@@ -77,7 +77,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
default Long selectCountByUserIdAndStatus(Long userId, Integer status, Boolean commentStatus) { default Long selectCountByUserIdAndStatus(Long userId, Integer status, Boolean commentStatus) {
return selectCount(new LambdaQueryWrapperX<TradeOrderDO>() return selectCount(new LambdaQueryWrapperX<TradeOrderDO>()
.eq(TradeOrderDO::getUserId, userId) .eq(TradeOrderDO::getUserId, userId)
.eqIfPresent(TradeOrderDO::getStatus, status) .eqIfPresent(TradeOrderDO::getOrderStatus, status)
.eqIfPresent(TradeOrderDO::getCommentStatus, commentStatus)); .eqIfPresent(TradeOrderDO::getCommentStatus, commentStatus));
} }
@@ -89,20 +89,20 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
default List<TradeOrderDO> selectListByStatusAndCreateTimeLt(Integer status, LocalDateTime createTime) { default List<TradeOrderDO> selectListByStatusAndCreateTimeLt(Integer status, LocalDateTime createTime) {
return selectList(new LambdaUpdateWrapper<TradeOrderDO>() return selectList(new LambdaUpdateWrapper<TradeOrderDO>()
.eq(TradeOrderDO::getStatus, status) .eq(TradeOrderDO::getOrderStatus, status)
.lt(TradeOrderDO::getCreateTime, createTime)); .lt(TradeOrderDO::getCreateTime, createTime));
} }
default List<TradeOrderDO> selectListByStatusAndDeliveryTimeLt(Integer status, LocalDateTime deliveryTime) { default List<TradeOrderDO> selectListByStatusAndDeliveryTimeLt(Integer status, LocalDateTime deliveryTime) {
return selectList(new LambdaUpdateWrapper<TradeOrderDO>() return selectList(new LambdaUpdateWrapper<TradeOrderDO>()
.eq(TradeOrderDO::getStatus, status) .eq(TradeOrderDO::getOrderStatus, status)
.lt(TradeOrderDO::getDeliveryTime, deliveryTime)); .lt(TradeOrderDO::getDeliveryTime, deliveryTime));
} }
default List<TradeOrderDO> selectListByStatusAndReceiveTimeLt(Integer status, LocalDateTime receive, default List<TradeOrderDO> selectListByStatusAndReceiveTimeLt(Integer status, LocalDateTime receive,
Boolean commentStatus) { Boolean commentStatus) {
return selectList(new LambdaUpdateWrapper<TradeOrderDO>() return selectList(new LambdaUpdateWrapper<TradeOrderDO>()
.eq(TradeOrderDO::getStatus, status) .eq(TradeOrderDO::getOrderStatus, status)
.lt(TradeOrderDO::getReceiveTime, receive) .lt(TradeOrderDO::getReceiveTime, receive)
.eq(TradeOrderDO::getCommentStatus, commentStatus)); .eq(TradeOrderDO::getCommentStatus, commentStatus));
} }
@@ -110,18 +110,6 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
default List<TradeOrderDO> selectListByUserIdAndActivityId(Long userId, Long activityId, TradeOrderTypeEnum type) { default List<TradeOrderDO> selectListByUserIdAndActivityId(Long userId, Long activityId, TradeOrderTypeEnum type) {
LambdaQueryWrapperX<TradeOrderDO> queryWrapperX = new LambdaQueryWrapperX<>(); LambdaQueryWrapperX<TradeOrderDO> queryWrapperX = new LambdaQueryWrapperX<>();
queryWrapperX.eq(TradeOrderDO::getUserId, userId); 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); return selectList(queryWrapperX);
} }
@@ -132,8 +120,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
default TradeOrderDO selectByUserIdAndCombinationActivityIdAndStatus(Long userId, Long combinationActivityId, Integer status) { default TradeOrderDO selectByUserIdAndCombinationActivityIdAndStatus(Long userId, Long combinationActivityId, Integer status) {
return selectOne(new LambdaQueryWrapperX<TradeOrderDO>() return selectOne(new LambdaQueryWrapperX<TradeOrderDO>()
.eq(TradeOrderDO::getUserId, userId) .eq(TradeOrderDO::getUserId, userId)
.eq(TradeOrderDO::getStatus, status) .eq(TradeOrderDO::getOrderStatus, status)
.eq(TradeOrderDO::getCombinationActivityId, combinationActivityId)
); );
} }

View File

@@ -137,16 +137,16 @@ public class AfterSaleServiceImpl implements AfterSaleService {
} }
// TODO 芋艿:超过一定时间,不允许售后 // TODO 芋艿:超过一定时间,不允许售后
// 已取消,无法发起售后 // 已取消,无法发起售后
if (TradeOrderStatusEnum.isCanceled(order.getStatus())) { if (TradeOrderStatusEnum.isCanceled(order.getOrderStatus())) {
throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_CANCELED); 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); throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_PAID);
} }
// 如果是【退货退款】的情况,需要额外校验是否发货 // 如果是【退货退款】的情况,需要额外校验是否发货
if (createReqVO.getWay().equals(AfterSaleWayEnum.RETURN_AND_REFUND.getWay()) 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); throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_DELIVERED);
} }
return orderItem; return orderItem;
@@ -161,7 +161,7 @@ public class AfterSaleServiceImpl implements AfterSaleService {
// 标记是售中还是售后 // 标记是售中还是售后
TradeOrderDO order = tradeOrderQueryService.getOrder(orderItem.getUserId(), orderItem.getOrderId()); TradeOrderDO order = tradeOrderQueryService.getOrder(orderItem.getUserId(), orderItem.getOrderId());
afterSale.setOrderNo(order.getOrderNum()); // 记录 orderNo 订单流水,方便后续检索 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()); ? AfterSaleTypeEnum.AFTER_SALE.getType() : AfterSaleTypeEnum.IN_SALE.getType());
tradeAfterSaleMapper.insert(afterSale); tradeAfterSaleMapper.insert(afterSale);

View File

@@ -177,7 +177,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
public int getActivityProductCount(Long userId, Long activityId, TradeOrderTypeEnum type) { public int getActivityProductCount(Long userId, Long activityId, TradeOrderTypeEnum type) {
// 获得订单列表 // 获得订单列表
List<TradeOrderDO> orders = tradeOrderMapper.selectListByUserIdAndActivityId(userId, activityId, type); List<TradeOrderDO> orders = tradeOrderMapper.selectListByUserIdAndActivityId(userId, activityId, type);
orders.removeIf(order -> TradeOrderStatusEnum.isCanceled(order.getStatus())); // 过滤掉【已取消】的订单 orders.removeIf(order -> TradeOrderStatusEnum.isCanceled(order.getOrderStatus())); // 过滤掉【已取消】的订单
if (CollUtil.isEmpty(orders)) { if (CollUtil.isEmpty(orders)) {
return 0; return 0;
} }

View File

@@ -177,15 +177,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
// TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, createReqVO, calculateRespBO); // TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, createReqVO, calculateRespBO);
// order.setType(calculateRespBO.getType()); // order.setType(calculateRespBO.getType());
// order.setOrderNum(tradeNoRedisDAO.generate(TradeNoRedisDAO.TRADE_ORDER_NO_PREFIX)); // order.setOrderNum(tradeNoRedisDAO.generate(TradeNoRedisDAO.TRADE_ORDER_NO_PREFIX));
// order.setStatus(TradeOrderStatusEnum.UNPAID.getStatus()); // order.setStatus(TradeOrderStatusEnum.UNPAID.getOrderStatus());
// order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()); // order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getOrderStatus());
// order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum)); // order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum));
// order.setUserIp(getClientIP()).setTerminal(getTerminal()); // order.setUserIp(getClientIP()).setTerminal(getTerminal());
// // 使用 + 赠送优惠券 // // 使用 + 赠送优惠券
// order.setGiveCouponTemplateCounts(calculateRespBO.getGiveCouponTemplateCounts()); // order.setGiveCouponTemplateCounts(calculateRespBO.getGiveCouponTemplateCounts());
// // 支付 + 退款信息 // // 支付 + 退款信息
// order.setAdjustPrice(0).setPayStatus(false); // order.setAdjustPrice(0).setPayStatus(false);
// order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0); // order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getOrderStatus()).setRefundPrice(0);
// // 物流信息 // // 物流信息
// order.setDeliveryType(createReqVO.getDeliveryType()); // order.setDeliveryType(createReqVO.getDeliveryType());
// if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.EXPRESS.getType())) { // if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.EXPRESS.getType())) {
@@ -232,7 +232,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
} }
// 4. 插入订单日志 // 4. 插入订单日志
TradeOrderLogUtils.setOrderInfo(order.getId(), null, order.getStatus()); TradeOrderLogUtils.setOrderInfo(order.getId(), null, order.getOrderStatus());
// TODO @LeeYan9: 是可以思考下, 订单的营销优惠记录, 应该记录在哪里, 微信讨论起来! // TODO @LeeYan9: 是可以思考下, 订单的营销优惠记录, 应该记录在哪里, 微信讨论起来!
} }
@@ -255,7 +255,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
// 1.1 校验订单是否存在 // 1.1 校验订单是否存在
TradeOrderDO order = validateOrderExists(id); TradeOrderDO order = validateOrderExists(id);
// 1.2 校验订单已支付 // 1.2 校验订单已支付
if (!TradeOrderStatusEnum.isUnpaid(order.getStatus()) || order.getPayStatus()) { if (!TradeOrderStatusEnum.isUnpaid(order.getOrderStatus()) || order.getPayStatus()) {
// 特殊:如果订单已支付,且支付单号相同,直接返回,说明重复回调 // 特殊:如果订单已支付,且支付单号相同,直接返回,说明重复回调
if (ObjectUtil.equals(order.getPayOrderId(), payOrderId)) { if (ObjectUtil.equals(order.getPayOrderId(), payOrderId)) {
log.warn("[updateOrderPaid][order({}) 已支付,且支付单号相同({}),直接返回]", order, payOrderId); log.warn("[updateOrderPaid][order({}) 已支付,且支付单号相同({}),直接返回]", order, payOrderId);
@@ -270,8 +270,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
PayOrderRespDTO payOrder = validatePayOrderPaid(order, payOrderId); PayOrderRespDTO payOrder = validatePayOrderPaid(order, payOrderId);
// 3. 更新 TradeOrderDO 状态为已支付,等待发货 // 3. 更新 TradeOrderDO 状态为已支付,等待发货
int updateCount = tradeOrderMapper.updateByIdAndStatus(id, order.getStatus(), int updateCount = tradeOrderMapper.updateByIdAndStatus(id, order.getOrderStatus(),
new TradeOrderDO().setStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus()).setPayStatus(true) new TradeOrderDO().setOrderStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus()).setPayStatus(true)
.setPayTime(LocalDateTime.now()).setPayChannelCode("")); .setPayTime(LocalDateTime.now()).setPayChannelCode(""));
if (updateCount == 0) { if (updateCount == 0) {
throw exception(ORDER_UPDATE_PAID_STATUS_NOT_UNPAID); throw exception(ORDER_UPDATE_PAID_STATUS_NOT_UNPAID);
@@ -282,7 +282,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
tradeOrderHandlers.forEach(handler -> handler.afterPayOrder(order, orderItems)); tradeOrderHandlers.forEach(handler -> handler.afterPayOrder(order, orderItems));
// 5. 记录订单日志 // 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()); TradeOrderLogUtils.setUserInfo(order.getUserId(), UserTypeEnum.MEMBER.getValue());
} }
@@ -361,14 +361,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
updateOrderObj.setLogisticsId(0L).setLogisticsNo(""); updateOrderObj.setLogisticsId(0L).setLogisticsNo("");
} }
// 执行更新 // 执行更新
updateOrderObj.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus()).setDeliveryTime(LocalDateTime.now()); updateOrderObj.setOrderStatus(TradeOrderStatusEnum.DELIVERED.getStatus()).setDeliveryTime(LocalDateTime.now());
int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), updateOrderObj); int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getOrderStatus(), updateOrderObj);
if (updateCount == 0) { if (updateCount == 0) {
throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED); throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
} }
// 3. 记录订单日志 // 3. 记录订单日志
TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.DELIVERED.getStatus(), TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), TradeOrderStatusEnum.DELIVERED.getStatus(),
MapUtil.<String, Object>builder().put("deliveryName", express != null ? express.getName() : "") MapUtil.<String, Object>builder().put("deliveryName", express != null ? express.getName() : "")
.put("logisticsNo", express != null ? deliveryReqVO.getLogisticsNo() : "").build()); .put("logisticsNo", express != null ? deliveryReqVO.getLogisticsNo() : "").build());
@@ -476,14 +476,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
*/ */
private void receiveOrder0(TradeOrderDO order) { private void receiveOrder0(TradeOrderDO order) {
// 更新 TradeOrderDO 状态为已完成 // 更新 TradeOrderDO 状态为已完成
int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getOrderStatus(),
new TradeOrderDO().setStatus(TradeOrderStatusEnum.COMPLETED.getStatus()).setReceiveTime(LocalDateTime.now())); new TradeOrderDO().setOrderStatus(TradeOrderStatusEnum.COMPLETED.getStatus()).setReceiveTime(LocalDateTime.now()));
if (updateCount == 0) { if (updateCount == 0) {
throw exception(ORDER_RECEIVE_FAIL_STATUS_NOT_DELIVERED); 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); throw exception(ORDER_NOT_FOUND);
} }
// 校验订单是否是待收货状态 // 校验订单是否是待收货状态
if (!TradeOrderStatusEnum.isDelivered(order.getStatus())) { if (!TradeOrderStatusEnum.isDelivered(order.getOrderStatus())) {
throw exception(ORDER_RECEIVE_FAIL_STATUS_NOT_DELIVERED); throw exception(ORDER_RECEIVE_FAIL_STATUS_NOT_DELIVERED);
} }
return order; return order;
@@ -518,7 +518,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
throw exception(ORDER_NOT_FOUND); throw exception(ORDER_NOT_FOUND);
} }
// 1.2 校验状态 // 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); throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
} }
@@ -568,8 +568,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
*/ */
private void cancelOrder0(TradeOrderDO order, TradeOrderCancelTypeEnum cancelType) { private void cancelOrder0(TradeOrderDO order, TradeOrderCancelTypeEnum cancelType) {
// 1. 更新 TradeOrderDO 状态为已取消 // 1. 更新 TradeOrderDO 状态为已取消
int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getOrderStatus(),
new TradeOrderDO().setStatus(TradeOrderStatusEnum.CANCELED.getStatus()) new TradeOrderDO().setOrderStatus(TradeOrderStatusEnum.CANCELED.getStatus())
.setCancelType(cancelType.getType()).setCancelTime(LocalDateTime.now())); .setCancelType(cancelType.getType()).setCancelTime(LocalDateTime.now()));
if (updateCount == 0) { if (updateCount == 0) {
throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID); throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
@@ -580,7 +580,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
tradeOrderHandlers.forEach(handler -> handler.afterCancelOrder(order, orderItems)); tradeOrderHandlers.forEach(handler -> handler.afterCancelOrder(order, orderItems));
// 3. 增加订单日志 // 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; return;
} }
tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()) tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId())
.setStatus(TradeOrderStatusEnum.CANCELED.getStatus()) .setOrderStatus(TradeOrderStatusEnum.CANCELED.getStatus())
.setCancelType(TradeOrderCancelTypeEnum.AFTER_SALE_CLOSE.getType()).setCancelTime(LocalDateTime.now())); .setCancelType(TradeOrderCancelTypeEnum.AFTER_SALE_CLOSE.getType()).setCancelTime(LocalDateTime.now()));
// 2. 执行 TradeOrderHandler 的后置处理 // 2. 执行 TradeOrderHandler 的后置处理
@@ -615,14 +615,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
throw exception(ORDER_NOT_FOUND); throw exception(ORDER_NOT_FOUND);
} }
// 1.2 校验状态 // 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); throw exception(ORDER_DELETE_FAIL_STATUS_NOT_CANCEL);
} }
// 2. 删除订单 // 2. 删除订单
tradeOrderMapper.deleteById(id); tradeOrderMapper.deleteById(id);
// 3. 记录日志 // 3. 记录日志
TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus()); TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus());
} }
@Override @Override
@@ -674,7 +674,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
payOrderApi.updatePayOrderPrice(order.getPayOrderId(), newPayPrice).checkError(); payOrderApi.updatePayOrderPrice(order.getPayOrderId(), newPayPrice).checkError();
// 5. 记录订单日志 // 5. 记录订单日志
TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus(), TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus(),
MapUtil.<String, Object>builder().put("oldPayPrice", MoneyUtils.fenToYuanStr(order.getPayPrice())) MapUtil.<String, Object>builder().put("oldPayPrice", MoneyUtils.fenToYuanStr(order.getPayPrice()))
.put("adjustPrice", MoneyUtils.fenToYuanStr(reqVO.getAdjustPrice())) .put("adjustPrice", MoneyUtils.fenToYuanStr(reqVO.getAdjustPrice()))
.put("newPayPrice", MoneyUtils.fenToYuanStr(newPayPrice)).build()); .put("newPayPrice", MoneyUtils.fenToYuanStr(newPayPrice)).build());
@@ -686,7 +686,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
// 校验交易订单 // 校验交易订单
TradeOrderDO order = validateOrderExists(reqVO.getId()); TradeOrderDO order = validateOrderExists(reqVO.getId());
// 只有待发货状态,才可以修改订单收货地址; // 只有待发货状态,才可以修改订单收货地址;
if (!TradeOrderStatusEnum.isUndelivered(order.getStatus())) { if (!TradeOrderStatusEnum.isUndelivered(order.getOrderStatus())) {
throw exception(ORDER_UPDATE_ADDRESS_FAIL_STATUS_NOT_DELIVERED); throw exception(ORDER_UPDATE_ADDRESS_FAIL_STATUS_NOT_DELIVERED);
} }
@@ -694,7 +694,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
tradeOrderMapper.updateById(TradeOrderConvert.INSTANCE.convert(reqVO)); tradeOrderMapper.updateById(TradeOrderConvert.INSTANCE.convert(reqVO));
// 记录订单日志 // 记录订单日志
TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus()); TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus());
} }
@Override @Override
@@ -753,13 +753,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
// 2.1 更新订单的退款金额、积分 // 2.1 更新订单的退款金额、积分
Integer orderRefundPrice = order.getRefundPrice() + refundPrice; Integer orderRefundPrice = order.getRefundPrice() + refundPrice;
Integer orderRefundPoint = order.getRefundPoint() + orderItem.getUsePoint();
Integer refundStatus = isAllOrderItemAfterSaleSuccess(order.getId()) ? Integer refundStatus = isAllOrderItemAfterSaleSuccess(order.getId()) ?
TradeOrderRefundStatusEnum.ALL.getStatus() // 如果都售后成功,则需要取消订单 TradeOrderRefundStatusEnum.ALL.getStatus() // 如果都售后成功,则需要取消订单
: TradeOrderRefundStatusEnum.PART.getStatus(); : TradeOrderRefundStatusEnum.PART.getStatus();
tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()) tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId())
.setRefundStatus(refundStatus) .setRefundStatus(refundStatus));
.setRefundPrice(orderRefundPrice).setRefundPoint(orderRefundPoint));
// 2.2 如果全部退款,则进行取消订单 // 2.2 如果全部退款,则进行取消订单
getSelf().cancelOrderByAfterSale(order, orderRefundPrice); getSelf().cancelOrderByAfterSale(order, orderRefundPrice);
} }
@@ -807,7 +805,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
if (order == null) { if (order == null) {
throw exception(ORDER_NOT_FOUND); 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); throw exception(ORDER_COMMENT_FAIL_STATUS_NOT_COMPLETED);
} }
if (ObjectUtil.notEqual(order.getCommentStatus(), Boolean.FALSE)) { 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) // tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE)
// .setFinishTime(LocalDateTime.now())); // .setFinishTime(LocalDateTime.now()));
// // 增加订单日志。注意:只有在所有订单项都评价后,才会增加 // // 增加订单日志。注意:只有在所有订单项都评价后,才会增加
// TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus()); // TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus());
// } // }
return commentId; return commentId;
} }
@@ -855,8 +853,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateOrderCombinationInfo(Long orderId, Long activityId, Long combinationRecordId, Long headId) { public void updateOrderCombinationInfo(Long orderId, Long activityId, Long combinationRecordId, Long headId) {
tradeOrderMapper.updateById( tradeOrderMapper.updateById(
new TradeOrderDO().setId(orderId).setCombinationActivityId(activityId) new TradeOrderDO().setId(orderId));
.setCombinationRecordId(combinationRecordId).setCombinationHeadId(headId));
} }
@Override @Override
@@ -900,8 +897,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
throw exception(ORDER_NOT_FOUND); 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) tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE)
.setFinishTime(LocalDateTime.now())); .setFinishTime(LocalDateTime.now()));
// 增加订单日志。注意:只有在所有订单项都评价后,才会增加 // 增加订单日志。注意:只有在所有订单项都评价后,才会增加
TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus()); TradeOrderLogUtils.setOrderInfo(order.getId(), order.getOrderStatus(), order.getOrderStatus());
} }
/** /**