bztang-admin/plugins/weight-value/src/api/IndexController.php

97 lines
3.8 KiB
PHP

<?php
namespace Yunshop\WeightValue\Api;
use app\common\components\ApiController;
use app\common\models\Income;
use app\common\models\Member;
use app\common\models\member\MemberChildren;
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
use Yunshop\WeightValue\models\WeightValue;
use Yunshop\WeightValue\models\WeightValueLog;
class IndexController extends ApiController{
/**
* Common: 权重值中心 - 信息获取
* Author: wu-hui
* Time: 2023/10/19 10:50
* @return \Illuminate\Http\JsonResponse
*/
public function getCenterData(){
$data = [];
$uid = \YunShop::app()->getMemberId();
$teamLevelId = request()->input('team_level_id');// 经销商等级id
// 获取等级信息
$data['level_name'] = TeamDividendLevelModel::uniacid()->where('id',$teamLevelId)->value('level_name');
// 获取当前用户信息
$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['team_total'] = MemberChildren::getTeamModel($uid)->count();
// 获取统计信息
$data['statistics'] = (new WeightValue())->getStatistics($uid,$teamLevelId);
return $this->successJson('success',$data);
}
/**
* Common: 权重值中心 - 统计信息明细
* Author: wu-hui
* Time: 2023/10/19 17:35
* @return \Illuminate\Http\JsonResponse
*/
public function getDetails(){
// 参数获取
$keyName = request()->input('key_name');
$uid = \YunShop::app()->getMemberId();
$weightValueModel = new WeightValue();
$teamLevelId = (int)request()->input('team_level_id');// 经销商等级id
// 根据类型获取对应的列表
switch($keyName){
//直推奖励
case 'direct_push_give':
$result = $weightValueModel->commissionDetail($uid,0);
break;
//权重收益
case 'weight_income':
$result = $weightValueModel->shareholderDividendDetail($uid,$teamLevelId);
break;
//团队收益
case 'team_income':
$result = $weightValueModel->teamDividendDetail($uid,$teamLevelId,0);
break;
//推荐代理
case 'recommend_agent':
$result = $weightValueModel->commissionDetail($uid,1);
break;
//平级奖励
case 'peer_level_reward':
$result = $weightValueModel->teamDividendDetail($uid,$teamLevelId,1);
break;
//权重值
case 'weight_value':
$search = [
'member_id' => $uid,
'team_dividend_agency_level_id' => $teamLevelId
];
$field = ['id','team_dividend_agency_level_id','change_type','change_quantity','created_at','remark'];
$result = (new WeightValueLog)->getList(20,$search,$field);
break;
//总订单金额&总订单数
case 'order_money':
case 'order_num':
$result = $weightValueModel->orderDetail($uid);
break;
}
return $this->successJson('success',[
'current_page' => (int)$result['current_page'],
'data' => (array)$result['data'],
'last_page' => (int)$result['last_page'],
]);
}
}