初始上传
This commit is contained in:
474
addon/cardservice/shop/controller/Card.php
Executable file
474
addon/cardservice/shop/controller/Card.php
Executable file
@@ -0,0 +1,474 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\cardservice\shop\controller;
|
||||
|
||||
use addon\cardservice\model\CardGoods;
|
||||
use addon\cardservice\model\MemberCard as MemberCardModel;
|
||||
use addon\form\model\Form;
|
||||
use addon\supply\model\Supplier as SupplierModel;
|
||||
use app\model\goods\Goods as GoodsModel;
|
||||
use app\model\goods\GoodsBrand as GoodsBrandModel;
|
||||
use app\model\goods\GoodsService as GoodsServiceModel;
|
||||
use app\model\store\Store as StoreModel;
|
||||
use app\model\web\Config as ConfigModel;
|
||||
use app\shop\controller\BaseShop;
|
||||
use think\App;
|
||||
|
||||
|
||||
/**
|
||||
* 虚拟商品
|
||||
* Class Virtualgoods
|
||||
* @package app\shop\controller
|
||||
*/
|
||||
class Card extends BaseShop
|
||||
{
|
||||
|
||||
public function __construct(App $app = null)
|
||||
{
|
||||
$this->replace = [
|
||||
'ADDON_CARDSERVICE_CSS' => __ROOT__ . '/addon/cardservice/shop/view/public/css',
|
||||
'ADDON_CARDSERVICE_JS' => __ROOT__ . '/addon/cardservice/shop/view/public/js',
|
||||
'ADDON_CARDSERVICE_IMG' => __ROOT__ . '/addon/cardservice/shop/view/public/img',
|
||||
];
|
||||
parent::__construct($app);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加商品
|
||||
* @return mixed
|
||||
*/
|
||||
public function addGoods()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
|
||||
$category_id = input('category_id', 0);// 分类id
|
||||
$category_json = json_encode($category_id);//分类字符串
|
||||
$category_id = '';
|
||||
|
||||
$data = [
|
||||
'goods_name' => input('goods_name', ''),// 商品名称,
|
||||
'goods_attr_class' => input('goods_attr_class', ''),// 商品类型id,
|
||||
'goods_attr_name' => input('goods_attr_name', ''),// 商品类型名称,
|
||||
'is_limit' => input('is_limit', '0'),// 商品是否限购,
|
||||
'limit_type' => input('limit_type', '1'),// 商品限购类型,
|
||||
'site_id' => $this->site_id,
|
||||
'category_id' => $category_id,
|
||||
'category_json' => $category_json,
|
||||
'goods_image' => input('goods_image', ''),// 商品主图路径
|
||||
'goods_content' => input('goods_content', ''),// 商品详情
|
||||
'goods_state' => input('goods_state', ''),// 商品状态(1.正常0下架)
|
||||
'price' => input('price', 0),// 商品价格(取第一个sku)
|
||||
'renew_price' => input('renew_price', 0), // 续费价格
|
||||
'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', ''),// 体积
|
||||
'goods_stock' => input('goods_stock', 0),// 商品库存(总和)
|
||||
'goods_stock_alarm' => input('goods_stock_alarm', 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商品数据
|
||||
'goods_service_ids' => input('goods_service_ids', ''),// 商品服务id集合
|
||||
'label_id' => input('label_id', ''),// 商品分组id
|
||||
'brand_id' => input('brand_id', 0),//品牌id
|
||||
'virtual_sale' => input('virtual_sale', 0),// 虚拟销量
|
||||
'max_buy' => input('max_buy', 0),// 限购
|
||||
'min_buy' => input('min_buy', 0),// 起售
|
||||
'recommend_way' => input('recommend_way', 0), // 推荐方式,1:新品,2:精品,3;推荐
|
||||
'timer_on' => strtotime(input('timer_on', 0)),//定时上架
|
||||
'timer_off' => strtotime(input('timer_off', 0)),//定时下架
|
||||
'is_consume_discount' => input('is_consume_discount', 0),//是否参与会员折扣
|
||||
'qr_id' => input('qr_id', 0),// 社群二维码id
|
||||
'template_id' => input('template_id', 0), // 商品海报id
|
||||
'sale_show' => input('sale_show', 0),//
|
||||
'stock_show' => input('stock_show', 0),//
|
||||
'market_price_show' => input('market_price_show', 0),//
|
||||
'barrage_show' => input('barrage_show', 0),//
|
||||
'form_id' => input('form_id', 0),
|
||||
'sale_channel' => input('sale_channel', 'all'),
|
||||
'sale_store' => input('sale_store', 'all'),
|
||||
'card_type' => input('card_type', ''),
|
||||
'validity_type' => input('validity_type', 0),
|
||||
'discount_goods_type' => input('discount_goods_type', 'all'),
|
||||
'discount' => input('discount', 0),
|
||||
'common_num' => input('common_num', 0),
|
||||
'relation_goods' => input('relation_goods', '[]'),
|
||||
'is_unify_price' => input('is_unify_price', 1),
|
||||
'supplier_id' => input('supplier_id', 0)
|
||||
];
|
||||
if ($data[ 'validity_type' ] == 1) {
|
||||
$data[ 'validity_day' ] = input('validity_day', 0);
|
||||
} else if ($data[ 'validity_type' ] == 2) {
|
||||
$data[ 'validity_time' ] = strtotime(input('validity_time', ''));
|
||||
}
|
||||
|
||||
$virtual_goods_model = new CardGoods();
|
||||
$res = $virtual_goods_model->addGoods($data);
|
||||
return $res;
|
||||
} else {
|
||||
$virtual_goods_model = new CardGoods();
|
||||
|
||||
// 商品服务
|
||||
$goods_service_model = new GoodsServiceModel();
|
||||
$service_list = $goods_service_model->getServiceList([ [ 'site_id', '=', $this->site_id ] ], 'id,service_name,icon')[ 'data' ];
|
||||
$this->assign('service_list', $service_list);
|
||||
|
||||
// 商品品牌
|
||||
$goods_brand_model = new GoodsBrandModel();
|
||||
$brand_list = $goods_brand_model->getBrandList([ [ 'site_id', '=', $this->site_id ] ], 'brand_id,brand_name', 'sort asc')[ 'data' ];
|
||||
$this->assign('brand_list', $brand_list);
|
||||
|
||||
//商品默认排序值
|
||||
$config_model = new ConfigModel();
|
||||
$sort_config = $config_model->getGoodsSort($this->site_id)[ 'data' ][ 'value' ];
|
||||
$this->assign('sort_config', $sort_config);
|
||||
|
||||
//获取商品海报
|
||||
$poster_list = event('PosterTemplate', [ 'site_id' => $this->site_id ], true);
|
||||
if (!empty($poster_list)) {
|
||||
$poster_list = $poster_list[ 'data' ];
|
||||
}
|
||||
|
||||
$this->assign('poster_list', $poster_list);
|
||||
$this->assign('virtualcard_exit', addon_is_exit('virtualcard', $this->site_id));
|
||||
|
||||
$form_is_exit = addon_is_exit('form', $this->site_id);
|
||||
if ($form_is_exit) {
|
||||
$form_list = ( new Form() )->getFormList([ [ 'site_id', '=', $this->site_id ], [ 'form_type', '=', 'goods' ], [ 'is_use', '=', 1 ] ], 'id desc', 'id, form_name')[ 'data' ];
|
||||
$this->assign('form_list', $form_list);
|
||||
}
|
||||
$this->assign('form_is_exit', $form_is_exit);
|
||||
|
||||
$this->assign('all_goodsclass', event('GoodsClass'));
|
||||
$this->assign('goods_class', $virtual_goods_model->getGoodsClass());
|
||||
$this->assign('card_type', $virtual_goods_model->getCardType());
|
||||
|
||||
$this->assign('store_is_exit', addon_is_exit('store', $this->site_id));
|
||||
|
||||
$is_install_supply = addon_is_exit('supply');
|
||||
if ($is_install_supply) {
|
||||
$supplier_model = new SupplierModel();
|
||||
$supplier_list = $supplier_model->getSupplyList([ [ 'supplier_site_id', '=', $this->site_id ] ], 'supplier_id,title', 'supplier_id desc')['data'];
|
||||
$this->assign('supplier_list', $supplier_list);
|
||||
}
|
||||
$this->assign('is_install_supply', $is_install_supply);
|
||||
|
||||
return $this->fetch('card/add_goods');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑商品
|
||||
* @return mixed
|
||||
*/
|
||||
public function editGoods()
|
||||
{
|
||||
$virtual_goods_model = new CardGoods();
|
||||
if (request()->isJson()) {
|
||||
|
||||
$category_id = input('category_id', 0);// 分类id
|
||||
$category_json = json_encode($category_id);//分类字符串
|
||||
$category_id = '';
|
||||
|
||||
$data = [
|
||||
'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', ''),// 商品类型名称,
|
||||
'is_limit' => input('is_limit', '0'),// 商品是否限购,
|
||||
'limit_type' => input('limit_type', '1'),// 商品限购类型,
|
||||
'site_id' => $this->site_id,
|
||||
'category_id' => $category_id,
|
||||
'category_json' => $category_json,
|
||||
'goods_image' => input('goods_image', ''),// 商品主图路径
|
||||
'goods_content' => input('goods_content', ''),// 商品详情
|
||||
'goods_state' => input('goods_state', ''),// 商品状态(1.正常0下架)
|
||||
'price' => input('price', 0),// 商品价格(取第一个sku)
|
||||
'renew_price' => input('renew_price', 0), // 续费价格
|
||||
'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', ''),// 体积
|
||||
'goods_stock' => input('goods_stock', 0),// 商品库存(总和)
|
||||
'goods_stock_alarm' => input('goods_stock_alarm', 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商品数据
|
||||
'goods_service_ids' => input('goods_service_ids', ''),// 商品服务id集合
|
||||
'label_id' => input('label_id', ''),// 商品分组id
|
||||
'brand_id' => input('brand_id', 0),//品牌id
|
||||
'virtual_sale' => input('virtual_sale', 0),// 虚拟销量
|
||||
'max_buy' => input('max_buy', 0),// 限购
|
||||
'min_buy' => input('min_buy', 0),// 起售
|
||||
'recommend_way' => input('recommend_way', 0), // 推荐方式,1:新品,2:精品,3;推荐
|
||||
'timer_on' => strtotime(input('timer_on', 0)),//定时上架
|
||||
'timer_off' => strtotime(input('timer_off', 0)),//定时下架
|
||||
'spec_type_status' => input('spec_type_status', 0),
|
||||
'is_consume_discount' => input('is_consume_discount', 0),//是否参与会员折扣
|
||||
'qr_id' => input('qr_id', 0),// 社群二维码id
|
||||
'template_id' => input('template_id', 0), // 商品海报id
|
||||
'sale_show' => input('sale_show', 0),//
|
||||
'stock_show' => input('stock_show', 0),//
|
||||
'market_price_show' => input('market_price_show', 0),//
|
||||
'barrage_show' => input('barrage_show', 0),//
|
||||
'form_id' => input('form_id', 0),
|
||||
'sale_channel' => input('sale_channel', 'all'),
|
||||
'sale_store' => input('sale_store', 'all'),
|
||||
'validity_type' => input('validity_type', 0),
|
||||
'discount_goods_type' => input('discount_goods_type', 'all'),
|
||||
'discount' => input('discount', 0),
|
||||
'common_num' => input('common_num', 0),
|
||||
'relation_goods' => input('relation_goods', '[]'),
|
||||
'is_unify_price' => input('is_unify_price', 1),
|
||||
'supplier_id' => input('supplier_id', 0)
|
||||
];
|
||||
if ($data[ 'validity_type' ] == 1) {
|
||||
$data[ 'validity_day' ] = input('validity_day', 0);
|
||||
} else if ($data[ 'validity_type' ] == 2) {
|
||||
$data[ 'validity_time' ] = strtotime(input('validity_time', ''));
|
||||
}
|
||||
$res = $virtual_goods_model->editGoods($data);
|
||||
return $res;
|
||||
} else {
|
||||
$goods_model = new GoodsModel();
|
||||
$goods_id = input('goods_id', 0);
|
||||
$goods_info = $virtual_goods_model->editGetGoodsInfo([ 'goods_id' => $goods_id, 'site_id' => $this->site_id ])[ 'data' ];
|
||||
if (empty($goods_info)) $this->error('未获取到商品数据', href_url('shop/goods/lists'));
|
||||
|
||||
$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,virtual_indate,sku_image,sku_images,goods_spec_format,spec_name,stock_alarm,is_default', '')[ 'data' ];
|
||||
$goods_info[ 'sku_list' ] = $goods_sku_list;
|
||||
$this->assign('goods_info', $goods_info);
|
||||
|
||||
// 商品服务
|
||||
$goods_service_model = new GoodsServiceModel();
|
||||
$service_list = $goods_service_model->getServiceList([ [ 'site_id', '=', $this->site_id ] ], 'id,service_name,icon')[ 'data' ];
|
||||
$this->assign('service_list', $service_list);
|
||||
|
||||
// 商品品牌
|
||||
$goods_brand_model = new GoodsBrandModel();
|
||||
$brand_list = $goods_brand_model->getBrandList([ [ 'site_id', '=', $this->site_id ] ], 'brand_id,brand_name', 'sort asc')[ 'data' ];
|
||||
$this->assign('brand_list', $brand_list);
|
||||
|
||||
//获取商品海报
|
||||
$poster_list = event('PosterTemplate', [ 'site_id' => $this->site_id ], true);
|
||||
if (!empty($poster_list)) {
|
||||
$poster_list = $poster_list[ 'data' ];
|
||||
}
|
||||
$this->assign('poster_list', $poster_list);
|
||||
|
||||
$form_is_exit = addon_is_exit('form', $this->site_id);
|
||||
if ($form_is_exit) {
|
||||
$form_list = ( new Form() )->getFormList([ [ 'site_id', '=', $this->site_id ], [ 'form_type', '=', 'goods' ], [ 'is_use', '=', 1 ] ], 'id desc', 'id, form_name')[ 'data' ];
|
||||
$this->assign('form_list', $form_list);
|
||||
}
|
||||
$this->assign('form_is_exit', $form_is_exit);
|
||||
|
||||
$store_is_exit = addon_is_exit('store', $this->site_id);
|
||||
if ($store_is_exit && $goods_info[ 'sale_store' ] != 'all') {
|
||||
$store_list = ( new StoreModel() )->getStoreList([ [ 'site_id', '=', $this->site_id ], [ 'store_id', 'in', $goods_info[ 'sale_store' ] ] ], 'store_id,store_name,status,address,full_address,is_frozen');
|
||||
$this->assign('store_list', $store_list[ 'data' ]);
|
||||
}
|
||||
$this->assign('store_is_exit', $store_is_exit);
|
||||
$this->assign('card_type', $virtual_goods_model->getCardType());
|
||||
|
||||
$is_install_supply = addon_is_exit('supply');
|
||||
if ($is_install_supply) {
|
||||
$supplier_model = new SupplierModel();
|
||||
$supplier_list = $supplier_model->getSupplyList([ [ 'supplier_site_id', '=', $this->site_id ] ], 'supplier_id,title', 'supplier_id desc')['data'];
|
||||
$this->assign('supplier_list', $supplier_list);
|
||||
}
|
||||
$this->assign('is_install_supply', $is_install_supply);
|
||||
|
||||
return $this->fetch('card/edit_goods');
|
||||
}
|
||||
}
|
||||
|
||||
public function goodscard()
|
||||
{
|
||||
$goods_id = input('goods_id', 0);
|
||||
$model = new MemberCardModel();
|
||||
if (request()->isJson()) {
|
||||
$page_index = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$search_text = input('search_text', '');
|
||||
$condition = [
|
||||
[ 'mgc.site_id', '=', $this->site_id ],
|
||||
[ 'mgc.goods_id', '=', $goods_id ],
|
||||
];
|
||||
if (!empty($search_text)) {
|
||||
$condition[] = [ 'm.nickname', 'like', '%' . $search_text . '%' ];
|
||||
}
|
||||
|
||||
$field = 'mgc.*, g.goods_name,g.price,g.goods_image,m.username,m.nickname,m.headimg';
|
||||
$join = [
|
||||
[ 'goods g', 'mgc.goods_id = g.goods_id', 'inner' ],
|
||||
[ 'member m', 'mgc.member_id = m.member_id', 'left' ],
|
||||
];
|
||||
$list = $model->getCardPageList($condition, $field, 'mgc.create_time desc', $page_index, $page_size, 'mgc', $join);
|
||||
return $list;
|
||||
} else {
|
||||
$this->assign('goods_id', $goods_id);
|
||||
$goods_model = new GoodsModel();
|
||||
$goods_info = $goods_model->getGoodsInfo([ [ 'goods_id', '=', $goods_id ], [ 'site_id', '=', $this->site_id ] ], 'goods_id, goods_name,goods_image,price,goods_state,goods_stock,sale_num');
|
||||
$this->assign('goods_info', $goods_info[ 'data' ]);
|
||||
$card_stat = $model->getCardInfo([ [ 'goods_id', '=', $goods_id ], [ 'site_id', '=', $this->site_id ] ], 'sum(total_num) as total_num, sum(total_use_num) as total_use_num')[ 'data' ] ?? [];
|
||||
$this->assign('total_num', $card_stat[ 'total_num' ] ?? 0);
|
||||
$this->assign('total_use_num', $card_stat[ 'total_use_num' ] ?? 0);
|
||||
$card_info = $model->getCardSelect([ [ 'goods_id', '=', $goods_id ], [ 'site_id', '=', $this->site_id ] ])[ 'data' ] ?? [];
|
||||
$this->assign('card_info', $card_info);
|
||||
return $this->fetch('card/goods_card');
|
||||
}
|
||||
}
|
||||
|
||||
public function membergoodscard()
|
||||
{
|
||||
$member_id = input('member_id', 0);
|
||||
if (request()->isJson()) {
|
||||
$page_index = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$search_text = input('search_text', '');
|
||||
$condition = [
|
||||
[ 'mgc.site_id', '=', $this->site_id ],
|
||||
[ 'mgc.member_id', '=', $member_id ],
|
||||
];
|
||||
if (!empty($search_text)) {
|
||||
$condition[] = [ 'g.goods_name', 'like', '%' . $search_text . '%' ];
|
||||
}
|
||||
$model = new MemberCardModel();
|
||||
$card_goods = new CardGoods();
|
||||
$field = 'mgc.*, g.goods_name,g.price,g.goods_image,m.username,m.nickname,m.headimg';
|
||||
$join = [
|
||||
[ 'goods g', 'mgc.goods_id = g.goods_id', 'inner' ],
|
||||
[ 'member m', 'mgc.member_id = m.member_id', 'left' ],
|
||||
];
|
||||
$list = $model->getCardPageList($condition, $field, 'mgc.create_time desc', $page_index, $page_size, 'mgc', $join);
|
||||
foreach ($list[ 'data' ][ 'list' ] as $k => $v) {
|
||||
$list[ 'data' ][ 'list' ][ $k ][ 'card_type_name' ] = $card_goods->getCardType($v[ 'card_type' ])[ 'title' ];
|
||||
}
|
||||
return $list;
|
||||
} else {
|
||||
$this->assign('member_id', $member_id);
|
||||
return $this->fetch('card/member_goods_card');
|
||||
}
|
||||
}
|
||||
|
||||
public function detail()
|
||||
{
|
||||
$card_id = input('card_id', 0);
|
||||
$model = new MemberCardModel();
|
||||
$card_goods = new CardGoods();
|
||||
$condition = [
|
||||
[ 'mgc.card_id', '=', $card_id ],
|
||||
[ 'mgc.site_id', '=', $this->site_id ],
|
||||
];
|
||||
$field = 'mgc.*, g.goods_name,g.price,g.goods_image,m.username,m.nickname,m.headimg';
|
||||
$join = [
|
||||
[ 'goods g', 'mgc.goods_id = g.goods_id', 'inner' ],
|
||||
[ 'member m', 'mgc.member_id = m.member_id', 'left' ],
|
||||
];
|
||||
$detail = $model->getCardInfo($condition, $field, 'mgc', $join)[ 'data' ] ?? [];
|
||||
|
||||
$detail[ 'card_type_name' ] = $card_goods->getCardType($detail[ 'card_type' ])[ 'title' ];
|
||||
$this->assign('detail', $detail);
|
||||
|
||||
$condition = [];
|
||||
$condition[] = [ 'mgc.card_id', '=', $card_id ];
|
||||
|
||||
$condition[] = [ 'g.goods_state', '=', 1 ];
|
||||
$condition[] = [ 'g.is_delete', '=', 0 ];
|
||||
$field = 'mgc.*, g.sku_name';
|
||||
|
||||
$join = [
|
||||
[ 'goods_sku g', 'mgc.sku_id = g.sku_id', 'left' ],
|
||||
];
|
||||
$item_list = $model->getCartItemList($condition, $field, 'mgc.item_id asc', 'mgc', $join)[ 'data' ] ?? [];
|
||||
$this->assign('item_list', $item_list);
|
||||
return $this->fetch('card/detail');
|
||||
}
|
||||
|
||||
public function getCardItem()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$page_index = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$card_id = input('card_id', 0);
|
||||
|
||||
$condition = [];
|
||||
$condition[] = [ 'mgc.site_id', '=', $this->site_id ];
|
||||
$condition[] = [ 'mgc.card_id', '=', $card_id ];
|
||||
|
||||
$condition[] = [ 'g.goods_state', '=', 1 ];
|
||||
$condition[] = [ 'g.is_delete', '=', 0 ];
|
||||
$alias = 'mgc';
|
||||
|
||||
$field = 'mgc.*, g.goods_name,g.price,g.goods_image,g.introduction,m.nickname,m.headimg,m.mobile';
|
||||
|
||||
$join = [
|
||||
[ 'goods g', 'mgc.goods_id = g.goods_id', 'inner' ],
|
||||
[ 'member m', 'mgc.member_id = m.member_id', 'left' ],
|
||||
];
|
||||
|
||||
$model = new MemberCardModel();
|
||||
$card_goods = new CardGoods();
|
||||
$list = $model->getCartItemPageList($condition, $field, 'mgc.item_id asc', $page_index, $page_size, $alias, $join);
|
||||
foreach ($list[ 'data' ][ 'list' ] as $k => $v) {
|
||||
$list[ 'data' ][ 'list' ][ $k ][ 'card_type_name' ] = $card_goods->getCardType($v[ 'card_type' ])[ 'title' ];
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
}
|
||||
|
||||
public function records()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$page_index = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$card_id = input('card_id', 0);
|
||||
$item_id = input('item_id', 0);
|
||||
|
||||
$condition = [];
|
||||
$condition[] = [ 'cr.site_id', '=', $this->site_id ];
|
||||
if (!empty($item_id)) {
|
||||
$condition[] = [ 'cr.card_item_id', '=', $item_id ];
|
||||
}
|
||||
if (!empty($card_id)) {
|
||||
$condition[] = [ 'cr.card_id', '=', $card_id ];
|
||||
}
|
||||
$alias = 'cr';
|
||||
$prefix = config('database.connections.mysql.prefix');
|
||||
$field = 'cr.*, sku.sku_name,sku.sku_image,sku.sku_images,sku.price,ci.num as item_num,
|
||||
IF(cr.type = \'order\', (select order_id from `' . $prefix . 'order_goods` og where og.order_goods_id = cr.relation_id), 0) as order_id, s.store_name';
|
||||
|
||||
$join = [
|
||||
[ 'member_goods_card_item ci', 'ci.item_id = cr.card_item_id', 'left' ],
|
||||
[ 'goods_sku sku', 'ci.sku_id = sku.sku_id', 'left' ],
|
||||
[ 'store s', 'cr.store_id = s.store_id', 'left' ],
|
||||
];
|
||||
|
||||
$model = new MemberCardModel();
|
||||
$list = $model->getMemberCardRecordsPageList($condition, $field, 'cr.create_time desc', $page_index, $page_size, $alias, $join);
|
||||
return $list;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
464
addon/cardservice/shop/controller/Reserve.php
Executable file
464
addon/cardservice/shop/controller/Reserve.php
Executable file
@@ -0,0 +1,464 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
|
||||
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\cardservice\shop\controller;
|
||||
|
||||
use addon\cardservice\model\Reserve as ReserveModel;
|
||||
use app\dict\goods\GoodsDict;
|
||||
use app\model\store\Store as StoreModel;
|
||||
use app\model\goods\Goods as GoodsModel;
|
||||
use app\model\system\User;
|
||||
use app\model\system\UserGroup;
|
||||
use app\shop\controller\BaseShop;
|
||||
use think\App;
|
||||
|
||||
|
||||
class Reserve extends BaseShop
|
||||
{
|
||||
|
||||
public function __construct(App $app = null)
|
||||
{
|
||||
$this->replace = [
|
||||
'ADDON_CARDSERVICE_CSS' => __ROOT__ . '/addon/cardservice/shop/view/public/css',
|
||||
'ADDON_CARDSERVICE_JS' => __ROOT__ . '/addon/cardservice/shop/view/public/js',
|
||||
'ADDON_CARDSERVICE_IMG' => __ROOT__ . '/addon/cardservice/shop/view/public/img',
|
||||
];
|
||||
parent::__construct($app);
|
||||
}
|
||||
|
||||
/**
|
||||
* 预约看板
|
||||
* @return mixed
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->assign('reserve_state', ( new ReserveModel )->reserve_state);
|
||||
|
||||
$data = $this->getReserveByWeek();
|
||||
$this->assign('data', $data[ 'data' ]);
|
||||
$store_model = new StoreModel();
|
||||
$store_list = $store_model->getStoreList([ [ 'site_id', '=', $this->site_id ], [ 'status', '=', 1 ] ])[ 'data' ] ?? [];
|
||||
$this->assign('store_list', $store_list);
|
||||
return $this->fetch('reserve/index');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取一周内的时间段
|
||||
* @param $length
|
||||
* @return array
|
||||
*/
|
||||
public function getWeekDay($length = 0)
|
||||
{
|
||||
$first_day = mktime(0, 0, 0, date("m"), date("d") - date("w") + 1, date("Y"));
|
||||
$first_day = strtotime($length . ' week', $first_day);
|
||||
|
||||
$week = [ '周日', '周一', '周二', '周三', '周四', '周五', '周六' ];
|
||||
$data = [];
|
||||
for ($i = 0; $i < 7; $i++) {
|
||||
$time = strtotime("+ {$i} day", $first_day);
|
||||
$data[] = [
|
||||
'start' => $time,
|
||||
'end' => strtotime(date('Y-m-d 23:59:59', $time)),
|
||||
'date' => date('m/d', $time),
|
||||
'w' => date('w', $time),
|
||||
'week' => $week[date('w', $time)],
|
||||
'currday' => date('Y-m-d', $time) == date('Y-m-d') ? 1 : 0
|
||||
];
|
||||
}
|
||||
return success(0, '', $data);
|
||||
}
|
||||
|
||||
public function getMonthDays()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$reserve_model = new ReserveModel();
|
||||
$year = input('year', '');
|
||||
$month = input('month', '');
|
||||
$days_data = $reserve_model->getMonthDays($year, $month)[ 'data' ];
|
||||
return success(0, '', $days_data);
|
||||
}
|
||||
}
|
||||
|
||||
public function getReserveByWeek()
|
||||
{
|
||||
$reserve_model = new ReserveModel();
|
||||
|
||||
$length = input('length', 0);
|
||||
$data = $this->getWeekDay($length)[ 'data' ];
|
||||
foreach ($data as $wk => $w_item) {
|
||||
$field = 'noy.reserve_id,noy.reserve_state,noy.reserve_time,nm.nickname,noy.reserve_item';
|
||||
$list = $reserve_model->getReservePageList([
|
||||
[ 'noy.site_id', '=', $this->site_id ],
|
||||
[ 'noy.reserve_time', 'between', [ $w_item[ 'start' ], $w_item[ 'end' ] ] ]
|
||||
], 1, PAGE_LIST_ROWS, 'noy.create_time desc', $field);
|
||||
$data[ $wk ][ 'data' ] = $list[ 'data' ];
|
||||
}
|
||||
|
||||
return success(0, '', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取预约周数据
|
||||
* @return array
|
||||
*/
|
||||
public function getReserveWeekData()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$reserve_model = new ReserveModel();
|
||||
$week_offset = input('week_offset', 0);
|
||||
$days_data = $reserve_model->getWeekDays($week_offset)[ 'data' ];
|
||||
$res = $reserve_model->getReserveDataByDays([
|
||||
'days_data' => $days_data,
|
||||
'query_num' => 4,
|
||||
'site_id' => $this->site_id,
|
||||
]);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取预约月数据
|
||||
* @return array
|
||||
*/
|
||||
public function getYuYueMonthData()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$reserve_model = new ReserveModel();
|
||||
$year = input('year', date('Y'));
|
||||
$month = input('year', date('m'));
|
||||
$days_data = $reserve_model->getMonthDays($year, $month)[ 'data' ];
|
||||
$res = $reserve_model->getReserveDataByDays([
|
||||
'days_data' => $days_data,
|
||||
'query_num' => 3,
|
||||
'site_id' => $this->site_id,
|
||||
]);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加预约
|
||||
* @return mixed
|
||||
*/
|
||||
public function addReserve()
|
||||
{
|
||||
$reserve_model = new ReserveModel();
|
||||
if (request()->isJson()) {
|
||||
return $reserve_model->addReserve([
|
||||
'site_id' => $this->site_id,
|
||||
'app_module' => $this->app_module,
|
||||
'member_id' => input('member_id'),
|
||||
'goods' => json_decode(input('goods'), true),
|
||||
'store_id' => input('store_id'),
|
||||
'date' => input('date'),
|
||||
'time' => input('time'),
|
||||
'remark' => input('remark', ''),
|
||||
'source' => 'store'
|
||||
]);
|
||||
}
|
||||
|
||||
$service_model = new GoodsModel();
|
||||
$condition = [
|
||||
[ 'g.site_id', '=', $this->site_id ],
|
||||
[ 'g.goods_state', '=', 1 ],
|
||||
[ 'g.goods_class', '=', GoodsDict::service ]
|
||||
];
|
||||
$service = $service_model->getGoodsList($condition, 'g.goods_id,g.sku_id,g.goods_name,g.price,sku.service_length', 'g.create_time desc'
|
||||
, 0, 'g', [
|
||||
[ 'goods_sku sku', 'sku.goods_id=g.goods_id', 'inner' ]
|
||||
]);
|
||||
$this->assign('service', $service[ 'data' ]);
|
||||
|
||||
$store_model = new StoreModel();
|
||||
$store_list = $store_model->getStoreList([ [ 'site_id', '=', $this->site_id ], [ 'status', '=', 1 ] ])[ 'data' ] ?? [];
|
||||
$this->assign('store_list', $store_list);
|
||||
|
||||
$config = $reserve_model->getReserveConfig($this->site_id, $store_list[ 0 ][ 'store_id' ]);
|
||||
$this->assign('config', $config[ 'data' ][ 'value' ]);
|
||||
|
||||
$user_model = new User();
|
||||
$user_list = $user_model->getUserList([ [ 'site_id', '=', $this->site_id ], [ 'app_module', '=', 'servicer' ], [ 'status', '=', 1 ] ])[ 'data' ] ?? [];
|
||||
$this->assign('user_list', $user_list);
|
||||
|
||||
return $this->fetch('reserve/add_reserve');
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改预约
|
||||
* @return mixed|void
|
||||
*/
|
||||
public function updateReserve()
|
||||
{
|
||||
$model = new ReserveModel();
|
||||
|
||||
if (request()->isJson()) {
|
||||
$reserve_id = input('reserve_id', 0);
|
||||
return $model->editReserve([
|
||||
'site_id' => $this->site_id,
|
||||
'app_module' => $this->app_module,
|
||||
'reserve_id' => $reserve_id,
|
||||
'store_id' => input('store_id'),
|
||||
'goods' => json_decode(input('goods'), true),
|
||||
'date' => input('date'),
|
||||
'time' => input('time'),
|
||||
'remark' => input('remark', '')
|
||||
]);
|
||||
} else {
|
||||
$reserve_id = input('id', 0);
|
||||
// 查询预约信息
|
||||
$info = $model->getReserveInfo([
|
||||
[ 'reserve_id', '=', $reserve_id ],
|
||||
[ 'oy.site_id', '=', $this->site_id ]
|
||||
], 'oy.*, nm.headimg, nm.nickname, nm.mobile, os.store_name', 'oy', [
|
||||
[ 'member nm', 'oy.member_id = nm.member_id', 'left' ],
|
||||
[ 'store os', 'oy.store_id = os.store_id', 'left' ]
|
||||
])[ 'data' ];
|
||||
|
||||
if (empty($info)) {
|
||||
$this->error('未获取到预约信息');
|
||||
return;
|
||||
}
|
||||
$info[ 'item' ] = $model->getReserveItemList([
|
||||
[
|
||||
'oyi.reserve_id', '=', $reserve_id
|
||||
],
|
||||
|
||||
], 'g.goods_name,sku.service_length,g.goods_id,g.sku_id,g.price,ys.username,oyi.reserve_user_id', 'reserve_item_id desc', 'oyi',
|
||||
[
|
||||
[ 'goods g', 'g.sku_id = oyi.reserve_goods_sku_id', 'right' ],
|
||||
[ 'goods_sku sku', 'sku.sku_id = oyi.reserve_goods_sku_id', 'right' ],
|
||||
[ 'user ys', 'oyi.reserve_user_id = ys.uid', 'left' ]
|
||||
])[ 'data' ];
|
||||
|
||||
$this->assign('info', $info);
|
||||
|
||||
// 查询预约配置
|
||||
$config = $model->getReserveConfig($this->site_id, $info[ 'store_id' ]);
|
||||
$this->assign('config', $config[ 'data' ][ 'value' ]);
|
||||
|
||||
// 查询可预约服务
|
||||
$service_model = new GoodsModel();
|
||||
$condition = [
|
||||
[ 'g.site_id', '=', $this->site_id ],
|
||||
[ 'g.goods_state', '=', 1 ],
|
||||
[ 'g.goods_class', '=', GoodsDict::service ]
|
||||
];
|
||||
$service = $service_model->getGoodsList($condition, 'g.goods_id,g.sku_id,g.goods_name,g.price,sku.service_length', 'g.create_time desc'
|
||||
, 0, 'g', [
|
||||
[ 'goods_sku sku', 'sku.goods_id=g.goods_id', 'inner' ]
|
||||
]);
|
||||
$this->assign('service', $service[ 'data' ]);
|
||||
|
||||
$store_model = new StoreModel();
|
||||
$store_list = $store_model->getStoreList([ [ 'site_id', '=', $this->site_id ], [ 'status', '=', 1 ] ])[ 'data' ] ?? [];
|
||||
$this->assign('store_list', $store_list);
|
||||
|
||||
$user_model = new User();
|
||||
$user_list = $user_model->getUserList([ [ 'site_id', '=', $this->site_id ], [ 'app_module', '=', 'servicer' ], [ 'status', '=', 1 ] ])[ 'data' ] ?? [];
|
||||
$this->assign('user_list', $user_list);
|
||||
|
||||
return $this->fetch('reserve/add_reserve');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 预约列表
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
$reserve_model = new ReserveModel();
|
||||
if (request()->isJson()) {
|
||||
$page = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$search_text = input('search_text', '');
|
||||
$reserve_state = input('reserve_state', 'all');
|
||||
$start = input('start_time', 0);
|
||||
$end = input('end_time', 0);
|
||||
$store_id = !empty(input('store_id', 0)) ? input('store_id', 0) : $this->store_id;
|
||||
|
||||
$condition = [
|
||||
[ 'noy.site_id', '=', $this->site_id ]
|
||||
];
|
||||
if ($reserve_state != 'all') {
|
||||
$condition[] = [ 'noy.reserve_state', '=', $reserve_state ];
|
||||
}
|
||||
if (!empty($search_text)) {
|
||||
$condition[] = [ 'nm.mobile|nm.nickname', 'like', '%' . $search_text . '%' ];
|
||||
}
|
||||
if (!empty($store_id)) {
|
||||
$condition[] = [ 'noy.store_id', 'in', $store_id ];
|
||||
}
|
||||
if ($start && $end) {
|
||||
$condition[] = [ 'noy.reserve_time', 'between', [ $start, $end ] ];
|
||||
} else {
|
||||
if ($start && !$end) {
|
||||
$condition[] = [ 'noy.reserve_time', '>=', $start ];
|
||||
} else {
|
||||
if (!$start && $end) {
|
||||
$condition[] = [ 'noy.reserve_time', '<=', $end ];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$field = 'noy.store_id, noy.member_id, noy.remark, noy.reserve_id, noy.reserve_name, noy.reserve_state_name, noy.reserve_state, noy.reserve_time, noy.reserve_item, noy.create_time, noy.source, nm.headimg, nm.nickname, nm.mobile, os.store_name';
|
||||
$result = $reserve_model->getReservePageList($condition, $page, $page_size, 'noy.create_time desc', $field);
|
||||
return $result;
|
||||
} else {
|
||||
$this->assign('reserve_state', $reserve_model->reserve_state);
|
||||
|
||||
$start_time = input('start_time', '');
|
||||
$end_time = input('end_time', '');
|
||||
$this->assign('start_time', $start_time);
|
||||
$this->assign('end_time', $end_time);
|
||||
|
||||
$store_model = new StoreModel();
|
||||
$store_list = $store_model->getStoreList([ [ 'site_id', '=', $this->site_id ], [ 'status', '=', 1 ] ])[ 'data' ] ?? [];
|
||||
|
||||
$this->assign('store_list', $store_list);
|
||||
return $this->fetch('reserve/lists');
|
||||
}
|
||||
}
|
||||
|
||||
public function servicerList()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$store_id = !empty(input('store_id', 0)) ? input('store_id', 0) : $this->store_id;
|
||||
$condition = [
|
||||
[ 'u.site_id', '=', $this->site_id ],
|
||||
];
|
||||
$condition[] = [ 'ug.store_id', '=', $store_id ];
|
||||
|
||||
$user_model = new UserGroup();
|
||||
$result = $user_model->getUserList($condition, 'u.username,u.status,u.uid,u.group_name', 'u.uid desc', 'ug', [
|
||||
[ 'user u', 'ug.uid=u.uid', 'left' ]
|
||||
]);
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 预约设置
|
||||
* @return mixed
|
||||
*/
|
||||
public function getConfig()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$model = new ReserveModel();
|
||||
$store_id = input('store_id', 0);
|
||||
$config = $model->getReserveConfig($this->site_id, $store_id);
|
||||
return $config;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认预约
|
||||
* @return array
|
||||
*/
|
||||
public function confirm()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$reserve_id = input('reserve_id', 0);
|
||||
$reserve_model = new ReserveModel();
|
||||
return $reserve_model->confirmReserve($reserve_id, $this->site_id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消预约
|
||||
* @return array
|
||||
*/
|
||||
public function cancel()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$reserve_id = input('reserve_id', 0);
|
||||
$reserve_model = new ReserveModel();
|
||||
return $reserve_model->cancelReserve($reserve_id, $this->site_id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除预约
|
||||
* @return array
|
||||
*/
|
||||
public function deleteReserve()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$reserve_id = input('reserve_id', 0);
|
||||
$reserve_model = new ReserveModel();
|
||||
return $reserve_model->deleteReserve($reserve_id, $this->site_id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认到店
|
||||
* @return array
|
||||
*/
|
||||
public function confirmToStore()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$reserve_id = input('reserve_id', 0);
|
||||
$reserve_model = new ReserveModel();
|
||||
return $reserve_model->confirmToStore($reserve_id, $this->site_id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认完成
|
||||
* @return array
|
||||
*/
|
||||
public function complete()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$reserve_id = input('reserve_id', 0);
|
||||
$reserve_model = new ReserveModel();
|
||||
return $reserve_model->confirmComplete($reserve_id, $this->site_id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 预约详情
|
||||
* @return mixed|void
|
||||
*/
|
||||
public function detail()
|
||||
{
|
||||
$reserve_id = input('id', 0);
|
||||
|
||||
$model = new ReserveModel();
|
||||
|
||||
$info = $model->getReserveInfo([
|
||||
[ 'reserve_id', '=', $reserve_id ],
|
||||
[ 'oy.site_id', '=', $this->site_id ]
|
||||
], 'oy.*, nm.headimg, nm.nickname, nm.mobile,os.store_name', 'oy', [
|
||||
[ 'member nm', 'oy.member_id = nm.member_id', 'left' ],
|
||||
[ 'store os', 'oy.store_id = os.store_id', 'left' ]
|
||||
])[ 'data' ];
|
||||
|
||||
if (empty($info)) {
|
||||
$this->error('未获取到预约信息');
|
||||
return;
|
||||
}
|
||||
|
||||
$info[ 'item' ] = $model->getReserveItemList([
|
||||
[
|
||||
'oyi.reserve_id', '=', $reserve_id
|
||||
]
|
||||
], 'g.goods_name,sku.service_length,g.goods_id,g.sku_id,g.price,ys.username,oyi.reserve_user_id', 'reserve_item_id desc', 'oyi',
|
||||
[
|
||||
[ 'goods g', 'g.sku_id = oyi.reserve_goods_sku_id', 'right' ],
|
||||
[ 'goods_sku sku', 'sku.sku_id = oyi.reserve_goods_sku_id', 'right' ],
|
||||
[ 'user ys', 'oyi.reserve_user_id = ys.uid', 'left' ]
|
||||
])[ 'data' ];
|
||||
|
||||
$this->assign('info', $info);
|
||||
return $this->fetch('reserve/detail');
|
||||
}
|
||||
}
|
||||
267
addon/cardservice/shop/controller/Service.php
Executable file
267
addon/cardservice/shop/controller/Service.php
Executable file
@@ -0,0 +1,267 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\cardservice\shop\controller;
|
||||
|
||||
use addon\cardservice\model\ServiceGoods;
|
||||
use addon\form\model\Form;
|
||||
use app\model\goods\Goods;
|
||||
use app\model\goods\Goods as GoodsModel;
|
||||
use app\model\goods\GoodsService as GoodsServiceModel;
|
||||
use app\model\store\Store as StoreModel;
|
||||
use app\model\system\User;
|
||||
use app\model\web\Config as ConfigModel;
|
||||
use app\shop\controller\BaseShop;
|
||||
use think\App;
|
||||
|
||||
|
||||
/**
|
||||
* 服务项目商品
|
||||
* Class Service
|
||||
* @package addon\cardservice\shop\controller
|
||||
*/
|
||||
class Service extends BaseShop
|
||||
{
|
||||
|
||||
public function __construct(App $app = null)
|
||||
{
|
||||
$this->replace = [
|
||||
'ADDON_CARDSERVICE_CSS' => __ROOT__ . '/addon/cardservice/shop/view/public/css',
|
||||
'ADDON_CARDSERVICE_JS' => __ROOT__ . '/addon/cardservice/shop/view/public/js',
|
||||
'ADDON_CARDSERVICE_IMG' => __ROOT__ . '/addon/cardservice/shop/view/public/img',
|
||||
];
|
||||
parent::__construct($app);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加商品
|
||||
* @return mixed
|
||||
*/
|
||||
public function addGoods()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
|
||||
$category_id = input("category_id", 0);// 分类id
|
||||
$category_json = json_encode($category_id);//分类字符串
|
||||
$category_id = ',' . implode(',', $category_id) . ',';
|
||||
|
||||
$data = [
|
||||
'goods_name' => input("goods_name", ""),// 商品名称,
|
||||
'goods_attr_class' => input("goods_attr_class", ""),// 商品类型id,
|
||||
'goods_attr_name' => input("goods_attr_name", ""),// 商品类型名称,
|
||||
'is_limit' => input("is_limit", "0"),// 商品是否限购,
|
||||
'limit_type' => input("limit_type", "1"),// 商品限购类型,
|
||||
'site_id' => $this->site_id,
|
||||
'category_id' => $category_id,
|
||||
'category_json' => $category_json,
|
||||
'goods_image' => input("goods_image", ""),// 商品主图路径
|
||||
'goods_content' => input("goods_content", ""),// 商品详情
|
||||
'goods_state' => input("goods_state", ""),// 商品状态(1.正常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", ""),// 体积
|
||||
'goods_stock' => input("goods_stock", 0),// 商品库存(总和)
|
||||
'goods_stock_alarm' => input("goods_stock_alarm", 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商品数据
|
||||
'goods_service_ids' => input("goods_service_ids", ''),// 商品服务id集合
|
||||
'label_id' => input("label_id", ''),// 商品分组id
|
||||
'virtual_sale' => input("virtual_sale", 0),// 虚拟销量
|
||||
'max_buy' => input("max_buy", 0),// 限购
|
||||
'min_buy' => input("min_buy", 0),// 起售
|
||||
'recommend_way' => input('recommend_way', 0), // 推荐方式,1:新品,2:精品,3;推荐
|
||||
'timer_on' => strtotime(input('timer_on', 0)),//定时上架
|
||||
'timer_off' => strtotime(input('timer_off', 0)),//定时下架
|
||||
'is_consume_discount' => input('is_consume_discount', 0),//是否参与会员折扣
|
||||
'qr_id' => input('qr_id', 0),// 社群二维码id
|
||||
'template_id' => input('template_id', 0), // 商品海报id
|
||||
'sale_show' => input('sale_show', 0),//
|
||||
'stock_show' => input('stock_show', 0),//
|
||||
'market_price_show' => input('market_price_show', 0),//
|
||||
'barrage_show' => input('barrage_show', 0),//
|
||||
'form_id' => input('form_id', 0),
|
||||
'sale_channel' => input('sale_channel', 'all'),
|
||||
'sale_store' => input('sale_store', 'all'),
|
||||
'is_unify_price' => input('is_unify_price', '1'),
|
||||
'verify_validity_type' => input("verify_validity_type", 0),// 服务有效期类型
|
||||
'is_reserve' => input('is_reserve', 0),
|
||||
'service_mode' => input('service_mode', ''),
|
||||
'service_price_way' => input('service_price_way', '')
|
||||
];
|
||||
|
||||
if ($data[ 'verify_validity_type' ] == 1) {
|
||||
$data[ 'virtual_indate' ] = input("virtual_indate", 0);
|
||||
} else if ($data[ 'verify_validity_type' ] == 2) {
|
||||
$data[ 'virtual_indate' ] = strtotime(input("virtual_time", ''));
|
||||
}
|
||||
|
||||
$service_goods_model = new ServiceGoods();
|
||||
$res = $service_goods_model->addGoods($data);
|
||||
return $res;
|
||||
} else {
|
||||
// 商品服务
|
||||
$goods_service_model = new GoodsServiceModel();
|
||||
$service_list = $goods_service_model->getServiceList([ [ 'site_id', '=', $this->site_id ] ], 'id,service_name,icon')[ 'data' ];
|
||||
$this->assign("service_list", $service_list);
|
||||
|
||||
//商品默认排序值
|
||||
$config_model = new ConfigModel();
|
||||
$sort_config = $config_model->getGoodsSort($this->site_id)[ 'data' ][ 'value' ];
|
||||
$this->assign("sort_config", $sort_config);
|
||||
|
||||
//获取商品海报
|
||||
$poster_list = event('PosterTemplate', [ 'site_id' => $this->site_id ], true);
|
||||
if (!empty($poster_list)) {
|
||||
$poster_list = $poster_list[ 'data' ];
|
||||
}
|
||||
|
||||
$this->assign('poster_list', $poster_list);
|
||||
$this->assign('virtualcard_exit', addon_is_exit('virtualcard', $this->site_id));
|
||||
|
||||
$form_is_exit = addon_is_exit('form', $this->site_id);
|
||||
if ($form_is_exit) {
|
||||
$form_list = ( new Form() )->getFormList([ [ 'site_id', '=', $this->site_id ], [ 'form_type', '=', 'goods' ], [ 'is_use', '=', 1 ] ], 'id desc', 'id, form_name')[ 'data' ];
|
||||
$this->assign('form_list', $form_list);
|
||||
}
|
||||
$this->assign('form_is_exit', $form_is_exit);
|
||||
|
||||
$this->assign('all_goodsclass', event('GoodsClass'));
|
||||
$this->assign('goods_class', ( new ServiceGoods() )->getGoodsClass());
|
||||
|
||||
$this->assign('store_is_exit', addon_is_exit('store', $this->site_id));
|
||||
|
||||
return $this->fetch("service/add_goods");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑商品
|
||||
* @return mixed
|
||||
*/
|
||||
public function editGoods()
|
||||
{
|
||||
$service_goods_model = new ServiceGoods();
|
||||
if (request()->isJson()) {
|
||||
|
||||
$category_id = input("category_id", 0);// 分类id
|
||||
$category_json = json_encode($category_id);//分类字符串
|
||||
$category_id = ',' . implode(',', $category_id) . ',';
|
||||
|
||||
$data = [
|
||||
'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", ""),// 商品类型名称,
|
||||
'is_limit' => input("is_limit", "0"),// 商品是否限购,
|
||||
'limit_type' => input("limit_type", "1"),// 商品限购类型,
|
||||
'site_id' => $this->site_id,
|
||||
'category_id' => $category_id,
|
||||
'category_json' => $category_json,
|
||||
'goods_image' => input("goods_image", ""),// 商品主图路径
|
||||
'goods_content' => input("goods_content", ""),// 商品详情
|
||||
'goods_state' => input("goods_state", ""),// 商品状态(1.正常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", ""),// 体积
|
||||
'goods_stock' => input("goods_stock", 0),// 商品库存(总和)
|
||||
'goods_stock_alarm' => input("goods_stock_alarm", 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商品数据
|
||||
'goods_service_ids' => input("goods_service_ids", ''),// 商品服务id集合
|
||||
'label_id' => input("label_id", ''),// 商品分组id
|
||||
'virtual_sale' => input("virtual_sale", 0),// 虚拟销量
|
||||
'max_buy' => input("max_buy", 0),// 限购
|
||||
'min_buy' => input("min_buy", 0),// 起售
|
||||
'recommend_way' => input('recommend_way', 0), // 推荐方式,1:新品,2:精品,3;推荐
|
||||
'timer_on' => strtotime(input('timer_on', 0)),//定时上架
|
||||
'timer_off' => strtotime(input('timer_off', 0)),//定时下架
|
||||
'spec_type_status' => input('spec_type_status', 0),
|
||||
'is_consume_discount' => input('is_consume_discount', 0),//是否参与会员折扣
|
||||
'qr_id' => input('qr_id', 0),// 社群二维码id
|
||||
'template_id' => input('template_id', 0), // 商品海报id
|
||||
'sale_show' => input('sale_show', 0),//
|
||||
'stock_show' => input('stock_show', 0),//
|
||||
'market_price_show' => input('market_price_show', 0),//
|
||||
'barrage_show' => input('barrage_show', 0),//
|
||||
'form_id' => input('form_id', 0),
|
||||
'sale_channel' => input('sale_channel', 'all'),
|
||||
'sale_store' => input('sale_store', 'all'),
|
||||
'is_unify_price' => input('is_unify_price', '1'),
|
||||
'verify_validity_type' => input("verify_validity_type", 0),
|
||||
'is_reserve' => input('is_reserve', 0),
|
||||
'service_mode' => input('service_mode', ''),
|
||||
'service_price_way' => input('service_price_way', '')
|
||||
];
|
||||
if ($data[ 'verify_validity_type' ] == 1) {
|
||||
$data[ 'virtual_indate' ] = input("virtual_indate", 0);
|
||||
} else if ($data[ 'verify_validity_type' ] == 2) {
|
||||
$data[ 'virtual_indate' ] = strtotime(input("virtual_time", ''));
|
||||
}
|
||||
$res = $service_goods_model->editGoods($data);
|
||||
return $res;
|
||||
} else {
|
||||
|
||||
$goods_model = new GoodsModel();
|
||||
$goods_id = input("goods_id", 0);
|
||||
$goods_info = $service_goods_model->getGoodsInfo([ [ 'goods_id', '=', $goods_id ], [ 'site_id', '=', $this->site_id ] ], '*')[ 'data' ];
|
||||
if (empty($goods_info)) $this->error('未获取到商品信息');
|
||||
|
||||
$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,virtual_indate,sku_image,sku_images,goods_spec_format,spec_name,stock_alarm,is_default,service_length", '')[ 'data' ];
|
||||
$goods_info[ 'sku_list' ] = $goods_sku_list;
|
||||
$this->assign("goods_info", $goods_info);
|
||||
|
||||
// 商品服务
|
||||
$goods_service_model = new GoodsServiceModel();
|
||||
$service_list = $goods_service_model->getServiceList([ [ 'site_id', '=', $this->site_id ] ], 'id,service_name,icon')[ 'data' ];
|
||||
$this->assign("service_list", $service_list);
|
||||
|
||||
//获取商品海报
|
||||
$poster_list = event('PosterTemplate', [ 'site_id' => $this->site_id ], true);
|
||||
if (!empty($poster_list)) {
|
||||
$poster_list = $poster_list[ 'data' ];
|
||||
}
|
||||
$this->assign('poster_list', $poster_list);
|
||||
|
||||
$form_is_exit = addon_is_exit('form', $this->site_id);
|
||||
if ($form_is_exit) {
|
||||
$form_list = ( new Form() )->getFormList([ [ 'site_id', '=', $this->site_id ], [ 'form_type', '=', 'goods' ], [ 'is_use', '=', 1 ] ], 'id desc', 'id, form_name')[ 'data' ];
|
||||
$this->assign('form_list', $form_list);
|
||||
}
|
||||
$this->assign('form_is_exit', $form_is_exit);
|
||||
|
||||
$store_is_exit = addon_is_exit('store', $this->site_id);
|
||||
if ($store_is_exit && $goods_info[ 'sale_store' ] != 'all') {
|
||||
$store_list = ( new StoreModel() )->getStoreList([ [ 'site_id', '=', $this->site_id ], [ 'store_id', 'in', $goods_info[ 'sale_store' ] ] ], 'store_id,store_name,status,address,full_address,is_frozen');
|
||||
$this->assign('store_list', $store_list[ 'data' ]);
|
||||
}
|
||||
$this->assign('store_is_exit', $store_is_exit);
|
||||
|
||||
return $this->fetch("service/edit_goods");
|
||||
}
|
||||
}
|
||||
}
|
||||
282
addon/cardservice/shop/controller/Servicecategory.php
Executable file
282
addon/cardservice/shop/controller/Servicecategory.php
Executable file
@@ -0,0 +1,282 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\cardservice\shop\controller;
|
||||
|
||||
use app\model\goods\ServiceCategory as ServiceCategoryModel;
|
||||
use app\shop\controller\BaseShop;
|
||||
use think\App;
|
||||
|
||||
/**
|
||||
* 项目分类管理 控制器
|
||||
*/
|
||||
class Servicecategory extends BaseShop
|
||||
{
|
||||
public function __construct(App $app = null)
|
||||
{
|
||||
$this->replace = [
|
||||
'ADDON_CARDSERVICE_CSS' => __ROOT__ . '/addon/cardservice/shop/view/public/css',
|
||||
'ADDON_CARDSERVICE_JS' => __ROOT__ . '/addon/cardservice/shop/view/public/js',
|
||||
'ADDON_CARDSERVICE_IMG' => __ROOT__ . '/addon/cardservice/shop/view/public/img',
|
||||
];
|
||||
parent::__construct($app);
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类列表
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
$condition[] = [ 'site_id', '=', $this->site_id ];
|
||||
$field = 'category_id,category_name,short_name,pid,level,is_show,sort,image,category_id_1,category_id_2,category_id_3';
|
||||
$order = 'pid asc,category_id asc';
|
||||
$list = $goods_category_model->getCategoryTree($condition, $field);
|
||||
if (request()->isJson()) return $list;
|
||||
$list = $list[ 'data' ];
|
||||
$this->assign("list", $list);
|
||||
return $this->fetch('category/lists');
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类添加
|
||||
*/
|
||||
public function addCategory()
|
||||
{
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
if (request()->isJson()) {
|
||||
|
||||
$category_name = input('category_name', ''); // 分类名称
|
||||
$short_name = input('short_name', ''); // 简称
|
||||
$pid = input('pid', 0); //默认添加的服务分类为顶级
|
||||
$level = input('level', 1); // 层级
|
||||
$is_show = input('is_show', ''); // 是否显示
|
||||
$image = input('image', ''); // 分类图片
|
||||
$image_adv = input('image_adv', ''); // 分类广告图片
|
||||
$category_id_1 = input('category_id_1', 0); // 一级分类id
|
||||
$category_id_2 = input('category_id_2', 0); // 二级分类id
|
||||
$category_full_name = input('category_full_name', ''); // 组装名称
|
||||
$link_url = input('link_url', '');// 广告链接
|
||||
|
||||
$data = [
|
||||
'site_id' => $this->site_id,
|
||||
'category_name' => $category_name,
|
||||
'short_name' => $short_name,
|
||||
'pid' => $pid,
|
||||
'level' => $level,
|
||||
'is_show' => $is_show,
|
||||
'image' => $image,
|
||||
'image_adv' => $image_adv,
|
||||
'category_id_1' => $category_id_1,
|
||||
'category_id_2' => $category_id_2,
|
||||
'category_full_name' => $category_full_name,
|
||||
'link_url' => $link_url
|
||||
];
|
||||
$res = $goods_category_model->addCategory($data);
|
||||
if (!empty($res[ 'data' ])) {
|
||||
|
||||
//修改category_id_
|
||||
$update_data = [
|
||||
'category_id' => $res[ 'data' ],
|
||||
'category_id_' . $level => $res[ 'data' ],
|
||||
'site_id' => $this->site_id
|
||||
];
|
||||
$goods_category_model->editCategory($update_data);
|
||||
|
||||
}
|
||||
return $res;
|
||||
} else {
|
||||
return $this->fetch('category/add_category');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类编辑
|
||||
*/
|
||||
public function editCategory()
|
||||
{
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
if (request()->isJson()) {
|
||||
$category_id = input('category_id', '');// 分类id
|
||||
$category_name = input('category_name', '');// 分类名称
|
||||
$short_name = input('short_name', '');// 简称
|
||||
$pid = input('pid', 0);//默认添加的服务分类为顶级
|
||||
$level = input('level', 1);// 层级
|
||||
$is_show = input('is_show', 0);// 是否显示
|
||||
$image = input('image', '');// 分类图片
|
||||
$image_adv = input('image_adv', '');// 分类广告图片
|
||||
$link_url = input('link_url', '');// 广告链接
|
||||
$data = [
|
||||
'site_id' => $this->site_id,
|
||||
'category_id' => $category_id,
|
||||
'category_name' => $category_name,
|
||||
'short_name' => $short_name,
|
||||
'pid' => $pid,
|
||||
'level' => $level,
|
||||
'is_show' => $is_show,
|
||||
'image' => $image,
|
||||
'image_adv' => $image_adv,
|
||||
'link_url' => $link_url
|
||||
];
|
||||
$this->addLog("编辑服务分类:" . $category_name);
|
||||
$res = $goods_category_model->editCategory($data);
|
||||
|
||||
return $res;
|
||||
} else {
|
||||
|
||||
$category_id = input('category_id', '');// 分类id
|
||||
|
||||
if (empty($category_id)) {
|
||||
$this->error("缺少参数category_id");
|
||||
}
|
||||
|
||||
$goods_category_info = $goods_category_model->getCategoryInfo([ [ 'category_id', '=', $category_id ], [ 'site_id', '=', $this->site_id ] ])[ 'data' ];
|
||||
if (empty($goods_category_info)) $this->error('未获取到分类数据', href_url('shop/category/lists'));
|
||||
|
||||
$this->assign("goods_category_info", $goods_category_info);
|
||||
|
||||
//父级
|
||||
$goods_category_parent_info = $goods_category_model->getCategoryInfo([ [ 'category_id', '=', $goods_category_info[ 'pid' ] ], [ 'site_id', '=', $this->site_id ] ], 'category_name');
|
||||
$this->assign("goods_category_parent_info", $goods_category_parent_info[ 'data' ]);
|
||||
|
||||
$condition = [];
|
||||
$condition[] = [ 'site_id', '=', $this->site_id ];
|
||||
$condition[] = [ 'category_id', '<>', $category_id ];
|
||||
$field = 'category_id,category_name,short_name,pid,level,is_show,sort,image,category_id_1,category_id_2,category_id_3';
|
||||
$list = $goods_category_model->getCategoryTree($condition, $field);
|
||||
$this->assign("list", $list[ 'data' ]);
|
||||
return $this->fetch('category/edit_category');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务分类删除
|
||||
*/
|
||||
public function deleteCategory()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$category_id = input('category_id', '');// 分类id
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
$res = $goods_category_model->deleteCategory($category_id, $this->site_id);
|
||||
$this->addLog("删除服务分类id:" . $category_id);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取服务分类列表
|
||||
* @return \multitype
|
||||
*/
|
||||
public function getCategoryList()
|
||||
{
|
||||
$pid = input('pid', 0);// 上级id
|
||||
$level = input('level', 0);// 层级
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
if (!empty($level)) {
|
||||
$condition = [
|
||||
[ 'level', '=', $level ]
|
||||
];
|
||||
} else {
|
||||
$condition = [
|
||||
[ 'pid', '=', $pid ]
|
||||
];
|
||||
}
|
||||
$condition[] = [ 'site_id', '=', $this->site_id ];
|
||||
$list = $goods_category_list = $goods_category_model->getCategoryList($condition, 'category_id,category_name,pid,level,category_id_1,category_id_2,category_id_3', 'sort asc,category_id desc');
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取服务分类信息
|
||||
* @return \multitype
|
||||
*/
|
||||
public function getCategoryInfo()
|
||||
{
|
||||
$category_id = input('category_id', '');// 分类id
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
$condition = [
|
||||
[ 'category_id', '=', $category_id ]
|
||||
];
|
||||
$res = $goods_category_model->getCategoryInfo($condition, 'category_name');
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取服务分类
|
||||
* @return \multitype
|
||||
*/
|
||||
public function getCategoryByParent()
|
||||
{
|
||||
$pid = input('pid', 0);// 上级id
|
||||
$level = input('level', 0);// 层级
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
if (!empty($level)) {
|
||||
$condition[] = [ 'level', '=', $level ];
|
||||
}
|
||||
if (!empty($pid)) {
|
||||
$condition[] = [ 'pid', '=', $pid ];
|
||||
}
|
||||
$condition[] = [ 'site_id', '=', $this->site_id ];
|
||||
$list = $goods_category_list = $goods_category_model->getCategoryByParent($condition, 'category_id,category_name,pid,level,category_id_1,category_id_2,category_id_3');
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改服务分类排序
|
||||
*/
|
||||
public function modifySort()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$sort = input('sort', 0);
|
||||
$category_id = input('category_id', 0);
|
||||
$category_sort_array = input('category_sort_array', '');
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
if (!empty($category_sort_array)) {
|
||||
$category_sort_array = json_decode($category_sort_array, true);
|
||||
foreach ($category_sort_array as $k => $v) {
|
||||
$res = $goods_category_model->modifyGoodsCategorySort($v[ 'sort' ], $v[ 'category_id' ], $this->site_id);
|
||||
}
|
||||
} else {
|
||||
$res = $goods_category_model->modifyGoodsCategorySort($sort, $category_id, $this->site_id);
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
public function checkEditCategory()
|
||||
{
|
||||
if (request()->isJson()) {
|
||||
$pid = input('pid', 0);
|
||||
$category_id = input('category_id', 0);
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
$res = $goods_category_model->checkEditCategory([
|
||||
'pid' => $pid,
|
||||
'category_id' => $category_id,
|
||||
'site_id' => $this->site_id
|
||||
]);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示/隐藏
|
||||
* @return array
|
||||
*/
|
||||
public function modifyShow(){
|
||||
$category_id = input('id','');
|
||||
$is_show = input('is_show',0);
|
||||
|
||||
$goods_category_model = new ServiceCategoryModel();
|
||||
return $goods_category_model->modifyCategoryShow($category_id,$is_show);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user