424 行
17 KiB
PHP
可执行文件
424 行
17 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Retail\Controller;
|
|
|
|
use Think\Controller;
|
|
//[1.4.13]
|
|
class PlugRewardController extends Controller
|
|
{
|
|
/* 红包 */
|
|
public function reward()
|
|
{
|
|
$arr = array(
|
|
'editad' => '/index.php/Retail/PlugReward/editad',
|
|
'redSwitch' => '/index.php/Retail/PlugReward/redSwitch',
|
|
'reward_details' => '/index.php/Retail/PlugReward/reward_details',
|
|
'redDelete' => '/index.php/Retail/PlugReward/redDelete',
|
|
);
|
|
$authArr = checkFunction($arr);
|
|
$this->assign('authArr', $authArr);
|
|
$this->display();
|
|
}
|
|
// 红包添加
|
|
public function desss()
|
|
{
|
|
$this->display();
|
|
}
|
|
|
|
// 红包列表页
|
|
public function redlist()
|
|
{
|
|
|
|
$type = I('post.type'); // 活动类型
|
|
$status = I('post.status'); //红包状态
|
|
$starttime = I('post.starttime'); //开始时间
|
|
$endtime = I('post.endtime'); //结束时间
|
|
if($status!=''){
|
|
if($status==2){
|
|
$time['endtime'] = array('lt',time());
|
|
}else{
|
|
$map['status'] = $status;
|
|
}
|
|
}
|
|
if(!empty($type)){
|
|
$map['type'] = $type;
|
|
}
|
|
$user = session('merchant_userinfo');
|
|
$map['merchantid'] = $user['id'];
|
|
$map['is_del'] = 0;
|
|
if (!empty($starttime) && !empty($endtime)) {
|
|
$starttime = strtotime($starttime);
|
|
$endtime = strtotime($endtime);
|
|
$where['addtime'] = array('between',"$starttime,$endtime");
|
|
if($status!='' && $status==2){
|
|
$count = M('reward')->where($map)->where($where)->where($time)->count();
|
|
$info = M('reward')->where($map)->where($where)->where($time)->page($_POST['page'], $_POST['limit'])->order('id desc')->select();
|
|
}else{
|
|
$count = M('reward')->where($map)->where($where)->count();
|
|
$info = M('reward')->where($map)->where($where)->page($_POST['page'], $_POST['limit'])->order('id desc')->select();
|
|
}
|
|
}else{
|
|
if($status!='' && $status==2){
|
|
$count = M('reward')->where($map)->where($time)->count();
|
|
$info = M('reward')->where($map)->where($time)->page($_POST['page'], $_POST['limit'])->order('id desc')->select();
|
|
}else{
|
|
$count = M('reward')->where($map)->count();
|
|
$info = M('reward')->where($map)->page($_POST['page'], $_POST['limit'])->order('id desc')->select();
|
|
}
|
|
}
|
|
$res['code'] = 0;
|
|
$res['count'] = $count;
|
|
$res['data'] = $info;
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
//添加红包
|
|
public function editad()
|
|
{
|
|
$user = session('merchant_userinfo');
|
|
$merchantid = $user['id'];
|
|
// print_r($user);die;
|
|
if (IS_POST) {
|
|
$name = I('post.name');//活动名称
|
|
$reward_type = I('post.reward_type');//红包类型
|
|
$starttime = I('post.starttime');
|
|
$endtime = I('post.endtime');
|
|
if (empty($name)) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '请填写活动名称';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
//固定金额
|
|
if ($reward_type ==1) {
|
|
$fixed_money = I('post.fixed_money');
|
|
$number = I('post.number');
|
|
if(empty($fixed_money) || empty($number)){
|
|
$res['status'] = 0;
|
|
$res['msg'] = '固定金额或数量不能为空';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$Ad['fixed_money'] = $fixed_money;
|
|
$Ad['number'] = $number;
|
|
$Ad['lessnumber'] = $number;
|
|
}elseif ($reward_type ==2) {
|
|
//随机金额
|
|
$minmoney = I('post.minmoney');
|
|
$maxmoney = I('post.maxmoney');
|
|
if(empty($minmoney) || empty($maxmoney)){
|
|
$res['status'] = 0;
|
|
$res['msg'] = '最大最小金额不能为空';
|
|
$this->ajaxReturn($res);
|
|
}elseif ($minmoney>=$maxmoney) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '最小金额不能比最大金额大';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$money = I('post.money')?I('post.money'):NULL;
|
|
$number = I('post.number');
|
|
if(!empty($money)){
|
|
if ($money<$maxmoney) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '总金额不能小于最大金额';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
}
|
|
if($money==NULL){
|
|
$Ad['is_money'] = 0;
|
|
}
|
|
if(empty($number)){
|
|
$Ad['is_number'] = 0;
|
|
}
|
|
$Ad['minmoney'] = $minmoney;
|
|
$Ad['maxmoney'] = $maxmoney;
|
|
$Ad['money'] = $money;
|
|
$Ad['number'] = $number;
|
|
$Ad['lessnumber'] = $number;
|
|
$Ad['lessmoney'] = $money;
|
|
|
|
}elseif ($reward_type ==3) {
|
|
// 梯度金额
|
|
$reward_list = I('post.reward_list');
|
|
if(empty($reward_list)){
|
|
$res['status'] = 0;
|
|
$res['msg'] = '梯度金额不能为空';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$nub_json = json_decode($reward_list,true);
|
|
$number = 0;
|
|
foreach ($nub_json as $val) {
|
|
$number += $val['nub'];
|
|
}
|
|
$money = I('post.money')?I('post.money'):NULL;
|
|
if($money!=NULL){
|
|
$Ad['is_money'] = 1;
|
|
}
|
|
$Ad['money'] = $money;
|
|
$Ad['reward_list'] = $reward_list;
|
|
$Ad['number'] = $number;
|
|
$Ad['lessnumber'] = $number;
|
|
$Ad['lessmoney'] = $money;
|
|
}
|
|
if (!$starttime || !$endtime) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '请选择正确的时间';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
// 活动类型
|
|
$type = I('post.type');
|
|
// 领取限制
|
|
$is_everyday = I('post.is_everyday');
|
|
if($is_everyday==2){
|
|
$Ad['day_max_time'] = I('post.day_max_time');
|
|
}elseif ($is_everyday==3) {
|
|
$Ad['day_max_money'] = I('post.day_max_money')?I('post.day_max_money'):NULL;
|
|
}
|
|
//消费金额限制
|
|
if ($type == 2 || $type == 4) {
|
|
$needmoney = I('post.needmoney');
|
|
if (empty($needmoney)) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '消费金额不正确';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$Ad['needmoney'] = $needmoney;
|
|
}
|
|
if($type == 2 || $type == 3 || $type == 4){
|
|
//活动门店限制
|
|
$is_limit_store = I('post.is_limit_store');
|
|
$Ad['is_limit_store'] = $is_limit_store;
|
|
if($is_limit_store==1){
|
|
$limit_store_id = I('post.limit_store_id');
|
|
$Ad['limit_store_id'] = $limit_store_id;
|
|
}
|
|
//非会员限制
|
|
if($type == 3 || $type == 4){
|
|
$is_vip = I('post.is_vip');
|
|
$Ad['is_vip'] = $is_vip;
|
|
}
|
|
//会员等级限制
|
|
$is_class_limit = I('post.is_class_limit');
|
|
$Ad['is_class_limit'] = $is_class_limit;
|
|
if($is_class_limit == 1){
|
|
$class_type = I('post.class_type');
|
|
$Ad['class_type'] = $class_type;
|
|
}
|
|
}
|
|
$Ad['name'] = $name;
|
|
$Ad['reward_type'] = $reward_type;
|
|
$Ad['type'] = $type;
|
|
$Ad['starttime'] = strtotime($starttime);
|
|
$Ad['endtime'] = strtotime($endtime);
|
|
$Ad['merchantid'] = $merchantid;
|
|
$Ad['is_everyday'] = $is_everyday;
|
|
$map['merchantid'] = $merchantid;
|
|
$map['type'] = $type;
|
|
$one = M('reward')->where($map)->order('phase desc')->find(); // 查询是否存在数据。
|
|
if ($one) {
|
|
$sdata['status'] = 0;
|
|
$where['id'] = $one['id'];
|
|
M('reward')->where($where)->save($sdata);
|
|
$Ad['status'] = $one['status'];
|
|
$Ad['addtime'] = time();
|
|
$Ad['phase'] = $one['phase'] + 1; // 开启新的红包数据。
|
|
$ret = M('reward')->add($Ad);
|
|
} else {
|
|
$Ad['addtime'] = time();
|
|
$Ad['phase'] = 1;
|
|
$Ad['status'] = 0; // 添加红包时为关闭状态;
|
|
$ret = M('reward')->add($Ad);
|
|
}
|
|
if ($ret !== false) {
|
|
$res['status'] = 1;
|
|
$res['msg'] = '红包编辑成功';
|
|
if ($one) {
|
|
if ($one['status'] == 0) {
|
|
$res['msg'] = '红包添加成功,当前为关闭状态,开启红包功能请到红包主页';
|
|
} else {
|
|
$res['msg'] = '红包添加成功,当前为开启转台,修改状态请到红包主页';
|
|
}
|
|
}
|
|
if (!$one) {
|
|
$res['msg'] = '红包添加成功,当前为关闭状态,开启请到红包主页';
|
|
}
|
|
} else {
|
|
$res['status'] = 2;
|
|
$res['msg'] = '请检查参数';
|
|
}
|
|
// echo json_encode($res,JSON_UNESCAPED_UNICODE);
|
|
$this->ajaxReturn($res);
|
|
}
|
|
}
|
|
// 参加红包活动的店铺选项接口
|
|
public function mananger()
|
|
{
|
|
$user = session('merchant_userinfo');
|
|
$where['merchantid'] = $user['id'];
|
|
$res = M('retail_store')->field('id,storetag')->where($where)->select();
|
|
$this->ajaxReturn($res);
|
|
}
|
|
// 参加红包活动的会员等级选项接口
|
|
public function vipGrade()
|
|
{
|
|
$user = session('merchant_userinfo');
|
|
$integral = M('retail_vip_integral')->field('id,cardname,min_integral')->where(['merchantid'=>$user['id']])->select();
|
|
$this->ajaxReturn($integral);
|
|
}
|
|
//删除红包
|
|
public function redDelete()
|
|
{
|
|
$where['id'] = I('post.id');
|
|
$res = M('reward')->where($where)->find();
|
|
if ($res) {
|
|
if ($res['status'] == 1) {
|
|
$data['status'] = 0;
|
|
$data['msg'] = '请先关闭红包';
|
|
$this->ajaxReturn($data);
|
|
}
|
|
$rt = M('reward')->where($where)->save(array('is_del'=>1));
|
|
if ($rt) {
|
|
$data['status'] = 1;
|
|
$data['msg'] = '删除成功';
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['msg'] = '删除失败';
|
|
}
|
|
}
|
|
$this->ajaxReturn($data);
|
|
}
|
|
|
|
//红包开启关闭
|
|
public function redSwitch()
|
|
{
|
|
$user = session('merchant_userinfo');
|
|
$map['merchantid'] = $user['id'];
|
|
if (IS_POST) {
|
|
$id = I('post.id');
|
|
$status = I('post.status');
|
|
if ($status == 1) {
|
|
$res = M('reward')->where(array('id' => $id))->save(array('status' => 0));
|
|
if ($res) {
|
|
$data['status'] = 1;
|
|
$data['value'] = 0;
|
|
$data['msg'] = '关闭成功';
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['value'] = 0;
|
|
$data['msg'] = '关闭失败';
|
|
}
|
|
} else {
|
|
$times = time();
|
|
$endtime = M('reward')->where(array('id' => $id))->getField('endtime');
|
|
$starttime = M('reward')->where(array('id' => $id))->getField('starttime');
|
|
if ($times > $endtime) {
|
|
$data['status'] = 0;
|
|
$data['value'] = 0;
|
|
$data['msg'] = '开启失败,活动已过期!';
|
|
$this->ajaxReturn($data);
|
|
}
|
|
$type = M('reward')->where(array('id' => $id))->getField('type');
|
|
if($type==2){
|
|
$turntable_type = 4;
|
|
}elseif ($type==3) {
|
|
$turntable_type = 2;
|
|
}elseif ($type==4) {
|
|
$turntable_type = 3;
|
|
}else{
|
|
$turntable_type = 1;
|
|
}
|
|
$map['status'] = 1;
|
|
$map['type'] = $type;
|
|
// 多开
|
|
$turntable = M('turntable')->where(array('merchantid' => $map['merchantid'], 'status' => 1, 'turntable_type' => $turntable_type))->select();
|
|
$info = M('reward')->where($map)->select();
|
|
if ($info) {
|
|
$data['status'] = 0;
|
|
$data['value'] = 0;
|
|
foreach ($info as $value) {
|
|
$status = $starttime - $value['starttime'];
|
|
if ($status > 0) {
|
|
$status2 = $starttime - $value['endtime'];
|
|
if ($status2 <= 0) {
|
|
$data['msg'] = '开启失败,请先关闭同类型同时间段开启的红包!';
|
|
$this->ajaxReturn($data);
|
|
}
|
|
} else {
|
|
$status2 = $endtime - $value['starttime'];
|
|
if ($status2 > 0) {
|
|
$data['msg'] = '开启失败,请先关闭同类型同时间段开启的红包!';
|
|
$this->ajaxReturn($data);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
if($turntable) {
|
|
$data['status'] = 0;
|
|
$data['value'] = 0;
|
|
foreach ($turntable as $val) {
|
|
$status = $starttime - $val['start_time'];
|
|
if ($status > 0) {
|
|
$status2 = $starttime - $val['end_time'];
|
|
if ($status2 <= 0) {
|
|
$data['msg'] = '开启失败,请先关闭同类型同时间段开启的大转盘!';
|
|
$this->ajaxReturn($data);
|
|
}
|
|
} else {
|
|
$status2 = $endtime - $val['start_time'];
|
|
if ($status2 > 0) {
|
|
$data['msg'] = '开启失败,请先关闭同类型同时间段开启的大转盘!';
|
|
$this->ajaxReturn($data);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$res = M('reward')->where(array('id' => $id))->save(array('status' => 1));
|
|
if ($res) {
|
|
$data['status'] = 1;
|
|
$data['value'] = 1;
|
|
$data['msg'] = '开启成功';
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['value'] = 0;
|
|
$data['msg'] = '开启失败';
|
|
}
|
|
}
|
|
$this->ajaxReturn($data);
|
|
}
|
|
}
|
|
|
|
//红包领取详情
|
|
public function reward_details()
|
|
{
|
|
$starttime = I('post.starttime'); //开始时间
|
|
$endtime = I('post.endtime'); //结束时间
|
|
$storeid = I('post.storeid'); //门店id
|
|
if(!empty($storeid)){
|
|
$map['storeid'] = $storeid;
|
|
}
|
|
$map['reward_id'] = I('post.id');//红包id
|
|
$user = session('merchant_userinfo');
|
|
$map['merchantid'] = $user['merchantid'];
|
|
$map['status'] = 1;
|
|
if(!empty($starttime) && !empty($endtime)){
|
|
$starttime = strtotime($starttime);
|
|
$endtime = strtotime($endtime);
|
|
$where['addtime'] = array('between',"$starttime,$endtime");
|
|
$count = M('reward_record')->where($map)->where($where)->count();
|
|
$info = M('reward_record')->field('id,vid,money,addtime,storeid')->where($map)->where($where)->page($_POST['page'], $_POST['limit'])->select();
|
|
}else{
|
|
$count = M('reward_record')->where($map)->count();
|
|
$info = M('reward_record')->field('id,vid,money,addtime,storeid')->where($map)->page($_POST['page'], $_POST['limit'])->select();
|
|
}
|
|
foreach ($info as &$val) {
|
|
$val['nickname'] = M('retail_vip')->where(array('id' => $val['vid']))->getField('nickname');
|
|
$val['name'] = M('retail_vip')->where(array('id' => $val['vid']))->getField('name');
|
|
$val['mobile_phone'] = M('retail_vip')->where(array('id' => $val['vid']))->getField('mobile_phone');
|
|
$val['storename'] = M('retail_store')->where(array('id' => $val['storeid']))->getField('storetag');
|
|
$val['addtime'] = date('Y-m-d', $val['addtime']);
|
|
}
|
|
$res['code'] = 0;
|
|
$res['count'] = $count;
|
|
$res['data'] = $info;
|
|
$this->ajaxReturn($res);
|
|
}
|
|
} |