From bfa0c5c5b85f91d5e809748c1e4b9d0a8fe5260f Mon Sep 17 00:00:00 2001 From: ELF <360197197@qq.com> Date: Mon, 19 Apr 2021 17:34:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/ConsoleController.class.php | 23 ++-- .../Controller/ShiftTaskController.class.php | 11 +- .../Base/Service/PromoteService.class.php | 109 +++++++++++------- 3 files changed, 75 insertions(+), 68 deletions(-) diff --git a/Application/Admin/Controller/ConsoleController.class.php b/Application/Admin/Controller/ConsoleController.class.php index c36acb21f..da1080c87 100644 --- a/Application/Admin/Controller/ConsoleController.class.php +++ b/Application/Admin/Controller/ConsoleController.class.php @@ -78,23 +78,18 @@ class ConsoleController extends Think { foreach ($tasks as $task) { if ($task['type'] == 1) { $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) { $message = '玩家迁移[' . $task['id'] . ']'; - $result = $promoteService->shiftPlayer($task); - if ($result['status']) { - $message = 'SUCCESS ----- ' . $message . $result['msg']; - } else { - $message = 'ERROR ----- ' . $message . $result['msg']; - } - Printer::export($message); + } else { + $message = '未知类型迁移[' . $task['id'] . ']'; + } + $result = $promoteService->shift($task); + if ($result['status']) { + $message = 'SUCCESS ----- ' . $message . $result['msg']; + } else { + $message = 'ERROR ----- ' . $message . $result['msg']; } + Printer::export($message); } } diff --git a/Application/Admin/Controller/ShiftTaskController.class.php b/Application/Admin/Controller/ShiftTaskController.class.php index d203aa3ad..c5fbd03d8 100644 --- a/Application/Admin/Controller/ShiftTaskController.class.php +++ b/Application/Admin/Controller/ShiftTaskController.class.php @@ -7,15 +7,6 @@ class ShiftTaskController extends Think { 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); - } - } + } } \ No newline at end of file diff --git a/Application/Base/Service/PromoteService.class.php b/Application/Base/Service/PromoteService.class.php index bb7413388..885fd2019 100644 --- a/Application/Base/Service/PromoteService.class.php +++ b/Application/Base/Service/PromoteService.class.php @@ -203,26 +203,25 @@ class PromoteService { $secondMap['parent_id'] = ['in', $shiftIds]; } - M('promote', 'tab_')->where($firstMap)->save([ - 'parent_id' => $toPromote['id'], - 'parent_name' => $toPromote['account'], - 'chain' => $toPromote['chain'] . $toPromote['id'] . '/', - 'level' . $toPromote['level'] => $toPromote['id'] - ]); + try { + M('promote', 'tab_')->where($firstMap)->save([ + 'parent_id' => $toPromote['id'], + 'parent_name' => $toPromote['account'], + 'chain' => $toPromote['chain'] . $toPromote['id'] . '/', + 'level' . $toPromote['level'] => $toPromote['id'] + ]); - M('promote', 'tab_')->where($secondMap)->save([ - 'chain' => ['exp', 'REPLACE(chain, "/' . $fromPromote['id'] . '/","/' . $toPromote['id'] . '/")'], - 'level' . $toPromote['level'] => $toPromote['id'] - ]); + M('promote', 'tab_')->where($secondMap)->save([ + 'chain' => ['exp', 'REPLACE(chain, "/' . $fromPromote['id'] . '/","/' . $toPromote['id'] . '/")'], + 'level' . $toPromote['level'] => $toPromote['id'] + ]); - $status = M('ShiftTask')->where('id=' . $task['id'])->save(['status' => 1, 'handle_time' => time()]); - if (!$status) { + $model->commit(); + return ['status' => true, 'msg' => '推广帐号迁移成功']; + } catch (\Exception $e) { $model->rollback(); - return ['status' => false, 'msg' => '系统异常,修改迁移任务状态失败']; + return ['status' => true, 'msg' => '推广帐号迁移失败: ' . $e->getMessage()]; } - - $model->commit(); - return ['status' => true, 'msg' => '推广帐号迁移成功']; } public function shiftRemoveCoin($promote, $task) @@ -234,7 +233,7 @@ class PromoteService { $topBalanceCoin = $this->getBalanceCoin($topPromote['id'], 0); $topBalancePlus = 0; - $map = ['chain' => $promote['chain'] . $chain['id'] . '/%']; + $map = ['chain' => $promote['chain'] . $promote['id'] . '/%']; if (count($shiftIds) > 0) { $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(); $toConpany = M('promote_company', 'tab_')->field(['company_name', 'company_belong'])->where(['id' => $toPromote['company_id']])->find(); $belongs = PromoteCompanyService::$belongs; - $mends = []; foreach ($users as $item) { $amount = isset($payAmountRows[$item['id']]) ? round(floatval($payAmountRows[$item['id']]['pay_amount']), 2) : 0; @@ -404,7 +402,7 @@ class PromoteService { $model = new Model(); $model->startTrans(); - + $status = M('mend', 'tab_')->addAll($mends); if (!$status) { $model->rollback(); @@ -435,39 +433,62 @@ class PromoteService { return ['status' => false, 'msg' => '系统异常,修改用户推广员失败']; } - M('user_play', 'tab_')->where($otherMap)->save($updateData); - M('user_play_info', 'tab_')->where($otherMap)->save($updateData); - - unset($spendMap['pay_status']); + try { + M('user_play', 'tab_')->where($otherMap)->save($updateData); + M('user_play_info', 'tab_')->where($otherMap)->save($updateData); + + unset($spendMap['pay_status']); - $updateCheck = []; - if (count($hasGameIds) > 0) { - $spendMap['game_id'] = ['in', $hasGameIds]; - M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 1])); - } + if (count($hasGameIds) > 0) { + $spendMap['game_id'] = ['in', $hasGameIds]; + M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 1])); + } - if (count($hasNotGameIds) > 0) { - $spendMap['game_id'] = ['in', $hasNotGameIds]; - M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 2])); - } + if (count($hasNotGameIds) > 0) { + $spendMap['game_id'] = ['in', $hasNotGameIds]; + M('spend', 'tab_')->where($spendMap)->save(array_merge($updateData, $updateMarket, ['is_check' => 2])); + } - $bindMap = $otherMap; - $bindMap['pay_time'] = ['egt', $orderTime]; - M('bind_spend', 'tab_')->where($bindMap)->save($updateData); + $bindMap = $otherMap; + $bindMap['pay_time'] = ['egt', $orderTime]; + M('bind_spend', 'tab_')->where($bindMap)->save($updateData); - $orderMap = $otherMap; - $orderMap['create_time'] = ['egt', $orderTime]; - M('deposit', 'tab_')->where($orderMap)->save(array_merge($updateData, $updateMarket)); - M('user_play_data_count', 'tab_')->where($orderMap)->save(['promote_id' => $toPromote['id']]); + $orderMap = $otherMap; + $orderMap['create_time'] = ['egt', $orderTime]; + M('deposit', 'tab_')->where($orderMap)->save(array_merge($updateData, $updateMarket)); + 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()]); - if (!$status) { + $model->commit(); + return ['status' => true, 'msg' => '玩家迁移成功']; + } catch (\Exception $e) { $model->rollback(); - return ['status' => false, 'msg' => '系统异常,修改迁移任务失败']; + return ['status' => true, 'msg' => '系统异常: ' . $e->getMessage()]; } + } - $model->commit(); - return ['status' => true, 'msg' => '玩家迁移成功']; + public function afterShift($task, $result) + { + $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)