国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java仿淘寶首頁分類列表功能的示例代碼

Java仿淘寶首頁分類列表功能的示例代碼

2021-04-27 11:54Steafan_ Java教程

這篇文章主要介紹了仿淘寶分類管理功能的示例代碼,具有很好的參考價值,希望對大家有所幫助,也給大家做個參考

在之前的博文中,我們已經完成了用戶模塊的所有的功能,那么在接下來的幾篇博文中,我們來完成分類管理功能模塊。

先來看一下后臺的分類管理都有哪些功能點

Java仿淘寶首頁分類列表功能的示例代碼

后臺品類管理其實就是對商品的一個管理,主要分為增加品類、更新品類名稱、獲取同級品類結點和獲取品類id及子節點品類

一、分類管理模塊-增加品類功能的實現

先來看service層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 添加品類
 public serverresponse addcategory(string categoryname, integer parentid){
  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("添加品類成功");
  }
  return serverresponse.createbyerrormessage("添加品類失敗");
 }

添加品類相對來說還是比較簡單的。和之前的注冊邏輯有點相似。首先校驗前端傳過來的categoryname和parentid是否存在,如果不存在則提示參數錯誤,否則就繼續使用javabean的實例來增加品類。同樣的,在用javabean增加完之后,將結果插入到數據庫中,如果返回的生效行數大于0,則添加品類成功,否則添加品類失敗。

再來看controller層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
  * 管理品類-增加品類
  * @param categoryname
  * @param parentid
  * @param session
  * @return
  */
 @requestmapping(value = "add_category.do")
 @responsebody
 public serverresponse addcategory(string categoryname, @requestparam(value = "parentid", defaultvalue = "0") int parentid, httpsession session) {
  user user = (user) session.getattribute(const.current_user);
  if (user == null) {
   return serverresponse.createbyerrorcodemessage(responsecode.need_login.getcode(), "用戶未登錄,請登錄");
  }
//  校驗是否是管理員
  if (iuserservice.checkadmin(user).issuccess()) {
   return icategoryservice.addcategory(categoryname, parentid);
  } else {
   return serverresponse.createbyerrormessage("無權限操作,請登錄管理員");
  }
 }

首先有一個不同的地方在與requestmapping的value值,只有一個接口名稱,而沒有規定接口請求的方法,是因為品類管理模塊是網站管理員進行后臺管理,屬于后臺模塊。針對于后臺模塊,其是公司內部員工使用,不需要對外界進行公開,所以使用默認的get方式請求就可以。

后臺功能管理的通用邏輯就是首先驗證用戶是否處于登錄狀態,如果用戶處于登錄狀態,再來驗證當前登錄的是不是網站管理員,如果不是管理員,則無權進行相關的管理操作,如果是管理員,就可以進行后臺的管理。在進行后臺功能管理的邏輯中,一般的直接返回在service層中方法處理結果就可以了。

  在上述方法中,需要判斷用戶的登錄狀態,所以需要引入用戶服務,然后直接調用相應的方法即可。

二、分類管理模塊-更新品類名稱功能的實現

先來看service層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 更新品類名稱
 public serverresponse updatecategoryname(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("更新品類名稱成功");
  }
  return serverresponse.createbyerrormessage("更新品類名稱失敗");
 }

和之前的處理邏輯完全一樣,這里不再一一贅述。

再來看controller層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
  * 管理品類-更新品類名稱
  * @param categoryname
  * @param categoryid
  * @param session
  * @return
  */
 @requestmapping(value = "update_category_name")
 @responsebody
 public serverresponse updatecategoryname(string categoryname, integer categoryid, httpsession session){
  user user = (user)session.getattribute(const.current_user);
  if(user == null){
   return serverresponse.createbyerrorcodemessage(responsecode.need_login.getcode(), "用戶未登錄,請登錄");
  }
  if(iuserservice.checkadmin(user).issuccess()){
   return icategoryservice.updatecategoryname(categoryname, categoryid);
  }else{
   return serverresponse.createbyerrormessage("無權限操作,請登錄管理員");
  }
 }

和之前的處理邏輯完全一樣,這里不再一一贅述。

三、分類管理模塊-獲取平級品類結點(后臺商品搜索)功能的實現

service層

?
1
2
3
4
5
6
7
8
// 平級查詢品類結點
 public serverresponse<list<category>> getchildrenparallecategory(integer categoryid){
  list<category> categorylist = categorymapper.selectcategorychildrenbyparentid(categoryid);
  if(collectionutils.isempty(categorylist)){
   logger.info("未找到當前分類的子分類");
  }
  return serverresponse.createbysuccess(categorylist);
 }

處理一組商品信息,往往使用集合的方式,根據集合不同種類,其適用長青也不一樣。這里,我用的是list集合,一是考慮到list集合方便遍歷操作,也方便管理。因為是管理商品,所以指定list集合的泛型為category,通過categorymapper的selectcategorychildrenbyparentid方法來進行商品id的查詢。在邏輯判斷上,使用java中封裝好的collectionutils工具類,來判斷集合的返回結果是否為空,如果為空就打印一行日志,否則將執行成功的categorylist結果返回即可。這里的logger是餓哦們自己封裝的日志打印工具類,關于他的用法,簡單提一下

private org.slf4j.logger logger = loggerfactory.getlogger(categoryserviceimpl.class);

注意,這個logger使用的是slf4j包下的,不要導錯包了,然后loggerfactory.getlogger(classs),需要傳遞一個參數,就是當前需要打印日志的類,例如這里的categoryserviceimpl.class。即可在控制臺看到日志的打印結果。

controller層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
  * 管理品類-獲取同級品類的結點
  * @param categoryid
  * @param session
  * @return
  */
 @requestmapping(value = "get_category.do")
 @responsebody
 public serverresponse getchildrenparallecategory(@requestparam(value = "categoryid", defaultvalue = "0") integer categoryid, httpsession session){
  user user = (user)session.getattribute(const.current_user);
  if(user == null){
   return serverresponse.createbyerrorcodemessage(responsecode.need_login.getcode(), "用戶未登錄,請登錄");
  }
  if(iuserservice.checkadmin(user).issuccess()){
   return icategoryservice.getchildrenparallecategory(categoryid);
  }else {
   return serverresponse.createbyerrormessage("無權限操作,請登錄管理員");
  }
 }

出于實際情況的考慮,當商品數量為0時,不需要對商品品類進行管理,所以使用requestparam注解的defaultvalue="0"來規定一個參數的默認值。其余的邏輯處理和之前的完全一樣。

四、分類管理模塊-獲取品類id及子結點功能的實現

看service層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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);
 }
 
// 遞歸算法,算出子節點
 private set<category> findchildcategory(integer categoryid, set<category> categoryset){
  category category = categorymapper.selectbyprimarykey(categoryid);
  if(category != null){
   categoryset.add(category);
  }
//  查找子節點
  list<category> categorylist = categorymapper.selectcategorychildrenbyparentid(categoryid);
  for(category categoryitem : categorylist){
   findchildcategory(categoryitem.getid(), categoryset);
  }
  return categoryset;
 }

主方法是selectcategoryandchildrenbyid,輔助方法為findchildcategory,通過遞歸算出子節點。在輔助方法中,通過categoryid來查詢出商品的id信息,并且加入到set集合中,再通過foreach循環來遍歷出商品的子節點,最后返回categoryset。在主方法中通過調用輔助方法,將商品的id及子節點全部查出,然后放到list集合中,再通過foreach循環遍歷出我們想要的結果,最后直接返回categoryidlist即可。

controller層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
  * 管理品類-獲取id及子節點品類
  * @param categoryid
  * @param session
  * @return
  */
 @requestmapping(value = "get_deep_category.do")
 @responsebody
 public serverresponse getcategoryanddeepchildrencategory(@requestparam(value = "categoryid", defaultvalue = "0") integer categoryid, httpsession session){
  user user = (user)session.getattribute(const.current_user);
  if(user == null){
   return serverresponse.createbyerrorcodemessage(responsecode.need_login.getcode(), "用戶未登錄,請登錄");
  }
  if(iuserservice.checkadmin(user).issuccess()){
   return icategoryservice.selectcategoryandchildrenbyid(categoryid);
  }else{
   return serverresponse.createbyerrormessage("無權限操作,請登錄管理員");
  }
 }

和之前的獲取品類同級結點的邏輯處理完全一樣,這里就不一一贅述了。

五、補充用戶模塊

在后臺品類管理模塊中,用到了校驗當前登錄的用戶是否是管理員的方法,這個是在用戶模塊中寫到的,之前我忘記寫了,所以,在這里做一個補充。

用戶模塊的service層

?
1
2
3
4
5
6
7
// 用戶后臺-校驗是否是管理員
 public serverresponse checkadmin(user user){
  if(user != null && user.getrole().intvalue() == const.role.role_admin){
   return serverresponse.createbysuccess();
  }
  return serverresponse.createbyerror();
 }

因為是管理員相關,所以只需要在service層中進行邏輯處理,不需要再在controller中聲明。該方法傳入一個user對象,通過封裝好的role接口進行權限判定,如果返回值為admin,則視為管理員,直接返回成功,否則返回失敗。

寫到這里,后臺的品類管理模塊就寫完了。因為該模塊的功能接口比較少,所以用了較長的篇幅全部寫在一篇博文中,這樣也方便大家一次性就學完后臺的品類管理模塊。

在接下來的博文中,繼續推進項目進度,將為大家帶來后臺商品模塊的開發,希望大家跟上進度。

如果在之前的博文中你遇到了什么問題,歡迎留言反饋,我會盡可能為大家解決問題。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_36314960/article/details/79314608

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲精品久久久久久久蜜桃 | 99热最新网站 | 国产人成在线观看 | 国产高清免费 | 99视频在线免费观看 | 操网| 亚洲精品久久久久一区二区三区 | 欧美综合一区 | 亚洲精品一区二区三区 | 天天操天天碰 | 伊人网站| av中文字幕在线观看 | 午夜天堂精品久久久久 | 91麻豆蜜桃一区二区三区 | 亚洲精品永久视频 | 欧美亚洲综合另类 | 一区二区三区在线播放 | 色就是色欧美 | 狠狠色噜噜| 国产精品一区不卡 | 亚洲日韩中文字幕一区 | 一级在线看 | 日韩精品视频久久 | 色在线视频观看 | 亚洲成人久久久 | 91亚洲精品在线 | 中文区永久区 | 欧美久久久久久久久久 | 狠狠久 | 亚洲深深色噜噜狠狠网站 | 亚洲成人久久久 | 欧美视频精品在线 | 日韩一区电影 | 成人中文字幕在线观看 | 亚洲蜜桃精久久久久久久 | 亚洲人成网亚洲欧洲无码 | 久久九九国产精品 | 毛片免费电影 | 日韩电影一区 | 国产美女精品人人做人人爽 | 青草免费视频 |