package com.happy.service.impl; import com.happy.Model.Booking; import com.happy.Model.FileInfo; import com.happy.Model.Hotel; import com.happy.Model.House; import com.happy.Until.DateUtil; import com.happy.Until.Func; import com.happy.Until.TimeExchange; import com.happy.dao.BookDao; import com.happy.dao.HouseDao; import com.happy.dao.impl.FileImplInfoDao; import com.happy.dto.IPage; import com.happy.service.*; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; @Service("AppHomePageService") public class AppHomePageImplService implements AppHomePageService { @Resource public BookDao bookDao; @Resource public HouseDao houseDao; @Resource public HouseService houseService; @Resource public HotelService hotelService; @Resource public BookService bookService; @Resource public AdminManagerService adminManagerService; @Resource public FileService fileService; @Override public IPage getHotelList(String queryValue,String hotel_township, int page, int rows) { IPage iPage = new IPage(); StringBuilder strSql = new StringBuilder(""); if (!Func.checkNull(queryValue)){ strSql.append(" and hname like '%").append(queryValue).append("%' "); } if (!Func.checkNull(hotel_township)){ strSql.append(" and c.hotel_township = '").append(hotel_township).append("' "); } return hotelService.queryPagePrice(strSql.toString(),page,rows); } @Override public int getHotelTotal(String queryValue) { return 0; } @Override public Hotel getHotelAndHouseByHotelId(String hotelId, String queryStartTime, String queryEndTime) { if (Func.checkNull(hotelId)) return new Hotel(); Hotel hotel = hotelService.getById(Func.parseInt(hotelId)); if (hotel == null || Func.checkNull(hotel.getManagerId())) return hotel; // 数据字典写入hotel Map dicMap = hotelService.queryHotelDicMap(); if (!Func.checkNull(hotel.getHconfig())) { List list = Arrays.asList(hotel.getHconfig().split(",")); List hotelDicList = new ArrayList(); for (String hotelDicId:list) { if (!dicMap.containsKey(Func.parseInt(hotelDicId))) continue; hotelDicList.add(dicMap.get(Func.parseInt(hotelDicId))); } hotel.setHconfigList(hotelDicList); } System.out.println(hotel.getManagerId());// 需求确定使用商户id关联房型 StringBuffer strSql = new StringBuffer(); strSql.append(" and manager_id = '").append(hotel.getManagerId()).append("' "); List houseList = houseService.queryList(strSql.toString()); if (houseList == null ) return hotel; // 数据字典写入hotel List hlist = new ArrayList<>(); List houseDicList = new ArrayList(); for (House house:houseList) { if (house == null || Func.checkNull(Func.parseStr(house.getNumber()))) continue; // “,”号分逗开来 hlist = Arrays.asList(house.gethConfig().split(",")); houseDicList = new ArrayList(); for (String houseDicId:hlist) { if (!dicMap.containsKey(Func.parseInt(houseDicId))) continue; houseDicList.add(dicMap.get(Func.parseInt(houseDicId))); } house.sethConfigList(houseDicList); } // 判断是否有房间,对每个房型进行标识 StringBuffer strSqlBook = new StringBuffer(); strSqlBook.append(" and hotel_manager_id = '").append(hotel.getManagerId()).append(" ' "); if (!Func.checkNull(queryStartTime)) strSqlBook.append(" and order_start_time >= '").append(queryStartTime).append(" 00:00:00 ' "); if (!Func.checkNull(queryEndTime)) strSqlBook.append(" and order_end_time < '").append(queryEndTime).append(" 23:59:59 ' "); List bookList = bookService.queryList(strSqlBook.toString()); Map houseBookingMap = new HashMap(); if (bookList != null && bookList.size() > 0) { Integer numberTemp = new Integer(0); for (Booking booking: bookList) { if (Func.checkNull(booking.getHouseId())) continue; if (houseBookingMap.containsKey(booking.getHouseId())) { numberTemp = houseBookingMap.get(booking.getHouseId()); int i = Func.parseInt(numberTemp) + booking.getHouseOrderNumber(); houseBookingMap.put(booking.getHouseId(),i); continue; } houseBookingMap.put(booking.getHouseId(),booking.getHouseOrderNumber()); } } houseList.forEach((House house) ->{ if (!houseBookingMap.containsKey(Func.parseStr(house.getId()))) { house.setRemainRooms(Func.parseStr(house.getNumber())); return; } StringBuilder fileSqlx = new StringBuilder(""); fileSqlx.append("and link_id = '").append(house.getId()).append("'"); List fileInfoList = fileService.queryList(fileSqlx.toString()); int i = Func.parseInt(house.getNumber()) - Func.parseInt(houseBookingMap.get(house.getId())); house.setRemainRooms(Func.parseStr(i)); house.setFileInfoList(fileInfoList); }); hotel.setHouseList(houseList); return hotel; } }