Jelajahi Sumber

Wesmiler 人人车 初始化项目 0816

APPLE 3 tahun lalu
induk
melakukan
f809cff0ae

+ 7 - 7
application/admin/controller/store/Stores.php

@@ -47,20 +47,20 @@ class Stores extends AdminController
         // 数据校验
         $valid = $this->validate($params, [
             'name|门店名称' => 'require',
-            'logo|门头LOGO图片' => 'require',
+            'cover_img|门头LOGO图片' => 'require',
             'type|门店类型' => 'require',
-            'content|介绍内容' => 'require',
+            'intro|介绍内容' => 'require',
             'location|位置' => 'require',
             'time_slot|服务时段' => 'require'
         ]);
-        var_dump($params);
+
         // 错误返回
         (true !== $valid) && IResponse::failure($valid);
         // 保存数据
         $coordinate = isset($params['coordinate'])? trim($params['coordinate']) : '';
         $coordinate = $coordinate? explode(',', $coordinate) : [];
         $params['latitude'] = isset($coordinate[0])? $coordinate[0] : '';
-        $params['ongitude'] = isset($coordinate[1])? $coordinate[1] : '';
+        $params['longitude'] = isset($coordinate[1])? $coordinate[1] : '';
         unset($params['coordinate']);
         $model = model("common/Stores")->storeBy($params);
 
@@ -93,9 +93,9 @@ class Stores extends AdminController
             // 数据校验
             $valid = $this->validate($params, [
                 'name|门店名称' => 'require',
-                'logo|门头LOGO图片' => 'require',
+                'cover_img|门头LOGO图片' => 'require',
                 'type|门店类型' => 'require',
-                'content|介绍内容' => 'require',
+                'intro|介绍内容' => 'require',
                 'location|位置' => 'require',
                 'time_slot|服务时段' => 'require'
             ]);
@@ -107,7 +107,7 @@ class Stores extends AdminController
         $coordinate = isset($params['coordinate'])? trim($params['coordinate']) : '';
         $coordinate = $coordinate? explode(',', $coordinate) : [];
         $params['latitude'] = isset($coordinate[0])? $coordinate[0] : '';
-        $params['ongitude'] = isset($coordinate[1])? $coordinate[1] : '';
+        $params['longitude'] = isset($coordinate[1])? $coordinate[1] : '';
         $model->updateBy($id, $params);
 
         return IResponse::success('更新门店信息成功');

+ 87 - 0
application/api/controller/v1/Stores.php

@@ -0,0 +1,87 @@
+<?php
+
+
+namespace app\api\controller\v1;
+
+
+use app\api\controller\ApiController;
+use app\common\validate\IDMustBePositiveInt;
+
+class Stores extends ApiController
+{
+
+
+    /**
+     * 获取附近的商家
+     *
+     * @url /store/nearby?lng=118.302416&lat=33.958887&page=1&limit=10
+     *
+     * @return bool|\think\response\Json
+     * @throws \think\db\exception\BindParamException
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function getNearbyCol()
+    {
+        // 1. 传入用户位置
+        $param = $this->request->param();
+        // 数据校验
+        $valid = $this->validate($param, [
+            'lng' => ['require','regex|-?((0|1?[0-7]?[0-9]?)(([.][0-9]{1,4})?)|180(([.][0]{1,4})?))'],
+            'lat' => ['require','regex|-?((0|1?[0-7]?[0-9]?)(([.][0-9]{1,4})?)|180(([.][0]{1,4})?))'],
+            'page' => 'require',
+        ],[
+            'lng.require' => '缺少经度参数',
+            'lng.regex' => '经度参数有误',
+            'lat.require' => '缺少维度参数',
+            'lat.regex' => '维度参数有误'
+        ]);
+        // 错误
+        if (true !== $valid){
+            return $this->ApiJson(-1,$valid);
+        }
+
+        $limit = 10;
+
+        // 经纬度升序
+        $lists = model('Stores')
+            ->fieldRaw("* , TRUNCATE(( 6371 * acos (  
+                    cos ( radians(".$param['lat'].") )  
+                    * cos( radians( latitude ) )  
+                    * cos( radians( longitude ) - radians(".$param['lng'].") )  
+                    + sin ( radians(".$param['lat'].") )  
+                    * sin( radians( latitude ) )  
+                    )  
+                ), 2) AS distance")
+            ->having('distance < 20')
+            ->order(['distance' => 'ASC'])
+            ->where(['status' => 1])
+            ->limit((($param['page'] - 1) * $limit) . "," . $limit)
+            ->select();
+
+        return $this->ApiJson(0,'', $lists);
+    }
+
+
+    /**
+     * 获取门店详情
+     *
+     * @url /store/:id
+     * @param $id
+     *
+     * @return \think\response\Json
+     * @throws \Lettered\Support\Exceptions\EvidentException
+     */
+    public function getStoreById($id)
+    {
+        (new IDMustBePositiveInt())->valid();
+
+        $info =  model('Stores')::get($id);
+        if (!$info){
+            return $this->ApiJson(-1,'此门店不存在或已被禁封!');
+        }
+        return $this->ApiJson(0,'', $info);
+    }
+}

+ 7 - 7
public/manage/pages/store/hotel.html

@@ -19,20 +19,20 @@
 <script type="text/html" id="toolBarTpl">
     <div class="layui-btn-group fl">
         <a class="layui-btn layui-btn-sm layui-icon layui-icon-add-circle-fine skill-add-btn">&nbsp;添加</a>
-        <a table-data="{'url':'store/store/plectron','action':'put',param:{'status': 1}}" class="layui-btn layui-btn-sm layui-icon layui-icon-play table-toolbar-btn">&nbsp;启用</a >
-        <a table-data="{'url':'store/store/plectron','action':'put',param:{'status': 0}}" confirm class="layui-btn layui-btn-sm layui-icon layui-icon-pause table-toolbar-btn">&nbsp;禁用</a>
-        <a table-data="{'url':'store/store/plectron','action':'delete'}" confirm class="layui-btn layui-btn-sm layui-icon layui-icon-close table-toolbar-btn">&nbsp;删除</a>
+        <a table-data="{'url':'store/stores/plectron','action':'put',param:{'status': 1}}" class="layui-btn layui-btn-sm layui-icon layui-icon-play table-toolbar-btn">&nbsp;启用</a >
+        <a table-data="{'url':'store/stores/plectron','action':'put',param:{'status': 0}}" confirm class="layui-btn layui-btn-sm layui-icon layui-icon-pause table-toolbar-btn">&nbsp;禁用</a>
+        <a table-data="{'url':'store/stores/plectron','action':'delete'}" confirm class="layui-btn layui-btn-sm layui-icon layui-icon-close table-toolbar-btn">&nbsp;删除</a>
     </div>
 </script>
 
 <!-- 表格操作列 -->
 <script type="text/html" id="tableBarUser">
     <a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
-    <a class="layui-btn layui-btn-danger layui-btn-xs" perm-show="delete:/store/store/<id>" lay-event="del">删除</a>
+    <a class="layui-btn layui-btn-danger layui-btn-xs" perm-show="delete:/store/stores/<id>" lay-event="del">删除</a>
 </script>
 <!-- 表格状态列 -->
 <script type="text/html" id="tableStateUser">
-    <input type="checkbox" value="{{ d.status }}" switch-data="{'url':'store/store/{{ d.id }}','action':'put'}" lay-skin="switch" lay-filter="ckDataTableState"
+    <input type="checkbox" value="{{ d.status }}" switch-data="{'url':'store/stores/{{ d.id }}','action':'put'}" lay-skin="switch" lay-filter="ckDataTableState"
            lay-text="正常|锁定" {{d.status==1?'checked':''}}/>
 </script>
 <!-- 表单弹窗 -->
@@ -88,7 +88,7 @@
         </div>
         <div class="layui-form-item text-right">
             <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
-            <button class="layui-btn" perm-show="put:/store/skill/<id>"  lay-filter="modelSubmitSkill" lay-submit>保存</button>
+            <button class="layui-btn" perm-show="put:/store/stores/<id>"  lay-filter="modelSubmitSkill" lay-submit>保存</button>
         </div>
     </form>
 </script>
@@ -184,7 +184,7 @@
                 }, function (i) {
                     layer.close(i);
                     layer.load(2);
-                    admin.req('store/store/' + data.id, function (r) {
+                    admin.req('store/stores/' + data.id, function (r) {
                         layer.closeAll('loading');
                         if (r.code === 10000) {
                             notice.msg(r.message, {icon: 1});

+ 1 - 1
public/manage/pages/store/rescue.html

@@ -234,7 +234,7 @@
                     $('.dialog-location-choose').off('click.fcdlc').on('click.fcdlc', function(){
                         // 位置选择
                         TMap.open({
-                            key: "CJVBZ-PHKCJ-C4AFL-FQEPT-WRTH3-Q2BXD",
+                            key: setter.mapKey,
                             dialog: {title: '坐标选取'},
                             onChoose: function (point, adress, index) {
                                 layer.close(index);

File diff ditekan karena terlalu besar
+ 63 - 58
public/manage/pages/store/store.html


File diff ditekan karena terlalu besar
+ 311 - 0
public/manage/pages/store/stores.html


+ 12 - 11
route/route.php

@@ -95,8 +95,16 @@ Route::group('api',function (){
 
         // 商家
         Route::group('store',function (){
-            Route::get('nearby','api/:ver.Stores/getNearbyCol'); // 附近的商户
-            Route::get('/:id','api/:ver.Stores/getStoreByID')->pattern(['id' => '\d+']); // 商户详情
+            Route::get('nearby','api/:ver.Store/getNearbyCol'); // 附近的商户
+            Route::get('/:id','api/:ver.Store/getStoreByID')->pattern(['id' => '\d+']); // 商户详情
+        });
+
+        // 店铺或摊点
+        Route::group('stores',function (){
+            // 摩的订单
+            Route::post('nearby', 'api/:ver.Stores/getNearbyCol'); // 我的服务单
+            Route::get('/:id', 'api/:ver.Stores/getStoreByID');  // 购买服务
+
         });
 
         // 商品
@@ -223,13 +231,6 @@ Route::group('api',function (){
                 });
             });
 
-            // 店铺或摊点
-            Route::group('stores',function (){
-                // 摩的订单
-                Route::get('nearby', 'api/:ver.Stores/order'); // 我的服务单
-                Route::post('serve', 'api/:ver.Rescue/userServe');  // 购买服务
-
-            });
 
             // 摩的
             Route::group('taxi',function (){
@@ -593,8 +594,8 @@ Route::group('manage',function (){
 
             });
 
-            // 技能管理资源路由
-            Route::resource('store','admin/store.Stores');
+            // 门店管理
+            Route::resource('stores','admin/store.Stores');
             
             // 接单管理
             Route::group('mission',function () {

+ 1 - 1
vendor/workerman/_usr_local_develop_php_www_waibao_NN2022081301_NN2022081301_socket.php.pid

@@ -1 +1 @@
-5790
+38754

+ 1 - 0
vendor/workerman/workerman.log

@@ -334,3 +334,4 @@
 2021-05-07 18:16:30 pid:26223 Workerman[/www/wwwroot/api.gxrrj.cn/think] stop success
 2021-05-07 18:16:31 pid:26224 Workerman[think] start in DEBUG mode
 2022-08-23 07:10:57 pid:5790 Workerman[socket.php] start in DEBUG mode
+2022-09-11 11:41:13 pid:38754 Workerman[socket.php] start in DEBUG mode