[ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], ], 'login' => [ 'class' => LoginBehavior::className(), 'ignore' => [ 'api/store/page', 'api/store/index', 'api/store/store-one', 'api/store/store-home', 'api/store/coach', 'api/store/city', 'api/store/test-avg', 'api/store/shopowner', 'api/store/store-service', 'api/store/box', 'api/store/box-list', 'api/store/shopowner-make', 'api/store/shopowner-make-list', 'api/store/check-out', ] ] ]); } /** * showdoc * @catalog 门店 * @title 门店列表 * @description 门店列表 * @method get * @url /api/store/index * @param page 非必选 int 页码,不传默认为1 * @param limit 非必选 int 每页显示条数,不传默认10条 * @param city_id 非必选 string 城市id * @param name 非必选 string 搜索内容 * @param lat 非必选 string 纬度 * @param lng 非必选 string 经度 * @return {"code":0,"msg":"ok","data":{}} * @remark */ public function actionIndex() { $request = Yii::$app->request; $get = $request->get(); $storeForm = new StoreForm(); $storeForm->page = $get['page']; $storeForm->limit = $get['limit']; $cityId = $get['city_id']; $name = $get['name']; $lat = $get['lat']; $lng = $get['lng']; $data = $storeForm->search($cityId, $name, $lat, $lng); return $this->responseHandler($data); } //门店信息 public function actionStoreOne() { $request = Yii::$app->request; $get = $request->get(); $storeForm = new StoreForm(); $storeForm->store_id = $get['store_id']; $data = $storeForm->searchOne(); return $this->responseHandler($data); } /** * showdoc * @catalog 门店 * @title 切换门店 * @description 切换门店 * @method post * @url /api/store/store-binding * @param store_id 必选 int 页码,不传默认为1 * @return {"code":0,"msg":"ok","data":{}} * @remark */ public function actionStoreBinding() { $form = new StoreForm(); $form->scenario = 'city'; $post = \Yii::$app->request->post('store_id'); $form->cx_mch_id = $this->cx_mch_id; $form->user_id = \Yii::$app->user->identity->id ?? 0; $form->store_id = $post; $data = $form->storeBinding(); return $this->responseHandler($data); } /** * showdoc * @catalog 门店 * @title 首页附近门店 * @description 首页附近门店 * @method get * @url /api/store/store-home * @param lat 必选 int 纬度 * @param lng 必选 int 经度 * @return {"code":0,"msg":"ok","data":{}} * @remark */ public function actionStoreHome() { $request = Yii::$app->request; $get = $request->get(); $storeForm = new StoreForm(); $storeForm->cx_mch_id = $this->cx_mch_id; $storeForm->user_id = \Yii::$app->user->identity->id ?? 0; $lat = $get['lat']; $lng = $get['lng']; $store_id = $get['store_id'] ?? 0; $data = $storeForm->storeHome($lat, $lng, $store_id); return $this->responseHandler($data); } public function avg($data) { $res = []; foreach ($data as $key => $val) { foreach ($val as $k => $v) { if (empty($k)) { $res[$k] = []; } $res[$k][] = floatval($v); } } $count = count($data); foreach ($res as $key => $val) { $res[$key] = strval(round(array_sum($val) / $count, 2)); } return $res; } // 测试结果 public function actionTestAvg() { $select = DeviceUniqueData::find()->limit(100)->select('*')->asArray()->all(); $arr = []; foreach ($select as $key => $val) { $arr[] = json_decode($val['data'], true); } $start_time = microtime(1); $res = $this->avg($arr); $end_time = microtime(1); $console = [ '执行时长' => $end_time - $start_time, '数量' => count($arr), '结果' => $res, ]; var_dump($console); exit(); } public function actionConfigTest() { $select = DeviceUniqueData::find()->where(['id' => 1])->select('data')->asArray()->one(); $data = json_decode($select['data'], true); foreach ($data as $key => $value) { $arr[$key] = 1; } $model = new DeviceUniqueConfig(); $model->user_id = 0; $model->config = json_encode($arr); $model->created_at = time(); $model->save(); } /** * showdoc * @catalog 门店 * @title 城市索引列表 * @description 本接口提供门店城市索引列表 * @method get * @url /api/store/city * @return {"code":0,"msg":"ok","data":{"X":[{"id":"146","parent_id":"13","name":"厦门市","level":"city"}]}} * @remark */ public function actionCity() { $form = new StoreCityForm(); $data = $form->search(); return $this->responseHandler($data); } /** * 门店服务 */ public function actionStoreService() { $form = new StoreForm(); $data = $form->storeGoodsList(); return $this->responseHandler($data); } /** * 案例列表 */ public function actionBox() { $request = Yii::$app->request; $get = $request->get(); $form = new BoxForm(); $form->page = $get['page'] ?? 1; $form->limit = $get['limit'] ?? 99; $form->keywords = $get['keywords'] ?? 99; $data = $form->search(); return $this->responseHandler($data); } /** * 案例列表 */ public function actionBoxList() { $request = Yii::$app->request; $get = $request->get(); $form = new BoxForm(); $form->page = $get['page'] ?? 1; $form->limit = $get['limit'] ?? 99; $data = $form->lists(); return $this->responseHandler($data); } /** * showdoc * @catalog 门店申请 * @title 门店申请 * @description 本接口提供小门店申请 * @method get * @url /api/store/shopowner * @param username 必选 string 订单ID * @param store_id 必选 string 设备码 * @return {"code":0,"msg":"提交申请成功","data":[]} * @remark */ public function actionShopowner() { $request = Yii::$app->request; $post = $request->post(); $form = new StoreUserForm(); $form->store_id = $post['store_id']; $form->username = $post['username']; $form->user_id = \Yii::$app->user->identity->id; // $form->user_id = 2; $data = $form->apply(); return $this->responseHandler($data); } /** * showdoc * @catalog 店长预约 * @title 店长预约 * @description 本接口提供店长预约 * @method get * @url /api/store/shopowner-make * @param username 必选 string 订单ID * @param store_id 必选 string 设备码 * @return {"code":0,"msg":"提交申请成功","data":[]} * @remark */ public function actionShopownerMake() { $request = Yii::$app->request; $post = $request->get(); $form = new StoreUserForm(); $form->store_id = $post['store_id']; $form->date = $post['date']; $form->data = $post['data']; $form->user_id = \Yii::$app->user->identity->id; // $form->user_id = 2; $data = $form->shopowner_make(); return $this->responseHandler($data); } /** * showdoc * @catalog 店长预约 * @title 店长预约-已预约信息 * @description 本接口提供已预约信息 * @method get * @url /api/store/shopowner-make-list * @param username 必选 string 订单ID * @param store_id 必选 string 设备码 * @return {"code":0,"msg":"提交申请成功","data":[]} * @remark */ public function actionShopownerMakeList() { $request = Yii::$app->request; $post = $request->get(); $form = new StoreUserForm(); $form->store_id = $post['store_id']; $form->user_id = \Yii::$app->user->identity->id; $data = $form->actionShopownerMakeList(); return $this->responseHandler($data); } /** * showdoc * @catalog 离店 * @title 离店 * @description 本接口提供离店 * @method get * @url /api/store/check-out * @param store_id 必选 string 门店ID * @return array * @throws \Exception */ public function actionCheckOut() { $request = Yii::$app->request; $post = $request->get(); $form = new StoreUserForm(); $form->store_id = $post['store_id']; $form->user_id = \Yii::$app->user->identity->id; $data = $form->checkOut(); return $this->responseHandler($data); } /** * showdoc * @catalog 店长公告 * @title 店长公告 * @description 本接口提供店长公告 * @method get * @url /api/store/page * @param store_id 必选 string 门店ID * @return array * @throws \Exception */ public function actionPage() { $request = Yii::$app->request; $post = $request->get(); $form = new StoreUserForm(); $form->store_id = $post['store_id']; $form->user_id = \Yii::$app->user->identity->id; $data = $form->page(); return $this->responseHandler($data); } }