Browse Source

入住改价
修改订单信息

覃浩 2 years ago
parent
commit
5624e027c3

+ 31 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusRoomBookingOrdersController.java

@@ -19,6 +19,7 @@ import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.business.dto.BatchOrderSavaDto;
 import org.jeecg.modules.business.dto.BookingOrderSaveDto;
+import org.jeecg.modules.business.dto.UpdateOrderInfoDto;
 import org.jeecg.modules.business.entity.BusBookingBatch;
 import org.jeecg.modules.business.entity.BusLivingCustomer;
 import org.jeecg.modules.business.entity.BusOrderFee;
@@ -435,6 +436,36 @@ public class BusRoomBookingOrdersController extends JeecgController<BusRoomBooki
 	 	if(type == 2) return  Result.OK(service.getBookingOrderKL(bookingStatus,keyw,hotelId,page));
 	 	return  null;
 	 }
+	 /**
+	  * 修改订单信息
+	  * @param info 修改的信息
+	  * @param type 1 预约单 2 入住单
+	  * @return
+	  */
+	 @ApiOperation(value="酒店预定订单-修改订单信息", notes="酒店预定订单-修改订单信息")
+	 @RequestMapping(value = "/update-orders",method = RequestMethod.POST)
+	 public Result<Boolean> updateOrderInfo(Integer type,@RequestBody UpdateOrderInfoDto info) {
+	 	return Result.OK(service.updateOrderInfo(type,info));
+	 }
+
+
+	 /**
+	  * 入住改价
+	  * @return
+	  */
+	 @ApiOperation(value="酒店预定订单-入住改价", notes="酒店预定订单-入住改价")
+	 @RequestMapping(value = "/update-order-price",method = RequestMethod.POST)
+	 public Result<Boolean> updateOrderPrice(Integer type,@RequestBody UpdateOrderInfoDto info) {
+		 return Result.OK(service.updateOrderInfo(type,info));
+	 }
+
+
+
+
+
+
+
+
 
 
 

+ 16 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/UpdateOrderInfoDto.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.business.dto;
+
+import lombok.Data;
+
+@Data
+public class UpdateOrderInfoDto {
+    private String orderId;
+    private String cusName;
+    private String cusPhone;
+    private String cusId;
+    private Integer customerType;
+    private String customerSource;
+    private String remark;
+    private String warranter;
+
+}

+ 12 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/UpdateOrderPriceDto.java

@@ -0,0 +1,12 @@
+package org.jeecg.modules.business.dto;
+
+import lombok.Data;
+import org.jeecg.modules.business.entity.BusLivingLayoutDayPrice;
+
+import java.util.List;
+
+@Data
+public class UpdateOrderPriceDto {
+    private String livingOrderId;
+    private List<BusLivingLayoutDayPrice> dayPrices;
+}

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusRoomBookingOrdersService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.business.dto.BatchOrderSavaDto;
 import org.jeecg.modules.business.dto.BookingOrderSaveDto;
+import org.jeecg.modules.business.dto.UpdateOrderInfoDto;
+import org.jeecg.modules.business.dto.UpdateOrderPriceDto;
 import org.jeecg.modules.business.entity.BusBookingBatch;
 import org.jeecg.modules.business.entity.BusLivingCustomer;
 import org.jeecg.modules.business.entity.BusOrderFee;
@@ -66,5 +68,7 @@ public interface IBusRoomBookingOrdersService extends IService<BusRoomBookingOrd
     Boolean mergeOrder(String livingRoomId, List<String> livingOrderId);
     ForwardFangTaiVo forwardFangTai(String start, String end, String hotelId,Boolean isContainLeave);
     RiLiFangTaiResultVo riliFangTai(String start, String end, String hotelId);
+    Boolean updateOrderInfo(Integer type, UpdateOrderInfoDto info);
+    Boolean updateOrderPrice(UpdateOrderPriceDto info);
 
 }

+ 171 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java

@@ -9,10 +9,7 @@ import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.TokenUtils;
-import org.jeecg.modules.business.dto.BatchOrderSavaDto;
-import org.jeecg.modules.business.dto.BookingBatchRoomsDto;
-import org.jeecg.modules.business.dto.BookingOrderSaveDto;
-import org.jeecg.modules.business.dto.TodayBookingQueryDto;
+import org.jeecg.modules.business.dto.*;
 import org.jeecg.modules.business.entity.*;
 import org.jeecg.modules.business.enums.*;
 import org.jeecg.modules.business.mapper.BusRoomBookingOrdersMapper;
@@ -932,7 +929,31 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         //</editor-fold>
 
         //<editor-fold desc="todo:账单相关">
-        // TODO: 待做
+        BigDecimal money = new BigDecimal(0);
+        BusLivingLayoutDayPrice  price = livingLayoutDayPriceService.getOne(Wrappers.<BusLivingLayoutDayPrice>query()
+        .eq("living_order_id", livingOrder.getId()).eq("day_time",DateUtils.formatDate(new Date())+" 00:00:00"));
+        if(price != null) {
+            money = price.getPrice();
+        } else {
+            CesRoomLayout layout = layoutService.getById(room.getLayoutId());
+            if(layout == null) throw new JeecgBootException("房价不存在");
+            money = layout.getMarketPrice();
+        }
+
+        BusOrderFee dayOrderFee = new BusOrderFee();
+        dayOrderFee.setDayTime(new Date());
+        dayOrderFee.setCreateTime(new Date());
+        dayOrderFee.setMoney(money);
+        dayOrderFee.setFeeType(1);
+        dayOrderFee.setSubjectType(FeeSubjectType.MEI_RI_FANG_FEI.getKey());
+        CesRooms orderRoom = room;
+        dayOrderFee.setRoomId(orderRoom.getId());
+        String roomName = orderRoom.getPrefix() != null?orderRoom.getPrefix():"";
+        roomName += roomName + orderRoom.getName();
+        dayOrderFee.setRemark("【"+roomName + "】 "+ DateUtils.formatDate(dayOrderFee.getDayTime()) + " 当日房费");
+        dayOrderFee.setLivingOrderId(livingOrder.getId());
+        dayOrderFee.setHotelId(hotelId);
+        feeService.save(dayOrderFee);
         //</editor-fold>
         return livingOrder.getId();
     }
@@ -1050,10 +1071,22 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             BusOrderFee dayOrderFee = new BusOrderFee();
             dayOrderFee.setDayTime(date);
             dayOrderFee.setCreateTime(new Date());
-            dayOrderFee.setMoney(BigDecimal.valueOf(218.00));
+
             dayOrderFee.setFeeType(1);
             dayOrderFee.setSubjectType(FeeSubjectType.MEI_RI_FANG_FEI.getKey());
             CesRooms orderRoom = inLiveRooms.stream().filter(a->a.getLivingOrderId().equals(s.getId())).findFirst().get();
+            BigDecimal money = new BigDecimal(0);
+            BusLivingLayoutDayPrice  price = livingLayoutDayPriceService.getOne(Wrappers.<BusLivingLayoutDayPrice>query()
+                    .eq("living_order_id", s.getId()).eq("day_time",DateUtils.formatDate(new Date())+" 00:00:00"));
+            if(price != null) {
+                money = price.getPrice();
+            } else {
+                CesRoomLayout layout = layoutService.getById(orderRoom.getLayoutId());
+                if(layout == null) money = new BigDecimal(218);
+                else money = layout.getMarketPrice();
+            }
+
+            dayOrderFee.setMoney(money);
             dayOrderFee.setRoomId(orderRoom.getId());
             String roomName = orderRoom.getPrefix() != null?orderRoom.getPrefix():"";
             roomName += roomName + orderRoom.getName();
@@ -1433,6 +1466,138 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         return  result;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateOrderInfo(Integer type, UpdateOrderInfoDto info){
+        if(info == null || info.getOrderId() == null || info.getOrderId().isEmpty()) throw new JeecgBootException("参数错误");
+        LoginUser user = TokenUtils.getAuthUser();
+        // 预约单
+        if(type.equals(1)) {
+            BusRoomBookingOrders order = getById(info.getOrderId());
+            if(order == null) throw new JeecgBootException("订单未找到");
+            if(info.getCusName() != null && !info.getCusName().isEmpty() && info.getCusPhone() != null && !info.getCusPhone().isEmpty()){
+                BusCustomer customer = customerService.getOne(Wrappers.<BusCustomer>query().eq("name",info.getCusName())
+                        .eq("phone",info.getCusPhone()));
+                if(customer == null) {
+                    // save customer
+                    BusCustomer newCustomer = new BusCustomer();
+                    newCustomer.setCreateTime(new Date());
+                    newCustomer.setCreateUser(user.getId());
+                    newCustomer.setHotelId(user.getRelTenantIds());
+                    newCustomer.setTenantId(user.getRelTenantIds());
+                    newCustomer.setName(info.getCusName());
+                    newCustomer.setPhone(info.getCusPhone());
+                    newCustomer.setCertType(1); // 身份证
+                    customerService.save(newCustomer);
+                    order.setContactId(newCustomer.getId());
+                } else {
+                    order.setContactId(customer.getId());
+                }
+                updateById(order);
+                return true;
+            }
+
+            if(info.getCustomerSource() != null && !info.getCustomerSource().isEmpty()) {
+                order.setCustomerSource(info.getCustomerSource());
+                updateById(order);
+                return true;
+            }
+
+            if(info.getRemark() != null && !info.getRemark().isEmpty()) {
+                order.setRemark(info.getRemark());
+                updateById(order);
+                return true;
+            }
+            if(info.getWarranter() != null && !info.getWarranter().isEmpty()) {
+                order.setWarranter(info.getWarranter());
+                updateById(order);
+                return true;
+            }
+
+            if(info.getCustomerType() != null && CustomerTypeEnum.val(info.getCustomerType()) != null) {
+                order.setCustomerType(info.getCustomerType());
+                updateById(order);
+                return true;
+            }
+            return false;
+        }
+        if(type.equals(2)) {
+            BusRoomsLivingOrder order = roomsLivingOrderService.getById(info.getOrderId());
+            if(order == null) throw new JeecgBootException("订单未找到");
+            if(info.getCusName() != null && !info.getCusName().isEmpty() && info.getCusPhone() != null && !info.getCusPhone().isEmpty()){
+                BusCustomer customer = customerService.getOne(Wrappers.<BusCustomer>query().eq("name",info.getCusName())
+                        .eq("phone",info.getCusPhone()));
+                if(customer == null) {
+                    // save customer
+                    BusCustomer newCustomer = new BusCustomer();
+                    newCustomer.setCreateTime(new Date());
+                    newCustomer.setCreateUser(user.getId());
+                    newCustomer.setHotelId(user.getRelTenantIds());
+                    newCustomer.setTenantId(user.getRelTenantIds());
+                    newCustomer.setName(info.getCusName());
+                    newCustomer.setPhone(info.getCusPhone());
+                    newCustomer.setCertType(1); // 身份证
+                    customerService.save(newCustomer);
+                    order.setContactId(newCustomer.getId());
+                } else {
+                    order.setContactId(customer.getId());
+                }
+                roomsLivingOrderService.updateById(order);
+                return true;
+            }
+
+            if(info.getCustomerSource() != null && !info.getCustomerSource().isEmpty()) {
+                order.setCustomerSource(info.getCustomerSource());
+                roomsLivingOrderService.updateById(order);
+                return true;
+            }
+
+            if(info.getRemark() != null && !info.getRemark().isEmpty()) {
+                order.setRemark(info.getRemark());
+                roomsLivingOrderService.updateById(order);
+                return true;
+            }
+            if(info.getWarranter() != null && !info.getWarranter().isEmpty()) {
+                order.setWarranter(info.getWarranter());
+                roomsLivingOrderService.updateById(order);
+                return true;
+            }
+
+            if(info.getCustomerType() != null && CustomerTypeEnum.val(info.getCustomerType()) != null) {
+                order.setCustomerType(info.getCustomerType());
+                roomsLivingOrderService.updateById(order);
+                return true;
+            }
+            return false;
+        }
+        return false;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateOrderPrice(UpdateOrderPriceDto info) {
+        if(info.getLivingOrderId() == null || info.getLivingOrderId().isEmpty()) throw new JeecgBootException("参数错误");
+        if(info.getDayPrices() == null || info.getDayPrices().size() == 0) throw new JeecgBootException("参数错误");
+        info.getDayPrices().forEach(s-> {
+            if(new Date().getTime() < s.getDayTime().getTime()) return;
+            if(s.getId() == null || s.getId().isEmpty()){
+                livingLayoutDayPriceService.save(s);
+            } else {
+                livingLayoutDayPriceService.updateById(s);
+            }
+            if(DateUtils.formatDate(new Date()).equals(DateUtils.formatDate(s.getDayTime()))){
+                // 修改当日房价 产生的当日房费账单也要改
+                BusOrderFee fee = feeService.getOne(Wrappers.<BusOrderFee>query()
+                        .eq("day_time",DateUtils.formatDate(new Date())));
+                if(fee != null) {
+                    fee.setMoney(s.getPrice());
+                    feeService.updateById(fee);
+                }
+            }
+        });
+        return  true;
+    }
+
     private Boolean mergeSingle(String livingOrderId, String mergeLivingOrderId ) {
         BusRoomsLivingOrder mergeLivingOrder = roomsLivingOrderService.getById(mergeLivingOrderId);
         if(mergeLivingOrder == null) throw new JeecgBootException("合并的订单不存在");