startTrans(); try{ // trace($data, '平台抽成 - 支付成功招商员佣金结算 - 开始处理'); $orderId = (int)$data['order_id']; $where = [ ['order_id', '=', $orderId], ['merchants_status', '=', 0], ]; $field = 'a.id,a.site_id,a.store_id,a.order_id,a.merchants_money,s.merchants_member_id,s.store_name'; $join = [ ['store s', 's.store_id = a.store_id', 'LEFT'], // 关联客服 ]; $list = model('commission_record')->getList($where,$field,'','a',$join); // 循环处理 $updateData = []; $insertData = []; foreach($list as $recordInfo){ // 根据是否存在招商员 进行对应的处理 if((int)$recordInfo['merchants_member_id'] > 0){ // 存在招商员 招商员佣金结算 $insertData[] = [ 'site_id' => $recordInfo['site_id'], 'member_id' => $recordInfo['merchants_member_id'], 'join_id' => $recordInfo['id'], 'account_type' => 'merchants', 'account_type_name' => '招商员佣金', 'account_data' => $recordInfo['merchants_money'], 'remark' => $recordInfo['store_name'] . '的订单收入', ]; // 修改信息 $updateData[] =[ 'id' => $recordInfo['id'], 'merchants_status' => 1, ]; } else{ // 不存在招商员 $updateData[] =[ 'id' => $recordInfo['id'], 'merchants_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)'); } }