1.提交缺失的东西

This commit is contained in:
2025-05-26 17:39:28 +08:00
parent 7e88b63fd8
commit b6eeccc9d5
4 changed files with 170 additions and 7 deletions

View File

@ -51,20 +51,18 @@ class GoodsController extends BaseAdminController
*/ */
public function add() public function add()
{ {
if ($this->request->isAjax() && $this->request->isPost()) {
$post = $this->request->post(); $post = $this->request->post();
$post['del'] = 0; $post['del'] = 0;
//主表验证 //主表验证
$result = $this->validate($post, 'app\admin\validate\Goods.add'); $result = $this->validate($post, 'app\admin\validate\GoodsValidate.add');
if ($result !== true) { if ($result !== true) {
return $this->fail($result); return $this->fail($result);
} }
//单规格验证 //单规格验证
if ($post['spec_type'] == 1) { if ($post['spec_type'] == 1) {
$result = $this->validate($post, 'app\admin\validate\GoodsOneSpec'); $result = $this->validate($post, 'app\admin\validate\GoodsOneSpecValidate');
if ($result !== true) { if ($result !== true) {
return $this->fail($result); return $this->fail($result);
} }
@ -96,14 +94,14 @@ class GoodsController extends BaseAdminController
if (empty($spec_lists)) { if (empty($spec_lists)) {
return $this->fail('至少添加一个规格'); return $this->fail('至少添加一个规格');
} }
$result = $this->validate($post, 'app\admin\validate\GoodsMoreSpec'); $result = $this->validate($post, 'app\admin\validate\GoodsMoreSpecValidate');
if ($result !== true) { if ($result !== true) {
return $this->fail($result); return $this->fail($result);
} }
//规格商品列表验证 //规格商品列表验证
foreach ($spec_lists as $v) { foreach ($spec_lists as $v) {
$result = $this->validate($v, 'app\admin\validate\GoodsMoreSpecLists'); $result = $this->validate($v, 'app\admin\validate\GoodsMoreSpecListsValidate');
if ($result !== true) { if ($result !== true) {
return $this->fail($result); return $this->fail($result);
} }
@ -122,7 +120,7 @@ class GoodsController extends BaseAdminController
return $this->fail('添加失败:' . $result); return $this->fail('添加失败:' . $result);
} }
return $this->success('添加成功'); return $this->success('添加成功');
}
} }

View File

@ -0,0 +1,52 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\adminapi\validate;
use think\Validate;
class GoodsMoreSpecListsValidate extends Validate
{
protected $rule = [
'market_price' => 'egt:0',
'price' => 'require|egt:0.01',
'cost_price' => 'require|egt:0.01',
'stock' => 'require|integer|egt:0',
'weight' => 'egt:0',
'volume' => 'egt:0',
];
protected $message = [
'volume.require' => '请输入体积',
'volume.egt' => '体积必须大于或等于0',
'weight.require' => '请输入重量',
'weight.egt' => '重量必须大于或等于0',
// 'market_price.require' => '请输入市场价',
'market_price.egt' => '市场价不能小于0',
'price.require' => '请输入价格',
'price.egt' => '价格必须大于或等于0.01',
'cost_price.require' => '请输入成本价',
'cost_price.egt' => '成本价必须大于或等于0.01',
'stock.require' => '请输入库存',
'stock.integer' => '库存必须为整数',
'stock.egt' => '库存必须大于或等于0',
];
}

View File

@ -0,0 +1,61 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\adminapi\validate;
use think\Validate;
class GoodsMoreSpecValidate extends Validate
{
protected $rule = [
'spec_name' => 'require|array|specNameRepetition',
'spec_values' => 'require|array|specValueRepetition',
];
protected $message = [
];
/**
* 检测规格名称是否重复
* @param $value
* @param $rule
* @param $data
* @return bool|string
*/
public function specNameRepetition($value, $rule, $data)
{
if (count($value) != count(array_unique($value))) {
return '规格名称重复';
}
return true;
}
public function specValueRepetition($value, $rule, $data)
{
foreach ($value as $k => $v) {
$row = explode(',', $v);
if (count($row) != count(array_unique($row))) {
return '同一规格的规格值不能重复';
}
}
return true;
}
}

View File

@ -0,0 +1,52 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\adminapi\validate;
use think\Validate;
class GoodsOneSpecValidate extends Validate
{
protected $rule = [
'one_market_price' => 'egt:0',
'one_price' => 'require|egt:0.01',
'one_cost_price' => 'require|egt:0.01',
'one_stock' => 'require|integer|gt:0',
'one_volume' => 'egt:0',
'one_weight' => 'egt:0',
];
protected $message = [
'one_volume.require' => '请输入体积',
'one_volume.egt' => '体积必须为大于或等于0',
'one_weight.require' => '请输入重量',
'one_weight.egt' => '重量必须为大于或等于0',
// 'one_market_price.require' => '请输入市场价',
'one_market_price.egt' => '市场价不能小于0',
'one_price.require' => '请输入价格',
'one_price.egt' => '价格必须大于或等于0.01',
'one_cost_price.require' => '请输入成本价',
'one_cost_price.egt' => '成本价必须大于或等于0.01',
'one_stock.require' => '请输入库存',
'one_stock.integer' => '库存必须为整型',
'one_stock.gt' => '库存必须大于零',
];
}