Browse Source

商品修改报表优化

wufeng 2 years ago
parent
commit
1850e13671
1 changed files with 83 additions and 8 deletions
  1. 83 8
      app/admin/controller/Report.php

+ 83 - 8
app/admin/controller/Report.php

@@ -1248,32 +1248,107 @@ class Report extends Base
 
                 //特殊字段处理
                 switch ($kk) {
+
+                    //品牌
                     case 'brand_id':
-                        $value['before_info'][$kk] = Db::name('brand')->where(['id' => $before_info[$kk], 'is_del' => 0])->value('brand_name', '');
-                        $after_info[$kk] = Db::name('brand')->where(['id' => $vv, 'is_del' => 0])->value('brand_name', '');
+                        $all_brand = Db::name('brand')
+                            ->whereIn('id', [$before_info[$kk], $vv])
+                            ->where('is_del', 0)
+                            ->column('brand_name', 'id');
+
+                        $value['before_info'][$kk] = isset($all_brand[$before_info[$kk]]) ? $all_brand[$before_info[$kk]] : '';
+                        $after_info[$kk] = isset($all_brand[$vv]) ? $all_brand[$vv] : '';
                         break;
 
+                    //分类
                     case 'cat_id':
-                        $value['before_info'][$kk] = Db::name('cat')->where(['id' => $before_info[$kk], 'is_del' => 0])->value('cat_name', '');
-                        $after_info[$kk] = Db::name('cat')->where(['id' => $vv, 'is_del' => 0])->value('cat_name', '');
+                        $all_cat = Db::name('cat')
+                            ->whereIn('id', [$vv, $before_info[$kk]])
+                            ->where('is_del', 0)
+                            ->column('cat_name', 'id');
+
+                        $value['before_info'][$kk] = isset($all_cat[$before_info[$kk]]) ? $all_cat[$before_info[$kk]] : '';
+                        $after_info[$kk] = isset($all_cat[$vv]) ? $all_cat[$vv] : '';
                         break;
 
+                    //发货地
                     case 'delivery_place':
                         $delivery_place = explode(',', $before_info[$kk]);
-                        $value['before_info'][$kk] = GetAddr(json_encode(['provice_code' => $delivery_place[0] ?? '', 'city_code' => $delivery_place[1] ?? '', 'area_code' => $delivery_place[2] ?? '']));
+                        $value['before_info'][$kk] = empty($delivery_place) ? $before_info[$kk] : GetAddr(json_encode(['provice_code' => $delivery_place[0] ?? '', 'city_code' => $delivery_place[1] ?? '', 'area_code' => $delivery_place[2] ?? '']));
 
                         $delivery_place_2 = explode(',', $vv);
-                        $after_info[$kk] = GetAddr(json_encode(['provice_code' => $delivery_place_2[0] ?? '', 'city_code' => $delivery_place_2[1] ?? '', 'area_code' => $delivery_place_2[2] ?? '']));
+                        $after_info[$kk] = empty($delivery_place_2) ? $vv : GetAddr(json_encode(['provice_code' => $delivery_place_2[0] ?? '', 'city_code' => $delivery_place_2[1] ?? '', 'area_code' => $delivery_place_2[2] ?? '']));
                         break;
 
+                    //产地
                     case 'origin_place':
                         $origin_place = explode(',', $before_info[$kk]);
-                        $value['before_info'][$kk] = GetAddr(json_encode(['provice_code' => $origin_place[0] ?? '', 'city_code' => $origin_place[1] ?? '', 'area_code' => $origin_place[2] ?? '']));
+                        $value['before_info'][$kk] = empty($origin_place) ? $before_info[$kk] : GetAddr(json_encode(['provice_code' => $origin_place[0] ?? '', 'city_code' => $origin_place[1] ?? '', 'area_code' => $origin_place[2] ?? '']));
 
                         $origin_place_2 = explode(',', $vv);
-                        $after_info[$kk] = GetAddr(json_encode(['provice_code' => $origin_place_2[0] ?? '', 'city_code' => $origin_place_2[1] ?? '', 'area_code' => $origin_place_2[2] ?? '']));
+                        $after_info[$kk] = empty($vv) ? $vv : GetAddr(json_encode(['provice_code' => $origin_place_2[0] ?? '', 'city_code' => $origin_place_2[1] ?? '', 'area_code' => $origin_place_2[2] ?? '']));
+                        break;
+
+                    //商品单位
+                    case 'good_unit':
+                        $all_unit = Db::name('unit')
+                            ->whereIn('id', [$before_info[$kk], $vv])
+                            ->where(['is_del' => 0])
+                            ->column('unit', 'id');
+
+                        $value['before_info'][$kk] = isset($all_unit[$before_info[$kk]]) ? $all_unit[$before_info[$kk]] : '';
+                        $after_info[$kk] = isset($all_unit[$vv]) ? $all_unit[$vv] : '';
                         break;
 
+                    //业务企业
+                    case 'companyNo':
+                        $all_business = Db::name('business')
+                            ->whereIn('companyNo', [$before_info[$kk], $vv])
+                            ->where(['is_del' => 0])
+                            ->column('company', 'companyNo');
+
+                        $value['before_info'][$kk] = isset($all_business[$before_info[$kk]]) ? $all_business[$before_info[$kk]] : '';
+                        $after_info[$kk] = isset($all_business[$vv]) ? $all_business[$vv] : '';
+                        break;
+
+                    //供应商
+                    case 'supplierNo':
+                        $all_supplier = Db::name('supplier')
+                            ->whereIn('code', [$before_info[$kk], $vv])
+                            ->where(['is_del' => 0])
+                            ->column('name', 'code');
+
+                        $value['before_info'][$kk] = isset($all_supplier[$before_info[$kk]]) ? $all_supplier[$before_info[$kk]] : '';
+                        $after_info[$kk] = isset($all_supplier[$vv]) ? $all_supplier[$vv] : '';
+                        break;
+
+                    //供货区域
+                    case 'supply_area':
+                        if ($before_info[$kk] == 1) $value['before_info'][$kk] = '全国';
+                        elseif ($before_info[$kk] == 2) $value['before_info'][$kk] = '全国除偏远';
+                        else $value['before_info'][$kk] = '';
+
+                        if ($vv == 1) $after_info[$kk] = '全国';
+                        elseif ($vv == 2) $after_info[$kk] = '全国除偏远';
+                        else $after_info[$kk] = '';
+                        break;
+
+                    //贵金属种类
+                    case 'noble_metal':
+
+                        if ($before_info[$kk] == 1) $value['before_info'][$kk] = '18K';
+                        elseif ($before_info[$kk] == 2) $value['before_info'][$kk] = '24K';
+                        elseif ($before_info[$kk] == 3) $value['before_info'][$kk] = '白银';
+                        else $value['before_info'][$kk] = '';
+
+                        if ($vv == 1) $after_info[$kk] = '18K';
+                        elseif ($vv == 2) $after_info[$kk] = '24K';
+                        elseif ($vv == 3) $after_info[$kk] = '白银';
+                        else $after_info[$kk] = '';
+
+                        break;
+
+
                     default:
                         $value['before_info'][$kk] = $before_info[$kk];
                         break;