| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <?php
- namespace addons\BossThree\common\logic;
- use addons\BossThree\common\enums\BossThreeEnum;
- use addons\BossThree\common\models\BossThree;
- use common\enums\StatusEnum;
- use common\models\common\Addons;
- use common\models\mall\MallAddons;
- use common\models\order\Order;
- use common\models\user\User;
- use common\traits\ErrorTrait;
- use Exception;
- use services\common\UserWalletService;
- use Yii;
- /**
- * 佣金逻辑
- * User: zmz
- * Date: 2022/7/11
- * Time: 23:14
- */
- class CommissionLogic
- {
- use ErrorTrait;
- /**
- * 结算佣金
- * @param $boss_id
- * @param $order_id
- * @param $order_detail_id
- * @param $commission
- * @throws
- * @return
- */
- public static function settleCommission($boss_id,$order_id,$commission)
- {
- try{
- $boss = BossThree::findOne(['id' => $boss_id,'status' => StatusEnum::ENABLED]);
- if(!$boss){
- throw new Exception('股东信息不存在');
- }
- $boss->commission = bcadd($boss->commission,$commission,2);
- $boss->total_commission = bcadd($boss->total_commission,$commission,2);
- if(!$boss->save()){
- throw new Exception($boss->getError());
- }
- $order = Order::findOne(['id' => $order_id])->toArray();
- $desc = '用户(' . $boss->user_id . '),获得订单(' . $order_id . ')奖励,奖励类型:股东分红3'.',金额:' . $commission;
- $insert_wallet [] = [
- 'mall_id' => $boss->mall_id,
- 'user_id' => $boss->user_id,
- 'is_frozen' => false,
- 'wallet_type' => UserWalletService::WALLET_TYPE_COMMISSION,
- 'money' => $commission,
- 'desc' => $desc,
- 'source_table' => 'order',
- 'source_table_id' => $order_id,
- 'from_type' => BossThreeEnum::ADDONS_NAME,
- 'capital_type' => BossThreeEnum::BOSS_PRIZE,
- 'contributor_name' => '',
- 'order_no' => $order['order_no']
- ];
- $res = UserWalletService::batchHandleByQueue($insert_wallet);
- if (empty($res)) throw new \Exception(UserWalletService::getStaticError());
- return true;
- }catch(Exception $e){
- Yii::error('settleCommission error:'.$e->getMessage().' ,File:'.$e->getFile().',Line:'.$e->getLine());
- return false;
- }
- }
- /**
- * @desc:推广中心-调用
- * @Author: hua
- * @Date: 2021/11/12
- * @Time: 9:30
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @param $params ['user_id' => 1, 'mall_id' => 5, 'addons_name' => 'Agent']
- * @return array
- */
- public static function getIncomeInfo(array $params){
- $is_install = MallAddons::isInstall($params['mall_id'], $params['addons_name']);
- $data['total_commission'] = 0;
- $data['is_install'] = 0;
- $basic = \Yii::$app->services->setting->addons->get($params['mall_id'], $params['addons_name'], 'basic');
- $data['is_show_at_center'] = 1;
- if(isset($basic['is_show_at_center'])) $data['is_show_at_center'] = $basic['is_show_at_center'];
- if($is_install){
- //查询用户在插件内的佣金总额
- $user = User::findOne(['id' => $params['user_id']]);
- $boss = BossThree::findOne(['mall_id' => $params['mall_id'],'user_id' => $params['user_id'],'status' => StatusEnum::ENABLED]);
- $data['total_commission'] = $boss->total_commission ?? 0;
- $data['is_install'] = $is_install;
- }
- return $data;
- }
- public static function getAddons(array $params){
- $is_install = MallAddons::isInstall($params['mall_id'], $params['addons_name']);
- if($is_install){
- $detail = Addons::getOne([['name' => $params['addons_name']], ['is_online' => 1]], true,);
- return [
- 'addons_name'=>$params['addons_name'],
- 'title'=>$detail['title'],
- ];
- }
- return [];
- }
- }
|