温馨提示:本文共6038个字,读完预计16分钟。
/*
* 用戶每日任務記錄
* $data为數組
* 必填參數
* alias 别名 'SP', 'YP', 'TZ', 'PYQ', 'SCFX'
* openid 用戶openID
* fromid 任务来源id
* table_name 任务来源表名
* remark 备注 非必填
* */
public function zkSetTaskRows($data)
{
global $_W;
global $_GPC;
$snsSet = m("common")->getPluginset("sns");//sns配置信息
//判断参数
$alias = array('SP', 'YP', 'TZ', 'PYQ', 'SCFX');
$aliasTotitle = array('SP'=>'观看任意学科视频', 'YP'=>'收听任意学科音频', 'TZ'=>'每日发布一个帖子', 'PYQ'=>'分享朋友或朋友圈', 'SCFX'=>'收藏或分享一个产品');
if(!is_array($data) || $data[‘alias’] == ” || $data[‘openid’] == ” || $data[‘table_name’] == ” || $data[‘fromid’] == ''){
return '参数缺失';
}
if(!in_array($data[‘alias’],$alias)){
return '别名有误';
}
//是否開啟每日任務
$is_open_day = $snsSet[‘is_open_day’];
if(empty($is_open_day)){
return '未开启每日任务';
}
//获取任务积分
$task_rows = pdo_fetchall('select alias,credits from ' . tablename('ewei_shop_sns_daily_task') . ' where uniacid=:uniacid and enabled=1 ', array(':uniacid' => $_W[‘uniacid’]));
if(empty($task_rows)){
return '未配置每日任务';
}
$credits = array();
foreach($task_rows as $k => $v){
$credits[$v[‘alias’]] = $v[‘credits’];
}
//检查当日是否已做任务
//当日凌晨时间戳
$day0 = strtotime(date('Y-m-d'));
$daynow = time();
$daily_task_rows = pdo_fetch('select id from ' . tablename('ewei_shop_sns_daily_task_rows') . ' where uniacid=:uniacid and openid=:openid and alias=:alias and ( finishtime>:day0 and finishtime<:daynow ) ', array(':uniacid' => $_W[‘uniacid’], ‘:openid’ => $data[‘openid’], ‘:alias’ => $data[‘alias’], ':day0' => $day0, ':daynow' => $daynow));
if(empty($daily_task_rows)){
$data[‘credits’] = $credits[$data[‘alias’]];
$data[‘finishtime’] = $daynow;
$data[‘uniacid’] = $_W[‘uniacid’];
$data[‘isget’] = 0;
pdo_insert('ewei_shop_sns_daily_task_rows', $data);
return pdo_insertid();
}else{
return '今日任务‘'.$aliasTotitle[$data[‘alias’]].'’已存在';
}
}
/*
* 获取每日任务进度
* $openid 用户openID
* */
public function zkGetDailyTask($openid)
{
global $_W;
global $_GPC;
if(empty($openid)){
return '';
}
//获取任务列表
$daily_task = pdo_fetchall('select alias,link,title,displayorder,credits from ' . tablename('ewei_shop_sns_daily_task') . ' where uniacid=:uniacid and enabled = 1 order by displayorder desc', array(':uniacid' => $_W[‘uniacid’]));
//获取用户今日完成状态
$day0 = strtotime(date('Y-m-d'));
$daynow = time();
$daily_task_rows = pdo_fetchall('select id,alias,isget,credits from ' . tablename('ewei_shop_sns_daily_task_rows') . ' where uniacid=:uniacid and openid=:openid and ( finishtime>:day0 and finishtime<:daynow ) order by id ', array(':uniacid' => $_W[‘uniacid’],':openid' => $openid, ':day0' => $day0, ':daynow' => $daynow));
//封装今日完成任务数据
$ids = array();//完成任务的id集合
$isgets = array();//已完成任务是否领取集合
$alias = array();//任务别名集合
$credits = array();//任务积分集合
foreach($daily_task_rows as $k=>$v){
$ids[$v[‘alias’]] = $v[‘id’];
$isgets[$v[‘alias’]] = $v[‘isget’];
$alias[$v[‘alias’]] = $v[‘alias’];
$credits[$v[‘alias’]] = $v[‘credits’];
}
$taskData = array();//签到页面任务数据
$isfinish = 0;
foreach($daily_task as $key => $val){
$taskData[$val[‘alias’]][‘title’] = $val[‘title’];
$taskData[$val[‘alias’]][‘credits’] = $credits[$val[‘alias’]];
$taskData[$val[‘alias’]][‘id’] = $ids[$val[‘alias’]];
if(in_array($val[‘alias’],$alias)){
$taskData[$val[‘alias’]][‘link’] = 'javascript:;';
if($isgets[$val[‘alias’]]==0){//未领取
$isfinish ++ ;
$taskData[$val[‘alias’]][‘bottontxt’] = '领取';
}else{//已领取
$taskData[$val[‘alias’]][‘bottontxt’] = '已领取';
}
}else{//未完成
if(empty($taskData[$val[‘alias’]][‘credits’])){
$taskData[$val[‘alias’]][‘credits’] = $val[‘credits’];
}
$taskData[$val[‘alias’]][‘bottontxt’] = '去完成';
$taskData[$val[‘alias’]][‘link’] = $val[‘link’];
}
}
$res = array();
$res[‘taskData’] = $taskData;
$res[‘isfinish’] = $isfinish;
return $res;
}
/*
* 领取每日任务积分
* $openid 用户openID
* $id 待领取积分的任务记录id
* */
public function zkSetTaskCredits($openid,$id)
{
global $_W;
global $_GPC;
$id = intval($id);
if(empty($openid) || empty($id)){
return '参数缺失';
}
$aliasTotitle = array('SP'=>'观看任意学科视频', 'YP'=>'收听任意学科音频', 'TZ'=>'每日发布一个帖子', 'PYQ'=>'分享朋友或朋友圈', 'SCFX'=>'收藏或分享一个产品');
$day0 = strtotime(date('Y-m-d'));
$daynow = time();
$daily_task_row = pdo_fetch('select id,alias,isget,credits,openid from ' . tablename('ewei_shop_sns_daily_task_rows') . ' where uniacid=:uniacid and openid=:openid and id=:id and ( finishtime>:day0 and finishtime<:daynow ) limit 1 ', array(':uniacid' => $_W[‘uniacid’],':openid' => $openid, ':day0' => $day0, ':daynow' => $daynow, ':id' => $id));
if(!empty($daily_task_row)){
if($daily_task_row[‘isget’]==0){
$credit = intval($daily_task_row[‘credits’]);
$log = '(来源:'.$aliasTotitle[$daily_task_row[‘alias’]].')';
//发放积分
$this->zkSetCredits($openid,$credit,'credit1',$log);
//更新领取状态
pdo_update('ewei_shop_sns_daily_task_rows', array('isget' => 1), array('id' => $daily_task_row[‘id’]));
return 1;
}else{
return '已领取';
}
}else{
return '无奖励可领取';
}
}