EmailController.php 5.0 KB

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