Commit 50bb85970c0315be204c97305ae197ee62b3b272

Authored by teemitop
1 parent 7ad7cc66

短信管理

  1 +<?php
  2 +namespace app\admin\controller;
  3 +use think\Db;
  4 +use think\facade\Request;
  5 +class Sms extends Common
  6 +{
  7 + /*
  8 + * 商家短信充值查询
  9 + */
  10 + public function getsellersmslist(){
  11 +
  12 + if(Request::isAjax()){
  13 + $data = Request::except('file');
  14 +
  15 + $time = (isset($data['time']) && !empty($data['time'])) ? explode(' - ',$data['time']) : (strtotime(date("Y-m-d 00:00:00")).'-'.strtotime(date("Y-m-d 23:59:59")));
  16 +
  17 + $newtime = is_array($time) ? (strtotime(date($time[0])).'-'.strtotime(date($time[1]))) : $time;
  18 +
  19 + $channel = (!isset($data['time'])) ? 1 : $data['channel'];
  20 +
  21 + $name = (!isset($data['time'])) ? '' : $data['key'];
  22 +
  23 + $url= ON_LINE.'App.Seller.QuerySelllerSmsList&offset='.$data['page'].'&size='.$data['limit'].'&time='.$newtime.'&channel='.$channel.'&name='.$name;
  24 +
  25 + $list = $this->curl_get($url);
  26 +
  27 + $array = json_decode($list,TRUE);
  28 +
  29 + if($array){
  30 + foreach ($array['data']['list'] as $key => $value) {
  31 + $array['data']['list'][$key]['bdate'] = date("Y年m月d日 H时i分s秒",$value['bdate']);
  32 + $array['data']['list'][$key]['paystatus'] = $value['paystatus']==1 ? '成功' : '失败';
  33 + $array['data']['list'][$key]['channel'] = $value['channel']==NULL ? '小程序' : $value['channel'];
  34 + $array['data']['list'][$key]['package_name'] = $value['package_name']=='other' ? '其他' : $value['package_name'];
  35 + }
  36 + return $result = [
  37 + 'code'=>0,'msg'=>'获取成功!',
  38 + 'data'=>$array['data']['list'],
  39 + 'count'=>$array['data']['total'],
  40 + 'rel'=>1
  41 + ];
  42 + }else{
  43 + $result['code'] = 0;
  44 + $result['msg'] = '请求错误!';
  45 + }
  46 + return $result;
  47 + }
  48 + return view();
  49 + }
  50 +
  51 + /**
  52 + * post
  53 + */
  54 + public function curl_get($url)
  55 + {
  56 +
  57 + $info = curl_init();
  58 + curl_setopt($info,CURLOPT_RETURNTRANSFER,true);
  59 + curl_setopt($info,CURLOPT_HEADER,0);
  60 + curl_setopt($info,CURLOPT_NOBODY,0);
  61 + curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);
  62 + curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);
  63 + curl_setopt($info,CURLOPT_SSL_VERIFYHOST,false);
  64 + curl_setopt($info,CURLOPT_URL,$url);
  65 + $output = curl_exec($info);
  66 + curl_close($info);
  67 + return $output;
  68 + }
  69 +
  70 + /*
  71 + * 商家营销短信审核
  72 + */
  73 + public function GetBatchNoticeList(){
  74 + if(Request::isAjax()){
  75 + $data = Request::except('file');
  76 + $channel = @$data['channel'] ? @$data['channel'] : 1;
  77 + $page = ($data['page']-1)*$data['limit'];
  78 +
  79 + $__Where = ' 1=1';
  80 +
  81 + $time = (isset($data['time']) && !empty($data['time'])) ? explode(' - ',$data['time']) : ' and n.addtime between '.(strtotime(date("Y-m-d 00:00:00")).' and '.strtotime(date("Y-m-d 23:59:59")));
  82 +
  83 + $__Where .= is_array($time) ? ' and n.addtime between '.(strtotime(date($time[0])).' and '.strtotime(date($time[1]))) : $time;
  84 + $__Where .= @$data['key'] ? " and s.sellername like '%".$data['key']."%'" : "";
  85 +
  86 + if($channel && $channel!=-1) {
  87 + $__Where .= ' and rel.type_id='. $channel;
  88 + }else{
  89 + $__Where .= "";
  90 + }
  91 +
  92 + $total = Db::query("SELECT
  93 + count(1) as total
  94 + FROM
  95 + `xt-member-two-LINE`.xt_dc_dz_batch_notice AS n
  96 + LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON n.sid = s.id
  97 + LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS rel ON n.sid = rel.sid
  98 + WHERE
  99 + $__Where");
  100 + $list = Db::query("SELECT
  101 + s.id as sid,
  102 + s.sellername,
  103 + rel.type_id,
  104 + n.*
  105 + FROM
  106 + `xt-member-two-LINE`.xt_dc_dz_batch_notice AS n
  107 + LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON n.sid = s.id
  108 + LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS rel ON n.sid = rel.sid
  109 + WHERE
  110 + $__Where
  111 + ORDER BY
  112 + n.sid
  113 + LIMIT $page,".$data['limit']);
  114 + foreach ($list as $key => $value) {
  115 + $list[$key]['channel'] = $value['channel'] == 1 ? "小程序" : "电话机";
  116 + $list[$key]['is_send_end'] = $value['is_send_end'] == 1 ? "是" : "否";
  117 +
  118 + $list[$key]['addtime'] = date("Y-m-d H:i:s",$value['addtime']);
  119 + $list[$key]['stime'] = date("Y-m-d H:i:s",$value['stime']);
  120 +
  121 + switch ($value['type_id']) {
  122 + case '1':
  123 + $list[$key]['type_id'] = "合作";
  124 + break;
  125 + case '2':
  126 + $list[$key]['type_id'] = "推广";
  127 + break;
  128 + case '3':
  129 + $list[$key]['type_id'] = "测试";
  130 + break;
  131 + default:
  132 + break;
  133 + }
  134 +
  135 + switch ($value['status']) {
  136 + case '-1':
  137 + $list[$key]['status'] = "未通过";
  138 + break;
  139 + case '0':
  140 + $list[$key]['status'] = "待审核";
  141 + break;
  142 + case '1':
  143 + $list[$key]['status'] = "待发送";
  144 + break;
  145 + case '2':
  146 + $list[$key]['status'] = "已发送";
  147 + break;
  148 + default:
  149 + break;
  150 + }
  151 +
  152 + }
  153 + return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$list,'count'=>$total[0]['total'],'rel'=>1];
  154 + }
  155 + $this->assign ( 'title','营销短信列表');
  156 + return $this->fetch();
  157 + }
  158 +}
  1 +{include file="common/head"/}
  2 +<div class="admin-main layui-anim layui-anim-upbit">
  3 + <fieldset class="layui-elem-field layui-field-title">
  4 + <legend>{:$title}</legend>
  5 + </fieldset>
  6 + <div class="demoTable">
  7 + 商家:
  8 + <div class="layui-input-inline">
  9 + <input class="layui-input" name="key" id="key" placeholder="{:lang('pleaseEnter')}店铺名称" autocomplete="off">
  10 + </div>
  11 + 日期范围:
  12 + <div class="layui-input-inline" >
  13 + <input type="text" style = "width:300px"; class="layui-input" id="time" placeholder="默认为当天的充值情况">
  14 + </div>
  15 + 商家来源:
  16 + <div class="layui-input-inline layui-form">
  17 + <div class="layui-input-8">
  18 + <select name="class" id="channel" lay-filter="myselect">
  19 + <option value="-1">全部</option>
  20 + <option value="1" selected>合作</option>
  21 + <option value="2">推广</option>
  22 + <option value="3">测试</option>
  23 + </select>
  24 + </div>
  25 + </div>
  26 +
  27 + <button class="layui-btn" id="search" data-type="reload">查询</button>
  28 + </div>
  29 + <table class="layui-table" id="list" lay-filter="list"></table>
  30 +</div>
  31 +<script type="text/html" id="toolbarDemo">
  32 +</script>
  33 +{include file="common/foot"/}
  34 +<script>
  35 + layui.use(['table','form','laydate'], function() {
  36 + var table = layui.table,laydate = layui.laydate,$ = layui.jquery;
  37 + console.log(layui);
  38 + var tableIn = table.render({
  39 + elem: '#list',
  40 + url: '{:url("GetBatchNoticeList")}',
  41 + method: 'post',
  42 + title: '营销短信审核',
  43 + page:true,
  44 + toolbar: '#toolbarDemo',
  45 + cols: [[
  46 + {field: 'sid', title: '{:lang("sid")}',width:70, fixed: true},
  47 + {field: 'sellername', align: 'center',title: '店铺名字'},
  48 + {field: 'type_id', title: '来源'},
  49 + {field: 'id', title: '营销ID'},
  50 + {field: 'tmp_code', title: '模板CODE'},
  51 + {field: 'send_phones', title: '发送号码'},
  52 + {field: 'send_total', align: 'center', title: '发送人数'},
  53 + {field: 'send_msg', align: 'center', title: '发送内容'},
  54 + {field: 'name', align: 'center',title: '负责发送人'},
  55 + {field: 'phone', align: 'center',title: '负责人手机号'},
  56 + {field: 'note_name', align: 'center',title: '创建人'},
  57 + {field: 'sender', align: 'center',title: '发送人'},
  58 + {field: 'reduce_num', align: 'center',title: '短信扣除数'},
  59 + {field: 'status', align: 'center',title: '审核状态'},
  60 + {field: 'channel', align: 'center',title: '发送渠道'},
  61 + {field: 'is_send_end', align: 'center',title: '是否发送完毕'},
  62 + {field: 'channel', align: 'center',title: '发送渠道'},
  63 + {field: 'channel', align: 'center',title: '发送渠道'},
  64 + {field: 'stime', align: 'center',title: '发送时间'},
  65 + {field: 'addtime', align: 'center',title: '创建时间'},
  66 + ]],
  67 + done: function(res, curr, count){
  68 +
  69 + }
  70 + ,id: 'testReload'
  71 + ,page: true
  72 + ,limit:10
  73 + });
  74 +
  75 + //日期时间范围
  76 + laydate.render({
  77 + elem: '#time'
  78 + ,type: 'datetime'
  79 + ,range: true
  80 + });
  81 +
  82 + //搜索
  83 + $('#search').on('click', function() {
  84 + //关键字
  85 + var key = $('#key').val();
  86 +
  87 + var time = $('#time').val();
  88 + console.log(time);
  89 + //商家来源
  90 + var channel = $('#channel').val();
  91 + console.log(channel);
  92 +
  93 + //传参
  94 + tableIn.reload({ page: {page: 1},where: {key: key,time: time,channel: channel}});
  95 + });
  96 +
  97 + var $ = layui.$, active = {
  98 + reload: function(){
  99 + var key = $('#key');
  100 + //执行重载
  101 + table.reload('testReload', {
  102 + page: {
  103 + curr: 1 //重新从第 1 页开始
  104 + }
  105 + ,where: {
  106 + key: {
  107 + id: key.val()
  108 + }
  109 + }
  110 + });
  111 + }
  112 + };
  113 + })
  114 +</script>
  1 +{include file="common/head"/}
  2 +<div class="admin-main layui-anim layui-anim-upbit">
  3 + <fieldset class="layui-elem-field layui-field-title">
  4 + <legend>{:$title}</legend>
  5 + </fieldset>
  6 + <div class="demoTable">
  7 + 商家:
  8 + <div class="layui-input-inline">
  9 + <input class="layui-input" name="key" id="key" placeholder="{:lang('pleaseEnter')}店铺名称" autocomplete="off">
  10 + </div>
  11 + 日期范围:
  12 + <div class="layui-input-inline" >
  13 + <input type="text" style = "width:300px"; class="layui-input" id="time" placeholder="默认为当天的充值情况">
  14 + </div>
  15 + 商家来源:
  16 + <div class="layui-input-inline layui-form">
  17 + <div class="layui-input-8">
  18 + <select name="class" id="channel" lay-filter="myselect">
  19 + <option value="-1">全部</option>
  20 + <option value="1" selected>合作</option>
  21 + <option value="2">推广</option>
  22 + <option value="3">测试</option>
  23 + </select>
  24 + </div>
  25 + </div>
  26 +
  27 + <button class="layui-btn" id="search" data-type="reload">查询统计</button>
  28 + </div>
  29 + <table class="layui-table" id="list" lay-filter="list"></table>
  30 +</div>
  31 +<script type="text/html" id="toolbarDemo">
  32 +</script>
  33 +{include file="common/foot"/}
  34 +<script>
  35 + layui.use(['table','form','laydate'], function() {
  36 + var table = layui.table,laydate = layui.laydate,$ = layui.jquery;
  37 + console.log(layui);
  38 + var tableIn = table.render({
  39 + elem: '#list',
  40 + url: '{:url("getsellersmslist")}',
  41 + method: 'post',
  42 + title: '短信充值流水',
  43 + page:true,
  44 + toolbar: '#toolbarDemo',
  45 + cols: [[
  46 + {field: 'id', title: '{:lang("id")}',width:70, fixed: true},
  47 + {field: 'sellername', align: 'center',title: '店铺名字'},
  48 + {field: 'package_name', title: '套餐'},
  49 + {field: 'total', title: '充值总数'},
  50 + {field: 'price', title: '金额'},
  51 + {field: 'channel', align: 'center', title: '充值渠道'},
  52 + {field: 'desc', align: 'center', title: '充值备注'},
  53 + {field: 'paystatus', align: 'center',title: '充值状态'},
  54 + {field: 'bdate', align: 'center',title: '购买时间', sort: true},
  55 + {field: 'cdate', align: 'center',title: '记录时间', sort: true},
  56 + ]],
  57 + done: function(res, curr, count){
  58 +
  59 + }
  60 + ,id: 'testReload'
  61 + ,page: true
  62 + ,limit:10
  63 + });
  64 +
  65 + //日期时间范围
  66 + laydate.render({
  67 + elem: '#time'
  68 + ,type: 'datetime'
  69 + ,range: true
  70 + });
  71 +
  72 + //搜索
  73 + $('#search').on('click', function() {
  74 + //关键字
  75 + var key = $('#key').val();
  76 +
  77 + var time = $('#time').val();
  78 + console.log(time);
  79 + //商家来源
  80 + var channel = $('#channel').val();
  81 + console.log(channel);
  82 +
  83 + //传参
  84 + tableIn.reload({ page: {page: 1},where: {key: key,time: time,channel: channel}});
  85 + });
  86 +
  87 + var $ = layui.$, active = {
  88 + reload: function(){
  89 + var key = $('#key');
  90 + //执行重载
  91 + table.reload('testReload', {
  92 + page: {
  93 + curr: 1 //重新从第 1 页开始
  94 + }
  95 + ,where: {
  96 + key: {
  97 + id: key.val()
  98 + }
  99 + }
  100 + });
  101 + }
  102 + };
  103 + })
  104 +</script>