|
|
@@ -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;
|
|
|
}
|
|
|
}
|