request; if ($retuest->isAjax) { if ($retuest->isGet) { $get = Yii::$app->request->get(); // 检查提交的参数 // $res = Yii::$app->services->validate->validate($get,[ // [['id','user_id','code'], 'integer'], // [['id','keyword'], 'safe'], // ]); // if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $where = $list = []; $where[] = ['=', 'status', StatusEnum::ENABLED]; $where[] = ['=', 'mall_id', $this->mall_id]; !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']]; !empty($get['code']) && $where[] = ['=', 'code', $get['code']]; // 根据搜索手机号查询用户id if (!empty($get['keyword'])) { $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'mobile', $get['keyword'] . '%', false])->asArray()->column(); if (empty($user_ids)) $this->success('获取成功', compact('list','level_list')); $where[] = ['in', 'user_id', $user_ids]; } $with = ['user']; $order = 'created_at desc'; $params = array('where' => $where, 'order'=>$order, 'with' => $with, 'limit' => $get['limit']); $list = WriteOffMember::listPage($params, false, true); if(!empty($list['list'])){ foreach($list['list'] as &$item){ $item['used_num'] = $item['total_num'] - $item['num']; } } $this->success('获取成功', compact('list')); } } else { return $this->render($this->action->id); } } /** * 核销员管理 * * @return string */ public function actionUser() { $retuest = Yii::$app->request; if ($retuest->isAjax) { if ($retuest->isGet) { $get = Yii::$app->request->get(); // 检查提交的参数 // $res = Yii::$app->services->validate->validate($get,[ // [['id','level','user_id'], 'integer'], // [['id','keyword'], 'safe'], // ]); // if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); // 获取股东等级 $level_list = WriteOffLevel::getBossLevel([['mall_id' => $this->mall_id]],[],true,'level,name'); $where = $list = []; $where[] = ['=', 'status', StatusEnum::ENABLED]; $where[] = ['=', 'mall_id', $this->mall_id]; !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']]; !empty($get['level']) && $where[] = ['=', 'level', $get['level']]; // 根据搜索手机号查询用户id if (!empty($get['keyword'])) { $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'mobile', $get['keyword'] . '%', false])->asArray()->column(); if (empty($user_ids)) $this->success('获取成功', compact('list','level_list')); $where[] = ['in', 'user_id', $user_ids]; } $with = ['user']; $order = 'created_at desc'; $params = array('where' => $where, 'order'=>$order, 'with' => $with, 'limit' => $get['limit']); $list = WriteOffUser::listPage($params, false, true); if(!empty($list['list'])){ $store_ids = array_column($list['list'],'store_id'); $store_list = Store::find()->where(['id'=>$store_ids])->indexBy('id')->asArray()->all(); foreach($list['list'] as &$item){ $item['store_name'] = ''; if(!empty($store_list[$item['store_id']])){ $item['store'] = $store_list[$item['store_id']]; } } } $this->success('获取成功', compact('list','level_list', 'upgrade_type', 'parents')); } } else { return $this->render($this->action->id); } } /** * 核销统计 * * @return string */ public function actionList() { $retuest = Yii::$app->request; if ($retuest->isAjax) { if ($retuest->isGet) { $get = Yii::$app->request->get(); // 检查提交的参数 // $res = Yii::$app->services->validate->validate($get,[ // [['user_id'], 'integer'], // [['keyword','order_no','date_end','date_start'], 'safe'], // ]); // if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $where = $list = []; $where[] = ['=', 'status', StatusEnum::ENABLED]; $where[] = ['=', 'mall_id', $this->mall_id]; !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']]; !empty($get['order_no']) && $where[] = ['=', 'order_no', $get['order_no']]; if (!empty($get['date_start']) && !empty($get['date_end'])) { $where[] = ['between', 'created_at', strtotime($get['date_start']), strtotime($get['date_end'])]; } $is_search = 0; $user_id_arr = []; if (!empty($get['keyword'])) { $is_search = 1; $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [ 'or', ['=', 'id', $get['keyword']], ['like', 'nickname', $get['keyword']], ['like', 'mobile', $get['keyword']] ]], 'select' => 'id']); $user_ids = array_column($user_list, 'id'); if (!empty($user_id_arr)) { $user_id_arr = array_intersect($user_id_arr, $user_ids); } else { $user_id_arr = $user_ids; } } if ($is_search) $where[] = ['in', 'user_id', $user_id_arr]; $order = 'created_at desc'; $params = array('where' => $where, 'order'=>$order, 'limit' => $get['limit']); $list = WriteOffMemberLog::listPage($params, false, true); $this->success('获取成功', $list); } } else { return $this->render($this->action->id); } } /** * 核销统计 * * @return string */ public function actionLog() { date_default_timezone_set('PRC'); CapitalLog::$capitalType = 'commission'; $retuest = Yii::$app->request; if ($retuest->isAjax) { if (\Yii::$app->request->isPost) { $filename = '核销统计-' . date('YmdHis').'_'.rand(10000,99999); $data = \Yii::$app->request->post(); $data['table'] = 'commission'; $data['mall_id'] = $this->mall_id; $res = CsvExportHelper::exportDownLoadCenter($this->mall_id,$filename,DownloadEnum::TYPE_ASSETS,CapitalExportLogic::class,'exportAssets',$data); if ($res === false) return $this->error('加入导出任务失败'.CsvExportHelper::getStaticError()); return $this->success('添加导出任务成功,任务完成后请在下载中心进行下载!'); } if ($retuest->isGet) { $page = \Yii::$app->request->get('page') ?? 1; $limit = \Yii::$app->request->get('page_size') ?? $this->pageSize; $get = Yii::$app->request->get(); // 检查提交的参数 // $res = Yii::$app->services->validate->validate($get,[ // [['capital_type','user_keyward','w_user_keyward','order_no','start','end'], 'safe'], // ]); // if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $where = $list = []; //$where[] = ['=', 'status', StatusEnum::ENABLED]; $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'from_type',WriteOffEnum::ADDONS_NAME]; // 根据搜索手机号查询用户id if (!empty($get['user_keyward'])) { $user_ids = User::find()->select("id") ->where(['mall_id' => $this->mall_id]) ->andWhere([ 'or', ['=', 'id', $get['user_keyward']], ['like', 'mobile', $get['user_keyward'] . '%', false], ['like', 'nickname', $get['user_keyward'] . '%', false] ]) ->asArray() ->column(); $where[] = ['in', 'user_id', $user_ids]; } // 根据搜索手机号查询用户id if (!empty($get['w_user_keyward'])) { $user_ids = User::find()->select("id") ->where(['mall_id' => $this->mall_id]) ->andWhere([ 'or', ['=', 'id', $get['w_user_keyward']], ['like', 'mobile', $get['w_user_keyward'] . '%', false], ['like', 'nickname', $get['w_user_keyward'] . '%', false] ]) ->asArray() ->column(); $where[] = ['in', 'contributor_id', $user_ids]; } if (!empty($get['order_no'])) { $where[] = ['=', 'order_no', $get['order_no']]; } if (!empty($get['capital_type'])) { $where[] = ['=', 'capital_type', $get['capital_type']]; } if (!empty($get['start'])) { $where[] = ['>=', 'created_at', strtotime($get['start'])]; } if (!empty($get['end'])) { $where[] = ['<', 'created_at', strtotime($get['end'])]; } $params = [ 'where' =>$where, 'order' => 'id desc', 'page' => $page, 'limit' => $limit, ]; $list = CapitalLog::listPage($params, false, true); if(!empty($list['list'])){ $user_id_arr = array_column($list['list'],'user_id'); $user_arr = User::lists([ 'where'=>[ ['id'=>$user_id_arr] ], 'index'=>'id', ]); foreach($list['list'] as &$commission){ if(isset($user_arr[$commission['user_id']])){ $commission['user'] = $user_arr[$commission['user_id']]; } $commission['w_user'] = []; $commission['store_name'] = ''; $writeOffUser = WriteOffUser::findOne(['user_id'=>$commission['user_id'],'status'=>StatusEnum::ENABLED]); if(!empty($writeOffUser)){ $commission['store_name'] = Store::find()->where(['id'=>$writeOffUser['store_id']])->select('store_name')->scalar() ?? ''; } //核销 // if($commission['capital_type'] == WriteOffEnum:: WRITE_OFF_PRIZE){ // $writeOffMemberLog = WriteOffMemberLog::findOne($commission['source_table_id']); // if($writeOffMemberLog){ // $commission['w_user'] = User::find()->where(['id'=>$writeOffMemberLog['user_id']])->asArray()->one(); // } // } if(!empty($commission['contributor_id'])){ $commission['w_user'] = User::find()->where(['id'=>$commission['contributor_id']])->asArray()->one(); } $commission['capital_type'] = WriteOffEnum::getTypeMap($commission['capital_type']); } } $list['capital_type_list'] = WriteOffEnum::getTypeMap(); $list['export_list'] = CapitalExportLogic::exportFieldsList(); $this->success('获取成功', $list); } } else { return $this->render($this->action->id); } } /** * 基础设置 * * @return string */ public function actionSetting() { $retuest = Yii::$app->request; if ($retuest->isAjax) { if ($retuest->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params,[ [['is_enable','is_enable_promote_reward','compute_period','is_enable_store_manage_reward'], 'integer'], [['manage_reward_rate'],'number'], [['background_url'], 'string'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); // 保存配置 $config = Yii::$app->services->setting->addons->set($this->mall_id, WriteOffEnum::ADDONS_NAME, ['basic' => $params]); $this->success('保存成功', $config); } else { // 获取配置 $config = Yii::$app->services->setting->addons->get($this->mall_id, WriteOffEnum::ADDONS_NAME, 'basic'); $this->success('获取成功', $config); } } return $this->render($this->action->id); } /** * 根据用户名搜索用户 * @Author: lun * @DateTime: 2021/10/21 0021 18:36 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void */ public function actionSelectUser() { $retuest = Yii::$app->request; if ($retuest->isAjax && $retuest->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params,[[['keyword'], 'string'], [['keyword'], 'required']]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); // 搜索用户列表 $list = User::getUserList([['mall_id' => $this->mall_id],['like','mobile',$params['keyword']]], 'id,mobile', [], 1); $this->success('获取成功', $list); } } public function actionAddWriteOff() { $retuest = Yii::$app->request; if ($retuest->isAjax) { if ($retuest->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params,[[['mobile','level','store_id'], 'integer'], [['mobile','level','store_id'], 'required']]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); if(empty($params['store_id'])) return $this->error('门店不能为空'); // 根据手机号码获取用户id $user = User::getOne([['mall_id' => $this->mall_id], ['mobile' => $params['mobile']]],true,[],false,'id'); if (empty($user)) return $this->error('暂无此用户'); $params['mall_id'] = $this->mall_id; $params['user_id'] = $user['id']; // 保存数据 $res = WriteOffUser::setData($params); if (!$res) return $this->error(WriteOffUser::getStaticError()); $this->success('添加成功'); } } } public function actionEdit() { $retuest = Yii::$app->request; if ($retuest->isAjax) { if ($retuest->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params,[ [['user_id'], 'required'], [['user_id','status','level','store_id'], 'integer'] ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params = WriteOffUser::exceptNullVal($params); $params['mall_id'] = $this->mall_id; // 保存数据 $res = WriteOffUser::setData($params); if (!$res) return $this->error(AddonsBoss::getStaticError()); $this->success('修改成功'); } } } public function actionGoodsSetting() { $request = \Yii::$app->request; if ($request->isAjax && $request->isPost) { $post = \Yii::$app->request->post(); $res = \Yii::$app->services->validate->validate($post, [ [['goods_id'], 'required'], ]); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'goods_id', $post['goods_id']]; $where[] = ['=', 'status', StatusEnum::ENABLED]; $select = "goods_id,is_enable,give_num,settlement_method,is_enable_promote_reward,promote_reward_prize,is_enable_promote_reward_type,is_enable_promote_reward_prize"; $one = WriteOffSetting::getOne($where, true, [], false, $select); $data = [ 'one' => $one ]; return $this->success('操作成功', $data); } } /** * @desc:修改状态 * @Author: hua * @Date: 2021/10/23 * @Time: 16:31 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void * @throws Exception */ public function actionSwitchStatus() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isPost) { $params = \Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id'], 'required'], [['is_enable_manage_reward'], 'integer'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $res = WriteOffUser::setData($params); if ($res === false) return $this->error(WriteOffUser::getStaticError()); return $this->success('操作成功'); } } return $this->error(); } }