123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399 |
- <?php
- /**
- * Niushop商城系统 - 团队十年电商经验汇集巨献!
- * =========================================================
- * Copy right 2019-2029 山西牛酷信息科技有限公司, 保留所有权利。
- * ----------------------------------------------
- * 官方网址: https://www.niushop.com.cn
- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
- * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
- * =========================================================
- */
- namespace app\admin\controller;
- use app\model\goods\GoodsAttribute as GoodsAttributeModel;
- use app\model\goods\GoodsBrand as GoodsBrandModel;
- /**
- * 商品类型/属性管理 控制器
- */
- class Goodsattr extends BaseAdmin
- {
- /**
- * 商品类型列表
- */
- public function lists()
- {
- if (request()->isAjax()) {
- $page_index = input('page', 1);
- $page_size = input('page_size', PAGE_LIST_ROWS);
- $search_keys = input('search_keys', "");
- $condition = [];
- $condition[] = [ 'site_id', '=', 0 ];
- if (!empty($search_keys)) {
- $condition[] = [ 'class_name', 'like', '%' . $search_keys . '%' ];
- }
- $goods_attr_model = new GoodsAttributeModel();
- $list = $goods_attr_model->getAttrClassPageList($condition, $page_index, $page_size);
- return $list;
- } else {
- $this->forthMenu();
- return $this->fetch('goodsattr/lists');
- }
- }
-
- /**
- * 商品类型添加
- */
- public function addAttr()
- {
- if (request()->isAjax()) {
- $class_name = input('class_name', '');
- $sort = input('sort', 0);
- $data = [
- 'class_name' => $class_name,
- 'sort' => $sort
- ];
- $goods_attr_model = new GoodsAttributeModel();
- $res = $goods_attr_model->addAttrClass($data);
- $this->addLog("添加商品类型:".$class_name);
- return $res;
- }
- }
-
- /**
- * 商品类型编辑
- */
- public function editAttr()
- {
- $goods_attr_model = new GoodsAttributeModel();
- if (request()->isAjax()) {
-
- $class_id = input("class_id", 0);
- $class_name = input('class_name', '');
- $sort = input('sort', 0);
- $data = [
- 'class_id' => $class_id,
- 'class_name' => $class_name,
- 'sort' => $sort
- ];
- $this->addLog("编辑商品类型:".$class_name);
- $res = $goods_attr_model->editAttrClass($data);
- return $res;
- } else {
- $class_id = input("class_id", 0);
- $this->assign("class_id", $class_id);
-
- //商品类型信息
- $attr_class_info = $goods_attr_model->getAttrClassInfo([ [ 'class_id', '=', $class_id ] ]);
- $attr_class_info = $attr_class_info['data'];
- $this->assign("attr_class_info", $attr_class_info);
-
- //商品类型关联品牌
- $attr_class_brand_list = $goods_attr_model->getAttrClassBrandList([ [ 'ngacb.attr_class_id', '=', $class_id ] ]);
- $attr_class_brand_list = $attr_class_brand_list['data'];
- $this->assign("attr_class_brand_list", $attr_class_brand_list);
-
- return $this->fetch('goodsattr/edit_attr');
- }
- }
-
- /**
- * 修改商品类型排序
- */
- public function modifySort()
- {
- if (request()->isAjax()) {
- $sort = input('sort', 0);
- $class_id = input('class_id', 0);
- $goods_attr_model = new GoodsAttributeModel();
- return $goods_attr_model->modifyAttrClassSort($sort, $class_id);
- }
- }
-
- /**
- * 商品类型删除
- */
- public function deleteAttr()
- {
- if (request()->isAjax()) {
- $class_id = input("class_id", 0);
- $goods_attr_model = new GoodsAttributeModel();
- $result = $goods_attr_model->deleteAttrClass($class_id);
- $this->addLog("删除商品类型id:".$class_id);
- return $result;
- }
- }
-
- /**
- * 添加商品类型关联品牌
- */
- public function addAttrClassBrand()
- {
- if (request()->isAjax()) {
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $brand_id_arr = input('brand_id_arr', "");
- if (!empty($brand_id_arr)) {
- $brand_id_arr = explode(",", $brand_id_arr);
- $goods_attr_model = new GoodsAttributeModel();
- $data = [];
- foreach ($brand_id_arr as $k => $v) {
- $item = [
- 'attr_class_id' => $attr_class_id,
- 'brand_id' => $v
- ];
- $data[] = $item;
- }
- return $goods_attr_model->addAttrClassBrand($attr_class_id, $data);
- } else {
- return error(-1, '缺少brand_id_arr');
- }
- }
- }
-
- /**
- * 删除商品类型关联品牌
- */
- public function deleteAttrClassBrand()
- {
- if (request()->isAjax()) {
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $id_arr = input('id_arr', 0);
- $goods_attr_model = new GoodsAttributeModel();
- return $goods_attr_model->deleteAttrClassBrand($attr_class_id, $id_arr);
- }
- }
-
- /**
- * 获取商品品牌分页列表,关联品牌用
- * @return \multitype
- */
- public function getBrandPageList()
- {
- if (request()->isAjax()) {
- $page_index = input('page', 1);
- $page_size = input('limit', PAGE_LIST_ROWS);
- $condition = [ [ 'ngb.site_id', '=', 0 ] ];
- $goods_brand_model = new GoodsBrandModel();
- $list = $goods_brand_model->getBrandPageList($condition, $page_index, $page_size, "ngb.create_time desc", 'ngb.brand_id,ngb.brand_name');
- return $list;
- }
- }
-
- /**
- * 添加商品属性
- */
- public function addAttribute()
- {
- if (request()->isAjax()) {
-
- $attr_name = input('attr_name', "");// 属性名称
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $attr_class_name = input('attr_class_name', "");// 商品类型名称
- $sort = input('sort', 0);// 属性排序号
- $is_query = input('is_query', 0);// 是否参与筛选
- $is_spec = input('is_spec', 0);// 是否是规格属性
- $attr_value_list = input('attr_value_list', "");// 属性值列表('',''隔开注意键值对)
- $attr_type = input('attr_type', 0);// 属性类型 (1.单选 2.多选3. 输入 注意输入不参与筛选)
- $site_id = 0;// 站点id
- $site_name = '';
- $data = [
- 'attr_name' => $attr_name,
- 'attr_class_id' => $attr_class_id,
- 'attr_class_name' => $attr_class_name,
- 'sort' => $sort,
- 'is_query' => $is_query,
- 'is_spec' => $is_spec,
- 'attr_value_list' => $attr_value_list,
- 'attr_type' => $attr_type,
- 'site_id' => $site_id,
- 'site_name' => $site_name
- ];
-
- $goods_attr_model = new GoodsAttributeModel();
- return $goods_attr_model->addAttribute($attr_class_id, $data);
- }
-
- }
-
- /**
- * 修改商品属性
- */
- public function editAttribute()
- {
- if (request()->isAjax()) {
-
- $attr_id = input('attr_id', "");// 属性id
- $attr_name = input('attr_name', "");// 属性名称
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $attr_class_name = input('attr_class_name', "");// 商品类型名称
- $sort = input('sort', 0);// 属性排序号
- $is_query = input('is_query', 0);// 是否参与筛选
- $is_spec = input('is_spec', 0);// 是否是规格属性
- $attr_value_list = input('attr_value_list', "");// 属性值列表('',''隔开注意键值对)
- $attr_type = input('attr_type', 0);// 属性类型 (1.单选 2.多选3. 输入 注意输入不参与筛选)
- $site_id = input('site_id', 0);// 站点id
-
- $data = [
- 'attr_id' => $attr_id,
- 'attr_name' => $attr_name,
- 'attr_class_id' => $attr_class_id,
- 'attr_class_name' => $attr_class_name,
- 'sort' => $sort,
- 'is_query' => $is_query,
- 'is_spec' => $is_spec,
- 'attr_value_list' => $attr_value_list,
- 'attr_type' => $attr_type,
- 'site_id' => $site_id
- ];
- $goods_attr_model = new GoodsAttributeModel();
- return $goods_attr_model->editAttribute($attr_class_id, $data);
- }
-
- }
-
- /**
- * 删除属性、属性值
- * @return \multitype
- */
- public function deleteAttribute()
- {
- if (request()->isAjax()) {
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $attr_id = input('attr_id', 0);// 属性id
- $goods_attr_model = new GoodsAttributeModel();
- $res = $goods_attr_model->deleteAttribute($attr_class_id, $attr_id);
- return $res;
- }
- }
-
- /**
- * 获取属性、属性值详情
- * @return \multitype
- */
- public function getAttributeDetail()
- {
- if (request()->isAjax()) {
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $attr_id = input('attr_id', 0);// 属性id
-
- $goods_attr_model = new GoodsAttributeModel();
- $attr_info = $goods_attr_model->getAttributeInfo([ [ 'attr_class_id', '=', $attr_class_id ], [ 'attr_id', '=', $attr_id ] ]);
- $attr_info = $attr_info['data'];
- if (!empty($attr_info)) {
- $attr_value_list = $goods_attr_model->getAttributeValueList([ [ 'attr_class_id', '=', $attr_class_id ], [ 'attr_id', '=', $attr_id ] ]);
- $attr_value_list = $attr_value_list['data'];
- $attr_info['value'] = $attr_value_list;
- return success(0, '', $attr_info);
- } else {
- return error(-1, "未查询到属性信息");
- }
- }
- }
-
- /**
- * 获取商品属性列表
- * @return \multitype
- */
- public function getAttributeList()
- {
- if (request()->isAjax()) {
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $goods_attr_model = new GoodsAttributeModel();
- return $goods_attr_model->getAttributeList([ [ 'attr_class_id', '=', $attr_class_id ] ]);
- }
- }
-
- /**
- * 添加属性值
- * @return \multitype
- */
- public function addAttributeValue()
- {
-
- if (request()->isAjax()) {
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $value = input('value', "");
- if (!empty($value)) {
- $value = json_decode($value, true);
- $data = [];
- foreach ($value as $k => $v) {
- $item = [
- 'attr_value_name' => $v['attr_value_name'],
- 'attr_id' => $v['attr_id'],
- 'attr_class_id' => $v['attr_class_id'],
- 'sort' => $v['sort']
- ];
- $data[] = $item;
- }
- $goods_attr_model = new GoodsAttributeModel();
- $res = $goods_attr_model->addAttributeValue($attr_class_id, $data);
- return $res;
- }
- } else {
- return error(-1, "缺少value");
- }
- }
-
- /**
- * 修改商品属性值
- */
- public function editAttributeValue()
- {
- if (request()->isAjax()) {
-
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $data = input('data', "");// 属性值数组对象
- if (!empty($data)) {
- $data = json_decode($data, true);
- $goods_attr_model = new GoodsAttributeModel();
- foreach ($data as $k => $v) {
- $item = [
- 'attr_value_id' => $v['attr_value_id'],
- 'attr_value_name' => $v['attr_value_name'],
- 'attr_id' => $v['attr_id'],
- 'attr_class_id' => $v['attr_class_id'],
- 'sort' => $v['sort'],
- ];
- $res = $goods_attr_model->editAttributeValue($attr_class_id, $item);
- }
- return $res;
- } else {
- return error(-1, "缺少data");
- }
-
- }
-
- }
-
- /**
- * 删除属性值
- * @return \multitype
- */
- public function deleteAttributeValue()
- {
-
- if (request()->isAjax()) {
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $attr_value_id_arr = input('attr_value_id_arr', 0);
- $goods_attr_model = new GoodsAttributeModel();
- $res = $goods_attr_model->deleteAttributeValue($attr_class_id, [ [ 'attr_value_id', 'in', $attr_value_id_arr ] ]);
- return $res;
- }
- }
-
- /**
- * 修改商品属性站点id
- */
- public function modifyAttributeSite()
- {
- if (request()->isAjax()) {
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $attr_id = input('attr_id', 0);// 属性id
- $goods_attr_model = new GoodsAttributeModel();
- return $goods_attr_model->modifyAttributeSite(0, $attr_class_id, $attr_id);
- }
- }
-
- }
|