propertyChgService = new services\PropertyChgService(); $this->awardService = new services\AwardService(); } public function getAttachmentCb() { $timestamp = getReqVal('timestamp', ''); $signStr = getReqVal('sign', ''); $data = file_get_contents('php://input'); $dataJson = json_decode($data, true); $localSignStr = md5($data . MAIL_KEY . $timestamp); if ($localSignStr != $signStr) { myself()->_rspErr(500, 'server internal error 3, url:'); return; } if (empty($dataJson)) { myself()->_rspErr(500, 'server internal error 4, url:'); return; } error_log(json_encode($dataJson)); if ($dataJson['account_id'] != myself()->_getAccountId()) { myself()->_rspErr(500, 'server internal error 2, url:'); return; } if (abs($timestamp - myself()->_getNowTime()) > 60) { myself()->_rspErr(500, 'server internal error 5, url:'); return; } $this->procAttachments($dataJson); myself()->_rspData(array( 'award' => $this->awardService->toDto(), 'property_chg' => $this->propertyChgService->toDto() )); } private function procAttachments($dataJson) { $mailHash = $dataJson['mails']; foreach ($mailHash as $val) { $mailId = $val['mailid']; $items = array(); foreach ($val['attachments'] as $item) { array_push($items, array( 'item_id' => $item['itemid'], 'item_num' => $item['itemnum'], )); } $row = SqlHelper::ormSelect( myself()->_getSelfMysql(), 't_mail', array( 'account_id' => myself()->_getAccountId(), 'mailid' => $mailId ) ); if (!$row) { SqlHelper::upsert( myself()->_getSelfMysql(), 't_mail', array( 'account_id' => myself()->_getAccountId(), 'mailid' => $mailId ), array( ), array( 'account_id' => myself()->_getAccountId(), 'mailid' => $mailId, 'attachments' => json_encode($items), 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime(), ) ); $this->_addItems($items, $this->awardService, $this->propertyChgService); SqlHelper::update( myself()->_getSelfMysql(), 't_mail', array( 'account_id' => myself()->_getAccountId(), 'mailid' => $mailId ), array( 'confirmed' => 1 ) ); } } } }