Эх сурвалжийг харах

创建账变手续费记录

afa 4 сар өмнө
parent
commit
0dfc982854

+ 10 - 4
application/admin/view/general/sharingfees/add.html

@@ -11,12 +11,10 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('分润类型')}:</label>
         <div class="col-xs-12 col-sm-8">
-            {:build_radios('row[type_id]', ['1'=>__('存储服务费'), '0'=>__('手续费')])}
+            {:build_radios('row[type_id]', ['0'=>__('手续费'), '1'=>__('存储服务费') ])}
         </div>
     </div>
 
-          
-
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Fees')}:</label>
         <div class="col-xs-12 col-sm-8">
@@ -24,7 +22,15 @@
             <p style="color:cadetblue">请输入%</p>
         </div>
     </div>
-   
+
+    <div class="form-group" data-favisible="type_id=1"> 
+        <label class="control-label col-xs-12 col-sm-2">{:__('最大分润')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-max_fees" data-rule="required" class="form-control" step="0.001" name="row[max_fees]" type="number" value="0.000">
+        </div>
+    </div>
+
+
     <div class="form-group layer-footer">
         <label class="control-label col-xs-12 col-sm-2"></label>
         <div class="col-xs-12 col-sm-8">

+ 8 - 1
application/admin/view/general/sharingfees/edit.html

@@ -10,7 +10,7 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('分润类型')}:</label>
         <div class="col-xs-12 col-sm-8">
-            {:build_radios('row[type_id]', ['1'=>__('存储服务费'), '0'=>__('手续费')], $row.type_id)}
+            {:build_radios('row[type_id]', ['0'=>__('手续费'),'1'=>__('存储服务费')], $row.type_id)}
         </div>
     </div>
 
@@ -22,6 +22,13 @@
         </div>
     </div>
 
+    <div class="form-group" data-favisible="type_id=1"> 
+        <label class="control-label col-xs-12 col-sm-2">{:__('最大分润')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-max_fees" data-rule="required" class="form-control" step="0.001" name="row[max_fees]" type="number" value="{$row.max_fees|htmlentities}">
+        </div>
+    </div>
+
 
     <div class="form-group layer-footer">
         <label class="control-label col-xs-12 col-sm-2"></label>

+ 29 - 20
application/api/command/SharingFees.php

@@ -108,46 +108,45 @@ class SharingFees extends Command
         $list = SharingFeesModel::where(['status'=> SharingFeesModel::Normal])->where('type_id', SharingFeesModel::TypeStorage)->select();
         if(empty($list)) return true;
         
-        $teacFee = abs(LedgerTeacChangeModel::whereTime('create_time', 'today')->where('action', LedgerTeacChangeModel::PledgeFee)->sum('change_amount'));       //TEAC   const PledgeFee        = 7; //存储服务费
-        $tokenFee = abs(LedgerTokenChangeModel::whereTime('create_time', 'today')->where('action', LedgerTokenChangeModel::Pledge)->sum('change_amount'));       //TOKEN   const PledgeFee        = 7; //存储服务费
-        $frozenFee = abs(LedgerFrozenChangeModel::whereTime('create_time', 'today')->where('action', LedgerFrozenChangeModel::Pledge)->sum('change_amount'));       //FROZEN   const PledgeFee        = 7; //存储服务费
+        $tokenFee = 20;//abs(LedgerTokenChangeModel::whereTime('create_time', 'today')->where('action', LedgerTokenChangeModel::Pledge)->sum('change_amount'));       //TOKEN   const PledgeFee        = 7; //存储服务费
+        $frozenFee = 30;//abs(LedgerFrozenChangeModel::whereTime('create_time', 'today')->where('action', LedgerFrozenChangeModel::Pledge)->sum('change_amount'));       //FROZEN   const PledgeFee        = 7; //存储服务费
         $i = 0;
         $output = new Output();
         $wallet = new LedgerWalletModel();
         $productOrder = new ProductOrder();
+
         foreach($list as $item){
           
             //TOKEN产品的持有量
             $productHold = $productOrder::getHoldProductNum($item->product_id);
             //统计产品总数量
             $productNum =  array_sum(array_column($productHold, 'num')) ;
-
-            //Teac分润
-            $teacFees = bcmul($teacFee, bcdiv($item->fees, 100, 3), 3);
-            //每份产品的分润
-            $tave = bcdiv($teacFees, $productNum, 6);
-
+            $divided = 0;
             //TOKEN分润
             $tokenFees = bcmul($tokenFee, bcdiv($item->fees, 100, 3), 3);
+            //判断最大分润:0不限制
+            if(!empty($item->max_fees)){
+                //最大分润
+                $divided = bcsub($item->max_fees, $item->divided_fees, 6);
+                if($tokenFees > $divided) $tokenFees = $divided;
+            }
             //每份产品的分润
             $cave = bcdiv($tokenFees, $productNum, 6);
 
             //冻结分润
             $frozenFees = bcmul($frozenFee, bcdiv($item->fees, 100, 3), 3);
+            //判断最大分润:0不限制
+            if($divided > 0){
+                //最大分润
+                $divided = bcsub($divided, $tokenFees, 6);
+                if($frozenFees > $divided) $frozenFees = $divided;
+            }
             //每份产品的分润
-            $fave = bcdiv($frozenFees, $productNum, 6);
-            //$output->writeln('产品:' . $item->product_id . '茶宝分润:' . $tave . ' 手续费账户分润:' . $fave );
+            $fave      = bcdiv($frozenFees, $productNum, 6);
+            $totalFees = 0; //用户总分润
             foreach ($productHold as $vv) {
-
-                //TEAC
-                $teacNum = bcmul($vv->num, $tave, 6);
-                if($teacNum > 0) {
-                    $wallet->changeWalletAccount($vv->user_id, Asset::TEAC, $teacNum , LedgerTokenChangeModel::SharingFees);
-                    $output->writeln('用户:' . $vv->user_id . 'TEAC分润:' . $teacNum );
-                }
-
                 //茶宝
-                $tokenNum = bcmul($vv->num, $cave, 6);
+                $tokenNum = bcmul($vv->num, $cave, 6); //持有数量 * 每份产品的分润
                 if($tokenNum > 0) {
                     $wallet->changeWalletAccount($vv->user_id, Asset::TOKEN, $tokenNum , LedgerTokenChangeModel::SharingFees);
                     $output->writeln('用户:' . $vv->user_id . '茶宝分润:' . $tokenNum );
@@ -158,6 +157,16 @@ class SharingFees extends Command
                     $wallet->changeWalletAccount($vv->user_id, Asset::FROZEN, $frozenNum , LedgerFrozenChangeModel::SharingFees);
                     $output->writeln('用户:' . $vv->user_id. ' 手续费账户分润:' . $frozenNum );
                 }
+                //用户总分润
+                $totalFees += bcadd($tokenNum, $frozenNum, 6);
+            }
+
+            //更新分润
+            if($totalFees > 0) {
+                $item->divided_fees += $totalFees;
+                //判断是否到最大分润
+                if($item->max_fees == $item->divided_fees) $item->status = 0;
+                $item->save();
                 $i +=1;
             }
         }

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

@@ -22,6 +22,8 @@ class MarketLogic
             //添加寄售订单
             $fee = getConfig('transfer_fee');
             $feeAmount = bcmul($price, $fee, 2) ;
+            echo 11;die;
+            dump($orderNo);die;
             return ProductTransfer::setTransferOrder($userId, $productId, $areaId, $feeAmount, $orderNo, $params);
       }
 

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

@@ -117,6 +117,8 @@ class LedgerTokenChangeModel extends Model
             'change_amount'  => $amount,
             'present_amount' =>  bcsub($newAmount, abs($amount), 6),
             'action'         => self::TransferFee,
+            'create_time'    => time(),
+
         ]);
     }
 

+ 10 - 2
public/assets/js/backend/general/sharingfees.js

@@ -27,11 +27,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {checkbox: true},
                         {field: 'id', title: __('Id'), operate: false},
                         {field: 'product_id', title: __('Product_id'), operate: false},
-                        {field: 'fees', title: __('Fees'), operate:'BETWEEN'},
                         {field: 'type_id', title: __('分润类型'), searchList: { "1": __('存储服务费'), "0": __('手续费') }, formatter: Table.api.formatter.status },
+                        {field: 'fees', title: __('Fees'), operate:'BETWEEN'},
+                        {field: 'max_fees', title: __('最大分润'), operate: false, formatter: function (value, row, index) {
+                            if(row.type_id== 1) return value
+                            return '-'
+                        }},
+                        {field: 'divided_fees', title: __('当前已分润'), operate:false,formatter: function (value, row, index) {
+                            if(row.type_id== 1) return value
+                            return '-'
+                        }},
                         {field: 'status', title: __('Status'), searchList: { "1": __('上架'), "0": __('下架') }, formatter: Table.api.formatter.toggle },
                         {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', operate: false, autocomplete:false, formatter: Table.api.formatter.datetime},
-                        {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', operate: false, autocomplete:false, formatter: Table.api.formatter.datetime},
+                        //{field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', operate: false, autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                     ]
                 ]