fix bug 退款运费问题, 砍价活动,截止时间问题
This commit is contained in:
parent
5816a0d19b
commit
bbf38e0f1b
@ -2607,10 +2607,10 @@ public class AccountUserBaseServiceImpl extends BaseServiceImpl<AccountUserBaseM
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO 此处测试用途, 生产部署之后,正式加上验证校验
|
||||
if ("9999".equals(verifyCode)) {
|
||||
return true;
|
||||
}
|
||||
// TODO 此处测试用途, 生产部署之后,删除9999正式加上验证校验
|
||||
// if ("9999".equals(verifyCode)) {
|
||||
// return true;
|
||||
// }
|
||||
|
||||
// 带国家码手机号码
|
||||
number = PhoneNumberUtils.convZhPhoneNumber(number);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -307,12 +307,12 @@ public class ShopActivityCutpriceServiceImpl extends BaseServiceImpl<ShopActivit
|
||||
activity_row.put("activity_rule", JSONUtil.parseObj(activity_row.get("activity_rule")));
|
||||
|
||||
// 砍价订单有效期时长
|
||||
if (cutprice_row != null && cutprice_row.getAc_datetime() != null) {
|
||||
Float order_cutprice_time = accountBaseConfigService.getConfig("order_cutprice_time", 3f);
|
||||
int second = NumberUtil.mul(order_cutprice_time, 24, 60, 60).intValue();
|
||||
long time = DateUtil.offsetSecond(cutprice_row.getAc_datetime(), +second).getTime();
|
||||
activity_row.put("activity_endtime", Convert.toDate(time));
|
||||
}
|
||||
// if (cutprice_row != null && cutprice_row.getAc_datetime() != null) {
|
||||
// Float order_cutprice_time = accountBaseConfigService.getConfig("order_cutprice_time", 3f);
|
||||
// int second = NumberUtil.mul(order_cutprice_time, 24, 60, 60).intValue();
|
||||
// long time = DateUtil.offsetSecond(cutprice_row.getAc_datetime(), +second).getTime();
|
||||
// activity_row.put("activity_endtime", Convert.toDate(time));
|
||||
// }
|
||||
|
||||
return activity_row;
|
||||
}
|
||||
|
||||
@ -63,6 +63,7 @@ public class LibraryProductImpl extends BaseServiceImpl<LibraryProductMapper, Li
|
||||
if (StrUtil.isBlank(tengxunEndpoint)) {
|
||||
tengxunEndpoint = staticDomain;
|
||||
} else {
|
||||
// TODO 后期从配置文件里获取,不能写死
|
||||
tengxunEndpoint = "https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com";
|
||||
}
|
||||
String finalTengxunEndpoint = tengxunEndpoint;
|
||||
|
||||
@ -1304,11 +1304,11 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
* @param return_ids 退单编号 return_ids 或 return_rows 必须一个有值
|
||||
* @param return_rows 退单数据 return_ids 或 return_rows 必须一个有值
|
||||
* @param return_curr_state_id 当前退单状态
|
||||
* RETURN_PROCESS_SUBMIT = 3100; //【客户】提交退单1ReturnReturn
|
||||
* RETURN_PROCESS_CHECK = 3105; //退单审核1ReturnReturn
|
||||
* RETURN_PROCESS_RECEIVED = 3110; //收货确认0ReturnReturn
|
||||
* RETURN_PROCESS_REFUND = 3115; //退款确认0ReturnReturn
|
||||
* RETURN_PROCESS_RECEIPT_CONFIRMATION = 3120; //[【客户】收款确认0 ReturnReturn
|
||||
* RETURN_PROCESS_SUBMIT = 3100; //【客户】提交退单1
|
||||
* RETURN_PROCESS_CHECK = 3105; //退单审核1
|
||||
* RETURN_PROCESS_RECEIVED = 3110; //收货确认0
|
||||
* RETURN_PROCESS_REFUND = 3115; //退款确认0
|
||||
* RETURN_PROCESS_RECEIPT_CONFIRMATION = 3120; //[【客户】收款确认0
|
||||
* RETURN_PROCESS_FINISH = 3125; //完成1退货退款
|
||||
* RETURN_PROCESS_REFUSED = 3130; //-商家拒绝退货
|
||||
* RETURN_PROCESS_CANCEL = 3135; //-买家取消退款
|
||||
@ -1335,21 +1335,21 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
switch (return_curr_state_id) {
|
||||
|
||||
case StateCode.RETURN_PROCESS_CHECK:
|
||||
// 退单审核1ReturnReturn
|
||||
// 退单审核1
|
||||
if (ifReview(return_state_id)) {
|
||||
review_ids.add(return_id);
|
||||
}
|
||||
break;
|
||||
|
||||
case StateCode.RETURN_PROCESS_RECEIVED:
|
||||
// 收货确认0ReturnReturn
|
||||
// 收货确认0
|
||||
if (ifReceived(return_state_id)) {
|
||||
review_ids.add(return_id);
|
||||
}
|
||||
break;
|
||||
|
||||
case StateCode.RETURN_PROCESS_REFUND:
|
||||
// 退款确认0ReturnReturn
|
||||
// 退款确认0
|
||||
Integer return_is_paid = return_row.getReturn_is_paid();
|
||||
if (ifRefund(return_state_id, return_is_paid)) {
|
||||
review_ids.add(return_id);
|
||||
@ -1367,7 +1367,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
ShopOrderReturn return_row = return_rows.get(0);
|
||||
Integer store_id = return_row.getStore_id();
|
||||
|
||||
// 重要:退款 加库存,改状态
|
||||
// RMK 重要方法:退款 加库存,改状态
|
||||
editNextState(review_ids, store_id, return_curr_state_id, return_rows, return_next_state_id);
|
||||
|
||||
return true;
|
||||
@ -1379,11 +1379,11 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
* @param return_ids 退货订单id
|
||||
* @param store_id 所属店铺
|
||||
* @param return_state_id 当前退单状态
|
||||
* RETURN_PROCESS_SUBMIT = 3100; //【客户】提交退单1ReturnReturn
|
||||
* RETURN_PROCESS_CHECK = 3105; //退单审核1ReturnReturn
|
||||
* RETURN_PROCESS_RECEIVED = 3110; //收货确认0ReturnReturn
|
||||
* RETURN_PROCESS_REFUND = 3115; //退款确认0ReturnReturn
|
||||
* RETURN_PROCESS_RECEIPT_CONFIRMATION = 3120; //[【客户】收款确认0 ReturnReturn
|
||||
* RETURN_PROCESS_SUBMIT = 3100; //【客户】提交退单1
|
||||
* RETURN_PROCESS_CHECK = 3105; //退单审核1
|
||||
* RETURN_PROCESS_RECEIVED = 3110; //收货确认0
|
||||
* RETURN_PROCESS_REFUND = 3115; //退款确认0
|
||||
* RETURN_PROCESS_RECEIPT_CONFIRMATION = 3120; //[【客户】收款确认0
|
||||
* RETURN_PROCESS_FINISH = 3125; //完成1退货退款
|
||||
* RETURN_PROCESS_REFUSED = 3130; //-商家拒绝退货
|
||||
* RETURN_PROCESS_CANCEL = 3135; //-买家取消退款
|
||||
@ -1401,7 +1401,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
ShopOrderReturn shopOrderReturn = new ShopOrderReturn();
|
||||
shopOrderReturn.setReturn_state_id(return_next_state_id);
|
||||
|
||||
//商家 收货确认0ReturnReturn,增加库存
|
||||
//商家 收货确认0,增加库存
|
||||
if (ObjectUtil.equal(return_state_id, StateCode.RETURN_PROCESS_RECEIVED)) {
|
||||
//查询订单退货详情表,得到退货商品数量
|
||||
QueryWrapper<ShopOrderReturnItem> returnItemQueryWrapper = new QueryWrapper<>();
|
||||
@ -1444,30 +1444,36 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
}
|
||||
}
|
||||
|
||||
// 判断是否需要退款?
|
||||
if (shopStoreConfigService.checkNeedRefund(return_state_id, return_next_state_id)) {
|
||||
// 执行真正退款逻辑
|
||||
// 卖家账户扣款,买家账户增加
|
||||
// 佣金问题
|
||||
shopOrderReturn.setReturn_is_paid(1);
|
||||
shopOrderReturn.setReturn_finish_time(new Date());
|
||||
Date now = new Date();
|
||||
|
||||
// 执行退款操作
|
||||
if (!payService.doRefund(return_rows)) {
|
||||
throw new ApiException(ResultCode.FAILED);
|
||||
}
|
||||
}
|
||||
// // 判断是否需要退款?
|
||||
// if (shopStoreConfigService.checkNeedRefund(return_state_id, return_next_state_id)) {
|
||||
// // 执行真正退款逻辑
|
||||
// // 卖家账户扣款,买家账户增加
|
||||
// // 佣金问题
|
||||
// shopOrderReturn.setReturn_is_paid(1); // 0-退货未完成;1-退货完成
|
||||
// shopOrderReturn.setReturn_finish_time(now);
|
||||
//
|
||||
// // 执行退款操作
|
||||
// if (!payService.doRefund(return_rows)) {
|
||||
// throw new ApiException(ResultCode.FAILED);
|
||||
// }
|
||||
// }
|
||||
|
||||
//修改退货订单及其相关商品为下一个待处理状态
|
||||
editShopOrderReturnAndItemNextState(return_ids, return_state_id, shopOrderReturn);
|
||||
|
||||
// 当前状态(旧状态)
|
||||
// return_state_id 是当前状态(旧状态)
|
||||
if (ObjectUtil.equal(return_state_id, StateCode.RETURN_PROCESS_CHECK)) {
|
||||
// 同意退款退货,判断是否全部都退款退货,修改订单状态
|
||||
// todo 判断是否全部退货
|
||||
|
||||
UserDto user = getCurrentUser();
|
||||
|
||||
for (ShopOrderReturn return_row : return_rows) {
|
||||
String order_id = return_row.getOrder_id();
|
||||
|
||||
//退货类型(BOOL): 0-退款单;1-退运费单
|
||||
Integer return_is_shipping_fee = return_row.getReturn_is_shipping_fee();
|
||||
|
||||
if (CheckUtil.isEmpty(return_is_shipping_fee)) {
|
||||
@ -1486,6 +1492,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
|
||||
// 全部退款完成
|
||||
if (ObjectUtil.compare(order_item_payment_amount, return_item_subtotal) == 0) {
|
||||
|
||||
ShopOrderData shopOrderData = new ShopOrderData();
|
||||
shopOrderData.setOrder_id(order_id);
|
||||
shopOrderData.setOrder_refund_status(2);
|
||||
@ -1496,9 +1503,13 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
// 取消订单
|
||||
ShopOrderInfo info_row = shopOrderInfoService.get(order_id);
|
||||
Integer order_state_id = info_row.getOrder_state_id();
|
||||
|
||||
// 没有发货没有完成订单之前,允许取消订单和退运费
|
||||
if (!Arrays.asList(StateCode.ORDER_STATE_SHIPPED, StateCode.ORDER_STATE_RECEIVED, StateCode.ORDER_STATE_FINISH).contains(order_state_id)) {
|
||||
|
||||
// 取消订单,更改订单的状态为已取消
|
||||
shopOrderBaseService.cancel(order_id, info_row, false);
|
||||
// logger.info("全部退款完成,取消订单:{}", order_id);
|
||||
|
||||
// todo 未发货,退运费 - 判断运费是否存在
|
||||
ShopOrderData order_data_row = shopOrderDataService.get(order_id);
|
||||
@ -1506,12 +1517,11 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
// 运费大于0的, 执行退运费操作, 有两种方案,1、生成退运费售后服务单; 2、直接执行退款
|
||||
// 1、生成退运费售后服务单
|
||||
|
||||
UserDto user = getCurrentUser();
|
||||
|
||||
ShopOrderReturn return_order_shipping_fee_row = new ShopOrderReturn();
|
||||
|
||||
Integer buyer_user_id = info_row.getBuyer_user_id();
|
||||
Integer storeId = info_row.getStore_id();
|
||||
// 订单运费
|
||||
BigDecimal order_shipping_fee = order_data_row.getOrder_shipping_fee();
|
||||
BigDecimal order_points_fee = order_data_row.getOrder_points_fee();
|
||||
BigDecimal order_refund_agree_points = order_data_row.getOrder_refund_agree_points();
|
||||
@ -1519,22 +1529,33 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
|
||||
return_order_shipping_fee_row.setOrder_id(order_id); // 订单编号
|
||||
return_order_shipping_fee_row.setBuyer_user_id(buyer_user_id);
|
||||
return_order_shipping_fee_row.setReturn_is_shipping_fee(1);
|
||||
return_order_shipping_fee_row.setReturn_is_shipping_fee(1); //退货类型(BOOL): 0-退款单;1-退运费单
|
||||
return_order_shipping_fee_row.setReturn_reason_id(0);
|
||||
return_order_shipping_fee_row.setReturn_buyer_message(I18nUtil._("全部退款退运费"));
|
||||
return_order_shipping_fee_row.setStore_id(storeId);
|
||||
return_order_shipping_fee_row.setReturn_refund_amount(order_shipping_fee);
|
||||
return_order_shipping_fee_row.setReturn_refund_point(NumberUtil.min(return_refund_point, order_shipping_fee));
|
||||
return_order_shipping_fee_row.setReturn_state_id(StateCode.RETURN_PROCESS_CHECK);
|
||||
return_order_shipping_fee_row.setReturn_add_time(new Date()); // 添加时间
|
||||
// return_order_shipping_fee_row.setReturn_state_id(StateCode.RETURN_PROCESS_CHECK);
|
||||
return_order_shipping_fee_row.setReturn_add_time(now); // 添加时间
|
||||
return_order_shipping_fee_row.setReturn_tel("");
|
||||
return_order_shipping_fee_row.setReturn_store_user_id(user.getId());
|
||||
// 店铺审核操作员
|
||||
Integer storeUserId = user == null ? 0 : user.getId();
|
||||
return_order_shipping_fee_row.setReturn_store_user_id(storeUserId);
|
||||
return_order_shipping_fee_row.setReturn_telephone("");
|
||||
return_order_shipping_fee_row.setSubsite_id(info_row.getSubsite_id());
|
||||
|
||||
String type_code = stateCodeService.getCode(StateCode.ORDER_TYPE_FX, "state_code_code");
|
||||
String return_id = shopNumberSeqService.createNextSeq(type_code);
|
||||
|
||||
// update 2025-07-24
|
||||
return_order_shipping_fee_row.setReturn_flag(0); // 退货标识(BOOL): 0-正常退货;1-退货换货
|
||||
return_order_shipping_fee_row.setReturn_store_message(I18nUtil._("全部退款退运费"));
|
||||
return_order_shipping_fee_row.setReturn_finish_time(now);
|
||||
return_order_shipping_fee_row.setReturn_state_id(StateCode.RETURN_PROCESS_FINISH);
|
||||
return_order_shipping_fee_row.setReturn_is_paid(1);// 退款完成
|
||||
return_order_shipping_fee_row.setReturn_channel_code("lakala");
|
||||
return_order_shipping_fee_row.setPayment_channel_id(1416);
|
||||
|
||||
return_order_shipping_fee_row.setReturn_id(return_id);
|
||||
if (!add(return_order_shipping_fee_row)) {
|
||||
// 1、生成退运费售后服务单;
|
||||
@ -1544,16 +1565,25 @@ 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));
|
||||
// 退款金额+运费
|
||||
BigDecimal order_refund_amount_add_fee = NumberUtil.add(order_refund_amount, order_shipping_fee);
|
||||
orderData.setOrder_refund_amount(order_refund_amount_add_fee);
|
||||
if (!shopOrderDataService.edit(orderData)) {
|
||||
throw new ApiException(I18nUtil._("修改订单退款总额(加运费)失败!"));
|
||||
}
|
||||
|
||||
// RMK: 加上运费没有后续了吗?
|
||||
|
||||
// 最后一个退款订单如果有运费,加上运费
|
||||
return_row.setReturn_refund_amount(order_refund_amount_add_fee);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
// 部分退款
|
||||
// 退款一部分商品
|
||||
ShopOrderData orderData = new ShopOrderData();
|
||||
orderData.setOrder_id(order_id);
|
||||
orderData.setOrder_refund_status(1);
|
||||
orderData.setOrder_refund_status(CommonConstant.Enable);
|
||||
if (!shopOrderDataService.edit(orderData)) {
|
||||
throw new ApiException(I18nUtil._("部分退款失败!"));
|
||||
}
|
||||
@ -1570,6 +1600,21 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
|
||||
}
|
||||
}
|
||||
|
||||
// 判断是否需要退款?
|
||||
if (shopStoreConfigService.checkNeedRefund(return_state_id, return_next_state_id)) {
|
||||
// 执行真正退款逻辑
|
||||
// 卖家账户扣款,买家账户增加
|
||||
// 佣金问题
|
||||
shopOrderReturn.setReturn_is_paid(1); // 0-退货未完成;1-退货完成
|
||||
shopOrderReturn.setReturn_finish_time(now);
|
||||
|
||||
// 执行退款操作
|
||||
if (!payService.doRefund(return_rows)) {
|
||||
throw new ApiException(ResultCode.FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -153,48 +153,62 @@ sf-express:
|
||||
enable: 2
|
||||
#拉卡拉进件配置
|
||||
lakala:
|
||||
# #服务地址
|
||||
# server_url: https://s2.lakala.com
|
||||
# #应用Id
|
||||
# app_id: OP10000439
|
||||
# #商户证书序列号
|
||||
# serial_no: 1737359895636
|
||||
# #商户证书
|
||||
# api_cert_path: payKey/lakala/prod/api_cert.cer
|
||||
# #商户私钥
|
||||
# api_pri_key_path: payKey/lakala/prod/api_private_key.pem
|
||||
# #拉卡拉平台证书
|
||||
# lkl_platform_cer_path: payKey/lakala/prod/lkl_platform.cer
|
||||
# #机构代码
|
||||
# org_code: 980688
|
||||
#服务地址
|
||||
server_url: https://test.wsmsd.cn/sit
|
||||
server_url: https://s2.lakala.com
|
||||
#应用Id
|
||||
app_id: OP00000003
|
||||
app_id: OP10000439
|
||||
#商户证书序列号
|
||||
serial_no: 00dfba8194c41b84cf
|
||||
serial_no: 1737359895636
|
||||
#商户证书
|
||||
api_cert_path: payKey/lakala/dev/OP00000003_cert.cer
|
||||
api_cert_path: payKey/lakala/prod/api_cert.cer
|
||||
#商户私钥
|
||||
api_pri_key_path: payKey/lakala/dev/OP00000003_private_key.pem
|
||||
api_pri_key_path: payKey/lakala/prod/api_private_key.pem
|
||||
#拉卡拉平台证书
|
||||
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
||||
lkl_platform_cer_path: payKey/lakala/prod/lkl_platform.cer
|
||||
#机构代码
|
||||
org_code: 1951582
|
||||
is_prod: false
|
||||
#拉卡拉拓客进件配置
|
||||
org_code: 980688
|
||||
is_prod: true
|
||||
tk:
|
||||
#服务地址
|
||||
server_url: https://test.wsmsd.cn
|
||||
server_url: https://tkapi.lakala.com
|
||||
client_id: lsycs
|
||||
client_secret: XPa1HB5d55Ig0qV8
|
||||
user_no: 29153396
|
||||
split_lowest_ratio: 70.00
|
||||
wx_fee: 0.6 # 微信手续费 6/1000
|
||||
api_pub_key_path: payKey/lakala/dev/tk_api_public_key.txt
|
||||
api_pri_key_path: payKey/lakala/dev/tk_api_private_key.txt
|
||||
notify_pub_key_path: payKey/lakala/dev/tk_notify_public_key.txt
|
||||
notify_pri_key_path: payKey/lakala/dev/tk_notify_private_key.txt
|
||||
wx_fee: 0.25 # 微信手续费 6/1000
|
||||
api_pub_key_path: payKey/lakala/prod/tk_api_public_key.txt
|
||||
api_pri_key_path: payKey/lakala/prod/tk_api_private_key.txt
|
||||
notify_pub_key_path: payKey/lakala/prod/tk_notify_public_key.txt
|
||||
notify_pri_key_path: payKey/lakala/prod/tk_notify_private_key.txt
|
||||
|
||||
# #服务地址
|
||||
# server_url: https://test.wsmsd.cn/sit
|
||||
# #应用Id
|
||||
# app_id: OP00000003
|
||||
# #商户证书序列号
|
||||
# serial_no: 00dfba8194c41b84cf
|
||||
# #商户证书
|
||||
# api_cert_path: payKey/lakala/dev/OP00000003_cert.cer
|
||||
# #商户私钥
|
||||
# api_pri_key_path: payKey/lakala/dev/OP00000003_private_key.pem
|
||||
# #拉卡拉平台证书
|
||||
# lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
||||
# #机构代码
|
||||
# org_code: 1951582
|
||||
# is_prod: false
|
||||
# #拉卡拉拓客进件配置
|
||||
# tk:
|
||||
# #服务地址
|
||||
# server_url: https://test.wsmsd.cn
|
||||
# client_id: lsycs
|
||||
# client_secret: XPa1HB5d55Ig0qV8
|
||||
# user_no: 29153396
|
||||
# split_lowest_ratio: 70.00
|
||||
# wx_fee: 0.6 # 微信手续费 6/1000
|
||||
# api_pub_key_path: payKey/lakala/dev/tk_api_public_key.txt
|
||||
# api_pri_key_path: payKey/lakala/dev/tk_api_private_key.txt
|
||||
# notify_pub_key_path: payKey/lakala/dev/tk_notify_public_key.txt
|
||||
# notify_pri_key_path: payKey/lakala/dev/tk_notify_private_key.txt
|
||||
#e签宝配置
|
||||
esign:
|
||||
server_url: https://smlopenapi.esign.cn
|
||||
|
||||
Loading…
Reference in New Issue
Block a user