HouseNumberImplDao.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. "left 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 `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("order_start_time", book.getOrderStartTime().substring(0, 10));
  78. sps.addValue("order_end_time", book.getOrderEndTime().substring(0, 10));
  79. List<HouseNumber> list = new ArrayList<>();
  80. try {
  81. list = namedParameterJdbcTemplate.query(sql, sps, new BeanPropertyRowMapper<>(HouseNumber.class));
  82. } catch (Exception e) {
  83. e.printStackTrace();
  84. }
  85. if (list != null && list.size() > 0) return list;
  86. return null;
  87. }
  88. @Override
  89. public List<HouseNumberDto> queryListOne(HouseNumberDto houseNumberDto) {
  90. 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)";
  91. final String SQL_TAIL = " order by number_name";
  92. StringBuilder sql = new StringBuilder(SQL_HEAD);
  93. if (houseNumberDto.getHouseStatus() != null) sql.append(" and house_status = :houseStatus");
  94. sql.append(SQL_TAIL);
  95. return namedParameterJdbcTemplate.query(sql.toString(), BeanMapTool.beanToMap(houseNumberDto), new BeanPropertyRowMapper<>(HouseNumberDto.class));
  96. }
  97. @Override
  98. public void modifyHouseStatus(HouseNumberDto houseNumberDto) {
  99. if (StringUtils.isBlank(houseNumberDto.getId()) && (houseNumberDto.getIdList() == null || houseNumberDto.getIdList().isEmpty()))
  100. return;
  101. final String SQL_HEAD = "update house_number set house_status = :houseStatus, modify_date = :modifyDate";
  102. StringBuilder sql = new StringBuilder(SQL_HEAD);
  103. if (StringUtils.isNotBlank(houseNumberDto.getId())) sql.append(" where id = :id");
  104. if (houseNumberDto.getIdList() != null && !houseNumberDto.getIdList().isEmpty())
  105. sql.append(" where id in (:idList)");
  106. namedParameterJdbcTemplate.update(sql.toString(), BeanMapTool.beanToMap(houseNumberDto));
  107. }
  108. @Override
  109. public List<HouseNumber> queryByHouseId(String houseId) {
  110. 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";
  111. return namedParameterJdbcTemplate.query(sql, new MapSqlParameterSource() {{
  112. addValue("houseId", houseId);
  113. }}, new BeanPropertyRowMapper<>(HouseNumber.class));
  114. }
  115. }