以前のブログ投稿では、ユーザーモジュールのすべての機能を完了しているため、次のいくつかのブログ投稿では、分類管理機能モジュールを完了します。
まず、バックエンドの分類管理の機能ポイントを見てみましょう
バックエンドカテゴリ管理は実際には製品の管理であり、主にカテゴリの追加、カテゴリ名の更新、同じレベルでカテゴリノードの取得、カテゴリIDとサブノードカテゴリの取得に分割されています。
1。追加のカテゴリ関数の分類管理モジュール - 実装
最初にサービスレイヤーを見てみましょう
//カテゴリの追加public serverResponse addcategory(string categoryname、integer dantid){if(parentid == null || stringutils.isblank(categoryName)){return serverResponse.createByerrorMessage( "パラメーターエラー"); } category category = new Category(); category.setName(categoryName); category.setParentID(ParentID); category.setstatus(true); int rowcount = categorymapper.insert(category); if(rowcount> 0){return serverResponse.createBysuceEssmessage( "Category ressuly"); } return serverResponse.createbyerrormessage( "add category failed"); }カテゴリを追加するのは比較的簡単です。これは、以前の登録ロジックに少し似ています。まず、フロントエンドから送信されたカテゴリ名とderperidが存在するかどうかを確認します。存在しない場合、パラメーターエラーがプロンプトされます。それ以外の場合は、Javabeanインスタンスを使用してカテゴリを増やし続けます。同様に、Javabeanで追加した後、結果をデータベースに挿入します。返される有効な行の数が0を超えると、カテゴリが正常に追加されます。そうしないと、カテゴリが追加されます。
コントローラーレイヤーを見てみましょう
/ ** * Category-Addカテゴリの管理 * @param categoryName * @param parentid * @param Session * @return */ @requestmapping(value = "add_category.do")@responsebody public Response addcategory(string categoryname、 @requestparam(value = "defationbalue =" ") (user)session.getattribute(const.current_user); if(user == null){return serverResponse.createbyerrorCodemessage(ressonecode.need_login.getCode()、「ユーザーはログインしていない、ログインしてください」); } //管理者であるかどうかを確認します(iuserservice.checkadmin(user).issucs()){return icategoryservice.addcategory(categoryname、daredid); } else {return serverResponse.createByErrorMessage( "許可操作なし、管理者にログインしてください"); }}まず、リクエストマッピングの値の値を持つ別の場所があります。インターフェイス名は1つだけですが、インターフェイスリクエストの方法を指定しません。カテゴリ管理モジュールはWebサイト管理者によるバックグラウンド管理であり、バックグラウンドモジュールに属するためです。バックグラウンドモジュールの場合、会社の内部従業員によって使用されており、外の世界に開示する必要はないため、デフォルトのGETメソッドを使用して要求するだけです。
バックグラウンド関数管理の一般的なロジックは、最初にユーザーがログイン状態にあるかどうかを確認することです。ユーザーがログイン状態にある場合、現在ログインしているものがWebサイト管理者であるかどうかを確認します。管理者でない場合、関連する管理業務を実行する権利がありません。管理者の場合、バックグラウンド管理を実行できます。バックグラウンド関数管理のロジックでは、通常、メソッド処理結果をサービスレイヤーに直接返すだけで十分です。
上記の方法では、ユーザーのログインステータスを決定する必要があるため、ユーザーサービスを導入し、対応する方法を直接呼び出す必要があります。
2。更新カテゴリ名関数の分類管理モジュール - 実装
最初にサービスレイヤーを見てみましょう
//カテゴリ名public serverResponse upproshecategoryName(string categoryname、integer categoryid){if(categoryid == null || stringutils.isblank(categoryname)){return serverResponse.createByErrormessage( "カテゴリパラメーターの更新エラー"); } category category = new Category(); category.setID(categoryId); category.setName(categoryName); int rowcount = categorymapper.updatebyprimarykeyselective(category); if(rowcount> 0){return serverResponse.createBysuceEssmessage( "Category name ressuly"); } return serverResponse.createByErrorMessage( "更新カテゴリ名が失敗した"); }これは以前の処理ロジックとまったく同じであり、ここでは詳細については説明しません。
コントローラーレイヤーを見てみましょう
/ ** *カテゴリ - アップデートカテゴリ名を管理 * @param categoryname * @param categoryid * @param session * @return */ @requestmapping(value = "update_category_name")@responsebody public serverResponse upprospons upprospons updatecategoryName(string categoryName、integer categoryid、htttsessionセッション){ユーザー=ユーザー=ユーザー=ユーザー=ユーザー=ユーザー(user)session.getattribute(const.current_user); if(user == null){return serverResponse.createbyerrorCodemessage(ressonecode.need_login.getCode()、「ユーザーはログインしていない、ログインしてください」); } if(iuserservice.checkadmin(user).issuccess()){return icategoryservice.updatecategoryname(categoryname、categoryid); } else {return serverResponse.createByErrorMessage( "許可操作なし、管理者にログインしてください"); }}これは以前の処理ロジックとまったく同じであり、ここでは詳細については説明しません。
3.分類管理モジュール - 水平カテゴリノードを取得する機能の実装(バックエンド製品検索)
サービスレイヤー
//親レベルクエリカテゴリノードパブリックServerResponse <list <category >> getChildrenParalleCategory(integer categoryid){list <category> categorylist = categorymapper.selectcategorychildrenbyparentid(categoryid); if(collectutils.isempty(categorylist)){logger.info( "現在の分類のサブカテゴリは見つかりませんでした"); } return serverResponse.createbysuccess(categorylist); }一連の製品情報を処理する場合、多くの場合、収集方法を使用します。そのアプリケーションは、コレクションの種類によって異なります。ここでは、リストコレクションを使用しています。まず、そのリストコレクションは、横断操作と管理に便利であることを考慮してください。製品を管理するため、リストコレクションの一般的なタイプはカテゴリとして指定され、製品IDクエリはCategeCategoryChildrenByparentIDカテゴリマッパーのメソッドを介して実行されます。論理的な判断では、Javaにカプセル化されたCollectionTilsツールクラスを使用して、コレクションの戻り結果が空であるかどうかを判断します。空の場合は、ログの行を印刷します。そうしないと、カテゴリリストの実行の成功を返すことができます。ここのロガーは、カプセル化するログ印刷ツールです。その使用法について簡単に言及しましょう。
private org.slf4j.Logger logger = LoggerFactory.getLogger(CategoryServiceImpl.class);
このロガーは、SLF4Jパッケージを使用し、間違ったパッケージをエクスポートしないでください、そしてloggerFactory.getLogger(class)は、パラメーターを渡す必要があることに注意してください。パラメーターは、CategoryServiceImpl.classなどのログを現在印刷する必要があるクラスです。コンソールのログの印刷結果を見ることができます。
コントローラーレイヤー
/ ** *同じカテゴリのカテゴリ - ゲットノードを管理 * @param categoryid * @paramセッション * @return */ @requestmapping(value = "get_category.do")@responsebody public serverResponse getChildrenParallecategory(@requestparam(value = "categoryid"、defaultalue = "" 0 (user)session.getattribute(const.current_user); if(user == null){return serverResponse.createbyerrorCodemessage(ressonecode.need_login.getCode()、「ユーザーはログインしていない、ログインしてください」); } if(iuserservice.checkadmin(user).issuccess()){return icategoryservice.getchildrenparallecategory(categoryid); } else {return serverResponse.createByErrorMessage( "許可操作なし、管理者にログインしてください"); }}実際的な理由から、商品の量が0の場合、製品カテゴリを管理する必要はないため、requestParamに注釈が付けられたDefaultValue = "0"は、パラメーターのデフォルト値を指定するために使用されます。残りのロジックは、以前とまったく同じです。
4。分類管理モジュール - カテゴリIDおよびサブノード関数の実装を評価する
サービスレイヤーを見てください
public serverResponse <list <integer >> selectcategoryandchildrenbyid(integer categoryid){set <category> categoryset = sets.newhashset(); findChildCategory(CategoryID、categoryset); List <Integer> categoryIdlist = lists.newarrayList(); if(categoryid!= null){for(category categoryitem:categoryset){categoryidlist.add(categoryitem.getId()); }} return serverResponse.createBysuccess(categoryIdlist); } //子どものノードプライベートセットを計算する再帰アルゴリズム<Category> findChildCategory(integer categoryid、set <category> categoryset){category category = categorymapper.selectbyprimarykey(categoryid); if(category!= null){categoryset.add(category); } //子ノードリスト<category> categorylist = categorymapper.selectcategorychildrenbyparentid(categoryid); for(category categoryitem:categorylist){findChildCategory(categoryItem.getId()、categoryset); } return categoryset; }主な方法はSelectCategoryAndChildrenByIDであり、補助方法はFindChildCategoryであり、これにより子ノードが再帰的に計算されます。補助方法では、製品ID情報はCategoryIDを介して照会され、セットコレクションに追加され、製品の子ノードがForeachループを介して横断され、最後にカテゴリセットが返されます。主な方法では、補助方法が呼び出され、製品IDと子のノードが見つかり、製品IDと子ノードがリストコレクションに配置され、その後、希望する結果がforeachループを通じて通過し、最後にカテゴリインドリストが直接返されます。
コントローラーレイヤー
/ ** *カテゴリ-Get IDおよびChild Node Category * @Param CategoryID * @RETURN */ @REQUESTMAPPING(value = "get_deep_category.do")@responsebody public serverResponse getCategoryAndDeepChildRencategory(@RequestParam(@RequestParam(value = "Categoreid") session){user user =(user)session.getattribute(const.current_user); if(user == null){return serverResponse.createbyerrorCodemessage(ressonecode.need_login.getCode()、「ユーザーはログインしていない、ログインしてください」); } if(iuserservice.checkadmin(user).issuccess()){return icategoryservice.selectcategoryandchildrenbyid(categoryid); } else {return serverResponse.createByErrorMessage( "許可操作なし、管理者にログインしてください"); }}これは、カテゴリで同性ノードを取得するという以前の論理処理とまったく同じですので、ここでは詳細には触れません。
5。補足ユーザーモジュール
バックグラウンドカテゴリ管理モジュールでは、現在ログインしているユーザーが管理者であるかどうかを確認する方法が使用されます。これはユーザーモジュールで記述されています。以前に書くのを忘れていたので、ここでサプリメントを作ります。
ユーザーモジュールのサービスレイヤー
//ユーザーの背景 - 管理者パブリックServerResponse checkadmin(user user)であるかどうかを確認{if(user!= null && user.getrole()。 } return serverResponse.createByerror(); }管理者に関連しているため、サービスレイヤーで論理処理を実行するだけで、コントローラーで宣言する必要はありません。この方法は、ユーザーオブジェクトに渡され、カプセル化されたロールインターフェイスを介して許可判断を下します。返品値が管理者である場合、それは管理者と見なされ、直接返品します。そうしないと、失敗します。
これを書いて、背景のカテゴリ管理モジュールが終了しました。モジュールには機能的なインターフェイスが少ないため、ブログ投稿にすべてを書くのに長い時間がかかりました。
次のブログ投稿では、プロジェクトの進捗を引き続き促進し、バックエンド製品モジュールの開発をお届けします。誰もが進歩に追いつくことを願っています。
以前のブログ投稿で問題が発生した場合は、メッセージとフィードバックを残してください。問題を解決するために最善を尽くします。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。