|
|
|
@ -417,7 +417,6 @@ class GameRebateService
|
|
|
|
|
'base_game_id' => $params['base_game_id'],
|
|
|
|
|
'ref_id' => $params['ref_id'],
|
|
|
|
|
'name' => $params['name'],
|
|
|
|
|
'num' => $params['num'],
|
|
|
|
|
'value' => $params['value'],
|
|
|
|
|
'update_time' => time()
|
|
|
|
|
];
|
|
|
|
@ -432,7 +431,6 @@ class GameRebateService
|
|
|
|
|
|
|
|
|
|
private function checkPropItem($prop)
|
|
|
|
|
{
|
|
|
|
|
$num = $params['num'] ?? 0;
|
|
|
|
|
$value = $params['value'] ?? 0;
|
|
|
|
|
if (!isset($params['num'])) {
|
|
|
|
|
throw new \Exception('缺少参数道具数量');
|
|
|
|
@ -446,10 +444,6 @@ class GameRebateService
|
|
|
|
|
if (!isset($params['ref_id'])) {
|
|
|
|
|
throw new \Exception('缺少参数道具ID');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!is_int($num) || $num < 0) {
|
|
|
|
|
throw new \Exception('数量必须为大于0的整数');
|
|
|
|
|
}
|
|
|
|
|
if (!is_int($value) || $value < 0) {
|
|
|
|
|
throw new \Exception('道具价值必须为大于0的整数');
|
|
|
|
|
}
|
|
|
|
@ -464,7 +458,6 @@ class GameRebateService
|
|
|
|
|
'base_game_id' => $baseGameId,
|
|
|
|
|
'ref_id' => $prop['ref_id'],
|
|
|
|
|
'name' => $prop['name'],
|
|
|
|
|
'num' => $prop['num'],
|
|
|
|
|
'value' => $prop['value'],
|
|
|
|
|
'create_time' => time(),
|
|
|
|
|
'update_time' => time()
|
|
|
|
@ -548,14 +541,14 @@ class GameRebateService
|
|
|
|
|
{
|
|
|
|
|
$baseGameId = $params['base_game_id'] ?? 0;
|
|
|
|
|
$roleId = $params['role_id'] ?? '';
|
|
|
|
|
$propIds = $params['prop_ids'] ?? [];
|
|
|
|
|
$propItems = $params['props'] ?? [];
|
|
|
|
|
$date = date('Y-m-d');
|
|
|
|
|
|
|
|
|
|
if ($baseGameId == 0) {
|
|
|
|
|
throw new \Exception('请选择游戏');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (count($propIds) == 0) {
|
|
|
|
|
if (count($props) == 0) {
|
|
|
|
|
throw new \Exception('至少选择一项道具');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -575,6 +568,20 @@ class GameRebateService
|
|
|
|
|
throw new \Exception('未设定定制道具返利倍数');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$props = M('rebate_props')->where(['id' => ['in', array_column($propItems, 'id')], 'base_game_id' => $baseGameId])->select();
|
|
|
|
|
$props = index_by_column('id', $props);
|
|
|
|
|
|
|
|
|
|
$applyAmount = 0;
|
|
|
|
|
$giftContent = [];
|
|
|
|
|
foreach ($propItems as $item) {
|
|
|
|
|
if (isset($props[$item['id']])) {
|
|
|
|
|
$applyAmount += $props[$item['id']]['value'];
|
|
|
|
|
$giftContent[] = $props[$item['id']]['name'] . '*' . $item['num'];
|
|
|
|
|
} else {
|
|
|
|
|
throw new \Exception('道具不存在');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$gameIds = [$baseGame['android_game_id'], $baseGame['ios_game_id']];
|
|
|
|
|
$role['game_ids'] = $gameIds;
|
|
|
|
|
$role['base_game_id'] = $baseGameId;
|
|
|
|
@ -582,9 +589,6 @@ class GameRebateService
|
|
|
|
|
$dailyPayAmount = $this->getRoleDailyPayAmount($role, $date);
|
|
|
|
|
$appliedAmount = $this->getRoleDailyAppliedAmount($role, $date);
|
|
|
|
|
|
|
|
|
|
$props = M('rebate_props')->where(['id' => ['in', $propIds], 'base_game_id' => $baseGameId])->select();
|
|
|
|
|
$applyAmount = array_sum(array_column($props, 'value'));
|
|
|
|
|
|
|
|
|
|
if ($dailyPayAmount * $setting['max_times'] - $applyAmount - $appliedAmount < 0) {
|
|
|
|
|
throw new \Exception('额度不足');
|
|
|
|
|
}
|
|
|
|
@ -615,7 +619,7 @@ class GameRebateService
|
|
|
|
|
'amount' => $applyAmount,
|
|
|
|
|
'pay_amount' => $dailyPayAmount,
|
|
|
|
|
'gift_key' => '',
|
|
|
|
|
'gift_content' => '',
|
|
|
|
|
'gift_content' => implode('|', $giftContent),
|
|
|
|
|
'props' => $applyProps,
|
|
|
|
|
'create_time' => time(),
|
|
|
|
|
];
|
|
|
|
|