| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <?php
- namespace addons\Happiness\backend\controllers;
- use addons\Happiness\common\enums\HappinessEnum;
- use addons\Happiness\common\models\HappinessAgent;
- use addons\Happiness\common\models\HappinessBusiness;
- use addons\Happiness\common\models\HappinessExpensesLog;
- use addons\Happiness\common\models\HappinessStore;
- use common\enums\StatusEnum;
- use common\models\user\User;
- use Yii;
- class StoreExpensesController extends BaseController
- {
- public function actionIndex()
- {
- if (!\Yii::$app->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);
- }
- }
- }
|