??博主介紹:??全網(wǎng)個人號和企業(yè)號粉絲40W+,每年輔導(dǎo)幾千名大學(xué)生較好的完成畢業(yè)設(shè)計,專注計算機(jī)軟件領(lǐng)域的項目研發(fā),不斷的進(jìn)行新技術(shù)的項目實戰(zhàn)??
??熱門專欄推薦訂閱?? 訂閱收藏起來,防止下次找不到??千套JAVA項目實戰(zhàn)持續(xù)更新中~
??百套小程序APP項目實戰(zhàn)持續(xù)更新中~
??百套Python實戰(zhàn)項目持續(xù)更新中~
有需求的各位可以先收藏起來,還有大家在畢設(shè)選題,開題報告有疑惑的都可以找我,給你參考意見,需要開題模板的可以私信留言告訴我??文末獲取源碼聯(lián)系??? ? ? ????一定要先收藏??
?
第四章?系統(tǒng)設(shè)計
4.1?系統(tǒng)總體設(shè)計
基于微信小程序的圖書管理系統(tǒng)的建設(shè)可以為圖書管理提供幫助,通過對一些基礎(chǔ)信息管理實現(xiàn)針對性的安排,可以按照用戶的角色權(quán)限使不同用戶角色看到不一樣的信息界面?,F(xiàn)根據(jù)需求階段的分析,我們可以大致確定系統(tǒng)需要包含的功能如下圖所示:
系統(tǒng)總體結(jié)構(gòu)圖如下,見圖4-1所示。
圖4-1?系統(tǒng)總體結(jié)構(gòu)圖
4.2?數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫能直觀反映表現(xiàn)系統(tǒng)的需求,數(shù)據(jù)庫的設(shè)計能否切實符合系統(tǒng)的需求關(guān)系到整個系統(tǒng)最終的呈現(xiàn)結(jié)果。通過之前的分析梳理,明確了系統(tǒng)中需要包含的功能和要求。系統(tǒng)中除了涉及對數(shù)據(jù)庫的增加、刪除、查尋、修改的基礎(chǔ)操作較多,還要理清實體間的對應(yīng)關(guān)系,據(jù)此完成表結(jié)構(gòu)的設(shè)計與實現(xiàn)。
4.2.1 數(shù)據(jù)庫邏輯設(shè)計
為了更直觀闡明數(shù)據(jù)庫的設(shè)計,使用 Vision?繪制的基于微信小程序的圖書數(shù)據(jù)模型E-R實體屬性圖。根據(jù)系統(tǒng)需求設(shè)計了以下幾個主要實體。
4.2.2?數(shù)據(jù)庫表設(shè)計
在關(guān)系數(shù)據(jù)E-R圖中,分析并創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表用來記錄信息,數(shù)據(jù)表關(guān)系由多個數(shù)據(jù)表組成,下面介紹的是數(shù)據(jù)表各個字段信息如下表所示。
表4-1:用戶表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
username |
varchar |
100 |
用戶名 |
||
password |
varchar |
100 |
密碼 |
||
role |
varchar |
100 |
角色 |
管理員 |
|
addtime |
timestamp |
新增時間 |
CURRENT_TIMESTAMP |
表4-2:關(guān)于我們
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
title |
varchar |
200 |
標(biāo)題 |
||
subtitle |
varchar |
200 |
副標(biāo)題 |
||
content |
longtext |
4294967295 |
內(nèi)容 |
||
picture1 |
varchar |
200 |
圖片1 |
||
picture2 |
varchar |
200 |
圖片2 |
||
picture3 |
varchar |
200 |
圖片3 |
表4-3:圖書信息
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
tushubianhao |
varchar |
200 |
圖書編號 |
||
tushumingcheng |
varchar |
200 |
圖書名稱 |
||
tushufenlei |
varchar |
200 |
圖書分類 |
||
fengmian |
varchar |
200 |
封面 |
||
zuozhe |
varchar |
200 |
作者 |
||
chubanshe |
varchar |
200 |
出版社 |
||
shuliang |
int |
數(shù)量 |
|||
tushufujian |
varchar |
200 |
圖書附件 |
||
xiangqing |
longtext |
4294967295 |
詳情 |
||
thumbsupnum |
int |
贊 |
0 |
||
crazilynum |
int |
踩 |
0 |
||
clicktime |
datetime |
最近點擊時間 |
|||
clicknum |
int |
點擊次數(shù) |
0 |
表4-4:圖書歸還
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
guihaidanhao |
varchar |
200 |
歸還單號 |
||
tushubianhao |
varchar |
200 |
圖書編號 |
||
tushumingcheng |
varchar |
200 |
圖書名稱 |
||
tushufenlei |
varchar |
200 |
圖書分類 |
||
fengmian |
varchar |
200 |
封面 |
||
zuozhe |
varchar |
200 |
作者 |
||
shuliang |
int |
數(shù)量 |
|||
yinghairiqi |
date |
應(yīng)還日期 |
|||
guihairiqi |
date |
歸還日期 |
|||
zhanghao |
varchar |
200 |
賬號 |
||
xingming |
varchar |
200 |
姓名 |
||
shouji |
varchar |
200 |
手機(jī) |
||
sfsh |
varchar |
200 |
是否審核 |
待審核 |
|
shhf |
longtext |
4294967295 |
審核回復(fù) |
||
userid |
bigint |
用戶id |
表4-5:圖書分類
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
tushufenlei |
varchar |
200 |
圖書分類 |
表4-6:token表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
userid |
bigint |
用戶id |
|||
username |
varchar |
100 |
用戶名 |
||
tablename |
varchar |
100 |
表名 |
||
role |
varchar |
100 |
角色 |
||
token |
varchar |
200 |
密碼 |
||
addtime |
timestamp |
新增時間 |
CURRENT_TIMESTAMP |
||
expiratedtime |
timestamp |
過期時間 |
CURRENT_TIMESTAMP |
表4-7:收藏表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用戶id |
|||
refid |
bigint |
商品id |
|||
tablename |
varchar |
200 |
表名 |
||
name |
varchar |
200 |
名稱 |
||
picture |
varchar |
200 |
圖片 |
||
type |
varchar |
200 |
類型(1:收藏,21:贊,22:踩,31:競拍參與,41:關(guān)注) |
1 |
|
inteltype |
varchar |
200 |
推薦類型 |
||
remark |
varchar |
200 |
備注 |
表4-8:系統(tǒng)公告
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
title |
varchar |
200 |
標(biāo)題 |
||
introduction |
longtext |
4294967295 |
簡介 |
||
picture |
varchar |
200 |
圖片 |
||
content |
longtext |
4294967295 |
內(nèi)容 |
表4-9:圖書信息評論表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
refid |
bigint |
關(guān)聯(lián)表id |
|||
userid |
bigint |
用戶id |
|||
avatarurl |
varchar |
200 |
頭像 |
||
nickname |
varchar |
200 |
用戶名 |
||
content |
longtext |
4294967295 |
評論內(nèi)容 |
||
reply |
longtext |
4294967295 |
回復(fù)內(nèi)容 |
表4-10:催還提醒
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
zhanghao |
varchar |
200 |
賬號 |
||
xingming |
varchar |
200 |
姓名 |
||
cuihaishuji |
varchar |
200 |
催還書籍 |
||
tixingneirong |
longtext |
4294967295 |
提醒內(nèi)容 |
||
tixingshijian |
datetime |
提醒時間 |
|||
userid |
bigint |
用戶id |
表4-11:用戶
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
zhanghao |
varchar |
200 |
賬號 |
||
xingming |
varchar |
200 |
姓名 |
||
mima |
varchar |
200 |
密碼 |
||
xingbie |
varchar |
200 |
性別 |
||
nianling |
int |
年齡 |
|||
shouji |
varchar |
200 |
手機(jī) |
表4-12:配置文件
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
name |
varchar |
100 |
配置參數(shù)名稱 |
||
value |
varchar |
100 |
配置參數(shù)值 |
表4-13:我的待還
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
jieyuebianhao |
varchar |
200 |
借閱編號 |
||
tushubianhao |
varchar |
200 |
圖書編號 |
||
tushumingcheng |
varchar |
200 |
圖書名稱 |
||
tushufenlei |
varchar |
200 |
圖書分類 |
||
fengmian |
varchar |
200 |
封面 |
||
zuozhe |
varchar |
200 |
作者 |
||
shuliang |
int |
數(shù)量 |
|||
jieyueriqi |
date |
借閱日期 |
|||
jieyuetianshu |
int |
借閱天數(shù) |
|||
yinghairiqi |
date |
應(yīng)還日期 |
|||
beizhu |
longtext |
4294967295 |
備注 |
||
zhanghao |
varchar |
200 |
賬號 |
||
xingming |
varchar |
200 |
姓名 |
||
shouji |
varchar |
200 |
手機(jī) |
||
sfsh |
varchar |
200 |
是否審核 |
待審核 |
|
shhf |
longtext |
4294967295 |
審核回復(fù) |
||
userid |
bigint |
用戶id |
表4-14:意見反饋
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用戶id |
|||
adminid |
bigint |
管理員id |
|||
ask |
longtext |
4294967295 |
提問 |
||
reply |
longtext |
4294967295 |
回復(fù) |
||
isreply |
int |
是否回復(fù) |
4.3?本章小結(jié)
這一章著重介紹了整個系統(tǒng)的設(shè)計流程。確定了系統(tǒng)的功能結(jié)構(gòu),并在此基礎(chǔ)上完成了數(shù)據(jù)庫的設(shè)計。
第五章?詳細(xì)設(shè)計與實現(xiàn)
5.1系統(tǒng)前臺功能的實現(xiàn)
5.1.1登錄界面的實現(xiàn)
首先雙擊打開微信小程序客戶端系統(tǒng),連上網(wǎng)絡(luò)之后會顯示出本系統(tǒng)的登錄界面,這是進(jìn)入小程序的第初始頁面“登錄”,能成功進(jìn)入到該登錄界面則代表小程序的開啟是成功的,接下來就可以操作本系統(tǒng)所帶有的其他所有的功能。
登錄界面如圖5-1所示。
圖5-1?登錄界面
5.1.2注冊界面的實現(xiàn)
第一次使用本小程序的使用者,首先是要進(jìn)行注冊,點擊“注冊”,然后就會進(jìn)入到注冊的頁面里面,將用戶信息錄入注冊表,確認(rèn)信息正確后,系統(tǒng)才會進(jìn)入登錄界面,用戶登錄成功后可使用本小程序所提供的所有功能。
注冊界面如圖5-2所示。
圖5-2?注冊界面
5.1.3小程序首頁功能的實現(xiàn)
小程序首頁是用戶注冊登錄后進(jìn)入的第一個界面,在這里,人們能夠看到小程序的導(dǎo)航條,內(nèi)容包括首頁、圖書信息、系統(tǒng)公告、我的等。系統(tǒng)首頁界面如圖5-3所示。
圖5-3 小程序首頁界面圖
圖書信息:在圖書信息界面可以查看到圖書名稱、圖書編號、封面、圖書分類、作者、出版社、數(shù)量、圖書附件、點擊次數(shù)、詳情等信息,按照提示即可完成借閱、歸還、評論或收藏操作。圖書信息詳情如圖5-4所示。
圖5-4圖書信息詳情界面圖
5.1.4用戶功能
用戶登錄成功后,點擊“我的”進(jìn)入我的頁面,在我的頁面可以對個人中心、我的待還、圖書歸還、催還提醒、我的收藏管理、意見反饋等進(jìn)行詳細(xì)操作。用戶功能界面如圖5-5所示。
圖5-5用戶功能界面圖
5.2系統(tǒng)后臺管理員功能的實現(xiàn)
管理員登錄,通過填寫賬號和密碼等信息進(jìn)行登錄操作,如圖5-6所示。
圖5-6管理員登錄界面圖
管理員登錄進(jìn)入小程序可以查看個人中心、用戶管理、圖書分類管理、圖書信息管理、我的待還管理、圖書歸還管理、催還提醒管理、系統(tǒng)管理等功能進(jìn)行詳細(xì)操作,如圖5-7所示。
圖5-7管理員功能界面圖
JAVA后端代碼實現(xiàn)
package com.controller;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
/**
* 登錄相關(guān)
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登錄
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("賬號或密碼不正確");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注冊
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用戶已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密碼重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("賬號不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密碼已重置為:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 獲取用戶的session用戶信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用戶已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用戶名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 刪除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
源碼獲取
大家點贊、收藏、關(guān)注?,讓更多需要的同學(xué)看到
不同開發(fā)語言專欄推薦訂閱:
???千套JAVA項目實戰(zhàn)持續(xù)更新中~
??百套小程序APP項目實戰(zhàn)持續(xù)更新中~
??百套Python實戰(zhàn)項目持續(xù)更新中~文章來源:http://www.zghlxwxcb.cn/news/detail-835518.html
??下方有我的微信名片??文章來源地址http://www.zghlxwxcb.cn/news/detail-835518.html
到了這里,關(guān)于基于微信小程序的圖書借閱管理平臺-老師滿意的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!