调试供应链订单退款
This commit is contained in:
parent
d3ef2fa0bf
commit
ca226a4d2a
@ -9,6 +9,7 @@ use app\common\model\store\order\StoreOrder;
|
||||
use app\common\model\system\merchant\FinancialRecord;
|
||||
use app\common\model\system\merchant\Merchant;
|
||||
use app\common\model\user\User;
|
||||
use app\common\model\user\UserBill;
|
||||
use app\common\repositories\system\merchant\MerchantRepository;
|
||||
use crmeb\utils\Curl;
|
||||
use think\facade\Log;
|
||||
@ -32,7 +33,7 @@ class CommissionDao
|
||||
// 订单为自提,且佣金大于0
|
||||
$financeDao->user = $order->user;
|
||||
$financeDao->order = $order;
|
||||
$financeDao->platformOut($commission, 'commission_to_store');
|
||||
$financeDao->platformOut($commission, 'commission_to_store', $order['mer_id']);
|
||||
app()->make(MerchantRepository::class)->addLockMoney($order['mer_id'], 'order', $order['order_id'], $commission);
|
||||
}
|
||||
$consumption = StoreConsumption::where('status', 1)->where('type', StoreConsumption::TYPE_FIRST_ORDER_COMMISSION)->find();
|
||||
@ -54,8 +55,8 @@ class CommissionDao
|
||||
$commission = bcmul($order['pay_price'], 0.03, 2);
|
||||
$financeDao->user = $user;
|
||||
$financeDao->order = $order;
|
||||
$financeDao->platformOut($commission, 'commission_to_promoter');
|
||||
app()->make(MerchantRepository::class)->addLockMoney($order['mer_id'], 'order', $order['order_id'], $commission);
|
||||
$financeDao->platformOut($commission, 'commission_to_promoter', $merchantId);
|
||||
app()->make(MerchantRepository::class)->addLockMoney($merchantId, 'order', $order['order_id'], $commission);
|
||||
$redPack = bcmul($order['pay_price'], $consumption['config']['red_pack_rate'], 2);
|
||||
if ($redPack > 0) {
|
||||
try {
|
||||
@ -161,32 +162,28 @@ class CommissionDao
|
||||
if ($refunded > 0) {
|
||||
return;
|
||||
}
|
||||
$commission = bcmul($refundOrder->order['pay_price'], 0.01, 2);
|
||||
$financeDao = new FinancialDao();
|
||||
if ($commission > 0 && $refundOrder->order['order_type'] == 1 && $refundOrder->order['source'] != 105) {
|
||||
// 订单为自提,且佣金大于0,下单的店铺退佣金
|
||||
$financeDao->user = $refundOrder->order->user;
|
||||
$financeDao->order = $refundOrder->order;
|
||||
$financeDao->platformIn($commission, 'commission_to_store_refund', $refundOrder->order['mer_id']);
|
||||
app()->make(MerchantRepository::class)->subLockMoney($refundOrder->order['mer_id'], 'order', $refundOrder->order['order_id'], $commission);
|
||||
}
|
||||
|
||||
// 退佣金和红包
|
||||
$financeRecord = FinancialRecord::where('order_id', $refundOrder->order['order_id'])
|
||||
->whereIn('financial_type', ['commission_to_store', 'commission_to_courier', 'commission_to_promoter'])
|
||||
->field('user_id uid,user_info nickname')->select()->toArray();
|
||||
->field('user_id uid,user_info nickname,number,mer_id,financial_type')->select()->toArray();
|
||||
if (empty($financeRecord)) {
|
||||
return;
|
||||
}
|
||||
$redPack = bcmul($refundOrder->order['pay_price'], 0.07, 2);
|
||||
$financeDao = new FinancialDao();
|
||||
foreach ($financeRecord as $item) {
|
||||
$financeDao->user = $item;
|
||||
$financeDao->order = $refundOrder->order;
|
||||
$financeDao->platformIn($item['number'], $item['financial_type'] . '_refund');
|
||||
(new StoreConsumptionUserDao())->refundByCommission($item['uid'], $refundOrder->order->order_id, $redPack);
|
||||
$financeDao->platformIn($item['number'], $item['financial_type'] . '_refund', $item['mer_id']);
|
||||
if ($item['mer_id'] > 0) {
|
||||
app()->make(MerchantRepository::class)->subLockMoney($item['mer_id'], 'order', $refundOrder->order['order_id'], $item['number']);
|
||||
}
|
||||
}
|
||||
$financeDao->save();
|
||||
|
||||
// TODO 服务团队退红包
|
||||
// $redPacks = UserBill::whereIn('');
|
||||
// (new StoreConsumptionUserDao())->refundByCommission($item['uid'], $refundOrder->order->order_id, $redPack);
|
||||
|
||||
$promotionCode = User::where('uid', $refundOrder['uid'])->value('promotion_code');
|
||||
if ($promotionCode) {
|
||||
$curl = new Curl();
|
||||
|
@ -42,6 +42,8 @@ class StoreConsumptionUserDao extends BaseDao
|
||||
|
||||
/** @var float $consumptionTotalAmount 红包总金额 */
|
||||
public $consumptionTotalAmount;
|
||||
/** @var int $orderType 订单类型:1 groupOrder,2 order */
|
||||
public $orderType = 2;
|
||||
|
||||
protected function getModel(): string
|
||||
{
|
||||
@ -99,6 +101,7 @@ class StoreConsumptionUserDao extends BaseDao
|
||||
$storeActivityOrderDao = new StoreActivityOrderDao();
|
||||
$storeActivityOrder = $storeActivityOrderDao->save($groupOrder, $spreadUserId, $isFirstOrder);
|
||||
if ($consumption['type'] == StoreConsumption::TYPE_OWNER_CONSUMPTION && $storeActivityOrder['status'] == StoreActivityOrder::STATUS_VALID && $storeActivityOrder['red_pack'] == 0) {
|
||||
$this->orderType = 1;
|
||||
$this->send($consumption, $scope['rate'], $userId, $groupOrder['group_order_id'], $orderValidAmount, StoreConsumptionUser::STATUS_UNUSED);
|
||||
$this->send($consumption, $scope['rate_two'], $userId, $groupOrder['group_order_id'], $orderValidAmount, StoreConsumptionUser::STATUS_UNUSED, StoreConsumptionUser::TYPE_TWO);
|
||||
$storeActivityOrderDao->repeal($groupOrder['group_order_id']);
|
||||
@ -153,6 +156,7 @@ class StoreConsumptionUserDao extends BaseDao
|
||||
$spreadOrderIds = "{$spreadGroupOrder['group_order_id']}," . $spreadOrderIds;
|
||||
// 使用了红包,订单有效金额需要乘以80%
|
||||
$orderValidAmount = $spreadGroupOrder['red_pack'] > 0 ? bcmul($orderValidAmount, 0.8, 2) : $orderValidAmount;
|
||||
$this->orderType = 1;
|
||||
$this->send($spreadConsumption, $spreadScope['rate'], $spreadUserId, $spreadOrderIds, $orderValidAmount);
|
||||
$storeActivityOrderDao->batchRepeal(explode(',', $spreadOrderIds));
|
||||
}
|
||||
@ -252,12 +256,18 @@ class StoreConsumptionUserDao extends BaseDao
|
||||
// 写入红包日志
|
||||
/** @var $userBillRepository UserBillRepository */
|
||||
$userBillRepository = app()->make(UserBillRepository::class);
|
||||
$mark = ['order_amount' => $amount, 'coupon_user_id' => $model['coupon_user_id']];
|
||||
if ($this->orderType == 2) {
|
||||
$mark['order_id'] = $groupOrderIds;
|
||||
} else {
|
||||
$mark['group_order_id'] = $groupOrderIds;
|
||||
}
|
||||
$userBillRepository->incBill($userId, 'red_pack', "red_pack_{$type}", [
|
||||
'link_id' => $model['coupon_user_id'],
|
||||
'status' => 1,
|
||||
'title' => '获得' . $title,
|
||||
'number' => $couponPrice,
|
||||
'mark' => '获得' . $title . $couponPrice . ",订单金额:{$amount}",
|
||||
'mark' => json_encode($mark, JSON_UNESCAPED_UNICODE),
|
||||
'balance' => 0
|
||||
]);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user