退款类注释
This commit is contained in:
parent
87b15279b7
commit
a39a0ab475
11
README.MD
11
README.MD
@ -26,6 +26,17 @@ mall-im
|
||||
"sslkey_name": "apiclient_key.pem"
|
||||
}
|
||||
|
||||
手动备份数据库
|
||||
|
||||
```shell
|
||||
进入 docker 控制台
|
||||
cd /var/lib/mysql
|
||||
mysqldump -u root -p mall_prod | gzip > mall_prod_20250630.sql.gz
|
||||
|
||||
在宿主机找到:
|
||||
/data/mysql/data/mall_prod_20250630.sql.gz
|
||||
```
|
||||
|
||||
清除 docker 日志
|
||||
|
||||
查看哪个文件夹占空间
|
||||
|
||||
@ -229,7 +229,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款退货-发货退货,卖家也可以决定不退货退款,买家申请退款不支持。卖家可以主动退款。列表数据
|
||||
* 退款退货列表数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ -257,7 +257,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取退款退货-发货退货,卖家也可以决定不退货退款,买家申请退款不支持。卖家可以主动退款。
|
||||
* 读取退款退货一条数据。
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ -279,7 +279,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单item详情,列出订单的item,及退款详情
|
||||
* 退货订单item详情,列出订单的item,及退款详情
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ -411,7 +411,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
public CommonResult addItem(OrderReturnInputVo orderReturnInputVo) {
|
||||
Map data = new HashMap();
|
||||
|
||||
Integer user_id = null;
|
||||
Integer user_id;
|
||||
if (CheckUtil.isEmpty(orderReturnInputVo.getUser_id())) {
|
||||
UserDto user = getCurrentUser();
|
||||
if (user == null) {
|
||||
@ -740,14 +740,19 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
@GlobalTransactional
|
||||
public boolean refund(String return_id) {
|
||||
UserDto user = getCurrentUser();
|
||||
if (user == null || CheckUtil.isEmpty(user.getStore_id())) {
|
||||
logger.error("无操作权限!");
|
||||
return false;
|
||||
}
|
||||
|
||||
Integer store_id = Convert.toInt(user.getStore_id());
|
||||
|
||||
ShopOrderReturn orderReturn = get(return_id);
|
||||
if (CheckUtil.checkDataRights(store_id, orderReturn, ShopOrderReturn::getStore_id)) {
|
||||
processReviewList(Collections.singletonList(return_id), Collections.singletonList(orderReturn), StateCode.RETURN_PROCESS_REFUND, null);
|
||||
} else {
|
||||
if (!CheckUtil.checkDataRights(store_id, orderReturn, ShopOrderReturn::getStore_id)) {
|
||||
throw new ApiException(I18nUtil._("无操作权限!"));
|
||||
}
|
||||
|
||||
processReviewList(Collections.singletonList(return_id), Collections.singletonList(orderReturn), StateCode.RETURN_PROCESS_REFUND, null);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -852,6 +857,13 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
return CommonResult.success(return_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 强制退货
|
||||
*
|
||||
* @param return_id
|
||||
* @param return_flag
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GlobalTransactional
|
||||
public CommonResult doForceRefund(String return_id, Integer return_flag) {
|
||||
@ -862,7 +874,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
Integer store_id = Convert.toInt(user.getStore_id());
|
||||
|
||||
if (user.isPlatform() || CheckUtil.checkDataRights(store_id, shopOrderReturn, ShopOrderReturn::getStore_id)) {
|
||||
// 强制退款, 想将退款订单状态给我待审核状态。 直接执行修改状态, 然后再走退款流程。
|
||||
//平台方 强制退款, 想将退款订单状态设置待审核状态。 直接执行修改状态, 然后再走退款流程。
|
||||
ShopOrderReturn orderReturn = new ShopOrderReturn();
|
||||
orderReturn.setReturn_state_id(StateCode.RETURN_PROCESS_CHECK);
|
||||
editReturnNextState(return_ids, StateCode.RETURN_PROCESS_REFUSED, orderReturn);
|
||||
@ -884,7 +896,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改退款退货-未发货退款,发货退货,卖家也可以决定不退货退款,买家申请退款不支持。卖家可以主动退款。
|
||||
* 修改退款退货记录
|
||||
*
|
||||
* @param return_id
|
||||
* @param return_refund_amount
|
||||
@ -1108,7 +1120,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
return_row.put("return_state_name", stateCodeService.getText(Convert.toInt(return_row.get("return_state_id")), "1"));
|
||||
|
||||
Integer plantform_return_state_id = Convert.toInt(return_row.get("plantform_return_state_id"));
|
||||
return_row.put("plantform_return_state_name", getPlantformReturnStateId(plantform_return_state_id));
|
||||
return_row.put("plantform_return_state_name", getPlantformReturnStateName(plantform_return_state_id));
|
||||
|
||||
|
||||
return return_row;
|
||||
@ -1245,17 +1257,23 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
String return_id = return_row.getReturn_id();
|
||||
|
||||
switch (state_id) {
|
||||
|
||||
case StateCode.RETURN_PROCESS_CHECK:
|
||||
// 退单审核1ReturnReturn
|
||||
if (ifReview(return_state_id)) {
|
||||
review_ids.add(return_id);
|
||||
}
|
||||
break;
|
||||
|
||||
case StateCode.RETURN_PROCESS_RECEIVED:
|
||||
// 收货确认0ReturnReturn
|
||||
if (ifReceived(return_state_id)) {
|
||||
review_ids.add(return_id);
|
||||
}
|
||||
break;
|
||||
|
||||
case StateCode.RETURN_PROCESS_REFUND:
|
||||
// 退款确认0ReturnReturn
|
||||
Integer return_is_paid = return_row.getReturn_is_paid();
|
||||
if (ifRefund(return_state_id, return_is_paid)) {
|
||||
review_ids.add(return_id);
|
||||
@ -1278,7 +1296,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单为下一个待处理状态
|
||||
* 重要:修改订单为下一个待处理状态,并实时退款
|
||||
*
|
||||
* @param return_ids 退货订单id
|
||||
* @param store_id 所属店铺
|
||||
@ -1287,7 +1305,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
* RETURN_PROCESS_CHECK = 3105; //退单审核1ReturnReturn
|
||||
* RETURN_PROCESS_RECEIVED = 3110; //收货确认0ReturnReturn
|
||||
* RETURN_PROCESS_REFUND = 3115; //退款确认0ReturnReturn
|
||||
* RETURN_PROCESS_RECEIPT_CONFIRMATION = 3120; //客户】收款确认0ReturnReturn
|
||||
* RETURN_PROCESS_RECEIPT_CONFIRMATION = 3120; //[【客户】收款确认0 ReturnReturn
|
||||
* RETURN_PROCESS_FINISH = 3125; //完成1 ReturnReturn3130-商家拒绝退货
|
||||
* RETURN_PROCESS_REFUSED = 3130; //-商家拒绝退货
|
||||
* RETURN_PROCESS_CANCEL = 3135; //-买家取消
|
||||
@ -1328,18 +1346,21 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
if (shopOrderItem == null) {
|
||||
throw new ApiException(I18nUtil._("该订单商品表信息不存在!"));
|
||||
}
|
||||
// 已出库的订单商品库存需要回滚。
|
||||
|
||||
// 库存相关:已出库的订单商品库存需要回滚。
|
||||
Long itemId = shopOrderItem.getItem_id();
|
||||
ShopProductItem productItem = shopProductItemService.get(itemId);
|
||||
|
||||
if (productItem == null) {
|
||||
throw new ApiException(I18nUtil._("该订单商品表-SKU表信息不存在!"));
|
||||
}
|
||||
|
||||
productItem.setItem_quantity(productItem.getItem_quantity() + returnItem.getReturn_item_num());
|
||||
|
||||
if (!shopProductItemService.edit(productItem)) {
|
||||
throw new ApiException(I18nUtil._("增加库存失败!"));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1362,7 +1383,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
//修改退货订单及其相关商品为下一个待处理状态
|
||||
editReturnNextState(return_ids, return_state_id, shopOrderReturn);
|
||||
|
||||
// 当前状态 - 旧状态
|
||||
// 当前状态(旧状态)
|
||||
if (ObjectUtil.equal(return_state_id, StateCode.RETURN_PROCESS_CHECK)) {
|
||||
// 同意退款退货,判断是否全部都退款退货,修改订单状态
|
||||
// todo 判断是否全部退货
|
||||
@ -1376,6 +1397,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
QueryWrapper<ShopOrderItem> orderItemQueryWrapper = new QueryWrapper<>();
|
||||
orderItemQueryWrapper.eq("order_id", order_id);
|
||||
List<ShopOrderItem> orderItemList = shopOrderItemService.find(orderItemQueryWrapper);
|
||||
// 累计订单项支付总金额
|
||||
BigDecimal order_item_payment_amount = orderItemList.stream().map(s -> s.getOrder_item_payment_amount()).reduce(BigDecimal::add).get();
|
||||
|
||||
// 当前已经同意退款额度 = 所有单品退款额度
|
||||
@ -1403,7 +1425,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
// todo 未发货,退运费 - 判断运费是否存在
|
||||
ShopOrderData order_data_row = shopOrderDataService.get(order_id);
|
||||
if (order_data_row != null && order_data_row.getOrder_shipping_fee().compareTo(BigDecimal.ZERO) > 0) {
|
||||
// todo 执行退运费操作, 有两种方案,1、生成退运费售后服务单; 2、直接执行退款
|
||||
// 运费大于0的, 执行退运费操作, 有两种方案,1、生成退运费售后服务单; 2、直接执行退款
|
||||
// 1、生成退运费售后服务单
|
||||
|
||||
UserDto user = getCurrentUser();
|
||||
@ -1437,6 +1459,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
|
||||
return_order_shipping_fee_row.setReturn_id(return_id);
|
||||
if (!add(return_order_shipping_fee_row)) {
|
||||
// 1、生成退运费售后服务单;
|
||||
throw new ApiException(I18nUtil._("生成退运费订单失败!"));
|
||||
}
|
||||
|
||||
@ -1444,6 +1467,8 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
ShopOrderData orderData = shopOrderDataService.get(order_id);
|
||||
BigDecimal order_refund_amount = orderData.getOrder_refund_amount();
|
||||
orderData.setOrder_refund_amount(NumberUtil.add(order_refund_amount, order_shipping_fee));
|
||||
|
||||
// RMK: 加上运费没有后续了吗?
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -1456,10 +1481,10 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
}
|
||||
}
|
||||
|
||||
// 修改订单同步状态, 重新同步
|
||||
// 修改订单同步状态, 可重新同步
|
||||
ShopOrderInfo orderInfo = new ShopOrderInfo();
|
||||
orderInfo.setOrder_id(order_id);
|
||||
orderInfo.setOrder_is_sync(0);
|
||||
orderInfo.setOrder_is_sync(0); // 订单同步状态
|
||||
if (!shopOrderInfoService.edit(orderInfo)) {
|
||||
throw new ApiException(I18nUtil._("修改订单同步状态失败!"));
|
||||
}
|
||||
@ -1531,7 +1556,13 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
return return_process.contains(return_state_id) && CheckUtil.isEmpty(return_is_paid);
|
||||
}
|
||||
|
||||
private String getPlantformReturnStateId(Integer plantform_return_state_id) {
|
||||
/**
|
||||
* 获取平台退货单状态名称
|
||||
*
|
||||
* @param plantform_return_state_id
|
||||
* @return
|
||||
*/
|
||||
private String getPlantformReturnStateName(Integer plantform_return_state_id) {
|
||||
String state_name;
|
||||
switch (plantform_return_state_id) {
|
||||
case StateCode.PLANTFORM_RETURN_STATE_WAITING:
|
||||
@ -1709,22 +1740,34 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
return Convert.toList(String.class, findKey(queryWrapper));
|
||||
}
|
||||
|
||||
/**
|
||||
* (支付宝、微信)在线原路退款
|
||||
* <p>
|
||||
* TODO 拉卡拉退款
|
||||
*
|
||||
* @param return_id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean doOnlineRefund(String return_id) {
|
||||
ShopOrderReturn shopOrderReturn = get(return_id);
|
||||
String return_channel_code = shopOrderReturn.getReturn_channel_code();
|
||||
if (StrUtil.equals(return_channel_code, "alipay")) {
|
||||
|
||||
shopOrderReturn = payService.aliPayRefund(shopOrderReturn);
|
||||
if (shopOrderReturn == null) {
|
||||
return false;
|
||||
}
|
||||
return updateRefundOrderReturn(shopOrderReturn);
|
||||
|
||||
} else if (StrUtil.equals(return_channel_code, "wx_native")) {
|
||||
|
||||
shopOrderReturn = payService.wxPayRefund(get(return_id));
|
||||
if (shopOrderReturn == null) {
|
||||
return false;
|
||||
}
|
||||
return updateRefundOrderReturn(shopOrderReturn);
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -1757,6 +1800,18 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 该函数用于判断某个订单商品是否禁止退货。
|
||||
* 参数校验:检查订单商品和商品信息是否为空,若为空则抛出异常。
|
||||
* 商品是否禁止退货:从商品信息中获取消费者保障类型,如果包含“禁止退货”,则标记为不可退货。
|
||||
* 订单状态是否超过退货期限:
|
||||
* 如果订单状态为“已收货”或“已完成”,并且当前时间超过允许提现时间,则标记为不可退货。
|
||||
*
|
||||
* @param shopOrderInfo
|
||||
* @param shopOrderItem
|
||||
* @param shopProductIndex
|
||||
* @return
|
||||
*/
|
||||
public boolean ifDenyReturn(ShopOrderInfo shopOrderInfo, ShopOrderItem shopOrderItem, ShopProductIndex shopProductIndex) {
|
||||
boolean is_denyreturn = false;
|
||||
|
||||
@ -1819,6 +1874,17 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
return is_denyreturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* 该函数用于判断指定订单商品是否禁止退货。
|
||||
* 根据 order_item_id 获取订单商品信息;
|
||||
* 若订单商品为空,抛出异常;
|
||||
* 获取订单商品对应的订单信息(ShopOrderInfo)和商品索引信息(ShopProductIndex);
|
||||
* 若商品索引为空,抛出异常;
|
||||
* 调用另一个重载方法 ifDenyReturn(...) 进行具体的退货规则判断。
|
||||
*
|
||||
* @param order_item_id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean ifDenyReturn(Long order_item_id) {
|
||||
ShopOrderItem shopOrderItem = shopOrderItemService.get(order_item_id);
|
||||
@ -1835,10 +1901,21 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
throw new ApiException(I18nUtil._("此订单商品数据有误!"));
|
||||
}
|
||||
|
||||
|
||||
return ifDenyReturn(shopOrderInfo, shopOrderItem, shopProductIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* 该方法用于处理整单退货申请,具体功能如下:
|
||||
* 根据订单ID获取订单信息,若为空则抛异常。
|
||||
* 检查订单是否已付款,未付款则不允许退货。
|
||||
* 查询该订单是否已有未取消的退款单,如有则不能再次申请。
|
||||
* 获取订单对应的商品列表,若为空则提示无商品。
|
||||
* 构建退货请求对象 OrderReturnInputVo,包含订单商品信息(每个商品的数量和金额)。
|
||||
* 调用 addItem 方法提交退货申请
|
||||
*
|
||||
* @param order_id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public CommonResult addWholeItems(String order_id) {
|
||||
@ -1886,6 +1963,12 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
return addItem(orderReturnInputVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单流转到供应商
|
||||
*
|
||||
* @param return_id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GlobalTransactional
|
||||
public boolean transferToSupplier(String return_id) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user