|
|
@@ -21,6 +21,7 @@ namespace app\count\controller;
|
|
|
|
|
|
use app\common\model\Order;
|
|
|
use app\common\model\OrderGoods;
|
|
|
+use app\common\model\GoodsCategory as GoodsCategoryModel;
|
|
|
use app\common\model\Goods;
|
|
|
use app\common\model\Distribution;
|
|
|
use app\common\model\AfterSale;
|
|
|
@@ -146,20 +147,49 @@ class IndexController extends BaseAdminController
|
|
|
|
|
|
/** 分类销量排名 start**/
|
|
|
$ogcwhere = [];
|
|
|
- $ogcwhere[] = ['gc.level', '=', '1'];
|
|
|
+// $ogcwhere[] = ['gc.level', '=', '1'];
|
|
|
|
|
|
- $OrderGoodsCategoryInfo = OrderGoods::alias('og')
|
|
|
+ $OrderGoodsCategoryInfos = 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')
|
|
|
+ ->field('gc.id,gc.`name` ,gc.pid,sum( og.goods_num) total_num')
|
|
|
->where($where)->where($ogcwhere)
|
|
|
->group('gc.name')
|
|
|
->select()->toArray();
|
|
|
|
|
|
- $goods_category_data = array_column($OrderGoodsCategoryInfo, 'total_num');
|
|
|
+ $OrderGoodsCategoryInfo = [];
|
|
|
+ foreach($OrderGoodsCategoryInfos as &$ogcv){
|
|
|
+ $pid = $ogcv['pid'];
|
|
|
+ $id = $ogcv['id'];
|
|
|
+ $new_data=[];
|
|
|
+ $name = $ogcv['name'];
|
|
|
+ $total_num = $ogcv['total_num'];
|
|
|
+ while($pid){
|
|
|
+ if($pid == 0){
|
|
|
+ break;
|
|
|
+ }else{
|
|
|
+ $categoryInfo = GoodsCategoryModel::find($pid);
|
|
|
+ $pid = $categoryInfo['pid'];
|
|
|
+ $id = $categoryInfo['id'];
|
|
|
+ $name = $categoryInfo['name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isset($OrderGoodsCategoryInfo[$id])){
|
|
|
+ $new_total_num = $OrderGoodsCategoryInfo[$id]['total_num']+$total_num;
|
|
|
+ $OrderGoodsCategoryInfo[$id]['total_num'] = $new_total_num;
|
|
|
+ }else{
|
|
|
+ $new_data['total_num'] = $total_num;
|
|
|
+ $new_data['name'] = $name;
|
|
|
+ $OrderGoodsCategoryInfo[$id] = $new_data;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
+ $goods_category_data = array_column($OrderGoodsCategoryInfo, 'total_num');
|
|
|
+
|
|
|
$data['order_goods_category'] = $OrderGoodsCategoryInfo;
|
|
|
$count = count($goods_category_data);
|
|
|
while ($count) {
|