商家主动退货 fix bug, 订单金额 fix bug

This commit is contained in:
Jack 2025-08-01 10:47:05 +08:00
parent f8e923606a
commit 500c0c39e7
6 changed files with 39 additions and 17 deletions

View File

@ -198,6 +198,9 @@ public class ShopOrderInfo implements Serializable {
@ApiModelProperty(value = "取单号,根据每个店铺每天已支付的订单累加+1")
private Long order_pickup_num;
@ApiModelProperty(value = "拣货完成提交次数")
private Integer order_picked_notice_count;
@ApiModelProperty(value = "拣货完成时间戳")
private Long order_picked_time;

View File

@ -74,8 +74,11 @@ public class MchOrderInfoDTO implements Serializable {
private BigDecimal order_shipping_fee;
@ApiModelProperty(value = "平台费")
private BigDecimal platform_fee;
@ApiModelProperty(value = "优惠、折扣、活动费用")
private BigDecimal order_discount_amount;
//总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee
@ApiModelProperty(value = "总计优惠金额,优惠、折扣、活动费用")
private BigDecimal total_discount_amount;
@ApiModelProperty(value = "预计收入金额")
private BigDecimal order_income_amount;
@ApiModelProperty(value = "两点距离,单位米")
private Integer distance;

View File

@ -371,8 +371,10 @@ public class ShopOrderBaseController extends BaseControllerImpl {
// 4. 店铺权限校验
Integer storeId = Convert.toInt(userDto.getStore_id());
if (storeId != null && storeId > 0 && !storeId.equals(mchOrderInfoDTO.getOrder_state_id())) {
log.warn("用户{}无权限访问订单{}", userDto.getId(), orderId);
if (storeId != null && storeId > 0
&& mchOrderInfoDTO.getStore_info() != null
&& !storeId.equals(mchOrderInfoDTO.getStore_info().getStore_id())) {
log.error("用户{}无权限访问订单{}", userDto.getId(), orderId);
return CommonResult.failed(ResultCode.FORBIDDEN);
}

View File

@ -373,7 +373,17 @@ public class ShopOrderInfoServiceImpl extends BaseServiceImpl<ShopOrderInfoMappe
public CommonResult orderPickingCompleted(String storeId, String orderId) {
// 参数校验
if (StrUtil.isBlank(orderId)) {
return CommonResult.failed("orderId 不能为空");
return CommonResult.failed("order_id 不能为空");
}
ShopOrderInfo orderInfo = get(orderId);
if (orderInfo == null) {
return CommonResult.failed("未找到对应的订单");
}
Integer times = orderInfo.getOrder_picked_notice_count() == null ? 0 : orderInfo.getOrder_picked_notice_count();
if (times > 3) {
return CommonResult.success("已提交,请勿重复提交");
}
// 更新订单拣货时间
@ -381,11 +391,12 @@ public class ShopOrderInfoServiceImpl extends BaseServiceImpl<ShopOrderInfoMappe
updateWrapper.eq("order_id", orderId);
Long order_picek_time = System.currentTimeMillis();
updateWrapper.set("order_picked_time", order_picek_time);
updateWrapper.set("order_picked_notice_count", times + 1);
boolean isUpdated = update(updateWrapper);
if (!isUpdated) {
logger.warn("订单拣货时间更新失败orderId: {}", orderId);
return CommonResult.failed("订单更新失败");
logger.error("订单拣货时间更新失败orderId: {}", orderId);
return CommonResult.failed("提交失败");
}
// 获取顺丰订单号并调用 API 通知

View File

@ -569,7 +569,9 @@
<result property="order_product_amount" column="order_product_amount"/>
<result property="order_payment_amount" column="order_payment_amount"/>
<result property="order_shipping_fee" column="order_shipping_fee"/>
<result property="order_discount_amount" column="order_discount_amount"/>
<!--总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee-->
<result property="total_discount_amount" column="total_discount_amount"/>
<result property="order_income_amount" column="order_income_amount"/>
<result property="platform_fee" column="platform_fee"/>
<result property="order_pickup_num" column="order_pickup_num"/>
<result property="order_picked_time" column="order_picked_time"/>
@ -622,7 +624,7 @@
<result property="h5_url" column="h5_url"/>
<result property="feed" column="feed"/>
</association>
<!-- 订单商品集合映射-->
<!-- 订单商品集合映射-->
<collection property="order_items" ofType="com.suisung.mall.common.modules.order.dto.MchOrderItemDTO">
<result property="product_id" column="product_id"/>
<result property="item_id" column="item_id"/>
@ -739,21 +741,17 @@
</where>
</sql>
<!--应付金额/应支付金额:order_goods_amount - order_discount_amount + order_shipping_fee - order_voucher_price - order_points_fee - order_adjust_fee-->
<sql id="mchOrderColumns">
SELECT
ob.order_id,
ob.order_time,
<!-- 送达时间戳-->
<!-- <if test="delivery!=null and delivery==1 and expireSeconds != null and expireSeconds > 0">-->
<!-- oi.order_time + #{expireSeconds}*1000 as arrival_time,-->
<!-- </if>-->
<!--送达时间戳-->
CASE
WHEN oi.delivery_type_id IS NOT NULL AND oi.delivery_type_id = 16 AND #{expireSeconds} IS NOT NULL AND
#{expireSeconds} > 0
THEN oi.order_time + #{expireSeconds}*1000
ELSE oi.order_time + 604800000 <!-- 7天 = 7*24*60*60*1000 = 604800000毫秒 -->
ELSE oi.order_time + 864000000 <!-- 10天 = 10*24*60*60*1000 = 864000000毫秒 -->
END as arrival_time,
ob.order_product_amount,
@ -775,7 +773,12 @@
AS is_new_buyer,
oi.payment_time,
od.order_shipping_fee,
od.order_discount_amount,
<!--总计优惠金额 order_discount_amount + order_voucher_price + order_points_fee + order_adjust_fee-->
(od.order_discount_amount + od.voucher_price + od.order_points_fee + od.order_adjust_fee) as
total_discount_amount,
<!--预计收入:订单原价金额-总计优惠金额-配送费-平台费-->
(ob.order_product_amount-od.order_discount_amount-od.voucher_price-od.order_points_fee-od.order_adjust_fee-od.platform_fee-od.order_shipping_fee)
as order_income_amount,
od.platform_fee,
od.order_message,
sb.store_id,

View File

@ -11,7 +11,7 @@
order_is_received, chain_id, delivery_type_id, order_is_offline, cart_type_id, order_express_print, activity_id,
activity_type_id, salesperson_id, order_is_sync, store_is_selfsupport, store_type, order_erp_id,
distributor_user_id, order_is_cb, order_is_cb_sync, src_order_id, order_is_transfer, order_is_transfer_note,
order_fx_is_settlemented, order_fx_settlement_time, order_pickup_num
order_fx_is_settlemented, order_fx_settlement_time, order_pickup_num,order_picked_notice_count,order_picked_time
</sql>
<!--// refundstatus 退款状态:0-是无退款;1-是部分退款;2-是全部退款