<?php
|
|
namespace app\operations\controller\plus\groupbuy;
|
|
use app\operations\controller\Controller;
|
use app\operations\model\plus\groupbuy\Product as ProductModel;
|
use app\common\model\product\Product as CommonProductModel;
|
|
/**
|
* 商家端团购商品控制器
|
*/
|
class Product extends Controller
|
{
|
/**
|
* 团购商品列表
|
*/
|
public function index()
|
{
|
$model = new ProductModel();
|
$list = $model->getList($this->postData());
|
return $this->renderSuccess('', compact('list'));
|
}
|
|
/**
|
* 添加团购商品
|
*/
|
public function add()
|
{
|
if ($this->request->isGet()) {
|
// 获取店铺的商品列表用于选择
|
$commonProductModel = new CommonProductModel();
|
$postData = $this->postData();
|
$postData['shop_supplier_id'] = $this->getSupplierId();
|
$productList = $commonProductModel->getList($postData);
|
return $this->renderSuccess('', compact('productList'));
|
}
|
|
$model = new ProductModel();
|
$data = $this->postData();
|
|
// 如果传递的是批量数据,则处理多个商品
|
if (isset($data['product_list']) && is_array($data['product_list']) && count($data['product_list']) > 0) {
|
// 处理批量添加
|
$successCount = 0;
|
$errors = [];
|
|
foreach ($data['product_list'] as $productData) {
|
$productData['shop_supplier_id'] = $this->getSupplierId();
|
if ($model->add($productData)) {
|
$successCount++;
|
} else {
|
$errors[] = "商品ID {$productData['product_id']} 添加失败: " . $model->getError();
|
}
|
}
|
|
if ($successCount > 0) {
|
$message = "成功添加 {$successCount} 个商品";
|
if (!empty($errors)) {
|
$message .= ", 部分商品添加失败: " . implode(', ', $errors);
|
return $this->renderSuccess($message);
|
}
|
return $this->renderSuccess($message);
|
} else {
|
return $this->renderError('所有商品添加失败: ' . implode(', ', $errors));
|
}
|
} else {
|
// 单个商品添加
|
$data['shop_supplier_id'] = $this->getSupplierId();
|
if ($model->add($data)) {
|
return $this->renderSuccess('添加成功');
|
}
|
return $this->renderError($model->getError() ?: '添加失败');
|
}
|
}
|
|
/**
|
* 编辑团购商品
|
*/
|
public function edit()
|
{
|
$groupbuy_product_id = $this->request->param('groupbuy_product_id');
|
if (empty($groupbuy_product_id)) {
|
return $this->renderError('缺少必要参数:groupbuy_product_id');
|
}
|
|
$model = ProductModel::detail($groupbuy_product_id, [
|
'product', 'groupbuySku'
|
]);
|
if (!$model) {
|
return $this->renderError('团购商品不存在');
|
}
|
|
// 验证权限 - 商家端可以编辑所有商品,不需要权限验证
|
/*
|
if ($model['shop_supplier_id'] != $this->getStoreId()) {
|
return $this->renderError('没有权限操作此商品');
|
}
|
*/
|
|
if ($this->request->isGet()) {
|
return $this->renderSuccess('', compact('model'));
|
}
|
|
$data = $this->postData();
|
if ($model->edit($data)) {
|
return $this->renderSuccess('更新成功');
|
}
|
return $this->renderError($model->getError() ?: '更新失败');
|
}
|
|
/**
|
* 删除团购商品
|
*/
|
public function delete()
|
{
|
$groupbuy_product_id = $this->request->param('groupbuy_product_id');
|
if (empty($groupbuy_product_id)) {
|
return $this->renderError('缺少必要参数:groupbuy_product_id');
|
}
|
|
$model = ProductModel::detail($groupbuy_product_id);
|
if (!$model) {
|
return $this->renderError('团购商品不存在');
|
}
|
|
// 验证权限 - 商家端可以删除所有商品,不需要权限验证
|
/*
|
if ($model['shop_supplier_id'] != $this->getStoreId()) {
|
return $this->renderError('没有权限操作此商品');
|
}
|
*/
|
|
if ($model->remove()) {
|
return $this->renderSuccess('删除成功');
|
}
|
return $this->renderError('删除失败');
|
}
|
|
/**
|
* 获取团购商品详情
|
*/
|
public function detail()
|
{
|
$groupbuy_product_id = $this->request->param('groupbuy_product_id');
|
if (empty($groupbuy_product_id)) {
|
return $this->renderError('缺少必要参数:groupbuy_product_id');
|
}
|
|
$model = ProductModel::detail($groupbuy_product_id, [
|
'product', 'groupbuySku', 'active'
|
]);
|
if (!$model) {
|
return $this->renderError('团购商品不存在');
|
}
|
|
// 验证权限 - 商家端可以查看所有商品,不需要权限验证
|
/*
|
if ($model['shop_supplier_id'] != $this->getStoreId()) {
|
return $this->renderError('没有权限查看此商品');
|
}
|
*/
|
|
return $this->renderSuccess('', compact('model'));
|
}
|
}
|