文件
mashangyoujiu/Application/Retail/Controller/PlugRewardController.class.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);
}
}