afa 4 months ago
parent
commit
90167f0dee

+ 8 - 2
application/admin/view/general/sharingfees/add.html

@@ -11,11 +11,11 @@
     <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]', ['0'=>__('手续费'), '1'=>__('存储服务费') ])}
+            {:build_radios('row[type_id]', ['0'=>__('手续费'), '1'=>__('存储服务费'), '2'=>__('销售分润') ])}
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group" data-favisible="type_id<2">
         <label class="control-label col-xs-12 col-sm-2">{:__('Fees')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-fees" data-rule="required" class="form-control" step="0.001" name="row[fees]" type="number" value="0.000">
@@ -30,6 +30,12 @@
         </div>
     </div>
 
+    <div class="form-group" data-favisible="type_id=2"> 
+        <label class="control-label col-xs-12 col-sm-2">{:__('发放茶宝')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-chabao" data-rule="required" class="form-control" step="1" name="row[chabao]" type="number" value="0">
+        </div>
+    </div>
 
     <div class="form-group layer-footer">
         <label class="control-label col-xs-12 col-sm-2"></label>

+ 9 - 2
application/admin/view/general/sharingfees/edit.html

@@ -10,11 +10,11 @@
     <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]', ['0'=>__('手续费'),'1'=>__('存储服务费')], $row.type_id)}
+            {:build_radios('row[type_id]', ['0'=>__('手续费'),'1'=>__('存储服务费'), '2'=>__('销售分润') ], $row.type_id)}
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group" data-favisible="type_id<2">
         <label class="control-label col-xs-12 col-sm-2">{:__('Fees')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-fees" data-rule="required" class="form-control" step="0.001" name="row[fees]" type="number" value="{$row.fees|htmlentities}">
@@ -35,6 +35,13 @@
         </div>
     </div>
 
+    <div class="form-group" data-favisible="type_id=2"> 
+        <label class="control-label col-xs-12 col-sm-2">{:__('发放茶宝')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-chabao" data-rule="required" class="form-control" step="1" name="row[chabao]" type="number" value="{$row.chabao|htmlentities}">
+        </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">

+ 37 - 3
application/api/command/SharingFees.php

@@ -36,11 +36,14 @@ class SharingFees extends Command
         /*** 发放分红收益 ***/
         $output->writeln("手续费分润:");
       
-        $feeCount = self::setSharingFees($output);
+        $feeCount = 0;//self::setSharingFees($output);
 
         //存储服务费分润
-        $pledgeCount = self::setSharingPledge($output);
-        $output->writeln('定时任务执行结束,手续费执行:' .  $feeCount  . '个,服务费执行:' .  $pledgeCount  . '个');
+        $pledgeCount = 0; //self::setSharingPledge($output);
+
+        //销售分润
+        $saleCount = self::setSharingSales($output);
+        $output->writeln('定时任务执行结束,手续费执行:' .  $feeCount  . '个,服务费执行:' .  $pledgeCount  . '个,销售分润:' .  $saleCount  . '个');
     }
 
 
@@ -170,4 +173,35 @@ class SharingFees extends Command
         return $i;
     }
 
+
+    //销售分润
+    public static function setSharingSales($output){
+
+        $list = SharingFeesModel::where(['status'=> SharingFeesModel::Normal])->where('chabao', '>', 0)->where('type_id', SharingFeesModel::TypeChabao)->select();
+        if(empty($list)) return true;
+        $i = 0;
+        $wallet = new LedgerWalletModel();
+        $productOrder = new ProductOrder();
+        foreach($list as $item){
+          
+            //TOKEN产品的抢购的订单
+            $productPopular = $productOrder::getPopularProductNum($item->product_id);
+
+            //每份产品的分润
+            $cave =$item->chabao;
+            foreach ($productPopular as $vv) {
+                //茶宝
+                $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 );
+                    $i +=1;
+                }
+            }
+        }
+        return $i;
+    }
+
+
+
 }

+ 1 - 1
application/api/logic/OrderLogic.php

@@ -20,7 +20,7 @@ class OrderLogic
 {
 
 
-      //创建订单
+      //创建订单 is_popular
       public static function createOrderByType(int $type, array $areaArr, int $orderId, int $price, int $productId, int $uid, int $areaNum): bool
       {
             if($type == 1){

+ 15 - 3
application/common/model/ProductOrder.php

@@ -98,8 +98,8 @@ class ProductOrder extends Model
      * @param float $price     抢购价
      */
     public static function setCreateOrder(int $orderId, $orderInfo, $typeId, $userId, $fromUser, string $orderNo, float $fees, float $price): object
-    {   
-        return self::create([
+    {
+        $data = [
                 'order_id'   => $orderId,
                 'product_id' => $orderInfo['product_id'],
                 'type_id'    => $typeId,
@@ -112,7 +112,10 @@ class ProductOrder extends Model
                 'popular_price'=> $price,
                 'fees'       => $fees,
                 'num'        => 1
-        ]);
+        ];
+        //抢购订单
+        if($typeId == self::Popular) $data['is_popular'] = self::Paid;
+        return self::create($data);
     }
 
     //判断是否购买持有产品
@@ -130,6 +133,15 @@ class ProductOrder extends Model
         ->select();
     }
 
+    //获取抢购产品数量
+    public static function getPopularProductNum(string $productId){
+        return self::whereIn('product_id', $productId)->where('is_popular', self::Paid)->whereTime('create_time', 'yesterday')
+        ->field('user_id,sum(num) as num')
+        ->group('user_id')
+        ->select();
+    }
+
+
     //获取持有产品数量
     public static function getByOrderProductNum($productId, $num, $uid)
     {

+ 1 - 0
application/common/model/Sharingfees.php

@@ -32,6 +32,7 @@ class Sharingfees extends Model
     // 分润类型
     const TypeFees         = 0;
     const TypeStorage      = 1;
+    const TypeChabao       = 2;
 
 
     public function getCreateTimeTextAttr($value, $data)

+ 1 - 1
application/config.php

@@ -380,7 +380,7 @@ return [
         ],
         'parent_hold_product_id' => [16, 17, 35], //上级持有产品
         'parent_product_id'      => 26,    //上级空投指定产品
-        'parent_chabao'          => 450,   //上级奖励茶宝: 顺序:1=1, 2=2, 3=0
+        'parent_chabao'          => 300,   //上级奖励茶宝: 顺序:1=1, 2=2, 3=0
     ],
     //超级福利奖励
     'super_welfare' => [

+ 5 - 1
public/assets/js/backend/general/sharingfees.js

@@ -27,7 +27,7 @@ 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: 'type_id', title: __('分润类型'), searchList: { "1": __('存储服务费'), "0": __('手续费') }, formatter: Table.api.formatter.status },
+                        {field: 'type_id', title: __('分润类型'), searchList: { "1": __('存储服务费'), "0": __('手续费') , '2':__('销售分润') }, 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
@@ -37,6 +37,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                             if(row.type_id== 1) return value
                             return '-'
                         }},
+                        {field: 'chabao', title: __('发放茶宝'), operate:false,formatter: function (value, row, index) {
+                            if(row.type_id== 2) 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},