|
|
<?php
|
|
|
|
|
|
namespace app\api\controller;
|
|
|
|
|
|
use app\common\controller\Api;
|
|
|
use think\Validate;
|
|
|
/**
|
|
|
* 优惠券接口
|
|
|
*/
|
|
|
class Coupons extends Api
|
|
|
{
|
|
|
protected $noNeedLogin = ['*'];
|
|
|
protected $noNeedRight = ['*'];
|
|
|
protected $uid = '';
|
|
|
public function _initialize()
|
|
|
{
|
|
|
parent::_initialize();
|
|
|
$this->uid = $this->auth->getUserId();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @ApiTitle (领券中心)
|
|
|
* @ApiSummary (领券中心)
|
|
|
* @ApiMethod (GET)
|
|
|
* @ApiRoute (/api/coupons/couponCenterList)
|
|
|
*
|
|
|
* @ApiParams (name="page", type="inter", required=true, description="分页页码")
|
|
|
*
|
|
|
* @ApiReturn({
|
|
|
"code": 1,
|
|
|
"msg": "成功",
|
|
|
"time": "1575365883",
|
|
|
"data": {
|
|
|
"data": [
|
|
|
{
|
|
|
"id": 2,//优惠券id
|
|
|
"coupon_tag": "无门槛",//优惠券(无门槛,折扣券,满减券)
|
|
|
"coupon_price": "¥300",//(折扣或减少金额)
|
|
|
"coupon_tag1": "无门槛",优惠券(无门槛,满多少可用)
|
|
|
"is_receive": 0,//是否领取(0:否,1:是)
|
|
|
"coupon_name": "全场优惠券",//优惠券名称
|
|
|
"coupon_number": 100,//优惠券剩余数量(0:领光了)
|
|
|
"type": "全场通用"//优惠券用途
|
|
|
},
|
|
|
{
|
|
|
"id": 11,
|
|
|
"coupon_tag": "无门槛",
|
|
|
"coupon_price": "¥100",
|
|
|
"coupon_tag1": "无门槛",
|
|
|
"is_receive": 0,
|
|
|
"coupon_name": "品牌箱包优惠券",
|
|
|
"coupon_number": 100,
|
|
|
"type": "部分品牌可用"
|
|
|
},
|
|
|
],
|
|
|
"total_page": 1//总页码
|
|
|
}
|
|
|
})
|
|
|
*/
|
|
|
public function couponCenterList(){
|
|
|
if($this->request->isGet()){
|
|
|
$page = $this->request->get('page');
|
|
|
$rule = config('verify.page');
|
|
|
$validate = new Validate($rule['rule'],$rule['msg']);
|
|
|
if (!$validate->check(['page'=>$page])) {
|
|
|
$this->error($validate->getError());
|
|
|
}
|
|
|
|
|
|
$flag = config('verify.flag');
|
|
|
$where = ['is_new'=>$flag[0],'coupon_number'=>['<>',0],'end_time'=>['>',time()]];
|
|
|
//查询已经领取过
|
|
|
$receive = Common::selectWhereData('rcoupon',['uid'=>$this->uid],'id,c_id');
|
|
|
$receive_s = array_column($receive,'c_id');
|
|
|
$limit = config('verify.goods_limit');
|
|
|
$data = Common::selectWherePageData('coupon',$where,'id,type,coupon_name,c_type,coupon_type,full_reduce,reduce,discount,coupon_number',$page,$limit,'c_type asc,coupon_type desc');
|
|
|
$res = [];
|
|
|
$arr = [];
|
|
|
foreach($data as $key=>$value){
|
|
|
|
|
|
$res[$key]['id'] = $value['id'];
|
|
|
//无门槛,有门槛
|
|
|
if($value['c_type'] == 0){
|
|
|
//无门槛
|
|
|
if($value['coupon_type'] == 0){
|
|
|
//减少券,去掉满减金额,折扣字段,
|
|
|
unset($value['full_reduce']);
|
|
|
unset($value['discount']);
|
|
|
$res[$key]['coupon_tag'] = '无门槛';
|
|
|
$res[$key]['coupon_price'] = '¥'.$value['reduce'];
|
|
|
$res[$key]['coupon_tag1'] = '无门槛';
|
|
|
}else{
|
|
|
//折扣券,去掉满减金额,减少金额字段,
|
|
|
unset($value['full_reduce']);
|
|
|
unset($value['reduce']);
|
|
|
$res[$key]['coupon_tag'] = '折扣券';
|
|
|
$res[$key]['coupon_price'] = $value['discount'].'折';
|
|
|
$res[$key]['coupon_tag1'] = '无门槛';
|
|
|
}
|
|
|
}else{
|
|
|
//有门槛
|
|
|
if($value['coupon_type'] == 0){
|
|
|
//减少券,去掉折扣字段,
|
|
|
unset($value['discount']);
|
|
|
$res[$key]['coupon_tag'] = '满减券';
|
|
|
$res[$key]['coupon_price'] = '¥'.$value['reduce'];
|
|
|
$res[$key]['coupon_tag1'] = '满'.$value['full_reduce'].'可用';
|
|
|
}else{
|
|
|
//折扣券,去掉减少金额字段,
|
|
|
unset($value['reduce']);
|
|
|
$res[$key]['coupon_tag'] = '折扣券';
|
|
|
$res[$key]['coupon_price'] = $value['discount'].'折';
|
|
|
$res[$key]['coupon_tag1'] = '满'.$value['full_reduce'].'可用';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$res[$key]['is_receive'] = 0;//未领取
|
|
|
if(in_array($value['id'],$receive_s)){
|
|
|
$res[$key]['is_receive'] = 1;//已领取
|
|
|
}
|
|
|
$res[$key]['coupon_name'] = $value['coupon_name'];//优惠券名称
|
|
|
$res[$key]['coupon_number'] = $value['coupon_number'];//优惠券剩余数量
|
|
|
//全场,品牌,商品
|
|
|
if($value['type'] == 0){
|
|
|
$res[$key]['type'] = '全场通用';
|
|
|
|
|
|
}else if($value['type'] == 1){
|
|
|
$res[$key]['type'] = '部分品牌可用';
|
|
|
|
|
|
}else{
|
|
|
$res[$key]['type'] = '部分商品可用';
|
|
|
|
|
|
}
|
|
|
}
|
|
|
$arr['data'] = $res;
|
|
|
//总页数
|
|
|
$arr['total_page'] = Common::count('coupon',$where,$limit);
|
|
|
|
|
|
$this->success('成功',$arr);
|
|
|
}else{
|
|
|
$this->error('请求方式错误');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @ApiTitle (品牌优惠券)
|
|
|
* @ApiSummary (品牌优惠券)
|
|
|
* @ApiMethod (GET)
|
|
|
* @ApiRoute (/api/coupons/brandCouponList)
|
|
|
*
|
|
|
* @ApiParams (name="b_id", type="inter", required=true, description="品牌分类id")
|
|
|
*
|
|
|
* @ApiReturn({
|
|
|
"code": 1,
|
|
|
"msg": "成功",
|
|
|
"time": "1575367045",
|
|
|
"data": [
|
|
|
{
|
|
|
"id": 5,优惠券id
|
|
|
"coupon_number": 100,//优惠券剩余数量(0:显示领光了)
|
|
|
"is_receive": 0,//是否领取(0:否,1:是)
|
|
|
"coupon_tag": "无门槛",//优惠券(无门槛或满减金额)
|
|
|
"coupon_price": "¥100"//(折扣或减少金额)
|
|
|
},
|
|
|
{
|
|
|
"id": 11,
|
|
|
"coupon_number": 100,
|
|
|
"is_receive": 0,
|
|
|
"coupon_tag": "无门槛",
|
|
|
"coupon_price": "¥100"
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
*/
|
|
|
public function brandCouponList(){
|
|
|
if($this->request->isGet()){
|
|
|
$b_id = $this->request->get('b_id');
|
|
|
$rule = config('verify.brand_detail');
|
|
|
$validate = new Validate($rule['rule'],$rule['msg']);
|
|
|
if (!$validate->check(['b_id'=>$b_id])) {
|
|
|
$this->error($validate->getError());
|
|
|
}
|
|
|
|
|
|
$flag = config('verify.flag');
|
|
|
$where = ['is_new'=>$flag[0],'type'=>$flag[1],'bg_id'=>$b_id,'end_time'=>['>',time()]];
|
|
|
//查询已经领取过
|
|
|
$receive = Common::selectWhereData('rcoupon',['uid'=>$this->uid],'id,c_id');
|
|
|
$receive_s = array_column($receive,'c_id');
|
|
|
$data = Common::selectWhereData('coupon',$where,'id,c_type,coupon_type,full_reduce,reduce,discount,coupon_number','c_type asc,coupon_type desc');
|
|
|
$res = [];
|
|
|
foreach($data as $key=>$value){
|
|
|
$res[$key]['id'] = $value['id'];
|
|
|
$res[$key]['coupon_number'] = $value['coupon_number'];
|
|
|
|
|
|
$res[$key]['is_receive'] = 0;//未领取
|
|
|
if(in_array($value['id'],$receive_s)){
|
|
|
$res[$key]['is_receive'] = 1;//已领取
|
|
|
}
|
|
|
|
|
|
//无门槛,有门槛
|
|
|
if($value['c_type'] == 0){
|
|
|
//无门槛
|
|
|
if($value['coupon_type'] == 0){
|
|
|
//减少券,去掉满减金额,折扣字段,
|
|
|
unset($value['full_reduce']);
|
|
|
unset($value['discount']);
|
|
|
$res[$key]['coupon_tag'] = '无门槛';
|
|
|
$res[$key]['coupon_price'] = '¥'.$value['reduce'];
|
|
|
}else{
|
|
|
//折扣券,去掉满减金额,减少金额字段,
|
|
|
unset($value['full_reduce']);
|
|
|
unset($value['reduce']);
|
|
|
$res[$key]['coupon_tag'] = '无门槛';
|
|
|
$res[$key]['coupon_price'] = $value['discount'].'折';
|
|
|
}
|
|
|
}else{
|
|
|
//有门槛
|
|
|
if($value['coupon_type'] == 0){
|
|
|
//减少券,去掉折扣字段,
|
|
|
unset($value['discount']);
|
|
|
$res[$key]['coupon_tag'] = '满'.$value['full_reduce'].'可用';
|
|
|
$res[$key]['coupon_price'] = '¥'.$value['reduce'];
|
|
|
}else{
|
|
|
//折扣券,去掉减少金额字段,
|
|
|
unset($value['reduce']);
|
|
|
$res[$key]['coupon_tag'] = '满'.$value['full_reduce'].'可用';
|
|
|
$res[$key]['coupon_price'] = $value['discount'].'折';
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
$this->success('成功',$res);
|
|
|
}else{
|
|
|
$this->error('请求方式错误');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @ApiTitle (商品优惠券)
|
|
|
* @ApiSummary (商品优惠券)
|
|
|
* @ApiMethod (GET)
|
|
|
* @ApiRoute (/api/coupons/goodsCouponList)
|
|
|
*
|
|
|
* @ApiParams (name="goods_id", type="inter", required=true, description="商品id")
|
|
|
* @ApiParams (name="is_flag", type="inter", required=true, description="优惠券标识(0:未使用,1:已使用,2:已过期)")
|
|
|
*
|
|
|
* @ApiReturn({
|
|
|
"code": 1,
|
|
|
"msg": "成功",
|
|
|
"time": "1575372162",
|
|
|
"data": [
|
|
|
{
|
|
|
"id": 2,//优惠券id
|
|
|
"coupon_tag": "无门槛",//优惠券(无门槛,折扣券,满减券)
|
|
|
"coupon_price": "¥300",//(折扣或减少金额)
|
|
|
"coupon_tag1": "无门槛",优惠券(无门槛,满多少可用)
|
|
|
"coupon_name": "全场优惠券",//优惠券名称
|
|
|
"end_time": "2020.1.31",//优惠券有效期
|
|
|
"type": "全场通用"//优惠券用途
|
|
|
},
|
|
|
{
|
|
|
"id": 10,
|
|
|
"coupon_tag": "折扣券",
|
|
|
"coupon_price": "9.5折",
|
|
|
"coupon_tag1": "满2000可用",
|
|
|
"coupon_name": "商品优惠券",
|
|
|
"end_time": "2020.1.31",
|
|
|
"type": "商品可用"
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
*/
|
|
|
public function goodsCouponList(){
|
|
|
if($this->request->isGet()){
|
|
|
$goods_id = $this->request->get('goods_id');
|
|
|
$is_flag = $this->request->get('is_flag');
|
|
|
$rule = config('verify.goods_coupon');
|
|
|
$validate = new Validate($rule['rule'],$rule['msg']);
|
|
|
if (!$validate->check(['goods_id'=>$goods_id,'is_flag'=>$is_flag])) {
|
|
|
$this->error($validate->getError());
|
|
|
}
|
|
|
|
|
|
//查询已经领取过
|
|
|
$receive = Common::selectWhereData('rcoupon',['uid'=>$this->uid],'id,c_id');
|
|
|
$receive_s = array_column($receive,'c_id');
|
|
|
|
|
|
$type = config('verify.type');
|
|
|
$flag = config('verify.flag');
|
|
|
//不显示没有库存的优惠券
|
|
|
$where = ['is_new'=>$flag[0],'type'=>$type[2],'bg_id'=>$goods_id,'coupon_number'=>['<>',0]];
|
|
|
if($is_flag == 0){
|
|
|
//未使用
|
|
|
$where['id'] = ['not in',$receive_s];
|
|
|
$where['end_time'] = ['>',time()];
|
|
|
}else if($is_flag == 1){
|
|
|
//已使用
|
|
|
$where['id'] = ['in',$receive_s];
|
|
|
$where['end_time'] = ['>',time()];
|
|
|
}else{
|
|
|
//已过期
|
|
|
$where['end_time'] = ['<',time()];
|
|
|
}
|
|
|
$data = Common::selectWhereData('coupon',$where,'id,type,coupon_name,c_type,coupon_type,full_reduce,reduce,discount,coupon_number,end_time','c_type asc,coupon_type desc');
|
|
|
$res = [];
|
|
|
foreach($data as $key=>$value){
|
|
|
|
|
|
$res[$key]['id'] = $value['id'];
|
|
|
//无门槛,有门槛
|
|
|
if($value['c_type'] == 0){
|
|
|
//无门槛
|
|
|
if($value['coupon_type'] == 0){
|
|
|
//减少券,去掉满减金额,折扣字段,
|
|
|
unset($value['full_reduce']);
|
|
|
unset($value['discount']);
|
|
|
$res[$key]['coupon_tag'] = '无门槛';
|
|
|
$res[$key]['coupon_price'] = '¥'.$value['reduce'];
|
|
|
$res[$key]['coupon_tag1'] = '无门槛';
|
|
|
}else{
|
|
|
//折扣券,去掉满减金额,减少金额字段,
|
|
|
unset($value['full_reduce']);
|
|
|
unset($value['reduce']);
|
|
|
$res[$key]['coupon_tag'] = '折扣券';
|
|
|
$res[$key]['coupon_price'] = $value['discount'].'折';
|
|
|
$res[$key]['coupon_tag1'] = '无门槛';
|
|
|
}
|
|
|
}else{
|
|
|
//有门槛
|
|
|
if($value['coupon_type'] == 0){
|
|
|
//减少券,去掉折扣字段,
|
|
|
unset($value['discount']);
|
|
|
$res[$key]['coupon_tag'] = '满减券';
|
|
|
$res[$key]['coupon_price'] = '¥'.$value['reduce'];
|
|
|
$res[$key]['coupon_tag1'] = '满'.$value['full_reduce'].'可用';
|
|
|
}else{
|
|
|
//折扣券,去掉减少金额字段,
|
|
|
unset($value['reduce']);
|
|
|
$res[$key]['coupon_tag'] = '折扣券';
|
|
|
$res[$key]['coupon_price'] = $value['discount'].'折';
|
|
|
$res[$key]['coupon_tag1'] = '满'.$value['full_reduce'].'可用';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$res[$key]['coupon_name'] = $value['coupon_name'];//优惠券名称
|
|
|
$res[$key]['end_time'] = date('Y.n.j',$value['end_time']);//优惠券有效期
|
|
|
$res[$key]['type'] = '商品可用';
|
|
|
}
|
|
|
$this->success('成功',$res);
|
|
|
}else{
|
|
|
$this->error('请求方式错误');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} |
...
|
...
|
|