基于javaweb的SpringBoot旅游管理系统(java+springboot+jpa+thymeleaf+html+bootstrap+maven)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

121124401105

131124401105

141124401105

151124401105

161124401105

171124401105

181124401105

191124401105

201124401105

212124123108

基于javaweb的SpringBoot旅游管理系统(java+springboot+jpa+thymeleaf+html+bootstrap+maven)

前台:http://localhost:8765/travel/
user1 123456
user2 123456

后台:http://localhost:8765/travel/system
admin 123456

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
private UserRepository userRepository;

@Autowired
private HotelRepository hotelRepository;

@Autowired
private AttractionsRepository attractionsRepository;

@Autowired
private TravelRouteRepository travelRouteRepository;

@Autowired
private TravelStrategyRepository travelStrategyRepository;

private Random random = new Random(100);

public Result login(SysUser sysUser, HttpServletResponse response) {


SysUser sysUserByUsrname = sysUserRepository.findSysUserByUsername(sysUser.getUsername());
if (sysUserByUsrname == null) {
return ResultGenerator.genFailResult("用户名错误!");
} else {
if (sysUser.getPassword().equals(sysUserByUsrname.getPassword())) {
CookieUitl.set(response, "sysUsername", sysUser.getUsername(), 3600);
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult("密码错误");
}
}

}

public void logout(HttpServletRequest request, HttpServletResponse response) {
Cookie cookie = CookieUitl.get(request, "sysUsername");
if (cookie != null) {
CookieUitl.set(response, "sysUsername", null, 0);
}
}

public Page<User> getUserPage(Pageable pageable) {
Page<User> userPage = userRepository.findAll((root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
query.where(predicates.toArray(new Predicate[]{}));
query.orderBy(cb.desc(root.get("id")));
return null;
}, pageable);
return userPage;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
        if (!StringUtils.isEmpty(searchName)) {
predicates.add((cb.like(root.get("name"), "%" + searchName + "%")));
}
query.where(predicates.toArray(new Predicate[]{}));
query.orderBy(cb.desc(root.get("createDate")));
return null;
}, pageable);
return attractionsPage;
}

public Attractions findAttractionsById(String id) {
return attractionsRepository.findById(id).orElseThrow(() -> new ServiceException("景点id错误!"));
}


public List<UserHotel> getReserveHotelByUser(HttpServletRequest request) {
Cookie cookie = CookieUitl.get(request, "username");
if (cookie == null) {
throw new ServiceException("未能获得正确的用户名");
}
User user = userRepository.findUserByUsername(cookie.getValue());
return userHotelRepository.findUserHotelsByUser(user);
}

@Transactional(rollbackFor = Exception.class)
public Result cancelReserve(HttpServletRequest request, String id) {
Cookie cookie = CookieUitl.get(request, "username");
if (cookie == null) {
throw new ServiceException("用户没有登录!");
}
Hotel hotel = findHotelById(id);
User user = userRepository.findUserByUsername(cookie.getValue());
UserHotel userHotel = userHotelRepository.findUserHotelByHotelAndUser(hotel, user);
//存在值就是取消预约.不存在值就是预约
if (userHotel != null) {
userHotelRepository.delete(userHotel);
} else {
UserHotel newUserHotel = new UserHotel();
newUserHotel.setId(IdGenerator.id());
newUserHotel.setCreateDate(new Date());
newUserHotel.setUser(user);
newUserHotel.setHotel(hotel);
userHotelRepository.saveAndFlush(newUserHotel);
}
return ResultGenerator.genSuccessResult();
}

public Boolean isReserveHotel(HttpServletRequest request, String id) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
        model.addAttribute("user", user);
return "center/user-center";
}

@RequestMapping("/centerEditUI")
public String centerEditUI(Model model, HttpServletRequest request) {
User user = userCenterService.getUser(request);
model.addAttribute("user", user);
return "center/user-center-edit";
}

@RequestMapping("/centerEdit")
@ResponseBody
public Result centerEdit(Model model, User user) {
return userCenterService.centerEdit(user);
}

@RequestMapping("/centerEditPWUI")
public String centerEditPWUI(Model model, HttpServletRequest request) {
User user = userCenterService.getUser(request);
model.addAttribute("id", user.getId());
return "center/user-center-editpw";
}

@RequestMapping("/centerEditPW")
@ResponseBody
public Result centerEditPW(HttpServletRequest request, HttpServletResponse response, Model model, @RequestParam("id") String id, @RequestParam("oldPassword") String oldPassword, @RequestParam("newPassword") String newPassword) {
return userCenterService.centerEditPW(request, response, id, oldPassword, newPassword);
}
}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
        }
User user = userRepository.findUserByUsername(cookie.getValue());

if (StringUtils.isEmpty(travelStrategy.getId())) {//没有id的情况
travelStrategy.setId(IdGenerator.id());
if (travelStrategy.getStatus() == null) {
//默认为停用
travelStrategy.setStatus(StatusEnum.DOWM_STATUS.getCode());
travelStrategy.setCreateDate(new Date());
travelStrategy.setUser(user);
}
} else {
//有id的情况
TravelStrategy oldTravelStrategy = getTravelStrategyById(travelStrategy.getId());
travelStrategy.setStatus(oldTravelStrategy.getStatus());
travelStrategy.setCreateDate(oldTravelStrategy.getCreateDate());
}
travelStrategyRepository.saveAndFlush(travelStrategy);
return ResultGenerator.genSuccessResult();
}

public List<TravelStrategy> findTop10Strategy() {
PageRequest pageable = PageRequest.of(0, 10);
//查询启用的旅游路线列表
Page<TravelStrategy> travelStrategyPage = travelStrategyRepository.findAll((root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
//status状态,查询状态为0,启动的路线
predicates.add((cb.equal(root.get("status"), 0)));
query.where(predicates.toArray(new Predicate[]{}));
query.orderBy(cb.desc(root.get("createDate")));
return null;
}, pageable);
return travelStrategyPage.getContent();
}
}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
    public Result login(User user, HttpServletResponse response) {
User userByUsername = userRepository.findUserByUsername(user.getUsername());
if (userByUsername == null) {
return ResultGenerator.genFailResult("用户名错误!");
} else {
if (user.getPassword().equals(userByUsername.getPassword())) {

Cookie cookie = new Cookie("username", user.getUsername());
cookie.setPath("/");
cookie.setMaxAge(3600);
response.addCookie(cookie);
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult("密码错误!");
}
}

}

public void logout(HttpServletRequest request, HttpServletResponse response) {
Cookie cookie = CookieUitl.get(request, "username");
if(cookie != null){
CookieUitl.set(response,"username",null,0);
}


// String value = null;
//
// Cookie[] cookies = request.getCookies();
// if (cookies == null){
// System.out.println("error");
// }else{
// for (int i = 0;i<cookies.length;i++){
// if(cookies[i].getName().equals("root")){
// value = cookies[i].getValue();
// }
// }
// }
//
// Cookie cookie = new Cookie("username",value);
// cookie.setMaxAge(-1);
}

public Result register(User user) {
User userByUsername = userRepository.findUserByUsername(user.getUsername());
if(userByUsername != null){
return ResultGenerator.genFailResult("用户名重复!");
}
//Todo 这里有一个事务操作
user.setId(IdGenerator.id());
userRepository.save(user);


项目链接:
https://javayms.github.io?id=111124401105201lr
https://javayms.pages.dev?id=111124401105201lr