??博主介紹:??全網(wǎng)個人號和企業(yè)號粉絲40W+,每年輔導幾千名大學生較好的完成畢業(yè)設計,專注計算機軟件領域的項目研發(fā),不斷的進行新技術的項目實戰(zhàn)??
??熱門專欄推薦訂閱?? 訂閱收藏起來,防止下次找不到????百套小程序APP項目實戰(zhàn)持續(xù)更新中~?
????千套JAVA項目實戰(zhàn)持續(xù)更新中~?
???百套Python實戰(zhàn)項目持續(xù)更新中~?
有需求的各位可以先收藏起來,還有大家在畢設選題,開題報告有疑惑的都可以找我,給你參考意見,需要開題模板的可以私信留言告訴我??文末獲取源碼聯(lián)系??? ? ? ????一定要先收藏??
4?系統(tǒng)設計
4.1系統(tǒng)功能結構設計圖
本次系統(tǒng)所涉及到的有關的功能,都是用功能結構圖來簡潔和清晰的表示出來,功能結構圖就是能夠把比較復雜的功能結構用圖的形式清晰的描繪下來,并且為后續(xù)的設計以及測試等模塊提供了明確的方向,在構思功能結構圖的時候,便可以給設計的過程帶來一定的思維導向,不至于在設計過程中有所遺漏,可以盡可能的明確系統(tǒng)所涉及到的功能。
系統(tǒng)的功能結構圖如圖4-1所示。
圖 4-1系統(tǒng)功能結構圖
4.2數(shù)據(jù)庫設計
4.2.1數(shù)據(jù)庫設計原則
學習程序設計,如果要了解數(shù)據(jù)庫管理系統(tǒng)或者是根據(jù)需求而制定的系統(tǒng)接口,就必須創(chuàng)建一種數(shù)據(jù)庫管理系統(tǒng)的模式,用來保存數(shù)據(jù)資料,這樣當在應用編程過程中時候,就不需要再向操作系統(tǒng)頁面上加載信息,進而增加了整個系統(tǒng)的工作效率。信息庫管理系統(tǒng)通過將信息表的各個組成部分按照特定的方法準確地合并,排序和組成信息庫管理系統(tǒng)。
4.2.2 ?數(shù)據(jù)表設計
在關系數(shù)據(jù)E-R圖中,分析并創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表用來記錄信息,數(shù)據(jù)表關系由多個數(shù)據(jù)表組成,下面介紹的是數(shù)據(jù)表各個字段信息如下表所示。
表4-1:用戶表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
username |
varchar |
100 |
用戶名 |
||
password |
varchar |
100 |
密碼 |
||
role |
varchar |
100 |
角色 |
管理員 |
|
addtime |
timestamp |
新增時間 |
CURRENT_TIMESTAMP |
表4-2:地址
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
userid |
bigint |
用戶id |
|||
address |
varchar |
200 |
地址 |
||
name |
varchar |
200 |
收貨人 |
||
phone |
varchar |
200 |
電話 |
||
isdefault |
varchar |
200 |
是否默認地址[是/否] |
表4-3:token表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
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-4:收藏表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
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:關注) |
1 |
|
inteltype |
varchar |
200 |
推薦類型 |
||
remark |
varchar |
200 |
備注 |
表4-5:訂單
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
orderid |
varchar |
200 |
訂單編號 |
||
tablename |
varchar |
200 |
商品表名 |
dangaoxinxi |
|
userid |
bigint |
用戶id |
|||
goodid |
bigint |
商品id |
|||
goodname |
varchar |
200 |
商品名稱 |
||
picture |
longtext |
4294967295 |
商品圖片 |
||
buynumber |
int |
購買數(shù)量 |
|||
price |
float |
價格 |
0 |
||
discountprice |
float |
折扣價格 |
0 |
||
total |
float |
總價格 |
0 |
||
discounttotal |
float |
折扣總價格 |
0 |
||
type |
int |
支付類型 |
1 |
||
status |
varchar |
200 |
狀態(tài) |
||
address |
varchar |
200 |
地址 |
||
tel |
varchar |
200 |
電話 |
||
consignee |
varchar |
200 |
收貨人 |
||
remark |
varchar |
200 |
備注 |
||
logistics |
longtext |
4294967295 |
物流 |
表4-6:蛋糕資訊
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
title |
varchar |
200 |
標題 |
||
introduction |
longtext |
4294967295 |
簡介 |
||
picture |
longtext |
4294967295 |
圖片 |
||
content |
longtext |
4294967295 |
內(nèi)容 |
表4-7:口味
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
kouwei |
varchar |
200 |
口味 |
表4-8:蛋糕信息評論表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
refid |
bigint |
關聯(lián)表id |
|||
userid |
bigint |
用戶id |
|||
avatarurl |
longtext |
4294967295 |
頭像 |
||
nickname |
varchar |
200 |
用戶名 |
||
content |
longtext |
4294967295 |
評論內(nèi)容 |
||
reply |
longtext |
4294967295 |
回復內(nèi)容 |
表4-9:蛋糕信息
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
dangaomingcheng |
varchar |
200 |
蛋糕名稱 |
||
dangaofenlei |
varchar |
200 |
蛋糕分類 |
||
kouwei |
varchar |
200 |
口味 |
||
fengmian |
longtext |
4294967295 |
封面 |
||
yanse |
varchar |
200 |
顏色 |
||
zhuangshipin |
longtext |
4294967295 |
裝飾品 |
||
dangaochicun |
varchar |
200 |
蛋糕尺寸 |
||
shangjiariqi |
date |
上架日期 |
|||
dangaoxiangqing |
longtext |
4294967295 |
蛋糕詳情 |
||
clicktime |
datetime |
最近點擊時間 |
|||
clicknum |
int |
點擊次數(shù) |
0 |
||
jf |
int |
積分 |
-1 |
||
price |
float |
價格 |
表4-10:蛋糕分類
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
dangaofenlei |
varchar |
200 |
蛋糕分類 |
表4-11:配置文件
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
name |
varchar |
100 |
配置參數(shù)名稱 |
||
value |
varchar |
100 |
配置參數(shù)值 |
表4-12:用戶
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
yonghuming |
varchar |
200 |
用戶名 |
||
xingming |
varchar |
200 |
姓名 |
||
touxiang |
longtext |
4294967295 |
頭像 |
||
mima |
varchar |
200 |
密碼 |
||
xingbie |
varchar |
200 |
性別 |
||
shouji |
varchar |
200 |
手機 |
||
jf |
float |
積分 |
0 |
||
money |
float |
余額 |
0 |
表4-13:購物車表
字段名稱 |
類型 |
長度 |
字段說明 |
主鍵 |
默認值 |
id |
bigint |
主鍵 |
??主鍵 |
||
addtime |
timestamp |
創(chuàng)建時間 |
CURRENT_TIMESTAMP |
||
tablename |
varchar |
200 |
商品表名 |
dangaoxinxi |
|
userid |
bigint |
用戶id |
|||
goodid |
bigint |
商品id |
|||
goodname |
varchar |
200 |
商品名稱 |
||
picture |
longtext |
4294967295 |
圖片 |
||
buynumber |
int |
購買數(shù)量 |
|||
price |
float |
單價 |
|||
discountprice |
float |
會員價 |
5系統(tǒng)詳細設計
5.1?管理員服務端功能的實現(xiàn)
管理員的登錄界面包括管理員的賬號、密碼,其中就是沒有賬號,還有需要注冊賬號。只要管理員在賬號上注冊,注冊信息就會被錄入MySQL數(shù)據(jù)庫,有一個資料庫,只要輸入成功,就可以登錄,然后進入主頁的管理。如圖5-1所示。
???圖5-1 管理員登錄界面圖
管理員登錄到系統(tǒng)可以查看系統(tǒng)首頁、個人中心、用戶管理、蛋糕信息管理、蛋糕分類管理、口味管理、系統(tǒng)管理、訂單管理等功能進行詳細操作,如圖5-2所示。
圖5-2管理員功能界面圖
管理員點擊用戶管理;在用戶管理頁面對用戶名、姓名、頭像、性別、手機、積分等信息,進行查詢,新增或刪除用戶信息等操作;如圖5-3所示。
圖5-3用戶管理界面圖
管理員點擊蛋糕信息管理;在蛋糕信息管理頁面對蛋糕名稱、蛋糕分類、口味、封面、顏色、蛋糕尺寸、上架日期、點擊次數(shù)、積分、價格等信息,進行查詢或刪除蛋糕信息等操作;如圖5-4所示。
圖5-4蛋糕信息管理界面圖
5.2用戶微信端功能的實現(xiàn)
注冊界面,第一次使用本小程序的使用者,首先是要進行注冊,點擊“注冊”,然后就會進入到注冊的頁面里面,將用戶信息錄入注冊表,確認信息正確后,點擊注冊操作,如圖5-8所示。
圖5-8用戶注冊界面
登錄界面,首先雙擊打開微信小程序端系統(tǒng),連上網(wǎng)絡之后會顯示出本系統(tǒng)的登錄界面,這是進入小程序的第初始頁面“登錄”,能成功進入到該登錄界面則代表小程序的開啟是成功的,接下來就可以操作本系統(tǒng)所帶有的其他所有的功能,如圖5-9所示。
圖5-9用戶登錄界面
系統(tǒng)首頁是用戶注冊登錄后進入的第一個界面,用戶可通過小程序端首頁進入對應的頁面或者通過小程序最下面的那一行導航欄中的首頁、蛋糕信息、蛋糕資訊、購物車、我的等進行詳細操作,如圖5-10所示。
圖5-10小程序首頁界面圖
用戶點擊蛋糕信息,在蛋糕信息頁面的搜索欄輸入蛋糕名稱,進行查詢,還可以查看蛋糕名稱、蛋糕分類、口味、封面、顏色、蛋糕尺寸、上架日期、點擊次數(shù)、積分、價格等信息,可根據(jù)需要進行加入購物車、立即購買、積分兌換或收藏等操作。如圖5-11所示。
圖5-11?蛋糕信息界面圖
用戶點擊購物車,用戶將想要購買的商品加入購物車,加入購物車后可以增減數(shù)量、刪除、點擊購買,可一鍵清除失效商品。如圖5-12所示。
圖5-12購物車界面圖
在我的功能界面,用戶點擊“我的”進入我的頁面,在我的頁面可以對我的收藏管理、用戶充值、在線聊天、購物車、我的訂單等進行詳細操作,如圖5-13所示。
圖5-13我的功能界面圖
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;
/**
* 登錄相關
*/
@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();
}
}
源碼獲取
大家點贊、收藏、關注?,讓更多需要的同學看到
不同開發(fā)語言專欄推薦訂閱:
????百套小程序APP項目實戰(zhàn)持續(xù)更新中~?
???千套JAVA項目實戰(zhàn)持續(xù)更新中~?
???百套Python實戰(zhàn)項目持續(xù)更新中~?文章來源:http://www.zghlxwxcb.cn/news/detail-840343.html
??下方有我的微信名片??文章來源地址http://www.zghlxwxcb.cn/news/detail-840343.html
到了這里,關于基于微信小程序的蛋糕訂購平臺【畢設源碼論文】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!