From 29cc05a4f9ef0a5c8ca253a06c8fc3c5865b7361 Mon Sep 17 00:00:00 2001 From: xiaochong0302 Date: Mon, 27 Jul 2020 21:00:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=A2=9E=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E7=8A=B6=E6=80=81=E6=B5=81=E8=BD=AC=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Builders/ImGroupUserList.php | 28 ++++++++- app/Builders/NavTreeList.php | 6 +- app/Builders/OrderList.php | 4 +- app/Builders/RefundList.php | 4 +- app/Builders/TradeList.php | 4 +- .../Admin/Controllers/OrderController.php | 40 ++----------- .../Admin/Controllers/RefundController.php | 16 ++++- .../Admin/Controllers/TradeController.php | 19 ++---- app/Http/Admin/Services/Order.php | 7 +++ app/Http/Admin/Services/PayTest.php | 4 +- app/Http/Admin/Services/Refund.php | 7 +++ app/Http/Admin/Services/Trade.php | 9 ++- app/Http/Admin/Views/group/list.volt | 10 +++- app/Http/Admin/Views/order/list.volt | 4 +- app/Http/Admin/Views/order/order_info.volt | 23 +++++++- app/Http/Admin/Views/order/search.volt | 2 +- app/Http/Admin/Views/order/show.volt | 4 +- app/Http/Admin/Views/order/statuses.volt | 14 +++++ app/Http/Admin/Views/refund/list.volt | 4 +- app/Http/Admin/Views/refund/macro.volt | 18 ++++++ app/Http/Admin/Views/refund/search.volt | 2 +- app/Http/Admin/Views/refund/show.volt | 23 +++++++- app/Http/Admin/Views/refund/statuses.volt | 14 +++++ .../Admin/Views/setting/pay_alipay_test.volt | 2 +- .../Admin/Views/setting/pay_wxpay_test.volt | 2 +- app/Http/Admin/Views/trade/list.volt | 4 +- app/Http/Admin/Views/trade/macro.volt | 26 ++++++-- app/Http/Admin/Views/trade/search.volt | 2 +- app/Http/Admin/Views/trade/show.volt | 2 +- app/Http/Admin/Views/trade/statuses.volt | 14 +++++ app/Http/Admin/Views/trade/trade_info.volt | 23 +++++++- app/Http/Web/Controllers/ImController.php | 28 +++++++++ .../Web/Controllers/ImGroupController.php | 59 +++++++++++++++++++ app/Http/Web/Controllers/MyController.php | 42 ++----------- app/Http/Web/Services/ImFriendTrait.php | 13 ++++ app/Http/Web/Services/ImGroup.php | 28 +++++++++ app/Http/Web/Services/ImGroupTrait.php | 19 ++++++ app/Http/Web/Views/my/friends.volt | 4 +- app/Http/Web/Views/my/groups.volt | 17 ++++-- app/Http/Web/Views/order/pay.volt | 4 +- app/Http/Web/Views/partials/header.volt | 14 ++--- app/Models/ImGroup.php | 4 ++ app/Models/Order.php | 2 +- app/Models/Refund.php | 2 +- app/Models/Trade.php | 2 +- app/Repos/Order.php | 8 +-- app/Repos/Refund.php | 4 +- app/Repos/Trade.php | 16 ++++- .../Frontend/{My => Im}/ImFriendDelete.php | 2 +- .../Frontend/{My => Im}/ImGroupDelete.php | 25 ++++---- .../Frontend/Im/ImGroupUserDelete.php | 52 ++++++++++++++++ app/Services/Frontend/My/FriendList.php | 20 +++++++ app/Services/Frontend/My/GroupList.php | 20 +++++++ app/Services/Frontend/Order/OrderCancel.php | 2 +- app/Services/Frontend/Order/OrderCreate.php | 8 +-- app/Services/Frontend/Refund/RefundCancel.php | 2 +- app/Services/Frontend/Refund/RefundCreate.php | 4 +- app/Services/Frontend/Trade/TradeCancel.php | 18 ------ app/Services/Frontend/Trade/TradeCreate.php | 2 +- app/Validators/ImGroupUser.php | 2 +- public/static/admin/css/common.css | 9 +++ public/static/crossdomain.xml | 4 -- public/static/web/js/order.pay.js | 9 ++- 63 files changed, 588 insertions(+), 198 deletions(-) create mode 100644 app/Http/Admin/Views/order/statuses.volt create mode 100644 app/Http/Admin/Views/refund/statuses.volt create mode 100644 app/Http/Admin/Views/trade/statuses.volt create mode 100644 app/Http/Web/Controllers/ImGroupController.php create mode 100644 app/Http/Web/Services/ImGroup.php rename app/Services/Frontend/{My => Im}/ImFriendDelete.php (92%) rename app/Services/Frontend/{My => Im}/ImGroupDelete.php (51%) create mode 100644 app/Services/Frontend/Im/ImGroupUserDelete.php create mode 100644 app/Services/Frontend/My/FriendList.php create mode 100644 app/Services/Frontend/My/GroupList.php delete mode 100644 app/Services/Frontend/Trade/TradeCancel.php delete mode 100644 public/static/crossdomain.xml diff --git a/app/Builders/ImGroupUserList.php b/app/Builders/ImGroupUserList.php index e8f7a03d..9bdda5be 100644 --- a/app/Builders/ImGroupUserList.php +++ b/app/Builders/ImGroupUserList.php @@ -3,6 +3,7 @@ namespace App\Builders; use App\Repos\ImGroup as ImGroupRepo; +use App\Repos\User as UserRepo; class ImGroupUserList extends Builder { @@ -24,20 +25,43 @@ class ImGroupUserList extends Builder $groupRepo = new ImGroupRepo(); - $columns = ['id', 'type', 'name', 'avatar', 'about', 'user_count']; + $columns = ['id', 'type', 'name', 'avatar', 'about', 'owner_id', 'user_count']; $groups = $groupRepo->findByIds($ids, $columns); + $users = $this->getGroupOwners($groups->toArray()); + $baseUrl = kg_ci_base_url(); $result = []; foreach ($groups->toArray() as $group) { - $group['group'] = $baseUrl . $group['avatar']; + $group['avatar'] = $baseUrl . $group['avatar']; + $group['owner'] = $users[$group['owner_id']] ?? new \stdClass(); + unset($group['owner_id']); $result[$group['id']] = $group; } return $result; } + protected function getGroupOwners(array $groups) + { + $ids = kg_array_column($groups, 'owner_id'); + + $userRepo = new UserRepo(); + + $users = $userRepo->findByIds($ids, ['id', 'name']); + + $result = []; + + if ($users->count() > 0) { + foreach ($users->toArray() as $user) { + $result[$user['id']] = $user; + } + } + + return $result; + } + } diff --git a/app/Builders/NavTreeList.php b/app/Builders/NavTreeList.php index 950752c6..ef6bb4a3 100644 --- a/app/Builders/NavTreeList.php +++ b/app/Builders/NavTreeList.php @@ -62,7 +62,8 @@ class NavTreeList extends Builder { return NavModel::query() ->where('parent_id = :parent_id:', ['parent_id' => $navId]) - ->andWhere('deleted = 0') + ->andWhere('published = 1') + ->orderBy('priority ASC') ->execute(); } @@ -74,7 +75,8 @@ class NavTreeList extends Builder { return NavModel::query() ->where('position = :position:', ['position' => $position]) - ->andWhere('level = 1 AND deleted = 0') + ->andWhere('level = 1 AND published = 1') + ->orderBy('priority ASC') ->execute(); } diff --git a/app/Builders/OrderList.php b/app/Builders/OrderList.php index fb63c54d..18caf72b 100644 --- a/app/Builders/OrderList.php +++ b/app/Builders/OrderList.php @@ -24,7 +24,7 @@ class OrderList extends Builder $users = $this->getUsers($orders); foreach ($orders as $key => $order) { - $orders[$key]['user'] = $users[$order['user_id']] ?? new \stdClass(); + $orders[$key]['owner'] = $users[$order['owner_id']] ?? new \stdClass(); } return $orders; @@ -130,7 +130,7 @@ class OrderList extends Builder */ protected function getUsers(array $orders) { - $ids = kg_array_column($orders, 'user_id'); + $ids = kg_array_column($orders, 'owner_id'); $userRepo = new UserRepo(); diff --git a/app/Builders/RefundList.php b/app/Builders/RefundList.php index 855d29d8..c7e6aea8 100644 --- a/app/Builders/RefundList.php +++ b/app/Builders/RefundList.php @@ -24,7 +24,7 @@ class RefundList extends Builder $users = $this->getUsers($refunds); foreach ($refunds as $key => $refund) { - $refunds[$key]['user'] = $users[$refund['user_id']] ?? new \stdClass(); + $refunds[$key]['owner'] = $users[$refund['owner_id']] ?? new \stdClass(); } return $refunds; @@ -49,7 +49,7 @@ class RefundList extends Builder public function getUsers(array $refunds) { - $ids = kg_array_column($refunds, 'user_id'); + $ids = kg_array_column($refunds, 'owner_id'); $userRepo = new UserRepo(); diff --git a/app/Builders/TradeList.php b/app/Builders/TradeList.php index 8e032972..d3199abb 100644 --- a/app/Builders/TradeList.php +++ b/app/Builders/TradeList.php @@ -24,7 +24,7 @@ class TradeList extends Builder $users = $this->getUsers($trades); foreach ($trades as $key => $trade) { - $trades[$key]['user'] = $users[$trade['user_id']] ?? new \stdClass(); + $trades[$key]['owner'] = $users[$trade['owner_id']] ?? new \stdClass(); } return $trades; @@ -49,7 +49,7 @@ class TradeList extends Builder public function getUsers($trades) { - $ids = kg_array_column($trades, 'user_id'); + $ids = kg_array_column($trades, 'owner_id'); $userRepo = new UserRepo(); diff --git a/app/Http/Admin/Controllers/OrderController.php b/app/Http/Admin/Controllers/OrderController.php index ae85b4da..2fd302a1 100644 --- a/app/Http/Admin/Controllers/OrderController.php +++ b/app/Http/Admin/Controllers/OrderController.php @@ -40,8 +40,8 @@ class OrderController extends Controller $order = $orderService->getOrder($id); $trades = $orderService->getTrades($order->id); $refunds = $orderService->getRefunds($order->id); - $account = $orderService->getAccount($order->user_id); - $user = $orderService->getUser($order->user_id); + $account = $orderService->getAccount($order->owner_id); + $user = $orderService->getUser($order->owner_id); $this->view->setVar('order', $order); $this->view->setVar('trades', $trades); @@ -51,43 +51,15 @@ class OrderController extends Controller } /** - * @Post("/{id:[0-9]+}/close", name="admin.order.close") + * @Get("/{id:[0-9]+}/statuses", name="admin.order.statuses") */ - public function closeAction($id) + public function statusesAction($id) { $orderService = new OrderService(); - $orderService->closeOrder($id); + $statuses = $orderService->getStatusHistory($id); - $location = $this->request->getHTTPReferer(); - - $content = [ - 'location' => $location, - 'msg' => '关闭订单成功', - ]; - - return $this->jsonSuccess($content); - } - - /** - * @Post("/refund", name="admin.order.refund") - */ - public function refundAction() - { - $tradeId = $this->request->getPost('trade_id', 'int'); - - $orderService = new OrderService; - - $orderService->refundTrade($tradeId); - - $location = $this->request->getHTTPReferer(); - - $content = [ - 'location' => $location, - 'msg' => '订单退款成功', - ]; - - return $this->jsonSuccess($content); + $this->view->setVar('statuses', $statuses); } } diff --git a/app/Http/Admin/Controllers/RefundController.php b/app/Http/Admin/Controllers/RefundController.php index 7901929a..b0c1df05 100644 --- a/app/Http/Admin/Controllers/RefundController.php +++ b/app/Http/Admin/Controllers/RefundController.php @@ -40,8 +40,8 @@ class RefundController extends Controller $refund = $refundService->getRefund($id); $order = $refundService->getOrder($refund->order_id); $trade = $refundService->getTrade($refund->trade_id); - $account = $refundService->getAccount($trade->user_id); - $user = $refundService->getUser($trade->user_id); + $account = $refundService->getAccount($trade->owner_id); + $user = $refundService->getUser($trade->owner_id); $this->view->setVar('refund', $refund); $this->view->setVar('order', $order); @@ -50,6 +50,18 @@ class RefundController extends Controller $this->view->setVar('user', $user); } + /** + * @Get("/{id:[0-9]+}/statuses", name="admin.refund.statuses") + */ + public function statusesAction($id) + { + $refundService = new RefundService(); + + $statuses = $refundService->getStatusHistory($id); + + $this->view->setVar('statuses', $statuses); + } + /** * @Post("/{id:[0-9]+}/review", name="admin.refund.review") */ diff --git a/app/Http/Admin/Controllers/TradeController.php b/app/Http/Admin/Controllers/TradeController.php index 44ec58d8..add93e79 100644 --- a/app/Http/Admin/Controllers/TradeController.php +++ b/app/Http/Admin/Controllers/TradeController.php @@ -40,8 +40,8 @@ class TradeController extends Controller $trade = $tradeService->getTrade($id); $refunds = $tradeService->getRefunds($trade->id); $order = $tradeService->getOrder($trade->order_id); - $account = $tradeService->getAccount($trade->user_id); - $user = $tradeService->getUser($trade->user_id); + $account = $tradeService->getAccount($trade->owner_id); + $user = $tradeService->getUser($trade->owner_id); $this->view->setVar('refunds', $refunds); $this->view->setVar('trade', $trade); @@ -51,22 +51,15 @@ class TradeController extends Controller } /** - * @Post("/{id:[0-9]+}/close", name="admin.trade.close") + * @Get("/{id:[0-9]+}/statuses", name="admin.trade.statuses") */ - public function closeAction($id) + public function statusesAction($id) { $tradeService = new TradeService(); - $tradeService->closeTrade($id); + $statuses = $tradeService->getStatusHistory($id); - $location = $this->request->getHTTPReferer(); - - $content = [ - 'location' => $location, - 'msg' => '关闭交易成功', - ]; - - return $this->jsonSuccess($content); + $this->view->setVar('statuses', $statuses); } /** diff --git a/app/Http/Admin/Services/Order.php b/app/Http/Admin/Services/Order.php index 858214c1..d43adf42 100644 --- a/app/Http/Admin/Services/Order.php +++ b/app/Http/Admin/Services/Order.php @@ -64,6 +64,13 @@ class Order extends Service return $this->findOrFail($id); } + public function getStatusHistory($id) + { + $orderRepo = new OrderRepo(); + + return $orderRepo->findStatusHistory($id); + } + protected function findOrFail($id) { $validator = new OrderValidator(); diff --git a/app/Http/Admin/Services/PayTest.php b/app/Http/Admin/Services/PayTest.php index 35bac228..99824649 100644 --- a/app/Http/Admin/Services/PayTest.php +++ b/app/Http/Admin/Services/PayTest.php @@ -32,7 +32,7 @@ abstract class PayTest extends Service $order->subject = '测试 - 支付测试0.01元'; $order->amount = 0.01; - $order->user_id = $authUser['id']; + $order->owner_id = $authUser['id']; $order->item_type = OrderModel::ITEM_TEST; $order->create(); @@ -50,7 +50,7 @@ abstract class PayTest extends Service { $trade = new TradeModel(); - $trade->user_id = $order->user_id; + $trade->owner_id = $order->owner_id; $trade->order_id = $order->id; $trade->subject = $order->subject; $trade->amount = $order->amount; diff --git a/app/Http/Admin/Services/Refund.php b/app/Http/Admin/Services/Refund.php index 06541519..e0df2bc9 100644 --- a/app/Http/Admin/Services/Refund.php +++ b/app/Http/Admin/Services/Refund.php @@ -47,6 +47,13 @@ class Refund extends Service return $this->findOrFail($id); } + public function getStatusHistory($id) + { + $refundRepo = new RefundRepo(); + + return $refundRepo->findStatusHistory($id); + } + public function getTrade($tradeId) { $tradeRepo = new TradeRepo(); diff --git a/app/Http/Admin/Services/Trade.php b/app/Http/Admin/Services/Trade.php index c0279fb4..b471c9c0 100644 --- a/app/Http/Admin/Services/Trade.php +++ b/app/Http/Admin/Services/Trade.php @@ -47,6 +47,13 @@ class Trade extends Service return $tradeRepo->findById($id); } + public function getStatusHistory($id) + { + $tradeRepo = new TradeRepo(); + + return $tradeRepo->findStatusHistory($id); + } + public function getOrder($orderId) { $orderRepo = new OrderRepo(); @@ -87,7 +94,7 @@ class Trade extends Service $refund->subject = $trade->subject; $refund->amount = $trade->amount; - $refund->user_id = $trade->user_id; + $refund->owner_id = $trade->owner_id; $refund->order_id = $trade->order_id; $refund->trade_id = $trade->id; $refund->apply_note = '后台人工申请退款'; diff --git a/app/Http/Admin/Views/group/list.volt b/app/Http/Admin/Views/group/list.volt index 0f4638f1..28c448ac 100644 --- a/app/Http/Admin/Views/group/list.volt +++ b/app/Http/Admin/Views/group/list.volt @@ -1,3 +1,11 @@ +{%- macro type_info(value) %} + {% if value == 'course' %} + + {% elseif value == 'chat' %} + + {% endif %} +{%- endmacro %} + {%- macro owner_info(owner) %} {% if owner %} {{ owner.name }}({{ owner.id }}) @@ -42,7 +50,7 @@ {% for item in pager.items %} {{ item.id }} - {{ item.name }} + {{ item.name }} {{ type_info(item.type) }} {{ owner_info(item.owner) }} {{ item.user_count }} diff --git a/app/Http/Admin/Views/order/list.volt b/app/Http/Admin/Views/order/list.volt index cc892321..0c5ada41 100644 --- a/app/Http/Admin/Views/order/list.volt +++ b/app/Http/Admin/Views/order/list.volt @@ -40,8 +40,8 @@

单号:{{ item.sn }}

-

昵称:{{ item.user.name }}

-

编号:{{ item.user.id }}

+

昵称:{{ item.owner.name }}

+

编号:{{ item.owner.id }}

{{ '¥%0.2f'|format(item.amount) }} {{ order_status(item.status) }} diff --git a/app/Http/Admin/Views/order/order_info.volt b/app/Http/Admin/Views/order/order_info.volt index 666dafc0..74434b77 100644 --- a/app/Http/Admin/Views/order/order_info.volt +++ b/app/Http/Admin/Views/order/order_info.volt @@ -1,3 +1,5 @@ +{% set order_status_url = url({'for':'admin.order.statuses','id':order.id}) %} +
订单信息
@@ -11,6 +13,7 @@ 订单金额 订单类型 订单状态 + 历史状态 创建时间 @@ -18,6 +21,24 @@ {{ '¥%0.2f'|format(order.amount) }} {{ item_type(order.item_type) }} {{ order_status(order.status) }} + + + {{ date('Y-m-d H:i:s',order.create_time) }} - \ No newline at end of file + + + \ 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 42ae4f38..e98fdcff 100644 --- a/app/Http/Admin/Views/order/search.volt +++ b/app/Http/Admin/Views/order/search.volt @@ -7,7 +7,7 @@
- +
diff --git a/app/Http/Admin/Views/order/show.volt b/app/Http/Admin/Views/order/show.volt index 0511e734..5821d02d 100644 --- a/app/Http/Admin/Views/order/show.volt +++ b/app/Http/Admin/Views/order/show.volt @@ -27,8 +27,8 @@ {{ item.sn }} {{ '¥%0.2f'|format(item.amount) }} - {{ substr(item.apply_note,0,15) }} - {{ refund_status(item) }} + {{ substr(item.apply_note,0,15) }} + {{ refund_status(item.status) }} {{ date('Y-m-d H:i:s',item.create_time) }} 详情 diff --git a/app/Http/Admin/Views/order/statuses.volt b/app/Http/Admin/Views/order/statuses.volt new file mode 100644 index 00000000..f3a4f620 --- /dev/null +++ b/app/Http/Admin/Views/order/statuses.volt @@ -0,0 +1,14 @@ +{{ partial('order/macro') }} + + + + + + + {% for item in statuses %} + + + + + {% endfor %} +
状态时间
{{ order_status(item.status) }}{{ date('Y-m-d H:i:s',item.create_time) }}
\ No newline at end of file diff --git a/app/Http/Admin/Views/refund/list.volt b/app/Http/Admin/Views/refund/list.volt index 27abc8ed..ca0e6e69 100644 --- a/app/Http/Admin/Views/refund/list.volt +++ b/app/Http/Admin/Views/refund/list.volt @@ -40,8 +40,8 @@

单号:{{ item.order.sn }}

-

昵称:{{ item.user.name }}

-

编号:{{ item.user.id }}

+

昵称:{{ item.owner.name }}

+

编号:{{ item.owner.id }}

{{ '¥%0.2f'|format(item.amount) }} {{ refund_status(item.status) }} diff --git a/app/Http/Admin/Views/refund/macro.volt b/app/Http/Admin/Views/refund/macro.volt index 229c1a40..2b593d36 100644 --- a/app/Http/Admin/Views/refund/macro.volt +++ b/app/Http/Admin/Views/refund/macro.volt @@ -12,4 +12,22 @@ {% elseif value == 'failed' %} 已失败 {% endif %} +{%- endmacro %} + +{%- macro refund_status_history(items) %} + {% for item in items %} + {% if item.status == 'pending' %} +

创建时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% elseif item.status == 'canceled' %} +

取消时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% elseif item.status == 'approved' %} +

过审时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% elseif item.status == 'refused' %} +

拒绝时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% elseif item.status == 'finished' %} +

完成时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% elseif item.status == 'failed' %} +

失败时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% endif %} + {% endfor %} {%- endmacro %} \ No newline at end of file diff --git a/app/Http/Admin/Views/refund/search.volt b/app/Http/Admin/Views/refund/search.volt index 5d81b273..51946a9d 100644 --- a/app/Http/Admin/Views/refund/search.volt +++ b/app/Http/Admin/Views/refund/search.volt @@ -14,7 +14,7 @@
- +
diff --git a/app/Http/Admin/Views/refund/show.volt b/app/Http/Admin/Views/refund/show.volt index 5a0a0c61..b1c6d3d4 100644 --- a/app/Http/Admin/Views/refund/show.volt +++ b/app/Http/Admin/Views/refund/show.volt @@ -2,6 +2,8 @@ {{ partial('trade/macro') }} {{ partial('refund/macro') }} +{% set refund_status_url = url({'for':'admin.refund.statuses','id':refund.id}) %} +
退款信息
@@ -12,6 +14,7 @@ 退款金额 退款备注 退款状态 + 历史状态 创建时间 @@ -26,6 +29,9 @@ {% endif %} {{ refund_status(refund.status) }} + + + {{ date('Y-m-d H:i:s',refund.create_time) }} @@ -74,4 +80,19 @@
-{{ partial('order/user_info') }} \ No newline at end of file +{{ partial('order/user_info') }} + + \ No newline at end of file diff --git a/app/Http/Admin/Views/refund/statuses.volt b/app/Http/Admin/Views/refund/statuses.volt new file mode 100644 index 00000000..7f65791f --- /dev/null +++ b/app/Http/Admin/Views/refund/statuses.volt @@ -0,0 +1,14 @@ +{{ partial('refund/macro') }} + + + + + + + {% for item in statuses %} + + + + + {% endfor %} +
状态时间
{{ refund_status(item.status) }}{{ date('Y-m-d H:i:s',item.create_time) }}
\ No newline at end of file diff --git a/app/Http/Admin/Views/setting/pay_alipay_test.volt b/app/Http/Admin/Views/setting/pay_alipay_test.volt index 4e5f5c64..e9928f7b 100644 --- a/app/Http/Admin/Views/setting/pay_alipay_test.volt +++ b/app/Http/Admin/Views/setting/pay_alipay_test.volt @@ -46,7 +46,7 @@ clearInterval(interval); } }, - error: function (xhr) { + error: function () { $('#error-tips').removeClass('layui-hide'); $('#qrcode').addClass('layui-hide'); clearInterval(interval); diff --git a/app/Http/Admin/Views/setting/pay_wxpay_test.volt b/app/Http/Admin/Views/setting/pay_wxpay_test.volt index 8ba62ff0..50a4a8ac 100644 --- a/app/Http/Admin/Views/setting/pay_wxpay_test.volt +++ b/app/Http/Admin/Views/setting/pay_wxpay_test.volt @@ -46,7 +46,7 @@ clearInterval(interval); } }, - error: function (xhr) { + error: function () { $('#error-tips').removeClass('layui-hide'); $('#qrcode').addClass('layui-hide'); clearInterval(interval); diff --git a/app/Http/Admin/Views/trade/list.volt b/app/Http/Admin/Views/trade/list.volt index cc8205ec..f57e4f80 100644 --- a/app/Http/Admin/Views/trade/list.volt +++ b/app/Http/Admin/Views/trade/list.volt @@ -42,8 +42,8 @@

单号:{{ item.order.sn }}

-

昵称:{{ item.user.name }}

-

编号:{{ item.user.id }}

+

昵称:{{ item.owner.name }}

+

编号:{{ item.owner.id }}

{{ '¥%0.2f'|format(item.amount) }} {{ channel_type(item.channel) }} diff --git a/app/Http/Admin/Views/trade/macro.volt b/app/Http/Admin/Views/trade/macro.volt index 65b269f5..57ff020a 100644 --- a/app/Http/Admin/Views/trade/macro.volt +++ b/app/Http/Admin/Views/trade/macro.volt @@ -1,3 +1,11 @@ +{%- macro channel_type(value) %} + {% if value == 'alipay' %} + 支付宝 + {% elseif value == 'wxpay' %} + 微信 + {% endif %} +{%- endmacro %} + {%- macro trade_status(value) %} {% if value == 'pending' %} 待支付 @@ -10,10 +18,16 @@ {% endif %} {%- endmacro %} -{%- macro channel_type(value) %} - {% if value == 'alipay' %} - 支付宝 - {% elseif value == 'wxpay' %} - 微信 - {% endif %} +{%- macro trade_status_history(items) %} + {% for item in items %} + {% if item.status == 'pending' %} +

创建时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% elseif item.status == 'finished' %} +

完成时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% elseif item.status == 'closed' %} +

关闭时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% elseif item.status == 'refunded' %} +

退款时间:{{ date('Y-m-d H:i:s',item.create_time) }}

+ {% endif %} + {% endfor %} {%- endmacro %} \ No newline at end of file diff --git a/app/Http/Admin/Views/trade/search.volt b/app/Http/Admin/Views/trade/search.volt index 70f38476..7c845e6e 100644 --- a/app/Http/Admin/Views/trade/search.volt +++ b/app/Http/Admin/Views/trade/search.volt @@ -14,7 +14,7 @@
- +
diff --git a/app/Http/Admin/Views/trade/show.volt b/app/Http/Admin/Views/trade/show.volt index c0ad90ba..02aa5ee2 100644 --- a/app/Http/Admin/Views/trade/show.volt +++ b/app/Http/Admin/Views/trade/show.volt @@ -30,7 +30,7 @@ {{ item.sn }} {{ '¥%0.2f'|format(item.amount) }} - {{ substr(item.apply_note,0,15) }} + {{ substr(item.apply_note,0,15) }} {{ refund_status(item) }} {{ date('Y-m-d H:i:s',item.create_time) }} 详情 diff --git a/app/Http/Admin/Views/trade/statuses.volt b/app/Http/Admin/Views/trade/statuses.volt new file mode 100644 index 00000000..541cc7fb --- /dev/null +++ b/app/Http/Admin/Views/trade/statuses.volt @@ -0,0 +1,14 @@ +{{ partial('trade/macro') }} + + + + + + + {% for item in statuses %} + + + + + {% endfor %} +
状态时间
{{ trade_status(item.status) }}{{ date('Y-m-d H:i:s',item.create_time) }}
\ No newline at end of file diff --git a/app/Http/Admin/Views/trade/trade_info.volt b/app/Http/Admin/Views/trade/trade_info.volt index 560c189e..c7d27a6d 100644 --- a/app/Http/Admin/Views/trade/trade_info.volt +++ b/app/Http/Admin/Views/trade/trade_info.volt @@ -1,3 +1,5 @@ +{% set trade_status_url = url({'for':'admin.trade.statuses','id':trade.id}) %} +
交易信息
@@ -8,6 +10,7 @@ 交易金额 交易平台 交易状态 + 历史状态 创建时间 @@ -15,6 +18,24 @@ {{ '¥%0.2f'|format(trade.amount) }} {{ channel_type(trade.channel) }} {{ trade_status(trade.status) }} + + + {{ date('Y-m-d H:i:s',trade.create_time) }} - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/Http/Web/Controllers/ImController.php b/app/Http/Web/Controllers/ImController.php index c48ea999..5f90e478 100644 --- a/app/Http/Web/Controllers/ImController.php +++ b/app/Http/Web/Controllers/ImController.php @@ -337,4 +337,32 @@ class ImController extends LayerController return $this->jsonSuccess(); } + /** + * @Post("/friend/{id:[0-9]+}/quit", name="web.im.quit_friend") + */ + public function quitFriendAction($id) + { + $service = new ImService(); + + $service->quitFriend($id); + + $content = ['msg' => '解除好友成功']; + + return $this->jsonSuccess($content); + } + + /** + * @Post("/group/{id:[0-9]+}/quit", name="web.im.quit_group") + */ + public function quitGroupAction($id) + { + $service = new ImService(); + + $service->quitGroup($id); + + $content = ['msg' => '退出群组成功']; + + return $this->jsonSuccess($content); + } + } diff --git a/app/Http/Web/Controllers/ImGroupController.php b/app/Http/Web/Controllers/ImGroupController.php new file mode 100644 index 00000000..0d9dd7e8 --- /dev/null +++ b/app/Http/Web/Controllers/ImGroupController.php @@ -0,0 +1,59 @@ +handle($this->authUser->id); + $pager = $service->handle(); $pager->items = kg_array_object($pager->items); @@ -169,9 +167,9 @@ class MyController extends Controller */ public function groupsAction() { - $service = new UserGroupListService(); + $service = new MyGroupListService(); - $pager = $service->handle($this->authUser->id); + $pager = $service->handle(); $pager->items = kg_array_object($pager->items); @@ -192,32 +190,4 @@ class MyController extends Controller return $this->jsonSuccess($content); } - /** - * @Post("/friend/{id:[0-9]+}/delete", name="web.my.delete_friend") - */ - public function deleteFriendAction($id) - { - $service = new MyFriendDeleteService(); - - $service->handle($id); - - $content = ['msg' => '删除好友成功']; - - return $this->jsonSuccess($content); - } - - /** - * @Post("/group/{id:[0-9]+}/delete", name="web.my.delete_group") - */ - public function deleteGroupAction($id) - { - $service = new MyGroupDeleteService(); - - $service->handle($id); - - $content = ['msg' => '退出群组成功']; - - return $this->jsonSuccess($content); - } - } diff --git a/app/Http/Web/Services/ImFriendTrait.php b/app/Http/Web/Services/ImFriendTrait.php index 529257eb..0db29816 100644 --- a/app/Http/Web/Services/ImFriendTrait.php +++ b/app/Http/Web/Services/ImFriendTrait.php @@ -129,6 +129,19 @@ Trait ImFriendTrait $this->handleRefuseFriendNotice($user, $sender); } + public function quitFriend($id) + { + $user = $this->getLoginUser(); + + $validator = new ImFriendUserValidator(); + + $friend = $validator->checkFriend($id); + + $friendUser = $validator->checkFriendUser($user->id, $friend->id); + + $friendUser->delete(); + } + protected function handleApplyFriendNotice(ImUserModel $sender, ImUserModel $receiver, ImFriendGroupModel $group, $remark) { $userRepo = new ImUserRepo(); diff --git a/app/Http/Web/Services/ImGroup.php b/app/Http/Web/Services/ImGroup.php new file mode 100644 index 00000000..18afa1ac --- /dev/null +++ b/app/Http/Web/Services/ImGroup.php @@ -0,0 +1,28 @@ +handleRefuseGroupNotice($user, $sender); } + public function quitGroup($id) + { + $loginUser = $this->getLoginUser(); + + $user = $this->getImUser($loginUser->id); + + $validator = new ImGroupUserValidator(); + + $group = $validator->checkGroup($id); + + $groupUser = $validator->checkGroupUser($group->id, $user->id); + + $groupUser->delete(); + + $this->decrGroupUserCount($group); + + $this->decrUserGroupCount($user); + } + protected function handleApplyGroupNotice(ImUserModel $sender, ImGroupModel $group, $remark) { $userRepo = new ImUserRepo(); diff --git a/app/Http/Web/Views/my/friends.volt b/app/Http/Web/Views/my/friends.volt index a032969c..c302c498 100644 --- a/app/Http/Web/Views/my/friends.volt +++ b/app/Http/Web/Views/my/friends.volt @@ -38,9 +38,9 @@ {% for item in pager.items %} {% set user_url = url({'for':'web.user.show','id':item.id}) %} - {% set delete_url = url({'for':'web.my.delete_friend','id':item.id}) %} + {% set delete_url = url({'for':'web.im.quit_friend','id':item.id}) %} - {{ item.name }} + {{ item.name }} {{ gender_info(item.gender) }} {{ item.location }} {{ item.active_time|time_ago }} diff --git a/app/Http/Web/Views/my/groups.volt b/app/Http/Web/Views/my/groups.volt index b183b2a7..6e221af8 100644 --- a/app/Http/Web/Views/my/groups.volt +++ b/app/Http/Web/Views/my/groups.volt @@ -18,6 +18,7 @@ {% if pager.total_pages > 0 %} + @@ -25,18 +26,26 @@ - + + {% for item in pager.items %} - {% set delete_url = url({'for':'web.my.delete_group','id':item.id}) %} + {% set owner_url = url({'for':'web.user.show','id':item.owner.id}) %} + {% set manage_url = url({'for':'web.im_group.manage','id':item.id}) %} + {% set delete_url = url({'for':'web.im.quit_group','id':item.id}) %} - + + {% endfor %} diff --git a/app/Http/Web/Views/order/pay.volt b/app/Http/Web/Views/order/pay.volt index e2775dfe..0392f098 100644 --- a/app/Http/Web/Views/order/pay.volt +++ b/app/Http/Web/Views/order/pay.volt @@ -24,8 +24,8 @@ -
-
+
+
diff --git a/app/Http/Web/Views/partials/header.volt b/app/Http/Web/Views/partials/header.volt index e2aa1762..02f6b4b1 100644 --- a/app/Http/Web/Views/partials/header.volt +++ b/app/Http/Web/Views/partials/header.volt @@ -3,20 +3,16 @@
diff --git a/app/Models/ImGroup.php b/app/Models/ImGroup.php index 289e8a72..191328bf 100644 --- a/app/Models/ImGroup.php +++ b/app/Models/ImGroup.php @@ -133,6 +133,10 @@ class ImGroup extends Model if ($this->deleted == 1) { $this->published = 0; } + + if (Text::startsWith($this->avatar, 'http')) { + $this->avatar = self::getAvatarPath($this->avatar); + } } public function afterFetch() diff --git a/app/Models/Order.php b/app/Models/Order.php index 01eb8e46..680f9a5c 100644 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -65,7 +65,7 @@ class Order extends Model * * @var int */ - public $user_id; + public $owner_id; /** * 条目编号 diff --git a/app/Models/Refund.php b/app/Models/Refund.php index 595b254e..736ab10c 100644 --- a/app/Models/Refund.php +++ b/app/Models/Refund.php @@ -29,7 +29,7 @@ class Refund extends Model * * @var string */ - public $user_id; + public $owner_id; /** * 订单编号 diff --git a/app/Models/Trade.php b/app/Models/Trade.php index cd5e345b..357e3f9b 100644 --- a/app/Models/Trade.php +++ b/app/Models/Trade.php @@ -33,7 +33,7 @@ class Trade extends Model * * @var int */ - public $user_id; + public $owner_id; /** * 订单编号 diff --git a/app/Repos/Order.php b/app/Repos/Order.php index 20436be4..5c6972c2 100644 --- a/app/Repos/Order.php +++ b/app/Repos/Order.php @@ -30,8 +30,8 @@ class Order extends Repository $builder->andWhere('sn = :sn:', ['sn' => $where['sn']]); } - if (!empty($where['user_id'])) { - $builder->andWhere('user_id = :user_id:', ['user_id' => $where['user_id']]); + if (!empty($where['owner_id'])) { + $builder->andWhere('owner_id = :owner_id:', ['owner_id' => $where['owner_id']]); } if (!empty($where['item_id'])) { @@ -105,7 +105,7 @@ class Order extends Repository $status = OrderModel::STATUS_FINISHED; return OrderModel::findFirst([ - 'conditions' => 'user_id = ?1 AND item_id = ?2 AND item_type = ?3 AND status = ?4', + 'conditions' => 'owner_id = ?1 AND item_id = ?2 AND item_type = ?3 AND status = ?4', 'bind' => [1 => $userId, 2 => $itemId, 3 => $itemType, 4 => $status], 'order' => 'id DESC', ]); @@ -122,7 +122,7 @@ class Order extends Repository $status = OrderModel::STATUS_PENDING; return OrderModel::findFirst([ - 'conditions' => 'user_id = ?1 AND item_id = ?2 AND item_type = ?3 AND status= ?4', + 'conditions' => 'owner_id = ?1 AND item_id = ?2 AND item_type = ?3 AND status= ?4', 'bind' => [1 => $userId, 2 => $itemId, 3 => $itemType, 4 => $status], 'order' => 'id DESC', ]); diff --git a/app/Repos/Refund.php b/app/Repos/Refund.php index f33e325c..83d9f4e5 100644 --- a/app/Repos/Refund.php +++ b/app/Repos/Refund.php @@ -21,8 +21,8 @@ class Refund extends Repository $builder->where('1 = 1'); - if (!empty($where['user_id'])) { - $builder->andWhere('user_id = :user_id:', ['user_id' => $where['user_id']]); + if (!empty($where['owner_id'])) { + $builder->andWhere('owner_id = :owner_id:', ['owner_id' => $where['owner_id']]); } if (!empty($where['order_id'])) { diff --git a/app/Repos/Trade.php b/app/Repos/Trade.php index 082c5541..3d6e4755 100644 --- a/app/Repos/Trade.php +++ b/app/Repos/Trade.php @@ -5,6 +5,7 @@ namespace App\Repos; use App\Library\Paginator\Adapter\QueryBuilder as PagerQueryBuilder; use App\Models\Refund as RefundModel; use App\Models\Trade as TradeModel; +use App\Models\TradeStatus as TradeStatusModel; use Phalcon\Mvc\Model; use Phalcon\Mvc\Model\Resultset; use Phalcon\Mvc\Model\ResultsetInterface; @@ -28,8 +29,8 @@ class Trade extends Repository $builder->andWhere('sn = :sn:', ['sn' => $where['sn']]); } - if (!empty($where['user_id'])) { - $builder->andWhere('user_id = :user_id:', ['user_id' => $where['user_id']]); + if (!empty($where['owner_id'])) { + $builder->andWhere('owner_id = :owner_id:', ['owner_id' => $where['owner_id']]); } if (!empty($where['order_id'])) { @@ -116,6 +117,17 @@ class Trade extends Repository ->execute(); } + /** + * @param int $tradeId + * @return ResultsetInterface|Resultset|TradeStatusModel[] + */ + public function findStatusHistory($tradeId) + { + return TradeStatusModel::query() + ->where('trade_id = :trade_id:', ['trade_id' => $tradeId]) + ->execute(); + } + /** * @param int $tradeId * @return RefundModel|Model|bool diff --git a/app/Services/Frontend/My/ImFriendDelete.php b/app/Services/Frontend/Im/ImFriendDelete.php similarity index 92% rename from app/Services/Frontend/My/ImFriendDelete.php rename to app/Services/Frontend/Im/ImFriendDelete.php index 64af1d52..6ad4ecc3 100644 --- a/app/Services/Frontend/My/ImFriendDelete.php +++ b/app/Services/Frontend/Im/ImFriendDelete.php @@ -1,6 +1,6 @@ delete(); - $this->updateGroupUserCount($group); + $this->decrGroupUserCount($group); } - protected function updateGroupUserCount(ImGroupModel $group) + protected function decrGroupUserCount(ImGroupModel $group) { - $repo = new ImGroupRepo(); + if ($group->user_count > 0) { + $group->user_count -= 1; + $group->update(); + } + } - $userCount = $repo->countUsers($group->id); - - $group->user_count = $userCount; - - $group->update(); + protected function decrUserGroupCount(ImUserModel $user) + { + if ($user->group_count > 0) { + $user->group_count -= 1; + $user->update(); + } } } diff --git a/app/Services/Frontend/Im/ImGroupUserDelete.php b/app/Services/Frontend/Im/ImGroupUserDelete.php new file mode 100644 index 00000000..9087534d --- /dev/null +++ b/app/Services/Frontend/Im/ImGroupUserDelete.php @@ -0,0 +1,52 @@ +request->getPost(); + + $loginUser = $this->getLoginUser(); + + $validator = new ImGroupUserValidator(); + + $group = $validator->checkGroup($post['group_id']); + + $user = $validator->checkUser($post['user_id']); + + $validator->checkOwner($group->owner_id, $loginUser->id); + + $groupUser = $validator->checkGroupUser($group->id, $user->id); + + $groupUser->delete(); + + $this->decrGroupUserCount($group); + + $this->decrUserGroupCount($user); + } + + protected function decrGroupUserCount(ImGroupModel $group) + { + if ($group->user_count > 0) { + $group->user_count -= 1; + $group->update(); + } + } + + protected function decrUserGroupCount(ImUserModel $user) + { + if ($user->group_count > 0) { + $user->group_count -= 1; + $user->update(); + } + } + +} diff --git a/app/Services/Frontend/My/FriendList.php b/app/Services/Frontend/My/FriendList.php new file mode 100644 index 00000000..88a80857 --- /dev/null +++ b/app/Services/Frontend/My/FriendList.php @@ -0,0 +1,20 @@ +getLoginUser(); + + $service = new UserFriendListService(); + + return $service->handle($user->id); + } + +} diff --git a/app/Services/Frontend/My/GroupList.php b/app/Services/Frontend/My/GroupList.php new file mode 100644 index 00000000..444a73af --- /dev/null +++ b/app/Services/Frontend/My/GroupList.php @@ -0,0 +1,20 @@ +getLoginUser(); + + $service = new UserGroupListService(); + + return $service->handle($user->id); + } + +} diff --git a/app/Services/Frontend/Order/OrderCancel.php b/app/Services/Frontend/Order/OrderCancel.php index 0867d40d..0e6ed754 100644 --- a/app/Services/Frontend/Order/OrderCancel.php +++ b/app/Services/Frontend/Order/OrderCancel.php @@ -20,7 +20,7 @@ class OrderCancel extends FrontendService $validator = new OrderValidator(); - $validator->checkOwner($user->id, $order->user_id); + $validator->checkOwner($user->id, $order->owner_id); $validator->checkIfAllowCancel($order); diff --git a/app/Services/Frontend/Order/OrderCreate.php b/app/Services/Frontend/Order/OrderCreate.php index 491eedb9..52346338 100644 --- a/app/Services/Frontend/Order/OrderCreate.php +++ b/app/Services/Frontend/Order/OrderCreate.php @@ -87,7 +87,7 @@ class OrderCreate extends FrontendService $order = new OrderModel(); - $order->user_id = $user->id; + $order->owner_id = $user->id; $order->item_id = $course->id; $order->item_type = OrderModel::ITEM_COURSE; $order->item_info = $itemInfo; @@ -122,7 +122,7 @@ class OrderCreate extends FrontendService $order = new OrderModel(); - $order->user_id = $user->id; + $order->owner_id = $user->id; $order->item_id = $package->id; $order->item_type = OrderModel::ITEM_PACKAGE; $order->item_info = $itemInfo; @@ -151,7 +151,7 @@ class OrderCreate extends FrontendService $order = new OrderModel(); - $order->user_id = $user->id; + $order->owner_id = $user->id; $order->item_id = $vip->id; $order->item_type = OrderModel::ITEM_VIP; $order->item_info = $itemInfo; @@ -176,7 +176,7 @@ class OrderCreate extends FrontendService $order = new OrderModel(); - $order->user_id = $user->id; + $order->owner_id = $user->id; $order->item_id = "{$course->id}-{$reward->id}"; $order->item_type = OrderModel::ITEM_REWARD; $order->item_info = $itemInfo; diff --git a/app/Services/Frontend/Refund/RefundCancel.php b/app/Services/Frontend/Refund/RefundCancel.php index 956a11ae..b49016e7 100644 --- a/app/Services/Frontend/Refund/RefundCancel.php +++ b/app/Services/Frontend/Refund/RefundCancel.php @@ -22,7 +22,7 @@ class RefundCancel extends FrontendService $validator = new RefundValidator(); - $validator->checkOwner($user->id, $refund->user_id); + $validator->checkOwner($user->id, $refund->owner_id); $refund->status = RefundModel::STATUS_CANCELED; diff --git a/app/Services/Frontend/Refund/RefundCreate.php b/app/Services/Frontend/Refund/RefundCreate.php index 7647cf86..a699a90d 100644 --- a/app/Services/Frontend/Refund/RefundCreate.php +++ b/app/Services/Frontend/Refund/RefundCreate.php @@ -31,7 +31,7 @@ class RefundCreate extends FrontendService $validator = new OrderValidator(); - $validator->checkOwner($user->id, $order->user_id); + $validator->checkOwner($user->id, $order->owner_id); $validator->checkIfAllowRefund($order); @@ -54,7 +54,7 @@ class RefundCreate extends FrontendService $refund->apply_note = $applyNote; $refund->order_id = $order->id; $refund->trade_id = $trade->id; - $refund->user_id = $user->id; + $refund->owner_id = $user->id; $refund->status = RefundModel::STATUS_APPROVED; $refund->review_note = '退款周期内无条件审批'; diff --git a/app/Services/Frontend/Trade/TradeCancel.php b/app/Services/Frontend/Trade/TradeCancel.php deleted file mode 100644 index fca35f5f..00000000 --- a/app/Services/Frontend/Trade/TradeCancel.php +++ /dev/null @@ -1,18 +0,0 @@ -amount = $order->amount; $trade->channel = $channel; $trade->order_id = $order->id; - $trade->user_id = $user->id; + $trade->owner_id = $user->id; $trade->create(); diff --git a/app/Validators/ImGroupUser.php b/app/Validators/ImGroupUser.php index 2df64ebe..24d67079 100644 --- a/app/Validators/ImGroupUser.php +++ b/app/Validators/ImGroupUser.php @@ -17,7 +17,7 @@ class ImGroupUser extends Validator public function checkUser($id) { - $validator = new User(); + $validator = new ImUser(); return $validator->checkUser($id); } diff --git a/public/static/admin/css/common.css b/public/static/admin/css/common.css index f2f037b2..9626e547 100644 --- a/public/static/admin/css/common.css +++ b/public/static/admin/css/common.css @@ -179,3 +179,12 @@ img.kg-qrcode { padding-top: 0; border-top: none; } + +.kg-status-history { + line-height: 30px; +} + +.kg-status-history .time { + margin-left: 10px; + color: #666; +} diff --git a/public/static/crossdomain.xml b/public/static/crossdomain.xml deleted file mode 100644 index 8218e632..00000000 --- a/public/static/crossdomain.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/public/static/web/js/order.pay.js b/public/static/web/js/order.pay.js index 0f21193c..529fbe7f 100644 --- a/public/static/web/js/order.pay.js +++ b/public/static/web/js/order.pay.js @@ -9,24 +9,23 @@ layui.use(['jquery', 'layer'], function () { var statusUrl = $('input[name=trade_status_url]').val(); var forwardUrl = $('input[name=forward_url]').val(); var orderSn = $('input[name=order_sn]').val(); - var $qrBox = $('#' + channel + '-qr-box'); + var $qrBlock = $('#' + channel + '-qrcode'); var $snInput = $('input[name=' + channel + '_trade_sn]'); var qrTitle = channel === 'alipay' ? '支付宝扫码支付' : '微信扫码支付'; - var qrHtml = $qrBox.html(); + var qrHtml = $qrBlock.html(); if (qrHtml.length === 0) { var postData = {order_sn: orderSn, channel: channel}; $.post(createUrl, postData, function (res) { qrHtml = '
支付二维码
'; showQrLayer(qrTitle, qrHtml); - $qrBox.html(qrHtml); + $qrBlock.html(qrHtml); $snInput.html(res.sn); var interval = setInterval(function () { var queryData = {sn: res.sn}; $.get(statusUrl, queryData, function (res) { if (res.status === 'finished') { clearInterval(interval); - var html = '
支付成功
'; - $('#pay-layer').html(html); + $('#pay-layer').html('
支付成功
'); setTimeout(function () { window.location.href = forwardUrl; }, 5000);
名称成员数群主成员 操作
{{ item.name }} {{ type_info(item.type) }}{{ item.name }} {{ type_info(item.type) }}{{ item.owner.name }} {{ item.user_count }} - + {% if auth_user.id == item.owner.id %} + + {% else %} + + {% endif %}