🍅文末获取源码联系🍅 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
一、采用技术:
后端:Java+SpringBoot
前端:Vue
数据库:MySQL
开发软件:Eclipse、MyEclipse、IDEA都可以运行
二、系统功能:
本论文首先对安康旅游网站进行需求分析,从系统开发环境、系统目标、设计流程、功能设计等几个方面进行系统的总体设计,开发出本基于JSP的安康旅游网站,主要实现了游客功能模块和管理员功能模块两大部分,游客可查看景点信息、旅游线路、特产信息、酒店信息等,注册登录后可进行景点购票、酒店预订、特产购买等操作,同时管理员可进入系统后台对系统进行全面管理操作。通过对系统的功能进行测试,测试结果证明该系统界面友好、功能完善,有着较高的使用价值,具有庞大的潜在用户群体和较广阔的应用前景。
本安康旅游网站基于SpringBoot框架、JSP技术、Java编程语言、MySQL数据库开发完成,"操作简单,功能实用"这是本软件设计的核心理念,本系统力求创造最好的用户体验。
三、运行截图:
![](https://img-blog.csdnimg.cn/img_convert/3817c30e43fb7080a71d5d551fab7e27.png)
![](https://img-blog.csdnimg.cn/img_convert/3c5be721c94c57ffcda626faf172e754.png)
![](https://img-blog.csdnimg.cn/img_convert/844969ca8139cf61ca615f0d112d9fa3.png)
![](https://img-blog.csdnimg.cn/img_convert/4c63b91833dbba1f9f89b23118d49c60.png)
![](https://img-blog.csdnimg.cn/img_convert/5e7bd48dec1b64ca81c55ba24115a66f.png)
![](https://img-blog.csdnimg.cn/img_convert/bbba492f0cbe35af9fd3452cb83e2535.png)
![](https://img-blog.csdnimg.cn/img_convert/48709e9c97b0a229e450d4ed9afab8a5.png)
![](https://img-blog.csdnimg.cn/img_convert/62ac061f36c533b07d2329daaee62253.png)
![](https://img-blog.csdnimg.cn/img_convert/654b81321955c01edf11084b25fe1f8f.png)
![](https://img-blog.csdnimg.cn/img_convert/21fe67658b6f181410c5f1413c5730f0.png)
![](https://img-blog.csdnimg.cn/img_convert/bc64177d9ba177f96754cc8d583ec4c8.png)
![](https://img-blog.csdnimg.cn/img_convert/227064faadab05a3d11fac066d11ba21.png)
四、关键代码:
/**
* 用户账户:用于保存用户登录信息(User)表控制层
*/
@Slf4j
@RestController
@RequestMapping("user")
public class UserController extends BaseController {
/**
* 服务对象
*/
@Autowired
public UserController(UserService service) {
setService(service);
}
/**
* Token服务
*/
@Autowired
private AccessTokenService tokenService;
@Autowired
private UserGroupService userGroupService;
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map signUp(@RequestBody User user) {
// 查询用户
Map query = new HashMap();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 找回密码
* @param form
* @return
*/
@PostMapping("forget_password")
public Map forgetPassword(@RequestBody User form,HttpServletRequest request) {
JSONObject ret = new JSONObject();
String username = form.getUsername();
String code = form.getCode();
String password = form.getPassword();
// 判断条件
if(code == null || code.length() == 0){
return error(30000, "验证码不能为空");
}
if(username == null || username.length() == 0){
return error(30000, "用户名不能为空");
}
if(password == null || password.length() == 0){
return error(30000, "密码不能为空");
}
// 查询用户
Map query = new HashMap();
query.put("username",username);
Query select = service.select(query, service.readConfig(request));
List list = select.getResultList();
if (list.size() > 0) {
User o = (User) list.get(0);
JSONObject query2 = new JSONObject();
JSONObject form2 = new JSONObject();
// 修改用户密码
query2.put("user_id",o.getUserId());
form2.put("password",service.encryption(password));
service.update(query, service.readConfig(request), form2);
return success(1);
}
return error(70000,"用户不存在");
}
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map login(@RequestBody Map data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map map = new HashMap();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap()).getResultList();
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
}
五、论文目录:
![](https://img-blog.csdnimg.cn/img_convert/20514611624eaab727d3d5b61b241f33.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/b0963d9d4ff99146c798ae2dd3e84828.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/253bbc3fc51ce46252982d5e63d69086.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/e9f8ecfce9a6a0e4ca317e62fc232801.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/bf50f335d18428ee2ea7d4a0104f871e.jpeg)
|