cxgj/modules/api/controllers/CouponController.php
2023-11-27 09:45:13 +08:00

175 lines
7.8 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\modules\api\controllers;
use app\modules\api\models\CouponForm;
use function AlibabaCloud\Client\value;
use Yii;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use app\modules\api\behaviors\LoginBehavior;
class CouponController extends Controller
{
public function behaviors()
{
return array_merge(parent::behaviors(), [
'login' => [
'class' => LoginBehavior::className(),
'ignore' => [
'api/coupon/search',
]
]
]);
}
/**
* showdoc
* @catalog 卡券
* @title 卡券中心
* @description 卡券中心
* @method get
* @url /api/coupon/search
* @param page 非必选 int 页码不传默认为1
* @param limit 非必选 int 每页显示条数不传默认10条
* @return {"code":0,"msg":"ok","data":[{"id":"2","title":"高尔夫球车1元体验券","price":"1.00","end_time":"1669046400","num":"10","get_num":"0","date_cn":"2022-11-22 00:00","plan":0,"status":false}],"count":"1","page_size":10,"page_count":1,"page_no":1,"end_flag":true}
* @return_param id string 卡券id
* @return_param title string 卡券名称
* @return_param price string 卡券金额
* @return_param date_cn string 卡券使用日期
* @return_param subhead string 副标题
* @return_param plan string 已领百分比
* @return_param status bool 是否已领取,false=未领取,true=已领取
* @return_param count string 总条数
* @return_param page_count string 总页数
* @return_param page_no string 当前页
* @return_param end_flag bool 是否加载完毕true=已完毕,false=未完毕
* @remark 注意:status=true的无法再次点击领取按钮按钮应切换为“已领取”并置灰
*/
public function actionSearch()
{
$form = new CouponForm();
$form->attributes = \Yii::$app->request->get();
$form->user_id = \Yii::$app->user->identity->id ? \Yii::$app->user->identity->id : 0;
$data = $form->search();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 卡券
* @title 我的卡包
* @description 我的卡包
* @method get
* @url /api/coupon/user-coupon
* @param page 非必选 int 页码不传默认为1
* @param limit 非必选 int 每页显示条数不传默认10条
* @param store_id 非必选 int 球车所属门店id,支付通道进入需要传
* @return {"code":0,"msg":"ok","data":[{"id":"49","coupon_id":"1","title":"测试体验券","price":"22.00","start_time":"1667491200","end_time":"1667923200","date_cn":"2022/11/04 - 2022/11/09","subhead":"立减22.00元"},{"id":"27","coupon_id":"1","title":"测试体验券","price":"22.00","start_time":"1667491200","end_time":"1667923200","date_cn":"2022/11/04 - 2022/11/09","subhead":"立减22.00元"},{"id":"5","coupon_id":"1","title":"测试体验券","price":"22.00","start_time":"1667491200","end_time":"1667923200","date_cn":"2022/11/04 - 2022/11/09","subhead":"立减22.00元"}],"count":"3","page_size":10,"page_count":1,"page_no":1,"end_flag":true}
* @return_param id string 我的卡券id
* @return_param coupon_id string 卡券id
* @return_param title string 卡券名称
* @return_param price string 卡券金额
* @return_param date_cn string 卡券有效期
* @return_param subhead string 副标题
* @return_param type string 优惠券类型0=体验券1=立减券
* @return_param count string 总条数
* @return_param page_count string 总页数
* @return_param page_no string 当前页
* @return_param end_flag bool 是否加载完毕true=已完毕,false=未完毕
* @remark 注意:用户点击“去使用”需先调用“校验用户卡券是否可使用”接口如果code为0则可使用反正不能,并提示相关信息
*/
public function actionUserCoupon()
{
$form = new CouponForm();
$form->scenario = 'user_coupon';
$form->attributes = \Yii::$app->request->get();
$form->user_id = \Yii::$app->user->identity->id;
$data = $form->userCoupon();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 卡券
* @title 领取卡券
* @description 领取卡券
* @method post
* @url /api/coupon/get-coupon
* @param coupon_id 必选 int 卡券id
* @return {"code":0,"msg":"领取成功","data":[]}
* @remark code=0弹框提醒。code=1弹框提醒不刷新页面。code=2弹框提醒用户点击确认刷新页面。code=3弹框提醒按钮切换为已领完不刷新页面。code=4,跳转会员注册页面。code=5不刷新按钮改为已领取。data里面的返回值用于优惠券弹框使用
*/
public function actionGetCoupon()
{
$form = new CouponForm();
$form->scenario = 'get_coupon';
$form->attributes = \Yii::$app->request->post();
$form->user_id = \Yii::$app->user->identity->id;
$data = $form->getCoupon();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 卡券
* @title 校验用户卡券是否可使用
* @description 校验用户卡券是否可使用
* @method get
* @url /api/coupon/check-user-coupon
* @param user_coupon_id 必选 int 我的卡券id
* @return {"code":0,"msg":"领取成功","data":[]}
* @remark code=0弹框提醒跳转租赁中心。code=1弹框提醒。code=2弹框提醒用户点击确认刷新页面
*/
public function actionCheckUserCoupon()
{
$form = new CouponForm();
$form->scenario = 'check_user_coupon';
$form->attributes = \Yii::$app->request->get();
$form->user_id = \Yii::$app->user->identity->id;
$data = $form->checkUserCoupon();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 卡券
* @title 首页弹框查询可领取优惠券
* @description 首页弹框查询可领取优惠券
* @method get
* @url /api/coupon/check-run-coupon
* @return {"code":0,"msg":"ok","data":[{"id":"7","title":"新用户体验卷","price":"0.00","end_time":"1669737600","num":"-1","get_num":"0","date_cn":"2022/11/30","subhead":"2022/11/30前可用","plan":"无限","status":false}]}
* @remark 注:调用该接口必须登录,如用户未登录则登录过后调用该接口。未做分页,如条数过多,可只展示几条,剩下的点击查看更多进行跳转展示
*/
public function actionCheckRunCoupon()
{
$form = new CouponForm();
$form->scenario = 'check_run_coupon';
$form->user_id = \Yii::$app->user->identity->id;
$data = $form->checkRunCoupon();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 卡券
* @title 校验用户是否有可用优惠券
* @description 租赁球车时校验用户是否有可用优惠券
* @method get
* @url /api/coupon/check-use-coupon
* @param ball_number 必选 string 球车编号
* @return {"code":0,"msg":"ok","data":{"id":"12","title":"11/18测试","type":0,"price":1}}
* @remark 注data为空则无可用卡券,type=0体验券type=1立减券
*/
public function actionCheckUseCoupon()
{
$form = new CouponForm();
$form->scenario = 'check_use_coupon';
$form->attributes = \Yii::$app->request->get();
$form->user_id = \Yii::$app->user->identity->id;
$data = $form->checkUseCoupon();
return $this->responseHandler($data);
}
}