model = new UserCouponModel; $this->user = $this->getUser(); } /** * 优惠券列表 */ public function lists($data_type = 'all') { $is_use = false; $is_expire = false; switch ($data_type) { case 'not_use': $is_use = false; break; case 'is_use': $is_use = true; break; case 'is_expire': $is_expire = true; break; } $list = $this->model->getList($this->user['user_id'],-1, $is_use, $is_expire); return $this->renderSuccess('', compact('list')); } /** * 领取优惠券 */ public function receive($coupon_id) { if ($this->model->receive($this->user, $coupon_id)) { return $this->renderSuccess([], '领取成功'); } return $this->renderError($this->model->getError() ?: '添加失败'); } /** * 批量领取优惠券 */ public function receiveList($coupon_ids) { if ($this->model->receiveList($this->user, $coupon_ids)) { return $this->renderSuccess('领取成功', ''); } return $this->renderError('领取失败'); } /** * 优惠券详情 */ public function detail($user_coupon_id){ $model = UserCouponModel::getDetail($user_coupon_id); if($model['apply_range'] == 20){ $product_ids = explode(',', $model['coupon']['product_ids']); $model['product'] = (new ProductModel())->getListByIdsFromApi($product_ids); } $product_list = []; if($model['apply_range'] == 30){ $category_ids = json_decode($model['category_ids'], true); $product_list = (new ProductModel())->getListByCatIdsFromApi($category_ids); } // 检查当前时间是否可用 $time = time(); if ( $time > $model['start_time']['value'] && $time < ($model['end_time']['value'] + 86400)) { $model['can_use'] = 1; } else { $model['can_use'] = 0; } return $this->renderSuccess('', compact('model', 'product_list')); } /** * 获取兑换券核销二维码 */ public function qrcode($user_coupon_id, $source) { // 兑换券详情 $coupon = UserCouponModel::getDetail($user_coupon_id); // 判断是否为兑换券 if ($coupon['coupon_type']['value'] == 20) { return $this->renderError('无法生成核销码'); }elseif($coupon['coupon_type']['value'] == 10 && $coupon['coupon_type']['value'] == 1){ return $this->renderError('不支持线下核销'); } $Qrcode = new ExtractService( $this->app_id, $this->user, $user_coupon_id, $source, 'coupon-' . $user_coupon_id, 'coupon' ); return $this->renderSuccess('',[ 'qrcode' => $Qrcode->getImage(), ]); } }