?博主介紹:??全網(wǎng)個(gè)人號和企業(yè)號粉絲40W+,每年輔導(dǎo)幾千名大學(xué)生較好的完成畢業(yè)設(shè)計(jì),專注計(jì)算機(jī)軟件領(lǐng)域的項(xiàng)目研發(fā),不斷的進(jìn)行新技術(shù)的項(xiàng)目實(shí)戰(zhàn)??
??熱門專欄推薦訂閱?? 訂閱收藏起來,防止下次找不到??千套JAVA實(shí)戰(zhàn)項(xiàng)目持續(xù)更新中~
??上千套小程序?qū)崙?zhàn)項(xiàng)目持續(xù)更新中~
??上千套Python實(shí)戰(zhàn)項(xiàng)目持續(xù)更新中~
有需求的各位可以先收藏起來,還有大家在畢設(shè)選題,開題報(bào)告有疑惑的都可以找我,給你參考意見,需要開題模板的可以私信留言告訴我??文末獲取源碼聯(lián)系??? ? ? ????一定要先收藏??
4 系統(tǒng)設(shè)計(jì)
4.1系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)圖
本次系統(tǒng)所涉及到的有關(guān)的功能,都是用功能結(jié)構(gòu)圖來簡潔和清晰的表示出來,功能結(jié)構(gòu)圖就是能夠把比較復(fù)雜的功能結(jié)構(gòu)用圖的形式清晰的描繪下來,并且為后續(xù)的設(shè)計(jì)以及測試等模塊提供了明確的方向,在構(gòu)思功能結(jié)構(gòu)圖的時(shí)候,便可以給設(shè)計(jì)的過程帶來一定的思維導(dǎo)向,不至于在設(shè)計(jì)過程中有所遺漏,可以盡可能的明確系統(tǒng)所涉及到的功能。系統(tǒng)的功能結(jié)構(gòu)圖如圖4-1所示。
圖 4-1系統(tǒng)功能結(jié)構(gòu)圖
4.2數(shù)據(jù)庫設(shè)計(jì)
4.2.1數(shù)據(jù)庫設(shè)計(jì)原則
學(xué)習(xí)程序設(shè)計(jì),如果要了解數(shù)據(jù)庫管理系統(tǒng)或者是根據(jù)需求而制定的系統(tǒng)接口,就必須創(chuàng)建一種數(shù)據(jù)庫管理系統(tǒng)的模式,用來保存數(shù)據(jù)資料,這樣當(dāng)在應(yīng)用編程過程中時(shí)候,就不需要再向操作系統(tǒng)頁面上加載信息,進(jìn)而增加了整個(gè)系統(tǒng)的工作效率。信息庫管理系統(tǒng)中保存著許多數(shù)據(jù),應(yīng)該說是一個(gè)管理信息系統(tǒng)建設(shè)的中心和基礎(chǔ),而信息庫管理系統(tǒng)也為管理信息系統(tǒng)建設(shè)提出了新增、刪除、更改和搜索的操作功能,使管理信息系統(tǒng)建設(shè)能夠迅速地查詢所需要的數(shù)據(jù),而不會(huì)直接從程序代碼中查找。信息庫管理系統(tǒng)通過將信息表的各個(gè)組成部分按照特定的方法準(zhǔn)確地合并,排序和組成信息庫管理系統(tǒng)。
4.2.2數(shù)據(jù)表設(shè)計(jì)
在關(guān)系數(shù)據(jù)E-R圖中,分析并創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表用來記錄信息,數(shù)據(jù)表關(guān)系由多個(gè)數(shù)據(jù)表組成,下面介紹的是數(shù)據(jù)表各個(gè)字段信息如下表所示。
表4-1:token表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
userid |
bigint |
用戶id |
|||
username |
varchar |
100 |
用戶名 |
||
tablename |
varchar |
100 |
表名 |
||
role |
varchar |
100 |
角色 |
||
token |
varchar |
200 |
密碼 |
||
addtime |
timestamp |
新增時(shí)間 |
CURRENT_TIMESTAMP |
||
expiratedtime |
timestamp |
過期時(shí)間 |
CURRENT_TIMESTAMP |
表4-2:穿搭圈
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時(shí)間 |
CURRENT_TIMESTAMP |
||
chuandamingcheng |
varchar |
200 |
穿搭名稱 |
||
changhe |
varchar |
200 |
場合 |
||
tianqi |
varchar |
200 |
天氣 |
||
tupian |
longtext |
4294967295 |
圖片 |
||
fenggeleixing |
varchar |
200 |
風(fēng)格類型 |
||
kuanshi |
varchar |
200 |
款式 |
||
caizhi |
varchar |
200 |
材質(zhì) |
||
xiangqing |
longtext |
4294967295 |
詳情 |
||
zhanghao |
varchar |
200 |
發(fā)布賬號 |
||
clicktime |
datetime |
最近點(diǎn)擊時(shí)間 |
表4-3:用戶
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時(shí)間 |
CURRENT_TIMESTAMP |
||
zhanghao |
varchar |
200 |
賬號 |
||
mima |
varchar |
200 |
密碼 |
||
nicheng |
varchar |
200 |
昵稱 |
||
nianling |
int |
年齡 |
|||
chengshi |
varchar |
200 |
城市 |
||
xingbie |
varchar |
200 |
性別 |
||
chushengriqi |
date |
出生日期 |
|||
xuexiao |
varchar |
200 |
學(xué)校 |
||
touxiang |
longtext |
4294967295 |
頭像 |
||
gexingqianming |
varchar |
200 |
個(gè)性簽名 |
表4-4:我的搭配
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時(shí)間 |
CURRENT_TIMESTAMP |
||
xingqi |
varchar |
200 |
星期 |
||
dapeimingcheng |
varchar |
200 |
搭配名稱 |
||
fenggeleixing |
varchar |
200 |
風(fēng)格類型 |
||
fuzhuangtupian |
longtext |
4294967295 |
服裝圖片 |
||
shiyongjijie |
varchar |
200 |
適用季節(jié) |
||
dapeifengge |
varchar |
200 |
搭配風(fēng)格 |
||
fuzhuangyanse |
varchar |
200 |
服裝顏色 |
||
dapeixiangqing |
longtext |
4294967295 |
搭配詳情 |
||
zhanghao |
varchar |
200 |
發(fā)布賬號 |
||
userid |
bigint |
用戶id |
表4-5:用戶表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
username |
varchar |
100 |
用戶名 |
||
password |
varchar |
100 |
密碼 |
||
role |
varchar |
100 |
角色 |
管理員 |
|
addtime |
timestamp |
新增時(shí)間 |
CURRENT_TIMESTAMP |
表4-6:收藏表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時(shí)間 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用戶id |
|||
refid |
bigint |
商品id |
|||
tablename |
varchar |
200 |
表名 |
||
name |
varchar |
200 |
名稱 |
||
picture |
longtext |
4294967295 |
圖片 |
||
type |
varchar |
200 |
類型(1:收藏,21:贊,22:踩,31:競拍參與,41:關(guān)注) |
1 |
|
inteltype |
varchar |
200 |
推薦類型 |
||
remark |
varchar |
200 |
備注 |
表4-7:時(shí)尚穿搭
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時(shí)間 |
CURRENT_TIMESTAMP |
||
title |
varchar |
200 |
標(biāo)題 |
||
introduction |
longtext |
4294967295 |
簡介 |
||
picture |
longtext |
4294967295 |
圖片 |
||
content |
longtext |
4294967295 |
內(nèi)容 |
表4-8:風(fēng)格類型
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時(shí)間 |
CURRENT_TIMESTAMP |
||
fenggeleixing |
varchar |
200 |
風(fēng)格類型 |
表4-9:穿搭圈評論表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
addtime |
timestamp |
創(chuàng)建時(shí)間 |
CURRENT_TIMESTAMP |
||
refid |
bigint |
關(guān)聯(lián)表id |
|||
userid |
bigint |
用戶id |
|||
avatarurl |
longtext |
4294967295 |
頭像 |
||
nickname |
varchar |
200 |
用戶名 |
||
content |
longtext |
4294967295 |
評論內(nèi)容 |
||
reply |
longtext |
4294967295 |
回復(fù)內(nèi)容 |
表4-10:配置文件
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認(rèn)值 |
id |
bigint |
主鍵 |
主鍵 |
||
name |
varchar |
100 |
配置參數(shù)名稱 |
||
value |
varchar |
100 |
配置參數(shù)值 |
4.2.3數(shù)據(jù)庫連接
在本系統(tǒng)的設(shè)計(jì)與開發(fā)中,數(shù)據(jù)庫承擔(dān)著重要的作用,可以說要是沒有數(shù)據(jù)的存儲(chǔ)和管理,而系統(tǒng)也不會(huì)執(zhí)行對應(yīng)的函數(shù)。數(shù)據(jù)庫是基于數(shù)據(jù)結(jié)構(gòu)而設(shè)計(jì)的,數(shù)據(jù)庫管理員利用數(shù)據(jù)庫管理系統(tǒng)對海量數(shù)據(jù)進(jìn)行管理,而數(shù)據(jù)庫的添加、刪除、修改、查詢等都是非常關(guān)鍵的一環(huán)。
在本系統(tǒng)中首先進(jìn)行數(shù)據(jù)庫的連接,具體的配置文件uimg_sql.py中進(jìn)行數(shù)據(jù)庫的連接,還有創(chuàng)建了本次數(shù)據(jù)庫中所用到的表和相關(guān)的一些參數(shù),這些操作和建立的實(shí)現(xiàn)是通過在java中編寫完成的,有一些時(shí)間點(diǎn)的記錄,一周穿搭信息是在數(shù)據(jù)庫uchepai中完成的。
4.3本章小結(jié)
本章是系統(tǒng)開發(fā)的整體的一個(gè)系統(tǒng)設(shè)計(jì),主要通過系統(tǒng)功能的設(shè)計(jì),還有具體實(shí)現(xiàn)中需要考慮到的結(jié)構(gòu)之間的關(guān)系,以及系統(tǒng)中每個(gè)功能執(zhí)行的先后順序等問題做出了詳細(xì)的設(shè)計(jì)。
其次是對于數(shù)據(jù)庫的具體實(shí)現(xiàn)的設(shè)計(jì),首先是將數(shù)據(jù)庫與開發(fā)系統(tǒng)相結(jié)合的特定數(shù)據(jù)庫的連接問題,做出了數(shù)據(jù)庫應(yīng)該儲(chǔ)存的一些數(shù)據(jù),還有存儲(chǔ)數(shù)據(jù)用到的一些表格的創(chuàng)建,以及表格里面內(nèi)容的設(shè)計(jì)等工作。
5系統(tǒng)詳細(xì)設(shè)計(jì)
5.1?APP端實(shí)現(xiàn)
5.1.1登錄注冊界面的實(shí)現(xiàn)
首先雙擊打開APP客戶端系統(tǒng),連上網(wǎng)絡(luò)之后會(huì)顯示出本系統(tǒng)的登錄界面,這是進(jìn)入APP的初始頁面“登錄”,能成功進(jìn)入到該登錄界面則代表APP的開啟是成功的,接下來就可以操作本系統(tǒng)所帶有的其他所有的功能。登錄界面如圖5-1所示。
圖5-1?登錄界面
第一次使用本APP的使用者,首先是要進(jìn)行注冊,點(diǎn)擊“注冊”,然后就會(huì)進(jìn)入到注冊的頁面里面,將用戶信息錄入注冊表,確認(rèn)信息正確后,系統(tǒng)才會(huì)進(jìn)入登錄界面,用戶登錄成功后可使用本APP所提供的所有功能。注冊界面如圖5-2所示。
圖5-2?注冊界面
5.1.2 App首頁功能的實(shí)現(xiàn)
App首頁是用戶注冊登錄后進(jìn)入的第一個(gè)界面,在這里,人們能夠看到App的導(dǎo)航條,內(nèi)容包括首頁,穿搭圈,我的搭配,天氣,我的等。App首頁界面如圖5-3所示。
圖5-3 App首頁界面圖
穿搭圈:在穿搭圈頁面輸入穿搭名稱進(jìn)行搜索,可以查看到穿搭圈詳細(xì)信息,還可以進(jìn)行評論或收藏操作。穿搭圈頁面如圖5-4所示。
圖5-4穿搭圈詳情界面圖
5.1.3用戶功能
用戶登錄成功后,點(diǎn)擊“我的”進(jìn)入我的頁面,在我的頁面可以對穿搭圈,我的收藏管理等進(jìn)行詳細(xì)操作。用戶功能界面如圖5-5所示。
圖5-5用戶功能界面圖
5.2后臺管理員模塊實(shí)現(xiàn)
后臺登錄,在登錄界面正確輸入用戶名和密碼等信息進(jìn)入操作系統(tǒng)進(jìn)行操作,如圖5-6所示。
圖5-6后臺登錄界面圖
管理員登錄進(jìn)入APP可以查看到系統(tǒng)首頁,個(gè)人中心,用戶管理,風(fēng)格類型管理,穿搭圈管理,我的搭配管理,系統(tǒng)管理等功能進(jìn)行詳細(xì)操作,如圖5-7所示。
圖5-7管理員功能界面圖
代碼實(shí)現(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();
}
}
源碼獲取
大家點(diǎn)贊、收藏、關(guān)注?,讓更多需要的同學(xué)看到
不同開發(fā)語言專欄推薦訂閱:
???千套JAVA實(shí)戰(zhàn)項(xiàng)目持續(xù)更新中~
??上千套小程序?qū)崙?zhàn)項(xiàng)目持續(xù)更新中~
???上千套Python實(shí)戰(zhàn)項(xiàng)目持續(xù)更新中~文章來源:http://www.zghlxwxcb.cn/news/detail-839508.html
??下方有我的微信名片??文章來源地址http://www.zghlxwxcb.cn/news/detail-839508.html
到了這里,關(guān)于基于微信小程序的一周穿搭搭配平臺-安卓APP【全套源碼文檔】的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!