AppBookImplService.java 8.5 KB

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