Explorar o código

Merge branch 'master' of http://49.4.53.36:3000/hotel/hotel-saas-backend

qh %!s(int64=2) %!d(string=hai) anos
pai
achega
1cbe50a5d1
Modificáronse 27 ficheiros con 1174 adicións e 17 borrados
  1. 73 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleController.java
  2. 166 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleDetailController.java
  3. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/PostDataDto.java
  4. 40 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomSchedule.java
  5. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomScheduleDetail.java
  6. 72 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomScheduleOrderDetail.java
  7. 5 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusRoomPayType.java
  8. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMeetingRoomScheduleOrderDetailMapper.java
  9. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMeetingRoomScheduleOrderDetailMapper.xml
  10. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMeetingRoomScheduleOrderDetailService.java
  11. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleOrderDetailServiceImpl.java
  12. 57 7
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleServiceImpl.java
  13. 9 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesServiceTypeSearchDto.java
  14. 13 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesAllDayPriceRuleController.java
  15. 21 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesHydropowerCoalController.java
  16. 21 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesServiceMaintenanceController.java
  17. 21 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesServiceTypeController.java
  18. 82 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesHydropowerCoal.java
  19. 96 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesServiceMaintenance.java
  20. 65 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesServiceType.java
  21. 16 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesHydropowerCoalMapper.java
  22. 16 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesServiceMaintenanceMapper.java
  23. 16 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesServiceTypeMapper.java
  24. 37 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesAllDayPriceRuleServiceImpl.java
  25. 45 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesHydropowerCoalServiceImpl.java
  26. 111 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesServiceMaintenanceServiceImpl.java
  27. 130 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesServiceTypeServiceImpl.java

+ 73 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleController.java

@@ -2,16 +2,23 @@ package org.jeecg.modules.business.controller;
 
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.Enum.ResultCode;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
-import org.jeecg.modules.business.entity.BusMeetingRoom;
-import org.jeecg.modules.business.entity.BusMeetingRoomSchedule;
-import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
+import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.service.IBusMeetingRoomScheduleDetailService;
+import org.jeecg.modules.business.service.IBusMeetingRoomScheduleOrderDetailService;
+import org.jeecg.modules.business.service.IBusRoomPayTypeService;
 import org.jeecg.modules.business.service.impl.BusMeetingRoomScheduleServiceImpl;
 import org.jeecg.modules.business.service.impl.BusMeetingRoomServiceImpl;
 import org.springframework.web.bind.annotation.*;
@@ -19,6 +26,8 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.stereotype.Controller;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -37,6 +46,12 @@ public class BusMeetingRoomScheduleController {
 
     @Resource
     private BusMeetingRoomScheduleServiceImpl roomScheduleService;
+    @Resource
+    private IBusMeetingRoomScheduleOrderDetailService busMeetingRoomScheduleOrderDetailService;
+    @Resource
+    private IBusMeetingRoomScheduleDetailService busMeetingRoomScheduleDetailService;
+    @Resource
+    private IBusRoomPayTypeService busRoomPayTypeService;
 
     @ApiOperation(value="创建会议预定", notes="创建会议预定")
     @PostMapping(value = "/create")
@@ -115,5 +130,60 @@ public class BusMeetingRoomScheduleController {
         return Result.OK("编辑成功!");
     }
 
+    /**
+     * 分页列表查询
+     *
+     * @param busMeetingRoomSchedule
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    //@AutoLog(value = "bus_market_coupons_cash_info-分页列表查询")
+    @ApiOperation(value="bus_market_coupons_cash_info-分页列表查询", notes="bus_market_coupons_cash_info-分页列表查询")
+    @GetMapping(value = "/list")
+    public Result<IPage<BusMeetingRoomSchedule>> queryPageList(BusMeetingRoomSchedule busMeetingRoomSchedule,
+                                                             @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                                             @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                                             HttpServletRequest req) {
+        QueryWrapper<BusMeetingRoomSchedule> queryWrapper = QueryGenerator.initQueryWrapper(busMeetingRoomSchedule, req.getParameterMap());
+        Page<BusMeetingRoomSchedule> page = new Page<BusMeetingRoomSchedule>(pageNo, pageSize);
+        IPage<BusMeetingRoomSchedule> pageList = roomScheduleService.page(page, queryWrapper);
+        pageList.getRecords().forEach(item -> {
+            LambdaQueryWrapper<BusMeetingRoomScheduleOrderDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.eq(BusMeetingRoomScheduleOrderDetail::getMeetingRoomScheduleId, item.getId());
+            List<BusMeetingRoomScheduleOrderDetail> meetingRoomScheduleOrderDetailList = busMeetingRoomScheduleOrderDetailService.list(lambdaQueryWrapper);
+            if (ObjectUtils.isNotEmpty(meetingRoomScheduleOrderDetailList)) {
+                item.setOrderDetailList(meetingRoomScheduleOrderDetailList);
+                meetingRoomScheduleOrderDetailList.forEach(v -> {
+                    BusRoomPayType busRoomPayType = busRoomPayTypeService.getById(v.getPayWay());
+                    if (busRoomPayType != null) {
+                        v.setPayWayName(busRoomPayType.getName());
+                    }
+                });
+            }
+
+            LambdaQueryWrapper<BusMeetingRoomScheduleDetail> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper2.eq(BusMeetingRoomScheduleDetail::getMeetingRoomScheduleId, item.getId());
+            lambdaQueryWrapper2.eq(BusMeetingRoomScheduleDetail::getStatus, 0);
+            Long count = busMeetingRoomScheduleDetailService.count(lambdaQueryWrapper2);
+            item.setConfirmStatus(count > 0 ? 0 : 1);
+        });
+        return Result.OK(pageList);
+    }
+
+    /**
+     *  结账
+     *
+     * @param busMeetingRoomSchedule
+     * @return
+     */
+    @AutoLog(value = "bus_meeting_room-编辑")
+    @ApiOperation(value="bus_meeting_room-编辑", notes="bus_meeting_room-编辑")
+    //@RequiresPermissions("business:bus_meeting_room:edit")
+    @PostMapping(value = "/settle")
+    public Result<String> settle(@RequestBody BusMeetingRoomSchedule busMeetingRoomSchedule) {
+        return roomScheduleService.settle(busMeetingRoomSchedule);
+    }
 }
 

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

@@ -0,0 +1,166 @@
+package org.jeecg.modules.business.controller;
+
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.Enum.ResultCode;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
+import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
+import org.jeecg.modules.business.dto.PostDataDto;
+import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.enums.CouponsStatusEnum;
+import org.jeecg.modules.business.service.IBusMarketCouponsEventService;
+import org.jeecg.modules.business.service.IBusMeetingRoomScheduleDetailService;
+import org.jeecg.modules.business.service.impl.BusMeetingRoomScheduleDetailServiceImpl;
+import org.jeecg.modules.business.service.impl.BusMeetingRoomScheduleServiceImpl;
+import org.jeecg.modules.business.service.impl.BusMeetingRoomServiceImpl;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+@RestController
+@RequestMapping("/business/busMeetingRoomScheduleDetail")
+public class BusMeetingRoomScheduleDetailController extends JeecgController<BusMeetingRoomScheduleDetail, IBusMeetingRoomScheduleDetailService> {
+
+    @Resource
+    private BusMeetingRoomScheduleDetailServiceImpl meetingRoomScheduleDetailService;
+    @Resource
+    private BusMeetingRoomScheduleServiceImpl meetingRoomScheduleService;
+    @Resource
+    private BusMeetingRoomServiceImpl meetingRoomService;
+
+    /**
+     * 分页列表查询
+     *
+     * @param busMeetingRoomScheduleDetail
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @ApiOperation(value = "分页列表查询", notes = "分页列表查询")
+    @GetMapping(value = "/list")
+    public Result<IPage<BusMeetingRoomScheduleDetail>> queryPageList(BusMeetingRoomScheduleDetail busMeetingRoomScheduleDetail,
+                                                                     @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                                     @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                                     HttpServletRequest req) {
+        QueryWrapper<BusMeetingRoomScheduleDetail> queryWrapper = QueryGenerator.initQueryWrapper(busMeetingRoomScheduleDetail, req.getParameterMap());
+        Page<BusMeetingRoomScheduleDetail> page = new Page<BusMeetingRoomScheduleDetail>(pageNo, pageSize);
+        IPage<BusMeetingRoomScheduleDetail> pageList = meetingRoomScheduleDetailService.page(page, queryWrapper);
+        pageList.getRecords().forEach(item -> {
+            BusMeetingRoomSchedule meetingRoomSchedule = meetingRoomScheduleService.getById(item.getMeetingRoomScheduleId());
+            if (meetingRoomSchedule != null) {
+                item.setTheme(meetingRoomSchedule.getTheme());
+            }
+            BusMeetingRoom meetingRoom = meetingRoomService.getById(item.getMeetingRoomId());
+            if (meetingRoom != null) {
+                item.setMeetingRoomName(meetingRoom.getName());
+            }
+        });
+        return Result.OK(pageList);
+    }
+
+    /**
+     *   通过id删除
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "bus_market_coupons_cash_info-通过id删除")
+    @ApiOperation(value="bus_market_coupons_cash_info-通过id删除", notes="bus_market_coupons_cash_info-通过id删除")
+    //@RequiresPermissions("business:bus_market_coupons_cash_info:delete")
+    @DeleteMapping(value = "/delete")
+    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+        meetingRoomScheduleDetailService.removeById(id);
+        return Result.OK("删除成功!");
+    }
+
+    /**
+     *  批量删除
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "bus_market_coupons_cash_info-批量删除")
+    @ApiOperation(value="bus_market_coupons_cash_info-批量删除", notes="bus_market_coupons_cash_info-批量删除")
+    //@RequiresPermissions("business:bus_market_coupons_cash_info:deleteBatch")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+        this.meetingRoomScheduleDetailService.removeByIds(Arrays.asList(ids.split(",")));
+        return Result.OK("批量删除成功!");
+    }
+
+    /**
+     *  批量确认
+     *
+     * @param dto
+     * @return
+     */
+    @AutoLog(value = "bus_market_coupons_cash_info-批量确认")
+    @ApiOperation(value="bus_market_coupons_cash_info-批量确认", notes="bus_market_coupons_cash_info-批量确认")
+    @PostMapping(value = "/confirmBatch")
+    public Result<String> confirmBatch(@RequestBody PostDataDto dto) {
+        LambdaUpdateWrapper<BusMeetingRoomScheduleDetail> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.in(BusMeetingRoomScheduleDetail::getId, dto.getIds());
+        updateWrapper.set(BusMeetingRoomScheduleDetail::getStatus, 1);
+        meetingRoomScheduleDetailService.update(updateWrapper);
+        return Result.OK("批量确认成功!");
+    }
+
+    /**
+     *  确认
+     *
+     * @param dto
+     * @return
+     */
+    @AutoLog(value = "bus_market_coupons_cash_info-确认")
+    @ApiOperation(value="bus_market_coupons_cash_info-确认", notes="bus_market_coupons_cash_info-确认")
+    @PostMapping(value = "/confirm")
+    public Result<String> confirm(@RequestBody PostDataDto dto) {
+        LambdaUpdateWrapper<BusMeetingRoomScheduleDetail> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(BusMeetingRoomScheduleDetail::getId, dto.getId());
+        updateWrapper.set(BusMeetingRoomScheduleDetail::getStatus, 1);
+        meetingRoomScheduleDetailService.update(updateWrapper);
+        return Result.OK("确认成功!");
+    }
+
+    /**
+     *  确认
+     *
+     * @param dto
+     * @return
+     */
+    @AutoLog(value = "bus_market_coupons_cash_info-确认")
+    @ApiOperation(value="bus_market_coupons_cash_info-确认", notes="bus_market_coupons_cash_info-确认")
+    @PostMapping(value = "/confirmBatchByMeetingRoomScheduleId")
+    public Result<String> confirmBatchByMeetingRoomScheduleId(@RequestBody PostDataDto dto) {
+        LambdaUpdateWrapper<BusMeetingRoomScheduleDetail> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(BusMeetingRoomScheduleDetail::getMeetingRoomScheduleId, dto.getId());
+        updateWrapper.set(BusMeetingRoomScheduleDetail::getStatus, 1);
+        meetingRoomScheduleDetailService.update(updateWrapper);
+        return Result.OK("确认成功!");
+    }
+
+}
+

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/PostDataDto.java

@@ -2,10 +2,11 @@ package org.jeecg.modules.business.dto;
 
 import lombok.Data;
 
+import java.util.List;
 
 
 @Data
 public class PostDataDto {
     private String id;
-
+    private List<String> ids;
 }

+ 40 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomSchedule.java

@@ -1,9 +1,13 @@
 package org.jeecg.modules.business.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -79,6 +83,26 @@ public class BusMeetingRoomSchedule extends Model<BusMeetingRoomSchedule> {
     @DateTimeFormat(pattern="yyyy-MM-dd")
     private LocalDateTime createTime;
 
+    /**
+     * 支付类型 1 挂房账 2直接自付
+     */
+    private Integer payType;
+    /**
+     * 金额
+     */
+    private BigDecimal amount;
+    /**
+     * 入账到房间单号id
+     */
+    private String settleRoomOrderNo;
+    /**
+     * 创建人
+     */
+    private String createId;
+    /**
+     * 订单号
+     */
+    private String orderNo;
 
     public static final String ID = "id";
 
@@ -100,9 +124,25 @@ public class BusMeetingRoomSchedule extends Model<BusMeetingRoomSchedule> {
 
     public static final String CREATE_TIME = "create_time";
 
+    public static final String PAY_TYPE = "pay_type";
+    public static final String AMOUNT = "amount";
+    public static final String SETTLE_ROOM_ORDER_NO = "settle_room_order_no";
+    public static final String CREATE_ID = "create_id";
+    public static final String ORDER_NO = "order_no";
+
     @Override
     public Serializable pkVal() {
         return this.id;
     }
 
+
+    @TableField(exist = false)
+    private List<BusMeetingRoomScheduleOrderDetail> orderDetailList;
+    @TableField(exist = false)
+    private Integer confirmStatus;
+
+    @TableField(exist = false)
+    private List<BusRoomPayType> paymentMethodList;
+    @TableField(exist = false)
+    private BigDecimal preferentialAmount;
 }

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomScheduleDetail.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.business.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.time.LocalDateTime;
@@ -87,4 +88,8 @@ public class BusMeetingRoomScheduleDetail extends Model<BusMeetingRoomScheduleDe
         return this.id;
     }
 
+    @TableField(exist = false)
+    private String meetingRoomName;
+    @TableField(exist = false)
+    private String theme;
 }

+ 72 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomScheduleOrderDetail.java

@@ -0,0 +1,72 @@
+package org.jeecg.modules.business.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: bus_meeting_room_schedule_order_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_meeting_room_schedule_order_detail")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_meeting_room_schedule_order_detail对象", description="bus_meeting_room_schedule_order_detail")
+public class BusMeetingRoomScheduleOrderDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 关联租户
+     */
+    @Excel(name = "关联租户", width = 15)
+    @ApiModelProperty(value = "关联租户")
+    private String tenantId;
+    /**
+     * 关联酒店
+     */
+    @Excel(name = "关联酒店", width = 15)
+    @ApiModelProperty(value = "关联酒店")
+    private String hotelId;
+    /**
+     * 预定id
+     */
+    @Excel(name = "预定id", width = 15)
+    @ApiModelProperty(value = "预定id")
+    private String meetingRoomScheduleId;
+    /**
+     * 支付方式
+     */
+    @Excel(name = "支付方式", width = 15)
+    @ApiModelProperty(value = "支付方式")
+    private String payWay;
+    /**
+     * 金额
+     */
+    @Excel(name = "金额", width = 15)
+    @ApiModelProperty(value = "金额")
+    private BigDecimal amount;
+
+    @TableField(exist = false)
+    private String payWayName;
+}

+ 5 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusRoomPayType.java

@@ -4,10 +4,8 @@ import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableLogic;
+
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -89,4 +87,7 @@ public class BusRoomPayType implements Serializable {
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "更新时间")
     private Date updateTime;
+
+    @TableField(exist = false)
+    private BigDecimal amount;
 }

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMeetingRoomScheduleOrderDetailMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.business.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.business.entity.BusMeetingRoomScheduleOrderDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: bus_meeting_room_schedule_order_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+public interface BusMeetingRoomScheduleOrderDetailMapper extends BaseMapper<BusMeetingRoomScheduleOrderDetail> {
+
+}

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMeetingRoomScheduleOrderDetailMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.demo.business.mapper.BusMeetingRoomScheduleOrderDetailMapper">
+
+</mapper>

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.business.service;
+
+import org.jeecg.modules.business.entity.BusMeetingRoomScheduleOrderDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: bus_meeting_room_schedule_order_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+public interface IBusMeetingRoomScheduleOrderDetailService extends IService<BusMeetingRoomScheduleOrderDetail> {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleOrderDetailServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.business.service.impl;
+
+import org.jeecg.modules.business.entity.BusMeetingRoomScheduleOrderDetail;
+import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleOrderDetailMapper;
+import org.jeecg.modules.business.service.IBusMeetingRoomScheduleOrderDetailService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: bus_meeting_room_schedule_order_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+@Service
+public class BusMeetingRoomScheduleOrderDetailServiceImpl extends ServiceImpl<BusMeetingRoomScheduleOrderDetailMapper, BusMeetingRoomScheduleOrderDetail> implements IBusMeetingRoomScheduleOrderDetailService {
+
+}

+ 57 - 7
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleServiceImpl.java

@@ -2,19 +2,18 @@ package org.jeecg.modules.business.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.collections.map.HashedMap;
+import org.apache.commons.lang3.ObjectUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
-import org.jeecg.modules.business.entity.BusMeetingRoom;
-import org.jeecg.modules.business.entity.BusMeetingRoomSchedule;
-import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
+import org.jeecg.modules.business.entity.*;
 import org.jeecg.modules.business.enums.CouponsKeyEnum;
-import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleDetailMapper;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleMapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.business.vo.BusMeetingKeyValueVo;
 import org.jeecg.modules.business.vo.BusMeetingRoomScheduleDetailVo;
 import org.jeecg.modules.business.vo.BusMeetingRoomScheduleVo;
@@ -23,6 +22,8 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import javax.transaction.Transactional;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -31,6 +32,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 /**
@@ -51,7 +53,8 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
 
         @Resource
         private BusMeetingRoomServiceImpl busMeetingRoomService;
-
+    @Resource
+    private BusMeetingRoomScheduleOrderDetailServiceImpl busMeetingRoomScheduleOrderDetailService;
 
     /**
      *
@@ -64,11 +67,17 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
         /**
          * 创建主表
          */
+
         BusMeetingRoomSchedule roomSchedule = new BusMeetingRoomSchedule();
 
         BeanUtil.copyProperties(dto,roomSchedule);
         roomSchedule.setTenantId(tenantId);
         roomSchedule.setCreateTime(LocalDateTime.now());
+        roomSchedule.setCreateId(TokenUtils.getAuthUser().getId());
+        roomSchedule.setPayType(1);
+        roomSchedule.setAmount(new BigDecimal(0));
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        roomSchedule.setOrderNo("HY"+sdf.format(System.currentTimeMillis()));
         meetingRoomScheduleMapper.insert(roomSchedule);
 
         List<BusMeetingRoomScheduleDetailDto> detailList = dto.getDetailList();
@@ -86,7 +95,6 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
             details.add(detail);
         });
         meetingRoomScheduleDetailService.saveBatchDetail(details);
-
         return Result.ok("创建成功!");
     }
 
@@ -175,4 +183,46 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
         });
         return Result.ok(vos);
     }
+
+    /**
+     * 结算
+     * @param busMeetingRoomSchedule
+     * @return
+     */
+    @org.springframework.transaction.annotation.Transactional(rollbackFor = Exception.class)
+    public Result settle(BusMeetingRoomSchedule busMeetingRoomSchedule) {
+        if (ObjectUtils.isEmpty(busMeetingRoomSchedule.getPaymentMethodList())) {
+            return Result.error("结算支付方式不能为空");
+        }
+        BigDecimal sum = busMeetingRoomSchedule.getAmount().subtract(busMeetingRoomSchedule.getPreferentialAmount());
+        if (sum.compareTo(BigDecimal.ZERO) < 0) {
+            return Result.error("优惠金额不能大于订单金额");
+        }
+        AtomicReference<BigDecimal> sumAmount = new AtomicReference<>(new BigDecimal(0));
+        busMeetingRoomSchedule.getPaymentMethodList().forEach(item -> {
+            sumAmount.set(sumAmount.get().add(item.getAmount()));
+        });
+        if (sumAmount.get().compareTo(sum) != 0) {
+            return Result.error("输入必须等于结账应收金额");
+        }
+        busMeetingRoomSchedule.setBillStatus(1);
+        meetingRoomScheduleMapper.updateById(busMeetingRoomSchedule);
+        LambdaQueryWrapper<BusMeetingRoomScheduleOrderDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(BusMeetingRoomScheduleOrderDetail::getMeetingRoomScheduleId, busMeetingRoomSchedule.getId());
+        busMeetingRoomScheduleOrderDetailService.remove(lambdaQueryWrapper);
+        List<BusMeetingRoomScheduleOrderDetail> busMeetingRoomScheduleOrderDetailList = new ArrayList<>();
+        busMeetingRoomSchedule.getPaymentMethodList().forEach(item -> {
+            if (item.getAmount().compareTo(BigDecimal.ZERO) > 0) {
+                BusMeetingRoomScheduleOrderDetail busMeetingRoomScheduleOrderDetail = new BusMeetingRoomScheduleOrderDetail();
+                busMeetingRoomScheduleOrderDetail.setHotelId(busMeetingRoomSchedule.getHotelId());
+                busMeetingRoomScheduleOrderDetail.setTenantId(busMeetingRoomSchedule.getTenantId());
+                busMeetingRoomScheduleOrderDetail.setMeetingRoomScheduleId(busMeetingRoomSchedule.getId());
+                busMeetingRoomScheduleOrderDetail.setAmount(item.getAmount());
+                busMeetingRoomScheduleOrderDetail.setPayWay(item.getId());
+                busMeetingRoomScheduleOrderDetailList.add(busMeetingRoomScheduleOrderDetail);
+            }
+        });
+        busMeetingRoomScheduleOrderDetailService.saveBatch(busMeetingRoomScheduleOrderDetailList);
+        return Result.ok("结算成功!");
+    }
 }

+ 9 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesServiceTypeSearchDto.java

@@ -0,0 +1,9 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+import org.jeecg.common.api.dto.BasePage;
+
+@Data
+public class CesServiceTypeSearchDto  extends BasePage {
+    private String hotelId;
+}

+ 13 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesAllDayPriceRuleController.java

@@ -130,7 +130,20 @@ public class CesAllDayPriceRuleController  extends JeecgController<CesAllDayPric
         }catch (Exception e){
             return Result.error(e.getMessage());
         }
+    }
 
+    @ApiOperation(value="获取", notes="获取")
+    @PostMapping(value = "/fetch")
+    public Result fetch(String hotelId){
+        if(StringUtils.isBlank(hotelId)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            return cesAllDayPriceRuleService.fetch(hotelId);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
     }
+
 }
 

+ 21 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesHydropowerCoalController.java

@@ -0,0 +1,21 @@
+package org.jeecg.modules.rooms.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 水电煤设置 前端控制器
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Controller
+@RequestMapping("/rooms/cesHydropowerCoal")
+public class CesHydropowerCoalController {
+
+}
+

+ 21 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesServiceMaintenanceController.java

@@ -0,0 +1,21 @@
+package org.jeecg.modules.rooms.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 服务维修 前端控制器
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Controller
+@RequestMapping("/rooms/cesServiceMaintenance")
+public class CesServiceMaintenanceController {
+
+}
+

+ 21 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesServiceTypeController.java

@@ -0,0 +1,21 @@
+package org.jeecg.modules.rooms.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 维修服务类型表 前端控制器
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Controller
+@RequestMapping("/rooms/cesServiceType")
+public class CesServiceTypeController {
+
+}
+

+ 82 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesHydropowerCoal.java

@@ -0,0 +1,82 @@
+package org.jeecg.modules.rooms.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 水电煤设置
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("ces_hydropower_coal")
+public class CesHydropowerCoal extends Model<CesHydropowerCoal> {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    private String hotelId;
+
+    private String name;
+
+    private Boolean appState;
+
+    private BigDecimal price;
+
+    private String bandId;
+
+    /**
+     * 创建时间
+     */
+    @TableField("creatAt")
+    private LocalDateTime creatAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField("updateAt")
+    private LocalDateTime updateAt;
+
+    /**
+     * 逻辑删除字段
+     */
+    private Boolean invalid;
+
+
+    public static final String ID = "id";
+
+    public static final String HOTEL_ID = "hotel_id";
+
+    public static final String NAME = "name";
+
+    public static final String APP_STATE = "app_state";
+
+    public static final String PRICE = "price";
+
+    public static final String BAND_ID = "band_id";
+
+    public static final String CREATAT = "creatAt";
+
+    public static final String UPDATEAT = "updateAt";
+
+    public static final String INVALID = "invalid";
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 96 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesServiceMaintenance.java

@@ -0,0 +1,96 @@
+package org.jeecg.modules.rooms.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 服务维修
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("ces_service_maintenance")
+public class CesServiceMaintenance extends Model<CesServiceMaintenance> {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    /**
+     * 酒店
+     */
+    private String hotelId;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 类型 1服务 2维修
+     */
+    private Integer type;
+
+    /**
+     * 服务模块 1 物品 2内容
+     */
+    private Integer moduleType;
+
+    /**
+     * 分类ID
+     */
+    private String classify;
+
+    /**
+     * 创建时间
+     */
+    @TableField("creatAt")
+    private LocalDateTime creatAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField("updateAt")
+    private LocalDateTime updateAt;
+
+    /**
+     * 逻辑删除字段
+     */
+    private Boolean invalid;
+
+
+    public static final String ID = "id";
+
+    public static final String HOTEL_ID = "hotel_id";
+
+    public static final String NAME = "name";
+
+    public static final String TYPE = "type";
+
+    public static final String MODULE_TYPE = "module_type";
+
+    public static final String CLASSIFY = "classify";
+
+    public static final String CREATAT = "creatAt";
+
+    public static final String UPDATEAT = "updateAt";
+
+    public static final String INVALID = "invalid";
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 65 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesServiceType.java

@@ -0,0 +1,65 @@
+package org.jeecg.modules.rooms.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 维修服务类型表
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("ces_service_type")
+public class CesServiceType extends Model<CesServiceType> {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    /**
+     * name
+     */
+    private String name;
+
+    private String hotelId;
+
+    @TableField("createAt")
+    private LocalDateTime createAt;
+
+    @TableField("updateAt")
+    private LocalDateTime updateAt;
+
+    /**
+     * 逻辑删除字段
+     */
+    private Boolean invalid;
+
+
+    public static final String ID = "id";
+
+    public static final String NAME = "name";
+    public static final String HOTEL_ID = "hotel_id";
+
+    public static final String CREATEAT = "createAt";
+
+    public static final String UPDATEAT = "updateAt";
+
+    public static final String INVALID = "invalid";
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesHydropowerCoalMapper.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.rooms.mapper;
+
+import org.jeecg.modules.rooms.entity.CesHydropowerCoal;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 水电煤设置 Mapper 接口
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+public interface CesHydropowerCoalMapper extends BaseMapper<CesHydropowerCoal> {
+
+}

+ 16 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesServiceMaintenanceMapper.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.rooms.mapper;
+
+import org.jeecg.modules.rooms.entity.CesServiceMaintenance;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 服务维修 Mapper 接口
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+public interface CesServiceMaintenanceMapper extends BaseMapper<CesServiceMaintenance> {
+
+}

+ 16 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesServiceTypeMapper.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.rooms.mapper;
+
+import org.jeecg.modules.rooms.entity.CesServiceType;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 维修服务类型表 Mapper 接口
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+public interface CesServiceTypeMapper extends BaseMapper<CesServiceType> {
+
+}

+ 37 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesAllDayPriceRuleServiceImpl.java

@@ -2,7 +2,9 @@ package org.jeecg.modules.rooms.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
@@ -18,6 +20,7 @@ import javax.annotation.Resource;
 import javax.transaction.Transactional;
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -31,10 +34,15 @@ import java.util.List;
 public class CesAllDayPriceRuleServiceImpl extends ServiceImpl<CesAllDayPriceRuleMapper, CesAllDayPriceRule> implements IService<CesAllDayPriceRule> {
 
     @Resource
-    CesAllDayPriceRuleMapper cesAllDayPriceRuleMapper;
+    private CesAllDayPriceRuleMapper cesAllDayPriceRuleMapper;
     @Resource
-    CesAllDayRuleMinuteServiceImpl cesAllDayRuleMinuteService;
+    private CesAllDayRuleMinuteServiceImpl cesAllDayRuleMinuteService;
 
+    /**
+     * 修改全天房设置
+     * @param cesAllDayPriceRuleDto
+     * @return
+     */
     @Transactional(rollbackOn = Exception.class)
     public Result modifyWholeDayUnifyPrice(CesAllDayPriceRuleDto cesAllDayPriceRuleDto) {
         CesAllDayPriceRule cesAllDayPriceRule = cesAllDayPriceRuleMapper.selectById(cesAllDayPriceRuleDto.getId());
@@ -61,4 +69,31 @@ public class CesAllDayPriceRuleServiceImpl extends ServiceImpl<CesAllDayPriceRul
         }
         return Result.ok("成功!");
     }
+
+
+    /**
+     * 查询
+     * @param hotelId
+     * @return
+     */
+    public Result fetch(String hotelId){
+        Map<String,Object> map =new HashedMap();
+        CesAllDayPriceRule cesAllDayPriceRule =  cesAllDayPriceRuleMapper.selectOne(Wrappers.<CesAllDayPriceRule>lambdaQuery().eq(CesAllDayPriceRule::getHotelId,hotelId).eq(CesAllDayPriceRule::getInvalid,false));
+        if(ObjectUtils.isEmpty(cesAllDayPriceRule)) return Result.ok("欧克");
+
+        //分钟加收
+        if (CouponEnums.ALLDAYROOMRULETIMEOUT.MINUTE.code() == cesAllDayPriceRule.getTimeOutRule().intValue()){
+            //按房型设置下
+            if(CouponEnums.ALLDAYROOMRULETYPEDETAILS.LAYOUT.code() == cesAllDayPriceRule.getRuleType().intValue()){
+                List<CesAllDayRuleMinute> cesAllDayRuleMinutes =  cesAllDayRuleMinuteService.getRuleMinutesByHotelId(hotelId);
+                map.put("cesAllMinutes",cesAllDayRuleMinutes);
+            }
+        }
+        map.put("cesAllDayPriceRule",cesAllDayPriceRule);
+        return Result.ok(map);
+    }
+
+
+
+
 }

+ 45 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesHydropowerCoalServiceImpl.java

@@ -0,0 +1,45 @@
+package org.jeecg.modules.rooms.service;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.rooms.entity.CesHydropowerCoal;
+import org.jeecg.modules.rooms.mapper.CesHydropowerCoalMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 水电煤设置 服务实现类
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Service
+public class CesHydropowerCoalServiceImpl extends ServiceImpl<CesHydropowerCoalMapper, CesHydropowerCoal> implements IService<CesHydropowerCoal> {
+
+    @Resource
+    private CesHydropowerCoalMapper cesHydropowerCoalMapper;
+
+
+    public Result fetch(String hotelId){
+        List<CesHydropowerCoal> list = cesHydropowerCoalMapper.selectList(Wrappers.<CesHydropowerCoal>lambdaQuery().eq(CesHydropowerCoal::getHotelId,hotelId).eq(CesHydropowerCoal::getInvalid,false));
+        return Result.ok(list);
+    }
+
+    /**
+     * 修改水电煤设置
+     * @param hydropowerCoals
+     * @return
+     */
+    public Result modify(List<CesHydropowerCoal> hydropowerCoals){
+            saveOrUpdateBatch(hydropowerCoals);
+            return Result.ok("成功!");
+    }
+
+
+}

+ 111 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesServiceMaintenanceServiceImpl.java

@@ -0,0 +1,111 @@
+package org.jeecg.modules.rooms.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.ObjectUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.rooms.entity.CesServiceMaintenance;
+import org.jeecg.modules.rooms.mapper.CesServiceMaintenanceMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 服务维修 服务实现类
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Service
+public class CesServiceMaintenanceServiceImpl extends ServiceImpl<CesServiceMaintenanceMapper, CesServiceMaintenance> implements IService<CesServiceMaintenance> {
+        @Resource
+        private CesServiceMaintenanceMapper cesServiceMaintenanceMapper;
+
+
+    /**
+     *
+     * @param maintenance
+     * @return
+     */
+    public Result create(CesServiceMaintenance maintenance){
+        QueryWrapper<CesServiceMaintenance> queryWrapper =new QueryWrapper<>();
+        queryWrapper.eq(CesServiceMaintenance.NAME,maintenance.getName());
+        queryWrapper.eq(CesServiceMaintenance.HOTEL_ID,maintenance.getHotelId());
+        queryWrapper.eq(CesServiceMaintenance.INVALID,false);
+
+        CesServiceMaintenance exit = cesServiceMaintenanceMapper.selectOne(queryWrapper);
+        if(!ObjectUtils.isEmpty(exit)) return Result.error("名称重复!");
+
+        maintenance.setCreatAt(LocalDateTime.now());
+        maintenance.setUpdateAt(LocalDateTime.now());
+        maintenance.setInvalid(false);
+        save(maintenance);
+        return Result.ok("成功!");
+    }
+
+    /**
+     * 修改
+     * @param maintenance
+     * @return
+     */
+    public Result modify(CesServiceMaintenance maintenance){
+        CesServiceMaintenance serviceMaintenance = cesServiceMaintenanceMapper.selectOne(Wrappers.<CesServiceMaintenance>lambdaQuery().eq(CesServiceMaintenance::getId,maintenance.getId()));
+       if(ObjectUtils.isEmpty(serviceMaintenance)) return Result.error("数据未找到!");
+       if(!serviceMaintenance.getName().equals(maintenance.getName())){
+           QueryWrapper<CesServiceMaintenance> queryWrapper =new QueryWrapper<>();
+           queryWrapper.eq(CesServiceMaintenance.NAME,maintenance.getName());
+           queryWrapper.eq(CesServiceMaintenance.HOTEL_ID,maintenance.getHotelId());
+           queryWrapper.eq(CesServiceMaintenance.INVALID,false);
+           queryWrapper.ne(CesServiceMaintenance.ID,serviceMaintenance.getId());
+           CesServiceMaintenance cesServiceMaintenance = cesServiceMaintenanceMapper.selectOne(queryWrapper);
+           if(!ObjectUtils.isEmpty(cesServiceMaintenance)) return Result.error("有重复名称的数据!");
+       }
+
+        serviceMaintenance.setUpdateAt(LocalDateTime.now());
+        saveOrUpdate(serviceMaintenance);
+        return Result.ok("成功!");
+    }
+
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    public Result delete(String id,String hotelId){
+        CesServiceMaintenance serviceMaintenance = cesServiceMaintenanceMapper.selectOne(Wrappers.<CesServiceMaintenance>lambdaQuery().eq(CesServiceMaintenance::getId,id).eq(CesServiceMaintenance::getHotelId,hotelId).eq(CesServiceMaintenance::getInvalid,false));
+        if(ObjectUtils.isEmpty(serviceMaintenance)) return Result.error("数据未找到!");
+        serviceMaintenance.setUpdateAt(LocalDateTime.now());
+        serviceMaintenance.setInvalid(true);
+        saveOrUpdate(serviceMaintenance);
+        return Result.ok("删除成功!");
+    }
+
+
+    /**
+     * 批量删除
+     * @param ids
+     * @return
+     */
+    public Result deleteBatch(List<String> ids,String hotelId){
+        List<CesServiceMaintenance> list = cesServiceMaintenanceMapper.selectList(Wrappers.<CesServiceMaintenance>lambdaQuery().eq(CesServiceMaintenance::getInvalid,false).eq(CesServiceMaintenance::getHotelId,hotelId).in(CesServiceMaintenance::getId,ids));
+        if(CollectionUtil.isEmpty(list)) return Result.ok("删除成功!");
+        list.forEach(v -> {
+            v.setUpdateAt(LocalDateTime.now());
+            v.setInvalid(true);
+        });
+
+        saveOrUpdateBatch(list);
+        return Result.ok("删除成功!");
+    }
+
+
+
+}

+ 130 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesServiceTypeServiceImpl.java

@@ -0,0 +1,130 @@
+package org.jeecg.modules.rooms.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.collections.map.HashedMap;
+import org.apache.commons.lang3.ObjectUtils;
+import org.jeecg.common.api.dto.BasePage;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.rooms.DTO.CesServiceTypeSearchDto;
+import org.jeecg.modules.rooms.entity.CesRooms;
+import org.jeecg.modules.rooms.entity.CesServiceMaintenance;
+import org.jeecg.modules.rooms.entity.CesServiceType;
+import org.jeecg.modules.rooms.mapper.CesServiceTypeMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 维修服务类型表 服务实现类
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-16
+ */
+@Service
+public class CesServiceTypeServiceImpl extends ServiceImpl<CesServiceTypeMapper, CesServiceType> implements IService<CesServiceType> {
+    @Resource
+    private CesServiceTypeMapper serviceTypeMapper;
+
+
+    public Result fetch(CesServiceTypeSearchDto dto){
+        QueryWrapper<CesServiceType> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(CesServiceType.HOTEL_ID,dto.getHotelId());
+        queryWrapper.eq(CesServiceType.INVALID,false);
+        IPage<CesServiceType> dataPage = serviceTypeMapper.selectPage(new Page<>(dto.getPageNo().intValue(),dto.getPageSize().intValue()),queryWrapper);
+        Map<String,Object> map = new HashMap<>();
+        map.put("records",dataPage.getRecords());
+        map.put("total",dataPage.getTotal());
+        return Result.OK(map);
+    }
+
+    /**
+     * 创建
+     * @param cesServiceType
+     * @return
+     */
+    public Result create(CesServiceType cesServiceType){
+        QueryWrapper<CesServiceType> queryWrapper =new QueryWrapper<>();
+        queryWrapper.eq(CesServiceType.NAME,cesServiceType.getName());
+        queryWrapper.eq(CesServiceType.HOTEL_ID,cesServiceType.getHotelId());
+        queryWrapper.eq(CesServiceType.INVALID,false);
+
+        CesServiceType exit = serviceTypeMapper.selectOne(queryWrapper);
+        if(!ObjectUtils.isEmpty(exit)) return Result.error("名称重复!");
+
+        cesServiceType.setCreateAt(LocalDateTime.now());
+        cesServiceType.setUpdateAt(LocalDateTime.now());
+        cesServiceType.setInvalid(false);
+        save(cesServiceType);
+        return Result.ok("成功!");
+    }
+
+
+
+    /**
+     * 修改
+     * @param cesServiceType
+     * @return
+     */
+    public Result modify(CesServiceType cesServiceType){
+        CesServiceType type = serviceTypeMapper.selectOne(Wrappers.<CesServiceType>lambdaQuery().eq(CesServiceType::getId,cesServiceType.getId()));
+        if(ObjectUtils.isEmpty(type)) return Result.error("数据未找到!");
+        if(!type.getName().equals(type.getName())){
+            QueryWrapper<CesServiceType> queryWrapper =new QueryWrapper<>();
+            queryWrapper.eq(CesServiceType.NAME,type.getName());
+            queryWrapper.eq(CesServiceType.HOTEL_ID,type.getHotelId());
+            queryWrapper.eq(CesServiceType.INVALID,false);
+            queryWrapper.ne(CesServiceType.ID,type.getId());
+            CesServiceType serviceType = serviceTypeMapper.selectOne(queryWrapper);
+            if(!ObjectUtils.isEmpty(serviceType)) return Result.error("有重复名称的数据!");
+        }
+        cesServiceType.setUpdateAt(LocalDateTime.now());
+        saveOrUpdate(cesServiceType);
+        return Result.ok("成功!");
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    public Result delete(String id,String hotelId){
+        CesServiceType cesServiceType = serviceTypeMapper.selectOne(Wrappers.<CesServiceType>lambdaQuery().eq(CesServiceType::getId,id).eq(CesServiceType::getHotelId,hotelId).eq(CesServiceType::getInvalid,false));
+        if(ObjectUtils.isEmpty(cesServiceType)) return Result.error("数据未找到!");
+        cesServiceType.setUpdateAt(LocalDateTime.now());
+        cesServiceType.setInvalid(true);
+        saveOrUpdate(cesServiceType);
+        return Result.ok("删除成功!");
+    }
+
+
+    /**
+     * 批量删除
+     * @param ids
+     * @return
+     */
+    public Result deleteBatch(List<String> ids, String hotelId){
+        List<CesServiceType> list = serviceTypeMapper.selectList(Wrappers.<CesServiceType>lambdaQuery().eq(CesServiceType::getInvalid,false).eq(CesServiceType::getHotelId,hotelId).in(CesServiceType::getId,ids));
+        if(CollectionUtil.isEmpty(list)) return Result.ok("删除成功!");
+        list.forEach(v -> {
+            v.setUpdateAt(LocalDateTime.now());
+            v.setInvalid(true);
+        });
+
+        saveOrUpdateBatch(list);
+        return Result.ok("删除成功!");
+    }
+
+
+}