getValid($uid, 'rebate', $scope); if ($data) { $result = ['rule' => $rule, 'buy' => ['name' => '购买立返', 'desc' => []], 'share' => ['name' => '分享可赚', 'desc' => []]]; foreach ($data as $info) { $rule = Dever::db('pbenefit/rebate_rule')->select(['rebate_id' => $info['id']], ['col' => 'id,value,`condition`,level,score_id']); foreach ($rule as $k => $v) { if (!$v['value']) { continue; } if ($v['condition'] && !$this->check($uid, $v['condition'])) { continue; } $v['source_value'] = $v['value']; $v['value'] = Dever::math('value', $price, $v['value']); if ($v['value'] > 0) { $score = Dever::load(\Pscore\Lib\Info::class)->get($v['score_id']); if (isset($result['rule'][$v['id']])) { $v['value'] += $result['rule'][$v['id']]['value']; } $v['value_text'] = Dever::load(\Pscore\Lib\Info::class)->getText($v['value'], $score); $v['rebate_id'] = $info['id']; $v['name'] = $info['name']; $result['rule'][$v['id']] = $v; if ($v['level'] == 0) { # 购买可得 $result['buy']['desc'][$v['id']] = $v['value_text']; } elseif ($v['level'] == 1) { # 分享可得 $result['share']['desc'][$v['id']] = $v['value_text']; } } } } $result['buy']['desc'] = implode('、', $result['buy']['desc']); $result['share']['desc'] = implode('、', $result['share']['desc']); return $result; } return false; } private function check($uid, $condition) { for ($i = 1; $i <= 3; $i++) { $str = 'child_num_' . $i; if (strstr($condition, $str)) { $child = Dever::load(\Invite\Lib\Relation::class)->getChildNum($uid, $i); $condition = str_replace($str, $child, $condition); } } $eval = '$state = ' . $condition . ';'; @eval($eval); return $state; } # 获取描述信息 public function getDesc($info) { $info = Dever::load(\Pbenefit\Lib\Scope::class)->getInfo($info, 'bonus'); $info['type_name'] = Dever::db('pbenefit/bonus')->value('type', $info['type']); $info['give_source_name'] = Dever::db('pbenefit/bonus')->value('give_source', $info['give_source']); $info['period_name'] = Dever::db('pbenefit/bonus')->value('period', $info['period']); if ($info['period'] == 1) { $info['desc'] = $info['period_name'] . $info['period_day'] . '点'; } else { $info['desc'] = $info['period_name'] . '1点'; } $info['desc'] .= ',发放'; $score = Dever::load(\Pscore\Lib\Info::class)->get($info['give_score_id']); if (!strstr($info['give_value'], '%')) { $info['value_text'] = Dever::load(\Pscore\Lib\Info::class)->getText($info['give_value'], $score); $info['desc'] .= $info['value_text']; $info['tip'] = ''; } else { if ($info['give_source'] == 1) { $info['give_source_name'] = ''; } if ($info['give_level'] == 0) { $info['give_source_name'] = '本人'; } if ($info['type'] == 2) { $holding = Dever::load(\Pscore\Lib\Info::class)->get($info['holding_score_id']); $info['type_name'] .= $holding['name']; } $money = '(转人民币后的总额)'; $info['desc'] .= $info['give_source_name'] . $info['type_name'] . '总额'.$money.'的' . $info['give_value'] . $score['name']; } $info['desc'] = Dever::load(\Pbenefit\Lib\Item::class)->getPeriodDesc($info); if (isset($info['config_day'])) { $info['tname'] = true; } return $info; } }