一、摘要
1.1 項(xiàng)目介紹
基于JAVA+Vue+SpringBoot+MySQL的快樂(lè)販賣館管理系統(tǒng),包含了視頻模塊、視頻收藏模塊、視頻打分模塊、視頻交友模塊、視頻購(gòu)物車模塊和視頻訂單模塊,還包含系統(tǒng)自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數(shù)據(jù)字典管理、文件管理、圖表展示等基礎(chǔ)模塊,快樂(lè)販賣館管理系統(tǒng)基于角色的訪問(wèn)控制,給視頻管理員、普通用戶使用,可將權(quán)限精確到按鈕級(jí)別,您可以自定義角色并分配權(quán)限,系統(tǒng)適合設(shè)計(jì)精確的權(quán)限約束需求。
1.2 項(xiàng)目錄屏
二、功能模塊
隨著互聯(lián)網(wǎng)行業(yè)各種業(yè)務(wù)的興起和發(fā)展,這一領(lǐng)域的市場(chǎng)競(jìng)爭(zhēng)也日趨激烈。從視頻網(wǎng)站的角度來(lái)看,主要的視頻網(wǎng)站并未像許多人認(rèn)為的那樣在激烈的市場(chǎng)競(jìng)爭(zhēng)中真正獲利。相反,連續(xù)的損失是視頻網(wǎng)站面臨的最困難的問(wèn)題??鞓?lè)販賣館系統(tǒng)是一套交易搞笑視頻的系統(tǒng),用戶可以在其中自由交易搞笑視頻。
快樂(lè)販賣館系統(tǒng)基于Java語(yǔ)言開(kāi)發(fā),采用前后端分離的技術(shù)架構(gòu),前端采用Vue.js,后端采用SpringBoot框架,采用MySQL數(shù)據(jù)庫(kù)。
快樂(lè)販賣館系統(tǒng)的功能性需求主要包含數(shù)據(jù)中心模塊、搞笑視頻模塊、視頻收藏模塊、視頻評(píng)價(jià)模塊、視頻交易模塊、視頻好友模塊這六大模塊,系統(tǒng)是基于瀏覽器運(yùn)行的web管理后端,其中各個(gè)模塊詳細(xì)說(shuō)明如下。
2.1 數(shù)據(jù)中心模塊
數(shù)據(jù)中心模塊包含了快樂(lè)販賣館系統(tǒng)的系統(tǒng)基礎(chǔ)配置,如登錄用戶的管理、運(yùn)營(yíng)公司組織架構(gòu)的管理、用戶菜單權(quán)限的管理、系統(tǒng)日志的管理、公用文件云盤(pán)的管理。
其中登錄用戶管理模塊,由管理員負(fù)責(zé)運(yùn)維工作,管理員可以對(duì)登錄用戶進(jìn)行增加、刪除、修改、查詢操作。
組織架構(gòu),指的是高校的組織架構(gòu),該模塊適用于管理這些組織架構(gòu)的部門層級(jí)和教師的部門歸屬情況。
用戶菜單權(quán)限管理模塊,用于管理不同權(quán)限的用戶,擁有哪些具體的菜單權(quán)限。
系統(tǒng)日志的管理,用于維護(hù)用戶登入系統(tǒng)的記錄,方便定位追蹤用戶的操作情況。
公用云盤(pán)管理模塊,用于統(tǒng)一化維護(hù)快樂(lè)販賣館系統(tǒng)中的圖片,如合同簽訂文件、合同照片等等。
2.2 搞笑視頻模塊
搞笑視頻是快樂(lè)販賣館系統(tǒng)的核心,需要建立搞笑視頻模塊對(duì)其進(jìn)行管理,搞笑視頻的數(shù)據(jù)包括視頻名稱、視頻介紹、視頻價(jià)格、文件、排序值、備注、創(chuàng)建人、創(chuàng)建時(shí)間、更新人、更新時(shí)間,用戶可以發(fā)布新的搞笑視頻,管理員可以對(duì)用戶發(fā)布的搞笑視頻進(jìn)行刪除操作。
2.3 視頻收藏模塊
如果用戶對(duì)某個(gè)視頻非常滿意,可以對(duì)其進(jìn)行收藏,以便于后續(xù)快捷瀏覽,視頻收藏的字段包括視頻ID、視頻名稱、收藏時(shí)間、備注、創(chuàng)建人、創(chuàng)建時(shí)間、更新人、更新時(shí)間,用戶可以對(duì)搞笑視頻進(jìn)行收藏操作,管理員可以查詢用戶的收藏?cái)?shù)據(jù)。
2.4 視頻評(píng)分模塊
在快樂(lè)販賣館系統(tǒng)中,用戶可以對(duì)搞笑視頻進(jìn)行評(píng)價(jià),以此達(dá)到交互的效果,視頻評(píng)分的數(shù)據(jù)包括視頻ID、視頻名稱、視頻文件、評(píng)分?jǐn)?shù)值、創(chuàng)建人、創(chuàng)建時(shí)間、更新人、更新時(shí)間,用戶可以對(duì)搞笑視頻進(jìn)行評(píng)分操作,管理員可以查詢用戶的評(píng)分?jǐn)?shù)據(jù)。
2.5 視頻交易模塊
用戶可以購(gòu)買搞笑視頻,購(gòu)買需要消耗余額,余額來(lái)源自上傳的搞笑視頻,視頻交易字段包括視頻ID、視頻名稱、視頻文件、付款狀態(tài)、創(chuàng)建人、創(chuàng)建時(shí)間、更新人、更新時(shí)間,用戶可以對(duì)搞笑視頻進(jìn)行下單、付款操作,管理員可以查詢用戶的交易數(shù)據(jù)。
2.6 視頻好友模塊
如果用戶對(duì)視頻的發(fā)布者很感興趣,可以添加單向好友,方便留檔,視頻好友的字段包括所屬人、好友ID、好友昵稱、好友手機(jī)、創(chuàng)建人、創(chuàng)建時(shí)間、更新人、更新時(shí)間,用戶可以添加搞笑視頻的創(chuàng)作者,管理員可以查詢用戶添加的好友數(shù)據(jù)。
三、系統(tǒng)設(shè)計(jì)
3.1 用例設(shè)計(jì)
3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
3.2.1 搞笑視頻表
3.2.2 視頻收藏表
3.2.3 視頻評(píng)分表
3.2.4 視頻交易表
四、系統(tǒng)展示
五、核心代碼
5.1 查詢搞笑視頻
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢搞笑視頻")
public Result<IPage<FunnyVideo>> getByPage(@ModelAttribute FunnyVideo funnyVideo ,@ModelAttribute PageVo page){
QueryWrapper<FunnyVideo> qw = new QueryWrapper<>();
User currUser = securityUtil.getCurrUser();
if(!ZwzNullUtils.isNull(funnyVideo.getTitle())) {
qw.like("title",funnyVideo.getTitle());
}
if(!ZwzNullUtils.isNull(funnyVideo.getContent())) {
qw.like("content",funnyVideo.getContent());
}
IPage<FunnyVideo> data = iFunnyVideoService.page(PageUtil.initMpPage(page),qw);
for (FunnyVideo vo : data.getRecords()) {
// 好友狀態(tài)
QueryWrapper<FunnyOrder> orderQw = new QueryWrapper<>();
orderQw.eq("video_id",vo.getId());
orderQw.eq("user_id",currUser.getId());
vo.setStatus1(iFunnyOrderService.count(orderQw));
// 好友狀態(tài)
QueryWrapper<Friends> friQw = new QueryWrapper<>();
friQw.eq("my_id",currUser.getId());
friQw.eq("user_id",vo.getUserId());
vo.setStatus2(iFriendsService.count(friQw));
// 收藏狀態(tài)
QueryWrapper<FunnyCollect> fcQw = new QueryWrapper<>();
fcQw.eq("video_id",vo.getId());
fcQw.eq("user_id",currUser.getId());
vo.setStatus3(iFunnyCollectService.count(fcQw));
}
return new ResultUtil<IPage<FunnyVideo>>().setData(data);
}
5.2 加購(gòu)搞笑視頻
@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增單條搞笑視頻訂單")
public Result<FunnyOrder> addOne(@RequestParam String id){
FunnyVideo v = iFunnyVideoService.getById(id);
if(v == null) {
return ResultUtil.error("視頻不存在");
}
User currUser = securityUtil.getCurrUser();
QueryWrapper<FunnyOrder> orderQw = new QueryWrapper<>();
orderQw.eq("video_id",v.getId());
orderQw.eq("user_id", currUser.getId());
FunnyOrder order = iFunnyOrderService.getOne(orderQw);
if(order != null) {
if(Objects.equals("加購(gòu)",order.getStatus1())) {
return ResultUtil.error("您已加購(gòu),請(qǐng)下單");
} else {
return ResultUtil.error("您已購(gòu)買,無(wú)需重復(fù)購(gòu)買");
}
}
FunnyOrder o = new FunnyOrder();
o.setVideoId(v.getId());
o.setTitle(v.getTitle());
o.setContent(v.getContent());
o.setFileUrl(v.getFileUrl());
o.setPrice(v.getPrice());
o.setUserId(currUser.getId());
o.setUserName(currUser.getNickname());
o.setStatus1("加購(gòu)");
o.setStatus2("未付款");
iFunnyOrderService.saveOrUpdate(o);
return ResultUtil.success();
}
5.3 搞笑視頻打分
@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增單條搞笑視頻評(píng)分")
public Result<Object> addOne(@RequestParam String id,@RequestParam BigDecimal grade){
FunnyVideo video = iFunnyVideoService.getById(id);
if(video == null) {
return ResultUtil.error("視頻不存在");
}
User currUser = securityUtil.getCurrUser();
FunnyGrade c = new FunnyGrade();
c.setVideoId(video.getId());
c.setTitle(video.getTitle());
c.setContent(video.getContent());
c.setFileUrl(video.getFileUrl());
c.setUserId(currUser.getId());
c.setUserName(currUser.getNickname());
c.setGrade(grade);
c.setTime(DateUtil.now());
iFunnyGradeService.saveOrUpdate(c);
return ResultUtil.success();
}
5.4 搞笑視頻收藏
@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增單條搞笑視頻收藏")
public Result<Object> addOne(@RequestParam String id){
FunnyVideo video = iFunnyVideoService.getById(id);
if(video == null) {
return ResultUtil.error("視頻不存在");
}
User currUser = securityUtil.getCurrUser();
QueryWrapper<FunnyCollect> qw = new QueryWrapper<>();
qw.eq("video_id",video.getId());
qw.eq("user_id",currUser.getId());
if(iFunnyCollectService.count(qw) < 1L) {
FunnyCollect c = new FunnyCollect();
c.setVideoId(video.getId());
c.setTitle(video.getTitle());
c.setContent(video.getContent());
c.setFileUrl(video.getFileUrl());
c.setUserId(currUser.getId());
c.setUserName(currUser.getNickname());
c.setTime(DateUtil.now());
iFunnyCollectService.saveOrUpdate(c);
}
return ResultUtil.success();
}
5.5 添加好友
@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "添加單條好友")
public Result<Friends> addOne(@RequestParam String id){
FunnyVideo v = iFunnyVideoService.getById(id);
if(v == null) {
return ResultUtil.error("視頻不存在");
}
User currUser = securityUtil.getCurrUser();
if(Objects.equals(v.getUserId(),currUser.getId())) {
return ResultUtil.error("不能添加自己為好友!");
}
QueryWrapper<Friends> qw = new QueryWrapper<>();
qw.eq("my_id", currUser.getId());
qw.eq("user_id",v.getUserId());
if(iFriendsService.count(qw) > 0L) {
return ResultUtil.error("已添加,無(wú)需重復(fù)添加!");
}
User user = iUserService.getById(v.getUserId());
if(user != null) {
Friends f = new Friends();
f.setMyId(currUser.getId());
f.setUserId(user.getId());
f.setUserName(user.getNickname());
f.setMobile(user.getMobile());
f.setAddTime(DateUtil.now());
iFriendsService.saveOrUpdate(f);
}
return ResultUtil.success();
}
六、免責(zé)說(shuō)明
- 本項(xiàng)目?jī)H供個(gè)人學(xué)習(xí)使用,商用授權(quán)請(qǐng)聯(lián)系博主,否則后果自負(fù)。
- 博主擁有本軟件構(gòu)建后的應(yīng)用系統(tǒng)全部?jī)?nèi)容所有權(quán)及獨(dú)立的知識(shí)產(chǎn)權(quán),擁有最終解釋權(quán)。
- 如有問(wèn)題,歡迎在倉(cāng)庫(kù) Issue 留言,看到后會(huì)第一時(shí)間回復(fù),相關(guān)意見(jiàn)會(huì)酌情考慮,但沒(méi)有一定被采納的承諾或保證。
下載本系統(tǒng)代碼或使用本系統(tǒng)的用戶,必須同意以下內(nèi)容,否則請(qǐng)勿下載!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-802158.html
- 出于自愿而使用/開(kāi)發(fā)本軟件,了解使用本軟件的風(fēng)險(xiǎn),且同意自己承擔(dān)使用本軟件的風(fēng)險(xiǎn)。
- 利用本軟件構(gòu)建的網(wǎng)站的任何信息內(nèi)容以及導(dǎo)致的任何版權(quán)糾紛和法律爭(zhēng)議及后果和博主無(wú)關(guān),博主對(duì)此不承擔(dān)任何責(zé)任。
- 在任何情況下,對(duì)于因使用或無(wú)法使用本軟件而導(dǎo)致的任何難以合理預(yù)估的損失(包括但不僅限于商業(yè)利潤(rùn)損失、業(yè)務(wù)中斷與業(yè)務(wù)信息丟失),博主概不承擔(dān)任何責(zé)任。
- 必須了解使用本軟件的風(fēng)險(xiǎn),博主不承諾提供一對(duì)一的技術(shù)支持、使用擔(dān)保,也不承擔(dān)任何因本軟件而產(chǎn)生的難以預(yù)料的問(wèn)題的相關(guān)責(zé)任。
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-802158.html
到了這里,關(guān)于【開(kāi)源】基于JAVA的快樂(lè)販賣館管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!