jun преди 5 месеца
родител
ревизия
4289739009

+ 4 - 4
app/Http/Controllers/Admin/CourseReservation.php

@@ -147,12 +147,12 @@ class CourseReservation extends Auth{
 		// 验证参数
 		$request->scene('set_status')->validate();
 		// 设置状态
-		$id				= request('uid',0);
+		$id				= request('id',0);
 		$status			= request('status',0);
 		// 查询用户
-		$oldData		= $Model->where(['uid'=>$id])->first();
-		// 如果用户不存在
-		if( !$oldData )	return json_send(['code'=>'error','msg'=>'用户不存在']);
+		$oldData		= $Model->where(['id'=>$id])->first();
+		// 如果id不存在
+		if( !$oldData )	return json_send(['code'=>'error','msg'=>'预约不存在']);
 		// 执行修改
 		$result			= $Model->edit($id,['status'=>$status]);
 		// 提示新增失败

+ 15 - 16
app/Http/Controllers/Api/Course.php

@@ -36,22 +36,26 @@ class Course extends Api{
 		// 检查登录
 		$uid							= $this->checkLogin();
 		// 接收参数
-		$ordersProductId				= request('orders_product_id','');
-		$scheduleId					    = request('schedule_id','');
-		$courseId					    = request('course_id','');
+		$scheduleId					    = (int)request('schedule_id','');
+		$courseId					    = (int)request('course_id','');
         //订单课程预约信息
-        $ordersProductInfo              = $OrdersProduct->query()->whereColumn('course_number','>','reservation_number')->where('course_id','=',$courseId)->first();
-
+        $ordersProductInfo              = $OrdersProduct->query()
+            ->whereColumn('course_number','>','reservation_number')
+            ->where([['course_id','=',$courseId],['custom_uid','=',$uid],['status','=',2]])
+            ->first();
         if (!$ordersProductInfo)
-            return json_send(['code'=>'406','msg'=>'您还没购买课程','data'=>['error'=>'您还没购买课程']]);
+            return json_send(['code'=>'error','msg'=>'您还没购买课程','data'=>['error'=>'您还没购买课程']]);
         if ($ordersProductInfo['course_number'] <= $ordersProductInfo['reservation_number'])
             return json_send(['code'=>'error','msg'=>'您购买的课程节数已用完','data'=>['error'=>'您购买的课程节数已用完']]);
+        $ordersProductId				= (int)$ordersProductInfo['id'];
         //上课表信息
         $courseScheduleInfo             = $CourseSchedule->query()->where('id','=',$scheduleId)->first();
         if (!$courseScheduleInfo)
             return json_send(['code'=>'error','msg'=>'预约课程不存在','data'=>['error'=>'预约课程不存在']]);
         if ($courseScheduleInfo['course_number'] <= $ordersProductInfo['reservation_number'])
             return json_send(['code'=>'error','msg'=>'此时段课程已预满','data'=>['error'=>'此时段课程已预满']]);
+        if ($courseScheduleInfo['start_time'] <= time())
+            return json_send(['code'=>'error','msg'=>'已过上课时间','data'=>['error'=>'已过上课时间']]);
         $data = [
             'orders_product_id'         =>  $ordersProductId,
             'schedule_id'               =>  $scheduleId,
@@ -67,10 +71,10 @@ class Course extends Api{
         // 写入数据
         try {
             // 更新订单预约数据
-            $update =  $OrdersProduct->query()->where('id','=',$ordersProductId)->update(['reservation_number'=>$ordersProductInfo['reservation_number']+1]);
+            $update =  $OrdersProduct->query()->where('id','=',$ordersProductInfo['id'])->increment('reservation_number');
             if (!$update)
                 // 返回结果
-                return						json_send(['code'=>'success','msg'=>'预约失败','data'=>['id'=>null]]);
+                return						json_send(['code'=>'error','msg'=>'预约失败','data'=>['id'=>$ordersProductId,'error'=>'更新订单预约数据']]);
             // 更新课程表预约数据
             $updateSchedule =  $CourseSchedule->query()->where('id','=',$scheduleId)->update(['reservation_number'=>$courseScheduleInfo['reservation_number']+1]);
             if (!$updateSchedule){
@@ -176,7 +180,7 @@ class Course extends Api{
             ['course_schedule.end_time','<',$end],
         ];
         // 查询状态
-        if( $status )				$map[] = ['course_schedule.status','=',$status];
+        $map[] = ['course_schedule.status','=',$status];
         $select = [
             'course_schedule.id',
             'course_schedule.course_id',
@@ -198,7 +202,7 @@ class Course extends Api{
             ->join('course','course_schedule.course_id','=','course.id')
             ->join('course_teacher','course_schedule.teacher_id','=','course_teacher.id')
             ->where($map)
-            ->orderByDesc('course_schedule.start_time')
+            ->orderBy('course_schedule.start_time')
             ->select($select)
             ->get();
         //用户已预约课程
@@ -264,12 +268,7 @@ class Course extends Api{
             $reservation['teacher_pic']	= path_compat($reservation['teacher_pic']);
             switch ($reservation['status']){
                 case 1:
-                    if ($reservation['start_time'] <= $time){
-                        $reservation['status'] = 3;
-                        $reservation['status_name'] = '已完成';
-                    }else{
-                        $reservation['status_name'] = '待上课';
-                    }
+                    $reservation['status_name'] = '待上课';
                     break;
                 case 2:
                     $reservation['status_name'] = '已取消';

+ 1 - 1
app/Http/Controllers/Api/Orders.php

@@ -270,7 +270,7 @@ class Orders extends Api{
 		// 查询状态
 		if( $status )				$map[] = ['status','=',$status];
 		// 查询
-		$Paginator					= $Model->query()->where($map)->orderByDesc('id')->paginate($limit,['id','pay_total','status','price_total','coupon_total','business_id','pay_total','insert_time']);
+		$Paginator					= $Model->query()->where($map)->orderByDesc('id')->paginate($limit,['id','pay_total','status','price_total','coupon_total','business_id','pay_total','insert_time','snowflake_id']);
 		// 订单产品
 		$productList 				= $OrdersProduct->query()->whereIn('order_id', array_column($Paginator->items(),'id'))->select(['id as item_id','order_id','product_id','buy_num','is_rebate','sku_attr_names as product_spec','product_name','product_thumb',])->get()->toArray();
 		// 循环处理

+ 7 - 3
app/Http/Controllers/Api/Product.php

@@ -45,12 +45,16 @@ class Product extends Api{
 		// 是否有城市
 		//$wherIn						= empty($custom['city_id']) ? [1] : [1,$custom['city_id']];
 		// 获取分页信息
-		$Paginator					= $Model->query()
+		/*$Paginator					= $Model->query()
 										->join('product_city','product_city.product_id','=','product.id')
 										->where($map)
-										//->whereIn('product_city.city_id',$wherIn)
+										->whereIn('product_city.city_id',$wherIn)
 										->groupBy('product_id')
-										->paginate($limit,['product.id','product.name','product.thumb','product.spec','product.price','product.market_price','product.stock']);
+										->paginate($limit,['product.id','product.name','product.thumb','product.spec','product.price','product.market_price','product.stock']);*/
+        $Paginator					= $Model->query()
+            ->where($map)
+            ->orderByDesc('id')
+            ->paginate($limit,['id','name','thumb','spec','price','market_price','stock']);
 		// 获取数据
 		$data['total']				= $Paginator->total();
 		$data['current_page']		= $Paginator->currentPage();

+ 9 - 0
app/Http/Controllers/Api/WechatPay.php

@@ -4,6 +4,7 @@ use App\Http\Controllers\Api\Api;
 use App\Models\Custom;
 use App\Models\Orders;
 use App\Facades\Servers\Logs\Log;
+use App\Models\OrdersProduct;
 use EasyWeChat\Factory;
 use Illuminate\Http\Request;
 use App\Servers\WechatPay\Payment;
@@ -119,6 +120,14 @@ class WechatPay extends Api{
                         Log::log('notify_wechat_pay', '更新订单失败' . json_encode($res));
                         return json_send(['code'=>'FAIL']);
                     }
+                    $orderInfo   = Orders::query()->where('snowflake_id','=',$inBodyResourceArray['out_trade_no'])->first()->toArray();
+                    //更新子订单
+                    $res         =  OrdersProduct::query()->where('order_id','=',$orderInfo['id'])->update(['status'=>2]);
+                    if (!$res) {
+                        Log::log('notify_wechat_pay', '更新子订单失败' . json_encode($res));
+                        return json_send(['code'=>'FAIL']);
+                    }
+
                 }catch (\Exception $e){
                     Log::log('notify_wechat_pay', '更新订单失败' . json_encode($e));
                     return json_send(['code'=>'FAIL']);

+ 3 - 3
app/Servers/WechatPay/Payment.php

@@ -57,7 +57,7 @@ class Payment
     {
         $notify_url = Config('wechatpay.notify_url');
         //调用微信JSAPI下单获取预支付交易会话标识
-        //try {
+        try {
             $resp = $this->instance
                 ->chain('v3/pay/transactions/jsapi')
                 ->post(['json' => [
@@ -78,14 +78,14 @@ class Payment
                 ]]);
             $result = json_decode($resp->getBody(),true);
             $prepay_id = $result['prepay_id'];
-        /*} catch (\Exception $e) {
+        } catch (\Exception $e) {
             if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
                 $r = $e->getResponse();
                 // 记录错误信息
                 Log::error('wechat/Payment','拉起小程序支付,出现错误'.$r->getBody().'参数'.json_encode($params));
             }
             return response()->json(['error' => '拉起支付失败'], 500);
-        }*/
+        }
         //根据返回的预支付交易会话标识,组装调起小程序支付参数
         $data = [
             'appId'     => $this->appid,

+ 1 - 1
public/uploads/product/detail/14.html

@@ -1 +1 @@
-<p>围绕我</p>
+<p>测试</p>

+ 1 - 1
resources/views/admin/course_reservation/index.blade.php

@@ -70,7 +70,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 								@endif
 								@if(check_auth('admin/course_reservation/set_status'))
 									@if($a['status'])
-									<a data-url="{{url('admin/course_reservation/set_status?'.http_build_query(['id'=>$a['id'],'status'=>0]))}}" class="set_status btn btn-sm btn-success" >取消拉黑</a>
+									<a data-url="{{url('admin/course_reservation/set_status?'.http_build_query(['id'=>$a['id'],'status'=>0]))}}" class="set_status btn btn-sm btn-success" >恢复预约</a>
 									@else
 									<a data-url="{{url('admin/course_reservation/set_status?'.http_build_query(['id'=>$a['id'],'status'=>1]))}}" class="set_status btn btn-sm btn-danger" >取消预约</a>
 									@endif