request->isAjax) { return $this->render($this->action->id, []); } if (\Yii::$app->request->isGet) { $get = \Yii::$app->request->get(); $basic = \Yii::$app->services->setting->addons->get($this->mall_id, HappinessEnum::ADDONS_NAME, 'basic'); $business_list = !empty($basic['business_list'])? json_decode($basic['business_list'],true):[];//身份收益设置 $agent_list = !empty($basic['agent_list'])? json_decode($basic['agent_list'],true):[];//身份收益设置 $business_list=array_column($business_list,null,'level'); $agent_list=array_column($agent_list,null,'level'); $where = [ ['status' => StatusEnum::ENABLED], ['mall_id' => $this->mall_id], ]; if (!empty($get['user_id'])) { $where[] = ['user_id' => $get['user_id']]; } if (isset($get['user']) && $get['user']) { $user_ids = User::find()->where(['or', ['like', 'nickname', $get['user']], ['mobile' => $get['user']]])->limit(50)->select('id')->column(); $where[] = ['user_id' => $user_ids]; } if (isset($get['is_store_admin']) && $get['is_store_admin']) { $selStoreUserIds = HappinessStore::find()->where(['mall_id' => $this->mall_id])->select('user_id')->column(); if ($get['is_store_admin'] == 1) { $where[] = ['in', 'user_id', $selStoreUserIds]; } elseif ($get['is_store_admin'] == 2) { $where[] = ['not in', 'user_id', $selStoreUserIds]; } } $filter = [ 'where' => $where, ]; $filter['order'] = 'created_at desc'; $filter['group'] = 'user_id'; $filter['with'] = ['user']; $filter['select'] = ['id', 'user_id', 'sum(store_money) as store_money', 'sum(share_money) as share_money', 'sum(promotion_money) as promotion_money', 'sum(agent_money) as agent_money', 'sum(fans_money) as fans_money', 'sum(pension_money) as pension_money', 'sum(pv_money) as pv_money']; $data = HappinessExpensesLog::listPage($filter); if ($data === false) return $this->error(HappinessExpensesLog::getStaticError()); // 查询店主uid $userIds = array_column($data['list'], 'user_id'); $storeUserIds = HappinessStore::find()->where(['mall_id' => $this->mall_id, 'user_id' => $userIds])->select('user_id')->column(); $compact_params = array_keys($data); extract($data); $agentList = HappinessAgent::find()->where(['mall_id' => $this->mall_id, 'user_id' => $userIds]) ->select('user_id,role,level')->asArray()->all(); $businessList = HappinessBusiness::find()->where(['mall_id' => $this->mall_id, 'user_id' => $userIds]) ->select('user_id,level')->asArray()->all(); foreach ($list as &$item) { $item['is_store_admin'] = 0; //是否小店店主 if (in_array($item['user_id'], $storeUserIds)) { $item['is_store_admin'] = 1; } $role_name = []; if (!empty($businessList)) { foreach ($businessList as $business) { if ($business['user_id'] == $item['user_id']) { $role_name[] = $business_list[$business['level']]['name']; } } } if (!empty($agentList)) { foreach ($agentList as $agent) { if ( $agent['user_id'] == $item['user_id']) { $role_name[] = $agent_list[$agent['level']]['name']; } } } //去掉重复项 $role_name = array_unique($role_name); $item['identity_info'] = isset($role_name) ? implode(',', $role_name) : '会员'; } //身份等级 $total_money = HappinessExpensesLog::find()->where(['status' => StatusEnum::ENABLED, 'mall_id' => $this->mall_id])->select(['sum(store_money) as store_money', 'sum(share_money) as share_money', 'sum(promotion_money) as promotion_money', 'sum(agent_money) as agent_money', 'sum(fans_money) as fans_money', 'sum(pension_money) as pension_money', 'sum(pv_money) as pv_money'])->asArray()->one(); return $this->success('获取成功', compact($compact_params, 'total_money')); } } public function actionDetail() { if (!\Yii::$app->request->isAjax) { return $this->render($this->action->id, []); } if (\Yii::$app->request->isGet) { $get = \Yii::$app->request->get(); $where = [ ['status' => StatusEnum::ENABLED], ['mall_id' => $this->mall_id], ['user_id' => $get['user_id']], ]; $filter = [ 'where' => $where, ]; $filter['order'] = 'created_at desc'; $filter['with'] = [ 'store' => function ($query) { $query->select('id,store_name,logo_img'); } ]; $data = HappinessExpensesLog::listPage($filter); if ($data === false) return $this->error(HappinessExpensesLog::getStaticError()); return $this->success('获取成功', $data); } } }