|
@@ -0,0 +1,224 @@
|
|
|
+<?php
|
|
|
+/***
|
|
|
+ * User: jun_hy
|
|
|
+ * Date: 2022/7/5
|
|
|
+ * Time: 16:24
|
|
|
+ */
|
|
|
+/**
|
|
|
+ * 短信发送,
|
|
|
+ */
|
|
|
+
|
|
|
+require_once(ONU_ROOT . 'application/module/ctrl/Action.class.php');
|
|
|
+require_once(ONU_ROOT . 'application/lib/data/adminAction.php');
|
|
|
+
|
|
|
+header('content-Type: text/html; charset=utf-8');
|
|
|
+
|
|
|
+class Send_sms_adminAction extends Action
|
|
|
+{
|
|
|
+
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ parent::__construct();
|
|
|
+ if (empty($_SESSION['mds_user'])) {
|
|
|
+ header("Location:/?a=index&m=admin_login");
|
|
|
+ exit();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function index()
|
|
|
+ {
|
|
|
+ $info = $_REQUEST['info'];
|
|
|
+ $uid = $_SESSION['user_infos']['id'];
|
|
|
+ $fromName = '';
|
|
|
+ switch ($uid) {
|
|
|
+ case 6:
|
|
|
+ $fromName = 'SuperNova Hair';
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ $fromName = 'Alipearl Hair';
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $fromName = 'Westkiss Hair';
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ $fromName = 'Wiggins Hair';
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ $fromName = 'Asteria Hair';
|
|
|
+ break;
|
|
|
+ case 7:
|
|
|
+ $fromName = 'Yolissa Hair';
|
|
|
+ break;
|
|
|
+ case 8:
|
|
|
+ $fromName = 'Mellow Hair';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ $admin = new AdvertAdminAction();
|
|
|
+ //查询所有的邮件模板
|
|
|
+ $where = "where uid='{$_SESSION['user_infos']['id']}' and type=1 and status=1";
|
|
|
+ $template_list = $admin->select_smstm_list($where);
|
|
|
+
|
|
|
+ //查询所有的用户分组
|
|
|
+ $where2 = "where uid='$uid' ";
|
|
|
+ $group_list = $admin->select_sms_user_group($where2);
|
|
|
+ /*if(!empty($_POST['group_name']) && $_POST['group_name']!='all'){
|
|
|
+ $where3.=" and group_name='{$_POST['group_name']}'";
|
|
|
+ }
|
|
|
+ $customer_list = $admin->selesctCustomer($where3);*/
|
|
|
+
|
|
|
+ /*if(!empty($_POST['group_name']) && $_POST['group_name']!='all'){
|
|
|
+ $where3.=" and group_name='{$_POST['group_name']}'";
|
|
|
+ $customer_list = $admin->selesctCustomer($where3);
|
|
|
+ }elseif(!empty($_POST['group_name']) && $_POST['group_name']=='all'){
|
|
|
+ $customer_list = $admin->selesctCustomer($where2);
|
|
|
+ }
|
|
|
+
|
|
|
+ $count = count($customer_list);
|
|
|
+
|
|
|
+ //假设一次只能给100个人发,看需要发几次
|
|
|
+ $c = 100;
|
|
|
+ $p = ceil($count/100);//需要发总次数*/
|
|
|
+ $where3 = "where uid='$uid' and is_block=0 ";
|
|
|
+ if (!empty($_POST['group_name'])) {
|
|
|
+ if ($_POST['group_name'] != 'all') {
|
|
|
+ $where3 .= " and group_name='{$_POST['group_name']}'";
|
|
|
+ $customer_list = $admin->selesctSmsCustomer($where3);
|
|
|
+ } elseif ($_POST['group_name'] == 'all') {
|
|
|
+ $customer_list = $admin->selesctSmsCustomer($where2);
|
|
|
+ }
|
|
|
+ $count = count($customer_list);
|
|
|
+ $c = 100;
|
|
|
+ $p = ceil($count/100);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($_POST['template_id']) {
|
|
|
+ $id = $_POST['template_id'];
|
|
|
+ $one_info = $admin->select_onesms_template($id);
|
|
|
+ $content = str_replace("'", '', $one_info['msg_content']);
|
|
|
+
|
|
|
+ for($i=1;$i<=$p;$i++){
|
|
|
+ $min = $c*($i-1);
|
|
|
+ $data = array();
|
|
|
+ $customer_list_now = array_slice($customer_list, $min, $c);
|
|
|
+ foreach($customer_list_now as $key=>$list){
|
|
|
+ $countryMobile = $this->getCountryMobile($list['country']);
|
|
|
+ $data['ymobile'][] =$list['tel'];
|
|
|
+ $data['mobile'][] =$countryMobile.$list['tel'];
|
|
|
+ }
|
|
|
+ $params = array(
|
|
|
+ 'to' => $data,
|
|
|
+ 'template_id' => $id,
|
|
|
+ 'from_name' => $fromName,
|
|
|
+ 'uid' => $uid,
|
|
|
+ 'template_body' => $content
|
|
|
+ );
|
|
|
+ $params_arr[] = $params;
|
|
|
+ }
|
|
|
+ $result = $admin->add_sms_data_queue($params_arr);
|
|
|
+ if ($result) {
|
|
|
+ $info = '短信已进入待发送队列';
|
|
|
+ } else {
|
|
|
+ $info = '短信发送失败';
|
|
|
+ }
|
|
|
+ header("Location:/?a=send_sms_admin&m=index&info=$info");
|
|
|
+ exit();
|
|
|
+ }
|
|
|
+ $email = $admin->selectSmsTmpData();
|
|
|
+ $this->assign('email_counts', $email[0]['ct']);
|
|
|
+
|
|
|
+ $this->assign('group_list', $group_list);
|
|
|
+ $this->assign('info', $info);
|
|
|
+ $this->assign('template_list', $template_list);
|
|
|
+ $this->display("index.html");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getCountryMobile($countryCode){
|
|
|
+ $country = $countryCode;
|
|
|
+ $countrys_en = [ "China", "Afghanistan", "Albania", "Algera",
|
|
|
+ "Andorra", "Angola", "Anguilla", "Ascension",
|
|
|
+ "Antigua and Barbuda", "Argentina", "Armenia", "Aruba",
|
|
|
+ "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain",
|
|
|
+ "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin",
|
|
|
+ "Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegovina",
|
|
|
+ "Botwana", "Brazill", "Brunei", "Bulgaria", "Burkina Faso",
|
|
|
+ "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde",
|
|
|
+ "Cayman Islands", "Central African Republic", "Chad", "Chile",
|
|
|
+ "Colombia", "Comoros", "Republic of the Congo",
|
|
|
+ "Democratic Republic of the Congo", "Cook Islands", "Costa Rica",
|
|
|
+ "Cote divoire", "Croatia", "Cuba", "Cyprus", "+Czech Republic",
|
|
|
+ "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador",
|
|
|
+ "Egypt", "EISalvador", "Estonia", "Ethiopia", "Faroe Islands",
|
|
|
+ "Fiji", "Finland", "France", "French Guiana", "French Polynesia",
|
|
|
+ "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Gibraltar",
|
|
|
+ "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam",
|
|
|
+ "Guatemala", "Guinea", "Guernsey", "Guinea", "Guyana", "Haiti",
|
|
|
+ "Honduras", "Hong Kong", "Myanmar", "Hungary", "Iceland", "Indea",
|
|
|
+ "Indonesia", "Iran", "Iraq", "Ireland", "Isle of Man", "Israel",
|
|
|
+ "Italy", "Jamaica", "Japan", "Jersey", "Jordan", "Kazeakhstan",
|
|
|
+ "Kenya", "Kosovo", "Kuwait", "Kyrgyzstan", "Laos", "Latvia",
|
|
|
+ "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein",
|
|
|
+ "Lithuania", "Luxembourg", "Macao", "Macedonia", "Madagascar",
|
|
|
+ "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Martinique",
|
|
|
+ "Mauritania", "Mauritius", "Mayotte", "Mexico", "Moldova",
|
|
|
+ "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco",
|
|
|
+ "Mozambique", "Namibia", "Nepal", "Netherlands",
|
|
|
+ "Netherlands Antillse", "New Caledonia", "NewZealand", "Nicaragua",
|
|
|
+ "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palestinian",
|
|
|
+ "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines",
|
|
|
+ "Poland", "Portugal", "PuertoRico", "Qotar", "Reunion", "Romania",
|
|
|
+ "Russia", "Rwanda", "Samoa Eastern", "Samoa Western", "San Marino",
|
|
|
+ "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia",
|
|
|
+ "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia",
|
|
|
+ "South Africa", "Korea", "Spain", "SriLanka", "St Kitts and Nevis",
|
|
|
+ "St.Lucia", "St.Vincent", "Sudan", "Suriname", "Swaziland",
|
|
|
+ "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan",
|
|
|
+ "Tanzania", "Thailand", "Timor Leste", "Togo", "Tonga",
|
|
|
+ "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan",
|
|
|
+ "Turks and Caicos Islands", "Uganda", "Ukraine",
|
|
|
+ "United Arab Emirates", "United Kingdom", "USA", "Uruguay",
|
|
|
+ "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Virgin Islands",
|
|
|
+ "Yemen", "Zambia", "Zimbabwe" ];
|
|
|
+ $countrys = array_keys($countrys_en,$country,true);
|
|
|
+ if($countrys[0]){
|
|
|
+ $countryMobile =$this->getCountryCode($countrys[0]);
|
|
|
+ }else{
|
|
|
+ $countryMobile ='+1';
|
|
|
+ }
|
|
|
+ $countryMobile = str_replace('+','',$countryMobile);
|
|
|
+ return (int)$countryMobile;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取国家手机编号
|
|
|
+ public function getCountryCode($countryCode){
|
|
|
+ $codes = [ "+86", "+93", "+355", "+213", "+376", "+244", "+1264",
|
|
|
+ "+247", "+1268", "+54", "+374", "+297", "+61", "+43", "+994",
|
|
|
+ "+1242", "+973", "+880", "+1246", "+375", "+32", "+501", "+229",
|
|
|
+ "+1441", "+975", "+591", "+387", "+267", "+55", "+673", "+359",
|
|
|
+ "+226", "+257", "+855", "+237", "+1", "+238", "+1345", "+236",
|
|
|
+ "+235", "+56", "+57", "+269", "+242", "+243", "+682", "+506",
|
|
|
+ "+225", "+385", "+53", "+357", "+420", "+45", "+253", "+1767",
|
|
|
+ "+1809", "+593", "+20", "+503", "+372", "+251", "+298", "+679",
|
|
|
+ "+358", "+33", "+594", "+689", "+241", "+220", "+995", "+94",
|
|
|
+ "+233", "+350", "+30", "+299", "+1473", "+590", "+1671", "+502",
|
|
|
+ "+240", "+44", "+224", "+592", "+509", "+504", "+852", "+95",
|
|
|
+ "+36", "+354", "+91", "+62", "+98", "+964", "+353", "+44", "+972",
|
|
|
+ "+93", "+1876", "+81", "+44", "+962", "+7", "+254", "+383", "+965",
|
|
|
+ "+996", "+856", "+371", "+961", "+266", "+231", "+218", "+423",
|
|
|
+ "+370", "+352", "+853", "+389", "+261", "+265", "+60", "+960",
|
|
|
+ "+223", "+356", "+596", "+222", "+230", "+262", "+52", "+373",
|
|
|
+ "+377", "+976", "+382", "+1664", "+212", "+258", "+264", "+977",
|
|
|
+ "+31", "+599", "+687", "+64", "+505", "+227", "+234", "+47",
|
|
|
+ "+968", "+92", "+970", "+507", "+675", "+595", "+51", "+63", "+48",
|
|
|
+ "+351", "+1", "+974", "+262", "+40", "+7", "+250", "+684", "+685",
|
|
|
+ "+378", "+239", "+966", "+221", "+381", "+248", "+232", "+65",
|
|
|
+ "+421", "+386", "+27", "+82", "+34", "+94", "+1869", "+1758",
|
|
|
+ "+1784", "+249", "+597", "+268", "+46", "+41", "+963", "+886",
|
|
|
+ "+992", "+255", "+66", "+670", "+228", "+676", "+1868", "+216",
|
|
|
+ "+90", "+993", "+1649", "+256", "+380", "+971", "+44", "+1",
|
|
|
+ "+598", "+998", "+678", "+58", "+84", "+1340", "+967", "+260",
|
|
|
+ "+263" ];
|
|
|
+ return $codes[$countryCode];
|
|
|
+ }
|
|
|
+}
|
|
|
+
|