From 959e42165b6ad314dfcd7682296d4841f0879252 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Wed, 16 Sep 2020 14:38:47 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=AA=8C=E8=AF=81=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v3/BalanceStatementController.php | 3 +- app/Controller/v3/CouponController.php | 3 +- app/Controller/v3/OrderOnlineController.php | 9 ++--- app/Controller/v3/ShopCartController.php | 5 +-- app/Controller/v3/UserAddressController.php | 12 ++++--- app/Request/v3/UserAddressRequest.php | 36 +++++++++++++++++++ 6 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 app/Request/v3/UserAddressRequest.php diff --git a/app/Controller/v3/BalanceStatementController.php b/app/Controller/v3/BalanceStatementController.php index 411a63f..cd5d0b5 100644 --- a/app/Controller/v3/BalanceStatementController.php +++ b/app/Controller/v3/BalanceStatementController.php @@ -3,6 +3,7 @@ namespace App\Controller\v3; use App\Controller\BaseController; +use App\Request\v3\UserRequest; use Hyperf\Di\Annotation\Inject; use App\Service\v3\Interfaces\RevenueListServiceInterface; use App\Service\v3\Interfaces\WithdrawalListServiceInterface; @@ -20,7 +21,7 @@ class BalanceStatementController extends BaseController * @var WithdrawalListServiceInterface */ protected $withdrawalListService; - public function getRevenueListByUser() + public function getRevenueListByUser(UserRequest $request) { $userId = $this->request->input('user_id',0); $page = $this->request->input('page',0); diff --git a/app/Controller/v3/CouponController.php b/app/Controller/v3/CouponController.php index 4ba427c..a32542b 100644 --- a/app/Controller/v3/CouponController.php +++ b/app/Controller/v3/CouponController.php @@ -12,6 +12,7 @@ declare(strict_types=1); namespace App\Controller\v3; +use App\Request\v3\UserRequest; use Hyperf\Di\Annotation\Inject; use App\Controller\BaseController; use App\Service\v3\Interfaces\CouponRecServiceInterface; @@ -58,7 +59,7 @@ class CouponController extends BaseController * 获取用户当前订单可用的优惠券列表 * 按分类(1订单 等优惠)分组返回 */ - public function getListByUser() + public function getListByUser(UserRequest $request) { $userId = $this->request->input('user_id'); $page = $this->request->input('page'); diff --git a/app/Controller/v3/OrderOnlineController.php b/app/Controller/v3/OrderOnlineController.php index 62ec2e5..3bedf65 100644 --- a/app/Controller/v3/OrderOnlineController.php +++ b/app/Controller/v3/OrderOnlineController.php @@ -11,6 +11,7 @@ use App\Model\v3\OrderMain; use App\Request\v3\OrderOnlineDetailRequest; use App\Request\v3\OrderOnlineRequest; use App\Request\v3\OrderOnlineStateRequest; +use App\Request\v3\UserRequest; use App\Service\v3\Implementations\PaymentService; use App\Service\v3\Interfaces\CouponRecServiceInterface; use App\Service\v3\Interfaces\SeparateAccountsServiceInterface; @@ -75,11 +76,11 @@ class OrderOnlineController extends BaseController * 配送费独立接口 可根据距离动态计算费用 * 增值服务接口 * */ - public function review() + public function review(UserRequest $request) { - $userId = $this->request->input('user_id'); - $marketId = $this->request->input('market_id'); - $shopcartIds = $this->request->input('shopcart_ids'); + $userId = $this->request->input('user_id',''); + $marketId = $this->request->input('market_id',''); + $shopcartIds = $this->request->input('shopcart_ids',''); //判断用户有没有绑定手机 $telExists = $this->userBindTelService->check($userId); diff --git a/app/Controller/v3/ShopCartController.php b/app/Controller/v3/ShopCartController.php index 43975e0..8e15b62 100644 --- a/app/Controller/v3/ShopCartController.php +++ b/app/Controller/v3/ShopCartController.php @@ -3,6 +3,7 @@ namespace App\Controller\v3; use App\Controller\BaseController; +use App\Request\v3\UserRequest; use App\Service\v3\Interfaces\InitialDeliveryServiceInterface; use Hyperf\Di\Annotation\Inject; use App\Service\v3\Interfaces\ShopCartServiceInterface; @@ -19,7 +20,7 @@ class ShopCartController extends BaseController * @var InitialDeliveryServiceInterface */ protected $intialDeliveryService; - public function detail() + public function detail(UserRequest $request) { $userId = $this->request->input('user_id'); $marketId = $this->request->input('market_id'); @@ -36,7 +37,7 @@ class ShopCartController extends BaseController // return $this->success($res); } - public function info() + public function info(UserRequest $request) { $userId = $this->request->input('user_id'); $marketId = $this->request->input('market_id'); diff --git a/app/Controller/v3/UserAddressController.php b/app/Controller/v3/UserAddressController.php index ba33f83..d6ba23c 100644 --- a/app/Controller/v3/UserAddressController.php +++ b/app/Controller/v3/UserAddressController.php @@ -4,7 +4,9 @@ namespace App\Controller\v3; use App\Controller\BaseController; +use App\Request\v3\UserAddressRequest; use App\Request\v3\UserAddressUpdateRequest; +use App\Request\v3\UserRequest; use App\Service\v3\Interfaces\UserAddressServiceInterface; use Hyperf\Di\Annotation\Inject; class UserAddressController extends BaseController @@ -31,28 +33,28 @@ class UserAddressController extends BaseController return $this->success($res); } - public function get() + public function get(UserAddressRequest $request) { $userAddressId = $this->request->input('user_address_id'); $res = $this->userAddressService->get($userAddressId); return $this->success($res); } - public function delete() + public function delete(UserAddressRequest $request) { $userAddressId = $this->request->input('user_address_id'); $res = $this->userAddressService->undo($userAddressId); return $this->success($res); } - public function getList() + public function getList(UserRequest $request) { $userId = $this->request->input('user_id'); $res = $this->userAddressService->getList($userId); return $this->success($res); } - public function setDefault() + public function setDefault(UserAddressRequest $request) { $userId = $this->request->input('user_id'); $userAddressId = $this->request->input('user_address_id'); @@ -60,7 +62,7 @@ class UserAddressController extends BaseController return $this->success($res); } - public function getAddressAndDistributionPrice() + public function getAddressAndDistributionPrice(UserAddressRequest $request) { $userAddressId = $this->request->input('user_address_id'); $marketId = $this->request->input('market_id'); diff --git a/app/Request/v3/UserAddressRequest.php b/app/Request/v3/UserAddressRequest.php new file mode 100644 index 0000000..873b435 --- /dev/null +++ b/app/Request/v3/UserAddressRequest.php @@ -0,0 +1,36 @@ + 'required|nonempty|integer', + ]; + } + + /** + * @return array + */ + public function messages(): array + { + return [ + '*.*' => ':attribute无效', + ]; + } + + public function attributes(): array + { + return parent::attributes(); + } +} From 5653c6072eae7e792f09a28198020c26c4bd40ee Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Wed, 16 Sep 2020 15:26:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/CouponController.php | 4 +-- app/Controller/v3/HomeController.php | 3 +- .../v3/Implementations/CouponRecService.php | 29 +++++++++++++++---- .../Interfaces/CouponRecServiceInterface.php | 2 +- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/app/Controller/v3/CouponController.php b/app/Controller/v3/CouponController.php index a32542b..2048fbe 100644 --- a/app/Controller/v3/CouponController.php +++ b/app/Controller/v3/CouponController.php @@ -69,8 +69,8 @@ class CouponController extends BaseController * $type unused 未使用 used 已使用 expired已失效 */ - $res = $this->couponRecService->getListByUser($userId,$type,$page,$pagesize); - + $res['coupon_list'] = $this->couponRecService->getListByUser($userId,$type,$page,$pagesize); + $res['statistics'] = $this->couponRecService->statistics($userId); return $this->success($res); } diff --git a/app/Controller/v3/HomeController.php b/app/Controller/v3/HomeController.php index 0cce913..448f41d 100644 --- a/app/Controller/v3/HomeController.php +++ b/app/Controller/v3/HomeController.php @@ -178,7 +178,8 @@ class HomeController extends BaseController } $data['user']['collection_count'] = $this->collectStoreService->countByUser($params['user_id']); - $data['user']['coupon_count'] = $this->couponRecService->countAvailableByUser($params['user_id']); + $couponStatistics = $this->couponRecService->statistics($params['user_id']); + $data['user']['coupon_count'] = $couponStatistics['unused']; $data['user']['role'] = $roles; $data['badge'] = $this->badgeService->allByUserOrder($params['user_id']); diff --git a/app/Service/v3/Implementations/CouponRecService.php b/app/Service/v3/Implementations/CouponRecService.php index 6791074..a23f09b 100644 --- a/app/Service/v3/Implementations/CouponRecService.php +++ b/app/Service/v3/Implementations/CouponRecService.php @@ -155,7 +155,7 @@ class CouponRecService implements CouponRecServiceInterface //拼接时间文字提示 $coupon['time_text'] = date("Y-m-d H:i:s",$coupon['usable_start_time']). ' - ' .date("Y-m-d H:i:s",$coupon['usable_end_time']); } - return ['has_more_pages' => $paginate->hasMorePages(), 'coupon_list' => $couponList['data']]; + return ['has_more_pages' => $paginate->hasMorePages(), 'list' => $couponList['data']]; } /** @@ -285,12 +285,29 @@ class CouponRecService implements CouponRecServiceInterface } /** - * @inheritDoc + * @param $userId + * @return mixed */ - public function countAvailableByUser($userId) + public function statistics($userId) { - $coupons = $this->getListByUser($userId,'unused',1,9999); - $numberRemain= (array_column($coupons['coupon_list'], 'number_remain')); - return array_sum($numberRemain); + //未使用 + $res['unused'] = 0; + //已使用 + $res['used'] = 0; + //已过期 + $res['expired'] = 0; + $coupons = CouponRec::query() + ->with('coupon') + ->where('user_id',$userId) + ->get(); + foreach ($coupons as $coupon){ + if($coupon->coupon->usable_end_time < time() || $coupon->coupon->status != 1){ + $res['expired'] += $coupon->number_remain; + }else{ + $res['unused'] += $coupon->number_remain; + } + $res['used'] += $coupon->used_num; + } + return $res; } } \ No newline at end of file diff --git a/app/Service/v3/Interfaces/CouponRecServiceInterface.php b/app/Service/v3/Interfaces/CouponRecServiceInterface.php index c6d1b53..b686672 100644 --- a/app/Service/v3/Interfaces/CouponRecServiceInterface.php +++ b/app/Service/v3/Interfaces/CouponRecServiceInterface.php @@ -15,5 +15,5 @@ interface CouponRecServiceInterface * @param $userId * @return mixed */ - public function countAvailableByUser($userId); + public function statistics($userId); } \ No newline at end of file