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

添加任务接口

parent c3c06a1a
...@@ -15,25 +15,28 @@ class BaseController extends Controller { ...@@ -15,25 +15,28 @@ class BaseController extends Controller {
public $taskList = array( public $taskList = array(
'click_game'=>array( 'click_game'=>array(
'title'=>'玩游戏赚玩币' 'title'=>'玩游戏赚玩币'
,'type'=>'game' ,'type'=>'click_game'
,'icon'=>'http://hezi.test.llewan.com/hezi/task/click_game.png' ,'icon'=>'http://hezi.test.llewan.com/hezi/task/click_game.png'
,'list'=>array( ,'list'=>array(
array( array(
'name'=>'玩任意1款游戏' 'ch_name'=>'玩任意1款游戏'
,'en_name'=>'click_game1'
,'target'=>'1' ,'target'=>'1'
,'schedule'=>'0' ,'schedule'=>'0'
,'gold'=>'100' ,'gold'=>'100'
,'status'=>'1' ,'status'=>'1'
) )
,array( ,array(
'name'=>'玩任意3款游戏' 'ch_name'=>'玩任意3款游戏'
,'en_name'=>'click_game3'
,'target'=>'3' ,'target'=>'3'
,'schedule'=>'0' ,'schedule'=>'0'
,'gold'=>'300' ,'gold'=>'300'
,'status'=>'1' ,'status'=>'1'
) )
,array( ,array(
'name'=>'玩任意10款游戏' 'ch_name'=>'玩任意10款游戏'
,'en_name'=>'click_game10'
,'target'=>'10' ,'target'=>'10'
,'schedule'=>'0' ,'schedule'=>'0'
,'gold'=>'1000' ,'gold'=>'1000'
...@@ -43,28 +46,32 @@ class BaseController extends Controller { ...@@ -43,28 +46,32 @@ class BaseController extends Controller {
) )
,'invite_user'=>array( ,'invite_user'=>array(
'title'=>'邀请新伙伴' 'title'=>'邀请新伙伴'
,'type'=>'invite' ,'type'=>'invite_user'
,'icon'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png' ,'icon'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
,'list'=>array( ,'list'=>array(
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' ,'target'=>'1'
,'schedule'=>'0' ,'schedule'=>'0'
,'gold'=>'100' ,'gold'=>'100'
,'status'=>'1' ,'status'=>'1'
) )
,array( ,array(
'head'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png' 'ch_name'=>'邀请2位新伙伴'
,'target'=>'1' ,'en_name'=>'invite_user2'
,'head'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
,'target'=>'2'
,'schedule'=>'0' ,'schedule'=>'0'
,'gold'=>'100' ,'gold'=>'100'
,'status'=>'1' ,'status'=>'1'
) )
,array( ,array(
'ch_name'=>'玩任意10款游戏' 'ch_name'=>'邀请3位新伙伴'
,'en_name'=>'click_game10' ,'en_name'=>'invite_user3'
,'type'=>'game' ,'head'=>'http://hezi.test.llewan.com/hezi/task/invite_user.png'
,'target'=>'10' ,'target'=>'3'
,'schedule'=>'0' ,'schedule'=>'0'
,'gold'=>'1000' ,'gold'=>'1000'
,'status'=>'1' ,'status'=>'1'
......
...@@ -57,20 +57,20 @@ class GameController extends BaseController ...@@ -57,20 +57,20 @@ class GameController extends BaseController
,'msg'=>'token不正确' ,'msg'=>'token不正确'
); );
} else { } else {
$model= M("ylc_member_game","",C("LEWAN_HEZI")); $model= M("yl_member_game","",C("LEWAN_HEZI"));
$uid = $token['uid']; $uid = $token['uid'];
//获取数量(分页) //获取数量(分页)
$size = I('size',10); $size = I('size',10);
$page = I('page',1); $page = I('page',1);
$skip = $size * ($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( $where = array(
'ylc_member_game.uid'=>$uid 'yl_member_game.uid'=>$uid
,'yl_game.status'=>1 ,'yl_game.status'=>1
); );
$field = 'yl_game.sysid as id,yl_game.name,yl_game.icon,yl_game.appid,yl_game.gourl'; $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)) { if(!empty($gameList)) {
$result = array( $result = array(
'c'=>1 'c'=>1
......
...@@ -122,7 +122,7 @@ class UserController extends BaseController ...@@ -122,7 +122,7 @@ class UserController extends BaseController
,'msg'=>'token不正确' ,'msg'=>'token不正确'
); );
} else { } else {
$model= M("game_global_task","",C("LEWAN_HEZI")); $model= M("yl_game_task","",C("LEWAN_HEZI"));
$uid = $token['uid']; $uid = $token['uid'];
$taskList = $this->taskList; $taskList = $this->taskList;
...@@ -139,15 +139,23 @@ class UserController extends BaseController ...@@ -139,15 +139,23 @@ class UserController extends BaseController
if(!empty($taskArr)) { if(!empty($taskArr)) {
foreach($taskList as $key=>$val) { foreach($taskList as $key=>$val) {
$userTask = '';
foreach($taskArr as $tkey=>$tval) { 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']) { if($tval['schedule'] > $lval['target']) {
$taskList[$key]['schedule'] = $taskList[$key]['target']; $taskList[$key]['list'][$lkey]['schedule'] = $lval['target'];
} else { } 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 ...@@ -173,6 +181,7 @@ class UserController extends BaseController
// $model= M("game_member","",C("LEWAN_HEZI")); // $model= M("game_member","",C("LEWAN_HEZI"));
$model= new \Home\Model\UserModel(); $model= new \Home\Model\UserModel();
$token = decryptToken(I('token')); $token = decryptToken(I('token'));
$type = I('type','');
$taskName = I('task_name',''); $taskName = I('task_name','');
if($token == false) { if($token == false) {
...@@ -181,8 +190,16 @@ class UserController extends BaseController ...@@ -181,8 +190,16 @@ class UserController extends BaseController
,'msg'=>'token不正确' ,'msg'=>'token不正确'
); );
} else { } else {
//获取用户数据 if((!empty($type) && !empty($taskName)) || (empty($type) && empty($taskName))) {
$result = $model->taskPrize($token['uid'],$taskName); //奖励领取
$result = $model->taskPrize($token['uid'],$type,$taskName);
} else {
$result = array(
'c'=>2
,'msg'=>'type/task_name参数不存在'
);
}
} }
echo $this->formatRes($result); echo $this->formatRes($result);
......
...@@ -43,7 +43,7 @@ class GameModel extends BaseModel ...@@ -43,7 +43,7 @@ class GameModel extends BaseModel
$result = Array(); $result = Array();
$taskList = C('taskList'); $taskList = C('taskList');
$memberModel = M("ylc_member_game","",$this->__lewan_hezi); $memberModel = M("yl_member_game","",$this->__lewan_hezi);
$memberModel->startTrans(); $memberModel->startTrans();
//记录用户游戏列表数据 //记录用户游戏列表数据
...@@ -78,16 +78,17 @@ class GameModel extends BaseModel ...@@ -78,16 +78,17 @@ class GameModel extends BaseModel
$memberModel->commit(); $memberModel->commit();
/*------------------------------------玩游戏任务记录------------------------------------*/ /*------------------------------------玩游戏任务记录------------------------------------*/
/*$taskModel = M("game_global_task","",$this->__lewan_hezi); $taskModel = M("yl_game_task","",$this->__lewan_hezi);
$taskEnName = $taskList[0]['en_name']; // $taskEnName = $taskList[0]['en_name'];
$taskChName = $taskList[0]['ch_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"; // $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); // $result = $GLOBALS["conn"]->Query($sql);
// $taskArr = $GLOBALS["conn"]->getOne($result); // $taskArr = $GLOBALS["conn"]->getOne($result);
$whereArr = array( $whereArr = array(
'uid'=>$uid 'uid'=>$uid
,'en_name'=>$taskEnName ,'type'=>'click_game'
,'game_code'=>'ylc'
,'add_time'=>array('gt',date('Y-m-d')) ,'add_time'=>array('gt',date('Y-m-d'))
); );
$taskArr = $taskModel->where($whereArr)->find(); $taskArr = $taskModel->where($whereArr)->find();
...@@ -97,30 +98,42 @@ class GameModel extends BaseModel ...@@ -97,30 +98,42 @@ class GameModel extends BaseModel
// $tupdateArr = array( // $tupdateArr = array(
// 'schedule'=>'schedule+1' // 'schedule'=>'schedule+1'
// ); // );
$receiveArr = json_decode($taskArr['receive_info'],true);
$taskModel->where($whereArr)->setInc('schedule',1); $taskModel->where($whereArr)->setInc('schedule',1);
if($taskArr['schedule'] >= 2 && $taskArr['status'] == 1) {
// $tupdateArr['status'] = 2; if($taskArr['schedule'] >= 2 && $receiveArr['click_game3']['status'] == 1) {
$taskModel->where($whereArr)->save(array('status'=>2)); $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')."'"; // $twhere =" and uid=$uid and en_name='$taskEnName' and add_time > '".date('Y-m-d')."'";
// update_record($GLOBALS["conn"],'game_global_task',$tupdateArr,'',$twhere); // update_record($GLOBALS["conn"],'game_global_task',$tupdateArr,'',$twhere);
} else { } else {
$receiveArr = array(
'click_game1'=>array('status'=>2)
,'click_game3'=>array('status'=>1)
,'click_game10'=>array('status'=>1)
);
//添加今日任务记录 //添加今日任务记录
$taddArr = array( $taddArr = array(
"uid" => $uid "uid" => $uid
,"en_name" => $taskEnName ,"en_name" => 'click_game'
,"ch_name" => $taskChName ,"ch_name" => '点击游戏'
,'add_time'=>date('Y-m-d H:i:s') ,'add_time'=>date('Y-m-d H:i:s')
,'add_ip'=>$ip ,'add_ip'=>$ip
,'type'=>'game' ,'type'=>'click_game'
,'game_code'=>'ylc' ,'game_code'=>'ylc'
,'receive_info'=>json_encode($receiveArr)
); );
// add_record($GLOBALS["conn"],'game_global_task',$taddArr); // add_record($GLOBALS["conn"],'game_global_task',$taddArr);
$taskModel->where($whereArr)->add($taddArr); $taskModel->where($whereArr)->add($taddArr);
}*/ }
$result = array( $result = array(
'c'=>1 'c'=>1
......
...@@ -44,6 +44,37 @@ class UserModel extends BaseModel ...@@ -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)) { if(!empty($userInfo)) {
$result = array( $result = array(
'c'=>1 'c'=>1
...@@ -51,6 +82,7 @@ class UserModel extends BaseModel ...@@ -51,6 +82,7 @@ class UserModel extends BaseModel
,'d'=>array( ,'d'=>array(
'user_info'=>$userInfo 'user_info'=>$userInfo
,'sign_info'=>$signArr ,'sign_info'=>$signArr
,'task_info'=>$taskInfo
) )
); );
} else { } else {
...@@ -159,29 +191,37 @@ class UserModel extends BaseModel ...@@ -159,29 +191,37 @@ class UserModel extends BaseModel
//用户任务奖励领取 //用户任务奖励领取
function taskPrize($uid,$taskName) function taskPrize($uid,$type,$taskName)
{ {
$result = Array(); $result = Array();
$taskList = C('taskList'); $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( $taskWhere = array(
'uid'=>$uid 'uid'=>$uid
,'status'=>2 // ,'status'=>2
,'add_time'=>array('gt',date('Y-m-d')) ,'add_time'=>array('gt',date('Y-m-d'))
); );
if(!empty($type)) {
$taskWhere['type'] = $type;
}
$taskArr = $taskModel->where($taskWhere)->select(); $taskArr = $taskModel->where($taskWhere)->select();
if(!empty($taskArr)) { 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) { if($val['en_name'] == $taskName) {
$gold = $val['gold']; $gold = $val['gold'];
} }
...@@ -189,17 +229,14 @@ class UserModel extends BaseModel ...@@ -189,17 +229,14 @@ class UserModel extends BaseModel
$taskModel->startTrans(); $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( $twhere = array(
'uid'=>$uid 'uid'=>$uid
,'en_name'=>$taskName ,'type'=>$type
,'game_code'=>'ylc'
,'add_time'=>array('gt',date('Y-m-d')) ,'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( $goldArr = array(
...@@ -207,19 +244,12 @@ class UserModel extends BaseModel ...@@ -207,19 +244,12 @@ class UserModel extends BaseModel
,'handle'=>'add' ,'handle'=>'add'
,'gold_num'=>$gold ,'gold_num'=>$gold
,'add_time'=>date('Y-m-d H:i:s') ,'add_time'=>date('Y-m-d H:i:s')
,'game_code'=>'ylc'
,'way'=>$taskName ,'way'=>$taskName
); );
// $re2 = add_record($GLOBALS["conn"],"game_member_gold",$goldArr,true);
$re2 = M("game_member_gold","",$this->__lewan_hezi)->add($goldArr); $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); $re3 = M("game_member","",$this->__lewan_hezi)->where(array('uid'=>$uid))->setInc('gold',$gold);
if($re1 && $re2 && $re3) { if($re1 && $re2 && $re3) {
...@@ -227,6 +257,7 @@ class UserModel extends BaseModel ...@@ -227,6 +257,7 @@ class UserModel extends BaseModel
$result = array( $result = array(
'c'=>1 'c'=>1
,'msg'=>'领取成功' ,'msg'=>'领取成功'
,'gold'=>$gold
); );
} else { } else {
$result = array( $result = array(
...@@ -236,15 +267,30 @@ class UserModel extends BaseModel ...@@ -236,15 +267,30 @@ class UserModel extends BaseModel
} }
} else { } 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( $twhere = array(
'status'=>'3' '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')."'"; $userReceive[$ukey]['status'] = 3;
$re1 = update_record($GLOBALS["conn"],'game_global_task',$tupdateArr,'',$twhere); $re1 = $taskModel->where($twhere)->save(array('receive_info'=>json_encode($userReceive)));
//记录用户金币操作 //记录用户金币操作
$goldArr = array( $goldArr = array(
...@@ -252,32 +298,41 @@ class UserModel extends BaseModel ...@@ -252,32 +298,41 @@ class UserModel extends BaseModel
,'handle'=>'add' ,'handle'=>'add'
,'gold_num'=>$gold ,'gold_num'=>$gold
,'add_time'=>date('Y-m-d H:i:s') ,'add_time'=>date('Y-m-d H:i:s')
,'add_ip'=>$ip ,'game_code'=>'ylc'
,'way'=>$task_name ,'way'=>$ukey
); );
$re2 = add_record($GLOBALS["conn"],"game_member_gold",$goldArr,true); $re2 = M("game_member_gold","",$this->__lewan_hezi)->add($goldArr);
//更新用户金币数量 //更新用户金币数量
$updateArr = array( $re3 = M("game_member","",$this->__lewan_hezi)->where(array('uid'=>$uid))->setInc('gold',$gold);
'gold'=>'gold+'.$gold
);
$updateWhere = array(
'uid'=>$uid
);
$re3 = update_record($GLOBALS['conn'],'game_member',$updateArr,$updateWhere);
if($re1 && $re2 && $re3) { if($re1 && $re2 && $re3) {
$signModel->commit(); $taskModel->commit();
$addgold += $gold;
$judge = true;
}
}
}
}
if($judge) {
$result = array( $result = array(
'c'=>1 'c'=>1
,'msg'=>'签到成功' ,'msg'=>'领取成功'
,'gold'=>$addgold
); );
} else { } else {
$result = array( $result = array(
'c'=>2 '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