diff --git a/.gitignore b/.gitignore index 67677604..c1687295 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ /vendor /config/config.php /config/xs.course.ini +/config/xs.group.ini +/config/xs.user.ini /public/robots.txt /public/sitemap.xml *KgTest* diff --git a/app/Console/Tasks/LiveNoticeConsumerTask.php b/app/Console/Tasks/LiveNoticeConsumerTask.php index fe2fa948..36f4f9cc 100644 --- a/app/Console/Tasks/LiveNoticeConsumerTask.php +++ b/app/Console/Tasks/LiveNoticeConsumerTask.php @@ -46,24 +46,24 @@ class LiveNoticeConsumerTask extends Task $now = time(); + $removeList = []; + foreach ($members as $member) { list($chapterId, $userId, $startTime) = explode(':', $member); - $remove = false; - if ($now - $startTime < 3600) { $smser->handle($chapterId, $userId, $startTime); - $remove = true; + $removeList[] = $member; } if ($now > $startTime) { - $remove = true; + $removeList[] = $member; } + } - if ($remove) { - $this->redis->sRem($cacheKey, $member); - } + if (count($removeList) > 0) { + $this->redis->sRem($cacheKey, ...$removeList); } } diff --git a/app/Console/Tasks/OrderTask.php b/app/Console/Tasks/OrderTask.php index a7182496..a5c78aaa 100644 --- a/app/Console/Tasks/OrderTask.php +++ b/app/Console/Tasks/OrderTask.php @@ -54,17 +54,14 @@ class OrderTask extends Task case OrderModel::ITEM_VIP: $this->handleVipOrder($order); break; - case OrderModel::ITEM_REWARD: - $this->handleRewardOrder($order); - break; } + $this->finishOrder($order); + $task->status = TaskModel::STATUS_FINISHED; $task->update(); - $this->handleOrderNotice($order); - } catch (\Exception $e) { $task->try_count += 1; @@ -76,7 +73,7 @@ class OrderTask extends Task $task->update(); - $logger->info('Order Task Exception ' . kg_json_encode([ + $logger->info('Order Process Exception ' . kg_json_encode([ 'line' => $e->getLine(), 'code' => $e->getCode(), 'message' => $e->getMessage(), @@ -84,15 +81,23 @@ class OrderTask extends Task ])); } - /** - * 任务失败,申请退款 - */ - if ($task->status == TaskModel::STATUS_FAILED) { + if ($task->status == TaskModel::STATUS_FINISHED) { + $this->handleOrderNotice($order); + } elseif ($task->status == TaskModel::STATUS_FAILED) { $this->handleOrderRefund($order); } } } + protected function finishOrder(OrderModel $order) + { + $order->status = OrderModel::STATUS_FINISHED; + + if ($order->update() === false) { + throw new \RuntimeException('Finish Order Failed'); + } + } + protected function handleCourseOrder(OrderModel $order) { /** @@ -101,7 +106,7 @@ class OrderTask extends Task $itemInfo = $order->item_info; $data = [ - 'user_id' => $order->user_id, + 'user_id' => $order->owner_id, 'course_id' => $order->item_id, 'expiry_time' => $itemInfo['course']['study_expiry_time'], 'role_type' => CourseUserModel::ROLE_STUDENT, @@ -111,7 +116,7 @@ class OrderTask extends Task $courseUser = new CourseUserModel(); if ($courseUser->create($data) === false) { - throw new \RuntimeException('Create CourseQuery User Failed'); + throw new \RuntimeException('Create Course User Failed'); } } @@ -125,7 +130,7 @@ class OrderTask extends Task foreach ($itemInfo['courses'] as $course) { $data = [ - 'user_id' => $order->user_id, + 'user_id' => $order->owner_id, 'course_id' => $course['id'], 'expiry_time' => $course['study_expiry_time'], 'role_type' => CourseUserModel::ROLE_STUDENT, @@ -144,7 +149,7 @@ class OrderTask extends Task { $userRepo = new UserRepo(); - $user = $userRepo->findById($order->user_id); + $user = $userRepo->findById($order->owner_id); /** * @var array $itemInfo @@ -158,11 +163,6 @@ class OrderTask extends Task } } - protected function handleRewardOrder(OrderModel $order) - { - - } - protected function handleOrderNotice(OrderModel $order) { $smser = new OrderSmser(); @@ -180,11 +180,11 @@ class OrderTask extends Task $refund->subject = $order->subject; $refund->amount = $order->amount; - $refund->apply_note = '开通服务失败,自动退款'; - $refund->review_note = '自动操作'; $refund->user_id = $order->user_id; $refund->order_id = $order->id; $refund->trade_id = $trade->id; + $refund->apply_note = '开通服务失败,自动退款'; + $refund->review_note = '自动操作'; $refund->create(); } diff --git a/app/Http/Admin/Views/chapter/edit_lesson.volt b/app/Http/Admin/Views/chapter/edit_lesson.volt index 4ea5ca6e..c75920da 100644 --- a/app/Http/Admin/Views/chapter/edit_lesson.volt +++ b/app/Http/Admin/Views/chapter/edit_lesson.volt @@ -3,11 +3,11 @@ {% block content %} {%- macro content_title(model) %} - {% if model == 'vod' %} + {% if model == '1' %} 点播信息 - {% elseif model == 'live' %} + {% elseif model == '2' %} 直播信息 - {% elseif model == 'read' %} + {% elseif model == '3' %} 图文信息 {% endif %} {%- endmacro %} @@ -26,11 +26,11 @@ {{ partial('chapter/edit_lesson_basic') }}
课程名称:{{ course['title'] }}
市场价格:{{ '¥%0.2f'|format(course['market_price']) }},会员价格:{{ '¥%0.2f'|format(course['vip_price']) }}
学习期限:{{ date('Y-m-d H:i:s',course['study_expiry_time']) }},退款期限:{{ date('Y-m-d H:i:s',course['refund_expiry_time']) }}
学习期限:{{ date('Y-m-d H:i:s',course['study_expiry_time']) }},退款期限:{{ date('Y-m-d H:i:s',course['refund_expiry_time']) }}
商品名称:{{ order.subject }}
-商品价格:{{ '¥%0.2f'|format(order.amount) }}
-商品名称:{{ order.subject }}
商品价格:{{ '¥%0.2f'|format(order.amount) }}
商品名称:{{ order.subject }}
+商品价格:{{ '¥%0.2f'|format(order.amount) }}
+商品名称:{{ order.subject }}
商品价格:{{ '¥%0.2f'|format(order.amount) }}
@@ -37,27 +37,29 @@ {%- endmacro %} {%- macro item_type(value) %} - {% if value == 'course' %} + {% if value == 1 %} 课程 - {% elseif value == 'package' %} + {% elseif value == 2 %} 套餐 - {% elseif value == 'vip' %} - 会员 - {% elseif value == 'reward' %} + {% elseif value == 3 %} 赞赏 - {% elseif value == 'test' %} + {% elseif value == 4 %} + 会员 + {% elseif value == 99 %} 测试 {% endif %} {%- endmacro %} {%- macro order_status(value) %} - {% if value == 'pending' %} + {% if value == 1 %} 待支付 - {% elseif value == 'finished' %} + {% elseif value == 2 %} + 发货中 + {% elseif value == 3 %} 已完成 - {% elseif value == 'closed' %} + {% elseif value == 4 %} 已关闭 - {% elseif value == 'refunded' %} + {% elseif value == 5 %} 已退款 {% endif %} {%- endmacro %} \ No newline at end of file diff --git a/app/Http/Admin/Views/order/search.volt b/app/Http/Admin/Views/order/search.volt index f5e88b47..627fbc31 100644 --- a/app/Http/Admin/Views/order/search.volt +++ b/app/Http/Admin/Views/order/search.volt @@ -21,20 +21,21 @@创建时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'canceled' %} + {% elseif item.status == 2 %}取消时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'approved' %} + {% elseif item.status == 3 %}过审时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'refused' %} + {% elseif item.status == 4 %}拒绝时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'finished' %} + {% elseif item.status == 5 %}完成时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'failed' %} + {% elseif item.status == 6 %}失败时间:{{ date('Y-m-d H:i:s',item.create_time) }}
{% endif %} {% endfor %} diff --git a/app/Http/Admin/Views/refund/search.volt b/app/Http/Admin/Views/refund/search.volt index 9052e119..73489a4b 100644 --- a/app/Http/Admin/Views/refund/search.volt +++ b/app/Http/Admin/Views/refund/search.volt @@ -21,11 +21,11 @@创建时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'finished' %} + {% elseif item.status == 2 %}完成时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'closed' %} + {% elseif item.status == 3 %}关闭时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'refunded' %} + {% elseif item.status == 4 %}退款时间:{{ date('Y-m-d H:i:s',item.create_time) }}
{% endif %} {% endfor %} diff --git a/app/Http/Admin/Views/trade/search.volt b/app/Http/Admin/Views/trade/search.volt index 57e09669..8f8c9a1b 100644 --- a/app/Http/Admin/Views/trade/search.volt +++ b/app/Http/Admin/Views/trade/search.volt @@ -21,17 +21,17 @@课程时长{{ course.attrs.duration|duration }}
- {% elseif course.model == 'live' %} + {% elseif course.model == '2' %}直播时间{{ course.attrs.start_date }} ~ {{ course.attrs.end_date }}
diff --git a/app/Http/Desktop/Views/course/show_order.volt b/app/Http/Desktop/Views/course/show_order.volt index d6937169..1158c93f 100644 --- a/app/Http/Desktop/Views/course/show_order.volt +++ b/app/Http/Desktop/Views/course/show_order.volt @@ -1,5 +1,5 @@ {% if course.me.owned == 0 and course.market_price > 0 %} - {% set order_url = url({'for':'desktop.order.confirm'},{'item_id':course.id,'item_type':'course'}) %} + {% set order_url = url({'for':'desktop.order.confirm'},{'item_id':course.id,'item_type':1}) %} @@ -13,7 +13,7 @@ diff --git a/app/Http/Desktop/Views/error/show400.volt b/app/Http/Desktop/Views/error/show400.volt index b7dc4c3c..ddde2a54 100644 --- a/app/Http/Desktop/Views/error/show400.volt +++ b/app/Http/Desktop/Views/error/show400.volt @@ -5,6 +5,7 @@课程名称:{{ course.title }}
市场价格:{{ '¥%0.2f'|format(course.market_price) }}会员价格:{{ '¥%0.2f'|format(course.vip_price) }}
学习期限:{{ date('Y-m-d',course.study_expiry_time) }}退款期限:{{ date('Y-m-d',course.refund_expiry_time) }}
学习期限:{{ date('Y-m-d',course.study_expiry_time) }}退款期限:{{ date('Y-m-d',course.refund_expiry_time) }}
商品名称:{{ order.subject }}
-商品价格:{{ '¥%0.2f'|format(order.amount) }}
-课程名称:{{ course.title }}
赞赏金额:{{ '¥%0.2f'|format(reward.price) }}
商品名称:{{ order.subject }}
+商品价格:{{ '¥%0.2f'|format(order.amount) }}
+商品名称:{{ order.subject }}
商品价格:{{ '¥%0.2f'|format(order.amount) }}
@@ -38,26 +38,30 @@ {%- macro status_history(items) %} {% for item in items %} - {% if item.status == 'pending' %} + {% if item.status == '1' %}创建时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'finished' %} + {% elseif item.status == '2' %} +支付时间:{{ date('Y-m-d H:i:s',item.create_time) }}
+ {% elseif item.status == '3' %}完成时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'closed' %} + {% elseif item.status == '4' %}关闭时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'refunded' %} + {% elseif item.status == '5' %}退款时间:{{ date('Y-m-d H:i:s',item.create_time) }}
{% endif %} {% endfor %} {%- endmacro %} {%- macro order_status(value) %} - {% if value == 'pending' %} + {% if value == '1' %} 待支付 - {% elseif value == 'finished' %} + {% elseif value == '2' %} + 发货中 + {% elseif value == '3' %} 已完成 - {% elseif value == 'closed' %} + {% elseif value == '4' %} 已关闭 - {% elseif value == 'refunded' %} + {% elseif value == '5' %} 已退款 {% endif %} {%- endmacro %} diff --git a/app/Http/Desktop/Views/macros/refund.volt b/app/Http/Desktop/Views/macros/refund.volt index e55b53d0..091e697a 100644 --- a/app/Http/Desktop/Views/macros/refund.volt +++ b/app/Http/Desktop/Views/macros/refund.volt @@ -1,33 +1,33 @@ {%- macro status_history(items) %} {% for item in items %} - {% if item.status == 'pending' %} + {% if item.status == 1 %}创建时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'canceled' %} + {% elseif item.status == 2 %}取消时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'approved' %} + {% elseif item.status == 3 %}审核时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'refused' %} + {% elseif item.status == 4 %}拒绝时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'finished' %} + {% elseif item.status == 5 %}完成时间:{{ date('Y-m-d H:i:s',item.create_time) }}
- {% elseif item.status == 'failed' %} + {% elseif item.status == 6 %}失败时间:{{ date('Y-m-d H:i:s',item.create_time) }}
{% endif %} {% endfor %} {%- endmacro %} {%- macro refund_status(value) %} - {% if value == 'pending' %} + {% if value == 1 %} 待处理 - {% elseif value == 'canceled' %} + {% elseif value == 2 %} 已取消 - {% elseif value == 'approved' %} + {% elseif value == 3 %} 退款中 - {% elseif value == 'refused' %} + {% elseif value == 4 %} 已拒绝 - {% elseif value == 'finished' %} + {% elseif value == 5 %} 已完成 - {% elseif value == 'failed' %} + {% elseif value == 6 %} 已失败 {% endif %} {%- endmacro %} diff --git a/app/Http/Desktop/Views/my/orders.volt b/app/Http/Desktop/Views/my/orders.volt index 69746bdf..7f7a92f0 100644 --- a/app/Http/Desktop/Views/my/orders.volt +++ b/app/Http/Desktop/Views/my/orders.volt @@ -4,8 +4,8 @@ {{ partial('macros/order') }} - {% set status_types = {'all':'全部','pending':'待支付','finished':'已完成','closed':'已关闭','refunded':'已退款'} %} - {% set status = request.get('status','trim','all') %} + {% set status_types = {'0':'全部','1':'待支付','3':'已完成','4':'已关闭','5':'已退款'} %} + {% set status = request.get('status','trim','0') %}