看點咨詢---背景以及數據庫配置
背景
在日常生活中,內容管理系統占到所有系統的80%以上,比如個人博客,騰訊新聞,今日頭條,搜狐新
聞等。
這些都是我們日常生活中經常使用到的系統,它的核心就是可以概括為內容(資訊),一篇文章就是一
個資訊,大家越來越喜歡將生活中的所見所聞簡述出來。
如圖
通用的看點資訊管理系統,采用前后臺分離開發的技術,將系統分為前臺頁面展示以及后臺資訊管理系
統。對于后臺系統是基本上是通用的,而前臺可根據不同客戶的需求去修改定制。
簡介
看點資訊系統最核心的數據是內容,例如文章、新聞等,所以后臺主要功能是實現這些內容的管理,例
如欄目管理、評論管理、用戶管理以及角色管理等,對于前臺可以靈活得展示后臺的數據。
技術要求
springboot
spring
springmvc
springdata-jpa
mysql
swagger
三層架構
功能
注意,Controller中的返回值類型,統一采用自定義的Result類型
Result.java
package com.briup.cms.util; import java.io.Serializable; /** * 統一Controller中RESTFul風格接口返回的結果 */ public class Result implements Serializable { private static final long serialVersionUID = 1L; private Integer code; private String msg; private Object data; private Result() {} private Result(Integer code, String msg) { this.code = code; this.msg = msg; } private void setResultCode(ResultCode code) { this.code = code.code(); this.msg = code.message(); } /** * 操作失敗,自定義code和msg */ public static Result failure(Integer code, String msg) { Result result = new Result(code,msg); return result; } /** * 操作成功,沒有返回的數據 */ public static Result success() { Result result = new Result(); result.setResultCode(ResultCode.SUCCESS); return result; } /** * 操作成功,有返回的數據 */ public static Result success(Object data) { Result result = new Result(); result.setResultCode(ResultCode.SUCCESS); result.setData(data); return result; } /** * 操作失敗,沒有返回的數據 */ public static Result failure(ResultCode resultCode) { Result result = new Result(); result.setResultCode(resultCode); return result; } /** * 操作失敗,有返回的數據 */ public static Result failure(ResultCode resultCode, Object data) { Result result = new Result(); result.setResultCode(resultCode); result.setData(data); return result; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } }
ResultCode.java
package com.briup.cms.util; /** * 統一并自定義返回狀態碼,如有需求可以另外增加 */ public enum ResultCode { /* 成功狀態碼 */ SUCCESS(1, "操作成功"), /* 參數錯誤:10001-19999 */ PARAM_IS_INVALID(10001, "參數無效"), PARAM_IS_BLANK(10002, "參數為空"), PARAM_TYPE_BIND_ERROR(10003, "參數類型錯誤"), PARAM_NOT_COMPLETE(10004, "參數缺失"), /* 用戶錯誤:20001-29999*/ USER_NOT_LOGIN(20001, "用戶未登錄"), USER_LOGIN_ERROR(20002, "賬號不存在或密碼錯誤"), USER_ACCOUNT_FORBIDDEN(20003, "賬號已被禁用"), USER_NOT_EXIST(20004, "用戶不存在"), USER_HAS_EXISTED(20005, "用戶已存在"), USER_NAME_ISNULL(20006, "用戶名為空"), USER_PASS_ISNULL(20007, "密碼為空"), USER_PASS_ERROR(20007, "密碼為空或密碼錯誤"), /* 業務錯誤:30001-39999 */ SPECIFIED_QUESTIONED_USER_NOT_EXIST(30001, "業務邏輯出現問題"), /* 系統錯誤:40001-49999 */ SYSTEM_INNER_ERROR(40001, "系統內部錯誤,請稍后重試"), /* 數據錯誤:50001-599999 */ DATA_NONE(50001, "數據未找到"), DATA_WRONG(50002, "數據錯誤"), DATA_EXISTED(50003, "數據已存在"), CONTENT_IS_NULL(50004,"內容為空"), TITLE_IS_NULL(5000,"標題為空"), /* 接口錯誤:60001-69999 */ INTERFACE_INNER_INVOKE_ERROR(60001, "內部系統接口調用異常"), INTERFACE_OUTTER_INVOKE_ERROR(60002, "外部系統接口調用異常"), INTERFACE_FORBID_VISIT(60003, "該接口禁止訪問"), INTERFACE_ADDRESS_INVALID(60004, "接口地址無效"), INTERFACE_REQUEST_TIMEOUT(60005, "接口請求超時"), /* 權限錯誤:70001-79999 */ PERMISSION_NO_ACCESS(70001, "無訪問權限"); private Integer code; private String message; ResultCode(Integer code, String message) { this.code = code; this.message = message; } public Integer code() { return this.code; } public String message() { return this.message; } }
用戶模塊
對應的實體類為 User
1、新增用戶
參數1:User
2、編輯用戶
參數1:User
3、查詢用戶(分頁)
參數1:
Integer num(頁數)
參數2:
Integer size(每頁顯示多少條數據)
4、刪除用戶(批量,注銷用戶)
參:1:List
5、禁用或解封用戶信息(更新用戶狀態)
參數1:Long id
參數2:String status
6、根據用戶名獲取用戶信息
參數1:String username
7、登錄
參數1:String username
參數2:String password
角色模塊
對應的實體類為 Role
1、新增角色
參數1:Role r
2、編輯角色參數1:Role r
3、查詢角色(分頁)
參數1:
Integer num(頁數)
參數2:
Integer size(每頁顯示多少條數據)
4、批量刪除角色
參數1:List
資訊模塊
資訊在這里主要指的的是文章,對應的實體類為 Article
1、新增資訊
參數1:Article article
2、編輯資訊
參數1:Article article
3、查詢資訊(分頁)
參數1:
Integer num(頁數)
參數2:
Integer size(每頁顯示多少條數據)
4、批量刪除資訊
參數1:List
5、審核資訊
參數1:Long id
參數2:String status
6、根據類別ID查詢,分頁獲取資訊信息,并且按照閱讀量降序排
參數1:Long categoryId
參數2:
Integer pageNum
參數3:
Integer pageSize7、根據用戶分頁獲取資訊信息
參數1:Long userId
參數2:
Integer pageNum
參數3:
Integer pageSize
類別模塊
類別也就是欄目: Category
1、新增類別
參數1:Category category
2、編輯類別
參數1:Category category
3、查詢類別(分頁)
參數1:
Integer num(頁數)
參數2:
Integer size(每頁顯示多少條數據)
4、批量刪除類別
參數1:List
5、更新類別序號
參數1:Long id
參數2:Long no
6、按照序號升序分頁獲取類別信息
參數1:
Integer num(頁數)
參數2:
Integer size(每頁顯示多少條數據)
評論模塊
對應的實體類為 Comment1、新增評論
參數1:Comment comment
2、編輯評論
參數1:Comment comment
3、批量刪除評論
參數1:List
4、查詢評論(分頁)
參數1:
Integer num(頁數)
參數2:
Integer size(每頁顯示多少條數據)
5、分頁獲取指定文章下所有的評論
參數1:Long articleId
參數2:
Integer num
參數3:
Integer size
字典
1、用戶表,cms_user
2、角色表,cms_role
3、文章類別表,cms_category
4、文章表,cms_article
5、評論表,cms_comment
注意,因為項目中使用了JPA,可以在實體類中配置完關系映射后,讓JPA根據配置自動創建表
這是前期的數據庫和一些基本配置
數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。