Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/#4716 管理者ページ-受注一覧における検索条件の修正 #4766

Merged
merged 6 commits into from
Nov 17, 2020

Conversation

morry48
Copy link
Contributor

@morry48 morry48 commented Nov 7, 2020

概要(Overview・Refs Issue)

#4716

方針(Policy)

注文者名(カナ)については記載がありませんでしたが、利便性を考えると「カナ」の場合もフルネームで検索できる方がいいと思いますので、こちらも対応しております。

実装に関する補足(Appendix)

特にありません。

テスト(Test)

#4716 (comment)
・上記不可の項目が検索可能となること
・カナ入力においてもフルネームで検索可能であること
・既存機能の注文番号・お名前・会社名・メールアドレス・電話番号で検索可能なこと(デグレを起こしていないこと)

相談(Discussion)

受注一覧-詳細検索-注文者名(カナ)においてスペースを入れて検索しようとすると、
ec-cube/src/Eccube/Form/Type/Admin/SearchOrderTypeでスペースを含めていないため、不正入力扱いになります。
仕様的にOKでしょうか。(スペースも入力可能とする必要はないでしょうか)
ちなみに(注文番号・お名前・会社名・メールアドレス・電話番号)の方で検索すると「ヤマダ タロウ」のようにスペースを含めたカナ検索は可能となっています。

マイナーバージョン互換性保持のための制限事項チェックリスト

  • 既存機能の仕様変更
  • フックポイントの呼び出しタイミングの変更
  • フックポイントのパラメータの削除・データ型の変更
  • twigファイルに渡しているパラメータの削除・データ型の変更
  • Serviceクラスの公開関数の、引数の削除・データ型の変更
  • 入出力ファイル(CSVなど)のフォーマット変更

レビュワー確認項目

  • 動作確認
  • コードレビュー
  • E2E/Unit テスト確認(テストの追加・変更が必要かどうか)
  • 互換性が保持されているか
  • セキュリティ上の問題がないか

@morry48 morry48 changed the title Feature/#4716 fix adminpage order search Feature/#4716 管理者ページ-受注一覧における検索条件の修正 Nov 8, 2020
@morry48
Copy link
Contributor Author

morry48 commented Nov 8, 2020

unitテストが落ちており確認しましたところ
Eccube\Tests\Web\Admin\Order\OrderControllerTest::testSearchOrderByName
で検索結果に差異が出ております。

テストの記述に問題があるのではないかと思いましてご相談です。

端的に言うと
$this->expected は「完全一致」
$this->actualは「like検索」
となっているため、
仮にテスト対象が「太郎商事」とした場合で、
「山田太郎商事」という会社名がdtb_orderのレコードに存在する際に、テスト結果に差異が出てしまうのではないかという点です。

①実行しているテストの内容としては必ず1個以上データベースに存在する$companyNameを定義し、
dtb_orderテーブルのcompany_nameカラムと一致(完全一致)しているものを検索し、$OrderListのレコード数を出す。
②クライアントから、「multi(注文番号・お名前・会社名・メールアドレス・電話番号)」に①で定義した$companyNameが入力された状態で検索を実行しその結果を出す。

今回のテストのDetailsはexpectedの方が数が多くなっているため、自動テストが落ちている原因は別かもしれないのですが、ご確認いただけますと幸甚でございます。

@okazy okazy added the improvement 機能改善 label Nov 9, 2020
@okazy okazy added this to the 4.0.x milestone Nov 9, 2020
Copy link
Contributor

@okazy okazy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@morry48
プルリクありがとうございます。
変更内容みて一点コメントしました。
テストが落ちている原因はまだ見れていません。

'o.order_no LIKE :likemulti OR o.email LIKE :likemulti OR o.phone_number LIKE :likemulti')
->setParameter('multi', $multi)
->setParameter('likemulti', '%'.$searchData['multi'].'%');
->setParameter('order_id', $id)
Copy link
Contributor

@okazy okazy Nov 9, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

より正確でわかりやすい key に変えていただいてわかりやすくなったと思いますが、カスタマイズされて使われている可能性もありますので、マイナーバージョンではkeyは変更しない方がいい以下と思いました。
order_id -> multi

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

なるほど!
注文者の実装を参考にしたのですが、プラグインへの影響まで考慮できていませんでした。

修正のコミット追加しておりますので、ご確認のほど、よろしくおねがいします。

@okazy
Copy link
Contributor

okazy commented Nov 12, 2020

@morry48
ご対応ありがとうございます!

テストが落ちていた原因がわかりました。
会社名はスペースの入力ができます。
例えば「株式会社 ほげほげ」という会社名だった場合に、前処理でスペースが除去され、「株式会社ほげほげ」で検索されてしまっていたため、検索結果がヒットしなくなっていました。

受注のマルチ検索で、会社名はスペースを除去せず検索できるよう修正してプルリクを出しましたのでご確認とマージをお願いできますでしょうか。

またOrderRepositoryの名前の検索に関するテストがなかったので新規追加しておきました。

morry48#1

…arch

受注のマルチ検索で、会社名はスペースを除去せず検索
@morry48
Copy link
Contributor Author

morry48 commented Nov 14, 2020

会社名はスペース有りなんですね。仕様を考慮できていませんでした。

アプルーブしてマージにましたので、ご確認のほど宜しくおねがいします。

Copy link
Contributor

@okazy okazy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます!

会社名のスペースありは私も把握していない仕様でした。
勉強になりました。

修正内容、テスト、動作共に問題ありません。

@okazy okazy modified the milestones: 4.0.x, 4.0.6 Nov 16, 2020
@okazy okazy merged commit 7738e30 into EC-CUBE:4.0 Nov 17, 2020
@okazy
Copy link
Contributor

okazy commented Nov 17, 2020

@morry48
ありがとうございます!取り込みました 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants