AppBookImplService.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. package com.happy.service.impl;
  2. import com.baidubce.model.User;
  3. import com.happy.Model.AdminManager;
  4. import com.happy.Model.Booking;
  5. import com.happy.Model.Hotel;
  6. import com.happy.Model.House;
  7. import com.happy.Model.weixin.Users;
  8. import com.happy.Until.DateUtil;
  9. import com.happy.Until.Enum.OrderEnum;
  10. import com.happy.Until.Enum.PayEnum;
  11. import com.happy.Until.Func;
  12. import com.happy.Until.TimeExchange;
  13. import com.happy.Until.UUIDUtil;
  14. import com.happy.common.wx.WxUtil;
  15. import com.happy.constant.ResultStatusCode;
  16. import com.happy.dao.BookDao;
  17. import com.happy.dto.IPage;
  18. import com.happy.service.*;
  19. import org.springframework.stereotype.Service;
  20. import javax.annotation.Resource;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. @Service("AppBookService")
  25. public class AppBookImplService implements AppBookService {
  26. @Resource
  27. public BookService bookService;
  28. @Resource
  29. public HotelService hotelService;
  30. @Resource
  31. public HouseService houseService;
  32. @Resource
  33. public UserService userService;
  34. @Resource
  35. public AdminManagerService adminManagerService;
  36. @Override
  37. public String createOrder(String bookingId, String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
  38. if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
  39. ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
  40. return null;
  41. House house = houseService.getById(Func.parseInt(houseId));
  42. StringBuilder s1 = new StringBuilder("");
  43. s1.append(" and manager_id = '").append(house.getManagerId()).append("' ");
  44. Hotel hotel = hotelService.getOen(s1.toString());
  45. Users user = userService.queryByUserId(userId);
  46. AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
  47. if (house == null || hotel == null || user == null || adminManager == null )
  48. return "无法获取数据";
  49. Booking booking = new Booking();
  50. int day = DateUtil.getDayDiff(startTime,endTime); // 中间多少天
  51. String orderLiveTime= Func.parseInt(houseOrderNumber)+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
  52. // 设置民宿信息
  53. booking.setHotelId(Func.parseStr(hotel.getId()));
  54. booking.setHotelName(hotel.getHotel_name()); // 创建表单的时候,取酒店名称(数据来源于admin_manager中的hotel_name)
  55. booking.setHotelHposition(hotel.getHposition());
  56. booking.setHotelHpositionWens(hotel.getHpositionWens());
  57. booking.setHotelManagerId(hotel.getManagerId());
  58. booking.setHotelTownship(adminManager.getHotelTownship());
  59. booking.setHotelConfig(hotel.getHconfig());
  60. booking.setHotelType(hotel.getHtype());
  61. booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder())); // 是否自动取消订单
  62. booking.setHotelIsOrder(Func.parseStr(hotel.getIsOrder())); // 是否自动接单
  63. booking.setHotelIsCheckout(Func.parseStr(hotel.getIsCheckout())); // 是否自动离店
  64. booking.setHotelPhone(adminManager.getCorpnPhone());
  65. booking.setHotelPerson(adminManager.getCorpnName());
  66. booking.setLockTime(hotel.getLockTime());
  67. // 设置房型信息
  68. booking.setHouseId(Func.parseStr(house.getId()));
  69. booking.setHouseName(house.gethName());
  70. booking.setHouseConfig(house.gethConfig());
  71. booking.setHouseUnitPrice(house.getPrice());
  72. booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
  73. booking.setHouseAreas(house.gethAreas());
  74. booking.setHouseRemake(house.getRemark());
  75. double totalPrice = Func.parseDbl(houseOrderNumber) * house.getPrice() * day;
  76. booking.setHouseTotalPrice(totalPrice);
  77. // 设置住客信息
  78. booking.setUserName(userName);
  79. booking.setUserPhone(userPhone);
  80. booking.setOrderStartTime(startTime);
  81. booking.setOrderEndTime(endTime);
  82. booking.setOrderLiveTime(orderLiveTime);
  83. // 订单信息
  84. booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
  85. booking.setOrderStatus(Func.parseStr(PayEnum.待支付.getNum())); // 1待支付状态
  86. booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
  87. booking.setCreateUserid(userId);
  88. booking.setId(Func.parseInt(bookingId));
  89. int i = bookService.insertBooking(booking);
  90. if ( i == 0)
  91. return ResultStatusCode.CANNTBOOKING.CANNTBOOKING.getMsg();
  92. return null;
  93. }
  94. // @Override
  95. // public String reCreateOrder(String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
  96. // if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
  97. // ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
  98. // return null;
  99. //
  100. // House house = houseService.getById(Func.parseInt(houseId));
  101. // StringBuilder s1 = new StringBuilder("");
  102. // s1.append(" and manager_id = '").append(house.getManagerId()).append("'");
  103. // Hotel hotel = hotelService.getOen(s1.toString());
  104. // Users user = userService.queryByUserId(userId);
  105. // AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
  106. // if (house == null || hotel == null || user == null || adminManager == null)
  107. // return "无法获取数据";
  108. //
  109. // Booking booking = new Booking();
  110. //
  111. // // 设置民宿信息
  112. // booking.setHotelId(Func.parseStr(hotel.getId()));
  113. // booking.setHotelName(hotel.getHname());
  114. // booking.setHotelHposition(hotel.getHposition());
  115. // booking.setHotelHpositionWens(hotel.getHpositionWens());
  116. // booking.setHotelManagerId(hotel.getManagerId());
  117. // booking.setHotelTownship(adminManager.getHotelTownship());
  118. // booking.setHotelConfig(hotel.getHconfig());
  119. // booking.setHotelType(hotel.getHtype());
  120. // booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder()));
  121. // booking.setHotelManagerId(house.getManagerId());
  122. // booking.setLockTime(hotel.getLockTime());
  123. //
  124. // // 设置房型信息
  125. // booking.setHouseId(Func.parseStr(house.getId()));
  126. // booking.setHouseName(house.gethName());
  127. // booking.setHouseConfig(house.gethConfig());
  128. // booking.setHouseUnitPrice(house.getPrice());
  129. // booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
  130. // booking.setHouseAreas(house.gethAreas());
  131. // booking.setHouseRemake(house.getRemark());
  132. // double totalPrice = Func.parseInt(houseOrderNumber) * house.getPrice();
  133. // booking.setHouseTotalPrice(totalPrice);
  134. //
  135. // // 设置住客信息
  136. // booking.setUserName(userName);
  137. // booking.setUserPhone(userPhone);
  138. // booking.setOrderStartTime(startTime);
  139. // booking.setOrderEndTime(endTime);
  140. // int day = DateUtil.getDayDiff(startTime,endTime);
  141. // String orderLiveTime= day+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
  142. // booking.setOrderLiveTime(orderLiveTime);
  143. //
  144. // // 订单信息
  145. // booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
  146. // booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum())); // 待支付状态
  147. // booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
  148. // bookService.insertBooking(booking);
  149. //
  150. //
  151. // return null;
  152. // }
  153. @Override
  154. public String varificationHouse(String houseId, String startTime, String endTime) {
  155. House house = houseService.getById(Func.parseInt(houseId));
  156. if (house == null)
  157. return "无此房间,请重新查询";
  158. // 判断是否有房间,对每个房型进行标识
  159. StringBuffer strSqlBook = new StringBuffer();
  160. strSqlBook.append(" and house_id = '").append(house.getId()).append("' ");
  161. strSqlBook.append(" and hotel_manager_id = '").append(house.getManagerId()).append("' ");
  162. if (!Func.checkNull(startTime))
  163. strSqlBook.append(" and order_start_time >= '").append(startTime).append(" 00:00:00 ' ");
  164. if (!Func.checkNull(endTime))
  165. strSqlBook.append(" and order_end_time < '").append(endTime).append(" 23:59:59 ' ");
  166. //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款
  167. strSqlBook.append(" and ( order_status = '").append(PayEnum.待支付.getNum()).append("' ");
  168. strSqlBook.append(" or order_status = '").append(PayEnum.已支付.getNum()).append("' ");
  169. strSqlBook.append(" or order_status = '").append(PayEnum.待入住.getNum()).append("' ");
  170. strSqlBook.append(" or order_status = '").append(PayEnum.已入住.getNum()).append("' ) ");
  171. List<Booking> bookList = bookService.queryList(strSqlBook.toString());
  172. if (bookList == null)
  173. return null;
  174. int totalNum = 0;
  175. for (Booking booking: bookList) {
  176. if (Func.checkNull(booking.getHouseId()))
  177. continue;
  178. totalNum += booking.getHouseOrderNumber();
  179. }
  180. if (totalNum >= house.getNumber())
  181. return OrderEnum.房间已满.toString();
  182. return null;
  183. }
  184. }