From 9c88c0fcf2c17666bb56d83051fd26fbe8426cff Mon Sep 17 00:00:00 2001
From: wuhui_zzw <1760308791@qq.com>
Date: Fri, 8 Dec 2023 15:28:47 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E6=96=87=E5=88=9B?=
=?UTF-8?q?=E7=A9=BA=E9=97=B4=E7=9B=B8=E5=85=B3=E7=BB=9F=E8=AE=A1=E5=92=8C?=
=?UTF-8?q?=E5=85=B6=E4=BB=96=E6=99=AE=E9=80=9A=E7=BB=9F=E8=AE=A1=E5=88=86?=
=?UTF-8?q?=E5=BC=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/models/Income.php | 49 +++++++
.../finance/controllers/IncomeController.php | 123 ++++++++++++++++--
.../controllers/IncomeWithdrawController.php | 41 ++++--
.../views/admin/withdraw-set.blade.php | 4 +-
.../src/api/IndexController.php | 12 +-
.../src/api/LegumesController.php | 6 +-
.../src/models/CulturalSpace.php | 6 +-
.../src/PluginApplication.php | 4 +-
.../src/models/ShareholderDividendModel.php | 2 +-
.../src/services/TimedTaskService.php | 2 +-
.../views/admin/tpl/aingle-dividend.blade.php | 2 +-
.../views/admin/withdraw-set.blade.php | 4 +-
.../views/admin/withdraw-set.blade.php | 6 +-
.../weight-value/src/api/IndexController.php | 5 +-
.../weight-value/src/models/WeightValue.php | 70 +++++++---
15 files changed, 274 insertions(+), 62 deletions(-)
diff --git a/app/common/models/Income.php b/app/common/models/Income.php
index 1f602294..9480c212 100644
--- a/app/common/models/Income.php
+++ b/app/common/models/Income.php
@@ -317,4 +317,53 @@ class Income extends BaseModel
}
return $this->withdraw;
}
+
+ // 获取累计收入(包括已提现收入)
+ // $contentType:cultural_space=文创空间、broker=非文创空间
+ public static function getAllIncome($uid,$contentType = 'all'){
+ // 这里查询不包括 经销商、分销商、股东分红相关佣金
+ $otherTotal = (float)Income::uniacid()
+ ->whereNotIn('dividend_code',[1,2,64])
+ ->where('member_id', $uid)
+ ->sum('amount');
+ // 获取经销商提成 分红类型:0=分红佣金,1=平级奖,2=感恩奖励,3=额外分红,4=生态建设,5=生态贡献(生态建设平级奖),6=生态服务
+ $teamDividendTotal = (float)Income::uniacid()
+ ->leftjoin('yz_team_dividend','yz_team_dividend.id','=','yz_member_income.incometable_id')
+ ->where('yz_member_income.dividend_code', 2)
+ ->where('yz_member_income.member_id', $uid)
+ ->when($contentType != 'all',function($query) use ($contentType){
+ if($contentType == 'cultural_space') $query->whereIn('yz_team_dividend.type',[4,5,6]);
+ else $query->whereNotIn('yz_team_dividend.type',[4,5,6]);
+ })
+ ->sum('yz_member_income.amount');
+ // 获取分销商提成 0=普通分销商订单,1=文创分销商订单
+ $commissionTotal = (float)Income::uniacid()
+ ->leftjoin('yz_commission_order','yz_commission_order.id','=','yz_member_income.incometable_id')
+ ->where('yz_member_income.dividend_code', 1)
+ ->where('yz_member_income.member_id', $uid)
+ ->when($contentType != 'all',function($query) use ($contentType){
+ if($contentType == 'cultural_space') $query->where('yz_commission_order.level_type',1);
+ else $query->where('yz_commission_order.level_type',0);
+ })
+ ->sum('yz_member_income.amount');
+ // 获取股东分红提成 收益类型:0=股权分红,1=加权收益 权证兑换
+ $shareholderDividendTotal = (float)Income::uniacid()
+ ->leftjoin('yz_shareholder_dividend','yz_shareholder_dividend.id','=','yz_member_income.incometable_id')
+ ->where('yz_member_income.dividend_code', 64)
+ ->where('yz_member_income.member_id', $uid)
+ ->when($contentType != 'all',function($query) use ($contentType){
+ if($contentType == 'cultural_space') $query->where('yz_shareholder_dividend.income_type',1);
+ else $query->where('yz_shareholder_dividend.income_type',0);
+ })
+ ->sum('yz_member_income.amount');
+ // 总计
+ return array_sum([$otherTotal,$teamDividendTotal,$commissionTotal,$shareholderDividendTotal]);
+ }
+
+
+
+
+
+
+
}
\ No newline at end of file
diff --git a/app/frontend/modules/finance/controllers/IncomeController.php b/app/frontend/modules/finance/controllers/IncomeController.php
index 1594eb67..01f3c748 100644
--- a/app/frontend/modules/finance/controllers/IncomeController.php
+++ b/app/frontend/modules/finance/controllers/IncomeController.php
@@ -18,6 +18,9 @@ use app\frontend\modules\member\models\MemberBankCard;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Log;
use app\common\models\Order;
+use Yunshop\Commission\models\CommissionOrder;
+use Yunshop\ShareholderDividend\models\ShareholderDividendModel;
+use Yunshop\TeamDividend\models\TeamDividendModel;
class IncomeController extends ApiController
{
@@ -100,10 +103,12 @@ class IncomeController extends ApiController
/**
* @return \Illuminate\Http\JsonResponse
*/
- public function getIncomeList()
- {
+ public function getIncomeList(){
+ $uid = \YunShop::app()->getMemberId();
$configs = \app\backend\modules\income\Income::current()->getItems();
$type = \YunShop::request()->income_type;
+ $contentType = request()->input('content_type');
+
$search = [];
foreach ($configs as $key => $config) {
if ($config['type'] == $type) {
@@ -112,15 +117,115 @@ class IncomeController extends ApiController
}
}
$swich = \app\common\models\MemberRelation::uniacid()->select('share_page_deail')->first();
- $search['select'] = $swich->share_page_deail;
+ $search['select'] = 1;//$swich->share_page_deail;
- $incomeModel = Income::getIncomesList($search)->where('amount','>',0)->where('member_id', \YunShop::app()->getMemberId())->paginate($this->pageSize);
- if ($swich->share_page_deail) {
- $incomeModel = $this->OrderUserDetails($incomeModel);
- }
- if ($incomeModel) {
- return $this->successJson('获取数据成功!', $incomeModel);
+ // 获取明细列表
+ // $incomeModel = Income::getIncomesList($search)
+ // ->where('amount','>',0)
+ // ->where('member_id', \YunShop::app()->getMemberId())
+ // ->paginate($this->pageSize);
+
+ $incomeModel = Income::uniacid()
+ ->select([
+ 'yz_member_income.id',
+ 'yz_member_income.create_month',
+ 'yz_member_income.incometable_type',
+ 'yz_member_income.type_name',
+ 'yz_member_income.amount',
+ 'yz_member_income.created_at',
+ 'yz_member_income.detail',
+ 'yz_member_income.incometable_id',
+
+ 'yz_team_dividend.type as team_dividend_type',
+ 'yz_commission_order.level_type as commission_type',
+ 'yz_shareholder_dividend.income_type as shareholder_dividend_type',
+ ])
+ ->leftJoin('yz_team_dividend', function ($join){
+ $join->on('yz_team_dividend.id', 'yz_member_income.incometable_id')
+ ->where('yz_member_income.dividend_code', 2);
+ })
+ ->leftJoin('yz_commission_order', function ($join) {
+ $join->on('yz_commission_order.id', 'yz_member_income.incometable_id')
+
+ ->where('yz_member_income.dividend_code', 1);
+ })
+ ->leftJoin('yz_shareholder_dividend', function ($join) {
+ $join->on('yz_shareholder_dividend.id', 'yz_member_income.incometable_id')
+ ->where('yz_member_income.dividend_code', 64);
+ })
+ ->when($contentType != 'all',function($query) use ($contentType){
+ if($contentType == 'cultural_space') {
+ // 文创空间相关
+ $query->where(function($subQuery){
+ $subQuery->where(function($threeQuery){
+ $threeQuery->where('yz_member_income.dividend_code',2)->whereIn('yz_team_dividend.type',[4,5,6]);
+ })->orWhere(function($threeQuery){
+ $threeQuery->where('yz_member_income.dividend_code',1)->where('yz_commission_order.level_type',1);
+ })->orWhere(function($threeQuery){
+ $threeQuery->where('yz_member_income.dividend_code',64)->where('yz_shareholder_dividend.income_type',1);
+ })->orWhere(function($threeQuery){
+ $threeQuery->whereNotIn('yz_member_income.dividend_code',[1,2,64]);
+ });
+ });
+ }
+ else if($contentType == 'broker') {
+ // 非文创空间相关
+ $query->where(function($subQuery){
+ $subQuery->where(function($threeQuery){
+ $threeQuery->where('yz_member_income.dividend_code',2)->whereNotIn('yz_team_dividend.type',[4,5,6]);
+ })->orWhere(function($threeQuery){
+ $threeQuery->where('yz_member_income.dividend_code',1)->where('yz_commission_order.level_type',0);
+ })->orWhere(function($threeQuery){
+ $threeQuery->where('yz_member_income.dividend_code',64)->where('yz_shareholder_dividend.income_type',0);
+ })->orWhere(function($threeQuery){
+ $threeQuery->whereNotIn('yz_member_income.dividend_code',[1,2,64]);
+ });
+ });
+ }
+ })
+ ->where('yz_member_income.member_id', $uid)
+ ->when(!empty($search['type']),function($query) use ($search){
+ $query->where('yz_member_income.incometable_type', $search['type']);
+ })
+ ->orderBy('yz_member_income.id', 'desc')
+ ->paginate($this->pageSize);
+
+ if ($swich->share_page_deail) $incomeModel = $this->OrderUserDetails($incomeModel);
+ // 循环处理
+ if($incomeModel){
+ $incomeModel = $incomeModel->toArray();
+ foreach($incomeModel['data'] as &$incomeItem){
+ if($incomeItem['commission_type'] == 1) $incomeItem['type_name'] = '生态发展';
+ else if($incomeItem['team_dividend_type'] == 4) $incomeItem['type_name'] = '生态建设';
+ else if($incomeItem['team_dividend_type'] == 5) $incomeItem['type_name'] = '生态贡献';
+ else if($incomeItem['team_dividend_type'] == 6) $incomeItem['type_name'] = '生态服务';
+ else if($incomeItem['shareholder_dividend_type'] == 1) $incomeItem['type_name'] = '权证兑换';//'加权收益';
+ // switch($incomeItem['incometable_type']){
+ // // 分销商相关处理
+ // case 'Yunshop\Commission\models\CommissionOrder':
+ // // 0=普通分销商订单,1=文创分销商订单
+ //
+ // $commissionLevelType = CommissionOrder::where('id',$incomeItem['incometable_id'])->value('level_type');
+ // if($commissionLevelType == 1) $incomeItem['type_name'] = '生态发展';
+ // break;
+ // // 经销商相关处理
+ // case 'Yunshop\TeamDividend\models\TeamDividendModel':
+ // // 分红类型:0=分红佣金,1=平级奖,2=感恩奖励,3=额外分红,4=生态建设,5=生态贡献(生态建设平级奖),6=生态服务
+ // $teamDividendType = TeamDividendModel::where('id',$incomeItem['incometable_id'])->value('type');
+ // if($teamDividendType == 4) $incomeItem['type_name'] = '生态建设';
+ // else if($teamDividendType == 5) $incomeItem['type_name'] = '生态贡献';
+ // else if($teamDividendType == 6) $incomeItem['type_name'] = '生态服务';
+ // break;
+ // // 股东分红相关处理
+ // case 'Yunshop\ShareholderDividend\models\ShareholderDividendModel':
+ // $shareholderDividendType = ShareholderDividendModel::where('id',$incomeItem['incometable_id'])->value('income_type');
+ // if($shareholderDividendType == 1) $incomeItem['type_name'] = '加权收益';
+ // break;
+ // }
+ }
}
+ // 输入成功
+ if ($incomeModel) return $this->successJson('获取数据成功!', $incomeModel);
return $this->errorJson('未检测到数据!');
}
diff --git a/app/frontend/modules/finance/controllers/IncomeWithdrawController.php b/app/frontend/modules/finance/controllers/IncomeWithdrawController.php
index 52c5353c..6e08d2c0 100644
--- a/app/frontend/modules/finance/controllers/IncomeWithdrawController.php
+++ b/app/frontend/modules/finance/controllers/IncomeWithdrawController.php
@@ -74,19 +74,38 @@ class IncomeWithdrawController extends ApiController
* 可提现数据接口【完成】
* @return \Illuminate\Http\JsonResponse
*/
- public function getWithdraw()
- {
+ public function getWithdraw(){
+ $contentType = request()->input('content_type');
+
+ return $this->successJson('获取数据成功!', $this->computeWithdraw($contentType));
+ }
+ //计算佣金相关内容 $contentType:cultural_space=文创空间、broker=非文创空间
+ public function computeWithdraw($contentType = 'all'){
$shopEsign = $this->shopEsign();
+ // 区分 是否仅获取文创空间 || 非文创空间
$income_config = \app\backend\modules\income\Income::current()->getItems();
+ $culturalContentType = ['commission_share_reward','contributionBonus','weight_income','ecological_services','ecological_construction','ecological_contribution'];
+ if($contentType == 'cultural_space'){
+ //仅获取文创空间相关
+ foreach($income_config as $incomeHandleKey => $incomeHandleItem){
+ if(!in_array($incomeHandleItem['type'],$culturalContentType)){
+ unset($income_config[$incomeHandleKey]);
+ }
+ }
+ }
+ else if($contentType == 'broker'){
+ // 仅获取非文创空间相关
+ foreach($income_config as $incomeHandleKey => $incomeHandleItem){
+ if(in_array($incomeHandleItem['type'],$culturalContentType)){
+ unset($income_config[$incomeHandleKey]);
+ }
+ }
+ }
$income_data = [];
-
$loveName = '爱心值';
- if (app('plugins')->isEnabled('love')) {
- $loveName = LOVE_NAME;
-
- }
+ if (app('plugins')->isEnabled('love')) $loveName = LOVE_NAME;
$deductionLove = [
'love_name' => $loveName,
'deduction_type' => 0,
@@ -94,7 +113,6 @@ class IncomeWithdrawController extends ApiController
'deduction_value' => 0,
'deduction_status' => 0,
];
-
$all_withdraw_income = 0;
foreach ($income_config as $key => $income) {
//余额不计算 拍卖预付款不计算
@@ -121,7 +139,6 @@ class IncomeWithdrawController extends ApiController
$income_data[] = $data;
}
-
//增加经销商提现显示口爱心值
if ($income['type'] == 'teamDividend') {
$teamDividendWithdraw = (new IncomeWithdrawApply());
@@ -133,7 +150,7 @@ class IncomeWithdrawController extends ApiController
}
$withdraw_rich_text = WithdrawRichText::uniacid()->first() ?: [];
- $data = [
+ return [
'data' => $income_data,
'setting' => [
'balance_special' => $this->getBalanceSpecialSet(),
@@ -147,9 +164,9 @@ class IncomeWithdrawController extends ApiController
'all_withdraw_income' => $all_withdraw_income ?: 0.00,
'need_sign' => $this->needSign(),
];
- return $this->successJson('获取数据成功!', $data);
}
+
private function needSign()
{
if (!app('plugins')->isEnabled('shop-esign-v2')) {
@@ -537,7 +554,7 @@ class IncomeWithdrawController extends ApiController
->get()->toArray();
}
else if($income['type'] == 'weight_income'){
- // 股东分红 - 加权收益
+ // 股东分红 - 加权收益 权证兑换
$amountList = ShareholderDividendModel::getIncome((int)$uid,(int)1,'undrawn')
->select(['yz_member_income.id','yz_member_income.amount'])
->get()->toArray();
diff --git a/plugins/commission/views/admin/withdraw-set.blade.php b/plugins/commission/views/admin/withdraw-set.blade.php
index 7b1796b0..365f425f 100644
--- a/plugins/commission/views/admin/withdraw-set.blade.php
+++ b/plugins/commission/views/admin/withdraw-set.blade.php
@@ -64,13 +64,13 @@
{{--分享奖励提现设置--}}
diff --git a/plugins/cultural-space/src/api/IndexController.php b/plugins/cultural-space/src/api/IndexController.php
index 84b15af0..c1a3ba29 100644
--- a/plugins/cultural-space/src/api/IndexController.php
+++ b/plugins/cultural-space/src/api/IndexController.php
@@ -127,7 +127,7 @@ class IndexController extends ApiController{
case 'team_performance':
$result = $this->getPerformanceChangeList($uid);
break;
- // 加权收益明细
+ // 加权收益明细 权证兑换
case 'weight_income':
$result = ShareholderDividendModel::getIncome((int)$uid,(int)1)
->select([
@@ -247,9 +247,9 @@ class IndexController extends ApiController{
return $this->successJson('success',[
- 'voucher_number' => $culturalSpaceInfo->voucher_number,
- 'goods_legumes' => $culturalSpaceInfo->goods_legumes,
- 'goods_legumes_money' => $culturalSpaceInfo->goods_legumes_money,
+ 'voucher_number' => (float)$culturalSpaceInfo->voucher_number,
+ 'goods_legumes' => (float)$culturalSpaceInfo->goods_legumes,
+ 'goods_legumes_money' => (float)$culturalSpaceInfo->goods_legumes_money,
'commission_rate' => $withdrawalCommissionRate,
'task_video_link' => $set['task_video_link']
]);
@@ -522,7 +522,7 @@ class IndexController extends ApiController{
'poundage' => $poundage,// 总服务费
];
break;
- // 股权收益
+ // 股权收益 权证兑换
case 'shareholding':
$poundage = Income::uniacid()
@@ -538,7 +538,7 @@ class IndexController extends ApiController{
$info = [
- 'weight_income' => ShareholderDividendModel::getIncome((int)$uid,(int)1)->sum('yz_member_income.amount'),// 加权收益
+ 'weight_income' => ShareholderDividendModel::getIncome((int)$uid,(int)1)->sum('yz_member_income.amount'),// 加权收益 权证兑换
'weight_income_withdrawn' => ShareholderDividendModel::getIncome((int)$uid,(int)1,'withdrawn')->sum('yz_member_income.amount'),// 已提现
'weight_income_undrawn' => ShareholderDividendModel::getIncome((int)$uid,(int)1,'undrawn')->sum('yz_member_income.amount'),// 可提现
'poundage' => $poundage,// 总服务费
diff --git a/plugins/cultural-space/src/api/LegumesController.php b/plugins/cultural-space/src/api/LegumesController.php
index 42627774..78f438e6 100644
--- a/plugins/cultural-space/src/api/LegumesController.php
+++ b/plugins/cultural-space/src/api/LegumesController.php
@@ -28,9 +28,9 @@ class LegumesController extends ApiController{
->sum('withdrawal_total_num');
$data = [
- 'total_get' => $info->voucher_number,// 总获得
- 'voucher_number' => $info->voucher_number,// 当前持有
- 'goods_legumes' => $info->goods_legumes,// 商品兑换
+ 'total_get' => (float)$info->voucher_number,// 总获得
+ 'voucher_number' => (float)$info->voucher_number,// 当前持有
+ 'goods_legumes' => (float)$info->goods_legumes,// 商品兑换
'fund_num' => $fundNum,// 共享基金
'withdrawal_total_num' => $withdrawalTotalNum
];
diff --git a/plugins/cultural-space/src/models/CulturalSpace.php b/plugins/cultural-space/src/models/CulturalSpace.php
index 934f7f1b..18ba727c 100644
--- a/plugins/cultural-space/src/models/CulturalSpace.php
+++ b/plugins/cultural-space/src/models/CulturalSpace.php
@@ -341,7 +341,7 @@ class CulturalSpace extends BaseModel
$legumesIncome = sprintf("%.2f",$culturalSpace['voucher_number'] * $exchangeRate);
// 获取小区业绩(去除最大的线的业绩)和团队总业绩
$teamAmount = $this->getTeamOrderAmount($uid);
- // 获取加权收益
+ // 获取加权收益 权证兑换
$weightIncome = ShareholderDividendModel::getIncome((int)$uid,(int)1)->sum('yz_member_income.amount');
// 分享奖励
$shareReward = CommissionOrder::getIncome((int)$uid,(int)1,'undrawn')->sum('yz_member_income.amount');
@@ -356,11 +356,11 @@ class CulturalSpace extends BaseModel
'contribution_value' => ['key_name' => 'contribution_value','title' => '贡献值','num' => $culturalSpace['contribution'],'sort' => 5],
'area_performance' => ['key_name' => 'area_performance','title' => '小区业绩','num' => $teamAmount['area_amount'],'sort' => 7],
'team_performance' => ['key_name' => 'team_performance','title' => '团队总业绩','num' => $teamAmount['team_amount'],'sort' => 8],
- 'weight_income' => ['key_name' => 'weight_income','title' => '加权收益','num' => $weightIncome,'sort' => 9],
+ 'weight_income' => ['key_name' => 'weight_income','title' => '权证兑换','num' => $weightIncome,'sort' => 9],
'shareholding_income' => ['key_name' => 'shareholding_income','title' => '股权收益','num' => 0,'sort' => 10],
'share_reward' => ['key_name' => 'share_reward','title' => '生态发展','num' => $shareReward,'sort' => 11],
];
- // 合伙人等级增加显示加权收益,不显示服务收益、贡献收益、贡献值分红
+ // 合伙人等级增加显示权证兑换,不显示服务收益、贡献收益、贡献值分红
// if($isPartner) unset($list['service_income'],$list['contribution_income'],$list['contribution_bonus']);
// else unset($list['weight_income']);
// 排序
diff --git a/plugins/shareholder-dividend/src/PluginApplication.php b/plugins/shareholder-dividend/src/PluginApplication.php
index a1d0d5a1..46384510 100644
--- a/plugins/shareholder-dividend/src/PluginApplication.php
+++ b/plugins/shareholder-dividend/src/PluginApplication.php
@@ -32,9 +32,9 @@ class PluginApplication extends \app\common\services\PluginApplication
'class' => 'Yunshop\ShareholderDividend\models\ShareholderDividendModel',
],
'weight_income' => [
- 'title' => '加权收益',
+ 'title' => '权证兑换',// 加权收益
'type' => 'weight_income',
- 'type_name' => '加权收益',
+ 'type_name' => '权证兑换',
'class' => 'Yunshop\ShareholderDividend\models\ShareholderDividendModel',
]
diff --git a/plugins/shareholder-dividend/src/models/ShareholderDividendModel.php b/plugins/shareholder-dividend/src/models/ShareholderDividendModel.php
index 155f9183..6fb6f6bc 100644
--- a/plugins/shareholder-dividend/src/models/ShareholderDividendModel.php
+++ b/plugins/shareholder-dividend/src/models/ShareholderDividendModel.php
@@ -54,7 +54,7 @@ class ShareholderDividendModel extends BackendModel
* Author: wu-hui
* Time: 2023/11/22 10:06
* @param int $uid 用户id
- * @param int $incomeType 收益类型:0=股权分红,1=加权收益
+ * @param int $incomeType 收益类型:0=股权分红,1=加权收益(权证兑换)
* @param string $incomeStatus all=全部收益;undrawn=未提现收益,withdrawn=已提现收益
* @return mixed
*/
diff --git a/plugins/shareholder-dividend/src/services/TimedTaskService.php b/plugins/shareholder-dividend/src/services/TimedTaskService.php
index 461f8595..827005d2 100644
--- a/plugins/shareholder-dividend/src/services/TimedTaskService.php
+++ b/plugins/shareholder-dividend/src/services/TimedTaskService.php
@@ -328,7 +328,7 @@ class TimedTaskService
foreach ($teamLevels as $teamLevel) {
// 判断:结算方式是否符合条件
$levelSettlementType = (int)$this->set['level_settlement_type']['level_' . $teamLevel['id']];// 结算方式 0=周期,1=订单支付后
- $incomeType = (int)$this->set['income_type']['level_' . $teamLevel['id']];// 收益类型 0=股东分红,1=加权收益
+ $incomeType = (int)$this->set['income_type']['level_' . $teamLevel['id']];// 收益类型 0=股东分红,1=加权收益(权证兑换)
$rate = (float)$this->set['level_rate']['level_' . $teamLevel['id']]; // 等级分红比例
if ($rate > 0 && (($settlementType == 'cycle' && $levelSettlementType == 0) || ($settlementType == 'order' && $levelSettlementType == 1))) {
$levelBonusType = (float)$this->set['level_bonus_type']['level_' . $teamLevel['id']]; // 分红方式:0=按权重值比例,1=平均分
diff --git a/plugins/shareholder-dividend/views/admin/tpl/aingle-dividend.blade.php b/plugins/shareholder-dividend/views/admin/tpl/aingle-dividend.blade.php
index 9383d542..27aa5407 100644
--- a/plugins/shareholder-dividend/views/admin/tpl/aingle-dividend.blade.php
+++ b/plugins/shareholder-dividend/views/admin/tpl/aingle-dividend.blade.php
@@ -174,7 +174,7 @@
id] != 1) checked @endif> 股东分红
diff --git a/plugins/shareholder-dividend/views/admin/withdraw-set.blade.php b/plugins/shareholder-dividend/views/admin/withdraw-set.blade.php
index c3ba1168..d8a819b0 100644
--- a/plugins/shareholder-dividend/views/admin/withdraw-set.blade.php
+++ b/plugins/shareholder-dividend/views/admin/withdraw-set.blade.php
@@ -49,10 +49,10 @@
- {{--加权收益提现设置--}}
+ {{--权证兑换提现设置--}}
diff --git a/plugins/weight-value/src/api/IndexController.php b/plugins/weight-value/src/api/IndexController.php
index 20b0ef3d..2909ac95 100644
--- a/plugins/weight-value/src/api/IndexController.php
+++ b/plugins/weight-value/src/api/IndexController.php
@@ -8,6 +8,7 @@ use app\common\models\Income;
use app\common\models\Member;
use app\common\models\member\MemberChildren;
use app\common\services\password\PasswordService;
+use app\frontend\modules\finance\controllers\IncomeWithdrawController;
use Illuminate\Support\Facades\DB;
use Yunshop\TeamDividend\models\TeamDividendAgencyModel;
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
@@ -36,8 +37,8 @@ class IndexController extends ApiController{
$user = Member::getMemberById($uid,['uid','nickname','realname','avatar']);
$data['user'] = $user ? $user->toArray() : [];
// 获取可提现金额&团队人数
- $data['income'] = (float)Income::uniacid()->where('member_id', $uid)->where('status', 0)->sum('amount');// 可提现金额(仅计算未提现)
- $data['total_income'] = (float)Income::uniacid()->where('member_id', $uid)->sum('amount');// 累计收入(包括已提现收入)
+ $data['income'] = (new IncomeWithdrawController)->computeWithdraw('broker')['all_withdraw_income'];
+ $data['total_income'] = (float)Income::getAllIncome($uid,'broker');
$data['team_total'] = MemberChildren::getTeamModel($uid)->count();
// 获取统计信息
$data['statistics'] = (new WeightValue())->getStatistics($uid,$teamLevelId);
diff --git a/plugins/weight-value/src/models/WeightValue.php b/plugins/weight-value/src/models/WeightValue.php
index 154dba3e..1b667b97 100644
--- a/plugins/weight-value/src/models/WeightValue.php
+++ b/plugins/weight-value/src/models/WeightValue.php
@@ -588,8 +588,12 @@ class WeightValue extends BaseModel{
public function getStatistics($uid,$teamLevelId){
// 获取相关统计信息
[$directPush,$recommendAgent] = $this->getCommissionGive($uid);
- // 获取权重收益(当前等级相关的股东分红)
- $weightIncome = ShareholderDividendModel::uniacid()->where('member_id',$uid)->where('team_level',$teamLevelId)->sum('amount');
+ // 获取权重收益(当前等级相关的股东分红) 收益类型:0=股权分红,1=加权收益(权证兑换)
+ $weightIncome = ShareholderDividendModel::uniacid()
+ ->where('member_id',$uid)
+ ->where('team_level',$teamLevelId)
+ ->where('income_type',0)
+ ->sum('amount');
// 团队收益
$teamIncomeInfo = $this->getTeamDividendInfo($uid,$teamLevelId);
// 权重值
@@ -607,7 +611,7 @@ class WeightValue extends BaseModel{
// 本人当前持有的 本等级的权重值
'weight_value' => ['key_name' => 'weight_value','title' => '权重值','num' => $weightValue,'sort' => 10],
// 股权收益 todo:目前仅显示,值固定为0,后期功能开发完成后才显示具体统计值(功能暂定,无开发文档、无功能明细、无基本内容)
- 'shareholding' => ['key_name' => 'order_money','title' => '股权收益','num' => 0,'sort' => 11],
+ 'shareholding' => ['key_name' => 'shareholding','title' => '股权收益','num' => 0,'sort' => 11],
// 本团队所有相关订单的实际支付金额(不包括本人)
'order_money' => ['key_name' => 'order_money','title' => '总订单金额','num' => $teamOrderInfo['total_price'],'sort' => 12],
// 本团队所有相关订单总数 (不包括本人)
@@ -700,10 +704,18 @@ class WeightValue extends BaseModel{
$subUserIds = MemberChildren::getTeamModel($uid)->pluck('yz_member_children.child_id')->toArray();
if(count($subUserIds) > 0){
$orderInfo = Order::uniacid()
- ->select(DB::raw('sum(price) as total_price,count(id) as total'))
- ->whereIn('uid',$subUserIds)
- ->where('uid','!=',$uid)
+ ->select(DB::raw('sum(ims_yz_order.price) as total_price,count(ims_yz_order.id) as total'))
+ ->leftJoin('yz_order_goods','yz_order_goods.order_id','yz_order.id')
+ ->leftJoin('yz_goods_cultural_space','yz_goods_cultural_space.goods_id','yz_order_goods.goods_id')
+ ->whereIn('yz_order.uid',$subUserIds)
+ ->where('yz_order.uid','!=',$uid)
+ ->where('yz_goods_cultural_space.is_open',0)
->first();
+ // $orderInfo = Order::uniacid()
+ // ->select(DB::raw('sum(price) as total_price,count(id) as total'))
+ // ->whereIn('uid',$subUserIds)
+ // ->where('uid','!=',$uid)
+ // ->first();
$orderStatistics = [
'total_price' => sprintf("%.2f",(float)$orderInfo->total_price),
'total' => (int)$orderInfo->total,
@@ -748,6 +760,7 @@ class WeightValue extends BaseModel{
->select(['id','amount','created_at','team_level_name'])
->where('member_id',$uid)
->where('team_level',$teamLevelId)
+ ->where('income_type',0)
->paginate(20)
->toArray();
}
@@ -780,15 +793,18 @@ class WeightValue extends BaseModel{
if(count($subUserIds) > 0){
$result = Order::uniacid()
->select([
- 'id',
- 'uid',
- 'order_sn',
- 'create_time',
- 'price',
- 'status',
+ 'yz_order.id',
+ 'yz_order.uid',
+ 'yz_order.order_sn',
+ 'yz_order.create_time',
+ 'yz_order.price',
+ 'yz_order.status',
])
- ->whereIn('uid',$subUserIds)
- ->where('uid','!=',$uid)
+ ->leftJoin('yz_order_goods','yz_order_goods.order_id','yz_order.id')
+ ->leftJoin('yz_goods_cultural_space','yz_goods_cultural_space.goods_id','yz_order_goods.goods_id')
+ ->whereIn('yz_order.uid',$subUserIds)
+ ->where('yz_order.uid','!=',$uid)
+ ->where('yz_goods_cultural_space.is_open',0)
->with([
'belongsToMember' => function($query){
$query->select(['uid','nickname','realname','avatar']);
@@ -800,6 +816,28 @@ class WeightValue extends BaseModel{
->paginate(20)
->toArray();
+ // $result = Order::uniacid()
+ // ->select([
+ // 'id',
+ // 'uid',
+ // 'order_sn',
+ // 'create_time',
+ // 'price',
+ // 'status',
+ // ])
+ // ->whereIn('uid',$subUserIds)
+ // ->where('uid','!=',$uid)
+ // ->with([
+ // 'belongsToMember' => function($query){
+ // $query->select(['uid','nickname','realname','avatar']);
+ // },
+ // 'orderGoods' => function($query){
+ // $query->select(['id','title','thumb','payment_amount','total','order_id']);
+ // }
+ // ])
+ // ->paginate(20)
+ // ->toArray();
+
$result['data'] = array_map(function($item){
return [
@@ -840,7 +878,7 @@ class WeightValue extends BaseModel{
->join('yz_commission_order', 'yz_commission_order.id', 'yz_commission_order_goods.commission_order_id')
->where('yz_commission_order.uniacid',\YunShop::app()->uniacid)
->where('yz_commission_order.member_id',$uid)
- ->where('yz_commission_order.level_type',0)
+ ->where('yz_commission_order.level_type',0)// 0=普通分销商订单,1=文创分销商订单
->where('yz_commission_order.status',2);
}
/**
@@ -852,10 +890,12 @@ class WeightValue extends BaseModel{
* @return BaseModel
*/
private function getTeamDividendModel($uid,$teamLevelId){
+ // 分红类型:0=分红佣金,1=平级奖,2=感恩奖励,3=额外分红,4=生态建设,5=生态贡献(生态建设平级奖),6=生态服务
return TeamDividendModel::uniacid()
->where('member_id',$uid)
->where('agent_level',$teamLevelId)// 已结算
->where('status',1)// 已结算
+ ->whereNotIn('type',[4,5,6])
->where('settle_money_type',1);// 结算金额类型为 - 收入提现
}