Files
Smart-Farm/app/farm/model/CouponRecord.php
2025-12-22 14:32:54 +08:00

368 lines
7.3 KiB
PHP

<?php
namespace app\farm\model;
use app\BaseModel;
use app\member\model\Level;
use think\facade\Db;
class CouponRecord extends BaseModel
{
//定义表名
protected $name = 'lbfarm_coupon_record';
protected $append = [
];
//
/**
* @author chenniang
* @DataTime: 2021-03-15 14:37
* @功能说明:后台列表
*/
public function adminDataList($dis,$page=10,$where=[]){
$data = $this->alias('a')
->join('shequshop_school_cap_list b','a.cap_id = b.id')
->where($dis)
->where(function ($query) use ($where){
$query->whereOr($where);
})
->field('a.*,b.store_name,b.store_img,b.name,b.mobile')
->group('a.id')
->order('a.id desc')
->paginate($page)
->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2021-03-15 14:37
* @功能说明:后台审核详情
*/
public function adminDataInfo($dis){
$data = $this->alias('a')
->join('shequshop_school_cap_list b','a.cap_id = b.id')
->where($dis)
->field('a.*,b.store_name,b.store_img,b.school_name,b.mobile')
->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:04
* @功能说明:添加
*/
public function dataAdd($data){
$data['create_time'] = time();
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:05
* @功能说明:编辑
*/
public function dataUpdate($dis,$data){
$res = $this->where($dis)->update($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2021-04-08 17:08
* @功能说明:审核中
*/
public function shIng($cap_id){
$dis = [
'cap_id' => $cap_id,
'status' => 1
];
$count = $this->where($dis)->count();
return $count;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:06
* @功能说明:列表
*/
public function dataList($dis,$page=10){
$data = $this->where($dis)->order('id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:43
* @功能说明:
*/
public function dataInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2021-07-06 00:02
* @功能说明:用户订单数
*/
public function couponCount($user_id){
$dis[] = ['user_id','=',$user_id];
$dis[] = ['status','=',1];
$dis[] = ['end_time','>',time()];
$data = $this->where($dis)->sum('num');
return $data;
}
/**
* @author chenniang
* @DataTime: 2021-07-08 11:57
* @功能说明:初始化
*/
public function initCoupon($uniacid){
$dis[] = ['status','=',1];
$dis[] = ['uniacid','=',$uniacid];
$dis[] = ['end_time','<',time()];
$res = $this->dataUpdate($dis,['status'=>3]);
return $res;
}
/**
* @author chenniang
* @DataTime: 2021-07-12 15:36
* @功能说明:派发优惠券
*/
public function recordAdd($coupon_id,$user_id,$num=1,$user_get=0,$record_id=0){
$coupon_model = new Coupon();
$coupon = $coupon_model->dataInfo(['id'=>$coupon_id]);
//用户自己领取的优惠券
if($user_get==1){
if($coupon['send_type']!=2){
return ['code'=>500,'msg'=>'优惠券已下架'];
}
if($coupon['stock']<$num){
return ['code'=>500,'msg'=>'库存不足'];
}
//判断是否领取过
$have = $this->dataInfo(['user_id'=>$user_id,'coupon_id'=>$coupon_id]);
if(!empty($have)){
return ['code'=>500,'msg'=>'你已经领取过了'];
}
}
$insert = [
'uniacid' => $coupon['uniacid'],
'user_id' => $user_id,
'coupon_id' => $coupon_id,
'title' => $coupon['title'],
'type' => $coupon['type'],
'full' => $coupon['full'],
'discount' => $coupon['discount'],
'rule' => $coupon['rule'],
'text' => $coupon['text'],
'is_shop' => $coupon['is_shop'],
'is_land' => $coupon['is_land'],
'is_claim' => $coupon['is_claim'],
'num' => $num,
'record_id' => $record_id,
'start_time'=> $coupon['time_limit']==2?time():$coupon['start_time'],
'end_time' => $coupon['time_limit']==2?time()+$coupon['day']*86400:$coupon['end_time'],
];
$res = $this->dataAdd($insert);
if($res==0){
return $res;
}
if($coupon['send_type']==2){
//修改优惠券库存
$res = $coupon_model->dataUpdate(['id'=>$coupon_id,'i'=>$coupon['i']],['stock'=>$coupon['stock']-$num,'i'=>$coupon['i']+1]);
if($res==0){
return ['code'=>500,'msg'=>'领取失败'];
}
}
return $res;
}
/**
* @author chenniang
* @DataTime: 2021-08-29 23:02
* @功能说明:退换优惠券
*/
public function couponRefund($order_id){
$order_model = new Order();
$coupon_id = $order_model->where(['id'=>$order_id])->value('coupon_id');
if(!empty($coupon_id)){
$this->dataUpdate(['id'=>$coupon_id],['status'=>1,'use_time'=>0,'order_id'=>0]);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2021-07-13 09:34
* @功能说明:使用优惠券
*/
public function couponUse($coupon_id,$order_id=0,$use_type=0){
$record = $this->dataInfo(['id'=>$coupon_id]);
if($record['num']>1){
$this->dataUpdate(['id'=>$coupon_id],['num'=>$record['num']-1]);
unset($record['id']);
if(isset($record['goods'])){
unset($record['goods']);
}
if(isset($record['shop_goods'])){
unset($record['shop_goods']);
}
if(isset($record['restaurant_goods'])){
unset($record['restaurant_goods']);
}
$record['pid'] = $coupon_id;
$record['num'] = 1;
$record['status'] = 2;
$record['use_time'] = time();
$record['order_id'] = $order_id;
$record['use_type'] = $use_type;
$this->insert($record);
$coupon_id = $this->getLastInsID();
}else{
$this->dataUpdate(['id'=>$coupon_id],['status'=>2,'use_time'=>time(),'order_id'=>$order_id,'use_type'=>$use_type]);
}
//带客有礼 给分享者发券
if(!empty($record['record_id'])){
$atv_model = new BagRecord();
$atv_info = $atv_model->dataInfo(['id'=>$record['record_id']]);
$res = $this->recordAdd($atv_info['share_coupon'],$atv_info['share_user']);
}
return $coupon_id;
}
}