AppBookImplService.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  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. // 设置民宿信息
  51. booking.setHouseId(Func.parseStr(hotel.getId()));
  52. booking.setHotelName(hotel.getHname());
  53. booking.setHotelHposition(hotel.getHposition());
  54. booking.setHotelHpositionWens(hotel.getHpositionWens());
  55. booking.setHotelManagerId(hotel.getManagerId());
  56. booking.setHotelTownship(adminManager.getHotelTownship());
  57. booking.setHotelConfig(hotel.getHconfig());
  58. booking.setHotelType(hotel.getHtype());
  59. booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder()));
  60. booking.setHotelManagerId(house.getManagerId());
  61. booking.setHotelPhone(adminManager.getCorpnPhone());
  62. booking.setHotelPerson(adminManager.getCorpnName());
  63. booking.setLockTime(hotel.getLockTime());
  64. // 设置房型信息
  65. booking.setHouseId(Func.parseStr(house.getId()));
  66. booking.setHouseName(house.gethName());
  67. booking.setHouseConfig(house.gethConfig());
  68. booking.setHouseUnitPrice(house.getPrice());
  69. booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
  70. booking.setHouseAreas(house.gethAreas());
  71. booking.setHouseRemake(house.getRemark());
  72. double totalPrice = Func.parseInt(houseOrderNumber) * house.getPrice();
  73. booking.setHouseTotalPrice(totalPrice);
  74. // 设置住客信息
  75. booking.setUserName(userName);
  76. booking.setUserPhone(userPhone);
  77. booking.setOrderStartTime(startTime);
  78. booking.setOrderEndTime(endTime);
  79. int day = DateUtil.getDayDiff(startTime,endTime);
  80. String orderLiveTime= day+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
  81. booking.setOrderLiveTime(orderLiveTime);
  82. // 订单信息
  83. booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
  84. booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum())); // 1待支付状态
  85. booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
  86. booking.setCreateUserid(userId);
  87. booking.setId(Func.parseInt(bookingId));
  88. int i = bookService.insertBooking(booking);
  89. if ( i == 0)
  90. return ResultStatusCode.CANNTBOOKING.CANNTBOOKING.getMsg();
  91. return null;
  92. }
  93. @Override
  94. public String reCreateOrder(String houseId, String startTime, String endTime, String houseOrderNumber, String userName, String userPhone, String userId) {
  95. if (Func.checkNull(houseId) ||Func.checkNull(startTime) ||Func.checkNull(endTime)
  96. ||Func.checkNull(houseOrderNumber) ||Func.checkNull(userName) ||Func.checkNull(userPhone) ||Func.checkNull(userId))
  97. return null;
  98. House house = houseService.getById(Func.parseInt(houseId));
  99. StringBuilder s1 = new StringBuilder("");
  100. s1.append(" and manager_id = '").append(house.getManagerId()).append("'");
  101. Hotel hotel = hotelService.getOen(s1.toString());
  102. Users user = userService.queryByUserId(userId);
  103. AdminManager adminManager = adminManagerService.getById(Func.parseInt(house.getManagerId()));
  104. if (house == null || hotel == null || user == null || adminManager == null)
  105. return "无法获取数据";
  106. Booking booking = new Booking();
  107. // 设置民宿信息
  108. booking.setHotelName(hotel.getHname());
  109. booking.setHotelHposition(hotel.getHposition());
  110. booking.setHotelHpositionWens(hotel.getHpositionWens());
  111. booking.setHotelManagerId(hotel.getManagerId());
  112. booking.setHotelTownship(adminManager.getHotelTownship());
  113. booking.setHotelConfig(hotel.getHconfig());
  114. booking.setHotelType(hotel.getHtype());
  115. booking.setHotelIsCanorder(Func.parseStr(hotel.getIsCanorder()));
  116. booking.setHotelManagerId(house.getManagerId());
  117. booking.setLockTime(hotel.getLockTime());
  118. // 设置房型信息
  119. booking.setHouseId(Func.parseStr(house.getId()));
  120. booking.setHouseName(house.gethName());
  121. booking.setHouseConfig(house.gethConfig());
  122. booking.setHouseUnitPrice(house.getPrice());
  123. booking.setHouseOrderNumber(Func.parseInt(houseOrderNumber));
  124. booking.setHouseAreas(house.gethAreas());
  125. booking.setHouseRemake(house.getRemark());
  126. double totalPrice = Func.parseInt(houseOrderNumber) * house.getPrice();
  127. booking.setHouseTotalPrice(totalPrice);
  128. // 设置住客信息
  129. booking.setUserName(userName);
  130. booking.setUserPhone(userPhone);
  131. booking.setOrderStartTime(startTime);
  132. booking.setOrderEndTime(endTime);
  133. int day = DateUtil.getDayDiff(startTime,endTime);
  134. String orderLiveTime= day+ OrderEnum.间.toString()+ day +OrderEnum.晚.toString();
  135. booking.setOrderLiveTime(orderLiveTime);
  136. // 订单信息
  137. booking.setOrderNum(Func.parseStr(WxUtil.mchOrderNo()));// 订单号
  138. booking.setOrderStatus(Func.parseStr(PayEnum.ONE.getNum())); // 待支付状态
  139. booking.setCreateTime(DateUtil.getFormatPaternDate(DateUtil.getCurrentDate()));
  140. bookService.insertBooking(booking);
  141. return null;
  142. }
  143. @Override
  144. public String varificationHouse(String houseId, String startTime, String endTime) {
  145. House house = houseService.getById(Func.parseInt(houseId));
  146. if (house == null)
  147. return "无此房间,请重新查询";
  148. // 判断是否有房间,对每个房型进行标识
  149. StringBuffer strSqlBook = new StringBuffer();
  150. strSqlBook.append(" and house_id = '").append(house.getId()).append("' ");
  151. strSqlBook.append(" and hotel_manager_id = '").append(house.getManagerId()).append("' ");
  152. strSqlBook.append(" and order_start_time >= '").append(startTime).append("' ");
  153. strSqlBook.append(" and order_end_time < '").append(endTime).append("' ");
  154. //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款
  155. strSqlBook.append(" and order_status = '").append(PayEnum.ONE.getNum()).append("' ");
  156. strSqlBook.append(" or order_status = '").append(PayEnum.TWO.getNum()).append("' ");
  157. strSqlBook.append(" or order_status = '").append(PayEnum.THREE.getNum()).append("' ");
  158. strSqlBook.append(" or order_status = '").append(PayEnum.FOUR.getNum()).append("' ");
  159. List<Booking> bookList = bookService.queryList(strSqlBook.toString());
  160. int totalNum = 0;
  161. for (Booking booking: bookList) {
  162. if (Func.checkNull(booking.getHouseId()))
  163. continue;
  164. totalNum += booking.getHouseOrderNumber();
  165. }
  166. if (totalNum >= house.getNumber())
  167. return OrderEnum.房间已满.toString();
  168. return null;
  169. }
  170. }