bookAction.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597
  1. package com.happy.action;
  2. import com.baidubce.model.User;
  3. import com.happy.Model.*;
  4. import com.happy.Model.weixin.Users;
  5. import com.happy.Until.*;
  6. import com.happy.Until.Enum.TempEnum;
  7. import com.happy.Until.Excel.toExcel;
  8. import com.happy.common.http.Message;
  9. import com.happy.dto.BookTypeEto;
  10. import com.happy.dto.IPage;
  11. import com.happy.service.*;
  12. import com.opensymphony.xwork2.ActionSupport;
  13. import net.sf.json.JSONObject;
  14. import org.apache.struts2.ServletActionContext;
  15. import org.apache.struts2.interceptor.ServletRequestAware;
  16. import javax.annotation.Resource;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.time.LocalDate;
  20. import java.time.LocalDateTime;
  21. import java.time.format.DateTimeFormatter;
  22. import java.util.*;
  23. import java.util.stream.Collectors;
  24. public class bookAction extends ActionSupport implements ServletRequestAware {
  25. private HttpServletRequest request;
  26. public HttpServletResponse response;
  27. @Resource
  28. public BookService bookService;
  29. @Resource
  30. public UserService userService;
  31. @Resource
  32. public HotelDictService hotelDictService;
  33. @Resource
  34. public AdminManagerService adminManagerService;
  35. @Resource
  36. public HouseNumberStatusService houseNumberStatusService;
  37. @Resource
  38. public HouseNumberService houseNumberService;
  39. public int page; // 当前页
  40. public int rows;// 每页显示的行数rows
  41. public Integer id;
  42. public Integer type;
  43. public String orderStatus;//订单状态
  44. public String managerId;//商户Id
  45. public String payStartTime;//支付开始时间
  46. public String payEndTime;//支付结束时间
  47. public String ledgerParam;//台账列表查询参数
  48. public String hotelTownship;//所属乡镇
  49. public String minTotalPrice;//最小订单总价
  50. public String maxTotalPrice;//最大订单总价
  51. public String houseNumberIds; // 房间号ids
  52. public HttpServletRequest getRequest() {
  53. return request;
  54. }
  55. public void setRequest(HttpServletRequest request) {
  56. this.request = request;
  57. }
  58. public void setServletRequest(HttpServletRequest request) {
  59. this.request = request;
  60. }
  61. public HttpServletResponse getResponse() {
  62. return response;
  63. }
  64. public void setResponse(HttpServletResponse response) {
  65. this.response = response;
  66. }
  67. /**
  68. * 描述:修改订单状态接单、入住、退房
  69. * @return
  70. */
  71. public String updateBookStatus(){
  72. JSONObject resultJson = new JSONObject();
  73. if (id == null) {
  74. resultJson.put("message", "请传入订单id");
  75. resultJson.put("code", 500);
  76. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  77. return null;
  78. }
  79. //根据id获取当前订单信息
  80. Booking book = bookService.getById(id);
  81. if(book==null){
  82. resultJson.put("message", "未查询到订单");
  83. resultJson.put("code", 500);
  84. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  85. return null;
  86. }
  87. //获取用户openId
  88. Users user = userService.queryByUserId(book.getCreateUserid());
  89. if(user.getOpenid()==null){
  90. resultJson.put("message", "用户openId为空,请该订单用户授权才能操作。");
  91. resultJson.put("code", 502);
  92. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  93. return null;
  94. }
  95. String msg = "";
  96. String sendMsg = "";
  97. try{
  98. switch (type){
  99. case 1://接单
  100. if(!"2".equals(book.getOrderStatus())){
  101. resultJson.put("message", "已支付状态才能接单");
  102. resultJson.put("code", 502);
  103. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  104. return null;
  105. }
  106. book.setOrderStatus("3");
  107. book.setUpdateTime(UUIDUtil.getNewDate());
  108. msg = "接单";
  109. sendMsg = "商家已接单";
  110. //验证民宿房态表
  111. List<HouseNumber> houseNumbers = houseNumberService.queryHouseStatus(book);
  112. List<String> Ids = Arrays.asList(houseNumberIds.split(","));
  113. if (houseNumbers!=null){
  114. for (String id: Ids){
  115. for (HouseNumber houseNumber: houseNumbers){
  116. if (houseNumber.getStatus() != null && houseNumber.getStatus()==3 && id.equals(houseNumber.getId())){
  117. resultJson.put("message", "选择的房间该时间段已有预定!请重新选择房间!");
  118. resultJson.put("code", 502);
  119. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  120. return null;
  121. }
  122. }
  123. }
  124. }
  125. //添加民宿房态表
  126. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  127. DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  128. LocalDateTime str = LocalDateTime.parse(book.getOrderStartTime(), inputFormatter);
  129. LocalDateTime end = LocalDateTime.parse(book.getOrderEndTime(), inputFormatter);
  130. String a = str.format(formatter);
  131. String B = end.format(formatter);
  132. LocalDate strDate = LocalDate.parse(a, formatter);
  133. LocalDate endDate = LocalDate.parse(B, formatter);
  134. List<HouseNumberStatus> list = new ArrayList<>();
  135. Date now = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
  136. for (String number : Ids){
  137. for (LocalDate date = strDate;!date.isAfter(endDate.minusDays(1));date = date.plusDays(1)){
  138. HouseNumberStatus houseNumberStatus = new HouseNumberStatus();
  139. houseNumberStatus.setNumberId(number);
  140. houseNumberStatus.setId(String.valueOf(UUID.randomUUID()));
  141. houseNumberStatus.setCreateDate(now);
  142. houseNumberStatus.setModifyDate(now);
  143. houseNumberStatus.setRemark("");
  144. houseNumberStatus.setBookingId(String.valueOf(book.getId()));
  145. houseNumberStatus.setSetDate(date.format(formatter));
  146. houseNumberStatus.setStatus(5);//状态(0删除 1.正常 2.关房 3.脏房 4.净房 5.预定 6.入住)
  147. list.add(houseNumberStatus);
  148. }
  149. }
  150. int m = houseNumberStatusService.saveBatch(list);
  151. if (m == 0){
  152. resultJson.put("message", "确认失败");
  153. resultJson.put("code", 502);
  154. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  155. return null;
  156. }
  157. break;
  158. case 2://入住
  159. if(!"3".equals(book.getOrderStatus())){
  160. resultJson.put("message", "待入住状态才能办理入住");
  161. resultJson.put("code", 502);
  162. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  163. return null;
  164. }
  165. book.setOrderStatus("4");
  166. book.setLiveTime(UUIDUtil.getNewDate());
  167. book.setUpdateTime(UUIDUtil.getNewDate());
  168. userService.addhotelAndUsers(book.getHotelId(),book.getCreateUserid(), TempEnum.住过); // 办理入住,则将信息写入用户入住过的酒店 editor by xieli
  169. msg = "入住办理";
  170. break;
  171. case 3://退房
  172. if(!"4".equals(book.getOrderStatus())){
  173. resultJson.put("message", "已入住状态才能办理退房");
  174. resultJson.put("code", 502);
  175. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  176. return null;
  177. }
  178. book.setCheckOutTime(UUIDUtil.getNewDate());//退房时间
  179. book.setUpdateTime(UUIDUtil.getNewDate());
  180. book.setOrderStatus("5");
  181. msg = "退房";
  182. break;
  183. // case 4://退单
  184. // if(!"2".equals(book.getOrderStatus())){
  185. // resultJson.put("message", "已支付状态才能退单");
  186. // resultJson.put("code", 502);
  187. // ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  188. // return null;
  189. // }
  190. // book.setOrderStatus("8");
  191. // book.setUpdateTime(UUIDUtil.getNewDate());
  192. // msg = "退单";
  193. // sendMsg = "商家已退单";
  194. // break;
  195. }
  196. int m = bookService.updateBooking(book);
  197. if (m > 0) {
  198. //推送信息
  199. if(!"".equals(sendMsg)){
  200. String liveTime = book.getOrderStartTime()!=null ? book.getOrderStartTime().substring(0,10):"";
  201. String endTime = book.getOrderEndTime()!=null ? book.getOrderEndTime().substring(0,10):"";
  202. String errmsg = Message.wxErrorMsg(Message.send(user.getOpenid(),book.getHotelName(),book.getOrderStatus(),liveTime,endTime,book.getHouseName()));
  203. if("请求成功".equals(errmsg)){
  204. resultJson.put("message", msg+"成功");
  205. resultJson.put("code", 200);
  206. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  207. return null;
  208. }
  209. resultJson.put("message", msg+"成功"+",推送消息失败,原因:"+errmsg);
  210. resultJson.put("code", 500);
  211. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  212. return null;
  213. }
  214. resultJson.put("message", msg+"成功");
  215. resultJson.put("code", 200);
  216. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  217. return null;
  218. } else {
  219. resultJson.put("message", msg+"失败");
  220. resultJson.put("code", 502);
  221. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  222. return null;
  223. }
  224. }catch (Exception e){
  225. e.printStackTrace();
  226. }
  227. resultJson.put("message", "未知异常");
  228. resultJson.put("code", 205);
  229. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  230. return null;
  231. }
  232. /**
  233. * 描述:分页查询订单
  234. * @return
  235. */
  236. public String quearyBookPage(){
  237. JSONObject resultJson = new JSONObject();
  238. StringBuilder s1 = new StringBuilder("");
  239. if(managerId!=null){
  240. s1.append(" and hotel_manager_id = '").append(managerId).append("'");
  241. }
  242. if (ledgerParam!=null){
  243. s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
  244. .append(" or user_name like '%").append(ledgerParam).append("%'")
  245. .append(" or user_phone like '%").append(ledgerParam).append("%')");
  246. }
  247. if(orderStatus!=null){
  248. s1.append(" and order_status = ").append(orderStatus);
  249. }
  250. if(payStartTime!=null && payEndTime!=null){
  251. s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
  252. .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
  253. }
  254. IPage<Booking> bookIPage = bookService.queryPage(s1.toString(),page,rows);
  255. //获取订单汇总信息
  256. BookTypeEto bookTypeEto = bookService.getBookStatusSum(s1.toString());
  257. bookTypeEto.setBookIPage(bookIPage);
  258. if(bookTypeEto!=null && !"".equals(bookTypeEto)){
  259. resultJson.put("message", "查询分页成功");
  260. resultJson.put("code", 200);
  261. resultJson.put("data", bookTypeEto);
  262. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  263. }else{
  264. resultJson.put("message", "查询分页失败");
  265. resultJson.put("code", 500);
  266. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  267. }
  268. return null;
  269. }
  270. /**
  271. * 描述:导出订单
  272. * @return
  273. */
  274. public String toBookExcel() {
  275. JSONObject resultJson = new JSONObject();
  276. StringBuilder s1 = new StringBuilder("");
  277. s1.append(" and hotel_manager_id = '").append(managerId).append("'");
  278. if(managerId==null){
  279. resultJson.put("code", 500);
  280. resultJson.put("message", "managerId禁止为空");
  281. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  282. resultJson.toString());
  283. }
  284. if (ledgerParam!=null){
  285. s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
  286. .append(" or user_name like '%").append(ledgerParam).append("%'")
  287. .append(" or user_phone like '%").append(ledgerParam).append("%')");
  288. }
  289. if(orderStatus!=null){
  290. s1.append(" and order_status = ").append(orderStatus);
  291. }
  292. if(payStartTime!=null && payEndTime!=null){
  293. s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
  294. .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
  295. }
  296. List<Booking> list = bookService.queryList(s1.toString()); // 查询分页
  297. List<Vector> vectorsList = new ArrayList<>();
  298. if(list==null){
  299. resultJson.put("code", 500);
  300. resultJson.put("message", "无数据无法导出");
  301. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  302. resultJson.toString());
  303. }
  304. for(Booking book:list){
  305. Vector columnValue = new Vector();
  306. columnValue.add(book.getOrderNum());
  307. columnValue.add(book.getOrderName());
  308. columnValue.add(book.getUserName());//用户名称
  309. columnValue.add(book.getUserPhone());//用户电话
  310. columnValue.add(book.getHouseName());//房型名称
  311. columnValue.add(book.getHouseOrderNumber());//订房数量
  312. columnValue.add(book.getHouseTotalPrice());//总价
  313. columnValue.add(book.getPayTime());
  314. vectorsList.add(columnValue);
  315. }
  316. // 项目路径地址
  317. String path = request.getSession().getServletContext()
  318. .getRealPath("/download/");// File.separator
  319. try{
  320. Vector columnName = new Vector();
  321. columnName.add("订单号");
  322. columnName.add("状态");
  323. columnName.add("预定人");
  324. columnName.add("手机号");
  325. columnName.add("预定房型");
  326. columnName.add("房间数");
  327. columnName.add("订单金额(元)");
  328. columnName.add("支付时间");
  329. String filePathName ="订单信息" + UUIDUtil.generateID() +"Report.xls";
  330. // 导出文件
  331. new toExcel().book(vectorsList, path + filePathName,
  332. "sheet1", columnName);
  333. String url = "https://chtech.ncjti.edu.cn/hotelReservation/mhotel";
  334. resultJson.put("downurl", url + "/download/" + filePathName);
  335. resultJson.put("code", 200);
  336. resultJson.put("message", "导出成功");
  337. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  338. resultJson.toString());
  339. } catch (Exception e){
  340. e.printStackTrace();
  341. }
  342. return null;
  343. }
  344. /**
  345. * 描述:分页查询台账(查询以消费订单数据)
  346. * @return
  347. */
  348. public String quearyLedgerPage(){
  349. JSONObject resultJson = new JSONObject();
  350. StringBuilder s1 = new StringBuilder("");
  351. s1.append(" and order_status = 5");
  352. if(managerId!=null){
  353. s1.append(" and hotel_manager_id = '").append(managerId).append("'");
  354. }
  355. if (ledgerParam!=null){
  356. s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
  357. .append(" or user_name like '%").append(ledgerParam).append("%'")
  358. .append(" or user_phone like '%").append(ledgerParam).append("%')");
  359. }
  360. if(payStartTime!=null && payEndTime!=null){
  361. s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
  362. .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
  363. }
  364. if(hotelTownship!=null){
  365. s1.append(" and hotel_township = '").append(hotelTownship).append("'");
  366. }
  367. if(minTotalPrice!=null){
  368. s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
  369. }
  370. if(maxTotalPrice!=null){
  371. s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
  372. }
  373. IPage<Booking> bookIPage = bookService.queryPage(s1.toString(),page,rows);
  374. //获取订单汇总信息
  375. BookTypeEto bookTypeEto = bookService.getBookStatusSum(s1.toString());
  376. bookTypeEto.setBookIPage(bookIPage);
  377. if(bookTypeEto!=null && !"".equals(bookTypeEto)){
  378. resultJson.put("message", "查询分页成功");
  379. resultJson.put("code", 200);
  380. resultJson.put("data", bookTypeEto);
  381. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  382. }else{
  383. resultJson.put("message", "查询分页失败");
  384. resultJson.put("code", 500);
  385. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  386. }
  387. return null;
  388. }
  389. /**
  390. * 描述:根据Id查询订单详细
  391. * @return
  392. */
  393. public String getById(){
  394. JSONObject resultJson = new JSONObject();
  395. if (id == null) {
  396. resultJson.put("message", "请传入id");
  397. resultJson.put("code", 500);
  398. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  399. return null;
  400. }
  401. Booking book = bookService.getById(id);
  402. List<HouseNumber> houseNumbers = houseNumberService.queryHouseStatus(book);
  403. book.setHouseNumbers(houseNumbers);
  404. if (book != null) {
  405. resultJson.put("message", "查询成功");
  406. resultJson.put("code", 200);
  407. resultJson.put("data", book);
  408. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  409. return null;
  410. }else{
  411. resultJson.put("message", "未查到用户信息");
  412. resultJson.put("code", 500);
  413. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  414. return null;
  415. }
  416. }
  417. /**
  418. * 描述:导出台账
  419. * @return
  420. */
  421. public String toLedgerExcel() {
  422. JSONObject resultJson = new JSONObject();
  423. StringBuilder s1 = new StringBuilder("");
  424. s1.append(" and order_status = 5");
  425. s1.append(" and hotel_manager_id = '").append(managerId).append("'");
  426. if (ledgerParam!=null){
  427. s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
  428. .append(" or user_name like '%").append(ledgerParam).append("%'")
  429. .append(" or user_phone like '%").append(ledgerParam).append("%')");
  430. }
  431. if(payStartTime!=null && payEndTime!=null){
  432. s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
  433. .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
  434. }
  435. if(hotelTownship!=null){
  436. s1.append(" and hotel_township = '").append(payStartTime).append("'");
  437. }
  438. if(minTotalPrice!=null){
  439. s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
  440. }
  441. if(maxTotalPrice!=null){
  442. s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
  443. }
  444. List<Booking> list = bookService.queryList(s1.toString()); // 查询列表
  445. if(list==null){
  446. resultJson.put("code", 500);
  447. resultJson.put("message", "无数据无法导出");
  448. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  449. resultJson.toString());
  450. }
  451. List<Vector> vectorsList = new ArrayList<>();
  452. for(Booking book:list){
  453. Vector columnValue = new Vector();
  454. columnValue.add(book.getOrderNum());
  455. columnValue.add(book.getUserName());
  456. columnValue.add(book.getUserPhone());
  457. columnValue.add(book.getHouseOrderNumber());
  458. columnValue.add(book.getPayAccount());
  459. columnValue.add(book.getPayTime());
  460. vectorsList.add(columnValue);
  461. }
  462. // 项目路径地址
  463. String path = request.getSession().getServletContext()
  464. .getRealPath("/download/");;// File.separator
  465. try{
  466. Vector columnName = new Vector();
  467. columnName.add("订单号");
  468. columnName.add("预定人");
  469. columnName.add("手机号");
  470. columnName.add("房间数");
  471. columnName.add("订单金额");
  472. columnName.add("退房时间");
  473. String filePathName ="台账信息" + UUIDUtil.generateID() +"Report.xls";
  474. // 导出文件
  475. new toExcel().book(vectorsList, path + filePathName,
  476. "sheet1", columnName);
  477. String url = "https://chtech.ncjti.edu.cn/hotelReservation/mhotel";
  478. resultJson.put("downurl", url + "/download/" + filePathName);
  479. resultJson.put("code", 200);
  480. resultJson.put("message", "导出成功");
  481. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  482. resultJson.toString());
  483. } catch (Exception e){
  484. e.printStackTrace();
  485. }
  486. return null;
  487. }
  488. /**
  489. * 描述:导出台账 管理端
  490. * @return
  491. */
  492. public String toLedgerAdmimnExcel() {
  493. JSONObject resultJson = new JSONObject();
  494. StringBuilder s1 = new StringBuilder("");
  495. s1.append(" and order_status = 5");
  496. if (ledgerParam!=null){
  497. s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
  498. .append(" or user_name like '%").append(ledgerParam).append("%'")
  499. .append(" or user_phone like '%").append(ledgerParam).append("%')");
  500. }
  501. if(payStartTime!=null && payEndTime!=null){
  502. s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
  503. .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
  504. }
  505. if(hotelTownship!=null){
  506. s1.append(" and hotel_township = '").append(payStartTime).append("'");
  507. }
  508. if(minTotalPrice!=null){
  509. s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
  510. }
  511. if(maxTotalPrice!=null){
  512. s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
  513. }
  514. List<Booking> list = bookService.queryList(s1.toString()); // 查询列表
  515. List<HotelDict> hotelDicts = hotelDictService.queryList("and code = 10");
  516. Map<Integer, String> dictMap = null;
  517. if(hotelDicts!=null && hotelDicts.size()>0){
  518. dictMap = hotelDicts.stream().collect(Collectors.toMap(HotelDict::getId, HotelDict::getName, (key1, key2) -> key1 ));
  519. }else{
  520. resultJson.put("message", "未查到民宿乡镇信息");
  521. resultJson.put("code", 500);
  522. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  523. return null;
  524. }
  525. List<Vector> vectorsList = new ArrayList<>();
  526. for(Booking book:list){
  527. Vector columnValue = new Vector();
  528. AdminManager adminManager = adminManagerService.getById(book.getHotelManagerId());
  529. if(adminManager!=null){
  530. columnValue.add(dictMap.get(Integer.valueOf(adminManager.getHotelTownship())));//所属乡镇
  531. columnValue.add(adminManager.getHotelName());//乡宿名称
  532. }else{
  533. columnValue.add("");//所属乡镇
  534. columnValue.add("");//乡宿名称
  535. }
  536. columnValue.add(book.getOrderNum());//订单号
  537. columnValue.add(book.getPayAccount());//订单金额
  538. columnValue.add(book.getPayTime());//退房时间
  539. vectorsList.add(columnValue);
  540. }
  541. // 项目路径地址
  542. String path = request.getSession().getServletContext()
  543. .getRealPath("/download/");// File.separator
  544. try{
  545. Vector columnName = new Vector();
  546. columnName.add("所属乡镇");
  547. columnName.add("民宿名称");
  548. columnName.add("订单号");
  549. columnName.add("订单金额(元)");
  550. columnName.add("退房时间");
  551. String filePathName ="台账信息" + UUIDUtil.generateID() +"Report.xls";
  552. // 导出文件
  553. new toExcel().book(vectorsList, path + filePathName,
  554. "sheet1", columnName);
  555. String url = "https://chtech.ncjti.edu.cn/hotelReservation/mhotel";
  556. resultJson.put("downurl", url + "/download/" + filePathName);
  557. resultJson.put("code", 200);
  558. resultJson.put("message", "导出成功");
  559. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  560. resultJson.toString());
  561. } catch (Exception e){
  562. e.printStackTrace();
  563. }
  564. return null;
  565. }
  566. }