> 文档中心 > SSM框架之酒店管理系统十七(B端退房管理)

SSM框架之酒店管理系统十七(B端退房管理)


SSM框架之酒店管理系统十七(B端退房管理)

1、实体类创建

@Data@ToStringpublic class Checkout {    private Long id;    private String checkOutNumber;    private Long checkInId;    private Double consumePrice;    private Date createDate;    private Integer createdBy;    private String remark;}

同时还需要创建一个vo类作为分页查询

2、CheckoutMapper

package com.zcl.dao;import com.zcl.entity.Checkout;/** * 项目名称:ssm_hotel * 描述:退房办理持久层 * * @author zhong * @date 2022-05-23 16:04 */public interface CheckoutMapper {    /**     * 退房信息添加     * @param checkout     * @return     */    int addCheckout(Checkout checkout);}

映射文件

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.zcl.dao.CheckoutMapper">        <insert id="addCheckout"> insert into t_checkout (checkOutNumber, checkInId, consumePrice, createDate, createdBy, remark) values (#{checkOutNumber},#{checkInId},#{consumePrice},#{createDate},#{createdBy},#{remark});    </insert></mapper>

3、CheckoutService

package com.zcl.service.impl;import com.zcl.dao.CheckinMapper;import com.zcl.dao.CheckoutMapper;import com.zcl.dao.OrdersMapper;import com.zcl.dao.RoomTypeMapper;import com.zcl.entity.Checkin;import com.zcl.entity.Checkout;import com.zcl.entity.Orders;import com.zcl.entity.RoomType;import com.zcl.service.CheckoutService;import com.zcl.utils.UUIDUtils;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import javax.annotation.Resource;import java.util.Date;/** * 项目名称:ssm_hotel * 描述: * * @author zhong * @date 2022-05-23 16:11 */@Service@Transactionalpublic class CheckoutServiceImpl implements CheckoutService {    /**     * 注入持久层     */    @Resource    CheckoutMapper checkoutMapper;    /**     * 注入入住管理     */    @Resource    CheckinMapper checkinMapper;    /**     * 注入预订管理     */    @Resource    OrdersMapper ordersMapper;    /**     * 注入房间类型管理     */    @Resource    RoomTypeMapper roomTypeMapper;    /**     * 添加退房数据     * @param checkout     * @return     */    public int addCheckout(Checkout checkout) { // 1、添加退房记录 checkout.setCreateDate(new Date()); checkout.setCheckOutNumber(UUIDUtils.randomUUID()); // 调用添加退房信息的方法 int count = checkoutMapper.addCheckout(checkout); if(count > 0){     // 2、修改入住管理t_checkin表中的状态为2【已退房】     Checkin checkin = checkinMapper.finfById(checkout.getCheckInId());     checkin.setStatus(2);     // 调用修改入住订单方法     checkinMapper.updateCheckin(checkin);     // 3、修改t_orders预订表中的状态为【4】已完成     Orders orders = new Orders();     orders.setId(checkin.getOrdersid());     orders.setStatus(4);     // 调用修改的方法     ordersMapper.updateOrders(orders);     // 4、修改t_room_type房型表的数据     RoomType roomType = roomTypeMapper.findById(checkin.getRoomtypeid());     // 房间可用数量     roomType.setAvilablenum(roomType.getAvilablenum()+1);     // 房间已住数量     roomType.setLivednum(roomType.getLivednum()-1);     roomTypeMapper.updateRoomType(roomType); } return count;    }}

这边的话可能调用了行的修改方法,需要自己去添加

4、CheckoutController

package com.zcl.controller.admin;import com.alibaba.fastjson.JSON;import com.zcl.dao.CheckoutMapper;import com.zcl.entity.Checkin;import com.zcl.entity.Checkout;import com.zcl.entity.Employee;import com.zcl.service.CheckoutService;import com.zcl.utils.SystemConstant;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;import javax.servlet.http.HttpSession;import java.util.HashMap;import java.util.Map;/** * 项目名称:ssm_hotel * 描述:办理退房控制器 * * @author zhong * @date 2022-05-23 17:55 */@RestController@RequestMapping("/admin/checkout")public class CheckoutController {    @Resource    CheckoutService checkoutService;    @RequestMapping("/addCheckout")    public String addCheckout(Checkout checkout, HttpSession session){ System.out.println("退房接收数据:"+checkout); Map<String,Object> map = new HashMap<String,Object>(); //获取当前登录用户 Employee employee = (Employee) session.getAttribute(SystemConstant.LOGINUSER); //退房人【当前登录用户】 checkout.setCreatedBy(employee.getId()); //调用添加退房信息的方法 if(checkoutService.addCheckout(checkout)>0){     map.put(SystemConstant.SUCCESS,true);     map.put(SystemConstant.MESSAGES,"办理退房成功"); }else{     map.put(SystemConstant.SUCCESS,false);     map.put(SystemConstant.MESSAGES,"办理退房失败"); } return JSON.toJSONString(map);    }}

5、前端页面请求事件

// 退房事件function checkOut(data) {    console.log(data);    // 判断当前的入住状态    if(data.status == 1){ // 提示是否退房 layer.confirm('您确定要办理退房吗?', {icon: 3, title:'退房提示'}, function(index){     //发送请求     $.post("/admin/checkout/addCheckout",{"checkInId":data.id,"consumePrice":data.payprice},function(result){  if(result.succser){      layer.alert(result.messages,{icon:1});      tableIns.reload();  }else {      layer.alert(result.messages,{icon:5});  }     },"json");     layer.close(index); });    }else { layer.msg("该入住订单已完成,无需重复办理退房");    }}