From 99b4420459110931d145436e9c9e0f264d0f0b3a Mon Sep 17 00:00:00 2001 From: ztt <835303992@qq.com> Date: Mon, 26 Feb 2024 11:04:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E7=8A=B6=E6=80=81=E5=92=8C=E5=BA=97=E9=95=BF=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/Goods.php | 7 +++++++ app/api/model/Cart.php | 8 ++++++++ app/api/model/Order.php | 5 ++++- app/store/model/Order.php | 20 +++++++++++++------- app/store/service/order/Delivery.php | 9 +++++++++ 5 files changed, 41 insertions(+), 8 deletions(-) diff --git a/app/api/controller/Goods.php b/app/api/controller/Goods.php index a10108d6..a0165ccc 100644 --- a/app/api/controller/Goods.php +++ b/app/api/controller/Goods.php @@ -16,6 +16,7 @@ use app\api\model\{Goods as GoodsModel}; use app\api\service\{Goods as GoodsService, User as UserService}; use app\common\service\qrcode\Goods as GoodsPoster; use cores\exception\BaseException; +use think\facade\Cache; use think\response\Json; /** @@ -187,7 +188,13 @@ class Goods extends Controller public function recommended(): Json { $service = new GoodsService; + $cache_key = "goods_recommended".$this->storeId; + if(Cache::has($cache_key)) { + $goodsList = Cache::get($cache_key); + return $this->renderSuccess(compact('goodsList')); + } $goodsList = $service->recommended(); + Cache::set($cache_key, $goodsList, 60*60); return $this->renderSuccess(compact('goodsList')); } diff --git a/app/api/model/Cart.php b/app/api/model/Cart.php index 88ac8e2d..a9a95e98 100644 --- a/app/api/model/Cart.php +++ b/app/api/model/Cart.php @@ -178,4 +178,12 @@ class Cart extends CartModel ->where('is_delete', '=', 0) ->sum('goods_num'); } + + public static function getCount() { + if (!UserService::isLogin()) return 0; + $userId = UserService::getCurrentLoginUserId(); + return self::where('user_id', '=', $userId) + ->where('is_delete', '=', 0) + ->sum('goods_num'); + } } diff --git a/app/api/model/Order.php b/app/api/model/Order.php index fb491480..c50d8081 100644 --- a/app/api/model/Order.php +++ b/app/api/model/Order.php @@ -497,6 +497,7 @@ class Order extends OrderModel */ public function getTodoCounts($user_type): array { + if ($user_type == OrderType::ORDER) {//商城 return [ 'payment_number' => $this->getCount('payment'), // 待付款的订单 @@ -580,11 +581,13 @@ class Order extends OrderModel */ public function getActionCounts(): array { + $userId = UserService::getCurrentLoginUserId(); + return [ 'reservation_number' => RecoveryOrder::getCount(), // 上门预约待服务订单总数 'view_number' => GoodsBrowseLog::getCount(), // 浏览记录 'send_number' => TransferRecord::getCount(), // 发货数量 - 'integral_number' => User::get(UserService::getCurrentLoginUserId())->points, // 积分数量 + 'integral_number' => User::get($userId)->points, // 积分数量 'coupon_number' => UserCoupon::getCount(), // 优惠券 'goods_collect_number' => 0, // 商品采集数量 'cart_number' => Cart::getCount(), // 购物车数量 diff --git a/app/store/model/Order.php b/app/store/model/Order.php index e15a481d..284583b5 100644 --- a/app/store/model/Order.php +++ b/app/store/model/Order.php @@ -68,11 +68,14 @@ class Order extends OrderModel } $filterOr = []; if (!empty($param['searchValue']) && $param['searchType'] == 'all') { +// $filterOr = [ +// ['order.order_no', 'like', "%{$param['searchValue']}%"], +// ['user.nick_name', 'like', "%{$param['searchValue']}%"], +// ['address.name', 'like', "%{$param['searchValue']}%"], +// ['address.phone', 'like', "%{$param['searchValue']}%"], +// ]; $filterOr = [ - ['order.order_no', 'like', "%{$param['searchValue']}%"], - ['user.nick_name', 'like', "%{$param['searchValue']}%"], - ['address.name', 'like', "%{$param['searchValue']}%"], - ['address.phone', 'like', "%{$param['searchValue']}%"], + ['order.order_no|user.nick_name|address.name|address.phone', 'like', "%{$param['searchValue']}%"] ]; } @@ -88,7 +91,8 @@ class Order extends OrderModel ->where($filter) ->where('order.is_delete', '=', 0); if (!empty($filterOr)) { - $query = $query->whereOr($filterOr); +// $query = $query->whereOr($filterOr); + $query = $query->where($filterOr); } $list = $query->order(['order.create_time' => 'desc']) ->paginate(10); @@ -191,7 +195,8 @@ class Order extends OrderModel $filter = [ ['pay_status', '=', PayStatusEnum::SUCCESS], ['delivery_status', '<>', DeliveryStatusEnum::DELIVERED], - ['order_status', 'in', [OrderStatusEnum::NORMAL, OrderStatusEnum::APPLY_CANCEL]] +// ['order_status', 'in', [OrderStatusEnum::NORMAL, OrderStatusEnum::APPLY_CANCEL]] + ['order_status', 'in', [OrderStatusEnum::NORMAL]] ]; break; case DataTypeEnum::RECEIPT: @@ -222,7 +227,8 @@ class Order extends OrderModel public function updatePrice(array $data): bool { if ($this['pay_status'] != PayStatusEnum::PENDING) { - $this->error = '该订单不合法'; +// $this->error = '该订单不合法'; + $this->error = '该订单已支付,无法修改价格'; return false; } // 实际付款金额 diff --git a/app/store/service/order/Delivery.php b/app/store/service/order/Delivery.php index 0fca089c..66f2a93e 100644 --- a/app/store/service/order/Delivery.php +++ b/app/store/service/order/Delivery.php @@ -12,6 +12,7 @@ declare (strict_types=1); namespace app\store\service\order; +use app\common\enum\dealer\withdraw\PayType; use think\facade\Db; use app\store\model\Order as OrderModel; use app\store\model\Express as ExpressModel; @@ -49,6 +50,14 @@ class Delivery extends BaseService */ public function delivery(int $orderId, array $param): bool { + if(empty($param['expressId'])) { + $this->error = '物流公司不能为空'; + return false; + } + if (empty($param['expressNo'])) { + $this->error = '物流单号不能为空'; + return false; + } // 设置默认的参数 $param = $this->buildParam($param); // 获取订单详情