package com.happy.service.impl; import com.happy.Model.AdminManager; import com.happy.Model.Booking; import com.happy.Until.DateUtil; import com.happy.Until.Enum.OrderEnum; import com.happy.Until.Enum.PayEnum; import com.happy.Until.Func; import com.happy.common.http.Message; import com.happy.dao.BookDao; import com.happy.dto.BookTypeEto; import com.happy.dto.IPage; import com.happy.service.AdminManagerService; import com.happy.service.BookService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.awt.print.Book; import java.util.Date; import java.util.List; @Service("BookService") public class BookImplService implements BookService { @Resource public BookDao bookDao; @Resource public AdminManagerService adminManagerService; @Override public int insertBooking(Booking book) { return bookDao.insertBooking(book); } @Override public int updateBooking(Booking book) { return bookDao.updateBooking(book); } @Override public int delBooking(int id) { return bookDao.delBooking(id); } @Override public Booking getById(int id) { return bookDao.getById(id); } @Override public IPage queryPage(String sqlx, int page, int rows) { IPage iPage = new IPage(); List bookList = bookDao.queryPage(sqlx,page,rows); int total = bookDao.queryTotal(sqlx); iPage.setPageList(bookList); iPage.setPage(page); iPage.setTotalPage( (int)Math.ceil((double)total/rows)); iPage.setRows(rows); iPage.setTotal(total); return iPage; } @Override public List queryList(String sqlx) { return bookDao.queryList(sqlx); } @Override public Booking getOen(String sqlx){ List list = bookDao.queryList(sqlx); if(list!=null && list.size()>0) return list.get(0); return null; } @Override public Double sumAccount(String sqlx){ return bookDao.sumAccount(sqlx); } @Override public BookTypeEto getBookStatusSum(String sqlx){ return bookDao.getBookStatusSum(sqlx); } @Override public String cancelBooking(String bookingId) throws Exception { if (Func.checkNull(bookingId)) return "未传入订单id"; Booking book = bookDao.getById(Func.parseInt(bookingId)); //是否能取消订单(1是 2否) if (Func.parseInt(book.getHotelIsCanorder()) == 2) return "商家设置不可取消订单,请联系商家"; AdminManager adminManager = adminManagerService.getById(Func.parseInt(book.getHotelManagerId())); //1待支付,2已支付,3待入住,4已入住,5已消费,6支付超时,7已取消,8已退单,9已退款,10退款中 int status = Func.parseInt(book.getOrderStatus()); if (status == 1) { book.setOrderStatus(Func.parseStr(PayEnum.SEVEN.getNum())); book.setUpdateTime(DateUtil.getFormatPaternDate(new Date())); bookDao.updateBooking(book); String sendMsg = "订单:"+ book.getOrderNum() +"已取消"; // 推送消息给用户 Message.send(adminManager.getOpenid(),book.getOrderNum(),book.getUserName(),sendMsg,book.getCreateTime()); return null; }else if (status == 2) { book.setOrderStatus(Func.parseStr(PayEnum.SEVEN.getNum())); book.setUpdateTime(DateUtil.getFormatPaternDate(new Date())); // 注明需要退款: book.setPayWay(OrderEnum.微信退款.toString()); bookDao.updateBooking(book); // 走退款操作 String sendMsg = "订单:"+ book.getOrderNum() +"已取消"; // 推送消息给用户 Message.send(adminManager.getOpenid(),book.getOrderNum(),book.getUserName(),sendMsg,book.getCreateTime()); return null; } return "不可取消订单"; } @Override public String delBooking(String bookingId) { if (Func.checkNull(bookingId)) return "未传入订单id"; // 是否假删除:1删除,2正常 Booking book = bookDao.getById(Func.parseInt(bookingId)); if (book == null) return "无此订单,请重新查询"; book.setIsDelete(0); book.setUpdateTime(DateUtil.getFormatPaternDate(new Date())); bookDao.updateBooking(book); return null; } @Override public Booking queryByOrder(String orderNum) { List list = bookDao.queryList("and order_num = '"+orderNum+"'"); if(list!=null && list.size()>0) return list.get(0); return null; } }