AppHomePageImplService.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. package com.happy.service.impl;
  2. import com.happy.Model.Booking;
  3. import com.happy.Model.FileInfo;
  4. import com.happy.Model.Hotel;
  5. import com.happy.Model.House;
  6. import com.happy.Until.DateUtil;
  7. import com.happy.Until.Enum.PayEnum;
  8. import com.happy.Until.Func;
  9. import com.happy.Until.TimeExchange;
  10. import com.happy.dao.BookDao;
  11. import com.happy.dao.HouseDao;
  12. import com.happy.dao.impl.FileImplInfoDao;
  13. import com.happy.dto.IPage;
  14. import com.happy.service.*;
  15. import org.springframework.stereotype.Service;
  16. import javax.annotation.Resource;
  17. import java.util.*;
  18. @Service("AppHomePageService")
  19. public class AppHomePageImplService implements AppHomePageService {
  20. @Resource
  21. public BookDao bookDao;
  22. @Resource
  23. public HouseDao houseDao;
  24. @Resource
  25. public HouseService houseService;
  26. @Resource
  27. public HotelService hotelService;
  28. @Resource
  29. public BookService bookService;
  30. @Resource
  31. public AdminManagerService adminManagerService;
  32. @Resource
  33. public FileService fileService;
  34. @Override
  35. public IPage<Hotel> getHotelList(String queryValue,String hotel_township, int page, int rows) {
  36. StringBuilder strSql = new StringBuilder(" and hstatus=1 "); // 酒店正在营业中才显示
  37. if (!Func.checkNull(queryValue)){
  38. strSql.append(" and hname like '%").append(queryValue).append("%' ");
  39. }
  40. if (!Func.checkNull(hotel_township)){
  41. strSql.append(" and c.hotel_township = '").append(hotel_township).append("' ");
  42. }
  43. return hotelService.queryPagePrice(strSql.toString(),page,rows);
  44. }
  45. @Override
  46. public int getHotelTotal(String queryValue) {
  47. return 0;
  48. }
  49. @Override
  50. public Hotel getHotelAndHouseByHotelId(String hotelId, String queryStartTime, String queryEndTime) {
  51. if (Func.checkNull(hotelId))
  52. return new Hotel();
  53. Hotel hotel = hotelService.getById(Func.parseInt(hotelId));
  54. if (hotel == null || Func.checkNull(String.valueOf(hotel.getManagerId())))
  55. return hotel;
  56. // 数据字典写入hotel
  57. Map dicMap = hotelService.queryHotelDicMap();
  58. if (!Func.checkNull(hotel.getHconfig()))
  59. {
  60. List<String> list = Arrays.asList(hotel.getHconfig().split(","));
  61. List hotelDicList = new ArrayList();
  62. for (String hotelDicId:list) {
  63. if (!dicMap.containsKey(Func.parseInt(hotelDicId)))
  64. continue;
  65. hotelDicList.add(dicMap.get(Func.parseInt(hotelDicId)));
  66. }
  67. hotel.setHconfigList(hotelDicList);
  68. }
  69. System.out.println(hotel.getManagerId());// 需求确定使用商户id关联房型
  70. StringBuffer strSql = new StringBuffer();
  71. strSql.append(" and manager_id = '").append(hotel.getManagerId()).append("' ");
  72. List<House> houseList = houseService.queryList(strSql.toString());
  73. if (houseList == null )
  74. return hotel;
  75. // 数据字典写入hotel
  76. List<String> hlist = new ArrayList<>();
  77. List houseDicList = new ArrayList();
  78. for (House house:houseList) {
  79. if (house == null || Func.checkNull(Func.parseStr(house.getNumber())))
  80. continue;
  81. // “,”号分逗开来
  82. hlist = Arrays.asList(house.gethConfig().split(","));
  83. houseDicList = new ArrayList();
  84. for (String houseDicId:hlist) {
  85. if (!dicMap.containsKey(Func.parseInt(houseDicId)))
  86. continue;
  87. houseDicList.add(dicMap.get(Func.parseInt(houseDicId)));
  88. }
  89. house.sethConfigList(houseDicList);
  90. }
  91. // 判断是否有房间,对每个房型进行标识
  92. StringBuffer strSqlBook = new StringBuffer();
  93. strSqlBook.append(" and hotel_manager_id = '").append(hotel.getManagerId()).append(" ' ");
  94. if (!Func.checkNull(queryStartTime))
  95. strSqlBook.append(" and order_start_time >= '").append(queryStartTime).append(" 00:00:00 ' ");
  96. if (!Func.checkNull(queryEndTime))
  97. strSqlBook.append(" and order_end_time < '").append(queryEndTime).append(" 23:59:59 ' ");
  98. //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款
  99. strSqlBook.append(" and ( order_status = '").append(PayEnum.待支付.getNum()).append("' ");
  100. strSqlBook.append(" or order_status = '").append(PayEnum.已支付.getNum()).append("' ");
  101. strSqlBook.append(" or order_status = '").append(PayEnum.待入住.getNum()).append("' ");
  102. strSqlBook.append(" or order_status = '").append(PayEnum.已入住.getNum()).append(" ' ) ");
  103. List<Booking> bookList = bookService.queryList(strSqlBook.toString());
  104. // 订房数据字典Map<houseid, 订房数量>
  105. Map<String, Integer> houseBookingMap = new HashMap();
  106. if (bookList != null && bookList.size() > 0)
  107. {
  108. Integer numberTemp = new Integer(0);
  109. for (Booking booking: bookList) {
  110. if (Func.checkNull(booking.getHouseId()))
  111. continue;
  112. if (houseBookingMap.containsKey(booking.getHouseId()))
  113. {
  114. numberTemp = houseBookingMap.get(booking.getHouseId());
  115. int i = Func.parseInt(numberTemp) + booking.getHouseOrderNumber();
  116. houseBookingMap.put(booking.getHouseId(),i);
  117. }else {
  118. houseBookingMap.put(booking.getHouseId(),booking.getHouseOrderNumber());
  119. }
  120. }
  121. }
  122. for (House house:houseList) {
  123. if (house == null)
  124. continue;
  125. // 将房间图片,写入房型对象中
  126. StringBuilder fileSqlx = new StringBuilder("");
  127. fileSqlx.append(" and link_id = '").append(house.getId()).append("'");
  128. List<FileInfo> fileInfoList = fileService.queryList(fileSqlx.toString());
  129. house.setFileInfoList(fileInfoList);
  130. // 进行累加数据,计算房型还剩余多少房间
  131. if (!houseBookingMap.containsKey(Func.parseStr(house.getId()))) {
  132. house.setRemainRooms(Func.parseStr(house.getNumber()));
  133. continue;
  134. }
  135. int i = Func.parseInt(house.getNumber()) - Func.parseInt(houseBookingMap.get(Func.parseStr(house.getId())));
  136. house.setRemainRooms(Func.parseStr(i));
  137. };
  138. hotel.setHouseList(houseList);
  139. return hotel;
  140. }
  141. }