afa 4 сар өмнө
parent
commit
7c75b76f2e

+ 2 - 2
application/api/controller/Airdrop.php

@@ -12,7 +12,7 @@ use app\common\model\UserWelfare;
 use app\common\model\LedgerFrozenChangeModel;
 use app\common\model\LedgerWalletModel;
 use app\common\model\ProductOrder;
-use fast\Asset;
+use app\common\model\LedgerTokenChangeModel;
 
 //空投
 class Airdrop extends Api
@@ -76,7 +76,7 @@ class Airdrop extends Api
         try {
             
             //把9.9茶宝转入冻结账号
-            if($row->frozen > 0) $ledgerWalletModel->setChangeFrozen($this->auth->id, $row->frozen, LedgerFrozenChangeModel::Super, '+');
+            if($row->frozen > 0) $ledgerWalletModel->setChangeFrozen($this->auth->id, $row->frozen, LedgerFrozenChangeModel::Super, LedgerTokenChangeModel::Super, '+');
             
             //添加Rwa茶记录
             WelfareLoginc::setUserWelfareLos($this->auth->id, $row->super_product_id, $row->super_num, time(), $this->lan, $productOrder::Super);

+ 1 - 1
application/api/controller/Order.php

@@ -211,7 +211,7 @@ class Order extends Api
             
             //扣除手续费
             if($fees > 0) {
-                list($token, $frozen) = $ledgerWalletModel->setChangeFrozen($this->auth->id, $fees, LedgerFrozenChangeModel::Giveaway, '-');
+                list($token, $frozen) = $ledgerWalletModel->setChangeFrozen($this->auth->id, $fees, LedgerFrozenChangeModel::Giveaway, LedgerTokenChangeModel::Giveaway, '-');
                 //等级分佣
                 if($this->auth->team_level_id > 0){
                     list($inc, $asset, $action) = CommonLogic::getFrozenIsChabao($token, $frozen); //

+ 10 - 6
application/api/controller/Pledge.php

@@ -92,10 +92,12 @@ class Pledge extends Api
         if($pledge->type_id == $productPledges::Single &&  $count > config('pledge_single_max')) $this->error(__("单品最大三个限制"));
         if (empty($pledge)) $this->error(__("质抵活动不存在"));
         if (empty($pledge->status) )$this->error(__("质抵活动已结束"));
-
         //余额判断
-        $user = $ledgerWalletModel::getWallet($this->auth->id);
-        if($pledge[$this->pay[$pay_type]] >0 && $user[$this->pay[$pay_type]] < $pledge[$this->pay[$pay_type]]) $this->error(__("余额不足"));
+        if($pledge[$this->pay[$pay_type]] > 0){
+            $user = $ledgerWalletModel::getWallet($this->auth->id);
+            //判断余额是否足够
+            if($pledgeLogic::isUserBalance($user, $pay_type, $pledge[$this->pay[$pay_type]]) == false) $this->error(__("余额不足"));
+        }
         Db::startTrans();
         try {
 
@@ -191,9 +193,11 @@ class Pledge extends Api
             if (empty($pledge)) $this->error(__("质抵活动不存在"));
             if ($pledge->status != $userPledge::Ongoing || empty($pledge->is_renew) || empty($pledge->p_status))$this->error(__("质抵活动已结束"));
             //余额判断
-            $user = $ledgerWalletModel::getWallet($this->auth->id);
-            if($pledge[$this->pay[$pay_type]] >0 && $user[$this->pay[$pay_type]] < $pledge[$this->pay[$pay_type]]) $this->error(__("余额不足"));
-            
+            if($pledge[$this->pay[$pay_type]] > 0){
+                  $user = $ledgerWalletModel::getWallet($this->auth->id);
+                  //判断余额是否足够
+                  if($pledgeLogic::isUserBalance($user, $pay_type, $pledge[$this->pay[$pay_type]]) == false) $this->error(__("余额不足"));
+            }
             Db::startTrans();
             try {
                   // 质抵押订单 

+ 0 - 2
application/api/logic/CommonLogic.php

@@ -111,8 +111,6 @@ class CommonLogic
       }
 
 
-
-
       //发放层级收益
       public static function setTeamLevelIncome(int $user_id, float $num,string $asset, string $action)
       {     

+ 30 - 13
application/api/logic/PledgeLogic.php

@@ -7,6 +7,7 @@ use think\Env;
 use think\Cache;
 use think\Loader ;
 use fast\Asset;
+use app\common\model\LedgerFrozenChangeModel;
 use app\common\model\LedgerTokenChangeModel;
 use app\common\model\ProductLists;
 use app\common\model\ProductOrder;
@@ -16,8 +17,6 @@ use app\common\model\ProductPledges;
 //质押抵扣
 class PledgeLogic
 {
-    
-    
     //获取产品信息
     public  static function getByProductIdList(object $list, string $lan = 'zh')
     {
@@ -53,18 +52,16 @@ class PledgeLogic
         $product=  self::getOrderProductList($user_id, $order_id, $count);
 
         if(empty($product) || count($product) < $count)  throw new Exception('订单不存在');
-        $pledge_num = 1;
-        if($pledge->type_id == ProductPledges::Single) $pledge_num = $count;
+        //数量
+        $pledge_num = ($pledge->type_id == ProductPledges::Single)? $count: 1;
         
         //添加订单 
         Loader::model('UserPledge')::setPledgeData($user_id, $pledge->id, $pledge->product_id, 
         $product, //订单信息
         $pledge->day_num, $pledge_num);
 
-        //扣除支付金额
-        $action = ($pay_type == Asset::TEAC)? LedgerTeacChangeModel::PledgeFee: LedgerTokenChangeModel::Pledge; //类型
-        if($price >0) Loader::model('LedgerWalletModel')->changeWalletAccount($user_id, $pay_type, -$price, $action, 0);
-  
+        self::setPledgeFee($user_id, $pay_type, $price);
+       
         //修改状态
         return Loader::model('ProductOrder')->whereIn('id', $order_id)->setField('status', ProductOrder::Freeze);
     }
@@ -142,7 +139,7 @@ class PledgeLogic
         //修改状态
         Loader::model('ProductOrder')::where('user_id', $user_id)->whereIn('id', $orderId)->setField('status', ProductOrder::Paid);
 
-        //
+        //等级
         if($rows->type_id == 2) CommonLogic::setIsOuLevelSave($user_id, $team_level_id, $address_level);
         //更新领取状态
         $rows->last_time = $time;
@@ -152,7 +149,6 @@ class PledgeLogic
     
     //收取质抵押订单列表:(60*60*24)*(当前时间-最后一次收取时间)
     public static function getPledgeCollect(int $user_id)
-
     {   
         $model  = Loader::model('UserPledge');
         $time  = time();
@@ -195,9 +191,8 @@ class PledgeLogic
     public static function setPledgeOrderRenew(object $pledge, int $user_id, string $pay_type)
     {   
         //扣除支付金额
-        $action = ($pay_type == Asset::TEAC)? LedgerTeacChangeModel::PledgeFee: LedgerTokenChangeModel::Pledge; //类型
-        if($pledge[$pay_type] > 0) Loader::model('LedgerWalletModel')->changeWalletAccount($user_id, $pay_type, -$pledge[$pay_type], $action, 0);
-  
+        self::setPledgeFee($user_id, $pay_type, $pledge[$pay_type]);
+
         $pledge->end_time = $pledge->end_time + config('pledge_end_time');
         return $pledge->save();
     }
@@ -219,6 +214,28 @@ class PledgeLogic
         return $pledge->save();
     }
 
+    //判断用户余额 
+    public static function isUserBalance(object $user, int $pay_type, string $pay)
+    {
+        $result = true;
+        if ($pay_type == 1 && bcadd($user['token'], $user['frozen']) < $pay) $result = false;
+        if ($pay_type == 2 && $user['teac'] < $pay) $result = false;
+        return $result;
+    }
+
+    //扣除存储手续费
+    private static function setPledgeFee(int $user_id, int $pay_type, float $price)
+    {
+        if( empty($price)) return true;
+        //扣除支付金额
+        if ($pay_type == Asset::TEAC) {
+            Loader::model('LedgerWalletModel')->changeWalletAccount($user_id, $pay_type, -$price, LedgerTeacChangeModel::PledgeFee, 0);
+        }else{
+            Loader::model('LedgerWalletModel')->setChangeFrozen($user_id, $price, LedgerFrozenChangeModel::Pledge, LedgerTokenChangeModel::Pledge, '-');
+        }
+        
+    }
+
 
     //获取订单产品
     private static function getOrderProductList(int $user_id, array $order_id, int $count)

+ 2 - 0
application/common/model/LedgerFrozenChangeModel.php

@@ -21,6 +21,7 @@ class LedgerFrozenChangeModel extends Model
     const RwaExchangeRecord = 6;
     const Ecology           = 7; //生态节点
     const TeamLevel         = 8; //等级分佣
+    const Pledge            = 9; //质押
 
     public static function getStatusList()
     {
@@ -35,6 +36,7 @@ class LedgerFrozenChangeModel extends Model
             self::RwaExchangeRecord=> __('兑换Rwa赠送'),
             self::Ecology => __('生态节点'),
             self::TeamLevel => __('社区服务奖励'),
+            self::Pledge => __('质押'),
         ];
     }
 

+ 3 - 3
application/common/model/LedgerWalletModel.php

@@ -155,7 +155,7 @@ class LedgerWalletModel extends Model
      * @return void
      * @throws Exception
      */
-    public  function setChangeFrozen(int $uid, string $amount, int $action, string $icn, int $from_id = 0)
+    public  function setChangeFrozen(int $uid, string $amount, int $action, int $token, string $icn, int $from_id = 0)
     {
         $available = $this->getWallet($uid);
         $ledgerWalletModel  = new LedgerWalletModel();
@@ -176,7 +176,7 @@ class LedgerWalletModel extends Model
                 $walletUpdate = ['token'=> bcadd($totalAmount, -$amount, 6), 'frozen' => 0];
                 //添加茶宝账变记录
                 $subAmount = $token = bcsub($amount, $available['frozen'], 6);
-                $this->changeWalletAccount($uid, Asset::TOKEN, -$subAmount, LedgerTokenChangeModel::Giveaway, $from_id);
+                $this->changeWalletAccount($uid, Asset::TOKEN, -$subAmount, $token, $from_id);
             }
             //添加冻结
             $newAmount = $walletUpdate['frozen'];
@@ -192,7 +192,7 @@ class LedgerWalletModel extends Model
             $newAmount = $amount; //剩余的冻结金额
             //添加冻结
             $walletUpdate =['token' => $chabao, 'frozen' =>$newAmount];
-            $this->changeWalletAccount($uid, Asset::TOKEN, $sunAmount, LedgerTokenChangeModel::Super, $from_id);
+            $this->changeWalletAccount($uid, Asset::TOKEN, $sunAmount, $token, $from_id);
             $result = true;
         }
       

+ 2 - 1
public/assets/js/backend/ledger/ledger_frozen_change.js

@@ -37,7 +37,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                 5: '系统调整',
                                 6: '兑换Rwa赠送',
                                 7: '生态节点',
-                                8: '社区服务奖励'
+                                8: '社区服务奖励',
+                                9: '存储服务费',
                             }, operate: 'FIND_IN_SET', formatter: Table.api.formatter.label
                         },
                     ]