| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- package com.happy.service.impl;
- import com.baidubce.model.User;
- import com.happy.Model.AdminManager;
- import com.happy.Model.Booking;
- import com.happy.Model.Hotel;
- import com.happy.Model.House;
- import com.happy.Model.weixin.Users;
- import com.happy.Until.DateUtil;
- import com.happy.Until.Enum.OrderEnum;
- import com.happy.Until.Enum.PayEnum;
- import com.happy.Until.Func;
- import com.happy.Until.TimeExchange;
- import com.happy.Until.UUIDUtil;
- import com.happy.common.wx.WxUtil;
- import com.happy.constant.ResultStatusCode;
- import com.happy.dao.BookDao;
- import com.happy.dto.IPage;
- import com.happy.service.*;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- @Service("AppBookService")
- public class AppBookImplService implements AppBookService {
- @Resource
- public BookService bookService;
- @Resource
- public HotelService hotelService;
- @Resource
- public HouseService houseService;
- @Resource
- public UserService userService;
- @Resource
- public AdminManagerService adminManagerService;
- @Override
- public String createOrder(String bookingId, String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
- if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
- ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
- return null;
- House house = houseService.getById(Func.parseInt(houseId));
- StringBuilder s1 = new StringBuilder("");
- s1.append(" and manager_id = '").append(house.getManagerId()).append("' ");
- Hotel hotel = hotelService.getOen(s1.toString());
- Users user = userService.queryByUserId(userId);
- AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
- if (house == null || hotel == null || user == null || adminManager == null )
- return "无法获取数据";
- Booking booking = new Booking();
- int day = DateUtil.getDayDiff(startTime,endTime); // 中间多少天
- String orderLiveTime= Func.parseInt(houseOrderNumber)+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
- // 设置民宿信息
- booking.setHotelId(Func.parseStr(hotel.getId()));
- booking.setHotelName(hotel.getHotel_name()); // 创建表单的时候,取酒店名称(数据来源于admin_manager中的hotel_name)
- booking.setHotelHposition(hotel.getHposition());
- booking.setHotelHpositionWens(hotel.getHpositionWens());
- booking.setHotelManagerId(hotel.getManagerId());
- booking.setHotelTownship(adminManager.getHotelTownship());
- booking.setHotelConfig(hotel.getHconfig());
- booking.setHotelType(hotel.getHtype());
- booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder())); // 是否自动取消订单
- booking.setHotelIsOrder(Func.parseStr(hotel.getIsOrder())); // 是否自动接单
- booking.setHotelIsCheckout(Func.parseStr(hotel.getIsCheckout())); // 是否自动离店
- booking.setHotelPhone(adminManager.getCorpnPhone());
- booking.setHotelPerson(adminManager.getCorpnName());
- booking.setLockTime(hotel.getLockTime());
- // 设置房型信息
- booking.setHouseId(Func.parseStr(house.getId()));
- booking.setHouseName(house.gethName());
- booking.setHouseConfig(house.gethConfig());
- booking.setHouseUnitPrice(house.getPrice());
- booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
- booking.setHouseAreas(house.gethAreas());
- booking.setHouseRemake(house.getRemark());
- double totalPrice = Func.parseDbl(houseOrderNumber) * house.getPrice() * day;
- booking.setHouseTotalPrice(totalPrice);
- // 设置住客信息
- booking.setUserName(userName);
- booking.setUserPhone(userPhone);
- booking.setOrderStartTime(startTime);
- booking.setOrderEndTime(endTime);
- booking.setOrderLiveTime(orderLiveTime);
- // 订单信息
- booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
- booking.setOrderStatus(Func.parseStr(PayEnum.待支付.getNum())); // 1待支付状态
- booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
- booking.setCreateUserid(userId);
- booking.setId(Func.parseInt(bookingId));
- int i = bookService.insertBooking(booking);
- if ( i == 0)
- return ResultStatusCode.CANNTBOOKING.CANNTBOOKING.getMsg();
- return null;
- }
- // @Override
- // public String reCreateOrder(String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
- // if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
- // ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
- // return null;
- //
- // House house = houseService.getById(Func.parseInt(houseId));
- // StringBuilder s1 = new StringBuilder("");
- // s1.append(" and manager_id = '").append(house.getManagerId()).append("'");
- // Hotel hotel = hotelService.getOen(s1.toString());
- // Users user = userService.queryByUserId(userId);
- // AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
- // if (house == null || hotel == null || user == null || adminManager == null)
- // return "无法获取数据";
- //
- // Booking booking = new Booking();
- //
- // // 设置民宿信息
- // booking.setHotelId(Func.parseStr(hotel.getId()));
- // booking.setHotelName(hotel.getHname());
- // booking.setHotelHposition(hotel.getHposition());
- // booking.setHotelHpositionWens(hotel.getHpositionWens());
- // booking.setHotelManagerId(hotel.getManagerId());
- // booking.setHotelTownship(adminManager.getHotelTownship());
- // booking.setHotelConfig(hotel.getHconfig());
- // booking.setHotelType(hotel.getHtype());
- // booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder()));
- // booking.setHotelManagerId(house.getManagerId());
- // booking.setLockTime(hotel.getLockTime());
- //
- // // 设置房型信息
- // booking.setHouseId(Func.parseStr(house.getId()));
- // booking.setHouseName(house.gethName());
- // booking.setHouseConfig(house.gethConfig());
- // booking.setHouseUnitPrice(house.getPrice());
- // booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
- // booking.setHouseAreas(house.gethAreas());
- // booking.setHouseRemake(house.getRemark());
- // double totalPrice = Func.parseInt(houseOrderNumber) * house.getPrice();
- // booking.setHouseTotalPrice(totalPrice);
- //
- // // 设置住客信息
- // booking.setUserName(userName);
- // booking.setUserPhone(userPhone);
- // booking.setOrderStartTime(startTime);
- // booking.setOrderEndTime(endTime);
- // int day = DateUtil.getDayDiff(startTime,endTime);
- // String orderLiveTime= day+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
- // booking.setOrderLiveTime(orderLiveTime);
- //
- // // 订单信息
- // booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
- // booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum())); // 待支付状态
- // booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
- // bookService.insertBooking(booking);
- //
- //
- // return null;
- // }
- @Override
- public String varificationHouse(String houseId, String startTime, String endTime) {
- House house = houseService.getById(Func.parseInt(houseId));
- if (house == null)
- return "无此房间,请重新查询";
- // 判断是否有房间,对每个房型进行标识
- StringBuffer strSqlBook = new StringBuffer();
- strSqlBook.append(" and house_id = '").append(house.getId()).append("' ");
- strSqlBook.append(" and hotel_manager_id = '").append(house.getManagerId()).append("' ");
- if (!Func.checkNull(startTime))
- strSqlBook.append(" and order_start_time >= '").append(startTime).append(" 00:00:00 ' ");
- if (!Func.checkNull(endTime))
- strSqlBook.append(" and order_end_time < '").append(endTime).append(" 23:59:59 ' ");
- //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款
- strSqlBook.append(" and ( order_status = '").append(PayEnum.待支付.getNum()).append("' ");
- strSqlBook.append(" or order_status = '").append(PayEnum.已支付.getNum()).append("' ");
- strSqlBook.append(" or order_status = '").append(PayEnum.待入住.getNum()).append("' ");
- strSqlBook.append(" or order_status = '").append(PayEnum.已入住.getNum()).append("' ) ");
- List<Booking> bookList = bookService.queryList(strSqlBook.toString());
- if (bookList == null)
- return null;
- int totalNum = 0;
- for (Booking booking: bookList) {
- if (Func.checkNull(booking.getHouseId()))
- continue;
- totalNum += booking.getHouseOrderNumber();
- }
- if (totalNum >= house.getNumber())
- return OrderEnum.房间已满.toString();
- return null;
- }
- }
|