User.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace Heanup\App\Api\Controller\User;
  3. use Heanup\App\Api\Package\Database\Mail;
  4. use Heanup\App\Api\RestfulController;
  5. use Heanup\Frame\Helper;
  6. use Heanup\Library\Vestacp;
  7. use ProfiCloS\VestaCP\ClientException;
  8. use ProfiCloS\VestaCP\ProcessException;
  9. class User extends RestfulController
  10. {
  11. /**
  12. * Get Method|获取数据
  13. * @return void
  14. */
  15. protected function getData()
  16. {
  17. $domains=[
  18. 'qq-mail.ga',
  19. 'qq-mail.gq',
  20. 'qq-mail.ml',
  21. 'qq-mail.tk',
  22. ];
  23. $domain = $domains[rand(0,count($domains)-1)];
  24. $email = Helper::getStrongCode(6);
  25. $password = md5(uniqid());
  26. $user_key=$this->getRequest()->string("a",$_SESSION['user_key']);
  27. $data = compact("domain", "email", "password","user_key");
  28. $data['expired_time'] = date("Y-m-d H:i:s", time() + 7200);
  29. $data['add_time'] = date("Y-m-d H:i:s");
  30. $exist = Mail::getOne(['email' => $email, 'domain' => $domain, 'status' => 1]);
  31. if (!$exist) {
  32. try {
  33. $result = Vestacp::getInstance()->getModuleMail("admin")->addAccount($domain, $email, $password);
  34. if ($result) {
  35. Mail::insert($data);
  36. $this->render();
  37. }
  38. } catch (ClientException $e) {
  39. $this->showError(400, $e->getMessage());
  40. } catch (ProcessException $e) {
  41. $this->showError(400, $e->getMessage());
  42. }
  43. }
  44. $this->showSuccess();
  45. }
  46. /**
  47. * Post Method|新增数据
  48. * @return void
  49. */
  50. protected function postData()
  51. {
  52. // TODO: 需要实现 postData() 方法.
  53. }
  54. /**
  55. * Put Method|更新数据
  56. * @return void
  57. */
  58. protected function putData()
  59. {
  60. // TODO: 需要实现 putData() 方法.
  61. }
  62. /**
  63. * Delete Method|删除数据
  64. * @return void
  65. */
  66. protected function deleteData()
  67. {
  68. // TODO: 需要实现 deleteData() 方法.
  69. }
  70. }