Example #1
0
 /**
  *
  */
 public function act_sendEmailByPage()
 {
     $_REQUEST = array_map('trim', $_REQUEST);
     if (empty($_REQUEST['from'])) {
         self::$errCode = '377';
         self::$errMsg = 'miss param from [nt]';
         return false;
     }
     if (empty($_REQUEST['to'])) {
         self::$errCode = '382';
         self::$errMsg = 'miss param  to [nt]';
         return false;
     }
     $pattern = '/[,,]/i';
     $to = urldecode($_REQUEST['to']);
     $to = preg_replace($pattern, ',', $to);
     $from = urldecode($_REQUEST['from']);
     //检查发送人是否存在并提取信息
     $fileds = "global_user_login_name,global_user_name,global_user_email";
     $where = " (global_user_name = '{$from}' OR global_user_login_name = '{$from}') AND global_user_status = 1 AND global_user_is_delete = 0 ";
     $where .= " LIMIT 1";
     $res = NoticeApiModel::oneGlobalUser($fileds, $where);
     $from_name = $res['0']['global_user_name'];
     if (empty($from_name)) {
         self::$errCode = '398';
         self::$errMsg = '不存在发送人(miss from user)';
         return false;
     }
     $from_email = $res['0']['global_user_email'];
     $from_login_name = $res['0']['global_user_login_name'];
     //检查是否是获取pageToken
     if (!empty($_REQUEST['getPageToken'])) {
         while (1) {
             $pageToken = 'nt_' . time() . '_' . mt_rand(1, 99) * 87;
             $fileds = "id";
             $where = "main_number = '{$pageToken}' AND is_delete = 0 ";
             $res = NoticeApiModel::onePageToken($fileds, $where);
             if (!$res['0']['id']) {
                 break;
             }
         }
         $addTime = time();
         $set = array('add_time' => $addTime, 'main_number' => $pageToken, 'user_email' => $from_email);
         //写入表
         $excute = NoticeApiModel::insertPageToken($set);
         if ($excute) {
             self::$errCode = '413';
             self::$errMsg = '生成分页token成功(create page token successfully)';
             return $pageToken;
         } else {
             self::$errCode = '415';
             self::$errMsg = '生成分页token失败(fail  to create page token )';
             return false;
         }
     }
     //开始增加分页数据
     if (empty($_REQUEST['pageToken'])) {
         self::$errCode = '429';
         self::$errMsg = 'miss param pageToken [nt]';
         return false;
     }
     $pageToken = $_REQUEST['pageToken'];
     //检查分页token是否存在
     $fileds = 'id,is_used';
     $where = "main_number = '{$pageToken}'  AND is_delete = 0 LIMIT 1";
     $res = NoticeApiModel::onePageToken($fileds, $where);
     if (empty($res['0']['id'])) {
         self::$errCode = '446';
         self::$errMsg = "pageToken [{$pageToken}] 不存在(not exist [{$pageToken}]) [nt]";
         return false;
     }
     if (!empty($res['0']['is_used'])) {
         self::$errCode = '451';
         self::$errMsg = "pageToken [{$pageToken}] 已发送成功过( [{$pageToken}] send before) [nt]";
         return false;
     }
     //var_dump($_POST);
     if (!empty($_REQUEST['pageEnd'])) {
         //分页都完成后发送邮件
         echo "###############";
         //var_dump($from,$to,$pageToken);
         exit;
         $res = $this->sendAllEmailPage($from, $to, $pageToken);
         $res = json_decode($res, true);
         $endReturn = false;
         //发送成功
         if ($res['errCode'] == 2013) {
             $endReturn = true;
             $set = array('is_used' => 1);
             $where = "main_number = '{$pageToken}' AND is_delete = 0 ";
             $ret = NoticeApiModel::updatePageToken($set, $where);
         }
         self::$errCode = $res['errCode'];
         self::$errMsg = $res['errMsg'];
         return $endReturn;
     }
     if (empty($_REQUEST['page'])) {
         self::$errCode = '430';
         self::$errMsg = 'miss param page [nt]';
         return false;
     }
     if (empty($_REQUEST['content'])) {
         self::$errCode = '424';
         self::$errMsg = 'miss param content [nt]';
         return false;
     }
     $page = $_REQUEST['page'];
     //第几页
     $content = urldecode($_REQUEST['content']);
     //分页内容
     //先判断是否存在相同的页
     $fileds = "id";
     $where = "main_number = '{$pageToken}' AND page = '{$page}'  AND is_delete = 0 LIMIT 1";
     $res = NoticeApiModel::onEmailDetail($fileds, $where);
     if ($res['0']['id']) {
         self::$errCode = '458';
         self::$errMsg = "本页已经存在(  page {$page} already exist)";
         return true;
     }
     //写入内容详情表
     $add_time = time();
     $set = array('main_number' => $pageToken, 'add_time' => $add_time, 'page' => $page, 'content' => base64_encode($content));
     $excute = NoticeApiModel::insertEmialDetail($set);
     if (!$excute) {
         self::$errCode = '447';
         self::$errMsg = "分页token[{$pageToken}]下第{$page}页未成功接收(fail  to accepte page {$page} )";
         return false;
     }
     self::$errCode = '111';
     self::$errMsg = "增加分页成功( accepte page {$page} successfully)";
     return true;
 }