Commit 57c2512d authored by jianghaiming's avatar jianghaiming

update:修改商品金额不能大于售价

parent 124fca5d
...@@ -12,6 +12,7 @@ use Api\PhpUtils\Common\BaseConvert; ...@@ -12,6 +12,7 @@ use Api\PhpUtils\Common\BaseConvert;
use Api\PhpUtils\Common\GoodsSkuId; use Api\PhpUtils\Common\GoodsSkuId;
use Api\PhpUtils\Http\HttpUtil; use Api\PhpUtils\Http\HttpUtil;
use App\Exception\custom\GoodsException; use App\Exception\custom\GoodsException;
use App\Exception\custom\MarketingException;
use App\Models\goods\mysql\Category; use App\Models\goods\mysql\Category;
use App\Models\goods\mysql\GoodsOperationRecord; use App\Models\goods\mysql\GoodsOperationRecord;
use App\Models\goods\mysql\GoodsSku; use App\Models\goods\mysql\GoodsSku;
...@@ -36,6 +37,7 @@ use App\Services\common\CommonService; ...@@ -36,6 +37,7 @@ use App\Services\common\CommonService;
use Api\PhpUtils\Http\Request; use Api\PhpUtils\Http\Request;
use App\Exception\custom\InterfaceException; use App\Exception\custom\InterfaceException;
class GoodsService class GoodsService
{ {
const CHARGEFEE = 0.006; const CHARGEFEE = 0.006;
...@@ -701,10 +703,8 @@ class GoodsService ...@@ -701,10 +703,8 @@ class GoodsService
"goods_version" => (int)$skuData["goods_version"] + 1, "goods_version" => (int)$skuData["goods_version"] + 1,
]; ];
//验证结算价格 //验证结算价格/分销金额
if (!empty($params["clear_price"])) { self::checkClearPrice($goodsSkuId, $skuParams);
self::checkClearPrice($goodsSkuId, $skuParams);
}
if (self::isInitGoodsStatus($params, $skuData)) { if (self::isInitGoodsStatus($params, $skuData)) {
$skuParams["audit_status"] = GoodsSku::STATUS_AUDIT; $skuParams["audit_status"] = GoodsSku::STATUS_AUDIT;
...@@ -759,22 +759,41 @@ class GoodsService ...@@ -759,22 +759,41 @@ class GoodsService
if (!empty($marketings)) { if (!empty($marketings)) {
foreach ($marketings as $marketing) { foreach ($marketings as $marketing) {
if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_RATE) { if ($clearPrice > 0) {
$commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]) / 10000 * $price; if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_RATE) {
if (($price - $commissionTotal - $chargeFee) < $clearPrice) { $commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]) / 10000 * $price;
throw new GoodsException(['cus' => 40]); if (($price - $commissionTotal - $chargeFee) < $clearPrice) {
throw new GoodsException(['cus' => 40]);
}
} }
}
if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_FIXED) { if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_FIXED) {
$commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]); $commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]);
if (($price - $commissionTotal - $chargeFee) < $clearPrice) { if (($price - $commissionTotal - $chargeFee) < $clearPrice) {
throw new GoodsException(['cus' => 40]); throw new GoodsException(['cus' => 40]);
}
}
}else{
//比例计算
if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_RATE) {
$commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]) / 10000 * $price;
if ($price < ($commissionTotal+$chargeFee)) {
throw new MarketingException(['cus'=>23]);
}
}
//固定金额
if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_FIXED) {
$commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]);
if ($price < ($commissionTotal+$chargeFee)) {
throw new MarketingException(['cus'=>23]);
}
} }
} }
} }
}else{ }else{
if (($price - $chargeFee) < $clearPrice) { if ($clearPrice > 0 && (($price - $chargeFee) < $clearPrice)) {
throw new GoodsException(['cus' => 40]); throw new GoodsException(['cus' => 40]);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment