1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-24 20:06:09 +08:00

Merge branch 'ctc/v1.4.8'

This commit is contained in:
koogua 2021-11-28 17:33:12 +08:00
commit b889569d77
12 changed files with 58 additions and 21 deletions

View File

@ -1,3 +1,12 @@
### [v1.4.8](https://gitee.com/koogua/course-tencent-cloud/releases/v1.4.8)(2021-11-28)
- 修正后台下载课程附件问题
- 修正后台登录检查跳转地址
- 修正公众号关注二维码样式问题
- 优化发货失败自动退款逻辑
- 创建交易时增加订单支付检查
- H5增加底部tab图标
### [v1.4.7](https://gitee.com/koogua/course-tencent-cloud/releases/v1.4.7)(2021-10-28) ### [v1.4.7](https://gitee.com/koogua/course-tencent-cloud/releases/v1.4.7)(2021-10-28)
- 更新README.md - 更新README.md

View File

@ -272,6 +272,20 @@ class DeliverTask extends Task
$refund->review_note = '自动操作'; $refund->review_note = '自动操作';
$refund->create(); $refund->create();
$task = new TaskModel();
$itemInfo = [
'refund' => ['id' => $refund->id],
];
$task->item_id = $refund->id;
$task->item_info = $itemInfo;
$task->item_type = TaskModel::TYPE_REFUND;
$task->priority = TaskModel::PRIORITY_HIGH;
$task->status = TaskModel::STATUS_PENDING;
$task->create();
} }
/** /**

View File

@ -77,7 +77,7 @@ class HelpController extends Controller
*/ */
public function editAction($id) public function editAction($id)
{ {
$helpService = new HelpService; $helpService = new HelpService();
$categories = $helpService->getCategories(); $categories = $helpService->getCategories();

View File

@ -32,6 +32,8 @@ class Refund extends Service
$params = $pageQuery->getParams(); $params = $pageQuery->getParams();
$params['deleted'] = $params['deleted'] ?? 0;
/** /**
* 兼容订单编号或订单序号查询 * 兼容订单编号或订单序号查询
*/ */
@ -114,11 +116,7 @@ class Refund extends Service
$task = new TaskModel(); $task = new TaskModel();
$itemInfo = [ $itemInfo = [
'refund' => [ 'refund' => ['id' => $refund->id],
'id' => $refund->id,
'order_id' => $refund->order_id,
'trade_id' => $refund->trade_id,
],
]; ];
$task->item_id = $refund->id; $task->item_id = $refund->id;

View File

@ -26,12 +26,6 @@ class Session extends Service
public function login() public function login()
{ {
$user = $this->getCurrentUser();
if ($user->id > 0) {
return $this->response->redirect(['for' => 'home.index']);
}
$post = $this->request->getPost(); $post = $this->request->getPost();
$validator = new AccountValidator(); $validator = new AccountValidator();

View File

@ -10,7 +10,6 @@
{% for item in resources %} {% for item in resources %}
{% set update_url = url({'for':'admin.resource.update','id':item.id}) %} {% set update_url = url({'for':'admin.resource.update','id':item.id}) %}
{% set delete_url = url({'for':'admin.resource.delete','id':item.id}) %} {% set delete_url = url({'for':'admin.resource.delete','id':item.id}) %}
{% set download_url = url({'for':'home.download','md5':item.upload.md5}) %}
<tr> <tr>
<td><input class="layui-input res-name" type="text" value="{{ item.upload.name }}" data-url="{{ update_url }}"></td> <td><input class="layui-input res-name" type="text" value="{{ item.upload.name }}" data-url="{{ update_url }}"></td>
<td>{{ item.upload.mime }}</td> <td>{{ item.upload.mime }}</td>
@ -18,7 +17,7 @@
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td> <td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
<td> <td>
<a class="layui-btn layui-btn-sm layui-bg-red res-btn-delete" href="javascript:" data-url="{{ delete_url }}">删除</a> <a class="layui-btn layui-btn-sm layui-bg-red res-btn-delete" href="javascript:" data-url="{{ delete_url }}">删除</a>
<a class="layui-btn layui-btn-sm" href="{{ download_url }}" target="_blank">下载</a> <a class="layui-btn layui-btn-sm" href="{{ item.upload.url }}" target="_blank">下载</a>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}

View File

@ -15,6 +15,7 @@ use App\Services\Logic\TradeTrait;
use App\Services\Pay\Alipay; use App\Services\Pay\Alipay;
use App\Services\Pay\Wxpay; use App\Services\Pay\Wxpay;
use App\Validators\Client as ClientValidator; use App\Validators\Client as ClientValidator;
use App\Validators\Order as OrderValidator;
use App\Validators\Trade as TradeValidator; use App\Validators\Trade as TradeValidator;
class Trade extends Service class Trade extends Service
@ -35,6 +36,10 @@ class Trade extends Service
$order = $this->checkOrderBySn($post['order_sn']); $order = $this->checkOrderBySn($post['order_sn']);
$validator = new OrderValidator();
$validator->checkIfAllowPay($order);
$user = $this->getLoginUser(); $user = $this->getLoginUser();
$validator = new TradeValidator(); $validator = new TradeValidator();
@ -77,6 +82,10 @@ class Trade extends Service
$order = $this->checkOrderBySn($post['order_sn']); $order = $this->checkOrderBySn($post['order_sn']);
$validator = new OrderValidator();
$validator->checkIfAllowPay($order);
$user = $this->getLoginUser(); $user = $this->getLoginUser();
$channel = TradeModel::CHANNEL_WXPAY; $channel = TradeModel::CHANNEL_WXPAY;
@ -122,6 +131,10 @@ class Trade extends Service
$order = $this->checkOrderBySn($post['order_sn']); $order = $this->checkOrderBySn($post['order_sn']);
$validator = new OrderValidator();
$validator->checkIfAllowPay($order);
$user = $this->getLoginUser(); $user = $this->getLoginUser();
$channel = TradeModel::CHANNEL_WXPAY; $channel = TradeModel::CHANNEL_WXPAY;

View File

@ -16,7 +16,7 @@ class AppInfo
protected $link = 'https://koogua.com'; protected $link = 'https://koogua.com';
protected $version = '1.4.7'; protected $version = '1.4.8';
public function __get($name) public function __get($name)
{ {

View File

@ -52,11 +52,7 @@ class Trade extends Listener
$task = new TaskModel(); $task = new TaskModel();
$itemInfo = [ $itemInfo = [
'order' => [ 'order' => ['id' => $order->id]
'id' => $order->id,
'item_id' => $order->item_id,
'item_type' => $order->item_type,
]
]; ];
$task->item_id = $order->id; $task->item_id = $order->id;
@ -74,6 +70,8 @@ class Trade extends Listener
$this->db->rollback(); $this->db->rollback();
$this->logger->error('After Pay Event Error ' . kg_json_encode([ $this->logger->error('After Pay Event Error ' . kg_json_encode([
'file' => $e->getFile(),
'line' => $e->getLine(),
'code' => $e->getCode(), 'code' => $e->getCode(),
'message' => $e->getMessage(), 'message' => $e->getMessage(),
])); ]));

View File

@ -10,6 +10,7 @@ namespace App\Services\Logic\Trade;
use App\Models\Trade as TradeModel; use App\Models\Trade as TradeModel;
use App\Services\Logic\OrderTrait; use App\Services\Logic\OrderTrait;
use App\Services\Logic\Service as LogicService; use App\Services\Logic\Service as LogicService;
use App\Validators\Order as OrderValidator;
use App\Validators\Trade as TradeValidator; use App\Validators\Trade as TradeValidator;
class TradeCreate extends LogicService class TradeCreate extends LogicService
@ -23,6 +24,10 @@ class TradeCreate extends LogicService
$order = $this->checkOrderBySn($post['order_sn']); $order = $this->checkOrderBySn($post['order_sn']);
$validator = new OrderValidator();
$validator->checkIfAllowPay($order);
$user = $this->getLoginUser(); $user = $this->getLoginUser();
$validator = new TradeValidator(); $validator = new TradeValidator();

View File

@ -136,6 +136,13 @@ class Order extends Validator
return $status; return $status;
} }
public function checkIfAllowPay(OrderModel $order)
{
if ($order->status != OrderModel::STATUS_PENDING) {
throw new BadRequestException('order.pay_not_allowed');
}
}
public function checkIfAllowCancel(OrderModel $order) public function checkIfAllowCancel(OrderModel $order)
{ {
if ($order->status != OrderModel::STATUS_PENDING) { if ($order->status != OrderModel::STATUS_PENDING) {

View File

@ -2086,7 +2086,7 @@
} }
.my-subscribe .qrcode { .my-subscribe .qrcode {
broder: 3px dashed #666; border: 3px dashed #666;
margin: 30px auto; margin: 30px auto;
width: 160px; width: 160px;
height: 160px; height: 160px;