Browse Source

发货提醒

pull/9/head
liuyu 3 years ago
parent
commit
1c509fa55f
  1. 143
      control/index.php
  2. 23
      model/mBase.php
  3. 2
      view/templates/index/after_sale_list.html
  4. 2
      view/templates/index/order_list.html
  5. 29
      view/templates/index/wait_deliver_list.html

143
control/index.php

@ -45,48 +45,20 @@ class index extends publicBase {
$list = $obj->getOrderList($shopinfo['uid'], $shopinfo['id'], 0, 0, $page, $pagesize); $list = $obj->getOrderList($shopinfo['uid'], $shopinfo['id'], 0, 0, $page, $pagesize);
if (empty($list)) $this->ajax_json(false, 'empty list'); if (empty($list)) $this->ajax_json(false, 'empty list');
$goods_ids = array_unique(array_column($list, 'goods_id')); $order_status2class = array(
$gobj = new mGoods();
$goods_list = $gobj->getGoodsByGoodsids($goods_ids);
if (empty($goods_list)) return true;
$goodsid2skuid2info = array();
foreach ($goods_list as $goods) {
$goodsid2skuid2info[$goods['goods_id']][$goods['sku_id']] = $goods;
}
$GLOBALS['order_status2class'] = array(
ORDER_STATUS_WAIT_DELIVER_GOODS => 'list_status_grey01', ORDER_STATUS_WAIT_DELIVER_GOODS => 'list_status_grey01',
ORDER_STATUS_DELIVERED => 'list_status_grey01', ORDER_STATUS_DELIVERED => 'list_status_grey01',
ORDER_STATUS_SIGNED_FOR => 'list_status_yellow01', ORDER_STATUS_SIGNED_FOR => 'list_status_yellow01',
); );
$GLOBALS['refund_status2class'] = array( $refund_status2class = array(
REFUND_STATUS_NO_AFTER_SALES => 'list_status_grey01', REFUND_STATUS_NO_AFTER_SALES => 'list_status_grey01',
REFUND_STATUS_ING => 'list_status_red01', REFUND_STATUS_ING => 'list_status_red01',
REFUND_STATUS_AFTER_SALE_ING => 'list_status_yellow01', REFUND_STATUS_AFTER_SALE_ING => 'list_status_yellow01',
REFUND_STATUS_SUCC => 'list_status_green01', REFUND_STATUS_SUCC => 'list_status_green01',
); );
$nlist = array(); $nlist['data'] = $this->get_nlist($list, $order_status2class, $refund_status2class);
foreach ($list as $info) {
$ninfo = array();
$ninfo['order_sn'] = $info['order_sn'];
$ninfo['pay_time'] = $info['pay_time'];
$ninfo['pay_amount'] = $info['pay_amount'];
$ninfo['order_status_desc'] = $GLOBALS['order_status'][$info['order_status']];
$ninfo['refund_status_desc'] = $GLOBALS['refund_status'][$info['refund_status']];
$ninfo['goods_name'] = $goodsid2skuid2info[$info['goods_id']][$info['sku_id']]['goods_name'].' '.$goodsid2skuid2info[$info['goods_id']][$info['sku_id']]['sku_name'];
$ninfo['goods_id'] = $info['goods_id'];
$ninfo['sku_id'] = $info['sku_id'];
$ninfo['order_status_class'] = $GLOBALS['order_status2class'][$info['order_status']];
$ninfo['refund_status_class'] = $GLOBALS['refund_status2class'][$info['refund_status']];
$nlist['data'][] = $ninfo;
}
$nlist['total'] = $obj->getOrdersCount($shopinfo['uid'], $shopinfo['id'])+0; $nlist['total'] = $obj->getOrdersCount($shopinfo['uid'], $shopinfo['id'])+0;
$this->ajax_json(true, 'succ', $nlist); $this->ajax_json(true, 'succ', $nlist);
@ -104,49 +76,20 @@ class index extends publicBase {
$list = $obj->getOrderList($shopinfo['uid'], $shopinfo['id'], 0, REFUND_STATUS_AFTER_SALE_ING, $page, $pagesize); $list = $obj->getOrderList($shopinfo['uid'], $shopinfo['id'], 0, REFUND_STATUS_AFTER_SALE_ING, $page, $pagesize);
if (empty($list)) $this->ajax_json(false, 'empty list'); if (empty($list)) $this->ajax_json(false, 'empty list');
$goods_ids = array_unique(array_column($list, 'goods_id')); $order_status2class = array(
$gobj = new mGoods();
$goods_list = $gobj->getGoodsByGoodsids($goods_ids);
if (empty($goods_list)) return true;
$goodsid2skuid2info = array();
foreach ($goods_list as $goods) {
$goodsid2skuid2info[$goods['goods_id']][$goods['sku_id']] = $goods;
}
$GLOBALS['order_status2class'] = array(
ORDER_STATUS_WAIT_DELIVER_GOODS => 'list_status_grey01', ORDER_STATUS_WAIT_DELIVER_GOODS => 'list_status_grey01',
ORDER_STATUS_DELIVERED => 'list_status_red01', ORDER_STATUS_DELIVERED => 'list_status_red01',
ORDER_STATUS_SIGNED_FOR => 'list_status_yellow01', ORDER_STATUS_SIGNED_FOR => 'list_status_yellow01',
); );
$GLOBALS['refund_status2class'] = array( $refund_status2class = array(
REFUND_STATUS_NO_AFTER_SALES => 'list_status_grey01', REFUND_STATUS_NO_AFTER_SALES => 'list_status_grey01',
REFUND_STATUS_ING => 'list_status_red01', REFUND_STATUS_ING => 'list_status_red01',
REFUND_STATUS_AFTER_SALE_ING => 'list_status_yellow01', REFUND_STATUS_AFTER_SALE_ING => 'list_status_yellow01',
REFUND_STATUS_SUCC => 'list_status_green01', REFUND_STATUS_SUCC => 'list_status_green01',
); );
$nlist = array(); $nlist['data'] = $this->get_nlist($list, $order_status2class, $refund_status2class);
foreach ($list as $info) {
$ninfo = array();
$ninfo['order_sn'] = $info['order_sn'];
$ninfo['pay_time'] = $info['pay_time'];
$ninfo['pay_amount'] = $info['pay_amount'];
$ninfo['order_status_desc'] = $GLOBALS['order_status'][$info['order_status']];
$ninfo['refund_status_desc'] = $GLOBALS['refund_status'][$info['refund_status']];
$ninfo['after_sales_status_desc'] = $GLOBALS['after_sales_status'][$info['after_sales_status']];
$ninfo['goods_name'] = $goodsid2skuid2info[$info['goods_id']][$info['sku_id']]['goods_name'].' '.$goodsid2skuid2info[$info['goods_id']][$info['sku_id']]['sku_name'];
$ninfo['goods_id'] = $info['goods_id'];
$ninfo['sku_id'] = $info['sku_id'];
$ninfo['order_status_class'] = $GLOBALS['order_status2class'][$info['order_status']];
$ninfo['refund_status_class'] = $GLOBALS['refund_status2class'][$info['refund_status']];
$nlist['data'][] = $ninfo;
}
$nlist['total'] = $obj->getOrdersCount($shopinfo['uid'], $shopinfo['id'], 0, REFUND_STATUS_AFTER_SALE_ING)+0; $nlist['total'] = $obj->getOrdersCount($shopinfo['uid'], $shopinfo['id'], 0, REFUND_STATUS_AFTER_SALE_ING)+0;
$this->ajax_json(true, 'succ', $nlist); $this->ajax_json(true, 'succ', $nlist);
@ -190,4 +133,78 @@ class index extends publicBase {
} }
public function wait_deliver_list() {}
public function ajax_get_wait_deliver_list() {
$shopinfo = $this->get_shopinfo();
$page = $this->get('page')+0;
$pagesize = $this->get('limit')+0;
$obj = new mOrder();
$list = $obj->getOrderList($shopinfo['uid'], $shopinfo['id'], ORDER_STATUS_WAIT_DELIVER_GOODS, REFUND_STATUS_NO_AFTER_SALES, $page, $pagesize);
if (empty($list)) $this->ajax_json(false, 'empty list');
$order_status2class = array(
ORDER_STATUS_WAIT_DELIVER_GOODS => 'list_status_grey01',
ORDER_STATUS_DELIVERED => 'list_status_red01',
ORDER_STATUS_SIGNED_FOR => 'list_status_yellow01',
);
$refund_status2class = array(
REFUND_STATUS_NO_AFTER_SALES => 'list_status_grey01',
REFUND_STATUS_ING => 'list_status_red01',
REFUND_STATUS_AFTER_SALE_ING => 'list_status_yellow01',
REFUND_STATUS_SUCC => 'list_status_green01',
);
$nlist['data'] = $this->get_nlist($list, $order_status2class, $refund_status2class);
$nlist['total'] = $obj->getOrdersCount($shopinfo['uid'], $shopinfo['id'], ORDER_STATUS_WAIT_DELIVER_GOODS, REFUND_STATUS_NO_AFTER_SALES)+0;
$this->ajax_json(true, 'succ', $nlist);
}
private function get_nlist($list, $order_status2class, $refund_status2class) {
$goods_ids = array_unique(array_column($list, 'goods_id'));
$gobj = new mGoods();
$goods_list = $gobj->getGoodsByGoodsids($goods_ids);
if (empty($goods_list)) return true;
$goodsid2skuid2info = array();
foreach ($goods_list as $goods) {
$goodsid2skuid2info[$goods['goods_id']][$goods['sku_id']] = $goods;
}
$nlist = array();
foreach ($list as $info) {
$ninfo = array();
$ninfo['order_sn'] = $info['order_sn'];
$ninfo['pay_time'] = $info['pay_time'];
$ninfo['pay_amount'] = $info['pay_amount'];
$ninfo['order_status_desc'] = $GLOBALS['order_status'][$info['order_status']];
$ninfo['refund_status_desc'] = $GLOBALS['refund_status'][$info['refund_status']];
$ninfo['after_sales_status_desc'] = $GLOBALS['after_sales_status'][$info['after_sales_status']];
$ninfo['goods_name'] = $goodsid2skuid2info[$info['goods_id']][$info['sku_id']]['goods_name'].' '.$goodsid2skuid2info[$info['goods_id']][$info['sku_id']]['sku_name'];
$ninfo['goods_id'] = $info['goods_id'];
$ninfo['sku_id'] = $info['sku_id'];
$ninfo['order_status_class'] = $order_status2class[$info['order_status']];
$ninfo['refund_status_class'] = $refund_status2class[$info['refund_status']];
$ninfo['urge_shipping_time'] = $info['urge_shipping_time'];
$ninfo['is_urge'] = $info['urge_shipping_time'] == '0000-00-00 00:00:00' ? false : true;
$ninfo['is_show_count_down'] = $is_show_count_down = strtotime($info['last_ship_time'])-time()>0 ? true : false;
if ($is_show_count_down) {
$count_down = $gobj->getHourMinuteSecondCountDown($info['last_ship_time'], date("Y-m-d H:i:s"));
$count_down_str = $count_down['hour'].':'.$count_down['minute'].':'.$count_down['second'];
}
$ninfo['count_down'] = $is_show_count_down ? $count_down_str : 0;
$nlist[] = $ninfo;
}
return $nlist;
}
} }

23
model/mBase.php

@ -1423,6 +1423,11 @@ class mBase extends publicBase {
return shell_exec($cmd); return shell_exec($cmd);
} }
/**
* 获取周的开始日期和结束日期
* @param unknown $default_date
* @return string[]
*/
public function getWeekStartEndDate($default_date) { public function getWeekStartEndDate($default_date) {
//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期 //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
$first=1; $first=1;
@ -1439,4 +1444,22 @@ class mBase extends publicBase {
); );
} }
/**
* 获取时分秒倒计时
* @param unknown $start_time
* @param unknown $end_time
* @return array|number[]|mixed[]
*/
public function getHourMinuteSecondCountDown($start_time, $end_time) {
$count_down = strtotime($end_time) - strtotime($start_time);
if ($count_down <= 0) return array();
$data = array();
$data['hour'] = $h = floor($count_down/3600);
$data['minute'] = $m = floor(($count_down - $h*3600)/60);
$data['second'] = $count_down - $h*3600 - $m*60;
return $data;
}
} }

2
view/templates/index/after_sale_list.html

@ -30,7 +30,7 @@
<div class="admin-table-list-header"> <div class="admin-table-list-header">
<div><span>售后监控/</span></div> <div><span>售后监控/</span></div>
<div><span>售后列表</span></div> <div><span>售后列表</span></div>
<div><a href="/index/export_wait_deliver_goods_tids"><span>导出列表</span></a></div> <!-- <div><span>导出列表</span></div> -->
</div> </div>
<table class="layui-hide" id="deliver_remind_list" lay-filter="deliver-remind-table"></table> <table class="layui-hide" id="deliver_remind_list" lay-filter="deliver-remind-table"></table>
</div> </div>

2
view/templates/index/order_list.html

@ -30,7 +30,7 @@
<div class="admin-table-list-header"> <div class="admin-table-list-header">
<div><span>订单列表/</span></div> <div><span>订单列表/</span></div>
<div><span>订单列表</span></div> <div><span>订单列表</span></div>
<div><span>导出列表</span></div> <!-- <div><span>导出列表</span></div> -->
</div> </div>
<table class="layui-hide" id="deliver_remind_list" lay-filter="deliver-remind-table"></table> <table class="layui-hide" id="deliver_remind_list" lay-filter="deliver-remind-table"></table>
</div> </div>

29
view/templates/index/wait_deliver_list.html

@ -6,7 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link href="/images/pdd_icon.png" rel="icon"> <link href="/images/pdd_icon.png" rel="icon">
<title>首页</title> <title>发货提醒</title>
<link rel="stylesheet" href="/css/layui.css"/> <link rel="stylesheet" href="/css/layui.css"/>
<link rel="stylesheet" href="/css/admin_style.css"/> <link rel="stylesheet" href="/css/admin_style.css"/>
<link rel="stylesheet" href="/css/common.css"/> <link rel="stylesheet" href="/css/common.css"/>
@ -30,7 +30,7 @@
<div class="admin-table-list-header"> <div class="admin-table-list-header">
<div><span>发货提醒/</span></div> <div><span>发货提醒/</span></div>
<div><span>发货列表</span></div> <div><span>发货列表</span></div>
<div><span>导出列表</span></div> <div><a href="/index/export_wait_deliver_goods_tids"><span>导出列表</span></a></div>
</div> </div>
<table class="layui-hide" id="deliver_remind_list" lay-filter="deliver-remind-table"></table> <table class="layui-hide" id="deliver_remind_list" lay-filter="deliver-remind-table"></table>
</div> </div>
@ -70,26 +70,29 @@ layui.use(['element', 'layer', 'util', 'table'], function(){
var showTips = null; var showTips = null;
table.render({ table.render({
elem: '#deliver_remind_list' elem: '#deliver_remind_list'
,url:'/tpl/ajax_get_deliver_remind_list' ,url:'/index/ajax_get_wait_deliver_list'
,toolbar: false ,toolbar: false
,title: '用户数据表' ,title: '用户数据表'
,totalRow: false ,totalRow: false
,className:'deliver_remind_list_table_class' ,className:'deliver_remind_list_table_class'
,cols: [[ ,cols: [[
{field:'goods_name', title:'商品名称'} {field:'goods_name', title:'商品名称',
,{field:'tid', title:'订单号' templet: function(d){
return '<a href="https://mobile.yangkeduo.com/goods.html?goods_id='+d.goods_id+'&sku_id='+d.sku_id+'" target="_blank">'+d.goods_name+'</a>';
}}
,{field:'order_sn', title:'订单号'
,templet: function(d){ ,templet: function(d){
return '<span data-clipboard-text="'+d.tid+'" title="点击复制" class="admin-table-td-outter admin-table-td-outter-'+d.tid+'">'+ d.tid +'&nbsp;<span class="icon-uniE90E admin-table-td-outter-font admin-table-td-outter-font-'+d.tid+'"></span></span>'; return '<span data-clipboard-text="'+d.order_sn+'" title="点击复制" class="admin-table-td-outter admin-table-td-outter-'+d.order_sn+'">'+ d.order_sn +'&nbsp;<span class="icon-uniE90E admin-table-td-outter-font admin-table-td-outter-font-'+d.order_sn+'"></span></span>';
}} }}
,{field:'count_down', title:'销售时间/倒计时' ,{field:'pay_time', title:'销售时间/倒计时'
,templet: function(d){ ,templet: function(d){
if(d.count_down.indexOf('倒计时') > -1) return '<label id="count_down_wait_'+d.tid+'" content="'+d.sale_date+'" class="count_down_wait">'+d.count_down+'</label>'; if(d.is_show_count_down == true) return '<label id="count_down_wait_'+d.order_sn+'" content="'+d.pay_time+'" class="count_down_wait">'+d.count_down+'</label>';
return '<span>'+d.count_down+'</span>'; return '<span>'+d.pay_time+'</span>';
}} }}
,{field:'income', title:'收入'} ,{field:'pay_amount', title:'支付金额(元)'}
,{field:'status', title:'顾客催发' ,{field:'status', title:'顾客催发'
,templet: function(d){ ,templet: function(d){
if(d.status == 1) return '<span class="remained_status" content="'+d.remained_time+'" id="remind_time_'+d.tid+'"><span class="icon--3"></span>&nbsp;已催</span>'; if(d.is_urge) return '<span class="remained_status" content="'+d.urge_shipping_time+'" id="remind_time_'+d.order_sn+'"><span class="icon--3"></span>&nbsp;已催</span>';
return '<span class="icon--"></span>&nbsp;<span class="remained_status_wait">未催</span>'; return '<span class="icon--"></span>&nbsp;<span class="remained_status_wait">未催</span>';
}} }}
]] ]]
@ -117,7 +120,7 @@ layui.use(['element', 'layer', 'util', 'table'], function(){
e.clearSelection(); e.clearSelection();
}); });
if(data[i].count_down.indexOf('倒计时') > -1){ if(data[i].is_show_count_down == true){
$('#count_down_wait_'+data[i].tid).hover(function(){ $('#count_down_wait_'+data[i].tid).hover(function(){
var hid = $(this).attr('id'); var hid = $(this).attr('id');
var hcontent = $(this).attr('content'); var hcontent = $(this).attr('content');
@ -133,7 +136,7 @@ layui.use(['element', 'layer', 'util', 'table'], function(){
} }
if(data[i].status == 1){ if(data[i].is_urge == true){
$('#remind_time_'+data[i].tid).hover(function(){ $('#remind_time_'+data[i].tid).hover(function(){
var hcontent = $(this).attr('content'); var hcontent = $(this).attr('content');
var hid = $(this).attr('id'); var hid = $(this).attr('id');

Loading…
Cancel
Save