$order_sn, 'out_trade_no' => $trade_sn, 'user_id' => $user_id, 'price' => $money, 'pay_status' => '0', 'pay_type' => $pay_type, 'day_num' => $nums, ]; self::create($insert_data); return ['code' => 1, 'msg' => '创建成功', 'data' => ['out_trade_no' => $trade_sn]]; } public static function resetOrderSn($order_id,$user_id) { $order_info = self::get($order_id); if (empty($order_info)) return ['code' => 0, 'msg' => '订单不存在']; if ($order_info->user_id != $user_id){ return ['code' => 0, 'msg' => '非法信息']; } $trade_sn = self::create_order_no('GL', $order_info['user_id']); $order_info->out_trade_no = $trade_sn; $order_info->save(); return ['code' => 1, 'msg' => '重置成功', 'data' => ['out_trade_no' => $trade_sn]]; } public function orderFinish($out_trade_no){ $order = $this->where('out_trade_no',$out_trade_no)->find(); if($order['pay_status'] == 1){ $this->error('订单已支付'); } //更新订单状态 $this->where('id',$order['id'])->update(['pay_status'=>1,'pay_time'=>time()]); $user_info = User::get($order['user_id']); if($user_info['vip_endtime']<= time()){ $user_info->vip_endtime = time() + (86400*$order['day_num']); }else{ $user_info->vip_endtime = $user_info['vip_endtime'] + (86400*$order['day_num']); } $user_info->save(); return true; } private static function create_order_no($field = 'D', $user_id) { $uniqueId = $field . $user_id . date('Ymd') . substr(time(), 5, 5); return $uniqueId; } }