BookImplDao.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. package com.happy.dao.impl;
  2. import com.happy.Model.Booking;
  3. import com.happy.Model.Booking;
  4. import com.happy.Model.House;
  5. import com.happy.Until.Func;
  6. import com.happy.Until.SqlUtil;
  7. import com.happy.Until.UUIDUtil;
  8. import com.happy.dao.BookDao;
  9. import com.happy.dto.BookTypeEto;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  12. import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
  13. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
  14. import org.springframework.stereotype.Repository;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. @Repository("BookDao")
  18. public class BookImplDao implements BookDao {
  19. @Autowired
  20. private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
  21. public NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() {
  22. return namedParameterJdbcTemplate;
  23. }
  24. public void setNamedParameterJdbcTemplate(
  25. NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
  26. this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
  27. }
  28. //查询字段
  29. String selectCol = "id, order_num, order_status, user_idnumber, user_name, user_phone, hotel_id, hotel_name, hotel_hposition," +
  30. " hotel_hposition_wens, hotel_phone, hotel_manager_id, hotel_person, hotel_township, hotel_config, hotel_type," +
  31. " hotel_is_canorder,hotel_is_order, house_id, house_name, house_config, house_unit_price, house_total_price, house_order_number," +
  32. " house_areas, house_remake, DATE_FORMAT(order_start_time,'%Y-%m-%d %T') order_start_time, DATE_FORMAT(order_end_time,'%Y-%m-%d %T') order_end_time," +
  33. " order_live_time, order_remake, DATE_FORMAT(create_time,'%Y-%m-%d %T') create_time, create_userid, DATE_FORMAT(update_time,'%Y-%m-%d %T') update_time," +
  34. " DATE_FORMAT(pay_time,'%Y-%m-%d %T') pay_time, pay_account, pay_way, refund_way, refund_amount, DATE_FORMAT(refund_time,'%Y-%m-%d %T') refund_time," +
  35. " DATE_FORMAT(check_out_time,'%Y-%m-%d %T') check_out_time,lock_time, remake, is_delete, DATE_FORMAT(live_time,'%Y-%m-%d %T') live_time";
  36. @Override
  37. public int insertBooking(Booking book) {
  38. String sql = "INSERT INTO booking (id, order_num, order_status, user_idnumber, user_name, user_phone, hotel_id," +
  39. " hotel_name, hotel_hposition, hotel_hposition_wens, hotel_phone, hotel_manager_id, hotel_person, hotel_township, " +
  40. "hotel_config, hotel_type, hotel_is_canorder, hotel_is_order, hotel_is_checkout, house_id, house_name, house_config, " +
  41. "house_unit_price, house_total_price, house_order_number, house_areas, house_remake, order_start_time, order_end_time," +
  42. " order_live_time, order_remake, create_time, create_userid, update_time, pay_time, pay_account, pay_way, refund_way," +
  43. " refund_amount, refund_time, check_out_time,lock_time, remake, is_delete) " +
  44. "VALUES (:id, :order_num, :order_status, :user_idnumber, :user_name, :user_phone, :hotel_id, :hotel_name, :hotel_hposition, " +
  45. ":hotel_hposition_wens, :hotel_phone, :hotel_manager_id, :hotel_person, :hotel_township, :hotel_config, :hotel_type," +
  46. " :hotel_is_canorder, :hotel_is_order, :hotel_is_checkout, :house_id, :house_name, :house_config, :house_unit_price," +
  47. " :house_total_price, :house_order_number, :house_areas, :house_remake, :order_start_time, :order_end_time, :order_live_time," +
  48. " :order_remake, :create_time, :create_userid, :update_time, :pay_time, :pay_account, :pay_way, :refund_way, :refund_amount," +
  49. " :refund_time, :check_out_time,:lock_time, :remake, :is_delete)";
  50. MapSqlParameterSource sps = new MapSqlParameterSource();
  51. sps.addValue("order_num",book.getOrderNum());
  52. sps.addValue("order_status",book.getOrderStatus());
  53. sps.addValue("user_idnumber",book.getUserIdnumber());
  54. sps.addValue("user_name",book.getUserName());
  55. sps.addValue("user_phone",book.getUserPhone());
  56. sps.addValue("hotel_id",book.getHotelId());
  57. sps.addValue("hotel_name",book.getHotelName());
  58. sps.addValue("hotel_hposition",book.getHotelHposition());
  59. sps.addValue("hotel_hposition_wens",book.getHotelHpositionWens());
  60. sps.addValue("hotel_phone",book.getHotelPhone());
  61. sps.addValue("hotel_person",book.getHotelPerson());
  62. sps.addValue("hotel_township",book.getHotelTownship());
  63. sps.addValue("hotel_config",book.getHotelConfig());
  64. sps.addValue("hotel_type",book.getHotelType());
  65. sps.addValue("hotel_is_canorder",book.getHotelIsCanorder());
  66. sps.addValue("hotel_is_order",book.getHotelIsOrder());
  67. sps.addValue("hotel_is_checkout",book.getHotelIsCheckout());
  68. sps.addValue("hotel_manager_id",book.getHotelManagerId());
  69. sps.addValue("house_id",book.getHouseId());
  70. sps.addValue("house_name", book.getHouseName());
  71. sps.addValue("house_config",book.getHouseConfig());
  72. sps.addValue("house_unit_price", book.getHouseUnitPrice());
  73. sps.addValue("house_total_price",book.getHouseTotalPrice());
  74. sps.addValue("house_order_number", book.getHouseOrderNumber());
  75. sps.addValue("house_areas",book.getHouseAreas());
  76. sps.addValue("house_remake", book.getHouseRemake());
  77. sps.addValue("order_start_time",book.getOrderStartTime());
  78. sps.addValue("order_end_time", book.getOrderEndTime());
  79. sps.addValue("order_live_time",book.getOrderLiveTime());
  80. sps.addValue("order_remake", book.getOrderRemake());
  81. sps.addValue("create_time",book.getCreateTime());
  82. sps.addValue("create_userid", book.getCreateUserid());
  83. sps.addValue("update_time",book.getUpdateTime());
  84. sps.addValue("pay_time", book.getPayTime());
  85. sps.addValue("pay_account",book.getPayAccount());
  86. sps.addValue("pay_way", book.getPayWay());
  87. sps.addValue("refund_way",book.getRefundWay());
  88. sps.addValue("refund_amount", book.getRefundAmount());
  89. sps.addValue("refund_time", book.getRefundTime());
  90. sps.addValue("check_out_time",book.getCheckOutTime());
  91. sps.addValue("lock_time",book.getLockTime());
  92. sps.addValue("remake", book.getRemake());
  93. sps.addValue("is_delete", 1);
  94. if(book.getId()==null){
  95. sps.addValue("id", UUIDUtil.generateID());
  96. } else{
  97. sps.addValue("id", book.getId());
  98. }
  99. int num = 0;
  100. try{
  101. num = namedParameterJdbcTemplate.update(sql, sps);
  102. }
  103. catch(Exception e){
  104. e.printStackTrace();
  105. }
  106. return num;
  107. }
  108. @Override
  109. public int updateBooking(Booking book) {
  110. String sql = "UPDATE booking SET order_num = :order_num, order_status = :order_status, user_idnumber = :user_idnumber," +
  111. " user_name = :user_name, user_phone = :user_phone, hotel_id = :hotel_id, hotel_name = :hotel_name, hotel_hposition = :hotel_hposition," +
  112. " hotel_hposition_wens = :hotel_hposition_wens, hotel_phone = :hotel_phone, hotel_manager_id = :hotel_manager_id," +
  113. " hotel_person = :hotel_person, hotel_township = :hotel_township, hotel_config = :hotel_config, hotel_type = :hotel_type," +
  114. " hotel_is_canorder = :hotel_is_canorder,hotel_is_order = :hotel_is_order,hotel_is_checkout = :hotel_is_checkout, house_id = :house_id," +
  115. " house_name = :house_name, house_config = :house_config, house_unit_price = :house_unit_price, house_total_price = :house_total_price," +
  116. " house_order_number = :house_order_number, house_areas = :house_areas, house_remake = :house_remake, order_start_time = :order_start_time," +
  117. " order_end_time = :order_end_time, order_live_time = :order_live_time, order_remake = :order_remake, create_time = :create_time, create_userid = :create_userid," +
  118. " update_time = :update_time, pay_time = :pay_time,pay_account = :pay_account, pay_way = :pay_way, refund_way = :refund_way,refund_amount = :refund_amount," +
  119. " refund_time = :refund_time, check_out_time = :check_out_time,lock_time=:lock_time, remake = :remake, is_delete = :is_delete, live_time = :live_time WHERE id = :id";
  120. MapSqlParameterSource sps = new MapSqlParameterSource();
  121. sps.addValue("order_num",book.getOrderNum());
  122. sps.addValue("order_status",book.getOrderStatus());
  123. sps.addValue("user_idnumber",book.getUserIdnumber());
  124. sps.addValue("user_name",book.getUserName());
  125. sps.addValue("user_phone",book.getUserPhone());
  126. sps.addValue("hotel_id",book.getHotelId());
  127. sps.addValue("hotel_name",book.getHotelName());
  128. sps.addValue("hotel_hposition",book.getHotelHposition());
  129. sps.addValue("hotel_hposition_wens",book.getHotelHpositionWens());
  130. sps.addValue("hotel_phone",book.getHotelPhone());
  131. sps.addValue("hotel_person",book.getHotelPerson());
  132. sps.addValue("hotel_township",book.getHotelTownship());
  133. sps.addValue("hotel_config",book.getHotelConfig());
  134. sps.addValue("hotel_type",book.getHotelType());
  135. sps.addValue("hotel_is_canorder",book.getHotelIsCanorder());
  136. sps.addValue("hotel_is_order",book.getHotelIsOrder());
  137. sps.addValue("hotel_is_checkout",book.getHotelIsCheckout());
  138. sps.addValue("hotel_manager_id",book.getHotelManagerId());
  139. sps.addValue("house_id",book.getHouseId());
  140. sps.addValue("house_name", book.getHouseName());
  141. sps.addValue("house_config",book.getHouseConfig());
  142. sps.addValue("house_unit_price", book.getHouseUnitPrice());
  143. sps.addValue("house_total_price",book.getHouseTotalPrice());
  144. sps.addValue("house_order_number", book.getHouseOrderNumber());
  145. sps.addValue("house_areas",book.getHouseAreas());
  146. sps.addValue("house_remake", book.getHouseRemake());
  147. sps.addValue("order_start_time",book.getOrderStartTime());
  148. sps.addValue("order_end_time", book.getOrderEndTime());
  149. sps.addValue("order_live_time",book.getOrderLiveTime());
  150. sps.addValue("order_remake", book.getOrderRemake());
  151. sps.addValue("create_time",book.getCreateTime());
  152. sps.addValue("create_userid", book.getCreateUserid());
  153. sps.addValue("update_time",book.getUpdateTime());
  154. sps.addValue("pay_time", book.getPayTime());
  155. sps.addValue("pay_account",book.getPayAccount());
  156. sps.addValue("pay_way", book.getPayWay());
  157. sps.addValue("refund_way",book.getRefundWay());
  158. sps.addValue("refund_amount", book.getRefundAmount());
  159. sps.addValue("refund_time", book.getRefundTime());
  160. sps.addValue("check_out_time",book.getCheckOutTime());
  161. sps.addValue("remake", book.getRemake());
  162. sps.addValue("lock_time", book.getLockTime());
  163. sps.addValue("is_delete", book.getIsDelete()); // 是否假删除:0删除,1正常
  164. sps.addValue("live_time", book.getLiveTime());
  165. sps.addValue("id",book.getId());
  166. int num = 0;
  167. try{
  168. num = namedParameterJdbcTemplate.update(sql, sps);
  169. }
  170. catch(Exception e){
  171. e.printStackTrace();
  172. }
  173. return num;
  174. }
  175. @Override
  176. public int delBooking(int id) {
  177. String sql = "DELETE FROM `booking` WHERE id = :id ";
  178. MapSqlParameterSource sps = new MapSqlParameterSource();
  179. sps.addValue("id",id);
  180. int num = 0;
  181. try{
  182. num = namedParameterJdbcTemplate.update(sql, sps);
  183. }catch (Exception e){
  184. e.printStackTrace();
  185. }
  186. return num;
  187. }
  188. @Override
  189. public Booking getById(int id) {
  190. String sql = "SELECT "+selectCol+" FROM `booking` WHERE id = :id ";
  191. MapSqlParameterSource sps = new MapSqlParameterSource();
  192. sps.addValue("id",id);
  193. List<Booking> list = null;
  194. try{
  195. list = namedParameterJdbcTemplate.query(sql, sps,
  196. new BeanPropertyRowMapper<>(Booking.class));
  197. }catch (Exception e){
  198. e.printStackTrace();
  199. }
  200. if(list != null && list.size()>0) return list.get(0);
  201. return null;
  202. }
  203. @Override
  204. public List<Booking> queryPage(String sqlx, int page, int rows) {
  205. SqlUtil.filterKeyword(sqlx);
  206. int start = (page - 1) * rows;// 每页的起始下标
  207. String sql = "SELECT a.*,b.name hotel_township_name FROM (select "+selectCol+" from booking) a left join hotel_dict b on a.hotel_township = b.id WHERE 1=1 "+sqlx+" ORDER BY create_time DESC limit :start,:rows ";
  208. MapSqlParameterSource sps = new MapSqlParameterSource();
  209. sps.addValue("start", start);
  210. sps.addValue("rows", rows);
  211. List<Booking> list = namedParameterJdbcTemplate.query(sql, sps,
  212. new BeanPropertyRowMapper<>(Booking.class));
  213. if (list != null && list.size() > 0) return list;
  214. return null;
  215. }
  216. @Override
  217. public int queryTotal(String sqlx) {
  218. SqlUtil.filterKeyword(sqlx);
  219. String sql = "SELECT count(*) FROM`booking` where 1=1 "+sqlx;
  220. MapSqlParameterSource sps = new MapSqlParameterSource();
  221. return namedParameterJdbcTemplate.queryForInt(sql, sps);
  222. }
  223. @Override
  224. public List<Booking> queryList(String sqlx) {
  225. SqlUtil.filterKeyword(sqlx);
  226. String sql = "SELECT "+selectCol+",case when order_status=1 then '待支付' when order_status=2 then '已支付' when order_status=3 then '待入住' when order_status=4 then '已入住' when order_status=5 then '已消费' when order_status=6 then '支付超时' when order_status=7 then '已取消' when order_status=8 then '已退单' when order_status=9 then '已退款' else '无状态' end order_name FROM `booking` WHERE 1=1 "+sqlx;
  227. List<Booking> list = null;
  228. try{
  229. list = namedParameterJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Booking.class));
  230. }catch (Exception e){
  231. e.printStackTrace();
  232. }
  233. if(list != null && list.size()>0) return list;
  234. return null;
  235. }
  236. @Override
  237. public Double sumAccount(String sqlx){
  238. SqlUtil.filterKeyword(sqlx);
  239. String sql = "select sum(pay_account) pay_account from booking where is_delete=1"+sqlx;
  240. List<Booking> list = null;
  241. try{
  242. list = namedParameterJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Booking.class));
  243. }catch (Exception e){
  244. e.printStackTrace();
  245. }
  246. if(list != null && list.size()>0) return list.get(0).getPayAccount();
  247. return null;
  248. }
  249. @Override
  250. public BookTypeEto getBookStatusSum(String sqlx){
  251. SqlUtil.filterKeyword(sqlx);
  252. String sql = "select ifnull(sum(case when order_status = 2 then 1 else 0 end),0) pendingOrderSum,count(1) orderSum,ifnull(sum(case when order_status = 5 then 1 else 0 end),0) consumerOrderSum,ifnull(sum(case when order_status = 5 then pay_account else 0 end),0) sumAccount from booking where 1=1"+sqlx;
  253. List<BookTypeEto> list = null;
  254. try{
  255. list = namedParameterJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BookTypeEto.class));
  256. }catch (Exception e){
  257. e.printStackTrace();
  258. }
  259. if(list != null && list.size()>0) return list.get(0);
  260. return null;
  261. }
  262. }