BF-202210271038\Administrator 3 tahun lalu
induk
melakukan
c1331fa3a1

+ 39 - 0
app/Jobs/ContractCommonJob.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Jobs;
+
+use App\Servers\ContractServer;
+use App\Servers\MemberClanServer;
+use App\Servers\MemberServer;
+use Illuminate\Bus\Queueable;
+use Illuminate\Queue\SerializesModels;
+use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Foundation\Bus\Dispatchable;
+
+class ContractCommonJob implements ShouldQueue
+{
+    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
+
+    private $pIds;
+    private $pId;
+    /**
+     * Create a new job instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+
+    }
+
+    /**
+     * Execute the job.
+     *
+     * @return void
+     */
+    public function handle()
+    {
+        ContractServer::creatServer()->verifyContractCommon();
+    }
+}

+ 38 - 0
app/Jobs/VerificationLevelJob.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Jobs;
+
+use App\Servers\MemberClanServer;
+use App\Servers\MemberServer;
+use Illuminate\Bus\Queueable;
+use Illuminate\Queue\SerializesModels;
+use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Foundation\Bus\Dispatchable;
+
+class VerificationLevelJob implements ShouldQueue
+{
+    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
+
+    private $pIds;
+    private $pId;
+    /**
+     * Create a new job instance.
+     *
+     * @return void
+     */
+    public function __construct($pIds)
+    {
+        $this->pIds=$pIds;
+    }
+
+    /**
+     * Execute the job.
+     *
+     * @return void
+     */
+    public function handle()
+    {
+        MemberServer::creatServer()->verificationLevel($this->pIds);
+    }
+}

+ 29 - 1
app/Servers/ContractServer.php

@@ -38,6 +38,7 @@ class ContractServer
       5=>'公排池',
       6=>'沉淀奖',
       7=>'代币奖',
+      8=>'公排出局',
     ];
 
 
@@ -123,6 +124,7 @@ class ContractServer
                    //代币清分
                    $this->agencyProportion($contract);
                    //触发会员升级
+                   JobServer::creatServer()->verificationLevelJob($pIds);
                }
                DB::commit();
             }
@@ -317,6 +319,7 @@ class ContractServer
             $this->addDistribution($contract->{'id'},$contract->{'m_id'},0,$commonMoney,5,0,'',$contract->{'common_proportion'},0,'平台关闭转账至系统账户,不进行划拨分账');
         }
         //公排触发清算队列
+        JobServer::creatServer()->contractCommonJob();
     }
 
     /**
@@ -391,11 +394,36 @@ class ContractServer
         $teamIds=array_filter(explode(',',$teamIds));
         $teamIds[]=$mId;
         if($teamIds){
-            $contractNum=Contract::whereIn('m_id',$teamIds)->where('status','2')->count();
+            $contractNum=Contract::whereIn('m_id',$teamIds)->whereIn('status',[2,4])->count();
         }
         return $contractNum;
     }
 
+    /**
+     * 公排出局检测
+     * @throws \Exception
+     */
+    function verifyContractCommon(){
+        $commonNum=CommonServer::creatServer()->getConfigValue('common_num');
+        $contractIds=Contract::where('status',2)->where('is_out',0)->orderBy('id','asc')->limit($commonNum)->pluck('id')->toArray();
+        if(count($contractIds)>=$commonNum){
+            //选择第一个单子排队出公排
+            $contract=Contract::where('status',2)->orderBy('id','asc')->first();
+            DB::beginTransaction();
+            Contract::whereIn('id',$contractIds)->update(['is_out'=>1]);
+            $commonBnb=CommonServer::creatServer()->getConfigValue('common_bnb');
+            $commonDb=CommonServer::creatServer()->getConfigValue('common_db');
+            $exchangeMoney=CommonServer::creatServer()->getConfigValue('exchange_money');
+            $member=Member::where('id',$contract->{'m_id'})->select(['id','address','is_boss'])->first();
+            $this->addDistribution($contract->{'id'},$contract->{'m_id'},0,$commonBnb,9,$member->{'id'},$member->{'address'},$commonBnb,1,'bsn公排出局');
+            $dbMoney=1*$exchangeMoney*$commonDb;
+            $this->addDistribution($contract->{'id'},$contract->{'m_id'},$dbMoney,0,9,$member->{'id'},$member->{'address'},$commonBnb,1,'代币公排出局');
+            MoneyDetailServer::creatServer()->write(1,2,$dbMoney,1,$member->{'id'},'公排池代币出局',$contract->{'id'});
+            $contract->update(['status' => 4]);
+            DB::commit();
+        }
+    }
+
 
 
     /**

+ 17 - 0
app/Servers/JobServer.php

@@ -8,8 +8,10 @@ namespace App\Servers;
 
 use App\Jobs\BoadcastDetectionJob;
 use App\Jobs\BusinessFileJob;
+use App\Jobs\ContractCommonJob;
 use App\Jobs\CreatBothJob;
 use App\Jobs\MsgFileJob;
+use App\Jobs\VerificationLevelJob;
 use App\Models\BlockItems;
 
 /**
@@ -57,6 +59,21 @@ class JobServer
         CreatBothJob::dispatch($mId,$pId)->delay(3)->onConnection('redis')->onQueue('creatBoth');
     }
 
+    /**
+     * 会员等级升级
+     * @param $pIds
+     */
+    function verificationLevelJob($pIds){
+        VerificationLevelJob::dispatch($pIds)->delay(3)->onConnection('redis')->onQueue('newLevel');
+    }
+
+    /**
+     * 公排出局
+     */
+    function contractCommonJob(){
+       ContractCommonJob::dispatch()->delay(3)->onConnection('redis')->onQueue('contractCommon');
+    }
+
 
 
 

+ 16 - 0
app/Servers/MemberServer.php

@@ -8,6 +8,7 @@ use App\Jobs\UploadingImgJob;
 use App\Models\CoinType;
 use App\Models\ErrorRecord;
 use App\Models\ImService;
+use App\Models\Level;
 use App\Models\Member;
 use App\Models\MemberClan;
 use App\Models\MemberCoins;
@@ -182,6 +183,21 @@ class MemberServer
 
     }
 
+    /**
+     * 会员等级校验
+     * @param $pIds
+     */
+    function verificationLevel($pIds){
+        foreach ($pIds as $pId){
+            $member=Member::where('id',$pId)->select(['id','address','level_id'])->first();
+            $contractNum=ContractServer::creatServer()->getTeamContractNum($pId);
+            $newLevelId=Level::where('total_num','>=',$contractNum)->orderBy('id','desc')->value('id');
+            if(!empty($newLevelId) && $newLevelId>$member->{'level_id'}){
+                $member->update(['level_id'=>$newLevelId]);
+            }
+        }
+    }
+
 
 
 

+ 1 - 2
app/Servers/MoneyDetailServer.php

@@ -36,6 +36,7 @@ class MoneyDetailServer
 
     private $status_arr = [
         1 => '代币分账',
+        2 => '公排出局',
     ];
 
 
@@ -114,8 +115,6 @@ class MoneyDetailServer
      * @param $m_id
      * @param $mark
      * @param int $fromID
-     * @param int $shop_id
-     * @param int $level
      * @return MoneyDetail|false|\Illuminate\Database\Eloquent\Model
      */
     public function write($type, $status, $price, $addReduce, $m_id, $mark = '', $fromID = 0)