addArgument('name', InputArgument::OPTIONAL, '余额账户转福利账户'); } protected function execute(InputInterface $input, OutputInterface $output): int { $members = Member::select('member_id', 'member_classify')->get()->toArray(); foreach ($members as $member) { if (!MemberAccount::where('join_account_member_id', $member['member_id'])->where('member_account_classify', 'WELFARE')->exists()) { if (!$this->generateWelfareAccount($member['member_id'])) { echo "会员【" . $member['member_id'] . "】跳过\n"; continue; } } if ($member['member_classify'] != 'EMPLOY') { Member::where('member_id', $member['member_id'])->update(['member_classify' => 'EMPLOY']); } // 改所有的充值记录 PayDetail::where('join_pay_member_id', $member['member_id'])->where('pay_category', 'RECHARGE')->where('pay_amount','1000.00')->update(['pay_prepayid' => $member['member_id'] . '-WELFARE']); // 改所有的付款记录 PayDetail::where('join_pay_member_id', $member['member_id'])->where('pay_prepayid', $member['member_id'] . '-CASH')->update(['pay_prepayid' => $member['member_id'] . '-WELFARE']); // 余额账户清空 MemberAccount::where('join_account_member_id', $member['member_id'])->where('member_account_classify', 'CASH')->update([ 'member_account_income' => 0, 'member_account_expend' => 0, 'member_account_surplus' => 0, 'member_account_added' => 0, ]); echo "会员【" . $member['member_id'] . "】已处理完成\n"; } return self::SUCCESS; } private function generateWelfareAccount($memberId) { $cashAccount = MemberAccount::where('join_account_member_id', $memberId)->where('member_account_classify', 'CASH')->first(); if (!$cashAccount) { return false; } MemberAccount::insert([ 'join_account_member_id' => $memberId, 'member_account_classify' => 'WELFARE', 'member_account_status' => 'ACTIVED', 'member_account_category' => 'NORMAL', 'member_account_nbr' => $memberId . '-WELFARE', 'member_account_name' => '福利账户', 'member_account_income' => $cashAccount->member_account_income, 'member_account_expend' => $cashAccount->member_account_expend, 'member_account_surplus' => $cashAccount->member_account_surplus, 'member_account_added' => $cashAccount->member_account_added, 'member_account_addtimes' => time() ]); return true; } }