package com.power.travel.service;
import com.power.travel.core.Result;
import com.power.travel.core.ResultGenerator;
import com.power.travel.core.ServiceException;
import com.power.travel.enums.StatusEnum;
import com.power.travel.model.*;
import com.power.travel.repository.*;
import com.power.travel.util.CookieUitl;
import com.power.travel.util.IdGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.thymeleaf.util.StringUtils;
import javax.persistence.criteria.Predicate;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
@Service
public class SystemService {
@Autowired
private SysUserRepository sysUserRepository;
@Autowired
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;
}
@Transactional(rollbackFor = Exception.class)
public Result saveUser(User user) {
System.out.println(user.getId());
if (StringUtils.isEmpty(user.getId())) {//没有id的情况
user.setId(IdGenerator.id());
} else {
User oldUser = getUserById(user.getId());
user.setUsername(oldUser.getUsername());
user.setName(oldUser.getName());
oldUser.setPassword(user.getPassword());
}
userRepository.saveAndFlush(user);
return ResultGenerator.genSuccessResult();
}
public User getUserById(String id) {
User user = userRepository.findById(id).orElseThrow(() -> new ServiceException("用户ID错误"));
return user;
}
public Page<Hotel> getHotelPage(Pageable pageable) {
Page<Hotel> hotelPage = hotelRepository.findAll((root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
query.where(predicates.toArray(new Predicate[]{}));
query.orderBy(cb.desc(root.get("createDate")));
return null;
}, pageable);
return hotelPage;
}
@Transactional(rollbackFor = Exception.class)
public Result saveHotel(Hotel hotel) {
if (StringUtils.isEmpty(hotel.getId())) {//没有id的情况
hotel.setId(IdGenerator.id());
hotel.setStatus(StatusEnum.DOWM_STATUS.getCode());
hotel.setCreateDate(new Date());
int i = random.nextInt(100);
hotel.setImage("MY_kezhan_0" + (i % 8 + 1));
} else {
//有id的情况
Hotel oldHotel = getHotelById(hotel.getId());
hotel.setStatus(oldHotel.getStatus());
hotel.setCreateDate(oldHotel.getCreateDate());
hotel.setImage(oldHotel.getImage());
}
hotelRepository.saveAndFlush(hotel);
return ResultGenerator.genSuccessResult();
}
public Hotel getHotelById(String id) {
Hotel hotel = hotelRepository.findById(id).orElseThrow(() -> new ServiceException("酒店ID错误!"));
return hotel;
}
public Result updateStatus(String id) {
Hotel hotel = getHotelById(id);
if (hotel.getStatus().equals(StatusEnum.DOWM_STATUS.getCode())) {
//改变状态
hotel.setStatus(StatusEnum.UP_STATUS.getCode());
} else {
hotel.setStatus(StatusEnum.DOWM_STATUS.getCode());
}
hotelRepository.saveAndFlush(hotel);
return ResultGenerator.genSuccessResult();
}
public Page<Attractions> getAttractionsPage(Pageable pageable) {
Page<Attractions> attractionsPage = attractionsRepository.findAll((root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
query.where(predicates.toArray(new Predicate[]{}));
query.orderBy(cb.desc(root.get("createDate")));
return null;
}, pageable);
return attractionsPage;
}
public Attractions getAttractionsById(String id) {
Attractions attractions = attractionsRepository.findById(id).orElseThrow(() -> new ServiceException("景点ID错误"));
return attractions;
}
public Result updateAttractionsStatus(String id) {
Attractions attractions = getAttractionsById(id);
if (attractions.getStatus().equals(StatusEnum.DOWM_STATUS.getCode())) {
//改变状态
attractions.setStatus(StatusEnum.UP_STATUS.getCode());
} else {
attractions.setStatus(StatusEnum.DOWM_STATUS.getCode());
}
attractionsRepository.saveAndFlush(attractions);
return ResultGenerator.genSuccessResult();
}
@Transactional(rollbackFor = Exception.class)
public Result saveAttractions(Attractions attractions) {
if (StringUtils.isEmpty(attractions.getId())) {//没有id的情况
attractions.setId(IdGenerator.id());
attractions.setStatus(StatusEnum.DOWM_STATUS.getCode());
attractions.setCreateDate(new Date());
int i = random.nextInt(100);
attractions.setImage("MY_jingdian_0" + (i % 8 + 1));
} else {
//有id的情况
Attractions oldAttractions = getAttractionsById(attractions.getId());
attractions.setStatus(oldAttractions.getStatus());
attractions.setCreateDate(oldAttractions.getCreateDate());
attractions.setImage(oldAttractions.getImage());
}
attractionsRepository.saveAndFlush(attractions);
return ResultGenerator.genSuccessResult();
}
public Page<TravelRoute> getTravelRoutePage(Pageable pageable) {
Page<TravelRoute> travelRoutePage = travelRouteRepository.findAll((root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
query.where(predicates.toArray(new Predicate[]{}));
query.orderBy(cb.desc(root.get("createDate")));
return null;
}, pageable);
return travelRoutePage;
}
@Transactional(rollbackFor = Exception.class)
public Result saveTravelRoute(TravelRoute travelRoute) {
if (StringUtils.isEmpty(travelRoute.getId())) {//没有id的情况
travelRou
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
旅游网站是基于 Spring Boot、Spring Data JPA 和 Thymeleaf 框架开发的全新旅游信息分享和预订平台,旨在为用户提供全方位的旅游信息查询、景点推荐、线路预订和旅游体验分享。 该系统具有以下特点和功能: 1. **综合信息:** 旅游网站整合了丰富的旅游资源信息,包括景点介绍、旅游线路、酒店预订、交通信息等,为用户提供全面的旅游服务。 2. **景点推荐:** 系统根据用户的偏好和位置信息,推荐个性化的旅游景点和线路,帮助用户发现更多有趣的目的地和景点。 3. **线路预订:** 用户可以在网站上查看各种旅游线路的详细信息,并进行在线预订和支付,轻松安排自己的旅行行程。 4. **酒店预订:** 系统提供了丰富的酒店信息和预订服务,用户可以根据需求选择合适的酒店,并进行在线预订和支付。 5. **交通信息:** 网站提供了各种交通信息查询服务,包括航班查询、火车查询、汽车票预订等,方便用户安排出行交通。 6. **用户分享:** 用户可以在网站上分享自己的旅游经历和体验,发布游记、照片和评论,与其他用户交流旅游心得和建议。 7. **用户管
资源推荐
资源详情
资源评论
收起资源包目录
旅游网站(spring boot-jpa-thmleaf).zip (281个子文件)
linecons.css 147KB
bootstrap.min.css 118KB
animate.css 71KB
style.css 60KB
zozo.tabs.min.css 51KB
font-awesome.min.css 30KB
zozo.tabs.flat.min.css 23KB
slider-pro.css 16KB
bootstrap-datepicker.min.css 15KB
layer.css 14KB
slider-pro.min.css 13KB
style2.css 6KB
layer.css 5KB
owl.carousel.min.css 3KB
responsive.css 3KB
perfect-scrollbar.css 3KB
owl.theme.default.min.css 2KB
jquery.scrolling-tabs.css 2KB
closedhand.cur 326B
openhand.cur 326B
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.eot 20KB
linecons.eot 15KB
preloader.gif 70KB
loading-0.gif 6KB
ajax-loader.gif 3KB
loading-2.gif 2KB
loading-1.gif 701B
blank.gif 43B
user-center-edit.html 17KB
index.html 13KB
layout.html 11KB
pushStrategy.html 9KB
user-center.html 9KB
list.html 8KB
list.html 8KB
list.html 8KB
pageable.html 7KB
reserve-user-manage.html 7KB
list.html 7KB
index-register.html 7KB
user-center-editpw.html 6KB
strategy-manage.html 6KB
list.html 5KB
reserve-attractions.html 5KB
reserve-hotel.html 5KB
reserve-attractions-details.html 5KB
route-user-manage.html 5KB
reserve-hotel-details.html 5KB
travelStrategy.html 5KB
travelRoute.html 5KB
travelStrategy-details.html 4KB
travelRoute-details.html 4KB
layout.html 4KB
index-login.html 4KB
login.html 2KB
list.html 123B
volunteer_travel.iml 11KB
SystemService.java 12KB
ReserveService.java 8KB
StrategyService.java 8KB
SystemController.java 5KB
RouteService.java 5KB
ReserveController.java 5KB
StrategyController.java 4KB
RouteController.java 3KB
LoginService.java 2KB
UserCenterController.java 2KB
UserCenterService.java 2KB
TravelRoute.java 2KB
Hotel.java 2KB
TravelStrategy.java 2KB
Attractions.java 1KB
CookieUitl.java 1KB
IndexController.java 1KB
LoginController.java 1KB
UserHotel.java 1KB
UserStrategy.java 1KB
UserAttractions.java 1KB
ResultGenerator.java 1KB
User.java 1019B
UserRoute.java 919B
Result.java 893B
SysUser.java 777B
LoginServiceTest.java 695B
ResultCode.java 686B
UserRouteRepository.java 638B
UserAttractionsRepository.java 624B
UserHotelRepository.java 615B
UserStrategyRepository.java 612B
StatusEnum.java 558B
ServiceException.java 509B
SysUserRepository.java 440B
UserRepository.java 422B
AttractionsRepository.java 404B
HotelRepository.java 381B
TravelStrategyRepository.java 357B
VolunteerTravelApplicationTests.java 351B
TravelRouteRepository.java 342B
TravelPlatformApplication.java 337B
共 281 条
- 1
- 2
- 3
资源评论
编程资源宝库
- 粉丝: 2494
- 资源: 84
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功