HotelImplDao.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. package com.happy.dao.impl;
  2. import com.happy.Model.Hotel;
  3. import com.happy.Until.Func;
  4. import com.happy.Until.SqlUtil;
  5. import com.happy.Until.UUIDUtil;
  6. import com.happy.dao.HotelDao;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  9. import org.springframework.jdbc.core.namedparam.EmptySqlParameterSource;
  10. import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
  11. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
  12. import org.springframework.stereotype.Repository;
  13. import java.util.List;
  14. @Repository("HotelDao")
  15. public class HotelImplDao implements HotelDao {
  16. @Autowired
  17. private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
  18. public NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() {
  19. return namedParameterJdbcTemplate;
  20. }
  21. public void setNamedParameterJdbcTemplate(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
  22. this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
  23. }
  24. @Override
  25. public int insertHotel(Hotel hotel) {
  26. String sql = "INSERT INTO hotel (id, manager_id,cover_img, hname, hposition, hposition_wens, htype, hstatus, open_time," +
  27. " fitup_time, live_time, leave_time, room_number, remark, hconfig, is_order, is_checkout, lock_time, is_canorder," +
  28. " create_id, create_date, status) VALUES (:id,:manager_id,:cover_img,:hname,:hposition,:hposition_wens,:htype," +
  29. ":hstatus,:open_time,:fitup_time,:live_time,:leave_time,:room_number,:remark,:hconfig,:is_order,:is_checkout," +
  30. ":lock_time,:is_canorder, :create_id, :create_date, :status)";
  31. MapSqlParameterSource sps = new MapSqlParameterSource();
  32. sps.addValue("manager_id",hotel.getManagerId());
  33. sps.addValue("cover_img",hotel.getCoverImg());
  34. sps.addValue("hname",hotel.getHname());
  35. sps.addValue("hposition",hotel.getHposition());
  36. sps.addValue("hposition_wens",hotel.getHpositionWens());
  37. sps.addValue("htype",hotel.getHtype());
  38. sps.addValue("hstatus",hotel.getHstatus());
  39. sps.addValue("open_time",hotel.getOpenTime());
  40. sps.addValue("fitup_time",hotel.getFitupTime());
  41. sps.addValue("live_time",hotel.getLiveTime());
  42. sps.addValue("leave_time",hotel.getLeaveTime());
  43. sps.addValue("room_number",hotel.getRoomNumber());
  44. sps.addValue("remark",hotel.getRemark());
  45. sps.addValue("hconfig",hotel.getHconfig());
  46. sps.addValue("is_order",hotel.getIsOrder());
  47. sps.addValue("is_checkout",hotel.getIsCheckout());
  48. sps.addValue("lock_time",hotel.getLockTime());
  49. sps.addValue("is_canorder",hotel.getIsCheckout());
  50. sps.addValue("create_id", hotel.getCreateId());
  51. sps.addValue("create_date",UUIDUtil.getNewDate());
  52. sps.addValue("status", 1);
  53. if(hotel.getId()==null){
  54. sps.addValue("id", UUIDUtil.generateID());
  55. }else{
  56. sps.addValue("id", hotel.getId());
  57. }
  58. int num = 0;
  59. try{
  60. num = namedParameterJdbcTemplate.update(sql, sps);
  61. }
  62. catch(Exception e){
  63. e.printStackTrace();
  64. }
  65. return num;
  66. }
  67. @Override
  68. public int updateHotel(Hotel hotel) {
  69. StringBuffer stringBuffer = new StringBuffer(" update `hotel` set ");
  70. MapSqlParameterSource sps = new MapSqlParameterSource();
  71. // 将要修改的数据填充到查询语句中
  72. appendValue(hotel,stringBuffer,sps);
  73. stringBuffer.append(" where id=:id ");
  74. sps.addValue("id", hotel.getId());
  75. int num = 0;
  76. try{
  77. num = namedParameterJdbcTemplate.update(stringBuffer.toString(), sps);
  78. }
  79. catch(Exception e){
  80. e.printStackTrace();
  81. }
  82. return num;
  83. }
  84. @Override
  85. public int delHotel(int id) {
  86. String sql = "update `hotel` set status=0 where id=:id";
  87. MapSqlParameterSource sps = new MapSqlParameterSource();
  88. sps.addValue("id",id);
  89. int num = 0;
  90. try{
  91. num = namedParameterJdbcTemplate.update(sql, sps);
  92. }catch (Exception e){
  93. e.printStackTrace();
  94. }
  95. return num;
  96. }
  97. @Override
  98. public Hotel getById(int id) {
  99. String sql = " SELECT a.*, c.manager_phone, b.hotel_township_name,c.hotel_name,d.hTypeName,f.room_number_calc FROM `hotel` a " +
  100. "left join (select manager_id,min(price) min_price ,sum(number) AS room_number_calc from house where status=1 group by manager_id) f on a.manager_id = f.manager_id " +
  101. " LEFT JOIN (SELECT id, corpn_phone manager_phone, hotel_township,hotel_name FROM admin_manager ) c ON a.manager_id = c.id " +
  102. " LEFT JOIN ( SELECT id,name as hotel_township_name FROM hotel_dict GROUP BY id) b ON b.id = c.hotel_township "+
  103. " LEFT JOIN ( SELECT id,name as hTypeName FROM hotel_dict GROUP BY id) d ON d.id = a.htype "+
  104. " WHERE a.STATUS = 1 AND a.id = :id ";
  105. // String sql = "SELECT * FROM `hotel` WHERE id = :id ";
  106. MapSqlParameterSource sps = new MapSqlParameterSource();
  107. sps.addValue("id",id);
  108. List<Hotel> list = null;
  109. try{
  110. list = namedParameterJdbcTemplate.query(sql, sps,
  111. new BeanPropertyRowMapper<>(Hotel.class));
  112. }catch (Exception e){
  113. e.printStackTrace();
  114. }
  115. if(list != null && list.size()>0) return list.get(0);
  116. return null;
  117. }
  118. @Override
  119. public Hotel getByManagerId(int id) {
  120. String sql = " SELECT a.*, c.manager_phone, b.hotel_township_name,c.hotel_name FROM `hotel` a " +
  121. " LEFT JOIN (SELECT id, corpn_phone manager_phone, hotel_township,hotel_name FROM admin_manager ) c ON a.manager_id = c.id " +
  122. " LEFT JOIN ( SELECT id,name as hotel_township_name FROM hotel_dict GROUP BY id) b ON b.id = c.hotel_township "+
  123. " WHERE a.STATUS != 0 AND a.manager_id = :manager_id ";
  124. MapSqlParameterSource sps = new MapSqlParameterSource();
  125. sps.addValue("manager_id",id);
  126. List<Hotel> list = null;
  127. try{
  128. list = namedParameterJdbcTemplate.query(sql, sps,
  129. new BeanPropertyRowMapper<>(Hotel.class));
  130. }catch (Exception e){
  131. e.printStackTrace();
  132. }
  133. if(list != null && list.size()>0) return list.get(0);
  134. return null;
  135. }
  136. @Override
  137. public List<Hotel> queryPage(String sqlx, int page, int rows) {
  138. SqlUtil.filterKeyword(sqlx);
  139. int start = (page - 1) * rows;// 每页的起始下标
  140. String sql = "SELECT * FROM `hotel` WHERE status=1 "+sqlx+" ORDER BY id DESC limit :start,:rows ";
  141. MapSqlParameterSource sps = new MapSqlParameterSource();
  142. sps.addValue("start", start);
  143. sps.addValue("rows", rows);
  144. List<Hotel> list = namedParameterJdbcTemplate.query(sql, sps,
  145. new BeanPropertyRowMapper<>(Hotel.class));
  146. if (list != null && list.size() > 0) return list;
  147. return null;
  148. }
  149. // select a.*,b.min_price from hotel a
  150. // left join (select manager_id,min(price) min_price from house group by manager_id) b on a.manager_id = b.manager_id ORDER BY id DESC limit 1,3
  151. @Override
  152. public List<Hotel> queryPagePrice(String sqlx, int page, int rows) {
  153. SqlUtil.filterKeyword(sqlx);
  154. int start = (page - 1) * rows;// 每页的起始下标
  155. String sql = "SELECT a.*,b.min_price,c.hotel_township,d.hotel_township_name, e.h_type_name,c.hotel_name FROM `hotel` a " +
  156. "left join (select manager_id,min(price) min_price from house where status=1 group by manager_id) b on a.manager_id = b.manager_id " +
  157. "left join (select id,manager_id,hotel_township,hotel_name,type,status from admin_manager ) c on a.manager_id = c.id " +
  158. "LEFT JOIN ( SELECT id,name as hotel_township_name,status FROM hotel_dict GROUP BY id) d ON d.id = c.hotel_township " +
  159. "LEFT JOIN ( SELECT id,name as h_type_name FROM hotel_dict GROUP BY id) e ON e.id = a.htype " +
  160. " WHERE hstatus = 1 and a.status=1 and c.status = 1 "+sqlx+" ORDER BY id DESC limit :start,:rows ";
  161. MapSqlParameterSource sps = new MapSqlParameterSource();
  162. sps.addValue("start", start);
  163. sps.addValue("rows", rows);
  164. List<Hotel> list = namedParameterJdbcTemplate.query(sql, sps,
  165. new BeanPropertyRowMapper<>(Hotel.class));
  166. if (list != null && list.size() > 0) return list;
  167. return null;
  168. }
  169. @Override
  170. public int queryTotalPrice(String sqlx) {
  171. // String sql = "SELECT count(*) FROM`hotel` a " +
  172. // "left join (select manager_id,min(price) min_price from house group by manager_id) b on a.manager_id = b.manager_id " +
  173. // "left join (select manager_id,hotel_township hotel_township from admin_manager group by manager_id) c on a.manager_id = c.manager_id " +
  174. // "where status=1 "+sqlx;
  175. SqlUtil.filterKeyword(sqlx);
  176. String sql = "SELECT count(*) FROM `hotel` a " +
  177. "left join (select manager_id,min(price) min_price from house where status=1 group by manager_id) b on a.manager_id = b.manager_id " +
  178. "left join (select manager_id,hotel_township hotel_township,type from admin_manager group by manager_id) c on a.manager_id = c.manager_id " +
  179. "LEFT JOIN ( SELECT id,name as hotel_township_name FROM hotel_dict GROUP BY id) d ON d.id = c.hotel_township " +
  180. " WHERE status=1 "+sqlx;
  181. MapSqlParameterSource sps = new MapSqlParameterSource();
  182. return namedParameterJdbcTemplate.queryForInt(sql, sps);
  183. }
  184. @Override
  185. public int queryTotal(String sqlx) {
  186. SqlUtil.filterKeyword(sqlx);
  187. String sql = "SELECT count(*) FROM`hotel` where status=1 "+sqlx;
  188. MapSqlParameterSource sps = new MapSqlParameterSource();
  189. return namedParameterJdbcTemplate.queryForInt(sql, sps);
  190. }
  191. @Override
  192. public List<Hotel> queryList(String sqlx) {
  193. SqlUtil.filterKeyword(sqlx);
  194. String sql = "SELECT * FROM `hotel` WHERE status=1 "+sqlx;
  195. List<Hotel> list = null;
  196. try{
  197. list = namedParameterJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Hotel.class));
  198. }catch (Exception e){
  199. e.printStackTrace();
  200. }
  201. if(list != null && list.size()>0) return list;
  202. return null;
  203. }
  204. public void appendValue(Hotel hotel, StringBuffer stringBuffer, MapSqlParameterSource sps){
  205. if (!Func.checkNull(String.valueOf(hotel.getManagerId()))){
  206. stringBuffer.append(" manager_id=:manager_id ,");
  207. sps.addValue("manager_id",hotel.getManagerId());
  208. }
  209. if (!Func.checkNull(hotel.getHname())){
  210. stringBuffer.append(" hname=:hname ,");
  211. sps.addValue("hname",hotel.getHname());
  212. }
  213. if (!Func.checkNull(hotel.getCoverImg())){
  214. stringBuffer.append(" cover_img=:cover_img ,");
  215. sps.addValue("cover_img",hotel.getCoverImg());
  216. }
  217. if (!Func.checkNull(hotel.getHposition())){
  218. stringBuffer.append(" hposition=:hposition ,");
  219. sps.addValue("hposition",hotel.getHposition());
  220. }
  221. if (!Func.checkNull(hotel.getHpositionWens())){
  222. stringBuffer.append(" hposition_wens=:hposition_wens ,");
  223. sps.addValue("hposition_wens",hotel.getHpositionWens());
  224. }
  225. if (!Func.checkNull(hotel.getHtype())){
  226. stringBuffer.append(" htype=:htype ,");
  227. sps.addValue("htype",hotel.getHtype());
  228. }
  229. if (!Func.checkNull(String.valueOf(hotel.getHstatus()))){
  230. stringBuffer.append(" hstatus=:hstatus ,");
  231. sps.addValue("hstatus",hotel.getHstatus());
  232. }
  233. if (!Func.checkNull(hotel.getOpenTime())){
  234. stringBuffer.append(" open_time=:open_time ,");
  235. sps.addValue("open_time",hotel.getOpenTime());
  236. }
  237. if (!Func.checkNull(hotel.getFitupTime())){
  238. stringBuffer.append(" fitup_time=:fitup_time ,");
  239. sps.addValue("fitup_time",hotel.getFitupTime());
  240. }
  241. if (!Func.checkNull(hotel.getLiveTime())){
  242. stringBuffer.append(" live_time=:live_time ,");
  243. sps.addValue("live_time",hotel.getLiveTime());
  244. }
  245. if (!Func.checkNull(hotel.getLeaveTime())){
  246. stringBuffer.append(" leave_time=:leave_time ,");
  247. sps.addValue("leave_time",hotel.getLeaveTime());
  248. }
  249. if (!Func.checkNull(String.valueOf(hotel.getRoomNumber()))){
  250. stringBuffer.append(" room_number=:room_number ,");
  251. sps.addValue("room_number",hotel.getRoomNumber());
  252. }
  253. if (!Func.checkNull(hotel.getRemark())){
  254. stringBuffer.append(" remark=:remark ,");
  255. sps.addValue("remark",hotel.getRemark());
  256. }
  257. if (!Func.checkNull(hotel.getHconfig())){
  258. stringBuffer.append(" hconfig=:hconfig ,");
  259. sps.addValue("hconfig",hotel.getHconfig());
  260. }
  261. if (!Func.checkNull(String.valueOf(hotel.getIsOrder()))){
  262. stringBuffer.append(" is_order=:is_order ,");
  263. sps.addValue("is_order",hotel.getIsOrder());
  264. }
  265. if (!Func.checkNull(String.valueOf(hotel.getIsCheckout()))){
  266. stringBuffer.append(" is_checkout=:is_checkout ,");
  267. sps.addValue("is_checkout",hotel.getIsCheckout());
  268. }
  269. if (!Func.checkNull(hotel.getLockTime())){
  270. stringBuffer.append(" lock_time=:lock_time ,");
  271. sps.addValue("lock_time",hotel.getLockTime());
  272. }
  273. if (!Func.checkNull(String.valueOf(hotel.getIsCanorder()))){
  274. stringBuffer.append(" is_canorder=:is_canorder ,");
  275. sps.addValue("is_canorder",hotel.getIsCanorder());
  276. }
  277. if (!Func.checkNull(String.valueOf(hotel.getStatus()))){
  278. stringBuffer.append(" status=:status ,");
  279. sps.addValue("status", hotel.getStatus());
  280. }
  281. stringBuffer.append(" modify_date=:modify_date ");
  282. sps.addValue("modify_date", UUIDUtil.getNewDate());
  283. }
  284. }