HouseImplDao.java 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package com.happy.dao.impl;
  2. import com.happy.Model.Admin;
  3. import com.happy.Model.Hotel;
  4. import com.happy.Model.House;
  5. import com.happy.Model.House;
  6. import com.happy.Until.Func;
  7. import com.happy.Until.SqlUtil;
  8. import com.happy.Until.UUIDUtil;
  9. import com.happy.dao.HouseDao;
  10. import com.happy.dto.HouseSumEto;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  13. import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
  14. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
  15. import org.springframework.stereotype.Repository;
  16. import java.util.List;
  17. @Repository("HouseDao")
  18. public class HouseImplDao implements HouseDao {
  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. @Override
  29. public int insertHouse(House house) {
  30. String sql = "INSERT INTO house (id, manager_id, h_name, h_areas, price, number, h_config, remark, create_id, create_date, status) VALUES (:id, :manager_id, :h_name, :h_areas, :price, :number, :h_config, :remark, :create_id, :create_date, :status)";
  31. MapSqlParameterSource sps = new MapSqlParameterSource();
  32. sps.addValue("manager_id",house.getManagerId());
  33. sps.addValue("h_name",house.gethName());
  34. sps.addValue("h_areas",house.gethAreas());
  35. sps.addValue("price",house.getPrice());
  36. sps.addValue("number",house.getNumber());
  37. sps.addValue("h_config",house.gethConfig());
  38. sps.addValue("remark",house.getRemark());
  39. sps.addValue("create_id",house.getCreateId());
  40. sps.addValue("create_date",UUIDUtil.getNewDate());
  41. sps.addValue("status",1);
  42. if(house.getId()==null){
  43. sps.addValue("id", UUIDUtil.generateID());
  44. }else{
  45. sps.addValue("id", house.getId());
  46. }
  47. int num = 0;
  48. try{
  49. num = namedParameterJdbcTemplate.update(sql, sps);
  50. }
  51. catch(Exception e){
  52. e.printStackTrace();
  53. }
  54. return num;
  55. }
  56. @Override
  57. public int updateHouse(House house) {
  58. StringBuffer stringBuffer = new StringBuffer(" update `house` set ");
  59. MapSqlParameterSource sps = new MapSqlParameterSource();
  60. // 将要修改的数据填充到查询语句中
  61. appendValue(house,stringBuffer,sps);
  62. stringBuffer.append(" where id=:id ");
  63. sps.addValue("id", house.getId());
  64. int num = 0;
  65. try{
  66. num = namedParameterJdbcTemplate.update(stringBuffer.toString(), sps);
  67. }
  68. catch(Exception e){
  69. e.printStackTrace();
  70. }
  71. return num;
  72. }
  73. @Override
  74. public int delHouse(int id) {
  75. String sql = "update `house` set status = 0 where id=:id";
  76. MapSqlParameterSource sps = new MapSqlParameterSource();
  77. sps.addValue("id",id);
  78. int num = 0;
  79. try{
  80. num = namedParameterJdbcTemplate.update(sql, sps);
  81. }catch (Exception e){
  82. e.printStackTrace();
  83. }
  84. return num;
  85. }
  86. @Override
  87. public House getById(int id) {
  88. String sql = "SELECT * FROM `house` WHERE id = :id ";
  89. MapSqlParameterSource sps = new MapSqlParameterSource();
  90. sps.addValue("id",id);
  91. List<House> list = null;
  92. try{
  93. list = namedParameterJdbcTemplate.query(sql, sps,
  94. new BeanPropertyRowMapper<>(House.class));
  95. }catch (Exception e){
  96. e.printStackTrace();
  97. }
  98. if(list != null && list.size()>0) return list.get(0);
  99. return null;
  100. }
  101. @Override
  102. public List<House> queryPage(String sqlx, int page, int rows) {
  103. SqlUtil.filterKeyword(sqlx);
  104. int start = (page - 1) * rows;// 每页的起始下标
  105. String sql = "SELECT * FROM `house` WHERE status=1 "+sqlx+" ORDER BY id DESC limit :start,:rows ";
  106. MapSqlParameterSource sps = new MapSqlParameterSource();
  107. sps.addValue("start", start);
  108. sps.addValue("rows", rows);
  109. List<House> list = namedParameterJdbcTemplate.query(sql, sps,
  110. new BeanPropertyRowMapper<>(House.class));
  111. if (list != null && list.size() > 0) return list;
  112. return null;
  113. }
  114. @Override
  115. public int queryTotal(String sqlx) {
  116. SqlUtil.filterKeyword(sqlx);
  117. String sql = "SELECT count(*) FROM `house` where status=1 "+sqlx;
  118. MapSqlParameterSource sps = new MapSqlParameterSource();
  119. return namedParameterJdbcTemplate.queryForInt(sql, sps);
  120. }
  121. @Override
  122. public List<House> queryList(String sqlx) {
  123. SqlUtil.filterKeyword(sqlx);
  124. String sql = "SELECT * FROM `house` WHERE status=1 "+sqlx;
  125. List<House> list = null;
  126. try{
  127. list = namedParameterJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(House.class));
  128. }catch (Exception e){
  129. e.printStackTrace();
  130. }
  131. if(list != null && list.size()>0) return list;
  132. return null;
  133. }
  134. @Override
  135. public List<HouseSumEto> queryPageHouseSum(String sqlx1, String sqlx2, int page, int rows){
  136. int start = (page - 1) * rows;// 每页的起始下标
  137. String sql ="SELECT :order_start_time order_start_time,a.h_name houseName,a.number house_num,a.number-ifnull(b.house_order_number,0) house_residue_num,ifnull(b.house_lock_num,0) house_lock_num,ifnull(b.house_due_num,0) house_due_num,ifnull(b.house_order_number,0) house_order_number " +
  138. "FROM house a left join ( SELECT hotel_manager_id manager_id, house_id, sum( CASE WHEN order_status IN ( 1, 2 ) THEN house_order_number ELSE 0 END ) house_lock_num, sum( CASE WHEN order_status = 3 THEN house_order_number ELSE 0 END ) house_due_num, sum( house_order_number ) house_order_number FROM booking WHERE order_status IN ( 1, 2, 3, 4 ) and DATE_FORMAT(order_start_time,'%Y-%m-%d') = :order_start_time GROUP BY hotel_manager_id, house_id ) b ON b.house_id = a.id WHERE a.status != 0 "+sqlx2+" ORDER BY a.h_name limit :start,:rows ";
  139. MapSqlParameterSource sps = new MapSqlParameterSource();
  140. sps.addValue("order_start_time", sqlx1);
  141. sps.addValue("start", start);
  142. sps.addValue("rows", rows);
  143. List<HouseSumEto> list = namedParameterJdbcTemplate.query(sql, sps,
  144. new BeanPropertyRowMapper<>(HouseSumEto.class));
  145. if (list != null && list.size() > 0) return list;
  146. return null;
  147. }
  148. @Override
  149. public int queryPageHouseSumTotal(String sqlx1, String sqlx2){
  150. SqlUtil.filterKeyword(sqlx1);
  151. SqlUtil.filterKeyword(sqlx2);
  152. String sql ="SELECT count(1) " +
  153. "FROM house a left join ( SELECT hotel_manager_id manager_id, house_id, sum( CASE WHEN order_status IN ( 1, 2 ) THEN house_order_number ELSE 0 END ) house_lock_num, sum( CASE WHEN order_status = 3 THEN house_order_number ELSE 0 END ) house_due_num, sum( house_order_number ) house_order_number FROM booking WHERE order_status IN ( 1, 2, 3, 4 ) and DATE_FORMAT(order_start_time,'%Y-%m-%d') = :order_start_time GROUP BY hotel_manager_id, house_id ) b ON b.house_id = a.id WHERE a.status != 0 "+sqlx2;
  154. MapSqlParameterSource sps = new MapSqlParameterSource();
  155. sps.addValue("order_start_time", sqlx1);
  156. return namedParameterJdbcTemplate.queryForInt(sql, sps);
  157. }
  158. @Override
  159. public int getHouseSum(int managerId){
  160. String sql = "select sum(number) from house where status = 1 and manager_id = :manager_id";
  161. MapSqlParameterSource sps = new MapSqlParameterSource();
  162. sps.addValue("manager_id",managerId);
  163. return namedParameterJdbcTemplate.queryForInt(sql, sps);
  164. }
  165. private void appendValue(House house, StringBuffer stringBuffer, MapSqlParameterSource sps){
  166. if (!Func.checkNull(String.valueOf(house.getManagerId()))){
  167. stringBuffer.append(" manager_id=:manager_id ,");
  168. sps.addValue("manager_id",house.getManagerId());
  169. }
  170. if (!Func.checkNull(house.gethName())){
  171. stringBuffer.append(" h_name=:h_name ,");
  172. sps.addValue("h_name",house.gethName());
  173. }
  174. if (!Func.checkNull(house.gethAreas())){
  175. stringBuffer.append(" h_areas=:h_areas ,");
  176. sps.addValue("h_areas",house.gethAreas());
  177. }
  178. if (!Func.checkNull(String.valueOf(house.getPrice()))){
  179. stringBuffer.append(" price=:price ,");
  180. sps.addValue("price",house.getPrice());
  181. }
  182. if (!Func.checkNull(String.valueOf(house.getNumber()))){
  183. stringBuffer.append(" number=:number ,");
  184. sps.addValue("number",house.getNumber());
  185. }
  186. if (!Func.checkNull(house.gethConfig())){
  187. stringBuffer.append(" h_config=:h_config ,");
  188. sps.addValue("h_config",house.gethConfig());
  189. }
  190. if (!Func.checkNull(house.getRemark())){
  191. stringBuffer.append(" remark=:remark ,");
  192. sps.addValue("remark",house.getRemark());
  193. }
  194. if (!Func.checkNull(String.valueOf(house.getStatus()))){
  195. stringBuffer.append(" status=:status ,");
  196. sps.addValue("status", house.getStatus());
  197. }
  198. stringBuffer.append(" modify_date=:modify_date ");
  199. sps.addValue("modify_date", UUIDUtil.getNewDate());
  200. }
  201. }