|
@@ -19,10 +19,14 @@ class shaker
|
|
|
const direct_asc = 0;
|
|
|
const direct_dec = 1;
|
|
|
|
|
|
- public function reassign($type_id,$bonus_id,&$bonus_valin,$strength,$direction)
|
|
|
+ //$binded 只能表示状态是领取还没充值到个人账户中的状态
|
|
|
+ public function reassign($type_id, $bonus_id, $bonus_status, &$bonus_valin, $strength, $direction)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ $bonus_status = intval($bonus_status);
|
|
|
+ if($bonus_status != 1 && $bonus_status != 2) return false;
|
|
|
+
|
|
|
$bonus_val = $bonus_valin;
|
|
|
Db::beginTransaction();
|
|
|
|
|
@@ -69,12 +73,19 @@ class shaker
|
|
|
$max_value = $this->max($max_val,$item['bonus_value']);
|
|
|
++$index;
|
|
|
}
|
|
|
- $type_max_value = $this->max($type_max_value,$max_value);
|
|
|
+ $max_value = $this->max($type_max_value,$max_value);
|
|
|
$remain_change = $bonus_val - $bonus_valin;
|
|
|
- Model('bonus_type')->edit(array('type_id' => $type_id),
|
|
|
- array('max_amount' => $type_max_value,
|
|
|
- 'remain_amount' => array('exp', "remain_amount-" . "{$remain_change}"))
|
|
|
- );
|
|
|
+
|
|
|
+ if($bonus_status === 2) {
|
|
|
+ $data[] = array('max_amount' => $max_value,'remain_amount' => array('exp', "remain_amount-" . "{$remain_change}"));
|
|
|
+ Model('bonus_type')->edit(array('type_id' => $type_id),$data);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if($this->equal($type_max_value,$max_value) == false) {
|
|
|
+ Model('bonus_type')->edit(array('type_id' => $type_id),array('max_amount' => $max_value));
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
$ret = $mod_bonus->insertAll($selitems,array(),true);
|
|
|
if($ret == false && $mod_bonus->affected_rows() <= 0) {
|
|
@@ -93,6 +104,13 @@ class shaker
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private function equal($left,$right) {
|
|
|
+ $left = intval($left * 100 + 0.5);
|
|
|
+ $right = intval($right * 100 + 0.5);
|
|
|
+
|
|
|
+ return ($left == $right);
|
|
|
+ }
|
|
|
+
|
|
|
private function max($left,$right)
|
|
|
{
|
|
|
$left = intval($left * 100 + 0.5);
|