Example #1
0
 public static function actionAdd()
 {
     $unsetKey = W2HttpRequest::getUnsetRequest('jobid', $p_allowBlank = false);
     if ($unsetKey !== null) {
         return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '部分数据未提交,请检查。', array('errorContent' => '部分参数未提交数据: ' . $unsetKey));
     }
     $tmpModel = new MissionModel();
     switch ($auth = static::getAuthIfUserCanDoIt(Utility::getCurrentUserID(), 'add', $tmpModel)) {
         case 'admin':
             //有管理权限
             // $tmpModel  ->           setUserID(W2HttpRequest::getRequestInt('userid'));//报名用户ID
             // $tmpModel  ->           setStatus(W2HttpRequest::getRequestInt('status'));//0: 已拒绝  1: 报名成功 2: 新报名
             // $tmpModel  ->       setCreateTime(W2HttpRequest::getRequestDateTime('createtime'));//创建时间
             // $tmpModel  ->       setModifyTime(W2HttpRequest::getRequestDateTime('modifytime'));//修改时间
         //有管理权限
         // $tmpModel  ->           setUserID(W2HttpRequest::getRequestInt('userid'));//报名用户ID
         // $tmpModel  ->           setStatus(W2HttpRequest::getRequestInt('status'));//0: 已拒绝  1: 报名成功 2: 新报名
         // $tmpModel  ->       setCreateTime(W2HttpRequest::getRequestDateTime('createtime'));//创建时间
         // $tmpModel  ->       setModifyTime(W2HttpRequest::getRequestDateTime('modifytime'));//修改时间
         case 'self':
             //作者
         //作者
         case 'normal':
             //正常用户
             if ($auth == 'normal') {
                 $tmpModel->setUserID(Utility::getCurrentUserID());
                 //普通用户创建的数据,默认作者为自己。
             }
             $jobModel = JobHandler::loadModelById(W2HttpRequest::getRequestInt('jobid'));
             if (!is_object($jobModel)) {
                 return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '该任务不存在。');
             } else {
                 if ($jobModel->getJobStatus() != JOB_STATUS::WAITJOIN) {
                     switch ($jobModel->getJobStatus()) {
                         case JOB_STATUS::DISABLED:
                         case JOB_STATUS::PENDING:
                         case JOB_STATUS::DRAFT:
                             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '该任务尚未发布,暂不支持报名。');
                             break;
                         case JOB_STATUS::PROCEED:
                         case JOB_STATUS::COMPLETED:
                             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '该任务招募已结束,不再支持报名。');
                             break;
                         default:
                             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '该任务不在招募状态,不支持报名。');
                             break;
                     }
                 }
             }
             $missionModel = MissionHandler::loadModelFirstInList(array('jobID' => $jobModel->getId(), 'userID' => Utility::getCurrentUserID()));
             if (isset($missionModel)) {
                 return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您已报名,不可重复报名。');
             }
             $tmpModel->setJobID($jobModel->getId());
             //任务ID
             $tmpModel->setBossID($jobModel->getUserID());
             //雇主用户ID
             // $tmpModel  ->     setAdvanceMoney(W2HttpRequest::getRequestFloat('advancemoney'));//预付款金额
             // $tmpModel  ->      setAdvanceType(W2HttpRequest::getRequestInt('advancetype'));//预付款方式 0: 不存在  11:余额 21: 支付宝  31:微信  41:网银
             // $tmpModel  ->      setAdvanceTime(W2HttpRequest::getRequestDateTime('advancetime'));//预付款时间
             // $tmpModel  ->         setPayMoney(W2HttpRequest::getRequestFloat('paymoney'));//已付款金额
             // $tmpModel  ->          setPayTime(W2HttpRequest::getRequestDateTime('paytime'));//确认付款时间
             // $tmpModel  ->    setMissionStatus(W2HttpRequest::getRequestInt('missionstatus'));//0: 不存在  11: 接受报名并已预付款 21: 确认完成并付款  31:已评价
             // $tmpModel  ->      setQualityRate(W2HttpRequest::getRequestInt('qualityrate'));//服务质量评分
             // $tmpModel  ->      setManneryRate(W2HttpRequest::getRequestInt('manneryrate'));//服务态度评分
             // $tmpModel  ->        setSpeedRate(W2HttpRequest::getRequestInt('speedrate'));//服务速度评分
             // $tmpModel  ->   setCommentContent(W2HttpRequest::getRequestString('commentcontent'));//评语留言
             $tmpModel->setMissionStatus(MISSION_STATUS::NEWAPPLY);
             //0: 已删除  1: 报名成功 2: 新报名 3:已拒绝
             break;
         case 'draft':
             //未激活
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '该账号未激活,不可使用该功能。');
             break;
         case 'pending':
             //待审禁言
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '该账号被禁言,不可使用该功能。');
             break;
         case 'disabled':
             //封号
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '该账号不可用,不可使用该功能。');
             break;
         case 'visitor':
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您需要登录后才可以执行该操作');
             break;
         default:
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您没有权限执行该操作');
             break;
     }
     if (method_exists($tmpModel, 'setStatus') && ($tmpModel->getStatus() === null || !array_key_exists('status', $tmpModel->propertiesModified()))) {
         $tmpModel->setStatus(STATUS_NORMAL);
     }
     return static::save($tmpModel, $isAdd = true);
 }