WelfareAccountCommand.php 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace app\command;
  3. use app\model\Member;
  4. use app\model\MemberAccount;
  5. use app\model\PayDetail;
  6. use Symfony\Component\Console\Command\Command;
  7. use Symfony\Component\Console\Input\InputArgument;
  8. use Symfony\Component\Console\Input\InputInterface;
  9. use Symfony\Component\Console\Output\OutputInterface;
  10. class WelfareAccountCommand extends Command
  11. {
  12. protected static $defaultName = 'WelfareAccountCommand';
  13. protected static $defaultDescription = 'WelfareAccountCommand';
  14. /**
  15. * @return void
  16. */
  17. protected function configure()
  18. {
  19. $this->addArgument('name', InputArgument::OPTIONAL, '余额账户转福利账户');
  20. }
  21. protected function execute(InputInterface $input, OutputInterface $output): int
  22. {
  23. $members = Member::select('member_id', 'member_classify')->get()->toArray();
  24. foreach ($members as $member) {
  25. if (!MemberAccount::where('join_account_member_id', $member['member_id'])->where('member_account_classify', 'WELFARE')->exists()) {
  26. if (!$this->generateWelfareAccount($member['member_id'])) {
  27. echo "会员【" . $member['member_id'] . "】跳过\n";
  28. continue;
  29. }
  30. }
  31. if ($member['member_classify'] != 'EMPLOY') {
  32. Member::where('member_id', $member['member_id'])->update(['member_classify' => 'EMPLOY']);
  33. }
  34. // 改所有的充值记录
  35. PayDetail::where('join_pay_member_id', $member['member_id'])->where('pay_category', 'RECHARGE')->update(['pay_prepayid' => 'WELFARE']);
  36. // 改所有的付款记录
  37. PayDetail::where('join_pay_member_id', $member['member_id'])->where('pay_prepayid', $member['member_id'] . '-CASH')->update(['pay_prepayid' => $member['member_id'] . '-WELFARE']);
  38. // 余额账户清空
  39. MemberAccount::where('join_account_member_id', $member['member_id'])->where('member_account_classify', 'CASH')->update([
  40. 'member_account_income' => 0,
  41. 'member_account_expend' => 0,
  42. 'member_account_surplus' => 0,
  43. 'member_account_added' => 0,
  44. ]);
  45. echo "会员【" . $member['member_id'] . "】已处理完成\n";
  46. }
  47. return self::SUCCESS;
  48. }
  49. private function generateWelfareAccount($memberId)
  50. {
  51. $cashAccount = MemberAccount::where('join_account_member_id', $memberId)->where('member_account_classify', 'CASH')->first();
  52. if (!$cashAccount) {
  53. return false;
  54. }
  55. MemberAccount::insert([
  56. 'join_account_member_id' => $memberId,
  57. 'member_account_classify' => 'WELFARE',
  58. 'member_account_status' => 'ACTIVED',
  59. 'member_account_category' => 'NORMAL',
  60. 'member_account_nbr' => $memberId . '-WELFARE',
  61. 'member_account_name' => '福利账户',
  62. 'member_account_income' => $cashAccount->member_account_income,
  63. 'member_account_expend' => $cashAccount->member_account_expend,
  64. 'member_account_surplus' => $cashAccount->member_account_surplus,
  65. 'member_account_added' => $cashAccount->member_account_added,
  66. 'member_account_addtimes' => time()
  67. ]);
  68. return true;
  69. }
  70. }