1 | <?php |
||
35 | class WithdrawController extends AbstractController |
||
|
|||
36 | { |
||
37 | /** |
||
38 | * 退会画面. |
||
39 | * |
||
40 | * @param Application $app |
||
41 | * @param Request $request |
||
42 | * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response |
||
43 | */ |
||
44 | 6 | public function index(Application $app, Request $request) |
|
45 | { |
||
46 | 6 | $builder = $app->form(); |
|
47 | |||
48 | 6 | $event = new EventArgs( |
|
49 | array( |
||
50 | 6 | 'builder' => $builder, |
|
51 | ), |
||
52 | $request |
||
53 | ); |
||
54 | 6 | $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_MYPAGE_WITHDRAW_INDEX_INITIALIZE, $event); |
|
55 | |||
56 | 6 | $form = $builder->getForm(); |
|
57 | |||
58 | 6 | $form->handleRequest($request); |
|
59 | |||
60 | 6 | if ($form->isSubmitted() && $form->isValid()) { |
|
61 | 4 | switch ($request->get('mode')) { |
|
62 | 4 | case 'confirm': |
|
63 | 2 | log_info('退会確認画面表示'); |
|
64 | |||
65 | 2 | return $app->render('Mypage/withdraw_confirm.twig', array( |
|
66 | 2 | 'form' => $form->createView(), |
|
67 | )); |
||
68 | |||
69 | 2 | case 'complete': |
|
70 | 2 | log_info('退会処理開始'); |
|
71 | |||
72 | /* @var $Customer \Eccube\Entity\Customer */ |
||
73 | 2 | $Customer = $app->user(); |
|
74 | |||
75 | // 会員削除 |
||
76 | 2 | $email = $Customer->getEmail(); |
|
77 | // メールアドレスにダミーをセット |
||
78 | 2 | $Customer->setEmail(Str::random(60) . '@dummy.dummy'); |
|
79 | 2 | $Customer->setDelFlg(Constant::ENABLED); |
|
80 | |||
81 | 2 | $app['orm.em']->flush(); |
|
82 | |||
83 | 2 | log_info('退会処理完了'); |
|
84 | |||
85 | 2 | $event = new EventArgs( |
|
86 | array( |
||
87 | 2 | 'form' => $form, |
|
88 | 2 | 'Customer' => $Customer, |
|
89 | ), $request |
||
90 | ); |
||
91 | 2 | $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_MYPAGE_WITHDRAW_INDEX_COMPLETE, $event); |
|
92 | |||
93 | // メール送信 |
||
94 | 2 | $app['eccube.service.mail']->sendCustomerWithdrawMail($Customer, $email); |
|
95 | |||
96 | // ログアウト |
||
97 | 2 | $this->getSecurity($app)->setToken(null); |
|
98 | |||
99 | 2 | log_info('ログアウト完了'); |
|
100 | |||
101 | 2 | return $app->redirect($app->url('mypage_withdraw_complete')); |
|
102 | } |
||
103 | } |
||
104 | |||
105 | 2 | return $app->render('Mypage/withdraw.twig', array( |
|
106 | 2 | 'form' => $form->createView(), |
|
107 | )); |
||
108 | } |
||
109 | |||
110 | /** |
||
111 | * 退会完了画面. |
||
112 | * |
||
113 | * @param Application $app |
||
114 | * @param Request $request |
||
115 | * @return \Symfony\Component\HttpFoundation\Response |
||
116 | */ |
||
117 | 1 | public function complete(Application $app, Request $request) |
|
121 | } |
||
122 |