242 lines
8.2 KiB
PHP
242 lines
8.2 KiB
PHP
<?php
|
|
namespace addon\alilife\shop\controller;
|
|
use addon\groupbuy\model\Groupbuy as GroupbuyModel;
|
|
use app\shop\controller\BaseShop;
|
|
use addon\alilife\model\Goods as GoodsModel;
|
|
use addon\alilife\model\Category;
|
|
class Goods extends BaseShop
|
|
{
|
|
public function lists()
|
|
{
|
|
if (request()->isAjax()) {
|
|
$goods = new GoodsModel();
|
|
$page = input('page', 1);
|
|
$page_size = input('page_size', PAGE_LIST_ROWS);
|
|
$keywords = input('keywords', '');
|
|
$goods_id = input('goods_id', '');
|
|
$condition = [
|
|
['sg.site_id', '=', $this->site_id],
|
|
['sg.api_type', '=', 'allcategory'],
|
|
];
|
|
if ($keywords) {
|
|
$condition[] = [
|
|
'g.goods_name', 'like', "%{$keywords}%"
|
|
];
|
|
}
|
|
if ($goods_id) {
|
|
$condition[] = [
|
|
'g.goods_id', '=', $goods_id
|
|
];
|
|
}
|
|
$data = $goods->getGoodsPageList($condition, '*', 'id desc', $page, $page_size);
|
|
return $data;
|
|
} else {
|
|
$category = (new Category())->getCategoryByParent($this->site_id, 1, 0, 1);
|
|
$category_two = (new Category())->getCategoryByParent($this->site_id, 1, 0, 2);
|
|
$category_three = (new Category())->getCategoryByParent($this->site_id, 1, 0, 3);
|
|
$this->assign('first_cat_one', $category['data']);
|
|
$this->assign('first_cat_two', $category_two['data']);
|
|
$this->assign('first_cat_three', $category_three['data']);
|
|
$this->assign('Package', $category_three['data']);
|
|
$this->forthMenu();
|
|
return $this->fetch("goods/index");
|
|
}
|
|
}
|
|
|
|
/***
|
|
* 获取本地生活生商品
|
|
* @return array|mixed
|
|
*/
|
|
public function lifelists()
|
|
{
|
|
if (request()->isAjax()) {
|
|
$goods = new GoodsModel();
|
|
$page = input('page', 1);
|
|
$page_size = input('page_size', PAGE_LIST_ROWS);
|
|
$condition = [
|
|
'sg.site_id' => $this->site_id,
|
|
'sg.api_type' => 'localitem',
|
|
];
|
|
$data = $goods->getGoodsPageList($condition, '*', 'id desc', $page, $page_size);
|
|
return $data;
|
|
} else {
|
|
$category = (new Category())->getCategoryByParent($this->site_id, 1, 0, 1, 'localitem');
|
|
$first_cat_two = (new Category())->getCategoryByParent($this->site_id, 1, 0, 2, 'localitem');
|
|
$this->assign('first_cat_one', $category['data']);
|
|
$this->assign('first_cat_two', $first_cat_two['data']);
|
|
$this->assign('shop_info', $this->shop_info);
|
|
$this->forthMenu();
|
|
return $this->fetch("goods/local");
|
|
}
|
|
}
|
|
|
|
/***
|
|
* 添加商品
|
|
* @return array|void
|
|
*/
|
|
public function add()
|
|
{
|
|
if (request()->isAjax()) {
|
|
if ($this->shop_info['site_status'] <= 0) {
|
|
return error('', '您的店铺已到期');
|
|
}
|
|
$param = input();
|
|
if (empty($param)) error('必要参数必填');
|
|
$api_type = input('api_type', 'allcategory');
|
|
$item_type = input('item_type', '');
|
|
$merchant_name = input('merchant_name', '');
|
|
$phone_number = input('phone_number', '');
|
|
$data = [
|
|
'site_id' => $this->site_id,
|
|
'goods_ids' => $param['goods_ids'],
|
|
'cat_id' => $param['cat_id'],
|
|
];
|
|
$goods_model = new GoodsModel();
|
|
if ($api_type == 'localitem') {
|
|
$data = request()->post();
|
|
$data['site_id'] = $this->site_id;
|
|
return $goods_model->localitemAddGoods($data, $item_type, $merchant_name, $phone_number);
|
|
} else {
|
|
return $goods_model->addGoods($data, $api_type);
|
|
}
|
|
}
|
|
$this->assign('shop_info', $this->shop_info);
|
|
$api_type = input('api_type', 'localitem');
|
|
$this->assign('api_type', $api_type);
|
|
return $this->fetch('goods/add');
|
|
}
|
|
|
|
/**
|
|
* 修改商品分类
|
|
*/
|
|
public function edit()
|
|
{
|
|
$goods_model = new GoodsModel();
|
|
$api_type = input('api_type', 'localitem');
|
|
if (request()->isAjax()) {
|
|
$param = input();
|
|
if (empty($param)) $this->error('必要参数必填');
|
|
$api_type = input('api_type', 'allcategory');
|
|
$data = [
|
|
'site_id' => $this->site_id,
|
|
'goods_id' => $param['goods_id'],
|
|
'cat_id' => $param['cat_id'],
|
|
];
|
|
if ($api_type == 'localitem') {
|
|
$goods_id = input('goods_id');
|
|
$item_type = input('item_type');
|
|
$data = request()->post();
|
|
return $goods_model->updateGoodslocalitemGoods($goods_id, $data, $item_type);
|
|
} else {
|
|
return $goods_model->updateGoods($data, $api_type);
|
|
}
|
|
}
|
|
if ($api_type == 'localitem') {
|
|
$goods_id = input('goods_id');
|
|
$groupbuy_model = new GroupbuyModel();
|
|
//获取团购信息
|
|
$condition = [
|
|
['pg.goods_id', '=', $goods_id],
|
|
['pg.site_id', '=', $this->site_id],
|
|
['g.goods_state', '=', 1],
|
|
['g.is_delete', '=', 0]
|
|
];
|
|
$groupbuy_info = $groupbuy_model->getGroupbuyInfo($condition)['data'];
|
|
$this->assign('groupbuy_info', $groupbuy_info);
|
|
$this->assign('shop_info', $this->shop_info);
|
|
$this->assign('api_type', $api_type);
|
|
$this->assign('category_id', input('category_id'));
|
|
return $this->fetch('goods/edit');
|
|
}
|
|
}
|
|
|
|
/***
|
|
* 同步商家产品
|
|
* @return array
|
|
*/
|
|
public function sync()
|
|
{
|
|
$start = input('start', 0);
|
|
$api_type = input('api_type', 'allcategory');
|
|
$res = (new GoodsModel())->syncGoods($start, 20, $this->site_id, $api_type);
|
|
return $res;
|
|
}
|
|
|
|
|
|
public function syncGoods()
|
|
{
|
|
$goods_id = input('goods_id');
|
|
$goods_model = new GoodsModel();
|
|
if (request()->isAjax()) {
|
|
$data = request()->post();
|
|
$api_type = input('api_type');
|
|
if ($api_type != 'allcategory') {
|
|
$res = $goods_model->PushLocaSyncGoodsInfo($goods_id, $data);
|
|
} else {
|
|
$res = $goods_model->PushPTSyncGoodsInfo($goods_id, $data);
|
|
}
|
|
return $res;
|
|
}
|
|
$join = [
|
|
['goods g', 'g.goods_id=a.goods_id', 'right']
|
|
];
|
|
$where = [
|
|
['g.goods_id', '=', $goods_id]
|
|
];
|
|
$goods_info = $goods_model->getGoodsInfo($where, 'g.*,a.category_id', 'a', $join);
|
|
$this->assign('goods_info', $goods_info);
|
|
$this->assign('goods_id', $goods_id);
|
|
$this->assign('shop_info', $this->shop_info);
|
|
$this->assign('alipaycategory_id', $goods_info['category_id'] ?: '');
|
|
return $this->fetch('goods/syncGoods');
|
|
}
|
|
|
|
/***
|
|
* 上传库存价格
|
|
* @return array
|
|
*/
|
|
public function syncrenew()
|
|
{
|
|
$goods_id = input('goods_id');
|
|
$api_type = input('api_type');
|
|
if ($api_type != 'allcategory') {
|
|
$res = (new GoodsModel())->syncLocalitemPrice($goods_id, $this->site_id);
|
|
} else {
|
|
$res = (new GoodsModel())->syncDtockPrice($goods_id, $this->site_id, $api_type);
|
|
}
|
|
return $res;
|
|
}
|
|
|
|
/***
|
|
* 下架
|
|
* @return array
|
|
*/
|
|
public function goodsDelisting()
|
|
{
|
|
$out_item_id = input('out_item_id', '');
|
|
$res = (new GoodsModel())->goodsDelisting($out_item_id, $this->site_id);
|
|
return $res;
|
|
}
|
|
|
|
/***
|
|
* 上架
|
|
* @return array
|
|
*/
|
|
public function listing()
|
|
{
|
|
$out_item_id = input('out_item_id', '');
|
|
$res = (new GoodsModel())->goodsListing($out_item_id, $this->site_id);
|
|
return $res;
|
|
}
|
|
|
|
/**
|
|
* 小程序删除商品
|
|
*/
|
|
public function delete()
|
|
{
|
|
if (request()->isAjax()) {
|
|
$goods_model = new GoodsModel();
|
|
return $goods_model->deleteGoods(input('out_item_id', ''), $this->site_id);
|
|
}
|
|
}
|
|
} |