Browse Source

专用储值卡

gorden 3 months ago
parent
commit
6f6f438a2d

+ 32 - 0
app/admin/controller/coupon/CardMainController.php

@@ -2,10 +2,13 @@
 
 namespace app\admin\controller\coupon;
 
+use app\admin\service\sys_manage\CategoryService;
 use app\controller\Curd;
 use app\model\Card;
 use app\model\CardIssue;
 use app\model\CardMain;
+use app\model\Goods;
+use app\model\SysDept;
 use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
 use Illuminate\Database\Query\Builder as QueryBuilder;
 use support\Db;
@@ -154,6 +157,26 @@ class CardMainController extends Curd
         }
         // 发行记录
         $cardIssue = CardIssue::where('join_issue_card_main_id', $cardMainId)->orderBy('card_issue_addtimes', 'DESC')->get()->toArray();
+        $cardMainJson = json_decode($main->card_main_json, true);
+        // 适用门店
+        $premises = [];
+        if (!empty($cardMainJson['premises_ary'])){
+            $premises = SysDept::whereIn('dept_id',$cardMainJson['premises_ary'])->pluck('dept_name');
+        }
+        $category = [];
+        if (!empty($cardMainJson['goods_category_ary'])){
+            $category = CategoryService::getCategoryAndSupper($cardMainJson['goods_category_ary']);
+        }
+        // 适用产品
+        $goods = [];
+        if (!empty($cardMainJson['goods_ary'])){
+            $goods = Goods::whereIn('goods_id',$cardMainJson['goods_ary'])
+                ->select('goods_id','goods_name','goods_cover','goods_sales_price','goods_addtimes')
+                ->orderByDesc('goods_sort')->orderByDesc('goods_addtimes')->get()->toArray();
+            foreach ($goods as &$goodsItem){
+                $goodsItem['goods_cover'] = getenv("STORAGE_DOMAIN").$goodsItem['goods_cover'];
+            }
+        }
 
         // 发行统计
         $cardTotal = Card::where('join_card_main_id', $cardMainId)->count();
@@ -182,6 +205,9 @@ class CardMainController extends Curd
         $data = [
             'main' => $main,
             'issue' => $cardIssue,
+            'premises'=>$premises,
+            'category'=>$category,
+            'goods'=>$goods,
             'statistics' => $statistics
         ];
 
@@ -230,6 +256,12 @@ class CardMainController extends Curd
                 'rand_varchar' => is_numeric($params['card_rand']) ? 'NUMBER' : 'STRING',
             ];
         }
+        // 关联产品
+        $cardMainJson['goods_ary'] = $params['goods_id'] ?? [];
+        // 关联产品分类
+        $cardMainJson['goods_category_ary'] = $params['category_id'] ?? [];
+        // 关联门店
+        $cardMainJson['premises_ary'] = $params['premises'] ?? [];
 
         $data['card_main_json'] = json_encode($cardMainJson);
 

+ 32 - 0
app/admin/service/sys_manage/CategoryService.php

@@ -307,4 +307,36 @@ class CategoryService
         return $category;
     }
 
+    /**
+     * @Desc 获取分类及父级
+     * @Author Gorden
+     * @Date 2024/12/10 15:54
+     *
+     * @param $category_id
+     * @return array
+     */
+    public static function getCategoryAndSupper($category_id = [])
+    {
+        $categoryNames = [];
+        foreach ($category_id as $id) {
+            $category = SysCategory::where('category_id', $id)->first();
+            if (!empty($category) && !empty($category->category_super_path)) {
+                $superIds = array_filter(array_unique(explode('#', $category->category_super_path)));
+                $superCategory = SysCategory::whereIn('category_id', $superIds)->pluck('category_name', 'category_id')->toArray();
+                foreach ($superIds as $superId) {
+                    if (key_exists($superId, $superCategory)) {
+                        if (isset($categoryNames[$id])) {
+                            $categoryNames[$id] = $categoryNames[$id] . $superCategory[$superId] . ' / ';
+                        }else{
+                            $categoryNames[$id] = $superCategory[$superId] . ' / ';
+                        }
+                    }
+                }
+                $categoryNames[$id] = $categoryNames[$id] . $category->category_name;
+            }
+        }
+
+        return $categoryNames;
+    }
+
 }