Goods.php 6.5 KB
Newer Older
D
v1.2.0  
devil_gong 已提交
1 2 3 4
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
D
devil_gong 已提交
5
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
D
v1.2.0  
devil_gong 已提交
6 7 8 9 10 11 12
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\admin\controller;

G
gongfuxiang 已提交
13
use think\facade\Hook;
14 15 16
use app\service\GoodsService;
use app\service\RegionService;
use app\service\BrandService;
D
v1.2.0  
devil_gong 已提交
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

/**
 * 商品管理
 * @author   Devil
 * @blog     http://gong.gg/
 * @version  0.0.1
 * @datetime 2016-12-01T21:51:08+0800
 */
class Goods extends Common
{
	/**
	 * 构造方法
	 * @author   Devil
	 * @blog     http://gong.gg/
	 * @version  0.0.1
	 * @datetime 2016-12-03T12:39:08+0800
	 */
	public function __construct()
	{
		// 调用父类前置方法
		parent::__construct();

		// 登录校验
D
devil_gong 已提交
40
		$this->IsLogin();
D
v1.2.0  
devil_gong 已提交
41 42

		// 权限校验
D
devil_gong 已提交
43
		$this->IsPower();
D
v1.2.0  
devil_gong 已提交
44 45 46 47 48 49 50 51 52 53 54 55
	}

	/**
     * [Index 商品列表]
     * @author   Devil
     * @blog     http://gong.gg/
     * @version  0.0.1
     * @datetime 2016-12-06T21:31:53+0800
     */
	public function Index()
	{
		// 总数
D
devil 已提交
56
		$total = GoodsService::GoodsTotal($this->form_where);
D
v1.2.0  
devil_gong 已提交
57 58

		// 分页
D
devil 已提交
59 60 61 62 63 64 65
		$page_params = [
			'number'	=>	$this->page_size,
			'total'		=>	$total,
			'where'		=>	$this->data_request,
			'page'		=>	$this->page,
			'url'		=>	MyUrl('admin/goods/index'),
		];
D
v1.2.0  
devil_gong 已提交
66 67 68 69
		$page = new \base\Page($page_params);

		// 获取数据列表
		$data_params = [
D
devil 已提交
70
            'where'         => $this->form_where,
D
devil 已提交
71
            'm'             => $page->GetPageStarNumber(),
D
devil 已提交
72
            'n'             => $this->page_size,
D
devil 已提交
73 74 75
            'is_category'   => 1,
        ];
        $ret = GoodsService::GoodsList($data_params);
D
v1.2.0  
devil_gong 已提交
76

D
devil 已提交
77
        // 基础参数赋值
D
devil 已提交
78
		$this->assign('params', $this->data_request);
D
v1.2.0  
devil_gong 已提交
79
		$this->assign('page_html', $page->GetPageHtml());
G
gongfuxiang 已提交
80
		$this->assign('data_list', $ret['data']);
D
v1.2.0  
devil_gong 已提交
81 82 83
		return $this->fetch();
	}

D
devil 已提交
84 85 86 87 88 89 90 91 92
	/**
     * 详情
     * @author   Devil
     * @blog     http://gong.gg/
     * @version  1.0.0
     * @datetime 2019-08-05T08:21:54+0800
     */
    public function Detail()
    {
D
devil 已提交
93 94 95 96 97 98 99 100 101
        if(!empty($this->data_request['id']))
        {
            // 条件
            $where = [
                ['is_delete_time', '=', 0],
                ['id', '=', intval($this->data_request['id'])],
            ];

            // 获取列表
D
devil 已提交
102
            $data_params = [
D
devil 已提交
103 104 105 106
                'm'             => 0,
                'n'             => 1,
                'where'         => $where,
                'is_category'   => 1,
D
devil 已提交
107
            ];
D
devil 已提交
108 109 110 111
            $ret = GoodsService::GoodsList($data_params);
            $data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
            $this->assign('data', $data);
        }
D
devil 已提交
112 113 114
        return $this->fetch();
    }

D
v1.2.0  
devil_gong 已提交
115 116 117 118 119 120 121 122 123 124
	/**
	 * [SaveInfo 商品添加/编辑页面]
	 * @author   Devil
	 * @blog     http://gong.gg/
	 * @version  0.0.1
	 * @datetime 2016-12-14T21:37:02+0800
	 */
	public function SaveInfo()
	{
		// 参数
D
devil 已提交
125
		$params = $this->data_request;
D
v1.2.0  
devil_gong 已提交
126 127

		// 商品信息
128
		$data = [];
D
v1.2.0  
devil_gong 已提交
129 130
		if(!empty($params['id']))
		{
D
devil 已提交
131
			// 条件
D
devil 已提交
132 133 134 135
            $where = [
                ['is_delete_time', '=', 0],
                ['id', '=', intval($params['id'])],
            ];
D
devil 已提交
136 137

        	// 获取数据
D
v1.2.0  
devil_gong 已提交
138
			$data_params = [
D
devil 已提交
139
				'where'				=> $where,
D
v1.2.0  
devil_gong 已提交
140 141 142 143 144 145
				'm'					=> 0,
				'n'					=> 1,
				'is_photo'			=> 1,
				'is_content_app'	=> 1,
				'is_category'		=> 1,
			];
146 147
			$ret = GoodsService::GoodsList($data_params);
			if(empty($ret['data'][0]))
D
v1.2.0  
devil_gong 已提交
148 149 150
			{
				return $this->error('商品信息不存在', MyUrl('admin/goods/index'));
			}
151
			$data = $ret['data'][0];
D
v1.2.0  
devil_gong 已提交
152 153

			// 获取商品编辑规格
154
			$specifications = GoodsService::GoodsEditSpecifications($ret['data'][0]['id']);
D
v1.2.0  
devil_gong 已提交
155 156 157 158 159 160 161
			$this->assign('specifications', $specifications);
		}

		// 地区信息
		$this->assign('region_province_list', RegionService::RegionItems(['pid'=>0]));

		// 商品分类
D
devil_gong 已提交
162
		$this->assign('goods_category_list', GoodsService::GoodsCategoryAll());
D
v1.2.0  
devil_gong 已提交
163 164 165 166

		// 品牌分类
		$this->assign('brand_list', BrandService::CategoryBrand());

G
gongfuxiang 已提交
167
		// 规格扩展数据
D
devil 已提交
168
		$goods_spec_extends = GoodsService::GoodsSpecificationsExtends($params);
G
gongfuxiang 已提交
169 170
		$this->assign('goods_specifications_extends', $goods_spec_extends['data']);

D
devil 已提交
171 172 173 174 175
        // 站点类型
        $this->assign('common_site_type_list', lang('common_site_type_list'));
        // 当前系统设置的站点类型
        $this->assign('common_site_type', MyC('common_site_type', 0, true));

D
devil 已提交
176 177 178
        // 是否拷贝
        $this->assign('is_copy', (isset($params['is_copy']) && $params['is_copy'] == 1) ? 1 : 0);

G
gongfuxiang 已提交
179
		// 商品编辑页面钩子
D
devil_gong 已提交
180 181
		$hook_name = 'plugins_view_admin_goods_save';
        $this->assign($hook_name.'_data', Hook::listen($hook_name,
G
gongfuxiang 已提交
182
        [
D
devil_gong 已提交
183
            'hook_name'    	=> $hook_name,
D
devil_gong 已提交
184
            'is_backend'   	=> true,
D
devil_gong 已提交
185
            'goods_id'      => isset($params['id']) ? $params['id'] : 0,
G
gongfuxiang 已提交
186 187 188 189 190
            'data'			=> &$data,
            'params'       	=> &$params,
        ]));

        // 编辑器文件存放地址
D
v1.2.0  
devil_gong 已提交
191 192
		$this->assign('editor_path_type', 'goods');

G
gongfuxiang 已提交
193
		// 数据
D
devil 已提交
194
		unset($params['id'], $params['is_copy']);
G
gongfuxiang 已提交
195 196
		$this->assign('data', $data);
		$this->assign('params', $params);
D
v1.2.0  
devil_gong 已提交
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215
		return $this->fetch();
	}

	/**
	 * [Save 商品添加/编辑]
	 * @author   Devil
	 * @blog     http://gong.gg/
	 * @version  0.0.1
	 * @datetime 2016-12-14T21:37:02+0800
	 */
	public function Save()
	{
		// 是否ajax
		if(!IS_AJAX)
		{
			return $this->error('非法访问');
		}

		// 开始操作
D
devil 已提交
216
		$params = $this->data_post;
D
v1.2.0  
devil_gong 已提交
217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236
		$params['admin'] = $this->admin;
		return GoodsService::GoodsSave($params);
	}

	/**
	 * [Delete 商品删除]
	 * @author   Devil
	 * @blog     http://gong.gg/
	 * @version  0.0.1
	 * @datetime 2016-12-15T11:03:30+0800
	 */
	public function Delete()
	{
		// 是否ajax
		if(!IS_AJAX)
		{
			return $this->error('非法访问');
		}

		// 开始操作
D
devil 已提交
237
		$params = $this->data_post;
D
v1.2.0  
devil_gong 已提交
238 239 240 241 242
		$params['admin'] = $this->admin;
		return GoodsService::GoodsDelete($params);
	}

	/**
243
	 * 状态更新
D
v1.2.0  
devil_gong 已提交
244 245 246 247 248
	 * @author   Devil
	 * @blog     http://gong.gg/
	 * @version  0.0.1
	 * @datetime 2017-01-12T22:23:06+0800
	 */
249
	public function StatusUpdate()
D
v1.2.0  
devil_gong 已提交
250 251 252 253 254 255 256 257
	{
		// 是否ajax
		if(!IS_AJAX)
		{
			return $this->error('非法访问');
		}

		// 开始操作
D
devil 已提交
258
		$params = $this->data_post;
D
v1.2.0  
devil_gong 已提交
259 260 261 262 263
		$params['admin'] = $this->admin;
		return GoodsService::GoodsStatusUpdate($params);
	}
}
?>