🍅 作者主頁:Java李楊勇
🍅 簡介:Java領域優質創作者🏆、【java李楊勇】公號作者? 簡歷模板、學習資料、面試題庫【關注我,都給你】
🍅文末獲取原始碼聯系🍅
功能設計和技術:
普通用戶:登錄注冊、首頁作業系統教學資訊瀏覽、作業系統教學分類查看、作業系統教學詳情查看、用戶評論交流、回復討論、收藏模塊、收藏模塊、瀏覽量統計、關注用戶、我的個人中心、我的關注、我的收藏等
管理員: 登錄和注冊用戶統計、分類文章統計、教學分類管理、文章資訊分類管理、評論管理、回復管理、用戶管理、個人資訊管理、退出等,
主要技術:Java、springmvc、mybatis、mysql、tomcat、jquery、layui、bootstarp、JavaScript、html、css、jsp、log4j等一些常見的基本技術,
>" data-link-title="完整專案視頻演示地址>>">完整專案視頻演示地址>>
主要功能截圖:
用戶登錄注冊:
系統平臺首頁:


分類查看資訊:
資料文章查看: 用戶可以收藏和查看作者資訊

評論回復交流: 對文章進行評論回復交流等

收藏模塊:

個人資料模塊:

后臺管理模塊:

發布型別管理:

發布詳情管理:

評論回復管理:

用戶資訊管理:
個人中心管理:

主要代碼類實作:
/**
* 用戶控制器
* @author lyy
*
*/
@RestController
@RequestMapping("/admin/user")
public class UserAdminController {
@Resource
private UserService userService;
@Value("${MD5Salt}")
private String salt; // md5加密鹽
/**
* 根據ID查找用戶
* @param userId
* @return
*/
@RequestMapping("/findById")
public Map<String, Object> findById(Integer userId) {
Map<String, Object> resultMap = new HashMap<String, Object>();
User user = userService.findById(userId);
resultMap.put("errorNo", 0);
resultMap.put("data", user);
return resultMap;
}
/**
* 分頁查詢用戶
* @param user
* @param page
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(User user,
@RequestParam(value = "latelyLoginTimes", required = false) String latelyLoginTimes,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
String s_bregistrationDate = null; // 開始時間
String s_eregistrationDate = null; // 結束時間
if (StringUtil.isNotEmpty(latelyLoginTimes)) {
String[] strs = latelyLoginTimes.split(" - "); // 拆分時間段
s_bregistrationDate = strs[0];
s_eregistrationDate = strs[1];
}
List<User> userList = userService.list(user, s_bregistrationDate, s_eregistrationDate, page - 1, pageSize);
Long total = userService.getCount(user, s_bregistrationDate, s_eregistrationDate);
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", userList);
resultMap.put("total", total);
return resultMap;
}
/**
* 取消關注
* @param request
* @param userId
* @return
*/
@RequestMapping("/removeFocusUser")
public ModelAndView removeFocusUser(HttpServletRequest request, String userId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 當前登錄用戶
String userIds = user.getUserIds();
List<String> tempList = Arrays.asList(userIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.remove(userId);
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
/**
* 關注用戶
* @param request
* @param userId
* @return
*/
@RequestMapping("/addFocusUser")
public ModelAndView addFocusUser(HttpServletRequest request, String userId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 當前登錄用戶
String userIds = user.getUserIds();
List<String> tempList = Arrays.asList(userIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId);
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
@RequestMapping("/addFocusUser/{userId}")
public ModelAndView addFocusUser(@PathVariable(value = "userId", required = false) Integer userId,
HttpSession session) {
ModelAndView mav = new ModelAndView();
User user = (User) session.getAttribute("user");// 當前登錄用戶
String userIds = user.getUserIds();
List<String> tempList = new ArrayList<>();
if (userIds != null) {
tempList = Arrays.asList(userIds.split(","));
}
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId.toString());
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
/**
* 取消收藏
* @param request
* @return
*/
@RequestMapping("/removeCollection")
public ModelAndView removeCollection(HttpServletRequest request, String artId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 當前登錄用戶
String artIds = user.getArticleIds();
List<String> tempList = Arrays.asList(artIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.remove(artId);
String ret = StringUtils.join(lineIdList, ",");
user.setArticleIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewCollection");
return mav;
}
/**
* 收藏
* @param request
* @return
*/
@RequestMapping("/addCollection")
public ModelAndView addCollection(HttpServletRequest request, String artId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 當前登錄用戶
// String artIds = user.getArticleIds();
// List<String> tempList= Arrays.asList(artIds.split(","));
// List<String> lineIdList = new ArrayList<>(tempList);
// lineIdList.add(artId);
// String ret = StringUtils.join(lineIdList, ",");
user.setArticleIds(artId);
userService.save(user);
mav.setViewName("redirect:/viewCollection");
return mav;
}
@RequestMapping("/delete")
public Map<String, Object> delete(Integer userId) {
Map<String, Object> resultMap = new HashMap<String, Object>();
userService.delete(userId);
resultMap.put("errorNo", 0);
return resultMap;
}
主要資料庫設計:
資料庫名:teachingwebsite
檔案版本:V1.0.0
檔案描述:資料庫表設計描述
表t_admin
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | admin_id | int | 10 | 0 | N | Y |
| 2 | head_portrait | varchar | 200 | 0 | Y | N |
| 3 | password | varchar | 200 | 0 | Y | N |
| 4 | phone | varchar | 200 | 0 | Y | N |
| 5 | sex | varchar | 50 | 0 | Y | N |
| 6 | signature | varchar | 500 | 0 | Y | N |
| 7 | true_name | varchar | 200 | 0 | Y | N |
| 8 | user_name | varchar | 200 | 0 | Y | N |
表t_article
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | article_id | int | 10 | 0 | N | Y |
| 2 | author | varchar | 200 | 0 | N | N |
| 3 | click | int | 10 | 0 | Y | N |
| 4 | comment_num | int | 10 | 0 | Y | N |
| 5 | content | text | 65535 | 0 | Y | N |
| 6 | image_name | varchar | 255 | 0 | Y | N |
| 7 | is_original | int | 10 | 0 | Y | N |
| 8 | is_top | int | 10 | 0 | Y | N |
| 9 | publish_date | datetime | 19 | 0 | Y | N |
| 10 | title | varchar | 200 | 0 | N | N |
| 11 | classify_id | int | 10 | 0 | Y | N |
| 12 | user_id | int | 10 | 0 | Y | N |
表t_blogger
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | blogger_id | int | 10 | 0 | N | Y |
| 2 | head_portrait | varchar | 200 | 0 | Y | N |
| 3 | motto | varchar | 500 | 0 | Y | N |
| 4 | nick_name | varchar | 200 | 0 | Y | N |
| 5 | site | varchar | 200 | 0 | Y | N |
| 6 | signature | varchar | 500 | 0 | Y | N |
表t_classify
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | classify_id | int | 10 | 0 | N | Y |
| 2 | classify_name | varchar | 200 | 0 | N | N |
表t_comment
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | comment_id | int | 10 | 0 | N | Y |
| 2 | comment_date | datetime | 19 | 0 | Y | N |
| 3 | content | varchar | 500 | 0 | Y | N |
| 4 | article_id | int | 10 | 0 | Y | N |
| 5 | user_id | int | 10 | 0 | Y | N |
表t_link
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | link_id | int | 10 | 0 | N | Y |
| 2 | link_email | varchar | 200 | 0 | Y | N |
| 3 | link_name | varchar | 200 | 0 | Y | N |
| 4 | link_url | varchar | 200 | 0 | Y | N |
| 5 | order_num | int | 10 | 0 | Y | N |
表t_notice
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | notice_id | int | 10 | 0 | N | Y |
| 2 | grade | int | 10 | 0 | Y | N |
| 3 | content | varchar | 500 | 0 | Y | N |
| 4 | publish_date | datetime | 19 | 0 | Y | N |
表t_reply
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | reply_id | int | 10 | 0 | N | Y |
| 2 | content | varchar | 500 | 0 | Y | N |
| 3 | reply_date | datetime | 19 | 0 | Y | N |
| 4 | comment_id | int | 10 | 0 | Y | N |
| 5 | user_id | int | 10 | 0 | Y | N |
表t_timeline
| 編號 | 名稱 | 資料型別 | 長度 | 小數位 | 允許空值 | 主鍵 |
| 1 | timeline_id | int | 10 | 0 | N | Y |
| 2 | content | varchar | 200 | 0 | Y | N |
| 3 | publish_date | datetime | 19 | 0 | Y | N |
| 4 | month | varchar | 200 | 0 | Y | N |
| 5 | year | varchar | 200 | 0 | Y | N |
設計專案總結:
經過近期對Java 面向物件程式設計、前端知識以及Java框架的掌握和學習,以及這段時間本教育教學系統的開發,讓我更加了解到 Java 學習的重要性,在開發這個系統時,我不僅進行了多次的試驗,而且也對系統的功能進行了測驗,在論文的實作程序當中,我從Java的認識到熟練運用注入了非常多的努力,到后面可以進行相關技術的運用也感到非常的開心,在這程序當中,我發現Java其實有非常之多的功能可以進行探索,Java同時具有封裝性、抽象性、多型性以及繼承性,可以對代碼進行重復使用以及擴充使用,大幅度提高開發軟體時的整體速度和效率,我作為教育技術學的學生,學好Java語言不管對我以后的就業還是現在的知識面的擴增都有著很重要的意義,我學習程式設計的主要目的就是提高自己實際問題的程式解決方案的關鍵技能和技術, Java 面向物件程式設計是一科實踐性相對來說非常比較強的語言了、SpringMVC框架的MVC三層架構模式、和框架中遇到的設計模式將資料訪問和邏輯操作都集中到組件里面去了 , 增強了系統的復用性和擴展性,使系統的擴展性大大增強,以及前端jQuery、js、jsp、css樣式的掌握讓我對網頁的布局、樣式調整、字體等讓網頁效果實作的更加精準,
原始碼聯系獲取:
大家點贊、收藏、關注、評論啦 、查看👇🏻👇🏻👇🏻微信公眾號獲取聯系方式👇🏻👇🏻👇🏻
打卡 文章 更新 121/ 365天
精彩專欄推薦訂閱:在下方專欄👇🏻👇🏻👇🏻👇🏻
Java專案精品實戰案例《100套》https://blog.csdn.net/weixin_39709134/category_11128297.html
web前端期末大作業網頁實戰《100套》https://blog.csdn.net/weixin_39709134/category_11374891.html
https://blog.csdn.net/weixin_39709134/category_11374891.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/380456.html
標籤:其他
