Browse Source

Merge branch 'dev_wf' of wufeng/fuse into version1.5

wufeng 2 years ago
parent
commit
343bb14c30

+ 7 - 0
app/admin/config/validate_rules.php

@@ -152,6 +152,13 @@ return [
         'card_id|卡类型id' => 'require|number|gt:0',
         'remark|备注' => 'max:255',
     ],
+    //【商品分组明细】
+    //添加
+    'GoodGroupItemAdd' => [
+        'good_group_id|商品分组id' => 'require|number|gt:0',
+        'good_id|商品id' => 'require|number|gt:0',
+        'weight|权重' => 'require|number|egt:0',
+    ],
 
     //【商城商品库存】
     //添加

+ 65 - 0
app/admin/controller/GoodGroupItem.php

@@ -0,0 +1,65 @@
+<?php
+
+namespace app\admin\controller;
+
+use app\admin\logic\GoodGroupItemLogic;
+use app\BaseController;
+use app\model\CommonModel;
+use think\exception\ValidateException;
+use think\facade\Config;
+use think\facade\Validate;
+
+//【商品分组明细】
+class GoodGroupItem extends BaseController
+{
+    //获取商品分组明细列表
+    public function list()
+    {
+        $param = $this->request->only(['good_group_id' => 0, 'page' => 1, 'size' => 10, 'good_title' => ''], 'post');
+
+        return GoodGroupItemLogic::list($param);
+    }
+
+    //添加商品分组明细
+    public function add()
+    {
+        $param = $this->request->only(['good_group_id', 'good_id','weight'=>0], 'post');
+
+        $val = Validate::rule(Config::get('validate_rules.GoodGroupItemAdd'));
+
+        if (!$val->check($param)) throw new ValidateException($val->getError());
+
+        return GoodGroupItemLogic::add($param);
+    }
+
+    //获取商品分组明细详情
+    public function read()
+    {
+        $id = $this->request->post('id/d', 0);
+        return GoodGroupItemLogic::read($id);
+    }
+
+    //编辑商品分组明细
+    public function edit()
+    {
+        $param = $this->request->only(['id', 'good_id','weight'], 'post');
+
+        $val = Validate::rule([
+            'id|商品分组明细id' => 'require|number|gt:0',
+            'good_id|商品id' => 'require|number|gt:0',
+            'weight|权重' => 'number|egt:0',
+        ]);
+
+        if (!$val->check($param)) throw new ValidateException($val->getError());
+
+        return GoodGroupItemLogic::edit($param);
+    }
+
+    //删除商品分组明细
+    public function delete()
+    {
+        $ids = $this->request->post('id/a', []);
+        return GoodGroupItemLogic::delete($ids);
+    }
+
+}

+ 161 - 0
app/admin/logic/GoodGroupItemLogic.php

@@ -0,0 +1,161 @@
+<?php
+
+namespace app\admin\logic;
+
+use app\model\CommonModel;
+use app\model\GoodGroupModel;
+use app\model\GoodModel;
+use think\Exception;
+use think\exception\ValidateException;
+use think\facade\Db;
+use think\response\Json;
+
+class GoodGroupItemLogic extends BaseLogic
+{
+
+    //列表
+    public static function list(array $data = []): Json
+    {
+        $db = Db::name('good_group_item')
+            ->alias('a')
+            ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
+            ->where(['a.is_del' => CommonModel::$del_normal, 'good_group_id' => $data['good_group_id']]);
+
+        if ($data['good_title'] != '') $db->whereLike('b.good_name', '%' . $data['good_title'] . '%');
+
+        $count = $db->count('a.id');
+
+        $list = $db->field('a.id,b.good_code,b.good_name,a.weight')
+            ->page($data['page'], $data['size'])
+            ->order(['a.weight' => 'desc', 'a.id' => 'desc'])
+            ->select()
+            ->toArray();
+
+        return json_show(CommonModel::$success, '获取商品分组明细列表成功', ['count' => $count, 'list' => $list]);
+    }
+
+    //添加
+    public static function add(array $data = []): Json
+    {
+
+        Db::startTrans();
+
+        try {
+
+            $rs = GoodGroupModel::field('id')
+                ->where(['id' => $data['good_group_id'], 'is_del' => CommonModel::$del_normal])
+                ->findOrEmpty()
+                ->isEmpty();
+            if ($rs) throw new Exception('该商品分组不存在');
+
+            $rs = GoodModel::field('id')
+                ->where(['id' => $data['good_id'], 'is_del' => CommonModel::$del_normal])
+                ->findOrEmpty()
+                ->isEmpty();
+            if ($rs) throw new Exception('该商品不存在');
+
+            $rs = Db::name('good_group_item')
+                ->field('id')
+                ->where([
+                    'is_del' => CommonModel::$del_normal,
+                    'good_group_id' => $data['good_group_id'],
+                    'good_id' => $data['good_id']])
+                ->findOrEmpty();
+            if (!empty($rs)) throw new Exception('该商品已存在,不能在同一商品分组下重复添加');
+
+            $res = Db::name('good_group_item')
+                ->insert(array_merge($data, [
+                    'is_del' => CommonModel::$del_normal,
+                    'addtime' => date('Y-m-d H:i:s'),
+                    'updatetime' => date('Y-m-d H:i:s'),
+                ]));
+
+            Db::name('good_group')
+                ->where(['id' => $data['good_group_id'], 'is_del' => CommonModel::$del_normal])
+                ->inc('num', $res)
+                ->update(['updatetime' => date('Y-m-d H:i:s')]);
+
+            Db::commit();
+
+            return $res ? json_show(CommonModel::$success, '添加商品分组明细成功') : json_show(CommonModel::$success, '添加商品分组明细失败');
+
+        } catch (Exception $exception) {
+            Db::rollback();
+            return json_show(CommonModel::$error_param, '添加商品分组明细失败,' . $exception->getMessage());
+        }
+    }
+
+    //获取详情
+    public static function read(int $id = 0): Json
+    {
+        $res = Db::name('good_group_item')
+            ->field(true)
+            ->where(['id' => $id, 'is_del' => CommonModel::$del_normal])
+            ->findOrEmpty();
+
+        if (empty($res)) throw new ValidateException('该商品分组明细为空');
+
+        return json_show(CommonModel::$success, '获取商品分组明细详情成功', $res);
+    }
+
+    //编辑
+    public static function edit(array $data = []): Json
+    {
+        $rs = GoodModel::field('id')
+            ->where(['id' => $data['good_id'], 'is_del' => CommonModel::$del_normal])
+            ->findOrEmpty()
+            ->isEmpty();
+        if ($rs) return json_show(CommonModel::$error_param, '该商品不存在');
+
+        $res = Db::name('good_group_item')
+            ->where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
+            ->save(array_merge($data, ['updatetime' => date('Y-m-d H:i:s')]));
+
+        return $res ? json_show(CommonModel::$success, '编辑商品分组明细成功') : json_show(CommonModel::$error_param, '编辑商品分组明细失败');
+
+    }
+
+    //删除
+    public static function delete(array $ids = []): Json
+    {
+        Db::startTrans();
+
+        try {
+
+            $good_group_id = Db::name('good_group_item')
+                ->whereIn('id', $ids)
+                ->where('is_del', CommonModel::$del_normal)
+                ->group('good_group_id')
+                ->column('good_group_id');
+
+            if (count($good_group_id) > 1) throw new Exception('不能删除不同分组下的商品');
+
+            $num = Db::name('good_group_item')
+                ->whereIn('id', $ids)
+                ->where('is_del', CommonModel::$del_normal)
+                ->update([
+                    'is_del' => CommonModel::$del_deleted,
+                    'updatetime' => date('Y-m-d H:i:s'),
+                ]);
+
+            Db::name('good_group')
+                ->where(['id' => $good_group_id[0], 'is_del' => CommonModel::$del_normal])
+                ->dec('num', $num)
+                ->update([
+                    'updatetime' => date('Y-m-d H:i:s'),
+                    'updaterid' => self::$uid,
+                    'updater' => self::$uid
+                ]);
+
+            Db::commit();
+
+            return $num ? json_show(CommonModel::$success, '删除成功') : json_show(CommonModel::$error_param, '删除失败,该商品分组明细不存在');
+
+        } catch (Exception $exception) {
+            Db::rollback();
+            return json_show(CommonModel::$error_param, '删除商品分组明细失败,' . $exception->getMessage());
+        }
+    }
+
+
+}

+ 1 - 1
app/admin/logic/VideoGroupItemLogic.php

@@ -150,7 +150,7 @@ class VideoGroupItemLogic extends BaseLogic
 
         } catch (Exception $exception) {
             Db::rollback();
-            return json_show(CommonModel::$error_param, '添加视频分组明细失败,' . $exception->getMessage());
+            return json_show(CommonModel::$error_param, '删除视频分组明细失败,' . $exception->getMessage());
         }
     }
 

+ 13 - 6
app/admin/route/app.php

@@ -97,12 +97,19 @@ Route::rule('goodChange', 'admin/Good/status');//商品启禁用
 Route::rule('goodDelete', 'admin/Good/delete');//删除商品
 
 //【商品分组】
-Route::rule('goodGroupList', 'admin/GoodGroup/list');//获取商品分组列表
-Route::rule('goodGroupAdd', 'admin/GoodGroup/add');//添加商品分组
-Route::rule('goodGroupRead', 'admin/GoodGroup/read');//获取商品分组详情
-Route::rule('goodGroupEdit', 'admin/GoodGroup/edit');//编辑商品分组
-Route::rule('goodGroupChange', 'admin/GoodGroup/status');//商品分组启禁用
-Route::rule('goodGroupDelete', 'admin/GoodGroup/delete');//删除商品分组
+Route::rule('goodGroupList', 'admin/GoodGroup/list');//列表
+Route::rule('goodGroupAdd', 'admin/GoodGroup/add');//添加
+Route::rule('goodGroupRead', 'admin/GoodGroup/read');//获取详情
+Route::rule('goodGroupEdit', 'admin/GoodGroup/edit');//编辑
+Route::rule('goodGroupChange', 'admin/GoodGroup/status');//启禁用
+Route::rule('goodGroupDelete', 'admin/GoodGroup/delete');//删除
+//【商品分组明细】
+Route::rule('goodGroupItemList', 'admin/GoodGroupItem/list');//列表
+Route::rule('goodGroupItemAdd', 'admin/GoodGroupItem/add');//添加
+Route::rule('goodGroupItemRead', 'admin/GoodGroupItem/read');//获取详情
+Route::rule('goodGroupItemEdit', 'admin/GoodGroupItem/edit');//编辑
+Route::rule('goodGroupItemDelete', 'admin/GoodGroupItem/delete');//删除
+Route::rule('goodGroupItemTop', 'admin/GoodGroupItem/top');//置顶
 
 //【兑换商品库存】
 Route::rule('inventoryExchangeList', 'admin/InventoryExchange/list');//获取兑换商品列表