123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?php
- namespace addons\shopro\controller;
- use app\admin\model\shopro\Coupon as CouponModel;
- use addons\shopro\traits\CouponSend;
- use app\admin\model\shopro\goods\Goods as GoodsModel;
- class Coupon extends Common
- {
- use CouponSend;
- protected $noNeedLogin = ['index', 'listByGoods', 'detail'];
- protected $noNeedRight = ['*'];
- public function index()
- {
- $ids = $this->request->param('ids', '');
- $coupons = CouponModel::with(['user_coupons'])
- ->normal() // 正常的可以展示的优惠券
- ->canGet() // 在领取时间之内的
- ->order('id', 'desc');
- if ($ids) {
- $coupons = $coupons->whereIn('id', $ids);
- }
- $coupons = $coupons->paginate($this->request->param('list_rows', 10))->each(function ($coupon) {
- $coupon->get_status = $coupon->get_status;
- $coupon->get_status_text = $coupon->get_status_text;
- });
- $this->success('获取成功', $coupons);
- }
- /**
- * 商品相关的优惠券列表,前端商品详情使用
- *
- * @param Request $request
- * @param int $goods_id
- * @return void
- */
- public function listByGoods()
- {
- $user = auth_user();
- $goods_id = $this->request->param('goods_id');
- $goods = GoodsModel::field('id,category_ids')->where('id', $goods_id)->find();
- if (!$goods) {
- $this->error(__('No Results were found'));
- }
- $coupons = CouponModel::with(['user_coupons'])
- ->normal() // 正常的可以展示的优惠券
- ->canGet() // 在领取时间之内的
- ->goods($goods) // 符合指定商品,并且检测商品所属分类
- ->order('id', 'desc');
- //这里注释是因为多重循环导致不必要的数据结构
- /*if ($user) {
- // 关联用户优惠券
- $coupons = $coupons->with(['userCoupons']);
- }*/
- $coupons = $coupons->select();
-
- $coupons = collection($coupons)->each(function ($coupon) {
- $coupon->get_status = $coupon->get_status;
- $coupon->get_status_text = $coupon->get_status_text;
- });
- $coupons = json_decode(json_encode($coupons),true);
- foreach($coupons as $key => $val){
- $val['get_start_time'] = substr($val['get_start_time'],0,10);
- $val['get_end_time'] = substr($val['get_end_time'],0,10);
- $val['use_start_time'] = substr($val['use_start_time'],0,10);
- $val['use_end_time'] = substr($val['use_end_time'],0,10);
- unset($val['user_coupons']);
- $coupons[$key] = $val;
- }
- $this->success('获取成功', $coupons);
- }
- public function get()
- {
- $id = $this->request->param('id');
- $this->repeatFilter(null, 2);
- $userCoupon = $this->getCoupon($id);
- $this->success('领取成功');
- // $this->success('领取成功', $userCoupon);
- }
-
- public function detail()
- {
- $id = $this->request->param('id');
- $coupon = CouponModel::where('id', $id)->find();
- if (!$coupon) {
- $this->error(__('No Results were found'));
- }
- $coupon->get_status = $coupon->get_status;
- $coupon->get_status_text = $coupon->get_status_text;
- $coupon->items_value = $coupon->items_value;
- $this->success('优惠券详情', $coupon);
- }
- }
|