一、概述
之前的spring集成系列文章中spring集成shiro權限控制一文最後提到了通用的mvc框架和前後端分離方案。在準備前後端分離方案demo的時候,糾結於選擇哪個前端框架。對於後端開發人員來說,Angular和Vue都過於專業化了,需要額外的精力去學習。這個時候剛好看到了layui框架(http://www.layui.com/),驚歎於它的優美和易用,而且是基於jQuery的,於是就用layui做起了前後端分離的demo。折騰了快兩個月,其中開發一個多月,然後申請服務器和域名花費了大半個月。現在是兌現前後端分離方案承諾的時候了。先把演示地址發上來:
http://www.gameloft9.top/manager/layuicms/page/system/login/login.html(因欠費,已失效)
二、系統介紹
這個是基於layui的通用後臺管理系統,該系統已經具備了基礎功能,例如權限控制,菜單、角色、用戶、機構、日誌管理,系統架構清晰,可以在此基礎上做二次業務開發。
下面是一些系統截圖:
大家可以登錄上去瞧瞧,賬號:gameloft9,密碼:123456(密碼請不要改動)。數據庫每隔20分鐘會初始化一次。
三、關於代碼
這個管理系統代碼清晰,架構清晰,很容易擴展。前端是layui框架,只依賴於jQuery,可單獨部署。後臺是spring+spring mvc+mybatis,提供類似於restful風格的調用。數據庫有oracle和mysql兩個版本,很容易切換。下面是Controller裏面方法,大家可以感受下:
/**
* 添加用戶
* */
@RequestMapping(value = "/add.do",method = RequestMethod.POST)
@ResponseBody
@BizOperLog(operType = OperType.ADD,memo = "添加用戶")
public IResult addUser(@RequestBody UserAddRequest request){
//返回json至前端的均返回ResultBean或者PageResultBean
return new ResultBean<String>(sysUserServiceImpl.addUser(request));
}
/**
* 刪除用戶
* */
@RequestMapping(value = "/delete.do",method = RequestMethod.POST)
@ResponseBody
@BizOperLog(operType = OperType.DELETE,memo = "刪除用戶")
public IResult deleteUser(String id){
//返回json至前端的均返回ResultBean或者PageResultBean
return new ResultBean<Boolean>(sysUserServiceImpl.deleteById(id));
}
/**
* 獲取用戶
* */
@RequestMapping(value = "/get.do",method = RequestMethod.POST)
@ResponseBody
public IResult getUser(String id){
//返回json至前端的均返回ResultBean或者PageResultBean
return new ResultBean<SysUserResponse>(sysUserServiceImpl.getById(id));
}
基本上所有的Controller裏面代碼都是這樣,基本上都只有一行代碼,所有邏輯都放在了service部分。在可複用,可擴展,可維護上面下了不少功夫。
更新說明
v1.0 2017.12.12
第一版
v1.1 2018.3.5
1、修改Model檢查邏輯
2、修改logback配置
3、修復個人資料權限bug
v1.2 2018.7.1
1、去掉加載遮罩層
2、解耦後臺請求api,封裝ajax操作
3、加入oracle版本代碼,並註釋掉,可根據數據庫自行切換
4、修復一些已知bug
v1.2.1 2018.7.10
1、修復添加已刪除同名角色保存失敗bug
2、去掉角色表角色名稱唯一索引
3、修復機構查詢bug
4、修復二級機構添加失敗bug
5、修復權限設置bug
v1.2.2 2018.7.23
1、權限動態更新失敗bug修復
2、已登錄過如果再返回登錄頁面,自動跳轉到首頁
3、初始化數據修改
v1.3.0 2019.9.12
1、項目改用spring-boot啓動方式
2、修復新增非admin角色用戶,登錄後跳轉401頁面的bug
3、修復驗證碼刷新無效bug
4、修正了幾處SQL語句,包括oracle版本初始化存儲過程、mysql版本初始化存儲過程
5、修復admin角色用戶無權限查看組織機構菜單bug
工程地址:https://github.com/gameloft9/layui-admin,如果覺得可以,請幫忙點個star~
請隨意打賞~