|
|
@@ -23,6 +23,7 @@ use app\common\model\Order;
|
|
|
use app\common\model\OrderGoods;
|
|
|
use app\common\model\Goods;
|
|
|
use app\common\model\Distribution;
|
|
|
+use app\common\model\AfterSale;
|
|
|
use think\facade\Config;
|
|
|
|
|
|
/**
|
|
|
@@ -52,16 +53,16 @@ class IndexController extends BaseAdminController
|
|
|
$whereLastTime[] = ['o.create_time', 'between', [$firstDayOfLastMonth, $lastDayOfLastMonth]];
|
|
|
$whereNowTime[] = ['o.create_time', 'between', [$firstDayOfNowMonth, $lastDayOfNowMonth]];
|
|
|
|
|
|
- $where[]=['o.pay_status','=',1];
|
|
|
+ $where[] = ['o.pay_status', '=', 1];
|
|
|
//上月销量
|
|
|
- $lastOrderGoodsInfo = OrderGoods::alias('og')->leftJoin('order o','o.id = og.order_id')
|
|
|
+ $lastOrderGoodsInfo = OrderGoods::alias('og')->leftJoin('order o', 'o.id = og.order_id')
|
|
|
->field('og.goods_id,og.goods_name name,sum(og.goods_num) last_total_num')
|
|
|
->where($where)->where($whereLastTime)
|
|
|
->group('og.goods_id,og.goods_name')
|
|
|
->order('last_total_num desc')
|
|
|
->select()->toArray();
|
|
|
//本月销量
|
|
|
- $nowOrderGoodsInfo = OrderGoods::alias('og')->leftJoin('order o','o.id = og.order_id')
|
|
|
+ $nowOrderGoodsInfo = OrderGoods::alias('og')->leftJoin('order o', 'o.id = og.order_id')
|
|
|
->field('og.goods_id,og.goods_name name,sum(og.goods_num) now_total_num')
|
|
|
->where($where)->where($whereNowTime)
|
|
|
->group('og.goods_id,og.goods_name')
|
|
|
@@ -69,76 +70,75 @@ class IndexController extends BaseAdminController
|
|
|
->select()->toArray();
|
|
|
|
|
|
$newGoodsData = [];
|
|
|
- if(count($lastOrderGoodsInfo)>5){
|
|
|
- foreach($lastOrderGoodsInfo as $lk=>$lv){
|
|
|
+ if (count($lastOrderGoodsInfo) > 5) {
|
|
|
+ foreach ($lastOrderGoodsInfo as $lk => $lv) {
|
|
|
|
|
|
- if($lk>4)break;
|
|
|
- foreach($nowOrderGoodsInfo as $nk=>$nv){
|
|
|
+ if ($lk > 4) break;
|
|
|
+ foreach ($nowOrderGoodsInfo as $nk => $nv) {
|
|
|
$lastOrderGoodsInfo[$lk]['now_total_num'] = 0;
|
|
|
- if($lv['goods_id'] == $nv['goods_id'] ){
|
|
|
+ if ($lv['goods_id'] == $nv['goods_id']) {
|
|
|
$lv['now_total_num'] = $nv['now_total_num'];
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- $newGoodsData[] =$lv;
|
|
|
+ $newGoodsData[] = $lv;
|
|
|
}
|
|
|
- }
|
|
|
- else{
|
|
|
- if(empty($lastOrderGoodsInfo)){
|
|
|
- foreach($nowOrderGoodsInfo as $nk=>$nv){
|
|
|
- if($nk>4)break;
|
|
|
+ } else {
|
|
|
+ if (empty($lastOrderGoodsInfo)) {
|
|
|
+ foreach ($nowOrderGoodsInfo as $nk => $nv) {
|
|
|
+ if ($nk > 4) break;
|
|
|
$nv['last_total_num'] = 0;
|
|
|
$newGoodsData[] = $nv;
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$count = 0;
|
|
|
$lastGoodsIdArr = [];
|
|
|
- foreach($lastOrderGoodsInfo as $lk=>$lv){
|
|
|
+ foreach ($lastOrderGoodsInfo as $lk => $lv) {
|
|
|
$count++;
|
|
|
- array_push($lastGoodsIdArr,$lv['goods_id']);
|
|
|
- if($lk>4)break;
|
|
|
- foreach($nowOrderGoodsInfo as $nk=>$nv){
|
|
|
+ array_push($lastGoodsIdArr, $lv['goods_id']);
|
|
|
+ if ($lk > 4) break;
|
|
|
+ foreach ($nowOrderGoodsInfo as $nk => $nv) {
|
|
|
$lv['now_total_num'] = 0;
|
|
|
- if($lv['goods_id'] == $nv['goods_id'] ){
|
|
|
+ if ($lv['goods_id'] == $nv['goods_id']) {
|
|
|
$lv['now_total_num'] = $nv['now_total_num'];
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- $newGoodsData[] =$lv;
|
|
|
+ $newGoodsData[] = $lv;
|
|
|
}
|
|
|
|
|
|
- if($count<5){
|
|
|
- foreach($nowOrderGoodsInfo as &$nv){
|
|
|
- if($count>=5) break;
|
|
|
- if(in_array($nv['goods_id'],$lastGoodsIdArr)) continue;
|
|
|
+ if ($count < 5) {
|
|
|
+ foreach ($nowOrderGoodsInfo as &$nv) {
|
|
|
+ if ($count >= 5) break;
|
|
|
+ if (in_array($nv['goods_id'], $lastGoodsIdArr)) continue;
|
|
|
$nv['last_total_num'] = 0;
|
|
|
$nv['growth'] = '100%';
|
|
|
$nv['type'] = 1;
|
|
|
- $count ++;
|
|
|
+ $count++;
|
|
|
$newGoodsData[] = $nv;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- foreach ($newGoodsData as &$ngv){
|
|
|
- if($ngv['last_total_num']==0){
|
|
|
+ foreach ($newGoodsData as &$ngv) {
|
|
|
+ if ($ngv['last_total_num'] == 0) {
|
|
|
$ngv['growth'] = '100%';
|
|
|
$ngv['type'] = 1;
|
|
|
- }else{
|
|
|
- if($ngv['last_total_num'] < $ngv['now_total_num']){
|
|
|
- $ngv['growth'] = round(($ngv['now_total_num'] - $ngv['last_total_num'])/$ngv['last_total_num']*100 ,0). '%';
|
|
|
+ } else {
|
|
|
+ if ($ngv['last_total_num'] < $ngv['now_total_num']) {
|
|
|
+ $ngv['growth'] = round(($ngv['now_total_num'] - $ngv['last_total_num']) / $ngv['last_total_num'] * 100, 0) . '%';
|
|
|
$ngv['type'] = 1;
|
|
|
- }else if($ngv['last_total_num'] > $ngv['now_total_num']){
|
|
|
- $ngv['growth'] = round(($ngv['last_total_num'] - $ngv['now_total_num'])/$ngv['last_total_num']*100 ,0). '%';
|
|
|
+ } else if ($ngv['last_total_num'] > $ngv['now_total_num']) {
|
|
|
+ $ngv['growth'] = round(($ngv['last_total_num'] - $ngv['now_total_num']) / $ngv['last_total_num'] * 100, 0) . '%';
|
|
|
$ngv['type'] = 0;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$ngv['growth'] = 0;
|
|
|
$ngv['type'] = 1;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- $ngv['name'] = mb_substr( $ngv['name'], 0, 6, "UTF-8") . '....' ;
|
|
|
+ $ngv['name'] = mb_substr($ngv['name'], 0, 6, "UTF-8") . '....';
|
|
|
}
|
|
|
|
|
|
$data['newGoodsData'] = $newGoodsData;
|
|
|
@@ -146,26 +146,26 @@ class IndexController extends BaseAdminController
|
|
|
|
|
|
/** 分类销量排名 start**/
|
|
|
$ogcwhere = [];
|
|
|
- $ogcwhere[]=['gc.level','=','1'];
|
|
|
+ $ogcwhere[] = ['gc.level', '=', '1'];
|
|
|
|
|
|
- $OrderGoodsCategoryInfo = OrderGoods::alias('og')
|
|
|
- ->leftJoin('order o','o.id = og.order_id')
|
|
|
- ->leftJoin('goods g','g.id = og.goods_id')
|
|
|
- ->leftJoin('goods_category_index gci','gci.goods_id=g.id')
|
|
|
- ->leftJoin('goods_category gc','gc.id = gci.category_id')
|
|
|
+ $OrderGoodsCategoryInfo = OrderGoods::alias('og')
|
|
|
+ ->leftJoin('order o', 'o.id = og.order_id')
|
|
|
+ ->leftJoin('goods g', 'g.id = og.goods_id')
|
|
|
+ ->leftJoin('goods_category_index gci', 'gci.goods_id=g.id')
|
|
|
+ ->leftJoin('goods_category gc', 'gc.id = gci.category_id')
|
|
|
->field('gc.`name` ,sum( og.goods_num) total_num')
|
|
|
->where($where)->where($ogcwhere)
|
|
|
->group('gc.name')
|
|
|
->select()->toArray();
|
|
|
|
|
|
- $goods_category_data = array_column($OrderGoodsCategoryInfo,'total_num');
|
|
|
+ $goods_category_data = array_column($OrderGoodsCategoryInfo, 'total_num');
|
|
|
|
|
|
$data['order_goods_category'] = $OrderGoodsCategoryInfo;
|
|
|
$count = count($goods_category_data);
|
|
|
- while($count){
|
|
|
- if($count<3 ) {
|
|
|
- array_push($goods_category_data,0);
|
|
|
- }else{
|
|
|
+ while ($count) {
|
|
|
+ if ($count < 3) {
|
|
|
+ array_push($goods_category_data, 0);
|
|
|
+ } else {
|
|
|
break;
|
|
|
}
|
|
|
$count = count($goods_category_data);
|
|
|
@@ -173,22 +173,22 @@ class IndexController extends BaseAdminController
|
|
|
$data['goods_category_data'] = json_encode($goods_category_data);
|
|
|
$ogcK = 0;
|
|
|
$chars_category = [];
|
|
|
- foreach ($OrderGoodsCategoryInfo as $ogcv){
|
|
|
+ foreach ($OrderGoodsCategoryInfo as $ogcv) {
|
|
|
$ogcK++;
|
|
|
- $random_data = [30,20,50,40,100,200,300];
|
|
|
+ $random_data = [30, 20, 50, 40, 100, 200, 300];
|
|
|
shuffle($random_data);
|
|
|
$randomValue = $random_data[2];
|
|
|
- $max = substr($ogcv['total_num'] + $randomValue, 0, -1).'0';
|
|
|
+ $max = substr($ogcv['total_num'] + $randomValue, 0, -1) . '0';
|
|
|
$ogcv['max'] = $max;
|
|
|
unset($ogcv['total_num']);
|
|
|
- $chars_category[]=$ogcv;
|
|
|
+ $chars_category[] = $ogcv;
|
|
|
}
|
|
|
- while($ogcK){
|
|
|
- $categorys['name']='填充';
|
|
|
- $categorys['max']='0';
|
|
|
- if($ogcK<3 ) {
|
|
|
- $chars_category[]=$categorys;
|
|
|
- }else{
|
|
|
+ while ($ogcK) {
|
|
|
+ $categorys['name'] = '填充';
|
|
|
+ $categorys['max'] = '0';
|
|
|
+ if ($ogcK < 3) {
|
|
|
+ $chars_category[] = $categorys;
|
|
|
+ } else {
|
|
|
break;
|
|
|
}
|
|
|
$ogcK++;
|
|
|
@@ -198,28 +198,28 @@ class IndexController extends BaseAdminController
|
|
|
|
|
|
/** middle start **/
|
|
|
//商品数量
|
|
|
- $goodswhere = [] ;
|
|
|
- $goodswhere[] = ['status','=',1];
|
|
|
- $goodswhere[] = ['delete_time','=',NULL];
|
|
|
+ $goodswhere = [];
|
|
|
+ $goodswhere[] = ['status', '=', 1];
|
|
|
+ $goodswhere[] = ['delete_time', '=', NULL];
|
|
|
$goods_count = Goods::where($goodswhere)->count();
|
|
|
$middle['goods_number'] = $goods_count;
|
|
|
|
|
|
//合作商
|
|
|
- $diswhere = [] ;
|
|
|
- $diswhere[] = ['is_distribution','=',1];
|
|
|
- $diswhere[] = ['delete_time','=',NULL];
|
|
|
+ $diswhere = [];
|
|
|
+ $diswhere[] = ['is_distribution', '=', 1];
|
|
|
+ $diswhere[] = ['delete_time', '=', NULL];
|
|
|
$distribution_count = Distribution::where($diswhere)->count();
|
|
|
$middle['distribution_number'] = $distribution_count;
|
|
|
|
|
|
//订单数
|
|
|
- $order_where = [] ;
|
|
|
- $order_where[] = ['pay_status','=',1];
|
|
|
+ $order_where = [];
|
|
|
+ $order_where[] = ['pay_status', '=', 1];
|
|
|
$order_count = Order::where($order_where)->count();
|
|
|
$middle['order_number'] = $order_count;
|
|
|
|
|
|
//派送订单
|
|
|
- $orderwhere = [] ;
|
|
|
- $orderwhere[] = ['order_status','=',2];
|
|
|
+ $orderwhere = [];
|
|
|
+ $orderwhere[] = ['order_status', '=', 2];
|
|
|
$order_delivery_count = Order::where($orderwhere)->count();
|
|
|
$middle['delivery_number'] = $order_delivery_count;
|
|
|
|
|
|
@@ -231,53 +231,76 @@ class IndexController extends BaseAdminController
|
|
|
|
|
|
$monthData = [];
|
|
|
$monthArr = [];
|
|
|
- for($i=1;$i<=$nowMonth;$i++){
|
|
|
- array_push($monthArr,$i);
|
|
|
- $monthFat = $i.'月';
|
|
|
- array_push($monthData,$monthFat);
|
|
|
+ for ($i = 1; $i <= $nowMonth; $i++) {
|
|
|
+ array_push($monthArr, $i);
|
|
|
+ $monthFat = $i . '月';
|
|
|
+ array_push($monthData, $monthFat);
|
|
|
}
|
|
|
|
|
|
$middle['YearData'] = $nowYear;
|
|
|
$middle['MonthFormatData'] = json_encode($monthData);
|
|
|
$month_data = [];
|
|
|
- foreach ($monthArr as $mv){
|
|
|
- $date = getMonthFirstAndLastDay($nowYear,$mv);
|
|
|
+ foreach ($monthArr as $mv) {
|
|
|
+ $date = getMonthFirstAndLastDay($nowYear, $mv);
|
|
|
$startTime = strtotime($date['firstDay']);
|
|
|
- $endTime = strtotime($date['lastDay'].' 23:59:59');
|
|
|
- $create_time_date = [$startTime,$endTime];
|
|
|
+ $endTime = strtotime($date['lastDay'] . ' 23:59:59');
|
|
|
+ $create_time_date = [$startTime, $endTime];
|
|
|
$salewhere = [];
|
|
|
- $salewhere[]=['create_time','between',$create_time_date];
|
|
|
+ $salewhere[] = ['create_time', 'between', $create_time_date];
|
|
|
$month_order_number = Order::alias('o')->where($where)->where($salewhere)->count();
|
|
|
- array_push($month_data,$month_order_number);
|
|
|
+ array_push($month_data, $month_order_number);
|
|
|
}
|
|
|
|
|
|
$middle['MonthOrderData'] = json_encode($month_data);
|
|
|
$nowTime = time();
|
|
|
$todayStartDate = date('Y-m-d');
|
|
|
- $todaywhere= [];
|
|
|
- $todaywhere[]=['create_time','between',[strtotime($todayStartDate),$nowTime]];
|
|
|
+ $todaywhere = [];
|
|
|
+ $todaywhere[] = ['create_time', 'between', [strtotime($todayStartDate), $nowTime]];
|
|
|
$todayOrderInfo = Order::alias('o')->where($where)->where($todaywhere)->field('count(id) number,sum(total_amount) total_money')->find();
|
|
|
|
|
|
- $middle['today_order_number']=$todayOrderInfo['number'];
|
|
|
- $middle['today_total_amount']=$todayOrderInfo['total_money']??0;
|
|
|
+ $middle['today_order_number'] = $todayOrderInfo['number'];
|
|
|
+ $middle['today_total_amount'] = $todayOrderInfo['total_money'] ?? 0;
|
|
|
|
|
|
$thisMonth = date('n');
|
|
|
- $this_month_date = getMonthFirstAndLastDay($nowYear,$thisMonth);
|
|
|
+ $this_month_date = getMonthFirstAndLastDay($nowYear, $thisMonth);
|
|
|
|
|
|
$startTime = strtotime($this_month_date['firstDay']);
|
|
|
- $endTime = strtotime($this_month_date['lastDay'].' 23:59:59');
|
|
|
- $create_time_date = [$startTime,$endTime];
|
|
|
+ $endTime = strtotime($this_month_date['lastDay'] . ' 23:59:59');
|
|
|
+ $create_time_date = [$startTime, $endTime];
|
|
|
|
|
|
$thisMonthWhere = [];
|
|
|
- $thisMonthWhere[]=['create_time','between',$create_time_date];
|
|
|
+ $thisMonthWhere[] = ['create_time', 'between', $create_time_date];
|
|
|
$thisMonthOrderInfo = Order::alias('o')->where($where)->where($thisMonthWhere)->field('count(id) number,sum(total_amount) total_money')->find();
|
|
|
|
|
|
- $middle['this_month_order_number']=$thisMonthOrderInfo['number'];
|
|
|
- $middle['this_month_total_amount']=$thisMonthOrderInfo['total_money']??0;
|
|
|
+ $middle['this_month_order_number'] = $thisMonthOrderInfo['number'];
|
|
|
+ $middle['this_month_total_amount'] = $thisMonthOrderInfo['total_money'] ?? 0;
|
|
|
|
|
|
$data['middle'] = $middle;
|
|
|
/** middle end **/
|
|
|
|
|
|
+ /**下单退款 start**/
|
|
|
+ $order_refund['MonthData'] = json_encode($monthArr);
|
|
|
+ $order_month_info = [];
|
|
|
+ $refund_month_info = [];
|
|
|
+ foreach ($monthArr as $mv) {
|
|
|
+ $date = getMonthFirstAndLastDay($nowYear, $mv);
|
|
|
+ $startTime = strtotime($date['firstDay']);
|
|
|
+ $endTime = strtotime($date['lastDay'] . ' 23:59:59');
|
|
|
+ $create_time_date = [$startTime, $endTime];
|
|
|
+ $salewhere = [];
|
|
|
+ $salewhere[] = ['create_time', 'between', $create_time_date];
|
|
|
+ $month_order_number = Order::alias('o')->where($where)->where($salewhere)->count();
|
|
|
+ array_push($order_month_info, $month_order_number);
|
|
|
+
|
|
|
+ $salewhere[]=['status','in',[1,2]];
|
|
|
+ $month_refund_number = AfterSale::where($salewhere)->count();
|
|
|
+ array_push($refund_month_info,$month_refund_number);
|
|
|
+ }
|
|
|
+ $order_refund['order_month_info'] = json_encode($order_month_info);
|
|
|
+ $order_refund['refund_month_info'] = json_encode($refund_month_info);
|
|
|
+ $data['order_refund_info'] = $order_refund;
|
|
|
+ /**下单退款 end **/
|
|
|
+// dump($data);
|
|
|
return view('/count/index', $data);
|
|
|
}
|
|
|
|