From d81074c33b697a8d0f0e050694cd59e381e5f944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=AF=E7=AB=8B?= Date: Mon, 15 Mar 2021 11:51:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=94=E5=88=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/data/service/RebateCurrentService.php | 30 ++++++++++++++--------- app/data/view/user_rebate/config.html | 11 +++++++-- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/app/data/service/RebateCurrentService.php b/app/data/service/RebateCurrentService.php index 8f52b0b2c..d5a0fad35 100644 --- a/app/data/service/RebateCurrentService.php +++ b/app/data/service/RebateCurrentService.php @@ -286,7 +286,7 @@ class RebateCurrentService extends Service $subsql = $this->app->db->name('DataUserUpgrade')->field('number')->whereLike('rebate_rule', '%,' . self::PRIZE_06 . ',%')->buildSql(true); foreach ($this->app->db->name('DataUser')->where("vip_code in {$subsql}")->whereIn('id', $puids)->orderField('id', $puids)->cursor() as $user) { if ($user['vip_code'] > $prevLevel) { - if (($amount = $this->_prize06amount($prevLevel, $user['vip_code'])) > 0) { + if (($amount = $this->_prize06amount($prevLevel, $user['vip_code'])) > 0.00) { $map = ['type' => self::PRIZE_06, 'order_no' => $this->order['order_no'], 'order_uid' => $this->order['uid']]; $name = "{$this->name(self::PRIZE_06)},[ {$prevLevel} > {$user['vip_code']} ]每单 {$amount} 元"; $this->app->db->name($this->table)->insert(array_merge($map, [ @@ -302,8 +302,8 @@ class RebateCurrentService extends Service /** * 计算两等级之间的管理奖差异 - * @param int $prevLevel - * @param int $nextLevel + * @param integer $prevLevel + * @param integer $nextLevel * @return float * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException @@ -311,15 +311,23 @@ class RebateCurrentService extends Service */ private function _prize06amount(int $prevLevel, int $nextLevel): float { - $amount = 0.00; - foreach (range($prevLevel, $nextLevel) as $level) { - [$state, $value] = [ - $this->config("manage_state_vip_{$level}"), - $this->config("manage_value_vip_{$level}"), - ]; - if ($state && $value > 0) $amount += $value; + if ($this->config("manage_type_vip_{$nextLevel}") == 2) { + $amount = 0.00; + foreach (range($prevLevel, $nextLevel) as $level) { + [$state, $value] = [ + $this->config("manage_state_vip_{$level}"), + $this->config("manage_value_vip_{$level}"), + ]; + if ($state && $value > 0) $amount += $value; + } + return floatval($amount); + } else { + if ($this->config("manage_state_vip_{$nextLevel}")) { + return floatval($this->config("manage_value_vip_{$nextLevel}")); + } else { + return floatval(0); + } } - return floatval($amount); } /** diff --git a/app/data/view/user_rebate/config.html b/app/data/view/user_rebate/config.html index 7d70af372..bed202f37 100644 --- a/app/data/view/user_rebate/config.html +++ b/app/data/view/user_rebate/config.html @@ -249,9 +249,16 @@ {/if}
- {php} $key = 'manage_value_vip_'.$level['number']; {/php} - + {php} $key = 'manage_type_vip_'.$level['number']; {/php} + {php} $data[$key] = $data[$key] ?? 1; {/php} + {foreach [1 => '不累计未发管理奖金额',2 => '累计未发放管理奖金'] as $k => $v} + {if isset($data[$key]) and $data[$key] eq $k} + + {else} + + {/if}{/foreach}