| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 | 
							- <?php
 
- namespace app\api\controller;
 
- use app\common\controller\Api;
 
- use think\Db;
 
- /**
 
-  * 任务接口
 
-  */
 
- class Task extends Api
 
- {
 
-     protected $noNeedLogin = [''];
 
-     protected $noNeedRight = '*';
 
-     public function _initialize()
 
-     {
 
-         parent::_initialize();
 
-         $this->taskModel = new \app\common\model\Task();
 
-         $this->tasklogModel = new \app\common\model\TaskLog();
 
-     }
 
-     /**
 
-      * 获取任务列表
 
-      */
 
-     public function getTaskList() {
 
-         $type_id = $this->request->request("type_id",1); // 任务类型:1=实时任务,2=每日任务
 
-         $plat = $this->request->request("plat",1); // 平台:1=安卓,2=ios
 
-         $urlArr = ["1"=>"android_url","2"=>"ios_url"];
 
-         $jump_url = $urlArr[$plat];
 
-         if($type_id == 2) {
 
-             // 获取所有基础任务
 
-             $where = [];
 
-             $where["type_id"] = 2;
 
-             $where["is_show"] = 1;
 
-             $taskList = $this->taskModel
 
-                 ->field("id,type_id,image,name,exp,number,".$jump_url." as jump_url,url_type")
 
-                 ->where($where)
 
-                 ->autopage()
 
-                 ->select();
 
-             $today = strtotime(date("Y-m-d 00:00:00"));
 
-             //今日开始的任务
 
-             $where = [];
 
-             $where["user_id"] = $this->auth->id;
 
-             $where["createtime"] = ["gt",$today];
 
-             $finishInfo = \app\common\model\TaskLog::where($where)->select();
 
-             $finishIds = [];
 
-             if($finishInfo) foreach($finishInfo as $k => $v) {
 
-                 $finishIds[$v["task_id"]] = $v;
 
-             }
 
-             if($taskList) {
 
-                 foreach($taskList as $k => $v) {
 
-                     $finishInfo = isset($finishIds[$v["id"]])?$finishIds[$v["id"]]:[];
 
-                     if($finishInfo) {
 
-                         $taskList[$k]["pace"] = $finishInfo->pace;
 
-                         $taskList[$k]["is_finish"] = $finishInfo->is_finish;
 
-                         $taskList[$k]["finish_number"] = $finishInfo->finish_number;
 
-                         $taskList[$k]["is_reward"] = $finishInfo->is_reward;
 
-                         if($finishInfo->is_finish != 1 && $finishInfo->pace != 0) {
 
-                             $taskList[$k]["pace_txt"] = $finishInfo->finish_number."/".$v["number"];
 
-                         }
 
-                     } else {
 
-                         $taskList[$k]["pace"] = 0;
 
-                         $taskList[$k]["is_finish"] = 0;
 
-                         $taskList[$k]["finish_number"] = 0;
 
-                         $taskList[$k]["is_reward"] = 0;
 
-                         $taskList[$k]["pace_txt"] = "0/".$v["number"];
 
-                     }
 
-                 }
 
-             }
 
-         } else {
 
-             // 获取基本信息
 
-             $where = [];
 
-             $where["a.type_id"] = 1;
 
-             $where["a.is_show"] = 1;
 
-             $taskList = $this->taskModel->alias("a")
 
-                 ->field("a.id,a.type_id,a.image,a.name,a.exp,a.number,a.".$jump_url." as jump_url,a.url_type,l.pace,l.is_reward,l.is_finish,l.finish_number")
 
-                 ->join("task_log l", "l.task_id = a.id and l.user_id = ".$this->auth->id, "left")
 
-                 ->where($where)
 
-                 ->autopage()
 
-                 ->order("is_finish","asc")
 
-                 ->select();
 
-             if($taskList) {
 
-                 foreach($taskList as $k => $v) {
 
-                     $v["pace"] || $taskList[$k]["pace"] = 0;
 
-                     $v["is_finish"] || $taskList[$k]["is_finish"] = 0;
 
-                     $v["finish_number"] || $taskList[$k]["finish_number"] = 0;
 
-                     $v["is_reward"] || $taskList[$k]["is_reward"] = 0;
 
-                     if($v["is_finish"] != 1 && $v["pace"] != 0) {
 
-                         $taskList[$k]["pace_txt"] = $v["finish_number"]."/".$v["number"];
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         $this->success("获取成功!",$taskList);
 
-     }
 
-     /**
 
-      * 领取奖励
 
-      */
 
-     public function getReward() {
 
-         $task_id = $this->request->request("task_id"); // 任务ID
 
-         if (!$task_id) {
 
-             $this->error(__('Invalid parameters'));
 
-         }
 
-         // 查询任务信息
 
-         $taskInfo = $this->taskModel->where(["id"=>$task_id])->find();
 
-         if(!$taskInfo) {
 
-             $this->error("任务信息未找到!");
 
-         }
 
-         // 查询用户完成情况
 
-         $where = [];
 
-         $where["user_id"] = $this->auth->id;
 
-         $where["task_id"] = $task_id;
 
-         $where["is_finish"] = 1;
 
-         if($taskInfo["type_id"] == 2){
 
-             $where["finish_date"] = date("Ymd");
 
-         }
 
-         $tasklogInfo = $this->tasklogModel->where($where)->find();
 
-         if(!$tasklogInfo) {
 
-             $this->error("任务还未完成哦!");
 
-         }
 
-         if($tasklogInfo["is_reward"] == 1) {
 
-             $this->error("任务奖励已领取,请勿重复领取!");
 
-         }
 
-         Db::startTrans();
 
-         try{
 
-             // 增加用户经验值
 
-             //$res1 = \app\common\model\User::addEmpirical($this->auth->id,$taskInfo["exp"]);
 
-             $res1 = model('wallet')->lockChangeAccountRemain($this->auth->id,'gold',$taskInfo["exp"],61,$taskInfo['name'],'task_log',$tasklogInfo);
 
-             if($res1['status'] === false){
 
-                 Db::rollback();
 
-                 $this->error($res1['msg']);
 
-             }
 
-             // 更新奖励领取状态
 
-             $res2 = $this->tasklogModel->update(["is_reward"=>1],["task_id"=>$task_id,"user_id"=>$this->auth->id]);
 
-             if($res1['status'] === true && $res2) {
 
-                 Db::commit();
 
-                 $this->success("领取成功!");
 
-             } else {
 
-                 Db::rollback();
 
-                 $this->error("领取失败!");
 
-             }
 
-         }catch (ValidateException $e) {
 
-             Db::rollback();
 
-             $this->error($e->getMessage());
 
-         } catch (PDOException $e) {
 
-             Db::rollback();
 
-             $this->error($e->getMessage());
 
-         } catch (Exception $e) {
 
-             Db::rollback();
 
-             $this->error($e->getMessage());
 
-         }
 
-     }
 
-     /**
 
-      * 完成任务
 
-      */
 
-     public function finishTask() {
 
-         $task_id = $this->request->request("task_id"); // 任务编码
 
-         $number = $this->request->request("number",1); // 完成次数
 
-         if (!$task_id) {
 
-             $this->error(__('Invalid parameters'));
 
-         }
 
-         \app\common\model\TaskLog::tofinish($this->auth->id,$task_id,$number);
 
-         $this->success("成功!");
 
-     }
 
- }
 
 
  |