HouseNumberImplDao.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package com.happy.dao.impl;
  2. import com.happy.Model.Booking;
  3. import com.happy.Model.HotelCoupon;
  4. import com.happy.Model.HouseNumber;
  5. import com.happy.Until.BeanMapTool;
  6. import com.happy.Until.UUIDUtil;
  7. import com.happy.dao.HouseNumberDao;
  8. import com.happy.dto.HouseNumberDto;
  9. import org.apache.commons.lang.StringUtils;
  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.jdbc.core.namedparam.SqlParameterSource;
  15. import org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils;
  16. import org.springframework.stereotype.Repository;
  17. import java.awt.print.Book;
  18. import java.time.LocalDateTime;
  19. import java.time.format.DateTimeFormatter;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. import java.util.Map;
  23. import java.util.UUID;
  24. @Repository("HouseNumberDao")
  25. public class HouseNumberImplDao implements HouseNumberDao {
  26. @Autowired
  27. private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
  28. public NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() {
  29. return namedParameterJdbcTemplate;
  30. }
  31. public void setNamedParameterJdbcTemplate(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
  32. this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
  33. }
  34. @Override
  35. public int saveBatch(List<HouseNumber> list) {
  36. SqlParameterSource[] params = SqlParameterSourceUtils.createBatch(list.toArray());
  37. String insertSql = "INSERT INTO `house_number` (`id`, `house_id`, `number_name`, `create_id`, `create_date`, `modify_date`, `status` )" +
  38. " VALUES " +
  39. " (:id,:house_id,:number_name,:create_id,:create_date,:modify_date,:status) ";
  40. List<MapSqlParameterSource> houseNumberList = new ArrayList<>();
  41. for (HouseNumber h1 : list) {
  42. MapSqlParameterSource mapSqlParameterSource = new MapSqlParameterSource();
  43. mapSqlParameterSource.addValue("id", String.valueOf(UUID.randomUUID()));
  44. mapSqlParameterSource.addValue("house_id", h1.getHouseId());
  45. mapSqlParameterSource.addValue("number_name", h1.getNumberName());
  46. mapSqlParameterSource.addValue("create_id", h1.getCreateId());
  47. mapSqlParameterSource.addValue("create_date", UUIDUtil.getNewDate());
  48. mapSqlParameterSource.addValue("modify_date", UUIDUtil.getNewDate());
  49. mapSqlParameterSource.addValue("status", h1.getStatus());
  50. houseNumberList.add(mapSqlParameterSource);
  51. }
  52. int[] m = namedParameterJdbcTemplate.batchUpdate(insertSql, houseNumberList.toArray(new SqlParameterSource[0]));
  53. return m.length;
  54. }
  55. @Override
  56. public int updateBatch(List<HouseNumber> list) {
  57. HouseNumber h1 = list.get(0);
  58. String delSql = "update `house_number` set status=0 where house_id=:houseId";
  59. MapSqlParameterSource sps = new MapSqlParameterSource();
  60. sps.addValue("houseId", h1.getHouseId());
  61. int num = 0;
  62. try {
  63. num = namedParameterJdbcTemplate.update(delSql, sps);
  64. this.saveBatch(list);
  65. } catch (Exception e) {
  66. e.printStackTrace();
  67. }
  68. return 0;
  69. }
  70. @Override
  71. public List<HouseNumber> queryHouseStatus(Booking book) {
  72. String sql = "select `id`,`house_id`,`number_name`,`create_id`,`create_date`,`modify_date`,IF(b.number_id is not null, 3, `status`) as `status` from \n" +
  73. "(select * from house_number where house_id = :house_id and status != 0) a\n" +
  74. "inner join (select number_id from house_number_status where DATE_FORMAT(set_date,'%Y-%m-%d') >= :order_start_time and DATE_FORMAT(set_date,'%Y-%m-%d') <= :order_end_time and booking_id != :booking_id and `status` > 1 group by number_id) b on a.id = b.number_id";
  75. MapSqlParameterSource sps = new MapSqlParameterSource();
  76. sps.addValue("house_id", book.getHouseId());
  77. sps.addValue("booking_id", book.getId());
  78. sps.addValue("order_start_time", book.getOrderStartTime().substring(0, 10));
  79. sps.addValue("order_end_time", book.getOrderEndTime().substring(0, 10));
  80. List<HouseNumber> list = new ArrayList<>();
  81. try {
  82. list = namedParameterJdbcTemplate.query(sql, sps, new BeanPropertyRowMapper<>(HouseNumber.class));
  83. } catch (Exception e) {
  84. e.printStackTrace();
  85. }
  86. if (list != null && list.size() > 0) return list;
  87. return null;
  88. }
  89. /**
  90. * ??????
  91. */
  92. @Override
  93. public List<HouseNumber> queryCheckRoom(Booking book) {
  94. String sql = "select `id`,`house_id`,`number_name`,`create_id`,`create_date`,`modify_date`from\n" +
  95. "(select * from house_number where house_id = :house_id and status != 0) a\n" +
  96. "where not exists\n" +
  97. "(select number_id from house_number_status where DATE_FORMAT(set_date,'%Y-%m-%d') >= :order_start_time and DATE_FORMAT(set_date,'%Y-%m-%d') <= :order_end_time and booking_id != :booking_id and `status` >1 and number_id = a.id group by number_id)" +
  98. "order by number_name asc";
  99. MapSqlParameterSource sps = new MapSqlParameterSource();
  100. sps.addValue("house_id", book.getHouseId());
  101. sps.addValue("booking_id", book.getId());
  102. sps.addValue("order_start_time", book.getOrderStartTime().substring(0, 10));
  103. sps.addValue("order_end_time", book.getOrderEndTime().substring(0, 10));
  104. List<HouseNumber> list = new ArrayList<>();
  105. try {
  106. list = namedParameterJdbcTemplate.query(sql, sps, new BeanPropertyRowMapper<>(HouseNumber.class));
  107. } catch (Exception e) {
  108. e.printStackTrace();
  109. }
  110. if (list != null && list.size() > 0) return list;
  111. return null;
  112. }
  113. @Override
  114. public List<HouseNumberDto> queryListOne(HouseNumberDto houseNumberDto) {
  115. final String SQL_HEAD = "select id, house_id, number_name, create_id, create_date, modify_date, status, house_status from house_number where status in (1, 2) and house_id in (:houseIdList)";
  116. final String SQL_TAIL = " order by number_name";
  117. StringBuilder sql = new StringBuilder(SQL_HEAD);
  118. if (houseNumberDto.getHouseStatus() != null) sql.append(" and house_status = :houseStatus");
  119. sql.append(SQL_TAIL);
  120. return namedParameterJdbcTemplate.query(sql.toString(), BeanMapTool.beanToMap(houseNumberDto), new BeanPropertyRowMapper<>(HouseNumberDto.class));
  121. }
  122. @Override
  123. public void modifyHouseStatus(HouseNumberDto houseNumberDto) {
  124. if (StringUtils.isBlank(houseNumberDto.getId()) && (houseNumberDto.getIdList() == null || houseNumberDto.getIdList().isEmpty()))
  125. return;
  126. final String SQL_HEAD = "update house_number set house_status = :houseStatus, modify_date = :modifyDate";
  127. StringBuilder sql = new StringBuilder(SQL_HEAD);
  128. if (StringUtils.isNotBlank(houseNumberDto.getId())) sql.append(" where id = :id");
  129. if (houseNumberDto.getIdList() != null && !houseNumberDto.getIdList().isEmpty())
  130. sql.append(" where id in (:idList)");
  131. namedParameterJdbcTemplate.update(sql.toString(), BeanMapTool.beanToMap(houseNumberDto));
  132. }
  133. @Override
  134. public List<HouseNumber> queryByHouseId(String houseId) {
  135. final String sql = "select id, house_id, number_name, create_id, create_date, modify_date, status from house_number where status != 0 and house_id = :houseId order by number_name";
  136. return namedParameterJdbcTemplate.query(sql, new MapSqlParameterSource() {{
  137. addValue("houseId", houseId);
  138. }}, new BeanPropertyRowMapper<>(HouseNumber.class));
  139. }
  140. @Override
  141. public int updateHouseStatus(String ids) {
  142. String delSql = "update `house_number` set house_status=2 where id in (:ids)";
  143. MapSqlParameterSource sps = new MapSqlParameterSource();
  144. sps.addValue("ids", ids);
  145. int num = 0;
  146. try {
  147. num = namedParameterJdbcTemplate.update(delSql, sps);
  148. } catch (Exception e) {
  149. e.printStackTrace();
  150. }
  151. return num;
  152. }
  153. }