123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872 |
- <?php
- /**
- * Niushop商城系统 - 团队十年电商经验汇集巨献!
- * =========================================================
- * Copy right 2019-2029 山西牛酷信息科技有限公司, 保留所有权利。
- * ----------------------------------------------
- * 官方网址: https://www.niushop.com.cn
- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
- * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
- * =========================================================
- */
- namespace app\shop\controller;
- use app\model\express\ExpressTemplate as ExpressTemplateModel;
- use app\model\goods\Goods as GoodsModel;
- use app\model\goods\GoodsAttribute as GoodsAttributeModel;
- use app\model\goods\GoodsBrand as GoodsBrandModel;
- use app\model\goods\GoodsCategory as GoodsCategoryModel;
- use app\model\goods\GoodsShopCategory as GoodsShopCategoryModel;
- use app\model\goods\GoodsEvaluate as GoodsEvaluateModel;
- use app\model\goods\GoodsShopCategory;
- use addon\supply\model\Supplier as SupplierModel;
- /**
- * 实物商品
- * Class Goods
- * @package app\shop\controller
- */
- class Goods extends BaseShop
- {
-
- public function __construct()
- {
- //执行父类构造函数
- parent::__construct();
- }
-
- /**
- * 商品列表
- * @return mixed
- */
- public function lists()
- {
- $goods_model = new GoodsModel();
- if (request()->isAjax()) {
- $page_index = input('page', 1);
- $page_size = input('page_size', PAGE_LIST_ROWS);
- $search_text = input('search_text', "");
- $goods_state = input('goods_state', "1");
- $verify_state = input('verify_state', "");
- $start_sale = input('start_sale', 0);
- $end_sale = input('end_sale', 0);
- $start_price = input('start_price', 0);
- $end_price = input('end_price', 0);
- $goods_shop_category_ids = input('goods_shop_category_ids', '');
- $goods_class = input('goods_class', "");
-
- $condition = [ [ 'is_delete', '=', 0 ], [ 'site_id', '=', $this->site_id ] ];
-
- if (!empty($search_text)) {
- $condition[] = [ 'goods_name', 'like', '%' . $search_text . '%' ];
- }
-
- if ($goods_class !== "") {
- $condition[] = [ 'goods_class', '=', $goods_class ];
- }
-
- // 上架状态
- if ($goods_state !== '') {
- $condition[] = [ 'goods_state', '=', $goods_state ];
- }
-
- // 审核状态
- if ($verify_state !== '') {
- $condition[] = [ 'verify_state', '=', $verify_state ];
- }
- if (!empty($start_sale)) $condition[] = [ 'sale_num', '>=', $start_sale ];
- if (!empty($end_sale)) $condition[] = [ 'sale_num', '<=', $end_sale ];
- if (!empty($start_price)) $condition[] = [ 'price', '>=', $start_price ];
- if (!empty($end_price)) $condition[] = [ 'price', '<=', $end_price ];
- if (!empty($goods_shop_category_ids)) $condition[] = [ 'goods_shop_category_ids', 'like', [ $goods_shop_category_ids, '%' . $goods_shop_category_ids . ',%', '%' . $goods_shop_category_ids, '%,' . $goods_shop_category_ids . ',%' ], 'or' ];
- $res = $goods_model->getGoodsPageList($condition, $page_index, $page_size);
- return $res;
- } else {
- $verify_state = $goods_model->getVerifyState();
- $arr = [];
- foreach ($verify_state as $k => $v) {
- // 过滤已审核状态
- if ($k != 1) {
- $total = $goods_model->getGoodsTotalCount([ [ 'verify_state', '=', $k ], [ 'site_id', "=", $this->site_id ] ]);
- $total = $total['data'];
- $arr[] = [
- 'state' => $k,
- 'value' => $v,
- 'count' => $total
- ];
- }
- }
- $verify_state = $arr;
- $this->assign("verify_state", $verify_state);
-
- //获取店内分类
- $goods_shop_category_model = new GoodsShopCategoryModel();
- $goods_shop_category_list = $goods_shop_category_model->getShopCategoryTree([ [ 'site_id', "=", $this->site_id ] ], 'category_id,category_name,pid,level');
- $goods_shop_category_list = $goods_shop_category_list['data'];
- $this->assign("goods_shop_category_list", $goods_shop_category_list);
- return $this->fetch("goods/lists");
- }
- }
-
- /**
- * 刷新审核状态商品数量
- */
- public function refreshVerifyStateCount()
- {
- if (request()->isAjax()) {
- $goods_model = new GoodsModel();
- $verify_state = $goods_model->getVerifyState();
- $arr = [];
- foreach ($verify_state as $k => $v) {
- // 过滤已审核状态
- if ($k != 1) {
- $total = $goods_model->getGoodsTotalCount([ [ 'verify_state', '=', $k ], [ 'site_id', "=", $this->site_id ] ]);
- $total = $total['data'];
- $arr[] = [
- 'state' => $k,
- 'value' => $v,
- 'count' => $total
- ];
- }
- }
- $verify_state = $arr;
- return $verify_state;
- }
- }
-
- /**
- * 添加商品
- * @return mixed
- */
- public function addGoods()
- {
- if (request()->isAjax()) {
- $goods_model = new GoodsModel();
- if ($this->shop_info["shop_status"] == 0) {
- return $goods_model->error([], "SHOP_IS_CLOSE");
- }
- $goods_name = input("goods_name", "");// 商品名称
- $goods_attr_class = input("goods_attr_class", "");// 商品类型id
- $goods_attr_name = input("goods_attr_name", "");// 商品类型名称
- $category_id = input("category_id", 0);// 分类id
- $category_id_1 = input("category_id_1", 0);// 一级分类id
- $category_id_2 = input("category_id_2", 0);// 二级分类id
- $category_id_3 = input("category_id_3", 0);// 三级分类id
- $category_name = input("category_name", "");// 所属分类名称
- $commission_rate = input("commission_rate", 0);// 分佣比率(按照分类)
- $brand_id = input("brand_id", 0);// 品牌id
- $brand_name = input("brand_name", "");// 所属品牌名称
- $goods_shop_category_ids = input("goods_shop_category_ids", "");// 店内分类id,逗号隔开
- $goods_image = input("goods_image", "");// 商品主图路径
- $goods_content = input("goods_content", "");// 商品详情
- $goods_state = input("goods_state", "1");// 商品状态(1.正常0下架)
- $goods_stock = input("goods_stock", 0);// 商品库存(总和)
- $goods_stock_alarm = input("goods_stock_alarm", 0);// 库存预警
- $is_free_shipping = input("is_free_shipping", 1);// 是否免邮
- $shipping_template = input("shipping_template", 0);// 指定运费模板
- $goods_spec_format = input("goods_spec_format", "");// 商品规格格式
- $goods_attr_format = input("goods_attr_format", "");// 商品属性格式
- $introduction = input("introduction", "");// 促销语
- $keywords = input("keywords", "");// 关键词
- $unit = input("unit", "");// 单位
- $sort = input("sort", 0);// 排序
- $video_url = input("video_url", "");// 视频
- $goods_sku_data = input("goods_sku_data", "");// SKU商品数据
- $supplier_id = input("supplier_id", "");// 供应商id
- $pay_num1 = input("pay_num1",0);
- $price1 = input("price1",0);
- $pay_num2 = input("pay_num2",0);
- $price2 =input("price2",0);
- $pay_num3 = input("pay_num3",0);
- $price3 = input("price3",0);
- $province = input("province",0);
- $city = input("city",0);
- // print_r($goods_sku_data);die;
- //单规格需要
- $price = input("price", 0);// 商品价格(取第一个sku)
- $market_price = input("market_price", 0);// 市场价格(取第一个sku)
- $cost_price = input("cost_price", 0);// 成本价(取第一个sku)
- $sku_no = input("sku_no", "");// 商品sku编码
- $weight = input("weight", "");// 重量
- $volume = input("volume", "");// 体积
- $imgae = explode(',',$goods_image);
- if(count($imgae)){
- return $this->error('图片上传数量上限为5张');
- }
- $data = [
- 'goods_name' => $goods_name,
- 'goods_attr_class' => $goods_attr_class,
- 'goods_attr_name' => $goods_attr_name,
- 'site_id' => $this->site_id,
- 'website_id' => $this->website_id,
- 'category_id' => $category_id,
- 'category_id_1' => $category_id_1,
- 'category_id_2' => $category_id_2,
- 'category_id_3' => $category_id_3,
- 'category_name' => $category_name,
- 'brand_id' => $brand_id,
- 'brand_name' => $brand_name,
- 'goods_image' => $goods_image,
- 'goods_content' => $goods_content,
- 'goods_state' => $goods_state,
- 'price' => $price,
- 'market_price' => $market_price,
- 'cost_price' => $cost_price,
- 'sku_no' => $sku_no,
- 'weight' => $weight,
- 'volume' => $volume,
- 'goods_stock' => $goods_stock,
- 'goods_stock_alarm' => $goods_stock_alarm,
- 'is_free_shipping' => $is_free_shipping,
- 'shipping_template' => $shipping_template,
- 'goods_spec_format' => $goods_spec_format,
- 'goods_attr_format' => $goods_attr_format,
- 'introduction' => $introduction,
- 'keywords' => $keywords,
- 'unit' => $unit,
- 'sort' => $sort,
- 'commission_rate' => $commission_rate,
- 'video_url' => $video_url,
- 'goods_sku_data' => $goods_sku_data,
- 'goods_shop_category_ids' => $goods_shop_category_ids,
- 'supplier_id' => $supplier_id,
- 'pay_num1' => $pay_num1,
- 'price1' => $price1,
- 'pay_num2' => $pay_num2,
- 'price2' => $price2,
- 'pay_num3' => $pay_num3,
- 'price3' => $price3,
- 'province'=>$province,
- 'city'=>$city
- ];
-
-
- $res = $goods_model->addGoods($data);
- return $res;
- } else {
-
- //获取一级商品分类
- $goods_category_model = new GoodsCategoryModel();
- $condition = [
- [ 'pid', '=', 0 ]
- ];
-
- $goods_category_list = $goods_category_model->getCategoryList($condition, 'category_id,category_name,level,commission_rate');
- $goods_category_list = $goods_category_list['data'];
- $this->assign("goods_category_list", $goods_category_list);
- $shop_model = new \app\model\shop\Shop();
- $shop_brand_id = $shop_model->getShopInfo([['site_id','=',$this->site_id]],'brand_id');
- //获取品牌;
- $goods_brand_model = new GoodsBrandModel();
- $brand_list = $goods_brand_model->getBrandList([], "brand_id, brand_name");
- $brand_list = $brand_list['data'];
- $this->assign("brand_list", $brand_list);
-
- //获取店内分类
- $goods_shop_category_model = new GoodsShopCategoryModel();
- $goods_shop_category_list = $goods_shop_category_model->getShopCategoryTree([ [ 'site_id', "=", $this->site_id ] ], 'category_id,category_name,pid,level');
- $goods_shop_category_list = $goods_shop_category_list['data'];
- $this->assign("goods_shop_category_list", $goods_shop_category_list);
-
- //获取运费模板
- $express_template_model = new ExpressTemplateModel();
- $express_template_list = $express_template_model->getExpressTemplateList([ [ 'site_id', "=", $this->site_id ] ], 'template_id,template_name', 'is_default desc');
- $express_template_list = $express_template_list['data'];
- $this->assign("express_template_list", $express_template_list);
-
- //获取商品类型
- $goods_attr_model = new GoodsAttributeModel();
- $attr_class_list = $goods_attr_model->getAttrClassList([ [ 'site_id', 'in', ("0,$this->site_id") ] ], 'class_id,class_name');
- $attr_class_list = $attr_class_list['data'];
- $this->assign("attr_class_list", $attr_class_list);
-
- $is_install_supply = addon_is_exit("supply");
- if ($is_install_supply) {
- $supplier_model = new SupplierModel();
- $supplier_list = $supplier_model->getSupplierPageList([], 1, PAGE_LIST_ROWS, 'supplier_id DESC');
- $supplier_list = $supplier_list['data']['list'];
- $this->assign("supplier_list", $supplier_list);
- }
- $this->assign("is_install_supply", $is_install_supply);
-
- return $this->fetch("goods/add_goods");
- }
- }
-
- /**
- * 编辑商品
- * @return mixed
- */
- public function editGoods()
- {
- $goods_model = new GoodsModel();
- if (request()->isAjax()) {
- if ($this->shop_info["shop_status"] == 0) {
- return $goods_model->error([], "SHOP_IS_CLOSE");
- }
- $goods_id = input("goods_id", 0);// 商品id
- $goods_name = input("goods_name", "");// 商品名称
- $goods_attr_class = input("goods_attr_class", "");// 商品类型id
- $goods_attr_name = input("goods_attr_name", "");// 商品类型名称
- $category_id = input("category_id", 0);// 分类id
- $category_id_1 = input("category_id_1", 0);// 一级分类id
- $category_id_2 = input("category_id_2", 0);// 二级分类id
- $category_id_3 = input("category_id_3", 0);// 三级分类id
- $category_name = input("category_name", "");// 所属分类名称
- $commission_rate = input("commission_rate", 0);// 分佣比率(按照分类)
- $brand_id = input("brand_id", 0);// 品牌id
- $brand_name = input("brand_name", "");// 所属品牌名称
- $goods_shop_category_ids = input("goods_shop_category_ids", "");// 店内分类id,逗号隔开
- $goods_image = input("goods_image", "");// 商品主图路径
- $goods_content = input("goods_content", "");// 商品详情
- $goods_state = input("goods_state", "");// 商品状态(1.正常0下架)
- $goods_stock = input("goods_stock", 0);// 商品库存(总和)
- $goods_stock_alarm = input("goods_stock_alarm", 0);// 库存预警
- $is_free_shipping = input("is_free_shipping", 1);// 是否免邮
- $shipping_template = input("shipping_template", 0);// 指定运费模板
- $goods_spec_format = input("goods_spec_format", "");// 商品规格格式
- $goods_attr_format = input("goods_attr_format", "");// 商品属性格式
- $introduction = input("introduction", "");// 促销语
- $keywords = input("keywords", "");// 关键词
- $unit = input("unit", "");// 单位
- $sort = input("sort", 0);// 排序
- $video_url = input("video_url", "");// 视频
- $goods_sku_data = input("goods_sku_data", "");// SKU商品数据
- $supplier_id = input("supplier_id", "");// 供应商id
- $pay_num1 = input("pay_num1",0);
- $price1 = input("price1",0);
- $pay_num2 = input("pay_num2",0);
- $price2 =input("price2",0);
- $pay_num3 = input("pay_num3",0);
- $price3 = input("price3",0);
-
- //单规格需要
- $price = input("price", 0);// 商品价格(取第一个sku)
- $market_price = input("market_price", 0);// 市场价格(取第一个sku)
- $cost_price = input("cost_price", 0);// 成本价(取第一个sku)
- $sku_no = input("sku_no", "");// 商品sku编码
- $weight = input("weight", "");// 重量
- $volume = input("volume", "");// 体积
- $data = [
- 'goods_id' => $goods_id,
- 'goods_name' => $goods_name,
- 'goods_attr_class' => $goods_attr_class,
- 'goods_attr_name' => $goods_attr_name,
- 'site_id' => $this->site_id,
- 'category_id' => $category_id,
- 'category_id_1' => $category_id_1,
- 'category_id_2' => $category_id_2,
- 'category_id_3' => $category_id_3,
- 'category_name' => $category_name,
- 'brand_id' => $brand_id,
- 'brand_name' => $brand_name,
- 'goods_image' => $goods_image,
- 'goods_content' => $goods_content,
- 'goods_state' => $goods_state,
- 'price' => $price,
- 'market_price' => $market_price,
- 'cost_price' => $cost_price,
- 'sku_no' => $sku_no,
- 'weight' => $weight,
- 'volume' => $volume,
- 'goods_stock' => $goods_stock,
- 'goods_stock_alarm' => $goods_stock_alarm,
- 'is_free_shipping' => $is_free_shipping,
- 'shipping_template' => $shipping_template,
- 'goods_spec_format' => $goods_spec_format,
- 'goods_attr_format' => $goods_attr_format,
- 'introduction' => $introduction,
- 'keywords' => $keywords,
- 'unit' => $unit,
- 'sort' => $sort,
- 'commission_rate' => $commission_rate,
- 'video_url' => $video_url,
- 'goods_sku_data' => $goods_sku_data,
- 'goods_shop_category_ids' => $goods_shop_category_ids,
- 'supplier_id' => $supplier_id,
- 'pay_num1' => $pay_num1,
- 'price1' => $price1,
- 'pay_num2' => $pay_num2,
- 'price2' => $price2,
- 'pay_num3' => $pay_num3,
- 'price3' => $price3,
- ];
- $res = $goods_model->editGoods($data);
- return $res;
- } else {
-
- $goods_id = input("goods_id", 0);
- $goods_info = $goods_model->getGoodsInfo([ [ 'goods_id', '=', $goods_id ], [ 'site_id', '=', $this->site_id ] ]);
- $goods_info = $goods_info['data'];
-
- $goods_sku_list = $goods_model->getGoodsSkuList([ [ 'goods_id', '=', $goods_id ], [ 'site_id', '=', $this->site_id ] ], "sku_id,sku_name,sku_no,sku_spec_format,price,market_price,cost_price,stock,weight,volume,sku_image,sku_images,goods_spec_format,spec_name");
- $goods_sku_list = $goods_sku_list['data'];
- $goods_info['sku_list'] = $goods_sku_list;
- $this->assign("goods_info", $goods_info);
-
- //获取一级商品分类
- $goods_category_model = new GoodsCategoryModel();
- $condition = [
- [ 'pid', '=', 0 ]
- ];
-
- $goods_category_list = $goods_category_model->getCategoryList($condition, 'category_id,category_name,level,commission_rate');
- $goods_category_list = $goods_category_list['data'];
- $this->assign("goods_category_list", $goods_category_list);
- $shop_model = new \app\model\shop\Shop();
- $shop_brand_id = $shop_model->getShopInfo([['site_id','=',$this->site_id]],'brand_id');
- //获取品牌;
- $goods_brand_model = new GoodsBrandModel();
- $brand_list = $goods_brand_model->getBrandList([], "brand_id, brand_name");
- $brand_list = $brand_list['data'];
- $this->assign("brand_list", $brand_list);
-
- //获取店内分类
- $goods_shop_category_model = new GoodsShopCategoryModel();
- $goods_shop_category_list = $goods_shop_category_model->getShopCategoryTree([ [ 'site_id', "=", $this->site_id ] ], 'category_id,category_name,pid,level');
- $goods_shop_category_list = $goods_shop_category_list['data'];
- $this->assign("goods_shop_category_list", $goods_shop_category_list);
-
- //获取运费模板
- $express_template_model = new ExpressTemplateModel();
- $express_template_list = $express_template_model->getExpressTemplateList([ [ 'site_id', "=", $this->site_id ] ], 'template_id,template_name', 'is_default desc');
- $express_template_list = $express_template_list['data'];
- $this->assign("express_template_list", $express_template_list);
-
- //获取商品类型
- $goods_attr_model = new GoodsAttributeModel();
- $attr_class_list = $goods_attr_model->getAttrClassList([ [ 'site_id', 'in', ("0,$this->site_id") ] ], 'class_id,class_name');
- $attr_class_list = $attr_class_list['data'];
- $this->assign("attr_class_list", $attr_class_list);
-
- $is_install_supply = addon_is_exit("supply");
- if ($is_install_supply) {
- $supplier_model = new SupplierModel();
- $supplier_list = $supplier_model->getSupplierPageList([], 1, PAGE_LIST_ROWS, 'supplier_id desc', 'supplier_id,title');
- $supplier_list = $supplier_list['data']['list'];
- $this->assign("supplier_list", $supplier_list);
- }
- $this->assign("is_install_supply", $is_install_supply);
- return $this->fetch("goods/edit_goods");
- }
- }
-
- /**
- * 删除商品
- */
- public function deleteGoods()
- {
- if (request()->isAjax()) {
- $goods_ids = input("goods_ids", 0);
- $goods_model = new GoodsModel();
- $res = $goods_model->modifyIsDelete($goods_ids, 1, $this->site_id);
- return $res;
- }
-
- }
-
- /**
- * 商品回收站
- */
- public function recycle()
- {
- if (request()->isAjax()) {
- $page_index = input('page', 1);
- $page_size = input('page_size', PAGE_LIST_ROWS);
- $search_keys = input('search_keys', "");
- $condition = [ [ 'is_delete', '=', 1 ], [ 'site_id', "=", $this->site_id ] ];
- if (!empty($search_keys)) {
- $condition[] = [ 'goods_name', 'like', '%' . $search_keys . '%' ];
- }
- $goods_model = new GoodsModel();
- $res = $goods_model->getGoodsPageList($condition, $page_index, $page_size);
- return $res;
- } else {
- return $this->fetch("goods/recycle");
- }
- }
-
- /**
- * 商品回收站商品删除
- */
- public function deleteRecycleGoods()
- {
- if (request()->isAjax()) {
- $goods_ids = input("goods_ids", 0);
- $goods_model = new GoodsModel();
- $res = $goods_model->deleteRecycleGoods($goods_ids, $this->site_id);
- return $res;
- }
- }
-
- /**
- * 商品回收站商品恢复
- */
- public function recoveryRecycle()
- {
- if (request()->isAjax()) {
- $goods_ids = input("goods_ids", 0);
- $goods_model = new GoodsModel();
- $res = $goods_model->modifyIsDelete($goods_ids, 0, $this->site_id);
- return $res;
- }
-
- }
-
- /**
- * 商品下架
- */
- public function offGoods()
- {
- if (request()->isAjax()) {
- $goods_ids = input("goods_ids", 0);
- $goods_state = input("goods_state", 0);
- $goods_model = new GoodsModel();
- $res = $goods_model->modifyGoodsState($goods_ids, $goods_state, $this->site_id);
- return $res;
- }
-
- }
-
- /**
- * 商品上架
- */
- public function onGoods()
- {
- if (request()->isAjax()) {
- $goods_ids = input("goods_ids", 0);
- $goods_state = input("goods_state", 0);
- $goods_model = new GoodsModel();
- $res = $goods_model->modifyGoodsState($goods_ids, $goods_state, $this->site_id);
- return $res;
- }
- }
-
- /**
- * 编辑商品库存
- * @return multitype:number unknown
- */
- public function editGoodsStock()
- {
- if (request()->isAjax()) {
- $sku_list = input("sku_list", '');
- $model = new GoodsModel;
- $res = $model->editGoodsStock($sku_list);
- return $res;
- }
- }
-
- /**
- * 获取商品分类列表
- * @return \multitype
- */
- public function getCategoryList()
- {
- if (request()->isAjax()) {
- $category_id = input("category_id", 0);
- $goods_category_model = new GoodsCategoryModel();
- $condition = [
- [ 'pid', '=', $category_id ]
- ];
-
- $goods_category_list = $goods_category_model->getCategoryList($condition, 'category_id,category_name,level,commission_rate');
- return $goods_category_list;
- }
- }
-
- /**
- * 获取商品规格列表
- * @return \multitype
- */
- public function getSpecList()
- {
- if (request()->isAjax()) {
-
- $attr_id = input("attr_id", "");//排除已存在的规格项
- $search_text = input("search_text", "");
- $condition = [ [ 'is_spec', '=', 1 ], [ 'site_id', 'in', ("0,$this->site_id") ] ];
- if (!empty($attr_id)) {
- $condition[] = [ 'attr_id', 'not in', $attr_id ];
- }
- if (!empty($search_text)) {
- $condition[] = [ 'attr_name', 'like', '%' . $search_text . '%' ];
- }
- $goods_attr_model = new GoodsAttributeModel();
- $spec_list = $goods_attr_model->getSpecList($condition, 'attr_id,attr_name,attr_class_name', 'attr_id desc', PAGE_LIST_ROWS);
- return $spec_list;
- }
- }
-
- public function getSupplierPageList()
- {
- if (request()->isAjax()) {
- $is_install_supply = addon_is_exit("supply");
- if ($is_install_supply) {
- $supplier_model = new SupplierModel();
- $page_index = input('page_index', 1);
- $page_size = input('page_size', PAGE_LIST_ROWS);
- $search_text = input('search_text', '');
-
- $condition = [];
- if (!empty($search_text)) {
- $condition[] = [ 'title|desc|keywords|supplier_phone', 'LIKE', "%{$search_text}%" ];
- }
- $res = $supplier_model->getSupplierPageList($condition, $page_index, $page_size, 'supplier_id desc', 'supplier_id,title');
- return $res;
- }
- }
- }
-
- /**
- * 获取商品规格值列表
- * @return \multitype
- */
- public function getSpecValueList()
- {
- if (request()->isAjax()) {
-
- $attr_id = input("attr_id", 0);
- $search_text = input("search_text", "");
- $condition = [];
- if (!empty($attr_id)) {
- $condition[] = [ 'attr_id', '=', $attr_id ];
- }
- if (!empty($search_text)) {
- $condition[] = [ 'attr_value_name', 'like', '%' . $search_text . '%' ];
- }
-
- $goods_attr_model = new GoodsAttributeModel();
- $spec_list = $goods_attr_model->getSpecValueList($condition, 'attr_value_id,attr_value_name');
- return $spec_list;
- }
- }
-
- /**
- * 获取商品属性列表
- * @return \multitype
- */
- public function getAttributeList()
- {
-
- if (request()->isAjax()) {
- $goods_attr_model = new GoodsAttributeModel();
- $attr_class_id = input('attr_class_id', 0);// 商品类型id
- $attribute_list = $goods_attr_model->getAttributeList([ [ 'attr_class_id', '=', $attr_class_id ], [ 'is_spec', '=', 0 ], [ 'site_id', 'in', ("0,$this->site_id") ] ], 'attr_id,attr_name,attr_class_id,attr_class_name,attr_type,attr_value_format');
- if (!empty($attribute_list['data'])) {
- foreach ($attribute_list['data'] as $k => $v) {
- if (!empty($v['attr_value_format'])) {
- $attribute_list['data'][ $k ]['attr_value_format'] = json_decode($v['attr_value_format'], true);
- }
- }
- }
-
- return $attribute_list;
- }
- }
-
- /**
- * 获取SKU商品列表
- * @return \multitype
- */
- public function getGoodsSkuList()
- {
- if (request()->isAjax()) {
- $goods_id = input("goods_id", 0);
- $goods_model = new GoodsModel();
- $res = $goods_model->getGoodsSkuList([ [ 'goods_id', '=', $goods_id ], [ 'site_id', '=', $this->site_id ] ], 'sku_id,sku_name,price,market_price,cost_price,stock,weight,volume,sku_no,sale_num,sku_image,spec_name,goods_id');
- return $res;
- }
- }
-
- /**
- * 获取违规下架原因
- * @return \multitype
- */
- public function getVerifyStateRemark()
- {
- if (request()->isAjax()) {
- $goods_id = input("goods_id", 0);
- $goods_model = new GoodsModel();
- $res = $goods_model->getGoodsInfo([ [ 'goods_id', '=', $goods_id ], [ 'verify_state', 'in', [ -2, 10 ] ], [ 'site_id', '=', $this->site_id ] ], 'verify_state_remark');
- return $res;
- }
- }
-
- /**
- * 商品选择组件
- * @return \multitype
- */
- public function goodsSelect()
- {
- if (request()->isAjax()) {
- $page = input('page', 1);
- $page_size = input('page_size', PAGE_LIST_ROWS);
- $goods_name = input('goods_name', '');
- $goods_id = input('goods_id', 0);
- $is_virtual = input('is_virtual', '');// 是否虚拟类商品(0实物1.虚拟)
- $condition = [
- [ 'is_delete', '=', 0 ],
- [ 'goods_state', '=', 1 ],
- [ 'verify_state', '=', 1 ],
- [ 'site_id', '=', $this->site_id ]
- ];
- if (!empty($goods_name)) {
- $condition[] = [ 'goods_name', 'like', '%' . $goods_name . '%' ];
- }
- if ($is_virtual !== "") {
- $condition[] = [ 'is_virtual', '=', $is_virtual ];
- }
- if (!empty($goods_id)) {
- $condition[] = [ 'goods_id', '=', $goods_id ];
- }
- $order = 'create_time desc';
- $goods_model = new GoodsModel();
- $field = 'goods_id,goods_name,goods_class_name,goods_image,price,goods_stock,sku_id,create_time,is_virtual';
- $goods_list = $goods_model->getGoodsPageList($condition, $page, $page_size, $order, $field);
- if (!empty($goods_list['data']['list'])) {
- foreach ($goods_list['data']['list'] as $k => $v) {
- $goods_sku_list = $goods_model->getGoodsSkuList([ [ 'goods_id', '=', $v['goods_id'] ], [ 'site_id', '=', $this->site_id ] ], 'sku_id,sku_name,price,stock,sku_image,goods_id,goods_class_name');
- $goods_sku_list = $goods_sku_list['data'];
- $goods_list['data']['list'][ $k ]['sku_list'] = $goods_sku_list;
- }
-
- }
- return $goods_list;
- } else {
-
- //已经选择的商品sku数据
- $select_id = input('select_id', '');
- $mode = input('mode', 'spu');
- $max_num = input('max_num', 0);
- $min_num = input('min_num', 0);
- $is_virtual = input('is_virtual', '');
- $disabled = input('disabled', 0);
-
- $this->assign('select_id', $select_id);
- $this->assign('mode', $mode);
- $this->assign('max_num', $max_num);
- $this->assign('min_num', $min_num);
- $this->assign('select_id', $select_id);
- $this->assign('is_virtual', $is_virtual);
- $this->assign('disabled', $disabled);
- return $this->fetch("goods/goods_select");
- }
- }
- /***********************************************************商品评价**************************************************/
-
- /**
- * 商品评价
- */
- public function evaluate()
- {
- $goods_evaluate = new GoodsEvaluateModel();
-
- if (request()->isAjax()) {
- $page_index = input('page', 1);
- $page_size = input('page_size', PAGE_LIST_ROWS);
- $explain_type = input('explain_type', ''); //1好评2中评3差评
- $is_show = input('is_show', ''); //1显示 0隐藏
- $search_text = input('search_text', ''); //搜索值
- $search_type = input('search_type', ''); //搜索类型
- $start_time = input('start_time', '');
- $end_time = input('end_time', '');
- $condition = [
- [ "site_id", "=", $this->site_id ]
- ];
- //评分类型
- if ($explain_type != "") {
- $condition[] = [ "explain_type", "=", $explain_type ];
- }
- if ($is_show != "") {
- $condition[] = [ "is_show", "=", $is_show ];
- }
- if ($search_text != "") {
- $condition[] = [ $search_type, "like", '%' . $search_text . '%' ];
- }
- if (!empty($start_time) && empty($end_time)) {
- $condition[] = [ "create_time", ">=", date_to_time($start_time) ];
- } elseif (empty($start_time) && !empty($end_time)) {
- $condition[] = [ "create_time", "<=", date_to_time($end_time) ];
- } elseif (!empty($start_time) && !empty($end_time)) {
- $condition[] = [ 'create_time', 'between', [ date_to_time($start_time), date_to_time($end_time) ] ];
- }
- return $goods_evaluate->getEvaluatePageList($condition, $page_index, $page_size, "create_time desc");
- } else {
- return $this->fetch("goods/evaluate");
- }
-
-
- }
-
- /**
- * 商品评价删除
- */
- public function deleteEvaluate()
- {
-
- if (request()->isAjax()) {
- $goods_evaluate = new GoodsEvaluateModel();
- $evaluate_id = input("evaluate_id", 0);
- return $goods_evaluate->deleteEvaluate($evaluate_id);
- }
- }
-
- /**
- * 商品推广
- * return
- */
- public function goodsUrl()
- {
- $goods_id = input('goods_id', '');
- $goods_model = new GoodsModel();
- $goods_sku_info = $goods_model->getGoodsSkuInfo([ [ 'goods_id', '=', $goods_id ] ], 'sku_id,goods_name');
- $goods_sku_info = $goods_sku_info['data'];
- $res = $goods_model->qrcode($goods_sku_info['sku_id'], $goods_sku_info['goods_name']);
- return $res;
- }
-
- /**
- * 商品预览
- * return
- */
- public function goodsPreview()
- {
- $goods_id = input('goods_id', '');
- $goods_model = new GoodsModel();
- $goods_sku_info = $goods_model->getGoodsSkuInfo([ [ 'goods_id', '=', $goods_id ] ], 'sku_id,goods_name');
- $goods_sku_info = $goods_sku_info['data'];
- $res = $goods_model->qrcode($goods_sku_info['sku_id'], $goods_sku_info['goods_name']);
- return $res;
- }
-
- /**
- * 商品评价回复
- */
- public function evaluateApply()
- {
- if (request()->isAjax()) {
- $goods_evaluate = new GoodsEvaluateModel();
- $evaluate_id = input("evaluate_id", 0);
- $explain = input("explain", 0);
- $is_first_explain = input("is_first_explain", 0);// 是否第一次回复
- $data = [
- 'evaluate_id' => $evaluate_id
- ];
- if ($is_first_explain == 0) {
- $data['explain_first'] = $explain;
- } elseif ($is_first_explain == 1) {
- $data['again_explain'] = $explain;
- }
-
- return $goods_evaluate->evaluateApply($data);
- }
- }
- }
|