123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- <?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()
- {
- $showtime = $_POST['demo_datetime'];
- $datetime=strtotime($showtime);
- if(empty($datetime)){
- $datetime=time();
- }
- $info = $_REQUEST['info'];
- $uid = $_SESSION['user_infos']['id'];
- $fromName = '';
- $from='';
- $fromDm='';
- switch ($uid) {
- case 6:
- $fromName = 'SuperNova Hair';
- $from = 'SuperNova';
- $fromDm='13013071900';
- break;
- case 1:
- $fromName = 'Alipearl Hair';
- $from = 'Alipearl';
- $fromDm='13013071900';
- break;
- case 3:
- $fromName = 'Westkiss Hair';
- $from = 'WestKissHair';
- $fromDm='13013071800';
- break;
- case 4:
- $fromName = 'Wiggins Hair';
- $from = 'WigginsHair';
- $fromDm='13013071800';
- break;
- case 5:
- $fromName = 'Asteria Hair';
- $from= 'AsteriaHair';
- $fromDm='13013071800';
- break;
- case 7:
- $fromName = 'Yolissa Hair';
- $from = 'YolissaHair';
- $fromDm='13013071900';
- break;
- case 8:
- $fromName = 'Mellow Hair';
- $from = 'Mellow';
- $fromDm='13013071900';
- 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 and is_send=1 ";
- 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();
- $x_smtpapi=array();
- $customer_list_now = array_slice($customer_list, $min, $c);
- foreach($customer_list_now as $key=>$list){
- $countryMobile = $this->getCountryMobile($list['country']);
- if($countryMobile==1){
- $data[$key]['from_name'] =$fromDm;
- }else{
- $data[$key]['from_name'] =$from;
- }
- $data[$key]['mobile'] =$countryMobile.$list['tel'];
- $appkey='FH1W2L97';
- $secretkey='OCio2JBh';
- if($uid==7){//--牛信云 yolissahair
- $x_smtpapi[] = $countryMobile.$list['tel'];
- $from=18332604755;
- $appkey='fm6S6TTz';
- $secretkey='PNQzoBIk';
- }
- if($uid==5){//--牛信云 asteriahair
- $x_smtpapi[] = $countryMobile.$list['tel'];
- $from=18332359525;
- $appkey='4CdNKjBj';
- $secretkey='lVd866Tx';
- }
- if($uid==1){//--牛信云 alipearlhair
- $x_smtpapi[] = $countryMobile.$list['tel'];
- $from=18447116894;
- $appkey='qQcsCT7e';
- $secretkey='2Z9dyFyn';
- }
- if($uid==6){//--牛信云 supernovahair
- $x_smtpapi[] = $countryMobile.$list['tel'];
- $from=18447117128;
- $appkey='4CdNKjBj';
- $secretkey='lVd866Tx';
- }
- if($uid==3){//--牛信云 westkisshair
- $x_smtpapi[] = $countryMobile.$list['tel'];
- $from=18333170164;
- $appkey='FH1W2L97';
- $secretkey='OCio2JBh';
- }
- if($uid==4){//--牛信云 wigginshair
- $x_smtpapi[] = $countryMobile.$list['tel'];
- $from=18337593782;
- $appkey='FH1W2L97';
- $secretkey='OCio2JBh';
- }
- }
- $params = array(
- 'to' => $data,
- 'template_id' => $id,
- 'uid' => $uid,
- 'template_body' => $content
- );
- if($uid==7||$uid==1||$uid==6||$uid==5||$uid==3||$uid==4){//--牛信云
- $params = array(
- 'appkey' => $appkey,
- 'secretkey' =>$secretkey,
- 'phone' => $x_smtpapi,
- 'content' => $content,
- 'source_address' => $from,
- 'uid' => $uid
- );
- }
- $params_arr[] = $params;
- }
- if($uid==7||$uid==1||$uid==6||$uid==5||$uid==3||$uid==4){
- $result = $admin->add_sms_data_queue_new($params_arr,$showtime,$datetime);
- }else{
- $result = $admin->add_sms_data_queue($params_arr,$showtime,$datetime);
- }
- 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 jinList(){
- $admin = new AdvertAdminAction();
- $where =" where is_send=0";
- $page=1;
- $pageSize=50;
- $city_code =$admin->selectCityCode();
- $new=array();
- foreach ($city_code as $v){
- $new[]=$v['code'];
- }
- $is_send=1;
- do {
- try {
- $n = ($page-1)*$pageSize;
- $limit = " $n,$pageSize";
- $customer_list = $admin->selesctSmsCustomer($where,$limit);
- foreach ($customer_list as $vs){
- $countryMobile = $this->getCountryMobile($vs['country']);
- if($countryMobile==1){
- $code = substr($vs['tel'] , 0 , 3);
- if (in_array($code, $new)) {
- $is_send=1;
- }else{
- $is_send=2;
- }
- }
- $admin->upCodeSmsCustomer($is_send,$vs['id']);
- }
- $page=$page+1;
- } catch (\Exception $e) {
- exit(1);
- }
- } while (is_array($customer_list) && !empty($customer_list));
- echo ' over~~';
- }
- 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];
- }
- }
|