Browse Source

定时发送邮件

shenzhipeng 2 years ago
parent
commit
c61215f991

+ 4 - 4
application/lib/data/adminAction.php

@@ -659,14 +659,14 @@ class AdvertAdminAction extends BaseAction{
 		}
 		}
 
 
 		//插入待发送邮件参数数据
 		//插入待发送邮件参数数据
-		public function add_email_data_queue($data){
-		    $sql = 'INSERT INTO `ly_email_data_tmp` (`params_json`) VALUES ';
+		public function add_email_data_queue($data, $datetime){
+		    $sql = 'INSERT INTO `ly_email_data_tmp` (`params_json`, `schedule_time`) VALUES ';
 		    $params_json = '';
 		    $params_json = '';
 		    foreach($data as $value){
 		    foreach($data as $value){
 				$params_json = serialize($value);
 				$params_json = serialize($value);
-		        $sql .= "('{$params_json}'),";
+		        $sql .= "('{$params_json}', '{$datetime}'),";
 		    }
 		    }
-		    
+			
 		    $sql = trim($sql, ',').';';
 		    $sql = trim($sql, ',').';';
 
 
 		    $result = $this->getDbEntity()->insert_sql($sql);
 		    $result = $this->getDbEntity()->insert_sql($sql);

+ 2 - 1
application/module/ctrl/Send_email2_adminAction.class.php

@@ -156,8 +156,9 @@ class Send_email2_adminAction extends Action{
 				$params_arr[] = $params;
 				$params_arr[] = $params;
 				//end
 				//end
 			}
 			}
+			$datetime = empty($_POST['demo_datetime']) ? date("Y-m-d H:i:s", time()) : $_POST['demo_datetime'];
 			//start
 			//start
-			$result = $admin->add_email_data_queue($params_arr);			
+			$result = $admin->add_email_data_queue($params_arr, $datetime);			
 			if($result){
 			if($result){
 			    $info = '邮件已进入待发送队列';				
 			    $info = '邮件已进入待发送队列';				
 			}else{
 			}else{

+ 76 - 0
application/module/view/send_email2_admin/index.html

@@ -1,6 +1,58 @@
 <{include file='../public/admin_header.html'}>
 <{include file='../public/admin_header.html'}>
 <{include file='../public/admin_navi.html'}>
 <{include file='../public/admin_navi.html'}>
 <!-- Right side column. Contains the navbar and content of the page -->
 <!-- Right side column. Contains the navbar and content of the page -->
+<link rel="stylesheet" type="text/css"
+	  href="https://www.jq22.com/demo/jqueryMobiscroll201803142314/css/mobiscroll.custom.min.css" />
+<script src="https://www.jq22.com/demo/jqueryMobiscroll201803142314/js/mobiscroll.custom.min.js"
+		type="text/javascript" charset="utf-8"></script>
+<style>
+	.mbsc-ios .dw {
+		top: 0 !important;
+		left: 0 !important;
+		right: 0 !important;
+		bottom: 0 !important;
+		width: 600px !important;
+		height: 300px;
+		margin: auto;
+	}
+
+	.mbsc-ios {
+		transition: .3s;
+	}
+
+	.mbsc-ios .dw-persp .dwcc {
+		padding: 30px 0;
+	}
+
+	.mbsc-ios .dwb {
+		color: transparent;
+		position: relative;
+	}
+
+	.mbsc-ios .dwbc {
+		border-bottom: 1px solid #cdcdcd;
+		background: #ebebeb;
+	}
+
+	.dwb-s::before,
+	.dwb-c::before {
+		position: absolute;
+		top: 6px;
+		color: #333;
+		font-size: 18px;
+		font-weight: 600;
+	}
+
+	.dwb-s::before {
+		content: "确定";
+		right: 10px;
+	}
+
+	.dwb-c::before {
+		content: "取消";
+		left: 10px;
+	}
+</style>
 <aside class="right-side">
 <aside class="right-side">
 	<!-- Content Header (Page header) -->
 	<!-- Content Header (Page header) -->
 	<section class="content-header">
 	<section class="content-header">
@@ -59,6 +111,14 @@
 							</td>
 							</td>
 						</tr>
 						</tr>
 
 
+						<tr>
+
+							<td>日期时间</td>
+							<td>
+								<input type="text" id="demo_datetime" name="demo_datetime" />
+							</td>
+						</tr>
+
 						<tr>
 						<tr>
 							<td>&nbsp;</td>
 							<td>&nbsp;</td>
 							<td >
 							<td >
@@ -89,12 +149,28 @@
 	function to_submit(){
 	function to_submit(){
 		var template_id = $('#template_id').val();
 		var template_id = $('#template_id').val();
 		var group_name = $('#group_name').val();
 		var group_name = $('#group_name').val();
+		var demo_datetime = $('#demo_datetime').val();
 		if(template_id==0 || group_name==0){
 		if(template_id==0 || group_name==0){
 			alert("请选择模板和客户");
 			alert("请选择模板和客户");
 		}else{
 		}else{
 			$('#form1').submit();
 			$('#form1').submit();
 		}
 		}
 	}
 	}
+
+	var theme = "ios";
+	var mode = "scroller";
+	var display = "bottom";
+	var lang = "zh";
+	$('#demo_datetime').mobiscroll().datetime({
+		theme: theme,
+		mode: mode,
+		display: display,
+		lang: lang,
+		dateFormat: "yyyy-mm-dd",
+		minDate: new Date(2000, 3, 10, 9, 22),
+		maxDate: new Date(2030, 7, 30, 15, 44),
+		stepMinute: 1
+	});
 </script>
 </script>
 
 
 
 

+ 3 - 1
jb/emailQueue.php

@@ -12,8 +12,10 @@
     $db_charset = "utf8";
     $db_charset = "utf8";
     
     
     $db = new Daopdo($host, $user, $pass, $dbName, $db_charset);
     $db = new Daopdo($host, $user, $pass, $dbName, $db_charset);
+
+	$datetime = date("Y-m-d H:i:s", time());
     
     
-    $sql['email_data'] = 'SELECT `id`,`params_json` FROM `ly_email_data_tmp` ORDER BY `id` ASC LIMIT 1;';
+    $sql['email_data'] = 'SELECT `id`,`params_json` FROM `ly_email_data_tmp` WHERE `schedule_time` < "{$datetime}" ORDER BY `id` ASC LIMIT 1;';
 	
 	
     $email_data = $db->query($sql['email_data'], 'Row');
     $email_data = $db->query($sql['email_data'], 'Row');
 	if(empty($email_data)){
 	if(empty($email_data)){