EmailController.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. namespace Modules\Email\Http\Controllers;
  3. use Illuminate\Contracts\Support\Renderable;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Routing\Controller;
  6. use Modules\Admin\Auxiliary\View\FromAuxiliary;
  7. use Modules\Admin\Auxiliary\View\TableAuxiliary;
  8. use DB;
  9. use Modules\Admin\Http\Controllers\BaseController;
  10. use App\Mail\MsgMail;
  11. use Illuminate\Support\Facades\Mail;
  12. class EmailController extends BaseController
  13. {
  14. /**
  15. * Display a listing of the resource.
  16. * @return Renderable
  17. */
  18. public function index(Request $request)
  19. {
  20. $this->menusActive[0] = 'adminEmail';
  21. $email_list = DB::table('email')->orderBy('created_at')->get();
  22. if(count($email_list)>0){
  23. for($i=0;$i<count($email_list);$i++){
  24. $mine_list = explode(';',$email_list[$i]->mine_id_list);
  25. $email_list[$i]->mine_name_list = '';
  26. foreach($mine_list as $k=>$v){
  27. $mine_title = DB::table('mine_list')->where('id',$v)->get()[0]->title;
  28. $email_list[$i]->mine_name_list = $email_list[$i]->mine_name_list.$mine_title.' , ';
  29. }
  30. $email_list[$i]->mine_name_list = substr($email_list[$i]->mine_name_list,0,strlen($email_list[$i]->mine_name_list)-3);
  31. }
  32. }
  33. $tableObj = new TableAuxiliary('email', $email_list);
  34. $tableObj->actionBtns = ['edit','del'];
  35. $tableObj->column('mine_name_list', '发送范围');
  36. $tableObj->column('email', '邮件地址');
  37. return $this->tableList($tableObj);
  38. }
  39. public function add(Request $request){
  40. if ($request->isMethod('post')) {
  41. $params = $request->all();
  42. $pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/";
  43. preg_match($pattern, $params['email'], $matches);
  44. if(!isset($params['mine_id'])){
  45. $data['code'] = 1;
  46. $data['log'] = '至少选择一个矿区';
  47. }else if($matches == null){
  48. $data['code'] = 1;
  49. $data['log'] = '请输入正确格式的邮箱地址';
  50. }else{
  51. $email['email'] = $params['email'];
  52. $email['mine_id_list'] = "";
  53. foreach($params['mine_id'] as $k=>$v){
  54. $email['mine_id_list'] = $email['mine_id_list'] . $v . ';';
  55. }
  56. $email['mine_id_list'] = substr($email['mine_id_list'], 0, strlen($email['mine_id_list']) - 1);
  57. $email['created_at'] = date('Y-m-d H:i:s');
  58. $email['updated_at'] = date('Y-m-d H:i:s');
  59. DB::table('email')->insert($email);
  60. $data['code'] = 0;
  61. $data['log'] = '提交成功!';
  62. }
  63. return $data;
  64. }
  65. $mine_parent = DB::table('mine_list')->where('parent_id',0)->where('deleted_at',null)->get();
  66. $data['menusAll'] = $mine_parent;
  67. $data['title'] = '添加邮件配置';
  68. return $this->view('email::add', $data);
  69. }
  70. public function edit(Request $request){
  71. $params = $request->all();
  72. if ($request->isMethod('post')) {
  73. $pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/";
  74. preg_match($pattern, $params['email'], $matches);
  75. if(!isset($params['mine_id'])){
  76. $data['code'] = 1;
  77. $data['log'] = '至少选择一个矿区';
  78. }else if($matches == null){
  79. $data['code'] = 1;
  80. $data['log'] = '请输入正确格式的邮箱地址';
  81. }else{
  82. $email['email'] = $params['email'];
  83. $email['mine_id_list'] = "";
  84. foreach($params['mine_id'] as $k=>$v){
  85. $email['mine_id_list'] = $email['mine_id_list'] . $v . ';';
  86. }
  87. $email['mine_id_list'] = substr($email['mine_id_list'], 0, strlen($email['mine_id_list']) - 1);
  88. $email['created_at'] = date('Y-m-d H:i:s');
  89. $email['updated_at'] = date('Y-m-d H:i:s');
  90. DB::table('email')->where('id',$params['id'])->update($email);
  91. $data['code'] = 0;
  92. $data['log'] = '提交成功!';
  93. }
  94. return $data;
  95. }
  96. $mine_parent = DB::table('mine_list')->where('parent_id',0)->where('deleted_at',null)->get();
  97. $data['menusAll'] = $mine_parent;
  98. $data['title'] = '修改邮件配置';
  99. $email = DB::table('email')->where('id',$params['id'])->first();
  100. $checkedId = explode(';',$email->mine_id_list);
  101. foreach($checkedId as $k=>$v){
  102. $checkedId[$k] = (int)$v;
  103. }
  104. $data['checkedId'] = $checkedId;
  105. $data['id'] = $params['id'];
  106. $data['email'] = $email->email;
  107. return $this->view('email::edit', $data);
  108. }
  109. public function del(Request $request){
  110. $params = $request->all();
  111. DB::table('email')->where('id',$params['id'])->delete();
  112. return $this->success();
  113. }
  114. }