This commit is contained in:
yaooo 2023-09-28 15:04:11 +08:00
commit daa68a2856
2 changed files with 15 additions and 8 deletions

View File

@ -689,14 +689,14 @@ class MerchantRepository extends BaseRepository
public function autoMargin($income, $order, $finance, $financeSn, $index = 0)
{
$merchant = Merchant::find($this->merId);
$margin = Db::name('MerchantType')->where('mer_type_id', $merchant['type_id'])->value('margin');
$margin_type = Db::name('MerchantType')->where('mer_type_id', $merchant['type_id'])->value('margin');
//商户保证金大于支付保证金 或者forceMargin==false 直接返回 不计算保证金
if ($merchant['paid_margin']>= $margin|| ($this->forceMargin === false && $merchant['auto_margin_rate'] == 0)) {
if ($merchant['paid_margin']>= $margin_type|| ($this->forceMargin === false && $merchant['auto_margin_rate'] == 0)) {
return [$income, $finance, false];
}
$rate = $this->forceMargin ? 100 : $merchant['auto_margin_rate'];
// //商户保证金未完全缴纳且设置了自动扣除比例
$margin = bcmul($income, bcdiv($rate, 100,2), 2);
$margin= bcmul($income, bcdiv($rate, 100,2), 2);
// $margin = min(bcsub($margin, $merchant['paid_margin'], 2), $margin);
// $income = max(bcsub($income, $margin, 2), 0);
// if ($margin <= 0) {
@ -714,10 +714,14 @@ class MerchantRepository extends BaseRepository
'mer_id' => $this->merId,
'financial_record_sn' => $financeSn . $index
];
if(bcadd($merchant['paid_margin'],$margin)>=$margin_type){
$is_margin=10;
}else{
$is_margin=1;
}
$orderInfo = [
'type_id' => $merchant['type_id'],
'is_margin' => $merchant['is_margin'],
'is_margin' => $is_margin,
'margin' => $margin,
];
$values = [
@ -738,7 +742,7 @@ class MerchantRepository extends BaseRepository
}
$merchant->paid_margin = bcadd($margin, $merchant->paid_margin, 2);
$merchant->ot_margin = $merchant->paid_margin;
$merchant->is_margin = MerchantRepository::PaidMargin;
$merchant->is_margin = $is_margin;
if ($merchant->save() === false) {
throw new \Exception('merchant 保存出错', 500);
}

View File

@ -275,9 +275,12 @@ class Auth extends BaseController
public function doMargin()
{
$user = $this->request->userInfo();
$merchant = Db::name('merchant')->where('uid', $user['uid'])->where('status', 1)->where('is_margin', 1)->find();
$merchant = Db::name('merchant')->where('uid', $user['uid'])->where('status', 1)->find();
if (!$merchant) {
return app('json')->fail('用户店铺异常');
return app('json')->fail('没有店铺');
}
if($merchant['is_margin'] == 10){
return app('json')->fail('保证金已缴纳');
}
if($merchant['margin'] == 0){
$margin = Db::name('MerchantType')->where('mer_type_id', $merchant['type_id'])->value('margin');