render(); } /** * @return string * @throws \Throwable */ public function show() { // $groups = MemberGroup::getMemberGroupList(); // $levels = MemberLevel::getMemberLevelList(); $uid = \YunShop::request()->id ? intval(\YunShop::request()->id) : 0; if ($uid == 0 || !is_int($uid)) { $this->error('参数错误'); } $member = Member::select(['uid', 'mobile', 'realname', 'avatar'])->uniacid()->where('uid', $uid)->first(); $incomeModel = Income::getIncomes()->where('member_id', $uid)->get(); $config = \app\backend\modules\income\Income::current()->getItems(); unset($config['balance']); $incomeAll = [ 'income' => sprintf("%.2f",$incomeModel->sum('amount')), 'withdraw' => sprintf("%.2f", $incomeModel->where('status', 1)->sum('amount')), 'no_withdraw' => sprintf("%.2f", $incomeModel->where('status', 0)->sum('amount')) ]; foreach ($config as $key => $item) { $typeModel = $incomeModel->where('incometable_type', $item['class']); $incomeData[$key] = [ 'type_name' => $item['title'], 'income' => sprintf("%.2f", $typeModel->sum('amount')), 'withdraw' => sprintf("%.2f", $typeModel->where('status', 1)->sum('amount')), 'no_withdraw' => sprintf("%.2f", $typeModel->where('status', 0)->sum('amount')) ]; if ($item['agent_class']) { $agentModel = $item['agent_class']::{$item['agent_name']}(\YunShop::app()->getMemberId()); if ($item['agent_status']) { $agentModel = $agentModel->where('status', 1); } //推广中心显示 if (!$agentModel) { $incomeData[$key]['can'] = false; } else { $agent = $agentModel->first(); if ($agent) { $incomeData[$key]['can'] = true; } else { $incomeData[$key]['can'] = false; } } } else { $incomeData[$key]['can'] = true; } } return $this->successJson('ok', [ 'member' => $member, 'incomeAll' => $incomeAll, 'item' => $incomeData ]); } /** * Common: 佣金冻结设置 * Author: wu-hui * Time: 2023/12/20 15:36 * @return array|\Illuminate\Http\JsonResponse|string * @throws \Throwable */ public function incomeFreezeSet(){ // 获取设置信息 判断是否为设置 $memberId = request()->input('member_id'); $setInfo = request()->input('set_income_list'); if ($setInfo) { // 设置信息 if (IncomeFreezeSet::setInfo($memberId,$setInfo)) return $this->successJson('编辑成功'); else return $this->errorJson('设置失败'); }else{ // 获取信息 $userSetInfo = IncomeFreezeSet::getInfo($memberId); $teamDividendLevel = TeamDividendLevelModel::uniacid()->select(['id','level_name'])->get()->toArray(); $incomeList = \app\backend\modules\income\Income::current()->getItems(); $setIncomeList = []; # 每种提现类型的设置全部放在set_info中;字段内容及类型自定义,但是需要在前端进行独立处理 foreach($incomeList as $incomeInfo){ // 单独处理内容 switch($incomeInfo['type']){ // 权重收益 case 'shaerholderDividend': $currentUserSetInfo = $userSetInfo['shaerholderDividend']['set_info']; $levelList = $currentUserSetInfo['level_list']; $levelList = array_map(function($lvInfo) use ($levelList){ return [ 'level_id' => $lvInfo['id'], 'level_name' => $lvInfo['level_name'], 'freeze_money' => $levelList[$lvInfo['id']] ? $levelList[$lvInfo['id']]['freeze_money'] : 0,// 冻结金额 ]; },$teamDividendLevel); $incomeInfo['set_info'] = [ 'total' => $currentUserSetInfo['total'] ?? 0, 'freeze_type' => $currentUserSetInfo['freeze_type'] ?? 0,// 冻结设置:0=统一设置,1=每个等级独立设置 'level_list' => array_column($levelList,NULL,'level_id'), ]; break; } // 是否支持设置冻结金额 if(!empty($incomeInfo['set_info'])){ $setIncomeList[] = [ 'title' => $incomeInfo['title'], 'type' => $incomeInfo['type'], 'set_info' => $incomeInfo['set_info'], ]; } } return view('member.income.set', [ 'set_income_list' => $setIncomeList, 'member_id' => $memberId ])->render(); } } }