實作的功能有:
管理員:系統管理、出發點管理、攻略分類管理、攻略管理、旅游景點產品管理、旅游景點產品詳情管理、景點產品評論管理、定制資訊管理、景點門票管理、旅游行程管理、景點評分管理、主題管理、新聞管理、訂單統計等,
普通用戶:注冊登錄、個人資訊管理(個人資訊、密碼、訂單等)、查看新聞、收藏景點產品、預定旅游景點、個人充值、預定景點門票、增加個人定制等,






景點商家資訊代碼:
/**
* @Description: TODO(景點商家資訊)
*/
@Controller
@RequestMapping("/sellers")
public class SellerController {
@Autowired
private ISellerService iSellerService;
@Autowired
private IUserService iUserService;
@RequestMapping("/findBySid.do")
@PreAuthorize("hasAnyAuthority('/sellers/findBySid.do')")
public ModelAndView findBySid(Integer sid) throws Exception {
ModelAndView mv = new ModelAndView();
Seller seller = iSellerService.findBySid(sid);
mv.addObject("sellerInfo",seller);
List<User> list = iUserService.findAll(1,1000,"%%");
mv.addObject("UList",list);
mv.setViewName("seller-update");
return mv;
}
@RequestMapping("/findUsers.do")
@PreAuthorize("hasAnyAuthority('/sellers/findUsers.do')")
public ModelAndView findUsers() throws Exception{
List<User> list = iSellerService.findUsers();
ModelAndView mv = new ModelAndView();
mv.addObject("users",list);
mv.setViewName("seller-add");
return mv;
}
//新增商家
@RequestMapping("/save.do")
@PreAuthorize("hasAnyAuthority('/sellers/save.do')")
public String save(Seller seller) throws Exception{
iSellerService.save(seller);
return "redirect:findAlls.do";
}
//查詢所有商家
@RequestMapping("/findAlls.do")
@PreAuthorize("hasAnyAuthority('/sellers/findAlls.do')")
public ModelAndView findAlls(
@RequestParam(name="page",required = true, defaultValue = "1") Integer page,
@RequestParam(name="size",required = true, defaultValue = "10") Integer size,
@RequestParam(name="search",required = true, defaultValue = "") String search
)throws Exception{
ModelAndView mv = new ModelAndView();
List<Seller> list = iSellerService.findAlls(page,size,"%"+search+"%");
PageInfo pageInfo = new PageInfo(list);
mv.addObject("pageInfo",pageInfo);
mv.setViewName("seller-list");
return mv;
}
//洗掉商家
@RequestMapping("/delete.do")
@PreAuthorize("hasAnyAuthority('/sellers/delete.do')")
public String delete(Integer sid) throws Exception{
iSellerService.delete(sid);
return "redirect:findAlls.do";
}
//修改商家
@RequestMapping("/update.do")
@PreAuthorize("hasAnyAuthority('/sellers/update.do')")
public String update(Seller seller) throws Exception{
iSellerService.update(seller);
return "redirect:findAlls.do";
}
}
用戶登錄服務類:
/**
* @Description: TODO(注冊、登錄、退出)
*/
@WebServlet("/user/*")
public class UserServlet extends BaseServlet {
//宣告UserService業務物件
private IUserService service = new UserServiceImpl();
/**
* 校驗驗證碼
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public boolean checkCodeMethod(HttpServletRequest request, HttpServletResponse response) throws IOException {
String check = request.getParameter("check");
//從sesion中獲取驗證碼
HttpSession session = request.getSession();
String checkcode_server = (String)session.getAttribute("CHECKCODE_SERVER");
session.removeAttribute("CHECKCODE_SERVER");//為了保證驗證碼只能使用一次
if(checkcode_server == null || !checkcode_server.equalsIgnoreCase(check)){
ResultInfo info = new ResultInfo();
//驗證碼錯誤
if ("".equals(check)){
info.setErrorMsg("驗證碼不能為空");
}else{
info.setErrorMsg("驗證碼錯誤");
}
info.setFlag(false);
//將info物件序列化為json,回應資料
response.setContentType("application/json;charset=utf-8");
String json = writeValueAsString(info);
response.getWriter().write(json);
return false;
}
return true;
}
/**
* 注冊功能
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void regist(HttpServletRequest request, HttpServletResponse response) throws Exception {
//驗證碼
if(!checkCodeMethod(request,response)){
return;
}
//1.獲取資料,封裝物件
Map<String, String[]> map = request.getParameterMap();
User user = new User();
try {
BeanUtils.populate(user,map);
} catch (Exception e) {
e.printStackTrace();
}
//2.呼叫service完成注冊
boolean flag = false;
if (user.getUsername() != null){
flag = service.regist(user);
}
ResultInfo info = new ResultInfo();
if(flag){//注冊成功
info.setFlag(true);
}else {//注冊失敗
info.setFlag(false);
info.setErrorMsg("用戶名已存在!");
}
//3.將info物件序列化為json,回應資料
String json = writeValueAsString(info);
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
}
/**
* 登錄功能
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void login(HttpServletRequest request, HttpServletResponse response) throws Exception {
//1.獲取用戶名和密碼資料
String username = request.getParameter("username");
String password = request.getParameter("password");
String remember = request.getParameter("remember");
username = username != null ? username : "";
password = password != null ? password : "";
remember = remember != null ? remember : "";
User user = new User();
user.setUsername(username);
user.setPassword(password);
//3.呼叫Service查詢
User u = service.login(user);
ResultInfo info = new ResultInfo();
//4.判斷用戶物件是否為null
if(u == null){
//用戶名密碼或錯誤
info.setFlag(false);
info.setErrorMsg("用戶名密碼或錯誤");
}
//5.判斷登錄成功
if(u != null){
Cookie user_cookie = new Cookie("username", URLEncoder.encode(username, "UTF-8")); //解決cookie亂碼
Cookie pswd_cookie = new Cookie("password", password);
Cookie reme_cookie = new Cookie("remember", remember);
if(remember.equals("1")) {
user_cookie.setMaxAge(24*60*60);
user_cookie.setPath(request.getContextPath()+"/");
response.addCookie(user_cookie);
pswd_cookie.setMaxAge(24*60*60);
pswd_cookie.setPath(request.getContextPath()+"/");
response.addCookie(pswd_cookie);
reme_cookie.setMaxAge(24*60*60);
reme_cookie.setPath(request.getContextPath()+"/");
response.addCookie(reme_cookie);
}else {
user_cookie.setMaxAge(0);
user_cookie.setPath("/");
response.addCookie(user_cookie);
pswd_cookie.setMaxAge(0);
pswd_cookie.setPath("/");
response.addCookie(pswd_cookie);
reme_cookie.setMaxAge(0);
reme_cookie.setPath("/");
response.addCookie(reme_cookie);
}
if (!checkCodeMethod(request,response)){
return;
}
request.getSession().setAttribute("user",u);//登錄成功標記
//登錄成功
info.setFlag(true);
}
//回應資料
writeValue(info,response);
}
/**
* 查詢一個
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void findOne(HttpServletRequest request, HttpServletResponse response) throws IOException {
//從session中獲取登錄用戶
Object user = request.getSession().getAttribute("user");
//將user寫回客戶端
writeValue(user,response);
}
/**
* 退出功能
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void exit(HttpServletRequest request, HttpServletResponse response) throws IOException {
//1.銷毀session
request.getSession().invalidate();
//2.跳轉登錄頁面
response.sendRedirect(request.getContextPath()+"/login.jsp");
}
}
酒店訂單相關操作:
/**
* @Description: TODO(酒店訂單相關操作)
*/
@WebServlet("/order/*")
public class OrderServlet extends BaseServlet {
/**
* 新增線路訂單
* @param request
* @param response
* @throws Exception
*/
public void OrderRoute(HttpServletRequest request, HttpServletResponse response) throws Exception {
ResultInfo info = new ResultInfo();
IOrderService IOrderService = new OrderServiceImpl();
//1.獲取引數
Map<String, String[]> map = request.getParameterMap();
if (map.size()==0 || map.size()!=9){
info.setFlag(false);
info.setErrorMsg("預定失敗");
String json = writeValueAsString(info);
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
return;
}
//2.1滿足預定條件,查詢賬戶余額
String uid = map.get("uid")[0];
String sid = map.get("sid")[0];
// Account account = IOrderService.findAccount(Integer.parseInt(uid));
Double paymoney = Double.valueOf(map.get("paymoney")[0]);
// if (account.getMoney()< paymoney){
// info.setFlag(false);
// info.setErrorMsg("您的賬戶余額不足,請充值!");
// String json = writeValueAsString(info);
// response.setContentType("application/json;charset=utf-8");
// response.getWriter().write(json);
// return;
// }
//2.2余額可以進行預定,進行轉賬
// int target = IOrderService.findBySid(Integer.parseInt(sid));
// IOrderService.transfer(Integer.parseInt(uid),target,paymoney);
//2.3轉賬成功,生成訂單,封裝物件
RouteOrder routeOrder = new RouteOrder();
try {
BeanUtils.populate(routeOrder,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//生成訂單號
routeOrder.setOrderId(UuidUtil.getUuid());
//下單時間
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateTime = LocalDateTime.now().format(formatter);
routeOrder.setOrdertime(dateTime);
//3.呼叫訂單方法
IOrderService.addROrder(routeOrder);
//4.回應結果
info.setFlag(true);
writeValue(info,response);
}
/**
* 新增酒店訂單
* @param request
* @param response
* @throws IOException
*/
public void addOrder(HttpServletRequest request, HttpServletResponse response) throws Exception {
ResultInfo info = new ResultInfo();
IOrderService IOrderService = new OrderServiceImpl();
//1.獲取引數
Map<String, String[]> map = request.getParameterMap();
if (map.size()==0 || map.size()!=11){
info.setFlag(false);
info.setErrorMsg("預定失敗");
String json = writeValueAsString(info);
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
return;
}
//2.查詢入住酒店和日期,判斷是否可以入住
String uid = map.get("uid")[0];
String hid = map.get("hid")[0];
String beginday = map.get("beginday")[0];
String endday = map.get("endday")[0];
//2.1呼叫service方法查詢
int count= IOrderService.selectOrder(uid,hid,beginday,endday,beginday,endday);
if (count!=0){//已經存在預定
info.setFlag(false);
info.setErrorMsg("您在該時間內已預定!");
String json = writeValueAsString(info);
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
return;
}
//2.2滿足預定條件,查詢賬戶余額
// Account account = IOrderService.findAccount(Integer.parseInt(uid));
Double paymoney = Double.valueOf(map.get("paymoney")[0]);
// if (account.getMoney()< paymoney){
// info.setFlag(false);
// info.setErrorMsg("您的賬戶余額不足,請充值!");
// String json = writeValueAsString(info);
// response.setContentType("application/json;charset=utf-8");
// response.getWriter().write(json);
// return;
// }
//2.3余額可以進行預定,進行轉賬
int target = IOrderService.findByhid(Integer.parseInt(hid));
IOrderService.transfer(Integer.parseInt(uid),target,paymoney);
//2.4轉賬成功,生成訂單,封裝物件
Order order = new Order();
try {
BeanUtils.populate(order,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//生成訂單號
order.setOrderId(UuidUtil.getUuid());
//下單時間
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateTime = LocalDateTime.now().format(formatter);
order.setOrdertime(dateTime);
//3.呼叫訂單方法
IOrderService.addOrder(order);
//4.回應結果
info.setFlag(true);
writeValue(info,response);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/377062.html
標籤:java
