价格管理

pull/1/head
limu 10 months ago
parent 799eb79db0
commit 3cf0677057
  1. 13
      app/api/controller/StoreKeeper.php
  2. 33
      app/store/model/goods/GoodsPrice.php

@ -528,9 +528,18 @@ class StoreKeeper extends Controller
{ {
$model = new GoodsPriceModel; $model = new GoodsPriceModel;
if (!$model->edit($this->request->param())) { if (!$model->edit($this->request->param())) {
return $this->renderError($model->getError() ?: '添加失败'); return $this->renderError($model->getError() ?: '编辑失败');
} }
return $this->renderSuccess('添加成功'); return $this->renderSuccess('编辑成功');
}
public function delPrice(): Json
{
$model = new GoodsPriceModel;
if (!$model->del($this->request->param())) {
return $this->renderError($model->getError() ?: '删除失败');
}
return $this->renderSuccess('删除成功');
} }

@ -40,8 +40,6 @@ class GoodsPrice extends GoodsPriceModel
$temp = []; $temp = [];
if (!empty($v['price'])) { if (!empty($v['price'])) {
foreach ($v['price'] as $pk => $pv) { foreach ($v['price'] as $pk => $pv) {
$pv['profit_min'] = round($pv['min_price'] * $pv['markup_rate'] / 100, 2);
$pv['profit_max'] = round($pv['max_price'] * $pv['markup_rate'] / 100, 2);
if (!empty($params['type'])) { if (!empty($params['type'])) {
if ($pv['type'] == $params['type']) { if ($pv['type'] == $params['type']) {
$temp[] = $pv; $temp[] = $pv;
@ -79,16 +77,18 @@ class GoodsPrice extends GoodsPriceModel
if (!empty($catList)) { if (!empty($catList)) {
foreach ($catList as $k => $v) { foreach ($catList as $k => $v) {
if ($data['min_price'] >= $v->min_price && $data['min_price'] <= $v->max_price ) { if ($data['min_price'] >= $v->min_price && $data['min_price'] <= $v->max_price) {
$this->error = "该分类价格区间冲突,请重新设置价格"; $this->error = "该分类价格区间冲突,请重新设置价格";
return false; return false;
} }
if ( $data['max_price'] <= $v->max_price && $data['max_price'] >= $v->min_price ) { if ($data['max_price'] <= $v->max_price && $data['max_price'] >= $v->min_price) {
$this->error = "该分类价格区间冲突,请重新设置价格"; $this->error = "该分类价格区间冲突,请重新设置价格";
return false; return false;
} }
} }
} }
$data['profit_min'] = round($data['min_price'] * $data['markup_rate'] / 100, 2);
$data['profit_max'] = round($data['max_price'] * $data['markup_rate'] / 100, 2);
$data['store_id'] = self::$storeId; $data['store_id'] = self::$storeId;
return $this->save($data); return $this->save($data);
} }
@ -104,21 +104,28 @@ class GoodsPrice extends GoodsPriceModel
$this->error = "请补全信息"; $this->error = "请补全信息";
return false; return false;
} }
$detail = $this->where('id', '=', $data['id'])->find();
if ($detail->isEmpty()) {
$this->error = "异常数据";
return false;
}
//校验是否有冲突的区间 //校验是否有冲突的区间
$catList = $this->where(['cat_id' => $data['cat_id'], 'type' => $data['type']])->where('id','<>',$data['id'])->select(); $catList = $this->where(['cat_id' => $data['cat_id'], 'type' => $data['type']])->where('id', '<>', $data['id'])->select();
if (!empty($catList)) { if (!empty($catList)) {
foreach ($catList as $k => $v) { foreach ($catList as $k => $v) {
if ($data['min_price'] >= $v->min_price && $data['min_price'] <= $v->max_price ) { if ($data['min_price'] >= $v->min_price && $data['min_price'] <= $v->max_price) {
$this->error = "该分类价格区间冲突,请重新设置价格"; $this->error = "该分类价格区间冲突,请重新设置价格";
return false; return false;
} }
if ( $data['max_price'] <= $v->max_price && $data['max_price'] >= $v->min_price ) { if ($data['max_price'] <= $v->max_price && $data['max_price'] >= $v->min_price) {
$this->error = "该分类价格区间冲突,请重新设置价格"; $this->error = "该分类价格区间冲突,请重新设置价格";
return false; return false;
} }
} }
} }
return $this->save($data) !== false; $data['profit_min'] = round($data['min_price'] * $data['markup_rate'] / 100, 2);
$data['profit_max'] = round($data['max_price'] * $data['markup_rate'] / 100, 2);
return $detail->save($data) !== false;
} }
/** /**
@ -126,14 +133,14 @@ class GoodsPrice extends GoodsPriceModel
* @return bool * @return bool
* @throws \Exception * @throws \Exception
*/ */
public function remove(): bool public function del($data): bool
{ {
// 判断该服务是否被商品引用 // 判断该服务是否被商品引用
$goodsCount = ServiceRelModel::getCountByServiceId($this['service_id']); $detail = $this->where('id', '=', $data['id'])->find();
if ($goodsCount > 0) { if ($detail->isEmpty()) {
$this->error = "该记录被{$goodsCount}个商品引用,不允许删除"; $this->error = "异常数据";
return false; return false;
} }
return $this->save(['is_delete' => 1]) !== false; return $detail->delete() !== false;
} }
} }

Loading…
Cancel
Save