diff --git a/app/common/repositories/user/UserRepository.php b/app/common/repositories/user/UserRepository.php index 9edbc3f..9f4b37a 100644 --- a/app/common/repositories/user/UserRepository.php +++ b/app/common/repositories/user/UserRepository.php @@ -9,6 +9,7 @@ use app\common\dao\BaseDao; use app\common\dao\user\UserDao; use app\common\model\store\order\StoreOrder; use app\common\model\user\User; +use app\common\model\user\UserBill; use app\common\model\wechat\WechatUser; use app\common\repositories\BaseRepository; use app\common\repositories\community\CommunityRepository; @@ -1100,9 +1101,9 @@ class UserRepository extends BaseRepository $query->field('avatar,nickname,uid'); }, 'orderProduct', - 'platformCommission' => function($query){ - $query->field('order_id,(commission_partner_money + commission_merchants_money + commission_promoter_money) as total_platform_commission'); - } + // 'platformCommission' => function($query){ + // $query->field('order_id,(commission_partner_money + commission_merchants_money + commission_promoter_money) as total_platform_commission'); + // } ])->select()->toArray(); foreach ($list as $k => $item) { @@ -1119,8 +1120,16 @@ class UserRepository extends BaseRepository } unset($list[$k]['extension_one'], $list[$k]['extension_two']); // 处理佣金 + 平台抽成相关佣金 - $sumPlatformCommission = (float)array_sum(array_column($item['platformCommission'],'total_platform_commission')); - $list[$k]['brokerage'] = (float)sprintf("%.2f",$list[$k]['brokerage'] + $sumPlatformCommission); + // $sumPlatformCommission = (float)array_sum(array_column($item['platformCommission'],'total_platform_commission')); + $platformCommission = (float)UserBill::getDB()->where('category', 'brokerage') + ->whereIn('type', ['commission_merchants','commission_promoter']) + ->where('uid', $uid) + ->where('link_id', $item['order_id']) + ->where('pm', 1) + ->sum('number'); + + + $list[$k]['brokerage'] = (float)sprintf("%.2f",$list[$k]['brokerage'] + $platformCommission); } return compact('count', 'list'); } diff --git a/app/event.php b/app/event.php index 8f702f3..42fd85e 100644 --- a/app/event.php +++ b/app/event.php @@ -67,6 +67,11 @@ return [ // 订单退款 - 平台抽成相关处理 'app\listener\platformCommission\OrderAgreeRefundEvent' ], + // 订单核销成功事件触发 + 'order.verify' => [ + // 酒卡额度解冻 + 'app\listener\platformCommission\OrderTakeEvent' + ], ], 'subscribe' => [], ]; diff --git a/app/listener/platformCommission/OrderPaySuccessEvent.php b/app/listener/platformCommission/OrderPaySuccessEvent.php index cf492d3..3b92946 100644 --- a/app/listener/platformCommission/OrderPaySuccessEvent.php +++ b/app/listener/platformCommission/OrderPaySuccessEvent.php @@ -4,7 +4,9 @@ namespace app\listener\platformCommission; use app\common\model\store\platformCommission\Record; use app\common\model\system\merchant\Merchant; +use app\common\model\user\UserBill; use app\common\repositories\store\platformCommission\RecordRepository; +use app\common\repositories\user\UserBillRepository; use app\jobs\store\platformCommission\CommissionMerchantsSettlementJob; use app\jobs\store\platformCommission\CommissionPromoterSettlementJob; use app\jobs\store\platformCommission\GiveWeightValueJob; @@ -104,6 +106,17 @@ class OrderPaySuccessEvent{ 'commission_integral_release_rate' => $set['commission_integral_release_rate'], 'commission_integral_release_money' => (float)sprintf("%.2f",$platformCommissionMoney * $set['commission_integral_release_rate'] / 100), ]; + // 减少商户金额 + if (systemConfig('mer_lock_time')) { + UserBill::where('mer_id', $orderInfo->mer_id) + ->where('link_id', (1).$orderProductInfo->order_id) + ->where('type', 'order') + ->where('category', 'mer_lock_money') + ->where('pm', 1) + ->dec('number',$platformCommissionMoney) ->update(); + } else { + Merchant::where('mer_id', $orderInfo->mer_id)->dec('mer_money',$platformCommissionMoney) ->update(); + } } } }