123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- namespace app\controller\api\store\product;
- use ln\basic\BaseController;
- use app\common\repositories\store\coupon\StoreCouponProductRepository;
- use app\common\repositories\store\coupon\StoreCouponRepository;
- use app\common\repositories\store\coupon\StoreCouponUserRepository;
- use app\common\repositories\store\product\ProductRepository;
- use think\App;
- use think\db\exception\DataNotFoundException;
- use think\db\exception\DbException;
- use think\db\exception\ModelNotFoundException;
- use think\facade\Db;
- /**
- * Class StoreCoupon
- * @package app\controller\api\store\product
- * @author zfy
- * @day 2020/6/1
- */
- class StoreCoupon extends BaseController
- {
- /**
- * @var
- */
- protected $uid;
- /**
- * StoreCoupon constructor.
- * @param App $app
- */
- public function __construct(App $app)
- {
- parent::__construct($app);
- if ($this->request->isLogin()) $this->uid = $this->request->uid();
- }
- /**
- * @param StoreCouponUserRepository $repository
- * @return mixed
- * @throws DataNotFoundException
- * @throws DbException
- * @throws ModelNotFoundException
- * @author zfy
- * @day 2020/6/3
- */
- public function lst(StoreCouponUserRepository $repository)
- {
- [$page, $limit] = $this->getPage();
- $where = $this->request->params(['statusTag']);
- $where['uid'] = $this->uid;
- return app('json')->success($repository->userList($where, $page, $limit));
- }
- /**
- * @param StoreCouponRepository $repository
- * @param StoreCouponProductRepository $couponProductRepository
- * @return mixed
- * @throws DataNotFoundException
- * @throws DbException
- * @throws ModelNotFoundException
- * @author zfy
- * @day 2020/6/1
- */
- public function coupon(StoreCouponRepository $repository, StoreCouponProductRepository $couponProductRepository)
- {
- $ids = array_filter(explode(',', $this->request->param('ids')));
- if (!count($ids))
- return app('json')->success([]);
- $productCouponIds = $couponProductRepository->productByCouponId($ids);
- $productCoupon = count($productCouponIds) ? $repository->validProductCoupon($productCouponIds, $this->uid)->toArray() : [];
- return app('json')->success($productCoupon);
- }
- /**
- * @param $id
- * @param StoreCouponRepository $repository
- * @return mixed
- * @throws DataNotFoundException
- * @throws DbException
- * @throws ModelNotFoundException
- * @author zfy
- * @day 2020/6/1
- */
- public function merCoupon($id, StoreCouponRepository $repository)
- {
- $all = (int)$this->request->param('all');
- $coupon = $repository->validMerCoupon($id, $this->uid, $all === 1 ? null : 0)->toArray();
- return app('json')->success($coupon);
- }
- /**
- * @param $id
- * @param StoreCouponRepository $repository
- * @return mixed
- * @author zfy
- * @day 2020/6/1
- */
- public function receiveCoupon($id, StoreCouponRepository $repository)
- {
- if (!$repository->exists($id))
- return app('json')->fail('优惠券不存在');
- try {
- $repository->receiveCoupon($id, $this->uid);
- } catch (\Exception $e) {
- return app('json')->fail('优惠券已被领完');
- }
- return app('json')->success('领取成功');
- }
- }
|