zilong 4 лет назад
Родитель
Сommit
f879534208

+ 17 - 0
app/Helpers/functions.php

xqd xqd
@@ -93,6 +93,21 @@ if (!function_exists('get_distance_field')) {
     }
 }
 
+//获取用户的distance的sql字段
+if (!function_exists('get_user_distance_field')) {
+    function get_user_distance_field($user)
+    {
+        $coordinate = get_user_coordinate($user);
+        $latitude = $coordinate['latitude'];
+        $longitude = $coordinate['longitude'];
+        if (empty($latitude) || empty($longitude)) {
+            return '999999999 distance';
+        }
+
+        return 'if(longitude=0 and latitude=0,999999999,round(6378.138*2*asin(sqrt(pow(sin( (' . $latitude . '*pi()/180-latitude*pi()/180)/2),2)+cos(' . $latitude . '*pi()/180)*cos(latitude*pi()/180)* pow(sin((' . $longitude . '*pi()/180-longitude*pi()/180)/2),2)))*1000)) distance';
+    }
+}
+
 //构建单号
 if (!function_exists('build_sn')) {
     function build_sn($id, $len = 2, $prefix = '')
@@ -172,3 +187,5 @@ if (!function_exists('get_user_distance')) {
         return $data;
     }
 }
+
+

+ 1 - 2
app/Http/Controllers/Api/V1/DocterController.php

xqd
@@ -32,8 +32,7 @@ class DocterController extends AuthController
         ]);
         $user = $this->user;
 
-        $coordinate = get_user_coordinate($user);
-        $distance_field = get_distance_field($coordinate['latitude'], $coordinate['longitude']);
+        $distance_field = get_user_distance_field($user);
 
         $builder = Docter::with('office', 'qualification')->select(['id', 'type', 'name', 'phone', 'sex', 'birthday', 'avatar', 'status', 'label', 'sign', 'intro', 'office_id', 'qualification_id', 'score', 'service_persons', 'eva_num', 'service_days', 'phone_minutes', 'chat_price', 'phone_price', 'appoint_price', 'is_chat', 'is_phone', 'is_appoint', 'latitude', 'longitude', DB::raw($distance_field)])->where('status', 1);
         $list_type = !empty($req['list_type']) ? $req['list_type'] : 0;

+ 3 - 0
app/Http/Controllers/Api/V1/OrderController.php

xqd xqd xqd
@@ -40,6 +40,7 @@ class OrderController extends AuthController
             'phone_minutes' => 'required_if:product_type,1|integer',
             'symptoms' => 'required_if:product_type,2|max:2000',
             'medical_imgs' => 'required_if:product_type,2|json|max:3000',
+            //'pay_password|支付密码' => 'required_if:payment_type,2|integer',
         ]);
         $user = $this->user;
 
@@ -162,6 +163,7 @@ class OrderController extends AuthController
             'docter_id' => 'required_if:product_type,3|integer',
             'vaccine_id' => 'required_if:product_type,4|integer',
             'nurse_ids' => 'required_if:product_type,5|json',
+            //'pay_password|支付密码' => 'required_if:payment_type,2|integer',
         ]);
         $user = $this->user;
 
@@ -308,6 +310,7 @@ class OrderController extends AuthController
             'is_security' => 'required|in:0,1',
             'guardian_name' => 'required|max:50',
             'relationship_type' => 'required|integer',
+            //'pay_password|支付密码' => 'required_if:payment_type,2|integer',
         ]);
         $user = $this->user;
 

+ 30 - 0
app/Http/Controllers/Api/V1/OrganizationController.php

xqd
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-10-29
+ * Time: 下午3:43
+ */
+
+namespace App\Http\Controllers\Api\V1;
+
+use App\Models\Organization;
+use DB;
+
+class OrganizationController extends AuthController
+{
+    public function organizationList()
+    {
+        $this->validate(request(), [
+            'latitude' => 'numeric',
+            'longitude' => 'numeric',
+        ]);
+        $user = $this->user;
+
+        $distance_field = get_user_distance_field($user);
+
+        $data = Organization::select(['id', 'type', 'name', 'province_id', 'city_id', 'area_id', 'address', 'latitude', 'longitude', DB::raw($distance_field)])->orderBy('distance', 'asc')->paginate();
+
+        return out($data);
+    }
+}

+ 1 - 1
app/Http/Controllers/Api/V1/ServicePackController.php

xqd
@@ -26,7 +26,7 @@ class ServicePackController extends AuthController
             'service_pack_id' => 'required|integer'
         ]);
 
-        $data = ServicePack::with('team.docter')->where('id', $req['service_pack_id'])->first();
+        $data = ServicePack::with('team.docter.office', 'team.docter.qualification')->where('id', $req['service_pack_id'])->first();
 
         return out($data);
     }

+ 24 - 1
app/Http/Controllers/Api/V1/UserController.php

xqd xqd xqd
@@ -13,6 +13,7 @@ use App\Models\User;
 use App\Models\UserBalanceLog;
 use App\Models\UserCoupon;
 use EasyWeChat\Factory;
+use Cache;
 
 class UserController extends AuthController
 {
@@ -20,7 +21,7 @@ class UserController extends AuthController
     {
         $user = $this->user;
 
-        unset($user['session_key']);
+        unset($user['session_key'], $user['pay_password']);
 
         $user['coupon_num'] = UserCoupon::where('user_id', $user['id'])->where('status', 1)->where('expire_time', '>', time())->count();
 
@@ -82,4 +83,26 @@ class UserController extends AuthController
 
         return out($data);
     }
+
+    public function updatePayPassword()
+    {
+        $req = request()->post();
+        $this->validate(request(), [
+            'verify_code|验证码' => 'required|integer',
+            'pay_password|支付密码' => 'required|integer'
+        ]);
+        $user = $this->user;
+
+        $verify_code = Cache::get($user['phone'].'-1');
+        if($verify_code != $req['verify_code']){
+            if (env('APP_ENV') == 'online' || $req['verify_code'] != '111111') {
+                return out(null, 10001, '验证码错误');
+            }
+        }
+        Cache::delete($user['phone'].'-1');
+
+        User::where('id', $user['id'])->update(['pay_password' => sha1(md5($req['pay_password']))]);
+
+        return out();
+    }
 }