| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692 |
- package com.happy.action;
- import com.baidubce.model.User;
- import com.happy.Model.*;
- import com.happy.Model.weixin.Users;
- import com.happy.Until.*;
- import com.happy.Until.Enum.TempEnum;
- import com.happy.Until.Excel.toExcel;
- import com.happy.common.http.Message;
- import com.happy.dto.BookTypeEto;
- import com.happy.dto.IPage;
- import com.happy.service.*;
- import com.opensymphony.xwork2.ActionSupport;
- import net.sf.json.JSONObject;
- import org.apache.struts2.ServletActionContext;
- import org.apache.struts2.interceptor.ServletRequestAware;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.math.BigDecimal;
- import java.text.ParseException;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- import java.util.*;
- import java.util.concurrent.atomic.AtomicInteger;
- import java.util.stream.Collectors;
- public class bookAction extends ActionSupport implements ServletRequestAware {
- private HttpServletRequest request;
- public HttpServletResponse response;
- @Resource
- public BookService bookService;
- @Resource
- public UserService userService;
- @Resource
- public HotelDictService hotelDictService;
- @Resource
- public AdminManagerService adminManagerService;
- @Resource
- public HouseNumberStatusService houseNumberStatusService;
- @Resource
- public HouseNumberService houseNumberService;
- public int page; // 当前页
- public int rows;// 每页显示的行数rows
- public Integer id;
- public Integer type;
- public String orderStatus;//订单状态
- public String managerId;//商户Id
- public String payStartTime;//支付开始时间
- public String payEndTime;//支付结束时间
- public String ledgerParam;//台账列表查询参数
- public String hotelTownship;//所属乡镇
- public String minTotalPrice;//最小订单总价
- public String maxTotalPrice;//最大订单总价
- public String houseNumberIds; // 房间号ids
- public HttpServletRequest getRequest() {
- return request;
- }
- public void setRequest(HttpServletRequest request) {
- this.request = request;
- }
- public void setServletRequest(HttpServletRequest request) {
- this.request = request;
- }
- public HttpServletResponse getResponse() {
- return response;
- }
- public void setResponse(HttpServletResponse response) {
- this.response = response;
- }
- /**
- * 描述:修改订单状态接单、入住、退房
- * @return
- */
- public String updateBookStatus(){
- JSONObject resultJson = new JSONObject();
- if (id == null) {
- resultJson.put("message", "请传入订单id");
- resultJson.put("code", 500);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- //根据id获取当前订单信息
- Booking book = bookService.getById(id);
- if(book==null){
- resultJson.put("message", "未查询到订单");
- resultJson.put("code", 500);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- //获取用户openId
- Users user = userService.queryByUserId(book.getCreateUserid());
- if(user.getOpenid()==null){
- resultJson.put("message", "用户openId为空,请该订单用户授权才能操作。");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- String msg = "";
- String sendMsg = "";
- try{
- switch (type){
- case 1://接单
- if(!"2".equals(book.getOrderStatus())){
- resultJson.put("message", "已支付状态才能接单");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- book.setOrderStatus("3");
- book.setUpdateTime(UUIDUtil.getNewDate());
- msg = "接单";
- sendMsg = "商家已接单";
- //验证民宿房态表
- List<HouseNumber> houseNumbers = houseNumberService.queryHouseStatus(book);
- List<HouseNumber> houseNumberList = houseNumberService.queryByHouseId(book.getHouseId());
- List<String> Ids = new ArrayList<>();
- AtomicInteger i = new AtomicInteger();
- if (houseNumbers != null){
- // houseNumberList.forEach(houseNumber -> {
- // //添加的房间不在不可添加的房间当中并且数量小于订房总数
- //
- // });
- List<String> houseStrs = houseNumbers.stream().map(HouseNumber::getId).collect(Collectors.toList());
- for (HouseNumber houseNumber: houseNumberList) {
- if (!houseStrs.contains(houseNumber.getId()) && i.get() < book.getHouseOrderNumber()){
- Ids.add(houseNumber.getId());
- i.getAndIncrement();
- }
- }
- }else {
- //所有房间都可以预定
- houseNumberList.forEach(houseNumber -> {
- //添加的房间不在不可添加的房间当中并且数量小于订房总数
- if (i.get() < book.getHouseOrderNumber()){
- Ids.add(houseNumber.getId());
- i.getAndIncrement();
- }
- });
- }
- //添加民宿房态表
- List<HouseNumberStatus> list = handleHouseStatus(Ids, 5, book);
- int m = houseNumberStatusService.saveBatch(list);
- if (m == 0){
- resultJson.put("message", "确认失败");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- break;
- case 2://入住
- if(!"3".equals(book.getOrderStatus())){
- resultJson.put("message", "待入住状态才能办理入住");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- if(houseNumberIds == null || "".equals(houseNumberIds)){
- resultJson.put("message", "请分配房间号");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- List<String> ids = Arrays.asList(houseNumberIds.split(","));
- if(book.getHouseOrderNumber() != ids.size()){
- resultJson.put("message", "房间数不一致");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- List<HouseNumber> houseNumbers1 = houseNumberService.queryHouseStatus(book);
- if (houseNumbers1!=null){
- for (String id: ids){
- for (HouseNumber houseNumber: houseNumbers1){
- if (houseNumber.getStatus() != null && houseNumber.getStatus()==3 && id.equals(houseNumber.getId())){
- resultJson.put("message", "选择的房间该时间段已有预定!请重新选择房间!");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- }
- }
- }
- //删除 预定房态
- int a = houseNumberStatusService.updateHouseNumberStatus(String.valueOf(id));
- if (a == 0){
- resultJson.put("message", "确认失败");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- //写入 入住数据
- List<HouseNumberStatus> list1 = handleHouseStatus(ids, 6, book);
- int n = houseNumberStatusService.saveBatch(list1);
- if (n == 0){
- resultJson.put("message", "确认失败");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- book.setOrderStatus("4");
- book.setLiveTime(UUIDUtil.getNewDate());
- book.setUpdateTime(UUIDUtil.getNewDate());
- userService.addhotelAndUsers(book.getHotelId(),book.getCreateUserid(), TempEnum.住过); // 办理入住,则将信息写入用户入住过的酒店 editor by xieli
- msg = "入住办理";
- break;
- case 3://退房
- if(!"4".equals(book.getOrderStatus())){
- resultJson.put("message", "已入住状态才能办理退房");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- //房态删除
- String sql = " and booking_id = " + id;
- List<HouseNumberStatus> houseNumberStatuse = houseNumberStatusService.getList(sql);
- int i1 = houseNumberStatusService.updateHouseNumberStatus(String.valueOf(id));
- if (i1 == 0){
- resultJson.put("message", "退房失败");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- //房间设为脏房
- String numberIds = houseNumberStatuse.stream().map(HouseNumberStatus::getNumberId).distinct().collect(Collectors.joining());
- int i2 = houseNumberService.updateHouseStatus(numberIds);
- if (i2 == 0){
- resultJson.put("message", "退房失败");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- book.setCheckOutTime(UUIDUtil.getNewDate());//退房时间
- book.setUpdateTime(UUIDUtil.getNewDate());
- book.setOrderStatus("5");
- msg = "退房";
- break;
- // case 4://退单
- // if(!"2".equals(book.getOrderStatus())){
- // resultJson.put("message", "已支付状态才能退单");
- // resultJson.put("code", 502);
- // ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- // return null;
- // }
- // book.setOrderStatus("8");
- // book.setUpdateTime(UUIDUtil.getNewDate());
- // msg = "退单";
- // sendMsg = "商家已退单";
- // break;
- }
- int m = bookService.updateBooking(book);
- if (m > 0) {
- //推送信息
- if(!"".equals(sendMsg)){
- String liveTime = book.getOrderStartTime()!=null ? book.getOrderStartTime().substring(0,10):"";
- String endTime = book.getOrderEndTime()!=null ? book.getOrderEndTime().substring(0,10):"";
- String errmsg = Message.wxErrorMsg(Message.send(user.getOpenid(),book.getHotelName(),book.getOrderStatus(),liveTime,endTime,book.getHouseName()));
- if("请求成功".equals(errmsg)){
- resultJson.put("message", msg+"成功");
- resultJson.put("code", 200);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- //resultJson.put("message", msg+"成功"+",推送消息失败,原因:"+errmsg);
- resultJson.put("message", "接单成功,因用户未订阅小程序消息,无法推送消息,请通过电话或者短信通知旅客!");
- resultJson.put("code", 500);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- resultJson.put("message", msg+"成功");
- resultJson.put("code", 200);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- } else {
- resultJson.put("message", msg+"失败");
- resultJson.put("code", 502);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- resultJson.put("message", "未知异常");
- resultJson.put("code", 205);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- /**
- * 根据传入传入房间号写入状态
- */
- private List<HouseNumberStatus> handleHouseStatus(List<String> Ids,int status,Booking book) throws ParseException {
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- LocalDateTime str = LocalDateTime.parse(book.getOrderStartTime(), inputFormatter);
- LocalDateTime end = LocalDateTime.parse(book.getOrderEndTime(), inputFormatter);
- String a = str.format(formatter);
- String B = end.format(formatter);
- LocalDate strDate = LocalDate.parse(a, formatter);
- LocalDate endDate = LocalDate.parse(B, formatter);
- List<HouseNumberStatus> list = new ArrayList<>();
- Date now = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
- for (String number : Ids){
- for (LocalDate date = strDate;!date.isAfter(endDate.minusDays(1));date = date.plusDays(1)){
- HouseNumberStatus houseNumberStatus = new HouseNumberStatus();
- houseNumberStatus.setNumberId(number);
- houseNumberStatus.setId(String.valueOf(UUID.randomUUID()));
- houseNumberStatus.setCreateDate(now);
- houseNumberStatus.setModifyDate(now);
- houseNumberStatus.setRemark("");
- houseNumberStatus.setBookingId(String.valueOf(book.getId()));
- houseNumberStatus.setSetDate(date.format(formatter));
- houseNumberStatus.setStatus(status);//状态(0删除 1.正常 2.关房 3.脏房 4.净房 5.预定 6.入住)
- list.add(houseNumberStatus);
- }
- }
- return list;
- }
- /**
- * 描述:分页查询订单
- * @return
- */
- public String quearyBookPage(){
- JSONObject resultJson = new JSONObject();
- StringBuilder s1 = new StringBuilder("");
- if(managerId!=null){
- s1.append(" and hotel_manager_id = '").append(managerId).append("'");
- }
- if (ledgerParam!=null){
- s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
- .append(" or user_name like '%").append(ledgerParam).append("%'")
- .append(" or user_phone like '%").append(ledgerParam).append("%')");
- }
- if(orderStatus!=null){
- s1.append(" and order_status = ").append(orderStatus);
- }
- if(payStartTime!=null && payEndTime!=null){
- s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
- .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
- }
- IPage<Booking> bookIPage = bookService.queryPage(s1.toString(),page,rows,"create_time");
- //获取订单汇总信息
- BookTypeEto bookTypeEto = bookService.getBookStatusSum(s1.toString());
- bookTypeEto.setSumAccount(new BigDecimal(bookTypeEto.getSumAccount()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
- bookTypeEto.setBookIPage(bookIPage);
- if(bookTypeEto!=null && !"".equals(bookTypeEto)){
- resultJson.put("message", "查询分页成功");
- resultJson.put("code", 200);
- resultJson.put("data", bookTypeEto);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- }else{
- resultJson.put("message", "查询分页失败");
- resultJson.put("code", 500);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- }
- return null;
- }
- /**
- * 描述:导出订单
- * @return
- */
- public String toBookExcel() {
- JSONObject resultJson = new JSONObject();
- StringBuilder s1 = new StringBuilder("");
- s1.append(" and hotel_manager_id = '").append(managerId).append("'");
- if(managerId==null){
- resultJson.put("code", 500);
- resultJson.put("message", "managerId禁止为空");
- ResponseUtil.writeJson(ServletActionContext.getResponse(),
- resultJson.toString());
- }
- if (ledgerParam!=null){
- s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
- .append(" or user_name like '%").append(ledgerParam).append("%'")
- .append(" or user_phone like '%").append(ledgerParam).append("%')");
- }
- if(orderStatus!=null){
- s1.append(" and order_status = ").append(orderStatus);
- }
- if(payStartTime!=null && payEndTime!=null){
- s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
- .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
- }
- List<Booking> list = bookService.queryList(s1.toString()); // 查询分页
- List<Vector> vectorsList = new ArrayList<>();
- if(list==null){
- resultJson.put("code", 500);
- resultJson.put("message", "无数据无法导出");
- ResponseUtil.writeJson(ServletActionContext.getResponse(),
- resultJson.toString());
- }
- for(Booking book:list){
- Vector columnValue = new Vector();
- columnValue.add(book.getOrderNum());
- columnValue.add(book.getOrderName());
- columnValue.add(book.getUserName());//用户名称
- columnValue.add(book.getUserPhone());//用户电话
- columnValue.add(book.getHouseName());//房型名称
- columnValue.add(book.getHouseOrderNumber());//订房数量
- columnValue.add(book.getHouseTotalPrice());//总价
- columnValue.add(book.getPayTime());
- vectorsList.add(columnValue);
- }
- // 项目路径地址
- String path = request.getSession().getServletContext()
- .getRealPath("/download/");// File.separator
- try{
- Vector columnName = new Vector();
- columnName.add("订单号");
- columnName.add("状态");
- columnName.add("预定人");
- columnName.add("手机号");
- columnName.add("预定房型");
- columnName.add("房间数");
- columnName.add("订单金额(元)");
- columnName.add("支付时间");
- String filePathName ="订单信息" + UUIDUtil.generateID() +"Report.xls";
- // 导出文件
- new toExcel().book(vectorsList, path + filePathName,
- "sheet1", columnName);
- String url = "https://chtech.ncjti.edu.cn/hotelReservation/mhotel";
- resultJson.put("downurl", url + "/download/" + filePathName);
- resultJson.put("code", 200);
- resultJson.put("message", "导出成功");
- ResponseUtil.writeJson(ServletActionContext.getResponse(),
- resultJson.toString());
- } catch (Exception e){
- e.printStackTrace();
- }
- return null;
- }
- /**
- * 描述:分页查询台账(查询以消费订单数据)
- * @return
- */
- public String quearyLedgerPage(){
- JSONObject resultJson = new JSONObject();
- StringBuilder s1 = new StringBuilder("");
- s1.append(" and order_status = 5");
- if(managerId!=null){
- s1.append(" and hotel_manager_id = '").append(managerId).append("'");
- }
- if (ledgerParam!=null){
- s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
- .append(" or user_name like '%").append(ledgerParam).append("%'")
- .append(" or user_phone like '%").append(ledgerParam).append("%')");
- }
- if(payStartTime!=null && payEndTime!=null){
- s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
- .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
- }
- if(hotelTownship!=null){
- s1.append(" and hotel_township = '").append(hotelTownship).append("'");
- }
- if(minTotalPrice!=null){
- s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
- }
- if(maxTotalPrice!=null){
- s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
- }
- IPage<Booking> bookIPage = bookService.queryPage(s1.toString(),page,rows, "check_out_time");
- //获取订单汇总信息
- BookTypeEto bookTypeEto = bookService.getBookStatusSum(s1.toString());
- bookTypeEto.setBookIPage(bookIPage);
- if(bookTypeEto!=null && !"".equals(bookTypeEto)){
- resultJson.put("message", "查询分页成功");
- resultJson.put("code", 200);
- resultJson.put("data", bookTypeEto);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- }else{
- resultJson.put("message", "查询分页失败");
- resultJson.put("code", 500);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- }
- return null;
- }
- /**
- * 描述:根据Id查询订单详细
- * @return
- */
- public String getById(){
- JSONObject resultJson = new JSONObject();
- if (id == null) {
- resultJson.put("message", "请传入id");
- resultJson.put("code", 500);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- Booking book = bookService.getById(id);
- List<HouseNumber> houseNumbers = houseNumberService.queryHouseStatus(book);
- book.setHouseNumbers(houseNumbers);
- if (book != null) {
- resultJson.put("message", "查询成功");
- resultJson.put("code", 200);
- resultJson.put("data", book);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }else{
- resultJson.put("message", "未查到用户信息");
- resultJson.put("code", 500);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- }
- /**
- * 描述:导出台账
- * @return
- */
- public String toLedgerExcel() {
- JSONObject resultJson = new JSONObject();
- StringBuilder s1 = new StringBuilder("");
- s1.append(" and order_status = 5");
- s1.append(" and hotel_manager_id = '").append(managerId).append("'");
- if (ledgerParam!=null){
- s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
- .append(" or user_name like '%").append(ledgerParam).append("%'")
- .append(" or user_phone like '%").append(ledgerParam).append("%')");
- }
- if(payStartTime!=null && payEndTime!=null){
- s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
- .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
- }
- if(hotelTownship!=null){
- s1.append(" and hotel_township = '").append(payStartTime).append("'");
- }
- if(minTotalPrice!=null){
- s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
- }
- if(maxTotalPrice!=null){
- s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
- }
- List<Booking> list = bookService.queryList(s1.toString()); // 查询列表
- if(list==null){
- resultJson.put("code", 500);
- resultJson.put("message", "无数据无法导出");
- ResponseUtil.writeJson(ServletActionContext.getResponse(),
- resultJson.toString());
- }
- List<Vector> vectorsList = new ArrayList<>();
- for(Booking book:list){
- Vector columnValue = new Vector();
- columnValue.add(book.getOrderNum());
- columnValue.add(book.getUserName());
- columnValue.add(book.getUserPhone());
- columnValue.add(book.getHouseOrderNumber());
- columnValue.add(book.getPayAccount());
- columnValue.add(book.getPayTime());
- vectorsList.add(columnValue);
- }
- // 项目路径地址
- String path = request.getSession().getServletContext()
- .getRealPath("/download/");;// File.separator
- try{
- Vector columnName = new Vector();
- columnName.add("订单号");
- columnName.add("预定人");
- columnName.add("手机号");
- columnName.add("房间数");
- columnName.add("订单金额");
- columnName.add("退房时间");
- String filePathName ="台账信息" + UUIDUtil.generateID() +"Report.xls";
- // 导出文件
- new toExcel().book(vectorsList, path + filePathName,
- "sheet1", columnName);
- String url = "https://chtech.ncjti.edu.cn/hotelReservation/mhotel";
- resultJson.put("downurl", url + "/download/" + filePathName);
- resultJson.put("code", 200);
- resultJson.put("message", "导出成功");
- ResponseUtil.writeJson(ServletActionContext.getResponse(),
- resultJson.toString());
- } catch (Exception e){
- e.printStackTrace();
- }
- return null;
- }
- /**
- * 描述:导出台账 管理端
- * @return
- */
- public String toLedgerAdmimnExcel() {
- JSONObject resultJson = new JSONObject();
- StringBuilder s1 = new StringBuilder("");
- s1.append(" and order_status = 5");
- if (ledgerParam!=null){
- s1.append(" and (order_num like '%").append(ledgerParam).append("%'")
- .append(" or user_name like '%").append(ledgerParam).append("%'")
- .append(" or user_phone like '%").append(ledgerParam).append("%')");
- }
- if(payStartTime!=null && payEndTime!=null){
- s1.append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') >= '").append(payStartTime).append("'")
- .append(" and DATE_FORMAT(pay_time,'%Y-%m-%d') <= '").append(payEndTime).append("'");
- }
- if(hotelTownship!=null){
- s1.append(" and hotel_township = '").append(payStartTime).append("'");
- }
- if(minTotalPrice!=null){
- s1.append(" and house_total_price >= '").append(minTotalPrice).append("'");
- }
- if(maxTotalPrice!=null){
- s1.append(" and house_total_price <= '").append(maxTotalPrice).append("'");
- }
- List<Booking> list = bookService.queryList(s1.toString()); // 查询列表
- List<HotelDict> hotelDicts = hotelDictService.queryList("and code = 10");
- Map<Integer, String> dictMap = null;
- if(hotelDicts!=null && hotelDicts.size()>0){
- dictMap = hotelDicts.stream().collect(Collectors.toMap(HotelDict::getId, HotelDict::getName, (key1, key2) -> key1 ));
- }else{
- resultJson.put("message", "未查到民宿乡镇信息");
- resultJson.put("code", 500);
- ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
- return null;
- }
- List<Vector> vectorsList = new ArrayList<>();
- for(Booking book:list){
- Vector columnValue = new Vector();
- AdminManager adminManager = adminManagerService.getById(book.getHotelManagerId());
- if(adminManager!=null){
- columnValue.add(dictMap.get(Integer.valueOf(adminManager.getHotelTownship())));//所属乡镇
- columnValue.add(adminManager.getHotelName());//乡宿名称
- }else{
- columnValue.add("");//所属乡镇
- columnValue.add("");//乡宿名称
- }
- columnValue.add(book.getOrderNum());//订单号
- columnValue.add(book.getPayAccount());//订单金额
- columnValue.add(book.getPayTime());//退房时间
- vectorsList.add(columnValue);
- }
- // 项目路径地址
- String path = request.getSession().getServletContext()
- .getRealPath("/download/");// File.separator
- try{
- Vector columnName = new Vector();
- columnName.add("所属乡镇");
- columnName.add("民宿名称");
- columnName.add("订单号");
- columnName.add("订单金额(元)");
- columnName.add("退房时间");
- String filePathName ="台账信息" + UUIDUtil.generateID() +"Report.xls";
- // 导出文件
- new toExcel().book(vectorsList, path + filePathName,
- "sheet1", columnName);
- String url = "https://chtech.ncjti.edu.cn/hotelReservation/mhotel";
- resultJson.put("downurl", url + "/download/" + filePathName);
- resultJson.put("code", 200);
- resultJson.put("message", "导出成功");
- ResponseUtil.writeJson(ServletActionContext.getResponse(),
- resultJson.toString());
- } catch (Exception e){
- e.printStackTrace();
- }
- return null;
- }
- /**
- * 定时任务
- */
- public void setBookStatus(){
- int i = bookService.updateBookStatus();
- }
- }
|