迁移优化

master
ELF 4 years ago
parent a2dec0e79b
commit bfa0c5c5b8

@ -78,16 +78,12 @@ class ConsoleController extends Think {
foreach ($tasks as $task) { foreach ($tasks as $task) {
if ($task['type'] == 1) { if ($task['type'] == 1) {
$message = '推广员迁移[' . $task['id'] . ']'; $message = '推广员迁移[' . $task['id'] . ']';
$result = $promoteService->shiftPromote($task);
if ($result['status']) {
$message = 'SUCCESS ----- ' . $message . $result['msg'];
} else {
$message = 'ERROR ----- ' . $message . $result['msg'];
}
Printer::export($message);
} elseif ($task['type'] == 2) { } elseif ($task['type'] == 2) {
$message = '玩家迁移[' . $task['id'] . ']'; $message = '玩家迁移[' . $task['id'] . ']';
$result = $promoteService->shiftPlayer($task); } else {
$message = '未知类型迁移[' . $task['id'] . ']';
}
$result = $promoteService->shift($task);
if ($result['status']) { if ($result['status']) {
$message = 'SUCCESS ----- ' . $message . $result['msg']; $message = 'SUCCESS ----- ' . $message . $result['msg'];
} else { } else {
@ -96,7 +92,6 @@ class ConsoleController extends Think {
Printer::export($message); Printer::export($message);
} }
} }
}
public function runTask($queue = 'common', $count = 10) public function runTask($queue = 'common', $count = 10)
{ {

@ -7,15 +7,6 @@ class ShiftTaskController extends Think {
public function test() public function test()
{ {
$list = M('ShiftTask')->where(['status' => 0])->select();
$service = new PromoteService();
foreach ($list as $task) {
if ($task['type'] == 1) {
$result = $this->shiftPromote($task);
} elseif ($task['type'] == 2) {
$result = $this->shiftPlayer($task);
}
}
} }
} }

@ -203,6 +203,7 @@ class PromoteService {
$secondMap['parent_id'] = ['in', $shiftIds]; $secondMap['parent_id'] = ['in', $shiftIds];
} }
try {
M('promote', 'tab_')->where($firstMap)->save([ M('promote', 'tab_')->where($firstMap)->save([
'parent_id' => $toPromote['id'], 'parent_id' => $toPromote['id'],
'parent_name' => $toPromote['account'], 'parent_name' => $toPromote['account'],
@ -215,14 +216,12 @@ class PromoteService {
'level' . $toPromote['level'] => $toPromote['id'] 'level' . $toPromote['level'] => $toPromote['id']
]); ]);
$status = M('ShiftTask')->where('id=' . $task['id'])->save(['status' => 1, 'handle_time' => time()]);
if (!$status) {
$model->rollback();
return ['status' => false, 'msg' => '系统异常,修改迁移任务状态失败'];
}
$model->commit(); $model->commit();
return ['status' => true, 'msg' => '推广帐号迁移成功']; return ['status' => true, 'msg' => '推广帐号迁移成功'];
} catch (\Exception $e) {
$model->rollback();
return ['status' => true, 'msg' => '推广帐号迁移失败: ' . $e->getMessage()];
}
} }
public function shiftRemoveCoin($promote, $task) public function shiftRemoveCoin($promote, $task)
@ -234,7 +233,7 @@ class PromoteService {
$topBalanceCoin = $this->getBalanceCoin($topPromote['id'], 0); $topBalanceCoin = $this->getBalanceCoin($topPromote['id'], 0);
$topBalancePlus = 0; $topBalancePlus = 0;
$map = ['chain' => $promote['chain'] . $chain['id'] . '/%']; $map = ['chain' => $promote['chain'] . $promote['id'] . '/%'];
if (count($shiftIds) > 0) { if (count($shiftIds) > 0) {
$map['id'] = ['in', $shiftIds]; $map['id'] = ['in', $shiftIds];
} }
@ -358,7 +357,6 @@ class PromoteService {
$formConpany = M('promote_company', 'tab_')->field(['company_name', 'company_belong'])->where(['id' => $fromPromote['company_id']])->find(); $formConpany = M('promote_company', 'tab_')->field(['company_name', 'company_belong'])->where(['id' => $fromPromote['company_id']])->find();
$toConpany = M('promote_company', 'tab_')->field(['company_name', 'company_belong'])->where(['id' => $toPromote['company_id']])->find(); $toConpany = M('promote_company', 'tab_')->field(['company_name', 'company_belong'])->where(['id' => $toPromote['company_id']])->find();
$belongs = PromoteCompanyService::$belongs; $belongs = PromoteCompanyService::$belongs;
$mends = []; $mends = [];
foreach ($users as $item) { foreach ($users as $item) {
$amount = isset($payAmountRows[$item['id']]) ? round(floatval($payAmountRows[$item['id']]['pay_amount']), 2) : 0; $amount = isset($payAmountRows[$item['id']]) ? round(floatval($payAmountRows[$item['id']]['pay_amount']), 2) : 0;
@ -435,12 +433,12 @@ class PromoteService {
return ['status' => false, 'msg' => '系统异常,修改用户推广员失败']; return ['status' => false, 'msg' => '系统异常,修改用户推广员失败'];
} }
try {
M('user_play', 'tab_')->where($otherMap)->save($updateData); M('user_play', 'tab_')->where($otherMap)->save($updateData);
M('user_play_info', 'tab_')->where($otherMap)->save($updateData); M('user_play_info', 'tab_')->where($otherMap)->save($updateData);
unset($spendMap['pay_status']); unset($spendMap['pay_status']);
$updateCheck = [];
if (count($hasGameIds) > 0) { if (count($hasGameIds) > 0) {
$spendMap['game_id'] = ['in', $hasGameIds]; $spendMap['game_id'] = ['in', $hasGameIds];
M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 1])); M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 1]));
@ -460,14 +458,37 @@ class PromoteService {
M('deposit', 'tab_')->where($orderMap)->save(array_merge($updateData, $updateMarket)); M('deposit', 'tab_')->where($orderMap)->save(array_merge($updateData, $updateMarket));
M('user_play_data_count', 'tab_')->where($orderMap)->save(['promote_id' => $toPromote['id']]); M('user_play_data_count', 'tab_')->where($orderMap)->save(['promote_id' => $toPromote['id']]);
$status = M('shift_task', 'sys_')->where('id=' . $task['id'])->save(['status' => 1, 'handle_time' => time()]); $model->commit();
if (!$status) { return ['status' => true, 'msg' => '玩家迁移成功'];
} catch (\Exception $e) {
$model->rollback(); $model->rollback();
return ['status' => false, 'msg' => '系统异常,修改迁移任务失败']; return ['status' => true, 'msg' => '系统异常: ' . $e->getMessage()];
}
} }
$model->commit(); public function afterShift($task, $result)
return ['status' => true, 'msg' => '玩家迁移成功']; {
$data = [];
if ($result['status']) {
$data = ['status' => 1, 'result' => $result['msg'], 'handle_time' => time()];
} else {
$data = ['status' => 2, 'result' => $result['msg'], 'handle_time' => time()];
}
M('shift_task', 'sys_')->where('id=' . $task['id'])->save($data);
}
public function shift($task)
{
$result = null;
if ($task['type'] == 1) {
$result = $this->shiftPromote($task);
} elseif ($task['type'] == 2) {
$result = $this->shiftPlayer($task);
} else {
$result = ['status' => false, 'msg' => '类型错误'];
}
$this->afterShift($task, $result);
return $result;
} }
public function cancelShift($params) public function cancelShift($params)

Loading…
Cancel
Save