bookAction.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. package com.happy.action;
  2. import com.baidubce.model.User;
  3. import com.happy.Model.Booking;
  4. import com.happy.Model.weixin.Users;
  5. import com.happy.Until.*;
  6. import com.happy.Until.Excel.toExcel;
  7. import com.happy.common.http.Message;
  8. import com.happy.dto.BookTypeEto;
  9. import com.happy.dto.IPage;
  10. import com.happy.service.BookService;
  11. import com.happy.service.UserService;
  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.util.ArrayList;
  20. import java.util.List;
  21. import java.util.Vector;
  22. public class bookAction extends ActionSupport implements ServletRequestAware {
  23. private HttpServletRequest request;
  24. public HttpServletResponse response;
  25. @Resource
  26. public BookService bookService;
  27. @Resource
  28. public UserService userService;
  29. public int page; // 当前页
  30. public int rows;// 每页显示的行数rows
  31. public Integer id;
  32. public Integer type;
  33. public String orderStatus;//订单状态
  34. public String managerId;//商户Id
  35. public String payStartTime;//支付开始时间
  36. public String payEndTime;//支付结束时间
  37. public String ledgerParam;//台账列表查询参数
  38. public String hotelTownship;//所属乡镇
  39. public String minTotalPrice;//最小订单总价
  40. public String maxTotalPrice;//最大订单总价
  41. public HttpServletRequest getRequest() {
  42. return request;
  43. }
  44. public void setRequest(HttpServletRequest request) {
  45. this.request = request;
  46. }
  47. public void setServletRequest(HttpServletRequest request) {
  48. this.request = request;
  49. }
  50. public HttpServletResponse getResponse() {
  51. return response;
  52. }
  53. public void setResponse(HttpServletResponse response) {
  54. this.response = response;
  55. }
  56. /**
  57. * 描述:修改订单状态接单、入住、退房、退单、退款
  58. * @return
  59. */
  60. public String updateBookStatus(){
  61. JSONObject resultJson = new JSONObject();
  62. if (id == null) {
  63. resultJson.put("message", "请传入订单id");
  64. resultJson.put("code", 500);
  65. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  66. return null;
  67. }
  68. //根据id获取当前订单信息
  69. Booking book = bookService.getById(id);
  70. //获取用户openId
  71. Users user = userService.queryByUserId(book.getCreateUserid());
  72. try{
  73. switch (type){
  74. case 1://接单
  75. book.setOrderStatus("3");
  76. //推送信息
  77. Message.send(user.getOpenid(),book.getOrderNum(),book.getUserName(),"商家已接单",book.getCreateTime());
  78. break;
  79. case 2://入住
  80. book.setOrderStatus("4");
  81. break;
  82. case 3://退房
  83. book.setOrderStatus("5");
  84. break;
  85. case 4://退单
  86. book.setOrderStatus("8");
  87. break;
  88. case 5://退款
  89. book.setOrderStatus("9");
  90. break;
  91. }
  92. }catch (Exception e){
  93. }
  94. bookService.updateBooking(book);
  95. return null;
  96. }
  97. /**
  98. * 描述:分页查询订单
  99. * @return
  100. */
  101. public String quearyBookPage(){
  102. JSONObject resultJson = new JSONObject();
  103. StringBuilder s1 = new StringBuilder("");
  104. s1.append(" and hotel_manager_id = '").append(managerId).append("'");
  105. if (ledgerParam!=null){
  106. s1.append(" and (order_num like '%").append(ledgerParam).append("'")
  107. .append(" or user_name like '%").append(ledgerParam).append("'")
  108. .append(" or user_phone like '%").append(ledgerParam).append("')");
  109. }
  110. if(orderStatus!=null){
  111. s1.append(" and order_status = ").append(orderStatus);
  112. }
  113. if(payStartTime!=null && payEndTime!=null){
  114. s1.append(" and pay_time >= '").append(payStartTime).append("'")
  115. .append(" and pay_time <= '").append(payEndTime).append("'");
  116. }
  117. IPage<Booking> bookIPage = bookService.queryPage(s1.toString(),page,rows);
  118. //获取订单汇总信息
  119. BookTypeEto bookTypeEto = bookService.getBookStatusSum(s1.toString());
  120. bookTypeEto.setBookIPage(bookIPage);
  121. if(bookTypeEto!=null && !"".equals(bookTypeEto)){
  122. resultJson.put("message", "查询分页成功");
  123. resultJson.put("code", 200);
  124. resultJson.put("date", bookTypeEto);
  125. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  126. }else{
  127. resultJson.put("message", "查询分页失败");
  128. resultJson.put("code", 500);
  129. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  130. }
  131. return null;
  132. }
  133. /**
  134. * 描述:导出订单
  135. * @return
  136. */
  137. public String toBookExcel() {
  138. JSONObject resultJson = new JSONObject();
  139. StringBuilder s1 = new StringBuilder("");
  140. if (ledgerParam!=null){
  141. s1.append(" and (order_num like '%").append(ledgerParam).append("'")
  142. .append(" or user_name like '%").append(ledgerParam).append("'")
  143. .append(" or user_phone like '%").append(ledgerParam).append("')");
  144. }
  145. if(orderStatus!=null){
  146. s1.append(" and order_status = ").append(orderStatus);
  147. }
  148. if(payStartTime!=null && payEndTime!=null){
  149. s1.append(" and pay_time >= '").append(payStartTime).append("'")
  150. .append(" and pay_time <= '").append(payEndTime).append("'");
  151. }
  152. List<Booking> list = bookService.queryList(s1.toString()); // 查询分页
  153. List<Vector> vectorsList = new ArrayList<>();
  154. if(list==null){
  155. resultJson.put("code", 500);
  156. resultJson.put("message", "无数据无法导出");
  157. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  158. resultJson.toString());
  159. }
  160. for(Booking book:list){
  161. Vector columnValue = new Vector();
  162. columnValue.add(book.getOrderNum());
  163. columnValue.add(book.getOrderName());
  164. columnValue.add(book.getUserName());
  165. columnValue.add(book.getUserPhone());
  166. columnValue.add(book.getHouseName());
  167. columnValue.add(book.getHouseOrderNumber());
  168. columnValue.add(book.getHouseTotalPrice());
  169. columnValue.add(book.getPayTime());
  170. vectorsList.add(columnValue);
  171. }
  172. // 项目路径地址
  173. String path = request.getSession().getServletContext()
  174. .getRealPath("/download/");// File.separator
  175. try{
  176. Vector columnName = new Vector();
  177. columnName.add("订单号");
  178. columnName.add("状态");
  179. columnName.add("预定人");
  180. columnName.add("手机号");
  181. columnName.add("预定房型");
  182. columnName.add("房间数");
  183. columnName.add("订单金额(元)");
  184. columnName.add("支付时间");
  185. String filePathName ="订单信息" + UUIDUtil.generateID() +"Report.xls";
  186. // 导出文件
  187. new toExcel().book(vectorsList, path + filePathName,
  188. "sheet1", columnName);
  189. String url = request.getServerName()+":"+request.getServerPort() + request.getSession().getServletContext().getContextPath();
  190. resultJson.put("downurl", url + "/download/" + filePathName);
  191. resultJson.put("code", 200);
  192. resultJson.put("message", "导出成功");
  193. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  194. resultJson.toString());
  195. } catch (Exception e){
  196. e.printStackTrace();
  197. }
  198. return null;
  199. }
  200. /**
  201. * 描述:分页查询台账(查询以消费订单数据)
  202. * @return
  203. */
  204. public String quearyLedgerPage(){
  205. JSONObject resultJson = new JSONObject();
  206. StringBuilder s1 = new StringBuilder("");
  207. s1.append(" and order_status = 5");
  208. s1.append(" and hotel_manager_id like '%").append(managerId).append("'");
  209. if (ledgerParam!=null){
  210. s1.append(" and (order_num like '%").append(ledgerParam).append("'")
  211. .append(" or user_name like '%").append(ledgerParam).append("'")
  212. .append(" or user_phone like '%").append(ledgerParam).append("')");
  213. }
  214. if(payStartTime!=null && payEndTime!=null){
  215. s1.append(" and pay_time >= '").append(payStartTime).append("'")
  216. .append(" and pay_time <= '").append(payEndTime).append("'");
  217. }
  218. if(hotelTownship!=null){
  219. s1.append(" and hotel_township = '").append(payStartTime).append("'");
  220. }
  221. if(minTotalPrice!=null){
  222. s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
  223. }
  224. if(maxTotalPrice!=null){
  225. s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
  226. }
  227. IPage<Booking> bookIPage = bookService.queryPage(s1.toString(),page,rows);
  228. //获取订单汇总信息
  229. BookTypeEto bookTypeEto = bookService.getBookStatusSum(s1.toString());
  230. bookTypeEto.setBookIPage(bookIPage);
  231. if(bookTypeEto!=null && !"".equals(bookTypeEto)){
  232. resultJson.put("message", "查询分页成功");
  233. resultJson.put("code", 200);
  234. resultJson.put("date", bookTypeEto);
  235. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  236. }else{
  237. resultJson.put("message", "查询分页失败");
  238. resultJson.put("code", 500);
  239. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  240. }
  241. return null;
  242. }
  243. /**
  244. * 描述:根据Id查询订单详细
  245. * @return
  246. */
  247. public String getById(){
  248. JSONObject resultJson = new JSONObject();
  249. if (id == null) {
  250. resultJson.put("message", "请传入id");
  251. resultJson.put("code", 500);
  252. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  253. return null;
  254. }
  255. Booking book = bookService.getById(id);
  256. if (book != null) {
  257. resultJson.put("message", "查询成功");
  258. resultJson.put("code", 200);
  259. resultJson.put("date", book);
  260. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  261. return null;
  262. }else{
  263. resultJson.put("message", "未查到用户信息");
  264. resultJson.put("code", 500);
  265. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  266. return null;
  267. }
  268. }
  269. /**
  270. * 描述:导出台账
  271. * @return
  272. */
  273. public String toLedgerExcel() {
  274. JSONObject resultJson = new JSONObject();
  275. StringBuilder s1 = new StringBuilder("");
  276. s1.append(" and order_status = 5");
  277. s1.append(" and hotel_manager_id like '%").append(managerId).append("'");
  278. if (ledgerParam!=null){
  279. s1.append(" and (order_num like '%").append(ledgerParam).append("'")
  280. .append(" or user_name like '%").append(ledgerParam).append("'")
  281. .append(" or user_phone like '%").append(ledgerParam).append("')");
  282. }
  283. if(payStartTime!=null && payEndTime!=null){
  284. s1.append(" and pay_time >= '").append(payStartTime).append("'")
  285. .append(" and pay_time <= '").append(payEndTime).append("'");
  286. }
  287. if(hotelTownship!=null){
  288. s1.append(" and hotel_township = '").append(payStartTime).append("'");
  289. }
  290. if(minTotalPrice!=null){
  291. s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
  292. }
  293. if(maxTotalPrice!=null){
  294. s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
  295. }
  296. List<Booking> list = bookService.queryList(s1.toString()); // 查询列表
  297. List<Vector> vectorsList = new ArrayList<>();
  298. for(Booking book:list){
  299. Vector columnValue = new Vector();
  300. columnValue.add(book.getOrderNum());
  301. columnValue.add(book.getUserName());
  302. columnValue.add(book.getUserPhone());
  303. columnValue.add(book.getHouseOrderNumber());
  304. columnValue.add(book.getPayAccount());
  305. columnValue.add(book.getPayTime());
  306. vectorsList.add(columnValue);
  307. }
  308. // 项目路径地址
  309. String path = request.getSession().getServletContext()
  310. .getRealPath("/download/");// File.separator
  311. try{
  312. Vector columnName = new Vector();
  313. columnName.add("订单号");
  314. columnName.add("预定人");
  315. columnName.add("手机号");
  316. columnName.add("房间数");
  317. columnName.add("订单金额");
  318. columnName.add("退房时间");
  319. String filePathName ="台账信息" + UUIDUtil.generateID() +"Report.xls";
  320. // 导出文件
  321. new toExcel().book(vectorsList, path + filePathName,
  322. "sheet1", columnName);
  323. String url = request.getServerName()+":"+request.getServerPort() + request.getSession().getServletContext().getContextPath();
  324. resultJson.put("downurl", url + "/download/" + filePathName);
  325. resultJson.put("code", 200);
  326. resultJson.put("message", "导出成功");
  327. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  328. resultJson.toString());
  329. } catch (Exception e){
  330. e.printStackTrace();
  331. }
  332. return null;
  333. }
  334. }