PHP优惠卷返利网源码_用PHP做了一个领取优惠券活动的示例代码

本文介绍了一个基于Laravel5.8实现的优惠券领取活动的PHP代码示例,涵盖了活动设置、前端限制及后端核心逻辑,包括手机号验证、活动状态判断、优惠券领取条件检查和领取操作等。同时,提供了发放优惠券的函数实现。
摘要由CSDN通过智能技术生成

业务需求

优惠券活动,具体还是要根据自己的需求。以下是最近实现的优惠券活动,主要的业务需求:根据后端设置优惠券模板,用户类型设置,优惠券活动的开始与结束时间,最后生成不同的优惠券活动链接。

代码环境:

源码主要laravel5.8,一整个活动要贴的代码很多,下面主要贴核心代码,仅供参考。主要还是要根据自己的业务需求来实现功能吧。

以下是后端截图,做成模块化

前端需要做的设置与限制:

1 判断优惠券是否存在或者停用

2 判断活动开始时间与优惠券开始时间

接着领取活动优惠券,需要判断以下情况:

1 活动已结束

2 活动为开始时

3 活动为新用户领取,而领取的用户是老用户

4 活动为老用户领取,而领取的用户是新用户

5 优惠券是否领取完

6 已领取过优惠券提示

7 领取成功

下面核心代码实现

/**

* Function:优惠券领取处理

* Author:cyw0413

* @param $params

* @return array

* @throws \Exception

*/

public function doCoupon($params)

{

$activity_id = $params['activity_id'];

if(!$params){

throw new \Exception("参数错误!");

}

$preg_phone = '/^1[34578]\d{9}$/ims';

$is_mobile = preg_match ($preg_phone, $params['mobile']);

if ($is_mobile == 0) {

throw new \Exception("手机号码不正确!");

}

//隐藏手机号码中间4位

$str_mobile = substr_replace($params['mobile'],'****',3,4);

$activity = $this->find($activity_id);

if(empty($activity)){

throw new \Exception("不存在此活动");

}

$activity_link = $activity->activityLink->where('coupon_status',0); //只选择不停用的优惠券

if(count($activity_link) <= 0){

throw new \Exception("优惠券不存在或者已经停用");

}else{

//查找注册用户ID

$showUser = $this->showUser($params['mobile']);

//主要是过滤掉领取优惠券为0的,用laravel的同学注意看看

$detail = $activity_link->each(function($item,$index) use ($showUser) {

$diffCouponQuantity = $this->diffCouponQuantity($item['config_id'],$item['quantity'],$item['activity_id'],$showUser);

$item->title = $this->getCoup

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值