houseAction.java 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  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. String id = Func.newGuid();
  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(id);
  117. h1.setNumberName(s);
  118. h1.setStatus(1);
  119. houseNumbers.add(h1);
  120. }
  121. //执行批量房间号表操作
  122. int a = houseNumberService.saveBatch(houseNumbers);
  123. house.setId(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(String.valueOf(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. //2023-09-19 A-jax 房型数量必须和房间数量一致
  176. List<String> houseNumberList = Arrays.asList(houseNumber.split(","));
  177. if(house.getNumber().intValue() != houseNumberList.size()){
  178. resultJson.put("message", "房型数量与房间数量不一致");
  179. resultJson.put("code", 500);
  180. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  181. return null;
  182. }
  183. if (house.getId() == null) {
  184. resultJson.put("message", "房型Id为空");
  185. resultJson.put("code", 500);
  186. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  187. return null;
  188. }
  189. if (house.getManagerId()==null || house.gethName()==null || house.getPrice()==null || house.getNumber()==null || house.gethAreas()==null){
  190. resultJson.put("message", "各参数不能为空");
  191. resultJson.put("code", 500);
  192. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  193. return null;
  194. }
  195. //详细图附件
  196. List<FileInfo> fileList = JSONArray.parseArray(fileListJson, FileInfo.class);
  197. // if(fileList==null){
  198. // resultJson.put("message", "请上传详细图");
  199. // ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  200. // return null;
  201. // }
  202. // List<String> numberList = JSONArray.parseArray(houseNumberList, String.class);
  203. StringBuilder getOneSqlx = new StringBuilder("");
  204. getOneSqlx.append(" and h_name = '").append(house.gethName()).append("'");
  205. getOneSqlx.append(" and manager_id = '").append(house.getManagerId()).append("'");
  206. getOneSqlx.append(" and id != '").append(house.getId()).append("'");
  207. House listc = houseService.getOen(getOneSqlx.toString());
  208. if (listc != null) {
  209. resultJson.put("message", "房型已存在");
  210. resultJson.put("code", 500);
  211. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  212. return null;
  213. }
  214. //验证成功修改房号表
  215. List<HouseNumber> houseNumbers = new ArrayList<HouseNumber>();
  216. for (String s : houseNumberList){
  217. HouseNumber h1 = new HouseNumber();
  218. h1.setHouseId(house.getId());
  219. h1.setNumberName(s);
  220. h1.setStatus(1);
  221. houseNumbers.add(h1);
  222. }
  223. int a = houseNumberService.updateBatch(houseNumbers);
  224. int m = houseService.updateHouse(house);
  225. if (m > 0) {
  226. if(house.getId()!= null){
  227. fileService.delLinkFile(String.valueOf(house.getId()));
  228. }
  229. for(FileInfo file : fileList){
  230. FileInfo fileInfo = fileService.getById(file.getId());
  231. file.setLinkId(String.valueOf(house.getId()));
  232. if(fileInfo==null){
  233. fileService.insertFile(file);
  234. }else{
  235. fileService.updateFile(file);
  236. }
  237. }
  238. resultJson.put("message", "修改成功");
  239. resultJson.put("code", 200);
  240. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  241. return null;
  242. } else {
  243. resultJson.put("message", "修改败");
  244. resultJson.put("code", 502);
  245. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  246. return null;
  247. }
  248. } catch (Exception e) {
  249. e.printStackTrace();
  250. }
  251. resultJson.put("message", "未知异常");
  252. resultJson.put("code", 205);
  253. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  254. return null;
  255. }
  256. /**
  257. * 描述:删除房型
  258. * @return
  259. */
  260. public String delHouser(){
  261. JSONObject resultJson = new JSONObject();
  262. if (id == null) {
  263. resultJson.put("message", "请传入id");
  264. resultJson.put("code", 500);
  265. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  266. return null;
  267. }
  268. int m = houseService.delHouse(id);
  269. if (m > 0) {
  270. resultJson.put("message", "删除成功");
  271. resultJson.put("code", 200);
  272. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  273. return null;
  274. }
  275. resultJson.put("message", "未知异常");
  276. resultJson.put("code", 205);
  277. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  278. return null;
  279. }
  280. /**
  281. * 描述:根据Id查询详细
  282. * @return
  283. */
  284. public String getById(){
  285. JSONObject resultJson = new JSONObject();
  286. if (id == null) {
  287. resultJson.put("message", "请传入id");
  288. resultJson.put("code", 500);
  289. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  290. return null;
  291. }
  292. House house = houseService.getById(id);
  293. StringBuilder fileSqlx = new StringBuilder("");
  294. fileSqlx.append("and link_id = '").append(id).append("'");
  295. List<FileInfo> fileInfoList = fileService.queryList(fileSqlx.toString());
  296. house.setFileInfoList(fileInfoList);
  297. if (house != null) {
  298. //获取有效房型服务
  299. if(house.gethConfig() != null && !"".equals(house.gethConfig())){
  300. house.sethConfig(hotelDictService.setConfig(house.gethConfig()));
  301. }
  302. resultJson.put("message", "查询成功");
  303. resultJson.put("code", 200);
  304. resultJson.put("data", house);
  305. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  306. return null;
  307. }else{
  308. resultJson.put("message", "未查到信息");
  309. resultJson.put("code", 500);
  310. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  311. return null;
  312. }
  313. }
  314. /**
  315. * 描述:分页查询
  316. * @return
  317. */
  318. public String queryPage(){
  319. JSONObject resultJson = new JSONObject();
  320. StringBuilder s1 = new StringBuilder("");
  321. if (hName!=null){
  322. s1.append(" and h_name like '%").append(hName).append("%'");
  323. }
  324. if (managerId!=null){
  325. s1.append(" and manager_id = '").append(managerId).append("'");
  326. }
  327. IPage<House> houseIPage = houseService.queryPage(s1.toString(),page,rows);
  328. if(houseIPage!=null && !"".equals(houseIPage)){
  329. resultJson.put("message", "查询分页成功");
  330. resultJson.put("code", 200);
  331. resultJson.put("data", houseIPage);
  332. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  333. }else{
  334. resultJson.put("message", "查询分页失败");
  335. resultJson.put("code", 500);
  336. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  337. }
  338. return null;
  339. }
  340. /**
  341. * 描述:房源分页查询
  342. * @return
  343. */
  344. public String queryPageHouseSum(){
  345. JSONObject resultJson = new JSONObject();
  346. StringBuilder s1 = new StringBuilder("");
  347. StringBuilder s2 = new StringBuilder("");
  348. if (orderTime!=null){
  349. s1.append(" and DATE_FORMAT(order_start_time,'%Y-%m-%d') = '").append(orderTime).append("'");
  350. }else{
  351. orderTime = UUIDUtil.getNewDate().substring(0,10);
  352. }
  353. if (hName!=null){
  354. s2.append(" and a.h_name like '%").append(hName).append("%'");
  355. }
  356. if (managerId!=null){
  357. s2.append(" and a.manager_id = '").append(managerId).append("'");
  358. }
  359. IPage<HouseSumEto> houseIPage = houseService.queryPageHouseSum(orderTime,s2.toString(),page,rows);
  360. if(houseIPage!=null && !"".equals(houseIPage)){
  361. resultJson.put("message", "查询分页成功");
  362. resultJson.put("code", 200);
  363. resultJson.put("data", houseIPage);
  364. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  365. }else{
  366. resultJson.put("message", "查询分页失败");
  367. resultJson.put("code", 500);
  368. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  369. }
  370. return null;
  371. }
  372. }