test
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

468 lines
16 KiB

<?php
defined('IN_IA') or exit('Access Denied');
/**
* Comment: 抽奖活动管理
* Author: wlf
* Class luckydraw_WeliamController
*/
class Luckydraw_WeliamController {
/**
* Comment: 获取抽奖活动信息列表
* Author: wlf
* Date: 2021/12/01 11:33
*/
public function index(){
global $_W,$_GPC;
//参数获取
$page = max(1, intval($_GPC['page']));
$pageIndex = 10;
$title = $_GPC['title'] ? : '';//活动名称
$type = intval($_GPC['type']) ? : 0;//奖品类型:1=现金红包,2=线上红包,3=积分,4=激活码,5=商品
$status = intval($_GPC['status']) ? : 0;//状态:1=开启,2=关闭
//条件生成
$where = array();
$where['uniacid'] = $_W['uniacid'];
$where['aid'] = $_W['aid'];
if($title) $where['title@'] = "%{$title}%";
if($type > 0){
if($type == 2){
$where['drawstatus'] = 0;
}else{
$where['drawstatus'] = $type;
}
}
if($status > 0){
if($status == 2){
$where['status'] = 0;
}else{
$where['status'] = $type;
}
}
//查询
$goodslist = Util::getNumData('*','wlmerchant_luckydraw',$where,'id DESC',$page,$pageIndex,1);
$pager = $goodslist[1];
$list = $goodslist[0];
//信息处理
foreach ($list as &$li){
$li['starttime'] = date('Y-m-d H:i',$li['starttime']);
$li['endtime'] = date('Y-m-d H:i',$li['endtime']);
$li['createtime'] = date('Y-m-d H:i',$li['createtime']);
}
include wl_template('luckydraw/index');
}
/**
* Comment: 编辑抽奖活动
* Author: wlf
* Date: 2021/12/02 11:36
*/
public function edit(){
global $_W,$_GPC;
$id = $_GPC['id'];
//获取奖品信息
$prizelist = pdo_getall('wlmerchant_luckydraw_goods',array('status' => 1,'uniacid' => $_W['uniacid'],'aid' => $_W['aid']),array('id','title'));
if($id > 0){
$draw = pdo_get('wlmerchant_luckydraw',array('id' => $id));
$draw['detail'] = htmlspecialchars_decode(base64_decode($draw['detail']));
$draw['adv'] = unserialize($draw['advarray']);
}else{
$draw = [
'starttime' => time(),
'endtime' => time() + 86400*30,
];
}
if($_W['ispost']) {
$data = $_GPC['draw'];
$advlogo = $_GPC['advlogo'];
$advlink = $_GPC['advlink'];
$advarray = [];
foreach($advlogo as $dkey => $dle){
$dlea['thumb'] = $advlogo[$dkey];
$dlea['link'] = $advlink[$dkey];
$advarray[] = $dlea;
}
$data['advarray'] = serialize($advarray);
$data['detail'] = base64_encode(htmlspecialchars_decode($data['detail']));
$time = $_GPC['time'];
$data['starttime'] = strtotime($time['start']);
$data['endtime'] = strtotime($time['end']);
//一堆的校验和数据规范 (组团数 中奖数 数量规范)
if(empty($data['oneprizeid'])){
wl_message('请设置一等奖奖品!' , referer() , 'error');
}
if(empty($data['oneprizenum'])){
wl_message('请设置一等奖中奖人数!' , referer() , 'error');
}
if(empty($data['twoprizenum']) && !empty($data['twoprizeid'])){
wl_message('请设置二等奖中奖人数!' , referer() , 'error');
}
if(empty($data['threeprizenum']) && !empty($data['threeprizeid'])){
wl_message('请设置三等奖中奖人数!' , referer() , 'error');
}
if($data['drawstatus'] > 0){
if(empty($data['drawsucnum'])){
$data['drawsucnum'] = 1;
}
$allprizenum = $data['oneprizenum'];
if(!empty($data['twoprizeid'])){
$allprizenum += $data['twoprizenum'];
}
if(!empty($data['threeprizeid'])){
$allprizenum += $data['threeprizenum'];
}
if($data['drawcodenum'] < $allprizenum){
wl_message('组团抽奖码个数不能少于中奖数!' , referer() , 'error');
}
}
if($id > 0){
$res = pdo_update('wlmerchant_luckydraw',$data,array('id' => $id));
}else{
$data['uniacid'] = $_W['uniacid'];
$data['aid'] = $_W['aid'];
$data['createtime'] = time();
$res = pdo_insert(PDO_NAME . 'luckydraw', $data);
}
if ($res){
wl_message('操作成功' , web_url('luckydraw/luckydraw/index') , 'success');
} else{
wl_message('操作失败,请刷新重试!' , referer() , 'error');
}
}
include wl_template('luckydraw/edit');
}
public function advinfo(){
global $_W,$_GPC;
$kw = $_GPC['kw'];
include wl_template('luckydraw/advinfo');
}
/**
* Comment: 删除抽奖活动
* Author: wlf
* Date: 2021/12/06 11:24
*/
public function delete(){
global $_W,$_GPC;
//参数信息获取
$id = $_GPC['id'] OR show_json(0, '参数错误,请刷新重试!');
$mysqlFun = new MysqlFunction();
//删除内容
$mysqlFun->startTrans();
$res = pdo_delete(PDO_NAME."luckydraw",['id'=>$id]);
//if($res && pdo_count(PDO_NAME."draw_join",['draw_id'=>$id]) > 0) $res = pdo_delete(PDO_NAME."draw_join",['draw_id'=>$id]);
if ($res) {
$mysqlFun->commit();
show_json(1 , '删除成功');
}else {
$mysqlFun->rollback();
show_json(0 , '删除失败,请刷新重试');
}
}
/**
* Comment: 基础设置
* Author: wlf
* Date: 2021/12/09 16:11
*/
public function set(){
global $_W,$_GPC;
$settings = Setting::agentsetting_read('luckydraw');
if (checksubmit('submit')) {
$base = $_GPC['set'];
Setting::agentsetting_save($base, 'luckydraw');
wl_message('更新设置成功!', web_url('luckydraw/luckydraw/set'));
}
include wl_template("luckydraw/set");
}
/**
* Comment: 抽奖码列表
* Author: wlf
* Date: 2021/12/09 21:34
*/
public function prizeIndex(){
global $_W,$_GPC;
//参数获取
$page = max(1, intval($_GPC['page']));
$pageIndex = 10;
//条件筛选
$where = array();
$where['uniacid'] = $_W['uniacid'];
$where['aid'] = $_W['aid'];
$status = $_GPC['status'];
if($status > 0){
if($status == 5){
$where['status'] = 0;
}else{
$where['status'] = $status;
}
}
$recordid = $_GPC['recordid'];
if($_GPC['keyword']){
$keyword = $_GPC['keyword'];
if($_GPC['keywordtype'] == 1){
$params[':name'] = "%{$keyword}%";
$members = pdo_fetchall("SELECT * FROM ".tablename('wlmerchant_member')." WHERE uniacid = {$_W['uniacid']} AND nickname LIKE :name",$params);
if($members){
$mids = "(";
foreach ($members as $key => $v) {
if($key == 0){
$mids.= $v['id'];
}else{
$mids.= ",".$v['id'];
}
}
$mids.= ")";
$where['mid#'] = $mids;
}else{
$where['mid'] = 0;
}
}else if($_GPC['keywordtype'] == 2){
$params[':mobile'] = "%{$keyword}%";
$members = pdo_fetchall("SELECT * FROM ".tablename('wlmerchant_member')." WHERE uniacid = {$_W['uniacid']} AND mobile LIKE :mobile",$params);
if($members){
$mids = "(";
foreach ($members as $key => $v) {
if($key == 0){
$mids.= $v['id'];
}else{
$mids.= ",".$v['id'];
}
}
$mids.= ")";
$where['mid#'] = $mids;
}else{
$where['mid'] = 0;
}
}else if($_GPC['keywordtype'] == 3){
$where['codenum@'] = "%{$keyword}%";
}else if($_GPC['keywordtype'] == 4){
$where['draw_reid'] = $keyword;
}
}
if($_GPC['time_limit']){
$time_limit = $_GPC['time_limit'];
$starttime = strtotime($_GPC['time_limit']['start']);
$endtime = strtotime($_GPC['time_limit']['end']);
if($_GPC['timetype'] == 1){
$where['drawtime>'] = $starttime;
$where['drawtime<'] = $endtime+86400;
}else if($_GPC['timetype'] == 2){
$where['gettime>'] = $starttime;
$where['gettime<'] = $endtime+86400;
}
}
if (empty($starttime) || empty($endtime)) {
$starttime = strtotime('-1 month');
$endtime = time();
}
$codelist = Util::getNumData('*','wlmerchant_luckydraw_drawcode',$where,'createtime DESC',$page,$pageIndex,1);
$pager = $codelist[1];
$list = $codelist[0];
foreach ($list as $key => &$li) {
$member = pdo_get('wlmerchant_member',array('id' => $li['mid']),array('avatar','nickname','mobile'));
$li['avatar'] = tomedia($member['avatar']);
$li['nickname'] = $member['nickname'];
$li['mobile'] = $member['mobile'];
if($li['draw_goods_id'] > 0){
$goods = pdo_get('wlmerchant_luckydraw_goods',array('id' => $li['draw_goods_id']),array('title','image'));
$li['goodslogo'] = tomedia($goods['image']);
$li['goodsname'] = $goods['title'];
}
if($li['createtime'] > 0){
$li['createtime'] = date('Y-m-d H:i:s',$li['createtime']);
}
if($li['gettime'] > 0){
$li['gettime'] = date('Y-m-d H:i:s',$li['gettime']);
}
if($li['drawtime'] > 0){
$li['drawtime'] = date('Y-m-d H:i:s',$li['drawtime']);
}
switch ($li['plugin']){
case 'rush':
$type = 1;
$li['pluginname'] = '抢购';
break;
case 'groupon':
$type = 10;
$li['pluginname'] = '团购';
break;
case 'wlfightgroup':
$type = 2;
$li['pluginname'] = '拼团';
break;
case 'coupon':
$type = 3;
$li['pluginname'] = '超级券';
break;
case 'bargain':
$type = 12;
$li['pluginname'] = '砍价';
break;
case 'activity':
$type = 9;
$li['pluginname'] = '同城活动';
break;
case 'citydelivery':
$type = 14;
$li['pluginname'] = '同城配送';
break;
case 'payonline':
$type = 11;
$li['pluginname'] = '在线买单';
break;
case 'drawvideo':
$type = 0;
$li['pluginname'] = '激励视频';
break;
case 'drawshare':
$type = 0;
$li['pluginname'] = '分享好友';
break;
}
if($li['orderid'] > 0 && $type > 0){
$li['url'] = web_url('order/wlOrder/orderdetail',['orderid' => $li['orderid'],'type' => $type]);
}
$draw_activity = pdo_get(PDO_NAME.'luckydraw',array('id'=>$li['draw_acid']),['title','twoprizenum','threeprizenum']);
$li['drawtitle'] = $draw_activity['title'];
$li['twoprizenum'] = $draw_activity['twoprizenum'];
$li['threeprizenum'] = $draw_activity['threeprizenum'];
}
include wl_template("luckydraw/prizeIndex");
}
/**
* Comment: 活动记录表
* Author: wlf
* Date: 2021/12/09 23:28
*/
public function recordIndex(){
global $_W,$_GPC;
//参数获取
$page = max(1, intval($_GPC['page']));
$pageIndex = 10;
//条件筛选
$where = array();
$where['uniacid'] = $_W['uniacid'];
$where['aid'] = $_W['aid'];
$drawid = $_GPC['activityid'];
$where['drawid'] = $drawid;
$status = $_GPC['status'];
if($status > 0){
if($status == 3){
$where['status'] = 0;
}else{
$where['status'] = $status;
}
}
$draw = pdo_get('wlmerchant_luckydraw',array('id' => $drawid),array('title'));
if(empty($draw)){
wl_message('活动id错误!', web_url('luckydraw/luckydraw/index'));
}
$recordlist = Util::getNumData('*','wlmerchant_luckydraw_record',$where,'createtime DESC',$page,$pageIndex,1);
$pager = $recordlist[1];
$list = $recordlist[0];
include wl_template("luckydraw/recordIndex");
}
/**
* Comment: 活动开奖
* Author: wlf
* Date: 2021/12/09 23:28
*/
public function drawing(){
global $_W,$_GPC;
$id = $_GPC['id'];
$mysqlFun = new MysqlFunction();
//删除内容
$mysqlFun->startTrans();
$res = Luckydraw::drawIng($id);
if ($res) {
$mysqlFun->commit();
show_json(1 , '操作成功');
}else {
$mysqlFun->rollback();
show_json(0 , '操作失败,请刷新重试');
}
}
/**
* Comment: 内定奖励
* Author: wlf
* Date: 2022/01/10 17:45
*/
public function setPreset(){
global $_W,$_GPC;
$id = $_GPC['id'];
$preset = $_GPC['preset'];
$acid = $_GPC['acid'];
$reid = $_GPC['reid'];
$activity = pdo_get(PDO_NAME.'luckydraw',array('id'=>$acid),['oneprizenum','twoprizenum','threeprizenum']);
if($preset == 1){
$maxnum = $activity['oneprizenum'];
$tiptext = '一等奖';
}else if($preset == 2){
$maxnum = $activity['twoprizenum'];
$tiptext = '二等奖';
}else if($preset == 3){
$maxnum = $activity['threeprizenum'];
$tiptext = '三等奖';
}
//查询已内定人数
$anum = pdo_fetchcolumn('SELECT count(id) FROM '.tablename('wlmerchant_luckydraw_drawcode')." WHERE draw_reid = {$reid} AND preset = {$preset}");
if($anum < $maxnum){
$res = pdo_update('wlmerchant_luckydraw_drawcode',array('preset' => $preset),array('id' => $id));
}else{
show_json(0,'已内定全部'.$maxnum.'位'.$tiptext.'人数');
}
if($res){
show_json(1 , '操作成功');
}else{
show_json(0 , '操作失败,请刷新重试');
}
}
/**
* Comment: 取消内定
* Author: wlf
* Date: 2022/01/10 17:56
*/
public function cancelPreset(){
global $_W,$_GPC;
$id = $_GPC['id'];
$res = pdo_update('wlmerchant_luckydraw_drawcode',array('preset' => 0),array('id' => $id));
if($res){
show_json(1 , '操作成功');
}else{
show_json(0 , '操作失败,请刷新重试');
}
}
}