startTrans(); try{ // trace($data, '平台抽成 - 支付成功推广员佣金结算 - 开始处理'); $orderId = (int)$data['order_id']; // 当前订单 $where = [ ['order_id', '=', $orderId], ['promoter_status', '=', 0], ]; $join = [ ['member m', 'a.member_id = m.member_id', 'LEFT'], ['fenxiao fx', 'm.fenxiao_id = fx.fenxiao_id', 'LEFT'], ]; $field = 'a.id,a.site_id,a.member_id,a.promoter_money,m.is_fenxiao,m.nickname,fx.member_id as fenxiao_member_id,fx.parent'; $list = model('commission_record')->getList($where,$field,'','a', $join); // 循环处理 $updateData = []; $insertData = []; foreach($list as $recordInfo){ // 判断:当前用户是否为分销 获取对应的上级分销商用户id if($recordInfo['is_fenxiao'] == 1){ // 当前用户是分销商 使用parent查询上级用户id $parentMemberId = model('fenxiao')->getValue(['fenxiao_id'=>$recordInfo['parent']], 'member_id'); }else{ // 当前用户不是分销商 直接为fenxiao_member_id $parentMemberId = $recordInfo['fenxiao_member_id']; } // 判断:是否存在上级 if((int)$parentMemberId > 0){ // 存在上级 $insertData[] = [ 'site_id' => $recordInfo['site_id'], 'member_id' => $parentMemberId, 'join_id' => $recordInfo['id'], 'account_type' => 'promoter', 'account_type_name' => '推广员佣金', 'account_data' => $recordInfo['promoter_money'], 'remark' => '推广订单收入', ]; // 修改信息 $updateData[] =[ 'id' => $recordInfo['id'], 'promoter_status' => 1, ]; }else{ // 不存在上级 $updateData[] =[ 'id' => $recordInfo['id'], 'promoter_status' => 2, ]; } } // 数据结果处理 if(count($insertData) > 0) model('commission_account')->addList($insertData); if(count($updateData) > 0){ $updateModel = (new NewBaseModel(['table_name' => 'commission_record', 'pk' => 'id'])); $updateModel->saveAll($updateData); } model("commission_record")->commit(); } catch(\Exception $e){ model("commission_record")->rollback(); $data['error_msg'] = $e->getMessage(); trace($data, '平台抽成 - 支付成功推广员佣金结算 - 失败'); } $job->delete(); } public function failed($data){ trace($data, '平台抽成 - 支付成功推广员佣金结算 - 失败(failed)'); } }