源代碼+數據庫+LW文檔(1萬字以上)+開題報告+答辯稿ppt+部署教程+代碼講解+代碼時間修改工具
技術實現
- 開發語言:后端:Java 前端:vue
- 框架:springboot
- 數據庫:mysql
開發工具
JDK版本:JDK1.8
數據庫:mysql 數據庫工具:Navicat
開發軟件:idea
主要角色及功能介紹
本次系統的用例圖做出了十分明確的功能劃分,在設計時可以有很好的設計思路進行設計和延展。
(1)管理員用例圖如下所示:
圖3-1管理員用例圖
(2)用戶用例圖如下所示:
圖3-2用戶用例圖
數據庫
數據庫設計之后,根據數據庫關系,可以更加清晰地了解數據庫結構,每一個數據表之間的關系,再創建數據表。快速更改和查詢對應的信息,有了數據庫就不用在程序和代碼中尋找。
分析智慧旅游系統的數據結構后,在E-R圖中分析管理員登錄時的模式,需要輸入用戶名與密碼,角色,管理員信息E-R如圖4-4所示。
圖4-4 管理員信息E-R圖
用戶信息E-R圖如圖4-5所示。
圖4-5用戶信息E-R圖
旅游路線E-R圖如圖4-6所示。
圖4-6旅游路線E-R圖
車票信息E-R圖如圖4-7所示。
圖4-7車票信息E-R圖
門票信息E-R圖如圖4-8所示。
圖4-8門票信息E-R圖
酒店信息E-R圖如圖4-9所示。
圖4-9酒店信息E-R圖
智慧旅游系統E-R關系總圖,如圖4-10所示。
圖4-10 智慧旅游系統E-R關系模型圖
系統功能實現及截圖
5.1前臺用戶功能實現
當用戶打開系統的網址后,首先看到的就是首頁界面。在這里,用戶能夠看到智慧旅游系統的登錄頁面,有登錄賬號、登錄密碼等信息。系統首頁界面如圖5-1所示:
圖5-1 系統首頁界面
用戶登陸的核心代碼如下:
/*** 登錄*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));if(u==null || !u.getMima().equals(password)) {return R.error("賬號或密碼不正確");}String token = tokenService.generateToken(u.getId(), username,"yonghu", "用戶" );return R.ok().put("token", token);
}
這是一個用戶注冊的界面,當用戶沒有賬戶時可以通過注冊來登錄系統,只需要根據相應的提示輸入用戶信息等即可。用戶注冊界面如圖5-2所示:
圖5-2 用戶注冊界面
用戶注冊核心代碼如下:
/*** 注冊*/
@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody YonghuEntity yonghu){//ValidatorUtils.validateEntity(yonghu);YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", yonghu.getYonghuzhanghao()));if(u!=null) {return R.error("注冊用戶已存在");}Long uId = new Date().getTime();yonghu.setId(uId);yonghuService.insert(yonghu);return R.ok();}
用戶點擊旅游路線頁面查看路線名稱、起點、終點、交通方式、導游費用、費用說明、發布時間、點擊次數等信息。如圖5-3所示:
圖5-3旅游路線頁面
旅游路線核心代碼如下:
@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,LvyouluxianEntity lvyouluxian, HttpServletRequest request){EntityWrapper<LvyouluxianEntity> ew = new EntityWrapper<LvyouluxianEntity>();PageUtils page = lvyouluxianService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, lvyouluxian), params), params));return R.ok().put("data", page);}
用戶可以點擊車票頁面查看車票編號、車站名稱、座位類型、出發地、目的地、出發時間、班列介紹、車票價格等信息。如圖5-4所示:
圖5-4車票信息界面
車票信息核心代碼如下:
@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,ChepiaoxinxiEntity chepiaoxinxi, HttpServletRequest request){EntityWrapper<ChepiaoxinxiEntity> ew = new EntityWrapper<ChepiaoxinxiEntity>();PageUtils page = chepiaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, chepiaoxinxi), params), params));return R.ok().put("data", page);}
用戶可以點擊景點信息頁面查看景點類型、門票價格、開放時間、景點地址、歷史背景、景點發布、特色活動、點擊次數等信息。如圖5-5所示:
圖5-5景點信息界面
景點信息核心代碼如下:
@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,JingdianxinxiEntity jingdianxinxi, HttpServletRequest request){EntityWrapper<JingdianxinxiEntity> ew = new EntityWrapper<JingdianxinxiEntity>();PageUtils page = jingdianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingdianxinxi), params), params));return R.ok().put("data", page);}
用戶可以點擊酒店信息頁面查看酒店類型、酒店地址、客房類型、客房數量、價格/天、聯系電話費用等信息。如圖5-6所示:
圖5-6酒店信息界面
酒店信息核心代碼如下:
@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,JingdianxinxiEntity jingdianxinxi, HttpServletRequest request){EntityWrapper<JingdianxinxiEntity> ew = new EntityWrapper<JingdianxinxiEntity>();PageUtils page = jingdianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingdianxinxi), params), params));return R.ok().put("data", page);}
用戶可以點擊美食信息頁面查看美食分類、價格、美食地點、美食評分、美食主料、美食口味、美食特色、烹飪方法、發布時間、點擊次數等信息。如圖5-7所示:
圖5-7美食信息界面
美食信息核心代碼如下:
@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,MeishixinxiEntity meishixinxi, HttpServletRequest request){EntityWrapper<MeishixinxiEntity> ew = new EntityWrapper<MeishixinxiEntity>();PageUtils page = meishixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, meishixinxi), params), params));return R.ok().put("data", page);}
5.2后臺管理員功能實現
后臺管理員登錄,在登錄頁面輸入管理員賬號,在正確輸入用戶名和密碼后,點擊登錄操作;如圖5-8所示。
圖5-8 后臺管理員登錄界面
后臺登陸核心代碼如下:
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().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);
}