Commit dd402f71 authored by 734642908@qq.com's avatar 734642908@qq.com

添加任务接口

parent c3c06a1a
......@@ -15,25 +15,28 @@ class BaseController extends Controller {
public $taskList = array(
'click_game'=>array(
'title'=>'玩游戏赚玩币'
,'type'=>'game'
,'type'=>'click_game'
,'icon'=>'http://hezi.test.llewan.com/hezi/task/click_game.png'
,'list'=>array(
array(
'name'=>'玩任意1款游戏'
'ch_name'=>'玩任意1款游戏'
,'en_name'=>'click_game1'
,'target'=>'1'
,'schedule'=>'0'
,'gold'=>'100'
,'status'=>'1'
)
,array(
'name'=>'玩任意3款游戏'
'ch_name'=>'玩任意3款游戏'
,'en_name'=>'click_game3'
,'target'=>'3'
,'schedule'=>'0'
,'gold'=>'300'
,'status'=>'1'
)
,array(
'name'=>'玩任意10款游戏'
'ch_name'=>'玩任意10款游戏'
,'en_name'=>'click_game10'
,'target'=>'10'
,'schedule'=>'0'
,'gold'=>'1000'
......@@ -43,28 +46,32 @@ class BaseController extends Controller {
)
,'invite_user'=>array(
'title'=>'邀请新伙伴'
,'type'=>'invite'
,'type'=>'invite_user'
,'icon'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
,'list'=>array(
array(
'head'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
'ch_name'=>'邀请1位新伙伴'
,'en_name'=>'invite_user1'
,'head'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
,'target'=>'1'
,'schedule'=>'0'
,'gold'=>'100'
,'status'=>'1'
)
,array(
'head'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
,'target'=>'1'
'ch_name'=>'邀请2位新伙伴'
,'en_name'=>'invite_user2'
,'head'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
,'target'=>'2'
,'schedule'=>'0'
,'gold'=>'100'
,'status'=>'1'
)
,array(
'ch_name'=>'玩任意10款游戏'
,'en_name'=>'click_game10'
,'type'=>'game'
,'target'=>'10'
'ch_name'=>'邀请3位新伙伴'
,'en_name'=>'invite_user3'
,'head'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
,'target'=>'3'
,'schedule'=>'0'
,'gold'=>'1000'
,'status'=>'1'
......
......@@ -57,20 +57,20 @@ class GameController extends BaseController
,'msg'=>'token不正确'
);
} else {
$model= M("ylc_member_game","",C("LEWAN_HEZI"));
$model= M("yl_member_game","",C("LEWAN_HEZI"));
$uid = $token['uid'];
//获取数量(分页)
$size = I('size',10);
$page = I('page',1);
$skip = $size * ($page-1);
$model = $model->join('left join yl_game on yl_game.sysid=ylc_member_game.r_game');
$model = $model->join('left join yl_game on yl_game.sysid=yl_member_game.r_game');
$where = array(
'ylc_member_game.uid'=>$uid
'yl_member_game.uid'=>$uid
,'yl_game.status'=>1
);
$field = 'yl_game.sysid as id,yl_game.name,yl_game.icon,yl_game.appid,yl_game.gourl';
$gameList = $model->where($where)->limit($skip,$size)->order('ylc_member_game.create_time desc')->field($field)->select();
$gameList = $model->where($where)->limit($skip,$size)->order('yl_member_game.create_time desc')->field($field)->select();
if(!empty($gameList)) {
$result = array(
'c'=>1
......
......@@ -122,7 +122,7 @@ class UserController extends BaseController
,'msg'=>'token不正确'
);
} else {
$model= M("game_global_task","",C("LEWAN_HEZI"));
$model= M("yl_game_task","",C("LEWAN_HEZI"));
$uid = $token['uid'];
$taskList = $this->taskList;
......@@ -139,15 +139,23 @@ class UserController extends BaseController
if(!empty($taskArr)) {
foreach($taskList as $key=>$val) {
$userTask = '';
foreach($taskArr as $tkey=>$tval) {
if($val['en_name'] == $tval['en_name']) {
//判断用户是否有做相应任务
if($val['type'] == $tval['type']) {
$userTask = $tval;
$userReceive = json_decode($tval['receive_info'],true);
foreach($val['list'] as $lkey=>$lval) {
//任务数量超出目标数量处理
if($tval['schedule'] > $taskList[$key]['target']) {
$taskList[$key]['schedule'] = $taskList[$key]['target'];
if($tval['schedule'] > $lval['target']) {
$taskList[$key]['list'][$lkey]['schedule'] = $lval['target'];
} else {
$taskList[$key]['schedule'] = $tval['schedule'];
$taskList[$key]['list'][$lkey]['schedule'] = $tval['schedule'];
}
//设置用户任务进度
$taskList[$key]['list'][$lkey]['status'] = $userReceive[$lval['en_name']]['status'];
}
$taskList[$key]['status'] = $tval['status'];
}
}
}
......@@ -173,6 +181,7 @@ class UserController extends BaseController
// $model= M("game_member","",C("LEWAN_HEZI"));
$model= new \Home\Model\UserModel();
$token = decryptToken(I('token'));
$type = I('type','');
$taskName = I('task_name','');
if($token == false) {
......@@ -181,8 +190,16 @@ class UserController extends BaseController
,'msg'=>'token不正确'
);
} else {
//获取用户数据
$result = $model->taskPrize($token['uid'],$taskName);
if((!empty($type) && !empty($taskName)) || (empty($type) && empty($taskName))) {
//奖励领取
$result = $model->taskPrize($token['uid'],$type,$taskName);
} else {
$result = array(
'c'=>2
,'msg'=>'type/task_name参数不存在'
);
}
}
echo $this->formatRes($result);
......
......@@ -43,7 +43,7 @@ class GameModel extends BaseModel
$result = Array();
$taskList = C('taskList');
$memberModel = M("ylc_member_game","",$this->__lewan_hezi);
$memberModel = M("yl_member_game","",$this->__lewan_hezi);
$memberModel->startTrans();
//记录用户游戏列表数据
......@@ -78,16 +78,17 @@ class GameModel extends BaseModel
$memberModel->commit();
/*------------------------------------玩游戏任务记录------------------------------------*/
/*$taskModel = M("game_global_task","",$this->__lewan_hezi);
$taskEnName = $taskList[0]['en_name'];
$taskChName = $taskList[0]['ch_name'];
$taskModel = M("yl_game_task","",$this->__lewan_hezi);
// $taskEnName = $taskList[0]['en_name'];
// $taskChName = $taskList[0]['ch_name'];
//获取用户今天做任务数据
// $sql = "select * from ".get_table("game_global_task")." where uid=$uid and en_name='$taskEnName' and add_time > '".date('Y-m-d')."' order by add_time desc";
// $result = $GLOBALS["conn"]->Query($sql);
// $taskArr = $GLOBALS["conn"]->getOne($result);
$whereArr = array(
'uid'=>$uid
,'en_name'=>$taskEnName
,'type'=>'click_game'
,'game_code'=>'ylc'
,'add_time'=>array('gt',date('Y-m-d'))
);
$taskArr = $taskModel->where($whereArr)->find();
......@@ -97,30 +98,42 @@ class GameModel extends BaseModel
// $tupdateArr = array(
// 'schedule'=>'schedule+1'
// );
$receiveArr = json_decode($taskArr['receive_info'],true);
$taskModel->where($whereArr)->setInc('schedule',1);
if($taskArr['schedule'] >= 2 && $taskArr['status'] == 1) {
// $tupdateArr['status'] = 2;
$taskModel->where($whereArr)->save(array('status'=>2));
if($taskArr['schedule'] >= 2 && $receiveArr['click_game3']['status'] == 1) {
$receiveArr['click_game3']['status'] = 2;
$taskModel->where($whereArr)->save(array('receive_info'=>json_encode($receiveArr)));
}
if($taskArr['schedule'] >= 9 && $receiveArr['click_game10']['status'] == 1) {
$receiveArr['click_game10']['status'] = 2;
$taskModel->where($whereArr)->save(array('receive_info'=>json_encode($receiveArr)));
}
// $twhere =" and uid=$uid and en_name='$taskEnName' and add_time > '".date('Y-m-d')."'";
// update_record($GLOBALS["conn"],'game_global_task',$tupdateArr,'',$twhere);
} else {
$receiveArr = array(
'click_game1'=>array('status'=>2)
,'click_game3'=>array('status'=>1)
,'click_game10'=>array('status'=>1)
);
//添加今日任务记录
$taddArr = array(
"uid" => $uid
,"en_name" => $taskEnName
,"ch_name" => $taskChName
,"en_name" => 'click_game'
,"ch_name" => '点击游戏'
,'add_time'=>date('Y-m-d H:i:s')
,'add_ip'=>$ip
,'type'=>'game'
,'type'=>'click_game'
,'game_code'=>'ylc'
,'receive_info'=>json_encode($receiveArr)
);
// add_record($GLOBALS["conn"],'game_global_task',$taddArr);
$taskModel->where($whereArr)->add($taddArr);
}*/
}
$result = array(
'c'=>1
......
......@@ -44,6 +44,37 @@ class UserModel extends BaseModel
}
}
//获取用户今天做任务数据
$taskList = C('taskList');
$taskInfo = array(
'receive_status'=>0
,'receive_num'=>0
,'receive_gold'=>0
);
$taskWhere = array(
'uid'=>$uid
,'add_time'=>array('gt',date('Y-m-d'))
);
$taskArr = M("yl_game_task","",$this->__lewan_hezi)->where($taskWhere)->select();
if(!empty($taskArr)) {
foreach($taskArr as $tkey=>$tval) {
$userReceive = json_decode($tval['receive_info'],true);
foreach($userReceive as $ukey=>$uval) {
if($uval['status'] == 2) {
//获取对应任务金币数量
foreach($taskList[$tval['type']]['list'] as $key=>$val) {
if($val['en_name'] == $ukey) {
$gold = $val['gold'];
}
}
$taskInfo['receive_status'] = 1;
$taskInfo['receive_num'] += 1;
$taskInfo['receive_gold'] += $gold;
}
}
}
}
if(!empty($userInfo)) {
$result = array(
'c'=>1
......@@ -51,6 +82,7 @@ class UserModel extends BaseModel
,'d'=>array(
'user_info'=>$userInfo
,'sign_info'=>$signArr
,'task_info'=>$taskInfo
)
);
} else {
......@@ -159,29 +191,37 @@ class UserModel extends BaseModel
//用户任务奖励领取
function taskPrize($uid,$taskName)
function taskPrize($uid,$type,$taskName)
{
$result = Array();
$taskList = C('taskList');
$taskModel = M("game_global_task","",$this->__lewan_hezi);
$taskModel = M("yl_game_task","",$this->__lewan_hezi);
//获取用户今天做任务数据
// $sql = "select * from ".get_table("game_global_task")." where uid=$uid and en_name='$task_name' and status=2 and add_time > '".date('Y-m-d')."' order by add_time desc";
// $result = $GLOBALS["conn"]->Query($sql);
// $taskArr = $GLOBALS["conn"]->getOne($result);
$taskWhere = array(
'uid'=>$uid
,'status'=>2
// ,'status'=>2
,'add_time'=>array('gt',date('Y-m-d'))
);
if(!empty($type)) {
$taskWhere['type'] = $type;
}
$taskArr = $taskModel->where($taskWhere)->select();
if(!empty($taskArr)) {
if(!empty($taskName)) {
if(!empty($type) && !empty($taskName)) {
//领取单个任务奖励
$userReceive = json_decode($taskArr[0]['receive_info'],true);
if($userReceive[$taskName]['status'] != 2) {
$result = array(
'c'=>2
,'msg'=>'领取失败'
);
return $result;
}
//获取对应任务金币数量
foreach($taskList as $key=>$val) {
foreach($taskList[$type]['list'] as $key=>$val) {
if($val['en_name'] == $taskName) {
$gold = $val['gold'];
}
......@@ -189,17 +229,14 @@ class UserModel extends BaseModel
$taskModel->startTrans();
//更新今日任务奖励状态
/*$tupdateArr = array(
'status'=>'3'
);
$twhere =" and uid=$uid and en_name='$task_name' and add_time > '".date('Y-m-d')."'";
$re1 = update_record($GLOBALS["conn"],'game_global_task',$tupdateArr,'',$twhere);*/
$twhere = array(
'uid'=>$uid
,'en_name'=>$taskName
,'type'=>$type
,'game_code'=>'ylc'
,'add_time'=>array('gt',date('Y-m-d'))
);
$re1 = $taskModel->where($twhere)->save(array('status'=>3));
$userReceive[$taskName]['status'] = 3;
$re1 = $taskModel->where($twhere)->save(array('receive_info'=>json_encode($userReceive)));
//记录用户金币操作
$goldArr = array(
......@@ -207,19 +244,12 @@ class UserModel extends BaseModel
,'handle'=>'add'
,'gold_num'=>$gold
,'add_time'=>date('Y-m-d H:i:s')
,'game_code'=>'ylc'
,'way'=>$taskName
);
// $re2 = add_record($GLOBALS["conn"],"game_member_gold",$goldArr,true);
$re2 = M("game_member_gold","",$this->__lewan_hezi)->add($goldArr);
//更新用户金币数量
/*$updateArr = array(
'gold'=>'gold+'.$gold
);
$updateWhere = array(
'uid'=>$uid
);
$re3 = update_record($GLOBALS['conn'],'game_member',$updateArr,$updateWhere);*/
$re3 = M("game_member","",$this->__lewan_hezi)->where(array('uid'=>$uid))->setInc('gold',$gold);
if($re1 && $re2 && $re3) {
......@@ -227,6 +257,7 @@ class UserModel extends BaseModel
$result = array(
'c'=>1
,'msg'=>'领取成功'
,'gold'=>$gold
);
} else {
$result = array(
......@@ -236,15 +267,30 @@ class UserModel extends BaseModel
}
} else {
//领取全部任务奖励
$addgold = 0;
$judge = false;
foreach($taskArr as $tkey=>$tval) {
$userReceive = json_decode($tval['receive_info'],true);
foreach($userReceive as $ukey=>$uval) {
if($uval['status'] == 2) {
//获取对应任务金币数量
foreach($taskList[$tval['type']]['list'] as $key=>$val) {
if($val['en_name'] == $ukey) {
$gold = $val['gold'];
}
$GLOBALS["conn"]->BeginRoll();
}
$taskModel->startTrans();
//更新今日任务奖励状态
$tupdateArr = array(
'status'=>'3'
$twhere = array(
'uid'=>$uid
,'type'=>$tval['type']
,'game_code'=>'ylc'
,'add_time'=>array('gt',date('Y-m-d'))
);
$twhere =" and uid=$uid and en_name='$task_name' and add_time > '".date('Y-m-d')."'";
$re1 = update_record($GLOBALS["conn"],'game_global_task',$tupdateArr,'',$twhere);
$userReceive[$ukey]['status'] = 3;
$re1 = $taskModel->where($twhere)->save(array('receive_info'=>json_encode($userReceive)));
//记录用户金币操作
$goldArr = array(
......@@ -252,32 +298,41 @@ class UserModel extends BaseModel
,'handle'=>'add'
,'gold_num'=>$gold
,'add_time'=>date('Y-m-d H:i:s')
,'add_ip'=>$ip
,'way'=>$task_name
,'game_code'=>'ylc'
,'way'=>$ukey
);
$re2 = add_record($GLOBALS["conn"],"game_member_gold",$goldArr,true);
$re2 = M("game_member_gold","",$this->__lewan_hezi)->add($goldArr);
//更新用户金币数量
$updateArr = array(
'gold'=>'gold+'.$gold
);
$updateWhere = array(
'uid'=>$uid
);
$re3 = update_record($GLOBALS['conn'],'game_member',$updateArr,$updateWhere);
$re3 = M("game_member","",$this->__lewan_hezi)->where(array('uid'=>$uid))->setInc('gold',$gold);
if($re1 && $re2 && $re3) {
$signModel->commit();
$taskModel->commit();
$addgold += $gold;
$judge = true;
}
}
}
}
if($judge) {
$result = array(
'c'=>1
,'msg'=>'签到成功'
,'msg'=>'领取成功'
,'gold'=>$addgold
);
} else {
$result = array(
'c'=>2
,'msg'=>'签到失败'
,'msg'=>'领取失败'
);
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment