|
|
<?php
|
|
|
namespace Sdk\Controller;
|
|
|
use Think\Controller;
|
|
|
use App\Logic\UserLogic;
|
|
|
use App\Model\AdvModel;
|
|
|
class NoticeController extends BaseController{
|
|
|
|
|
|
// 系统公告弹窗
|
|
|
// author yyh 2018.10.18
|
|
|
public function today_notice(){
|
|
|
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
|
|
|
$map['game_id'] = $request['game_id'];
|
|
|
$time = time();
|
|
|
$map['start_time'] = ['elt',$time];
|
|
|
|
|
|
$map['_string'] = ' end_time >= '.$time.' or end_time = 0 ';
|
|
|
$map['status'] = 1;
|
|
|
$notice = M('Notice','tab_');
|
|
|
$list = $notice
|
|
|
->field('title,content')
|
|
|
->where($map)
|
|
|
->order('level desc')
|
|
|
->select();
|
|
|
$this->new_set_message(200, "success", $list);
|
|
|
}
|
|
|
//消息中心通知
|
|
|
// author yyh 2018.10.18
|
|
|
// type 1 公告 2分享平台币奖励 3分享积分奖励
|
|
|
public function notice_list(){
|
|
|
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
|
|
|
$map['game_id'] = $request['game_id'];
|
|
|
$map['start_time'] = ['elt',time()];
|
|
|
$time = time();
|
|
|
$map['_string'] = ' end_time >= '.$time.' or end_time = 0 ';
|
|
|
|
|
|
|
|
|
|
|
|
$map['status'] = 1;
|
|
|
$notice = M('Notice','tab_');//type = 1
|
|
|
$share = M('ShareRecord','tab_');//type = 2
|
|
|
$pointrecord = M('PointRecord','tab_');//type = 3
|
|
|
$page = intval($request['p']);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$row = intval($request['row'])?:10;
|
|
|
//广告数据
|
|
|
$notice_list = $notice
|
|
|
->field('id as notice_id,title,start_time as create_time,1 as type')
|
|
|
->where($map)
|
|
|
->order('level desc,create_time desc')
|
|
|
->select();
|
|
|
$notice_read_model = M('notice_read', 'tab_');
|
|
|
$notice_read = M('notice_read', 'tab_')
|
|
|
->where(['user_id' => $request['user_id']])
|
|
|
->getField('notice_id', true);
|
|
|
foreach($notice_list as $key => $value) {
|
|
|
$notice_list[$key]['read'] = in_array($value['notice_id'],$notice_read)? 1 : 0;
|
|
|
}
|
|
|
|
|
|
//分享邀请好友平台币奖励数据
|
|
|
$share_data = $share
|
|
|
->field('id as notice_id,user_account,award_coin,game_id,create_time,read')
|
|
|
->where(['invite_id'=>$request['user_id'],'award_coin'=>['gt',0]])
|
|
|
->select();
|
|
|
$share_list = [];
|
|
|
foreach ($share_data as $key => $value) {
|
|
|
$share_list[$key]['title'] = '恭喜您成功获得'.$value['award_coin'].'个平台币奖励!';
|
|
|
$share_list[$key]['create_time'] = $value['create_time'];
|
|
|
$share_list[$key]['notice_id'] = $value['notice_id'];
|
|
|
$share_list[$key]['type'] = 2;
|
|
|
$share_list[$key]['read'] = $value['read'];
|
|
|
}
|
|
|
//分享邀请好友积分奖励数据
|
|
|
$precord_data = $pointrecord
|
|
|
->field('id as notice_id,point,be_invited_id,invited_game_id,create_time,read')
|
|
|
->where(['type_id'=>6,'user_id'=>$request['user_id'],'point'=>['gt',0]])
|
|
|
->select();
|
|
|
foreach ($precord_data as $key => $value) {
|
|
|
$precord_list[$key]['title'] = '恭喜您成功获得'.$value['point'].'个积分奖励!';
|
|
|
$precord_list[$key]['create_time'] = $value['create_time'];
|
|
|
$precord_list[$key]['notice_id'] = $value['notice_id'];
|
|
|
$precord_list[$key]['type'] = 3;
|
|
|
$precord_list[$key]['read'] = $value['read'];
|
|
|
}
|
|
|
|
|
|
$new_list[0] = $notice_list;
|
|
|
$new_list[1] = $share_list;
|
|
|
$new_list[2] = $precord_list;
|
|
|
|
|
|
foreach ($new_list as $key => $value) {
|
|
|
if(empty($value)){
|
|
|
unset($new_list[$key]);
|
|
|
}
|
|
|
}
|
|
|
$new_list_new = array_values($new_list);
|
|
|
foreach ($new_list_new as $key => $value) {
|
|
|
foreach ($value as $k => $v) {
|
|
|
$new_arr[] = $v;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$new_data_arr = my_sort($new_arr,'create_time',SORT_DESC);
|
|
|
|
|
|
$count = count($new_data_arr);
|
|
|
|
|
|
if($count<=$row){
|
|
|
if($page==1) {
|
|
|
$new_data = $new_data_arr;
|
|
|
} else {
|
|
|
$new_data = [];
|
|
|
}
|
|
|
}else{
|
|
|
$size=$row;//每页显示的记录数
|
|
|
$pnum = ceil($count / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
$new_data = array_slice($new_data_arr, ($page-1)*$size, $size);
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->new_set_message(200, "success", $new_data?$new_data:[]);
|
|
|
}
|
|
|
//通知详情
|
|
|
//yyh 2018.10.18
|
|
|
public function notice_detail(){
|
|
|
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
|
|
|
$map['id'] = $request['notice_id'];
|
|
|
switch ($request['type']) {
|
|
|
case '1':
|
|
|
$model = M('Notice','tab_');
|
|
|
$field = 'title,content,start_time as create_time';
|
|
|
break;
|
|
|
|
|
|
case '2':
|
|
|
$model = M('ShareRecord','tab_');
|
|
|
$map['invite_id'] = $request['user_id'];
|
|
|
$field = 'user_account,award_coin,game_id,create_time';
|
|
|
$model->where($map)->setField('read',1);
|
|
|
$share_count= $model->where(['invite_id'=>$request['user_id'],'award_coin'=>['gt',0],'read'=>0])->count();
|
|
|
break;
|
|
|
|
|
|
case '3':
|
|
|
$model = M('PointRecord','tab_');
|
|
|
$map['user_id'] = $request['user_id'];
|
|
|
$field = 'point,be_invited_id,invited_game_id,create_time';
|
|
|
$model->where($map)->setField('read',1);
|
|
|
$point_count= $model->where(['type_id'=>6,'user_id'=>$request['user_id'],'point'=>['gt',0],'read'=>0])->count();
|
|
|
break;
|
|
|
}
|
|
|
$detail = $model
|
|
|
->field($field)
|
|
|
->where($map)
|
|
|
->find();
|
|
|
switch ($request['type']) {
|
|
|
case '1':
|
|
|
$data['title'] = $detail['title'];
|
|
|
$data['content'] = $detail['content'];
|
|
|
$data['create_time'] = $detail['create_time'];
|
|
|
$data['type'] = $request['type'];
|
|
|
$notice_read = M('notice_read', 'tab_')->where(['user_id' => $request['user_id'],['notice_id' => $request['notice_id']]])->find();
|
|
|
if(empty($notice_read))
|
|
|
{
|
|
|
$arr['notice_id'] = $request['notice_id'];
|
|
|
$arr['user_id'] = $request['user_id'];
|
|
|
$arr['is_read'] = 1;
|
|
|
$arr['create_time'] = time();
|
|
|
M('notice_read','tab_')->data($arr)->add();
|
|
|
}
|
|
|
$data['unread_count'] = 0;
|
|
|
|
|
|
//获取公告未读条数
|
|
|
$time = time();
|
|
|
$notice = M('notice', 'tab_')->where('start_time < ' . $time . ' AND game_id = ' . $request['game_id']. ' AND (end_time = 0 OR end_time >' . $time . ')')->getField('id',true);
|
|
|
if(!empty($notice))
|
|
|
{
|
|
|
$data['unread_count'] += count($notice);
|
|
|
$where['notice_id'] = ['in', implode(',', $notice)];
|
|
|
$where['user_id'] = $request['user_id'];
|
|
|
$where['is_read'] = 1;
|
|
|
$notice_read_count = M('notice_read', 'tab_')->where($where)->count();
|
|
|
$data['unread_count'] -= $notice_read_count;
|
|
|
}
|
|
|
break;
|
|
|
case '2':
|
|
|
$game_name = get_game_name($detail['game_id']);
|
|
|
$data['title'] = '恭喜您成功获得'.$detail['award_coin'].'个平台币奖励!';
|
|
|
$data['content'] .= '奖励平台币:'.$detail['award_coin'];
|
|
|
if($detail['game_id']>0){
|
|
|
$data['content'] .= '
|
|
|
分享游戏:'.get_game_name($detail['game_id']);
|
|
|
}
|
|
|
$data['content'] .= '
|
|
|
邀请好友账号:'.$detail['user_account'];
|
|
|
$data['content'] .= '
|
|
|
奖励时间:'.date('Y-m-d H:i:s',$detail['create_time']);
|
|
|
$data['create_time'] = $detail['create_time'];
|
|
|
$data['type'] = $request['type'];
|
|
|
$data['award_coin'] = $detail['award_coin']>0?$detail['award_coin']:0;
|
|
|
$data['game_name'] = !empty($game_name)?$game_name:'';
|
|
|
$data['user_account'] = !empty($detail['user_account'])?$detail['user_account']:'';
|
|
|
$data['name']='平台币奖励';
|
|
|
$data['unread_count'] = $share_count;
|
|
|
break;
|
|
|
|
|
|
case '3':
|
|
|
$game_name = get_game_name($detail['invited_game_id']);
|
|
|
$user_account=get_user_entity($detail['be_invited_id'])['account'];
|
|
|
$data['title'] = '恭喜您成功获得'.$detail['point'].'个积分奖励!';
|
|
|
$data['content'] .= '奖励积分:'.$detail['point'];
|
|
|
if($detail['invited_game_id']>0){
|
|
|
$data['content'] .= '
|
|
|
分享游戏:'.get_game_name($detail['invited_game_id']);
|
|
|
}
|
|
|
$data['content'] .= '
|
|
|
邀请好友账号:'.get_user_entity($detail['be_invited_id'])['account'];
|
|
|
$data['content'] .= '
|
|
|
奖励时间:'.date('Y-m-d H:i:s',$detail['create_time']);
|
|
|
$data['create_time'] = $detail['create_time'];
|
|
|
$data['type'] = $request['type'];
|
|
|
$data['award_coin'] = $detail['point']>0?$detail['point']:0;
|
|
|
$data['game_name'] = !empty($game_name)?$game_name:'';
|
|
|
$data['user_account'] = !empty($user_account)?$user_account:'';
|
|
|
$data['name'] = '积分奖励';
|
|
|
$data['unread_count'] = $point_count;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
$this->new_set_message(200, "success", $data);
|
|
|
}
|
|
|
|
|
|
public function boon_list(){
|
|
|
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
|
|
|
$map['start_time'] = ['elt',time()];
|
|
|
$map['end_time'] = [['egt',time()],['eq',0],'or'];
|
|
|
$page = intval($request['p']);
|
|
|
$user_id = $request['user_id'] ? $request['user_id'] : 0;
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$row = intval($request['row'])?:10;
|
|
|
$list = M('Boon','tab_')
|
|
|
->field('tab_boon.id,title,start_time,end_time,show,reward,way,cover,material_url,tab_boon_watched.id as iswatched')
|
|
|
->join('tab_boon_watched on tab_boon_watched.boon_id = tab_boon.id and user_id='.$user_id,'left')
|
|
|
->where($map)
|
|
|
->order('tab_boon.sort desc,tab_boon.id desc')
|
|
|
->page($page,$row)
|
|
|
->select();
|
|
|
|
|
|
foreach ($list as $key => $value) {
|
|
|
$list[$key]['cover'] = new_icon_url($value['cover']);
|
|
|
if($value['material_url']!=''){
|
|
|
$list[$key]['material_url'] = str_replace('./','http://'.$_SERVER['HTTP_HOST'].'/',$value['material_url']);
|
|
|
}
|
|
|
if($value['iswatched']>0){
|
|
|
$list[$key]['iswatched'] = 1;
|
|
|
}else{
|
|
|
$list[$key]['iswatched'] = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$pointtype = M('PointType','tab_')->field('id,point,time_of_day')->find(8);
|
|
|
|
|
|
$data = array(
|
|
|
"list"=>$list,
|
|
|
'boon_time'=>$pointtype['time_of_day']?$pointtype['time_of_day']:0,
|
|
|
);
|
|
|
$this->new_set_message(200, 'success', $data);
|
|
|
}
|
|
|
//观看广告福利
|
|
|
//author yyh 2018 10 23
|
|
|
public function watch_boon_reward(){
|
|
|
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
|
|
|
|
|
|
$user_id = $request['user_id'];
|
|
|
$boon_id = $request['boon_id'];
|
|
|
$user_data = M('User','tab_')
|
|
|
->field('id as user_id,account as user_account')
|
|
|
->where(['user_id'=>$user_id])
|
|
|
->find();
|
|
|
if(empty($user_data)){
|
|
|
$this->new_set_message(1004, '账号不存在', []);
|
|
|
}
|
|
|
$boonmap['start_time'] = ['elt',time()];
|
|
|
$boonmap['end_time'] = [['egt',time()],['eq',0],'or'];
|
|
|
$boonmap['id'] = $boon_id;
|
|
|
|
|
|
$boon_data = M('Boon','tab_')->field('id,reward')->where($boonmap)->find();
|
|
|
|
|
|
|
|
|
if(empty($boon_data)){
|
|
|
$this->new_set_message(1128, '没有符合条件的广告', []);
|
|
|
}
|
|
|
|
|
|
$record_data = M('PointRecord as pr','tab_')
|
|
|
->field('pr.id,time_of_day')
|
|
|
->where(['type_id'=>8,'user_id'=>$user_id,'day'=>$boon_id])
|
|
|
->join('tab_point_type pt on pt.id = pr.type_id')
|
|
|
->find();
|
|
|
$point_type_data = M('PointType','tab_')->field('id,time_of_day')->find(8);
|
|
|
|
|
|
|
|
|
if(!empty($record_data)){
|
|
|
$this->new_set_message(1128, '该广告已奖励过', []);
|
|
|
}
|
|
|
if(empty($point_type_data)){
|
|
|
$this->new_set_message(1130, '该广告没有积分', []);
|
|
|
}
|
|
|
$watched_data = M('BoonWatched','tab_')->field('id')->where(['boon_id'=>$boon_id,'user_id'=>$user_id])->find();
|
|
|
if(empty($watched_data)){
|
|
|
$w['boon_id'] = $boon_id;
|
|
|
$w['user_id'] = $user_id;
|
|
|
$w['game_id'] = $request['game_id'];
|
|
|
$w['create_time'] = time();
|
|
|
$wres = M('BoonWatched','tab_')->add($w);
|
|
|
}
|
|
|
$model = M('PointRecord','tab_');
|
|
|
$map["FROM_UNIXTIME(register_time,'%Y-%m-%d')"] = $time;
|
|
|
$record_data_count = $model->where(["FROM_UNIXTIME(create_time,'%Y-%m-%d')"=>date('Y-m-d',time()),'user_id'=>$user_id,'type_id'=>8])->count();
|
|
|
if($record_data_count<$point_type_data['time_of_day']){
|
|
|
|
|
|
$day = $record_data_count - $point_type_data['time_of_day']+1;
|
|
|
|
|
|
|
|
|
$model->startTrans();
|
|
|
$user_logic = new UserLogic();
|
|
|
$user_result = $user_logic->operationPoint($user_id,$boon_data['reward'],1);
|
|
|
$d['type_id'] = 8;
|
|
|
$d['user_id'] = $user_id;
|
|
|
$d['point'] = $boon_data['reward'];
|
|
|
$d['create_time'] = time();
|
|
|
$d['type'] = 1;
|
|
|
$d['day'] = $boon_id;
|
|
|
$record_result = $model->add($d);
|
|
|
if($user_result !== false && $record_result !== false){
|
|
|
$model->commit();
|
|
|
|
|
|
if($day < 1) {$day = abs($day);$return = '恭喜您成功获得'.$boon_data['reward'].'积分奖励,'.($day>0?'今日还有'.$day.'次机会哦':'今日奖励机会已用完');}else{$return='谢谢观看';}
|
|
|
|
|
|
|
|
|
$this->new_set_message(200, $return, []);
|
|
|
}else{
|
|
|
$model->rollback();
|
|
|
$this->new_set_message(0, '奖励失败', []);
|
|
|
}
|
|
|
}else{
|
|
|
$this->new_set_message(1129, '今日广告福利奖励次数已使用完', []);
|
|
|
}
|
|
|
}
|
|
|
//退出sdk弹出广告
|
|
|
//yyh
|
|
|
public function sdk_logout_adv(){
|
|
|
$model = new AdvModel();
|
|
|
$data = $model->getAdv("loginout_sdk",1);
|
|
|
$data = $data[0];
|
|
|
if(empty($data)){
|
|
|
$this->new_set_message(1033,"暂无数据",[]);
|
|
|
}else{
|
|
|
$this->new_set_message(200,"成功",$data);
|
|
|
}
|
|
|
}
|
|
|
//猜你喜欢
|
|
|
//yyh
|
|
|
public function guess_like(){
|
|
|
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
|
|
|
$page = intval($request['p']);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$row = intval($request['row'])?:10;
|
|
|
|
|
|
$map['start_time'] = ['elt',time()];
|
|
|
$map['end_time'] = [['egt',time()],['eq',0],'or'];
|
|
|
$map['status'] = 1;
|
|
|
$list = M('Guess','tab_')->field('title,url,icon')->where($map)->order('sort desc')->page($page,$row)->select();
|
|
|
foreach ($list as $key => $value) {
|
|
|
$list[$key]['icon'] = new_icon_url($value['icon']);
|
|
|
}
|
|
|
$data = array(
|
|
|
"status"=>200,
|
|
|
"list"=>$list,
|
|
|
);
|
|
|
$this->new_set_message(200,"成功",$list);
|
|
|
}
|
|
|
//获取客服问题 帮助中心
|
|
|
//yyh 2018 10 26
|
|
|
public function get_customer_question(){
|
|
|
$map1['status'] = 1;
|
|
|
$map1['istitle'] = 1;
|
|
|
$first = M('Kefuquestion')->field('id,title as first_title,titleurl as mark')->where($map1)->order('sort desc')->group('title')->select();
|
|
|
$map2['status'] = 1;
|
|
|
$map2['istitle'] = 2;
|
|
|
$second = M('Kefuquestion')->field('zititle as second_title,titleurl as mark')->where($map2)->order('sort desc')->select();
|
|
|
foreach ($first as $key => $value) {
|
|
|
$first[$key]['second_title'] = [];
|
|
|
foreach ($second as $k => $v) {
|
|
|
if($value['mark']==$v['mark']){
|
|
|
$first[$key]['second_title'][] = $v['second_title'];
|
|
|
}
|
|
|
}
|
|
|
if(empty($first[$key]['second_title'])) {
|
|
|
unset($first[$key]);
|
|
|
}
|
|
|
}
|
|
|
$this->new_set_message(200,"成功",array_merge($first));
|
|
|
}
|
|
|
//帮助中心客服
|
|
|
//yyh 2018 10 26
|
|
|
public function customer_contact(){
|
|
|
$data['APP_QQ'] = C('APP_QQ');
|
|
|
$data['APP_TEL'] = C('APP_TEL');
|
|
|
$data['QQ_GROUP_KEY'] = C('QQ_GROUP_KEY');
|
|
|
$data['APP_QQ_GROUP'] = C('APP_QQ_GROUP');
|
|
|
$data['APP_EMAIL'] = C('APP_EMAIL');
|
|
|
$this->new_set_message(200,"成功",$data);
|
|
|
}
|
|
|
//获取客服问题 帮助中心
|
|
|
//yyh 2018 10 26
|
|
|
public function customer_question_list(){
|
|
|
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
|
|
|
$map2['status'] = 1;
|
|
|
$map2['istitle'] = 2;
|
|
|
$map2['titleurl'] = $request['mark'];
|
|
|
$data = M('Kefuquestion')->field('zititle as title,contend')->where($map2)->select();
|
|
|
$this->new_set_message(200,"成功",$data);
|
|
|
}
|
|
|
} |