Browse Source

我的订单角标

master
weigang 5 years ago
parent
commit
26bf5e86e1
  1. 11
      app/Service/v3/Implementations/OrderListService.php
  2. 15
      app/Service/v3/Implementations/OrderOnlineService.php

11
app/Service/v3/Implementations/OrderListService.php

@ -4,11 +4,14 @@ namespace App\Service\v3\Implementations;
use App\Constants\v3\OrderState;
use App\Constants\v3\OrderType;
use App\Constants\v3\SsdbKeys;
use App\Model\v3\OrderMain;
use App\Model\v3\Order;
use App\Model\v3\ShoppingCart;
use App\Service\v3\Interfaces\OrderListServiceInterface;
use App\TaskWorker\SSDBTask;
use Hyperf\Paginator\Paginator;
use Hyperf\Utils\ApplicationContext;
class OrderListService implements OrderListServiceInterface
{
@ -30,23 +33,31 @@ class OrderListService implements OrderListServiceInterface
public function onlineByUser($userId, $tab, $page=1, $pagesize=10)
{
// 记录badge
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class);
$builder = OrderMain::query()
->with(['orderGoods', 'market'])
->where(['user_id' => $userId, 'type' => OrderType::ONLINE]);
switch ($tab) {
case 'all':
$ssdb->exec('hclear', SsdbKeys::USER_ORDER_BADGE.$userId);
break;
case 'completed':
$ssdb->exec('hset', SsdbKeys::USER_ORDER_BADGE.$userId, 'completed', 0);
$builder->whereIn('state', OrderState::FINISH);
break;
case 'unpaid':
$ssdb->exec('hset', SsdbKeys::USER_ORDER_BADGE.$userId, 'unpaid', 0);
$builder->where(['state' => OrderState::UNPAID]);
break;
case 'receiving':
$builder->whereIn('state', OrderState::RECEIVING);
$ssdb->exec('hset', SsdbKeys::USER_ORDER_BADGE.$userId, 'receiving', 0);
break;
case 'refund':
$builder->whereIn('state', OrderState::REFUND);
$ssdb->exec('hset', SsdbKeys::USER_ORDER_BADGE.$userId, 'refund', 0);
break;
}

15
app/Service/v3/Implementations/OrderOnlineService.php

@ -332,6 +332,10 @@ class OrderOnlineService implements OrderOnlineServiceInterface
// 清除购物车
$this->shopCartUpdateService->doClear($userId, $marketId);
// 记录用户中心的badge
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class);
$ssdb->exec('hincr', SsdbKeys::USER_ORDER_BADGE.$userId, 'unpaid', 1);
// 支付
return $this->paymentService->do($globalOrderId, $totalAmount, $userId, config('wechat.notify_url.online'));
} catch (Exception $e) {
@ -488,6 +492,10 @@ class OrderOnlineService implements OrderOnlineServiceInterface
}
Db::commit();
// 记录用户中心的badge
$ssdb->exec('hincr', SsdbKeys::USER_ORDER_BADGE.$orderMain->user_id, 'receiving', 1);
return true;
} catch (Exception $e) {
@ -537,6 +545,10 @@ class OrderOnlineService implements OrderOnlineServiceInterface
if (!$orderMain->save()) {
throw new ErrorCodeException(ErrorCode::ORDER_APPLY_REFUND_FAIL);
}
// 记录badge
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class);
$ssdb->exec('hincr', SsdbKeys::USER_ORDER_BADGE.$orderMain->user_id, 'refund', 1);
return true;
}
@ -550,6 +562,9 @@ class OrderOnlineService implements OrderOnlineServiceInterface
if (!$orderMain->save()) {
throw new ErrorCodeException(ErrorCode::ORDER_COMPLETE_FAIL);
}
// 记录badge
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class);
$ssdb->exec('hincr', SsdbKeys::USER_ORDER_BADGE.$orderMain->user_id, 'completed', 1);
return true;
}
}
Loading…
Cancel
Save