request->isGet) { $get = Yii::$app->request->get(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($get, [ [['page', 'limit'], 'integer'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $data['user_id'] = $this->user_id; $data['nickname'] = $this->user->nickname ?? ''; $data['avatar_url'] = $this->user->avatar_url ?? ''; // 获取股东信息 $boss = AddonsBoss::getOne([['mall_id' => $this->mall_id, 'user_id' => $this->user_id, 'status' => StatusEnum::ENABLED]]); // 数据初始化 $amounts = 0; $commission = 0; // 获取收益列表 $where = []; $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'user_id', $this->user_id]; $where[] = ['=', 'status', StatusEnum::ENABLED]; $order = 'created_at desc,end_time desc'; $select = 'amounts,commission,type,compute_period,revenue,start_time,end_time,from_type'; $params = array('where' => $where, 'order' => $order, 'select' => $select, 'limit' => $get['limit']); $digital_name = \Yii::$app->services->setting->mall->get($this->mall_id, 'digital.name') ?? '数字币'; $list = AddonsBossCommissionLog::listPage($params, false, true); $is_has = []; if(!empty($list['list'])){ $start_time = $list['list'][0]['start_time']; $end_time = $list['list'][0]['end_time']; } $amounts = 0; $logInfo = AddonsBossCommissionLog::find()->where(['user_id' => $this->user_id, 'status'=>[StatusEnum::ENABLED], 'mall_id' => $this->mall_id, 'type' => 1])->orderBy("end_time desc, id desc")->one(); if(!empty($logInfo)){ $amounts = $logInfo->amounts; } foreach ($list['list'] as $key => &$item) { if($item['start_time']==$start_time && $item['end_time']==$end_time){ $commission += $item['commission']; } $item['start_time'] = date_format(date_create($item['start_time']), "Y-m-d"); $item['end_time'] = date_format(date_create($item['end_time']), "Y-m-d"); $item['money_msg'] = '元'; if(in_array($item['type'],[LevelEnum::DIGITAL_PRIZE,LevelEnum::EXTRA_DIGITAL_PRIZE])){ $item['money_msg'] = $digital_name; } } $data['is_boss'] = $boss ? 1 : 0; // 是否是股东,0=否,1=是 $data['amounts'] = sprintf("%.2f", substr(sprintf("%.3f", $amounts), 0, -1)); // 分红池 $data['commission'] = sprintf("%.2f", substr(sprintf("%.3f", $commission), 0, -1)); // 本期收益 $data['performance'] = sprintf("%.2f", substr(sprintf("%.3f", $boss->performance), 0, -1)); // 团队业绩 $data['performance_commission'] = sprintf("%.2f", substr(sprintf("%.3f", $boss->performance_commission), 0, -1)); // 业绩分红 $data['able_withdrawal_commission'] = $boss->commission; // 可提现收益 $data['unsettled_commission'] = AddonsBossRewardLog::getUnsettledCommission($this->user_id, $this->mall_id); // 未结算收益 if (MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_NAME_ZAO_DOUBLE_COPY)) { //二二复制:直推团队总业绩 $copy_user = ZaoDoubleCopyUser::find()->select('user_id,achievement')->where(['user_id' => $this->user_id, 'status' => StatusEnum::ENABLED,'mall_id' => $this->mall_id])->asArray()->one(); $data['zao_double_copy_achievement'] = $copy_user ? $copy_user['achievement'] : 0; } $data['list'] = $list; $this->success('获取成功', $data); } } public function actionRights() { if (Yii::$app->request->isGet) { // 获取股东信息 $boss = AddonsBoss::getOne([['mall_id' => $this->mall_id, 'user_id' => $this->user_id, 'status' => StatusEnum::ENABLED]]); // 获取股东等级 $list = AddonsBossLevel::getBossLevel([['mall_id' => $this->mall_id]], [], true, 'level,name,explain', 'level asc'); foreach ($list as $level) { if ($boss->level == $level['level']) { $level_name = $level['name']; break; } } $data['user_id'] = $this->user_id; $data['nickname'] = $this->user->nickname ?? ''; $data['avatar_url'] = $this->user->avatar_url ?? ''; $data['level_name'] = $level_name ?? ''; $data['list'] = $list; $this->success('获取成功', $data); } } /** * 获取营业额(最近7天记录) * @return void */ public function actionRevenueLog() { $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'is_settlement', StatusEnum::ENABLED]; $order = 'created_at desc'; $list = AddonsBossRevenueLog::lists(['limit' => 7, 'where' => $where, 'order' => $order]); $this->success('获取成功', $list); } /** * @Description: 奖金池结算记录 * @Author: zsan * @DateTime 2023-10-13 11:05:25 * @return mixed */ public function actionPoolPrizeLog() { if (Yii::$app->request->isGet) { $get = Yii::$app->request->get(); $res = Yii::$app->services->validate->validate($get, [ [['page', 'limit'], 'integer'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $boss_id = AddonsBoss::find()->where(['user_id' => $this->user_id, 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]) ->select('id')->scalar() ?? 0; if(empty($boss_id)) return $this->success('数据请求成功', ['list' => [], 'count' => 0, 'page_count' => 0, 'row_count' => 0]); $params = [ 'where' => [ ['mall_id' => $this->mall_id], ['boss_id' => $boss_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]] ], 'select' => 'id, user_id, billing_cycle, num, total_amount, amount, personal_performance, total_performance, start_at, end_at, created_at', 'with' => [ 'user' => function ($query) { return $query->select('id, nickname, avatar_url'); } ], 'page' => $get['page'] ?? 1, 'order' => 'created_at desc', 'limit' => $get['limit'] ?? 10, ]; $list = BossPoolPrizeCommissionLog::listPage($params, false, true); if($list === false) return $this->error(BossPoolPrizeCommissionLog::getStaticError()); foreach($list['list'] as &$v){ $v['created_at'] = date('Y-m-d H:i:s', $v['created_at']); $v['start_at'] = date('Y-m-d', strtotime($v['start_at'])); $v['end_at'] = date('Y-m-d', strtotime($v['end_at'])); $v['billing_cycle'] = $v['billing_cycle'] == 1 ? '天': ($v['billing_cycle'] == 2 ? '周' : '月'); } unset($v); return $this->success('数据请求成功',$list); } } }