houseAction.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. package com.happy.action;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.google.gson.Gson;
  4. import com.google.gson.reflect.TypeToken;
  5. import com.happy.Model.*;
  6. import com.happy.Until.*;
  7. import com.happy.dto.HouseSumEto;
  8. import com.happy.dto.IPage;
  9. import com.happy.service.*;
  10. import com.opensymphony.xwork2.ActionSupport;
  11. import net.sf.json.JSONObject;
  12. import org.apache.struts2.ServletActionContext;
  13. import org.apache.struts2.interceptor.ServletRequestAware;
  14. import javax.annotation.Resource;
  15. import javax.servlet.http.HttpServletRequest;
  16. import javax.servlet.http.HttpServletResponse;
  17. import java.util.ArrayList;
  18. import java.util.Arrays;
  19. import java.util.List;
  20. import java.util.Objects;
  21. public class houseAction extends ActionSupport implements ServletRequestAware {
  22. private HttpServletRequest request;
  23. public HttpServletResponse response;
  24. @Resource
  25. public HouseService houseService;
  26. @Resource
  27. public BookService bookService;
  28. @Resource
  29. public FileService fileService;
  30. @Resource
  31. public HotelDictService hotelDictService;
  32. @Resource
  33. public HouseNumberService houseNumberService;
  34. public Integer id;
  35. public Integer managerId;
  36. public String hName;//房型名称
  37. public int page; // 当前页
  38. public int rows;// 每页显示的行数rows
  39. public String orderTime;//住房时间
  40. public String fileListJson;
  41. public String houseNumber; // 房间号
  42. public HttpServletRequest getRequest() {
  43. return request;
  44. }
  45. public void setRequest(HttpServletRequest request) {
  46. this.request = request;
  47. }
  48. public void setServletRequest(HttpServletRequest request) {
  49. this.request = request;
  50. }
  51. public HttpServletResponse getResponse() {
  52. return response;
  53. }
  54. public void setResponse(HttpServletResponse response) {
  55. this.response = response;
  56. }
  57. /**
  58. * 描述:新增房型
  59. * @return
  60. */
  61. public String insterHouser(){
  62. JSONObject resultJson = new JSONObject();
  63. Gson gson = new Gson();
  64. com.alibaba.fastjson.JSONObject json = GetHttpParam.getRequestParameters(request);
  65. if (json == null) {
  66. resultJson.put("message", "请传入参数");
  67. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  68. return null;
  69. }
  70. House house = null;
  71. try {
  72. house = gson.fromJson(json.toString(), new TypeToken<House>() {}.getType());
  73. if (house == null) {
  74. resultJson.put("message", "数据为空");
  75. resultJson.put("code", 500);
  76. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  77. return null;
  78. }
  79. if (house.getManagerId()==null || house.gethName()==null || house.getPrice()==null || house.getNumber()==null || house.gethAreas()==null){
  80. resultJson.put("message", "各参数不能为空");
  81. resultJson.put("code", 500);
  82. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  83. return null;
  84. }
  85. //详细图附件
  86. List<FileInfo> fileList = JSONArray.parseArray(fileListJson, FileInfo.class);
  87. // if(fileList==null){
  88. // resultJson.put("message", "请上传详细图");
  89. // ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  90. // return null;
  91. // }
  92. // List<String> numberList = JSONArray.parseArray(houseNumberList, String.class);
  93. StringBuilder getOneSqlx = new StringBuilder("");
  94. getOneSqlx.append(" and h_name = '").append(house.gethName()).append("'")
  95. .append(" and manager_id = '").append(house.getManagerId()).append("'");
  96. House listc = houseService.getOen(getOneSqlx.toString());
  97. if (listc != null) {
  98. resultJson.put("message", "房型已存在");
  99. resultJson.put("code", 500);
  100. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  101. return null;
  102. }
  103. //房型验证成功添加房号
  104. Long id = UUIDUtil.generateID();
  105. List<String> houseNumberList = Arrays.asList(houseNumber.split(","));
  106. List<HouseNumber> houseNumbers = new ArrayList<HouseNumber>();
  107. long count = houseNumberList.stream().distinct().count();
  108. if (count != houseNumberList.size()){
  109. resultJson.put("message", "房号不可重复");
  110. resultJson.put("code", 500);
  111. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  112. return null;
  113. }
  114. for (String s : houseNumberList){
  115. HouseNumber h1 = new HouseNumber();
  116. h1.setHouseId(Long.toString(id));
  117. h1.setNumberName(s);
  118. h1.setStatus(1);
  119. houseNumbers.add(h1);
  120. }
  121. //执行批量房间号表操作
  122. int a = houseNumberService.saveBatch(houseNumbers);
  123. house.setId(Math.toIntExact(id));
  124. int m = houseService.insertHouse(house);
  125. if (m > 0) {
  126. for(FileInfo file : fileList){
  127. FileInfo fileInfo = fileService.getById(file.getId());
  128. file.setLinkId(house.getId());
  129. if(fileInfo==null){
  130. fileService.insertFile(file);
  131. }else{
  132. fileService.updateFile(file);
  133. }
  134. }
  135. resultJson.put("message", "新增成功");
  136. resultJson.put("code", 200);
  137. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  138. return null;
  139. } else {
  140. resultJson.put("message", "新增失败");
  141. resultJson.put("code", 502);
  142. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  143. return null;
  144. }
  145. } catch (Exception e) {
  146. e.printStackTrace();
  147. }
  148. resultJson.put("message", "未知异常");
  149. resultJson.put("code", 205);
  150. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  151. return null;
  152. }
  153. /**
  154. * 描述:修改房型
  155. * @return
  156. */
  157. public String updateHouser(){
  158. JSONObject resultJson = new JSONObject();
  159. Gson gson = new Gson();
  160. com.alibaba.fastjson.JSONObject json = GetHttpParam.getRequestParameters(request);
  161. if (json == null) {
  162. resultJson.put("message", "请传入参数");
  163. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  164. return null;
  165. }
  166. House house = null;
  167. try {
  168. house = gson.fromJson(json.toString(), new TypeToken<House>() {}.getType());
  169. if (house == null) {
  170. resultJson.put("message", "数据为空");
  171. resultJson.put("code", 500);
  172. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  173. return null;
  174. }
  175. if (house.getId() == null) {
  176. resultJson.put("message", "房型Id为空");
  177. resultJson.put("code", 500);
  178. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  179. return null;
  180. }
  181. if (house.getManagerId()==null || house.gethName()==null || house.getPrice()==null || house.getNumber()==null || house.gethAreas()==null){
  182. resultJson.put("message", "各参数不能为空");
  183. resultJson.put("code", 500);
  184. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  185. return null;
  186. }
  187. //详细图附件
  188. List<FileInfo> fileList = JSONArray.parseArray(fileListJson, FileInfo.class);
  189. // if(fileList==null){
  190. // resultJson.put("message", "请上传详细图");
  191. // ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  192. // return null;
  193. // }
  194. // List<String> numberList = JSONArray.parseArray(houseNumberList, String.class);
  195. StringBuilder getOneSqlx = new StringBuilder("");
  196. getOneSqlx.append(" and h_name = '").append(house.gethName()).append("'");
  197. getOneSqlx.append(" and manager_id = '").append(house.getManagerId()).append("'");
  198. getOneSqlx.append(" and id != '").append(house.getId()).append("'");
  199. House listc = houseService.getOen(getOneSqlx.toString());
  200. if (listc != null) {
  201. resultJson.put("message", "房型已存在");
  202. resultJson.put("code", 500);
  203. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  204. return null;
  205. }
  206. //验证成功修改房号表
  207. List<String> houseNumberList = Arrays.asList(houseNumber.split(","));
  208. List<HouseNumber> houseNumbers = new ArrayList<HouseNumber>();
  209. for (String s : houseNumberList){
  210. HouseNumber h1 = new HouseNumber();
  211. h1.setHouseId(Long.toString(house.getId()));
  212. h1.setNumberName(s);
  213. h1.setStatus(1);
  214. houseNumbers.add(h1);
  215. }
  216. int a = houseNumberService.updateBatch(houseNumbers);
  217. int m = houseService.updateHouse(house);
  218. if (m > 0) {
  219. if(house.getId()!= null){
  220. fileService.delLinkFile(house.getId());
  221. }
  222. for(FileInfo file : fileList){
  223. FileInfo fileInfo = fileService.getById(file.getId());
  224. file.setLinkId(house.getId());
  225. if(fileInfo==null){
  226. fileService.insertFile(file);
  227. }else{
  228. fileService.updateFile(file);
  229. }
  230. }
  231. resultJson.put("message", "修改成功");
  232. resultJson.put("code", 200);
  233. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  234. return null;
  235. } else {
  236. resultJson.put("message", "修改败");
  237. resultJson.put("code", 502);
  238. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  239. return null;
  240. }
  241. } catch (Exception e) {
  242. e.printStackTrace();
  243. }
  244. resultJson.put("message", "未知异常");
  245. resultJson.put("code", 205);
  246. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  247. return null;
  248. }
  249. /**
  250. * 描述:删除房型
  251. * @return
  252. */
  253. public String delHouser(){
  254. JSONObject resultJson = new JSONObject();
  255. if (id == null) {
  256. resultJson.put("message", "请传入id");
  257. resultJson.put("code", 500);
  258. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  259. return null;
  260. }
  261. int m = houseService.delHouse(id);
  262. if (m > 0) {
  263. resultJson.put("message", "删除成功");
  264. resultJson.put("code", 200);
  265. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  266. return null;
  267. }
  268. resultJson.put("message", "未知异常");
  269. resultJson.put("code", 205);
  270. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  271. return null;
  272. }
  273. /**
  274. * 描述:根据Id查询详细
  275. * @return
  276. */
  277. public String getById(){
  278. JSONObject resultJson = new JSONObject();
  279. if (id == null) {
  280. resultJson.put("message", "请传入id");
  281. resultJson.put("code", 500);
  282. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  283. return null;
  284. }
  285. House house = houseService.getById(id);
  286. StringBuilder fileSqlx = new StringBuilder("");
  287. fileSqlx.append("and link_id = '").append(id).append("'");
  288. List<FileInfo> fileInfoList = fileService.queryList(fileSqlx.toString());
  289. house.setFileInfoList(fileInfoList);
  290. if (house != null) {
  291. //获取有效房型服务
  292. if(house.gethConfig() != null && !"".equals(house.gethConfig())){
  293. house.sethConfig(hotelDictService.setConfig(house.gethConfig()));
  294. }
  295. resultJson.put("message", "查询成功");
  296. resultJson.put("code", 200);
  297. resultJson.put("data", house);
  298. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  299. return null;
  300. }else{
  301. resultJson.put("message", "未查到信息");
  302. resultJson.put("code", 500);
  303. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  304. return null;
  305. }
  306. }
  307. /**
  308. * 描述:分页查询
  309. * @return
  310. */
  311. public String queryPage(){
  312. JSONObject resultJson = new JSONObject();
  313. StringBuilder s1 = new StringBuilder("");
  314. if (hName!=null){
  315. s1.append(" and h_name like '%").append(hName).append("%'");
  316. }
  317. if (managerId!=null){
  318. s1.append(" and manager_id = '").append(managerId).append("'");
  319. }
  320. IPage<House> houseIPage = houseService.queryPage(s1.toString(),page,rows);
  321. if(houseIPage!=null && !"".equals(houseIPage)){
  322. resultJson.put("message", "查询分页成功");
  323. resultJson.put("code", 200);
  324. resultJson.put("data", houseIPage);
  325. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  326. }else{
  327. resultJson.put("message", "查询分页失败");
  328. resultJson.put("code", 500);
  329. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  330. }
  331. return null;
  332. }
  333. /**
  334. * 描述:房源分页查询
  335. * @return
  336. */
  337. public String queryPageHouseSum(){
  338. JSONObject resultJson = new JSONObject();
  339. StringBuilder s1 = new StringBuilder("");
  340. StringBuilder s2 = new StringBuilder("");
  341. if (orderTime!=null){
  342. s1.append(" and DATE_FORMAT(order_start_time,'%Y-%m-%d') = '").append(orderTime).append("'");
  343. }else{
  344. orderTime = UUIDUtil.getNewDate().substring(0,10);
  345. }
  346. if (hName!=null){
  347. s2.append(" and a.h_name like '%").append(hName).append("%'");
  348. }
  349. if (managerId!=null){
  350. s2.append(" and a.manager_id = '").append(managerId).append("'");
  351. }
  352. IPage<HouseSumEto> houseIPage = houseService.queryPageHouseSum(orderTime,s2.toString(),page,rows);
  353. if(houseIPage!=null && !"".equals(houseIPage)){
  354. resultJson.put("message", "查询分页成功");
  355. resultJson.put("code", 200);
  356. resultJson.put("data", houseIPage);
  357. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  358. }else{
  359. resultJson.put("message", "查询分页失败");
  360. resultJson.put("code", 500);
  361. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  362. }
  363. return null;
  364. }
  365. }