1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-26 12:23:06 +08:00

Merge branch 'koogua/v1.4.5' into demo

This commit is contained in:
koogua 2021-09-28 15:07:47 +08:00
commit d18b5f6ba3
5 changed files with 81 additions and 8 deletions

View File

@ -4,9 +4,11 @@
- 修正后台首页提问和回答的数量统计
- 调整登录限制(邮箱|手机)为注册限制
- 调整订单发货为每一分钟执行一次
- 增强课时安全性,无权限时不返回播放地址或内容
- 增加首页推荐教师接口
- 增加微信公众号支付处理
- 增加取消订单功能
- 优化订单API结构
- 优化计划任务
### [v1.4.4](https://gitee.com/koogua/course-tencent-cloud/releases/v1.4.4)(2021-09-17)

View File

@ -7,6 +7,7 @@
namespace App\Builders;
use App\Models\Course as CourseModel;
use App\Models\Order as OrderModel;
use App\Repos\User as UserRepo;
@ -42,7 +43,7 @@ class OrderList extends Builder
public function handleItems(array $orders)
{
foreach ($orders as $key => $order) {
$itemInfo = $this->handleItem($order);
$itemInfo = $this->handleItemInfo($order);
$orders[$key]['item_info'] = $itemInfo;
}
@ -53,7 +54,7 @@ class OrderList extends Builder
* @param array $order
* @return array|mixed
*/
public function handleItem(array $order)
public function handleItemInfo(array $order)
{
$itemInfo = [];
@ -72,6 +73,52 @@ class OrderList extends Builder
return $itemInfo;
}
/**
* @param array $order
* @return array|mixed
*/
public function handleMeInfo(array $order)
{
$me = [
'allow_pay' => 0,
'allow_cancel' => 0,
'allow_refund' => 0,
];
$payStatusOk = $order['status'] == OrderModel::STATUS_PENDING ? 1 : 0;
$cancelStatusOk = $order['status'] == OrderModel::STATUS_PENDING ? 1 : 0;
$refundStatusOk = $order['status'] == OrderModel::STATUS_FINISHED ? 1 : 0;
if ($order['item_type'] == OrderModel::ITEM_COURSE) {
$course = $order['item_info']['course'];
$courseModelOk = $course['model'] != CourseModel::MODEL_OFFLINE;
$refundTimeOk = $course['refund_expiry_time'] > time();
$me['allow_refund'] = $courseModelOk && $refundStatusOk && $refundTimeOk ? 1 : 0;
} elseif ($order['item_type'] == OrderModel::ITEM_PACKAGE) {
$courses = $order['item_info']['courses'];
$refundTimeOk = false;
foreach ($courses as $course) {
if ($course['refund_expiry_time'] > time()) {
$refundTimeOk = true;
}
}
$me['allow_refund'] = $refundStatusOk && $refundTimeOk ? 1 : 0;
}
$me['allow_pay'] = $payStatusOk;
$me['allow_cancel'] = $cancelStatusOk;
return $me;
}
/**
* @param string $itemInfo
* @return mixed

View File

@ -64,6 +64,19 @@ class ChapterInfo extends LogicService
$result = $service->handleBasicInfo($chapter);
/**
* 无内容查看权限,过滤掉相关内容
*/
if (!$this->ownedChapter) {
if ($chapter->model == CourseModel::MODEL_VOD) {
$result['play_urls'] = [];
} elseif ($chapter->model == CourseModel::MODEL_LIVE) {
$result['play_urls'] = [];
} elseif ($chapter->model == CourseModel::MODEL_READ) {
$result['content'] = '';
}
}
$result['course'] = $service->handleCourseInfo($this->course);
$me = [

View File

@ -86,16 +86,24 @@ class OrderInfo extends LogicService
if ($order->status == OrderModel::STATUS_FINISHED) {
/**
* 只允许线上课程退款,因为线下课程无法进行退款计算
* 只允许线上课程退款
*/
if ($order->item_type == OrderModel::ITEM_COURSE) {
$result['allow_refund'] = 1;
$course = $order->item_info['course'];
if (isset($course['model']) && $course['model'] == CourseModel::MODEL_OFFLINE) {
$result['allow_refund'] = 0;
$refundTimeOk = $course['refund_expiry_time'] > time();
$courseModelOk = $course['model'] != CourseModel::MODEL_OFFLINE;
if ($refundTimeOk && $courseModelOk) {
$result['allow_refund'] = 1;
}
} elseif ($order->item_type == OrderModel::ITEM_PACKAGE) {
$result['allow_refund'] = $order->status == OrderModel::STATUS_FINISHED ? 1 : 0;
$courses = $order->item_info['courses'];
foreach ($courses as $course) {
$refundTimeOk = $course['refund_expiry_time'] > time();
$courseModelOk = $course['model'] != CourseModel::MODEL_OFFLINE;
if ($refundTimeOk && $courseModelOk) {
$result['allow_refund'] = 1;
}
}
}
}

View File

@ -61,7 +61,9 @@ class OrderList extends LogicService
foreach ($orders as $order) {
$order['item_info'] = $builder->handleItem($order);
$order['item_info'] = $builder->handleItemInfo($order);
$me = $builder->handleMeInfo($order);
$items[] = [
'sn' => $order['sn'],
@ -76,6 +78,7 @@ class OrderList extends LogicService
'promotion_info' => $order['promotion_info'],
'create_time' => $order['create_time'],
'update_time' => $order['update_time'],
'me' => $me,
];
}