Просмотр исходного кода

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

qh лет назад: 2
Родитель
Сommit
5e396d89d7
36 измененных файлов с 1587 добавлено и 19 удалено
  1. 332 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusDoorLockController.java
  2. 254 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMealCouponController.java
  3. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleController.java
  4. 206 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusOrderSoundController.java
  5. 0 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusRoomPayTypeController.java
  6. 8 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/DoorLockDto.java
  7. 95 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusDoorLock.java
  8. 92 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMealCoupon.java
  9. 85 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusOrderSound.java
  10. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusDoorLockMapper.java
  11. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMarketMealCouponsUsedMapper.java
  12. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMealCouponMapper.java
  13. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusOrderSoundMapper.java
  14. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusDoorLockMapper.xml
  15. 2 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMarketMealCouponsMapper.xml
  16. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMealCouponMapper.xml
  17. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusOrderSoundMapper.xml
  18. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusDoorLockService.java
  19. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMealCouponService.java
  20. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusOrderSoundService.java
  21. 42 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusDoorLockServiceImpl.java
  22. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMealCouponServiceImpl.java
  23. 7 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleDetailServiceImpl.java
  24. 31 9
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleServiceImpl.java
  25. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusOrderSoundServiceImpl.java
  26. 9 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesMealCouponDto.java
  27. 8 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesMealCouponSearchDto.java
  28. 11 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesServiceMaintenanceSearchDto.java
  29. 63 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesMealCouponController.java
  30. 12 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomBuildingFloorController.java
  31. 25 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomsController.java
  32. 79 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesMealCouponServiceImpl.java
  33. 11 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomBuildingFloorServiceImpl.java
  34. 28 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomsServiceImpl.java
  35. 30 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesServiceMaintenanceServiceImpl.java
  36. 6 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesServiceTypeServiceImpl.java

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

@@ -0,0 +1,332 @@
+package org.jeecg.modules.business.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.common.util.oConvertUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.modules.business.dto.DoorLockDto;
+import org.jeecg.modules.business.entity.BusDictItem;
+import org.jeecg.modules.business.entity.BusDoorLock;
+import org.jeecg.modules.business.entity.BusOrderSound;
+import org.jeecg.modules.business.service.IBusDoorLockService;
+import org.jeecg.modules.rooms.entity.CesRoomBuildingFloor;
+import org.jeecg.modules.rooms.entity.CesRooms;
+import org.jeecg.modules.rooms.service.CesRoomBuildingFloorServiceImpl;
+import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
+import org.jeecg.modules.system.entity.SysTenant;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: 门锁管理
+ * @Author: jeecg-boot
+ * @Date:   2023-03-20
+ * @Version: V1.0
+ */
+@Api(tags="门锁管理")
+@RestController
+@RequestMapping("/business/busDoorLock")
+@Slf4j
+public class BusDoorLockController extends JeecgController<BusDoorLock, IBusDoorLockService> {
+	@Autowired
+	private IBusDoorLockService busDoorLockService;
+
+	 @Resource
+	 private CesRoomBuildingFloorServiceImpl buildingFloorService;
+
+	 @Resource
+	 private CesRoomsServiceImpl roomsService;
+
+	/**
+	 * 分页列表查询
+	 *
+	 * @param busDoorLock
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "门锁管理-分页列表查询")
+	@ApiOperation(value="门锁管理-分页列表查询", notes="门锁管理-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<BusDoorLock>> queryPageList(BusDoorLock busDoorLock,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<BusDoorLock> queryWrapper = QueryGenerator.initQueryWrapper(busDoorLock, req.getParameterMap());
+		Page<BusDoorLock> page = new Page<BusDoorLock>(pageNo, pageSize);
+		IPage<BusDoorLock> pageList = busDoorLockService.page(page, queryWrapper);
+		pageList.getRecords().forEach(item->{
+			CesRoomBuildingFloor buildInfo = buildingFloorService.getById(item.getBuildId());
+			if (buildInfo != null) {
+				item.setBuildName(buildInfo.getName());
+			}
+			CesRoomBuildingFloor floorInfo = buildingFloorService.getById(item.getFloorId());
+			if (floorInfo != null) {
+				item.setFloorName(floorInfo.getName());
+			}
+			CesRooms roomInfo = roomsService.getById(item.getRoomId());
+			if (roomInfo != null) {
+				item.setRoomNumber(roomInfo.getPrefix()+roomInfo.getName());
+			}
+		});
+		return Result.OK(pageList);
+	}
+
+	/**
+	 *   添加
+	 *
+	 * @param busDoorLock
+	 * @return
+	 */
+	@AutoLog(value = "门锁管理-添加")
+	@ApiOperation(value="门锁管理-添加", notes="门锁管理-添加")
+	//@RequiresPermissions("business:bus_door_lock_info:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody BusDoorLock busDoorLock) {
+		busDoorLock.setStatus(1);
+		busDoorLock.setDelFlag(CommonConstant.DEL_FLAG_0);
+		if(busDoorLock.getTenantId() == null || busDoorLock.getTenantId().equals("")){
+			LoginUser user = TokenUtils.getAuthUser();
+			if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
+				busDoorLock.setTenantId(user.getRelTenantIds());
+			} else {
+				throw new JeecgBootException("当前登录人租户信息错误");
+			}
+		}
+		//房间号不能重复
+		LambdaQueryWrapper<BusDoorLock> queryWrapper = new LambdaQueryWrapper<BusDoorLock>();
+		queryWrapper.eq(BusDoorLock::getHotelId,busDoorLock.getHotelId());
+		queryWrapper.eq(BusDoorLock::getBuildId,busDoorLock.getBuildId());
+		queryWrapper.eq(BusDoorLock::getFloorId,busDoorLock.getFloorId());
+		queryWrapper.eq(BusDoorLock::getRoomId,busDoorLock.getRoomId());
+		Long num = Long.valueOf(0);
+		num = busDoorLockService.count(queryWrapper);
+		if (num > 0){
+			return Result.error("此房号已存在!");
+		}
+		busDoorLockService.save(busDoorLock);
+		return Result.OK("添加成功!");
+	}
+
+	 /**
+	  *   批量添加
+	  *
+	  * @param doorLockDto
+	  * @return
+	  */
+	 int associationIndex;
+	 @AutoLog(value = "门锁管理-批量添加")
+	 @ApiOperation(value="门锁管理-批量添加", notes="门锁管理-批量添加")
+	 //@RequiresPermissions("business:bus_door_lock_info:add")
+	 @PostMapping(value = "/batchAdd")
+	 public Result<String> batchAdd(@RequestBody DoorLockDto doorLockDto) {
+		 LoginUser user = TokenUtils.getAuthUser();
+		 if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
+		 } else {
+			 throw new JeecgBootException("当前登录人租户信息错误");
+		 }
+		 if(!oConvertUtils.isNotEmpty(doorLockDto.radioType)) {
+			 throw new JeecgBootException("规则选择错误");
+		 }
+
+		 //获取到该酒店下已有门锁信息,删除
+		 busDoorLockService.deleteByHotelId(doorLockDto.hotelId);
+
+		 //获取酒店所有房间信息
+		 List<CesRooms> rooms = roomsService.getByHotelId(doorLockDto.hotelId);
+
+		 List<BusDoorLock> doorLocks = new ArrayList<>();
+		 if (doorLockDto.radioType.equals("4")){
+			 associationIndex = Integer.parseInt(doorLockDto.front);
+		 }
+		 rooms.forEach((item) ->{
+			 BusDoorLock doorLock = new BusDoorLock();
+			 doorLock.setStatus(1);
+			 doorLock.setDelFlag(CommonConstant.DEL_FLAG_0);
+			 doorLock.setTenantId(user.getRelTenantIds());
+			 doorLock.setHotelId(doorLockDto.hotelId);
+			 doorLock.setBuildId(item.getBuildId());
+			 doorLock.setFloorId(item.getFloorId());
+			 doorLock.setRoomId(item.getId());
+			 String association = "";
+			 String roomNumber = item.getPrefix()+item.getName();
+
+			 switch (doorLockDto.radioType) {
+				 case "1":
+					 association = roomNumber;
+					 break;
+				 case "2":
+					 association = doorLockDto.front + roomNumber + doorLockDto.after;
+					 break;
+				 case "3":
+					 association = doorLockDto.front + roomNumber.substring(1) + doorLockDto.after;
+					 break;
+				 case "4":
+					 association = associationIndex + "";
+					 associationIndex = associationIndex + 1;
+					 break;
+			 }
+			 doorLock.setAssociationNumber(association);
+			 doorLocks.add(doorLock);
+		 });
+		 busDoorLockService.saveBatch(doorLocks);
+		 return Result.OK("添加成功!");
+	 }
+
+
+
+	/**
+	 *  编辑
+	 *
+	 * @param busDoorLock
+	 * @return
+	 */
+	@AutoLog(value = "门锁管理-编辑")
+	@ApiOperation(value="门锁管理-编辑", notes="门锁管理-编辑")
+	//@RequiresPermissions("business:bus_door_lock_info:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody BusDoorLock busDoorLock) {
+		if(busDoorLock.getTenantId() == null || busDoorLock.getTenantId().equals("")){
+			LoginUser user = TokenUtils.getAuthUser();
+			if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
+				busDoorLock.setTenantId(user.getRelTenantIds());
+			} else {
+				throw new JeecgBootException("当前登录人租户信息错误");
+			}
+		}
+		//房间号不能重复
+		LambdaQueryWrapper<BusDoorLock> queryWrapper = new LambdaQueryWrapper<BusDoorLock>();
+		queryWrapper.eq(BusDoorLock::getHotelId,busDoorLock.getHotelId());
+		queryWrapper.eq(BusDoorLock::getBuildId,busDoorLock.getBuildId());
+		queryWrapper.eq(BusDoorLock::getFloorId,busDoorLock.getFloorId());
+		queryWrapper.eq(BusDoorLock::getRoomId,busDoorLock.getRoomId());
+
+		if (StringUtils.isNotBlank(busDoorLock.getId())) {
+			// 编辑页面校验
+			queryWrapper.ne(BusDoorLock::getId,busDoorLock.getId());
+		}
+		Long num = Long.valueOf(0);
+		num = busDoorLockService.count(queryWrapper);
+		if (num > 0){
+			return Result.error("此房号已存在!");
+		}
+		BusDoorLock editModel = busDoorLockService.getById(busDoorLock.getId());
+		editModel.setBuildId(busDoorLock.getBuildId());
+		editModel.setFloorId(busDoorLock.getFloorId());
+		editModel.setRoomId(busDoorLock.getRoomId());
+		editModel.setAssociationNumber(busDoorLock.getAssociationNumber());
+		busDoorLockService.updateById(editModel);
+		return Result.OK("编辑成功!");
+	}
+
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "门锁管理-通过id删除")
+	@ApiOperation(value="门锁管理-通过id删除", notes="门锁管理-通过id删除")
+	//@RequiresPermissions("business:bus_door_lock_info:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		busDoorLockService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "门锁管理-批量删除")
+	@ApiOperation(value="门锁管理-批量删除", notes="门锁管理-批量删除")
+	//@RequiresPermissions("business:bus_door_lock_info:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.busDoorLockService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "门锁管理-通过id查询")
+	@ApiOperation(value="门锁管理-通过id查询", notes="门锁管理-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<BusDoorLock> queryById(@RequestParam(name="id",required=true) String id) {
+		BusDoorLock busDoorLock = busDoorLockService.getById(id);
+		if(busDoorLock==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(busDoorLock);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param busDoorLock
+    */
+    //@RequiresPermissions("business:bus_door_lock_info:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, BusDoorLock busDoorLock) {
+        return super.exportXls(request, busDoorLock, BusDoorLock.class, "门锁管理");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("business:bus_door_lock_info:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, BusDoorLock.class);
+    }
+
+}

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

@@ -0,0 +1,254 @@
+package org.jeecg.modules.business.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.Enum.ResultCode;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.common.util.oConvertUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.modules.business.entity.BusMealCoupon;
+import org.jeecg.modules.business.entity.BusOtherCheckout;
+import org.jeecg.modules.business.entity.BusRoomPayType;
+import org.jeecg.modules.business.entity.BusWaiter;
+import org.jeecg.modules.business.service.IBusMealCouponService;
+import org.jeecg.modules.rooms.Vo.SelectVo;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: 餐券
+ * @Author: jeecg-boot
+ * @Date:   2023-03-21
+ * @Version: V1.0
+ */
+@Api(tags="餐券")
+@RestController
+@RequestMapping("/business/busMealCoupon")
+@Slf4j
+public class BusMealCouponController extends JeecgController<BusMealCoupon, IBusMealCouponService> {
+	@Autowired
+	private IBusMealCouponService busMealCouponService;
+
+	/**
+	 * 分页列表查询
+	 *
+	 * @param busMealCoupon
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "餐券-分页列表查询")
+	@ApiOperation(value="餐券-分页列表查询", notes="餐券-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<BusMealCoupon>> queryPageList(BusMealCoupon busMealCoupon,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<BusMealCoupon> queryWrapper = QueryGenerator.initQueryWrapper(busMealCoupon, req.getParameterMap());
+		Page<BusMealCoupon> page = new Page<BusMealCoupon>(pageNo, pageSize);
+		IPage<BusMealCoupon> pageList = busMealCouponService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+	 *   添加
+	 *
+	 * @param busMealCoupon
+	 * @return
+	 */
+	@AutoLog(value = "餐券-添加")
+	@ApiOperation(value="餐券-添加", notes="餐券-添加")
+	//@RequiresPermissions("business:bus_meal_coupon_info:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody BusMealCoupon busMealCoupon) {
+		busMealCoupon.setDelFlag(CommonConstant.DEL_FLAG_0);
+		if(busMealCoupon.getTenantId() == null || busMealCoupon.getTenantId().equals("")){
+			LoginUser user = TokenUtils.getAuthUser();
+			if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
+				busMealCoupon.setTenantId(user.getRelTenantIds());
+			} else {
+				throw new JeecgBootException("当前登录人租户信息错误");
+			}
+		}
+		busMealCouponService.save(busMealCoupon);
+		return Result.OK("添加成功!");
+	}
+
+	/**
+	 *  编辑
+	 *
+	 * @param busMealCoupon
+	 * @return
+	 */
+	@AutoLog(value = "餐券-编辑")
+	@ApiOperation(value="餐券-编辑", notes="餐券-编辑")
+	//@RequiresPermissions("business:bus_meal_coupon_info:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody BusMealCoupon busMealCoupon) {
+		if(busMealCoupon.getTenantId() == null || busMealCoupon.getTenantId().equals("")){
+			LoginUser user = TokenUtils.getAuthUser();
+			if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
+				busMealCoupon.setTenantId(user.getRelTenantIds());
+			} else {
+				throw new JeecgBootException("当前登录人租户信息错误");
+			}
+		}
+		BusMealCoupon editModel = busMealCouponService.getById(busMealCoupon.getId());
+		editModel.setName(busMealCoupon.getName());
+		editModel.setStatus(busMealCoupon.getStatus());
+		editModel.setAutomaticGrant(busMealCoupon.getAutomaticGrant());
+		editModel.setStartTime(busMealCoupon.getStartTime());
+		editModel.setEndTime(busMealCoupon.getEndTime());
+		busMealCouponService.updateById(editModel);
+//		busMealCouponService.updateById(busMealCoupon);
+		return Result.OK("编辑成功!");
+	}
+
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "餐券-通过id删除")
+	@ApiOperation(value="餐券-通过id删除", notes="餐券-通过id删除")
+	//@RequiresPermissions("business:bus_meal_coupon_info:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		busMealCouponService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "餐券-批量删除")
+	@ApiOperation(value="餐券-批量删除", notes="餐券-批量删除")
+	//@RequiresPermissions("business:bus_meal_coupon_info:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.busMealCouponService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "餐券-通过id查询")
+	@ApiOperation(value="餐券-通过id查询", notes="餐券-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<BusMealCoupon> queryById(@RequestParam(name="id",required=true) String id) {
+		BusMealCoupon busMealCoupon = busMealCouponService.getById(id);
+		if(busMealCoupon==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(busMealCoupon);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param busMealCoupon
+    */
+    //@RequiresPermissions("business:bus_meal_coupon_info:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, BusMealCoupon busMealCoupon) {
+        return super.exportXls(request, busMealCoupon, BusMealCoupon.class, "餐券");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("business:bus_meal_coupon_info:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, BusMealCoupon.class);
+    }
+
+	 /**
+	  * 列表查询
+	  *
+	  * @param busMealCoupon
+	  * @param req
+	  * @return
+	  */
+	 //@AutoLog(value = "餐券-列表查询")
+	 @ApiOperation(value="餐券-列表查询", notes="餐券-列表查询")
+	 @GetMapping(value = "/queryList")
+	 public Result<List<BusMealCoupon>> queryList(BusMealCoupon busMealCoupon, HttpServletRequest req) {
+		 QueryWrapper<BusMealCoupon> queryWrapper = QueryGenerator.initQueryWrapper(busMealCoupon, req.getParameterMap());
+		 LoginUser user = TokenUtils.getAuthUser();
+		 if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
+			 queryWrapper.eq("tenant_id",user.getRelTenantIds());
+		 }
+		 queryWrapper.eq("del_flag",0);
+		 List<BusMealCoupon> list = busMealCouponService.list(queryWrapper);
+		 return Result.OK(list);
+	 }
+
+	 /**
+	  * 通过hotelId查询
+	  *
+	  * @param hotelId
+	  * @return
+	  */
+	 //@AutoLog(value = "餐券-通过hotelId查询")
+	 @ApiOperation(value="餐券-通过hotelId查询", notes="餐券-通过hotelId查询")
+	 @GetMapping(value = "/queryByHotelId")
+	 public Result<List<BusMealCoupon>> queryByHotelId(@RequestParam(name="hotelId",required=true) String hotelId) {
+		 QueryWrapper<BusMealCoupon> queryWrapper = new QueryWrapper<BusMealCoupon>();
+		 queryWrapper.eq("hotel_id", hotelId);
+		 queryWrapper.eq("del_flag",0);
+		 List<BusMealCoupon> resultModel = busMealCouponService.list(queryWrapper);
+		 if(resultModel==null) {
+			 return Result.error("");
+		 }
+		 return Result.OK(resultModel);
+	 }
+}

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

@@ -90,7 +90,7 @@ public class BusMeetingRoomScheduleController {
         try {
             return roomScheduleService.create(dto);
         }catch (Exception e){
-            return Result.error(e.getMessage());
+            return Result.error("数据重复,或者错误!");
         }
     }
 

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

@@ -0,0 +1,206 @@
+package org.jeecg.modules.business.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.common.util.oConvertUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.modules.business.entity.BusAdvert;
+import org.jeecg.modules.business.entity.BusOrderSound;
+import org.jeecg.modules.business.service.IBusOrderSoundService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: 订单铃声
+ * @Author: jeecg-boot
+ * @Date:   2023-03-17
+ * @Version: V1.0
+ */
+@Api(tags="订单铃声")
+@RestController
+@RequestMapping("/business/busOrderSound")
+@Slf4j
+public class BusOrderSoundController extends JeecgController<BusOrderSound, IBusOrderSoundService> {
+	@Autowired
+	private IBusOrderSoundService busOrderSoundService;
+
+	/**
+	 * 分页列表查询
+	 *
+	 * @param busOrderSound
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "订单铃声-分页列表查询")
+	@ApiOperation(value="订单铃声-分页列表查询", notes="订单铃声-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<BusOrderSound>> queryPageList(BusOrderSound busOrderSound,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<BusOrderSound> queryWrapper = QueryGenerator.initQueryWrapper(busOrderSound, req.getParameterMap());
+		Page<BusOrderSound> page = new Page<BusOrderSound>(pageNo, pageSize);
+		IPage<BusOrderSound> pageList = busOrderSoundService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+	 *   添加
+	 *
+	 * @param busOrderSound
+	 * @return
+	 */
+	@AutoLog(value = "订单铃声-添加")
+	@ApiOperation(value="订单铃声-添加", notes="订单铃声-添加")
+	//@RequiresPermissions("business:bus_order_sound_info:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody BusOrderSound busOrderSound) {
+		busOrderSound.setStatus(1);
+		busOrderSound.setDelFlag(CommonConstant.DEL_FLAG_0);
+		if(busOrderSound.getTenantId() == null || busOrderSound.getTenantId().equals("")){
+			LoginUser user = TokenUtils.getAuthUser();
+			if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
+				busOrderSound.setTenantId(user.getRelTenantIds());
+			} else {
+				throw new JeecgBootException("当前登录人租户信息错误");
+			}
+		}
+		busOrderSoundService.save(busOrderSound);
+		return Result.OK("添加成功!");
+	}
+
+	/**
+	 *  编辑
+	 *
+	 * @param busOrderSound
+	 * @return
+	 */
+	@AutoLog(value = "订单铃声-编辑")
+	@ApiOperation(value="订单铃声-编辑", notes="订单铃声-编辑")
+	//@RequiresPermissions("business:bus_order_sound_info:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody BusOrderSound busOrderSound) {
+		if(busOrderSound.getTenantId() == null || busOrderSound.getTenantId().equals("")){
+			LoginUser user = TokenUtils.getAuthUser();
+			if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
+				busOrderSound.setTenantId(user.getRelTenantIds());
+			} else {
+				throw new JeecgBootException("当前登录人租户信息错误");
+			}
+		}
+		BusOrderSound editModel = busOrderSoundService.getById(busOrderSound.getId());
+		editModel.setName(busOrderSound.getName());
+		editModel.setType(busOrderSound.getType());
+		editModel.setPath(busOrderSound.getPath());
+//		editModel.setStatus(busOrderSound.getStatus());
+		busOrderSoundService.updateById(editModel);
+		return Result.OK("编辑成功!");
+	}
+
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "订单铃声-通过id删除")
+	@ApiOperation(value="订单铃声-通过id删除", notes="订单铃声-通过id删除")
+	//@RequiresPermissions("business:bus_order_sound_info:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		busOrderSoundService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "订单铃声-批量删除")
+	@ApiOperation(value="订单铃声-批量删除", notes="订单铃声-批量删除")
+	//@RequiresPermissions("business:bus_order_sound_info:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.busOrderSoundService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "订单铃声-通过id查询")
+	@ApiOperation(value="订单铃声-通过id查询", notes="订单铃声-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<BusOrderSound> queryById(@RequestParam(name="id",required=true) String id) {
+		BusOrderSound busOrderSound = busOrderSoundService.getById(id);
+		if(busOrderSound==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(busOrderSound);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param busOrderSound
+    */
+    //@RequiresPermissions("business:bus_order_sound_info:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, BusOrderSound busOrderSound) {
+        return super.exportXls(request, busOrderSound, BusOrderSound.class, "订单铃声");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("business:bus_order_sound_info:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, BusOrderSound.class);
+    }
+
+}

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

@@ -105,7 +105,6 @@ public class BusRoomPayTypeController extends JeecgController<BusRoomPayType, IB
 		 if(user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")){
 			 queryWrapper.eq("tenant_id",user.getRelTenantIds());
 		 }
-		 queryWrapper.eq("status",1);
 		 queryWrapper.eq("del_flag",0);
 		 List<BusRoomPayType> list = busRoomPayTypeService.list(queryWrapper);
 		 return Result.OK(list);

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

@@ -0,0 +1,8 @@
+package org.jeecg.modules.business.dto;
+
+public class DoorLockDto {
+    public String hotelId;
+    public String radioType;
+    public String front;
+    public String after;
+}

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

@@ -0,0 +1,95 @@
+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.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+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: 门锁管理
+ * @Author: jeecg-boot
+ * @Date:   2023-03-20
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_door_lock_info")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_door_lock_info对象", description="门锁管理")
+public class BusDoorLock 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 buildId;
+    private transient String buildName;
+
+	/**楼层ID*/
+	@Excel(name = "楼层ID", width = 15)
+    @ApiModelProperty(value = "楼层ID")
+    private String floorId;
+    private transient String floorName;
+
+    /**房间号Id*/
+    @Excel(name = "房间号Id", width = 15)
+    @ApiModelProperty(value = "房间号Id")
+    private String roomId;
+    private transient String roomNumber;
+
+	/**关联号*/
+	@Excel(name = "关联号", width = 15)
+    @ApiModelProperty(value = "关联号")
+    private String associationNumber;
+	/**状态(0-禁用;1-启用)*/
+	@Excel(name = "状态(0-禁用;1-启用)", width = 15)
+    @ApiModelProperty(value = "状态(0-禁用;1-启用)")
+    private Integer status;
+	/**删除状态(0-正常,1-已删除)*/
+	@Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
+    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
+    @TableLogic
+    private Integer delFlag;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+}

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

@@ -0,0 +1,92 @@
+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.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+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: 餐券
+ * @Author: jeecg-boot
+ * @Date:   2023-03-21
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_meal_coupon_info")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_meal_coupon_info对象", description="餐券")
+public class BusMealCoupon 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;
+	/**餐券名称*/
+	@Excel(name = "餐券名称", width = 15)
+    @ApiModelProperty(value = "餐券名称")
+    private String name;
+	/**自动发放(0-开启;1-关闭)*/
+	@Excel(name = "自动发放(0-开启;1-关闭)", width = 15)
+    @ApiModelProperty(value = "自动发放(0-开启;1-关闭)")
+    private Integer automaticGrant;
+	/**开始时间*/
+	@Excel(name = "开始时间", width = 15, format = "HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "HH:mm:ss")
+    @DateTimeFormat(pattern="HH:mm:ss")
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
+	/**结束时间*/
+	@Excel(name = "结束时间", width = 15, format = "HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "HH:mm:ss")
+    @DateTimeFormat(pattern="HH:mm:ss")
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
+	/**状态(0-开启;1-关闭)*/
+	@Excel(name = "状态(0-开启;1-关闭)", width = 15)
+    @ApiModelProperty(value = "状态(0-开启;1-关闭)")
+    private Integer status;
+	/**删除状态(0-正常,1-已删除)*/
+	@Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
+    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
+    @TableLogic
+    private Integer delFlag;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+}

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

@@ -0,0 +1,85 @@
+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.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+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: 订单铃声
+ * @Author: jeecg-boot
+ * @Date:   2023-03-17
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_order_sound_info")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_order_sound_info对象", description="订单铃声")
+public class BusOrderSound 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;
+	/**铃声名称*/
+	@Excel(name = "铃声名称", width = 15)
+    @ApiModelProperty(value = "铃声名称")
+    private String name;
+	/**铃声类型*/
+	@Excel(name = "铃声类型", width = 15,dicCode="order_sound_type")
+    @Dict(dicCode = "order_sound_type")
+    @ApiModelProperty(value = "铃声类型")
+    private Integer type;
+	/**铃声地址*/
+	@Excel(name = "铃声地址", width = 15)
+    @ApiModelProperty(value = "铃声地址")
+    private String path;
+	/**状态(0-禁用;1-启用)*/
+	@Excel(name = "状态(0-禁用;1-启用)", width = 15)
+    @ApiModelProperty(value = "状态(0-禁用;1-启用)")
+    private Integer status;
+	/**删除状态(0-正常,1-已删除)*/
+	@Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
+    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
+    @TableLogic
+    private Integer delFlag;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+}

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

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

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMarketMealCouponsUsedMapper.java

@@ -28,7 +28,7 @@ public interface BusMarketMealCouponsUsedMapper extends BaseMapper<BusMarketMeal
      */
     @Select("<script>select u.*,c.name as coupons_name,cmc.name as type_name from bus_market_meal_coupons_used u\n" +
             "left join bus_market_meal_coupons_info c on c.id=u.coupons_id\n" +
-            "left join ces_meal_coupon cmc on cmc.id=c.type where 1=1\n" +
+            "left join bus_meal_coupon_info cmc on cmc.id=c.type where 1=1\n" +
             "<if test='hotelId != null and hotelId !=\"\"'> and u.hotel_id = #{hotelId} </if>"+
             "<if test='status >-1'> and u.status = #{status} </if>"+
             "<if test='type != null and type !=\"\"'> and c.type = #{type} </if>"+

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

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

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

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

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusDoorLockMapper.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.BusDoorLockMapper">
+
+</mapper>

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMarketMealCouponsMapper.xml

@@ -10,7 +10,7 @@
         ,SUM(CASE WHEN `status`  = 3 then 1 else 0 end) as voided
         from bus_market_meal_coupons_used  group by coupons_id) u
         on u.coupons_id=c.id
-        left join ces_meal_coupon cmc on cmc.id=c.type
+        left join bus_meal_coupon_info cmc on cmc.id=c.type
         where c.hotel_id = #{busMarketMealCoupons.hotelId}
         <if test="busMarketMealCoupons.hotelId!= null">
             <if test="busMarketMealCoupons.name !=null and busMarketMealCoupons.name != ''">
@@ -19,4 +19,4 @@
         </if>
         ORDER BY c.id desc
     </select>
-</mapper>
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMealCouponMapper.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.BusMealCouponMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusOrderSoundMapper.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.BusOrderSoundMapper">
+
+</mapper>

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

@@ -0,0 +1,17 @@
+package org.jeecg.modules.business.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.business.entity.BusDoorLock;
+import org.jeecg.modules.business.model.BusDictTreeModel;
+
+import java.util.List;
+
+/**
+ * @Description: 门锁管理
+ * @Author: jeecg-boot
+ * @Date:   2023-03-20
+ * @Version: V1.0
+ */
+public interface IBusDoorLockService extends IService<BusDoorLock> {
+    boolean deleteByHotelId(String hotelId);
+}

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

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

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.business.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.business.entity.BusOrderSound;
+
+/**
+ * @Description: 订单铃声
+ * @Author: jeecg-boot
+ * @Date:   2023-03-17
+ * @Version: V1.0
+ */
+public interface IBusOrderSoundService extends IService<BusOrderSound> {
+
+}

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

@@ -0,0 +1,42 @@
+package org.jeecg.modules.business.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.business.entity.BusDict;
+import org.jeecg.modules.business.entity.BusDoorLock;
+import org.jeecg.modules.business.mapper.BusDoorLockMapper;
+import org.jeecg.modules.business.model.BusDictTreeModel;
+import org.jeecg.modules.business.service.IBusDoorLockService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 门锁管理
+ * @Author: jeecg-boot
+ * @Date:   2023-03-20
+ * @Version: V1.0
+ */
+@Service
+public class BusDoorLockServiceImpl extends ServiceImpl<BusDoorLockMapper, BusDoorLock> implements IBusDoorLockService {
+
+    @Override
+    public boolean deleteByHotelId(String hotelId) {
+        LambdaQueryWrapper<BusDoorLock> query = new LambdaQueryWrapper<BusDoorLock>();
+        query.eq(BusDoorLock::getHotelId, hotelId);
+        query.eq(BusDoorLock::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+//        List<BusDoorLock> list= this.list(query);
+//        list.forEach(v -> {
+//            v.setDelFlag(CommonConstant.DEL_FLAG_1);
+//        });
+//        boolean res = saveOrUpdateBatch(list);
+        boolean res = remove(query);
+        return res;
+    }
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.business.service.impl;
+
+import org.jeecg.modules.business.entity.BusMealCoupon;
+import org.jeecg.modules.business.mapper.BusMealCouponMapper;
+import org.jeecg.modules.business.service.IBusMealCouponService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 餐券
+ * @Author: jeecg-boot
+ * @Date:   2023-03-21
+ * @Version: V1.0
+ */
+@Service
+public class BusMealCouponServiceImpl extends ServiceImpl<BusMealCouponMapper, BusMealCoupon> implements IBusMealCouponService {
+
+}

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

@@ -2,6 +2,7 @@ package org.jeecg.modules.business.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleDetailMapper;
@@ -40,6 +41,12 @@ public class BusMeetingRoomScheduleDetailServiceImpl extends ServiceImpl<BusMeet
     }
 
 
+    public List<BusMeetingRoomScheduleDetail> fetchByRoomIds(List<String> roomIds){
+        if(CollectionUtil.isEmpty(roomIds)) return new ArrayList<>();
+        return scheduleDetailMapper.selectList(Wrappers.<BusMeetingRoomScheduleDetail>lambdaQuery().in(BusMeetingRoomScheduleDetail::getMeetingRoomId,roomIds));
+    }
+
+
 
     public List<BusMeetingRoomScheduleDetail> fetchByDateRange(LocalDateTime startDate, LocalDateTime endDate,String hotelId,List<String> meetRoomIds){
         if(CollectionUtil.isEmpty(meetRoomIds)) return new ArrayList<>();

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

@@ -8,6 +8,7 @@ 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.exception.JeecgBootException;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
@@ -19,15 +20,17 @@ import org.jeecg.modules.business.vo.BusMeetingRoomScheduleDetailVo;
 import org.jeecg.modules.business.vo.BusMeetingRoomScheduleVo;
 import org.jeecg.modules.business.vo.MeetingRoomScheduleDetailVo;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 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;
 import java.time.format.DateTimeFormatter;
+import java.util.*;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -53,21 +56,33 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
 
         @Resource
         private BusMeetingRoomServiceImpl busMeetingRoomService;
-    @Resource
-    private BusMeetingRoomScheduleOrderDetailServiceImpl busMeetingRoomScheduleOrderDetailService;
+
+        @Resource
+        private BusMeetingRoomScheduleOrderDetailServiceImpl busMeetingRoomScheduleOrderDetailService;
+
 
     /**
      *
      * @return
      */
-    @Transactional(rollbackOn = Exception.class)
+    @Transactional(rollbackFor = Exception.class)
     public Result create(BusMeetingRoomScheduleDto dto){
+        DateTimeFormatter struct = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         String tenantId = TokenUtils.currentTenantId();
         String hotelId = dto.getHotelId();
+
+        //查询数据库是否有相同的数据
+        List<BusMeetingRoomScheduleDetailDto> detailList = dto.getDetailList();
+        List<LocalDateTime> dataRange = detailList.stream().map(v -> LocalDate.parse(v.getMeetingDate(),struct).atStartOfDay()).collect(Collectors.toList());
+        dataRange.sort(Comparator.naturalOrder());
+        LocalDateTime min = dataRange.get(0);
+        LocalDateTime max = dataRange.get(dataRange.size() -1);
+        max = LocalDateTime.of(max.toLocalDate(), LocalTime.of(23,59,59));;
+        List<String> roomIds = detailList.stream().map(v -> v.getMeetingRoomId()).collect(Collectors.toList());
+        List<BusMeetingRoomScheduleDetail> detailsList = meetingRoomScheduleDetailService.fetchByDateRange(min,max, hotelId, roomIds);
         /**
          * 创建主表
          */
-
         BusMeetingRoomSchedule roomSchedule = new BusMeetingRoomSchedule();
 
         BeanUtil.copyProperties(dto,roomSchedule);
@@ -80,12 +95,19 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
         roomSchedule.setOrderNo("HY"+sdf.format(System.currentTimeMillis()));
         meetingRoomScheduleMapper.insert(roomSchedule);
 
-        List<BusMeetingRoomScheduleDetailDto> detailList = dto.getDetailList();
         List<BusMeetingRoomScheduleDetail> details = new ArrayList<>();
-        DateTimeFormatter struct = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
         detailList.forEach(v -> {
-            BusMeetingRoomScheduleDetail detail= new BusMeetingRoomScheduleDetail();
             LocalDateTime meetingDate = LocalDate.parse(v.getMeetingDate(),struct).atStartOfDay();
+            List<BusMeetingRoomScheduleDetail> list = detailsList.stream().filter(f ->{
+                if(f.getMeetingRoomId().equals(v.getMeetingRoomId()) && f.getTimeSpan().intValue() == v.getTimeSpan().intValue() && f.getMeetingDate().compareTo(meetingDate) == 0){
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+            if(!CollectionUtil.isEmpty(list)) throw new JeecgBootException("数据重复!");
+            BusMeetingRoomScheduleDetail detail= new BusMeetingRoomScheduleDetail();
+
             detail.setMeetingRoomId(v.getMeetingRoomId());
             detail.setMeetingDate(meetingDate);
             detail.setTimeSpan(v.getTimeSpan().intValue());
@@ -189,7 +211,7 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
      * @param busMeetingRoomSchedule
      * @return
      */
-    @org.springframework.transaction.annotation.Transactional(rollbackFor = Exception.class)
+    @Transactional(rollbackFor = Exception.class)
     public Result settle(BusMeetingRoomSchedule busMeetingRoomSchedule) {
         if (ObjectUtils.isEmpty(busMeetingRoomSchedule.getPaymentMethodList())) {
             return Result.error("结算支付方式不能为空");

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.business.service.impl;
+
+import org.jeecg.modules.business.entity.BusOrderSound;
+import org.jeecg.modules.business.mapper.BusOrderSoundMapper;
+import org.jeecg.modules.business.service.IBusOrderSoundService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 订单铃声
+ * @Author: jeecg-boot
+ * @Date:   2023-03-17
+ * @Version: V1.0
+ */
+@Service
+public class BusOrderSoundServiceImpl extends ServiceImpl<BusOrderSoundMapper, BusOrderSound> implements IBusOrderSoundService {
+
+}

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

@@ -0,0 +1,9 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+import org.jeecg.modules.rooms.entity.CesMealCoupon;
+
+@Data
+public class CesMealCouponDto extends CesMealCoupon {
+
+}

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

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

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

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

+ 63 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesMealCouponController.java

@@ -7,14 +7,15 @@ import lombok.extern.slf4j.Slf4j;
 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.modules.rooms.DTO.CesMealCouponSearchDto;
+import org.jeecg.modules.rooms.DTO.CesRoomSearchDto;
+import org.jeecg.modules.rooms.DTO.CesRoomsDto;
 import org.jeecg.modules.rooms.entity.CesMealCoupon;
 import org.jeecg.modules.rooms.service.CesMealCouponServiceImpl;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
 
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 
@@ -47,5 +48,63 @@ public class CesMealCouponController {
             return Result.error(e.getMessage());
         }
     }
+
+    @ApiOperation(value="房间分页列表查询", notes="房间分页列表查询")
+    @GetMapping(value = "/list")
+    public Result list(CesMealCouponSearchDto dto){
+        if(dto.getPageNo().intValue() <= 0){
+            return Result.error("页数不能小于等于0");
+        }
+        if(dto.getPageSize().intValue() < 10){
+            return Result.error("分页条数不能小于10");
+        }
+        try{
+            return  mealCouponService.list(dto);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+//    /**
+//     * 保存房间
+//     * @param dto
+//     * @return
+//     */
+//    @AutoLog(value = "保存房间")
+//    @ApiOperation(value="save房间", notes="save")
+//    @PostMapping(value = "/save")
+//    public Result save(@RequestBody CesRoomsDto dto){
+//        if(StringUtils.isBlank(dto.getHotelId())){
+//            return Result.error(ResultCode.PARAM_MISS);
+//        }
+//        if(StringUtils.isBlank(dto.getBuildId())){
+//            return Result.error(ResultCode.PARAM_MISS);
+//        }
+//        if(StringUtils.isBlank(dto.getFloorId())){
+//            return Result.error(ResultCode.PARAM_MISS);
+//        }
+//        if(StringUtils.isBlank(dto.getName())){
+//            return Result.error(ResultCode.PARAM_MISS);
+//        }
+//        try{
+//            return  mealCouponService.create(dto);
+//        }catch (Exception e){
+//            return Result.error(e.getMessage());
+//        }
+//    }
+//
+//    @AutoLog(value = "修改房间")
+//    @ApiOperation(value="修改房间", notes="修改房间")
+//    @PutMapping(value = "/modify")
+//    public Result modify(@RequestBody CesRoomsDto dto){
+//        if(StringUtils.isBlank(dto.getId())){
+//            return Result.error(ResultCode.PARAM_MISS,"数据ID必传!");
+//        }
+//        try{
+//            return  mealCouponService.modify(dto);
+//        }catch (Exception e){
+//            return Result.error(e.getMessage());
+//        }
+//    }
 }
 

+ 12 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomBuildingFloorController.java

@@ -124,7 +124,18 @@ public class CesRoomBuildingFloorController {
         }
     }
 
-
+    @ApiOperation(value="楼栋查询", notes="楼栋查询")
+    @GetMapping(value = "/queryByParentId")
+    public Result queryByParentId(@RequestParam String parentId){
+        if(StringUtils.isBlank(parentId)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            return buildingFloorService.queryByParentId(parentId);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
 
 
 }

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

@@ -177,5 +177,30 @@ public class CesRoomsController {
         }
     }
 
+    @ApiOperation(value="通过楼层获取房间列表", notes="通过楼层获取房间列表")
+    @GetMapping(value = "/queryByFloorId")
+    public Result queryByFloorId(@RequestParam String floorId){
+        if(StringUtils.isBlank(floorId)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            return  roomsService.queryByFloorId(floorId);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+    @ApiOperation(value="通过酒店Id获取房间列表", notes="通过酒店Id获取房间列表")
+    @GetMapping(value = "/queryByHotelId")
+    public Result queryByHotelId(@RequestParam String hotelId){
+        if(StringUtils.isBlank(hotelId)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            return  roomsService.queryByFloorId(hotelId);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
 }
 

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

@@ -1,18 +1,40 @@
 package org.jeecg.modules.rooms.service;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+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.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.business.entity.BusHotel;
+import org.jeecg.modules.rooms.DTO.CesMealCouponDto;
+import org.jeecg.modules.rooms.DTO.CesMealCouponSearchDto;
+import org.jeecg.modules.rooms.DTO.CesRoomSearchDto;
+import org.jeecg.modules.rooms.DTO.CesRoomsDto;
+import org.jeecg.modules.rooms.Vo.CesHousePriceSchemeVo;
+import org.jeecg.modules.rooms.Vo.CesRoomsVo;
 import org.jeecg.modules.rooms.Vo.SelectVo;
+import org.jeecg.modules.rooms.entity.CesHousePriceScheme;
 import org.jeecg.modules.rooms.entity.CesMealCoupon;
+import org.jeecg.modules.rooms.entity.CesRoomBuildingFloor;
+import org.jeecg.modules.rooms.entity.CesRooms;
 import org.jeecg.modules.rooms.mapper.CesMealCouponMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -43,4 +65,61 @@ public class CesMealCouponServiceImpl extends ServiceImpl<CesMealCouponMapper, C
         });
         return Result.ok(vos);
     }
+
+    /**
+     * 查询餐券
+     * @param dto
+     * @return
+     */
+    public Result list(CesMealCouponSearchDto dto){
+
+        QueryWrapper<CesMealCoupon> queryWrapper = new QueryWrapper<>();
+        if(!StringUtils.isBlank(dto.getHotelId())){
+            queryWrapper.eq(CesRooms.HOTEL_ID, dto.getHotelId());
+        }
+        queryWrapper.eq(CesRooms.INVALID,false);
+        queryWrapper.orderByDesc(CesRooms.SORT, CesRooms.CREATEAT);
+
+        IPage<CesMealCoupon> dataPage = cesMealCouponMapper.selectPage(new Page<>(dto.getPageNo().intValue(),dto.getPageSize().intValue()),queryWrapper);
+        List<CesMealCoupon> records = dataPage.getRecords();
+        List<CesMealCoupon> vos = new ArrayList<>();
+        records.forEach(v->{
+            CesMealCoupon vo = new CesMealCoupon();
+            BeanUtil.copyProperties(v, vo);
+            vos.add(vo);
+        });
+
+        Map<String,Object> map = new HashedMap();
+        map.put("records",vos);
+        map.put("total",dataPage.getTotal());
+        return Result.OK(map);
+    }
+
+    /**
+     * 创建餐券
+     * @param cesMealCouponDto
+     * @return
+     */
+    public Result create(CesMealCouponDto cesMealCouponDto){
+        cesMealCouponDto.setCreateAt(LocalDateTime.now());
+//        cesMealCouponDto.setSort(99);
+//        cesMealCouponDto.setInvalid(false);
+        cesMealCouponDto.setUpdateAt(LocalDateTime.now());
+        cesMealCouponMapper.insert(cesMealCouponDto);
+        return Result.ok("创建成功!");
+    }
+
+    /**
+     * 编辑餐券
+     * @param roomsDto
+     * @return
+     */
+    public Result modify(CesRoomsDto roomsDto){
+//        CesRooms room = baseMapper.selectOne(Wrappers.<CesRooms>lambdaQuery().eq(CesRooms::getId, roomsDto.getId()).eq(CesRooms::getInvalid,false));
+//        if(ObjectUtils.isEmpty(room)) return Result.ok("数据未找到!");
+//        BeanUtil.copyProperties(roomsDto,room, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
+//        room.setUpdateAt(LocalDateTime.now());
+//        roomsMapper.updateById(room);
+        return Result.ok("修改成功!");
+    }
 }

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

@@ -161,4 +161,15 @@ public class CesRoomBuildingFloorServiceImpl extends ServiceImpl<CesRoomBuilding
         return buildingFloor;
     }
 
+    /**
+     * 根据上级Id获取下级数据
+     * @param parentId
+     * @return
+     */
+    public Result queryByParentId(String parentId){
+        //查询数据
+        List<CesRoomBuildingFloor> list = buildingFloorMapper.selectList(Wrappers.<CesRoomBuildingFloor>lambdaQuery().eq(CesRoomBuildingFloor::getParentId,parentId).eq(CesRoomBuildingFloor::getInvalid,false));
+        return Result.OK(list);
+    }
+
 }

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

@@ -2,7 +2,11 @@ package org.jeecg.modules.rooms.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.lang.tree.TreeNode;
+import cn.hutool.core.lang.tree.TreeUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -210,4 +214,28 @@ public class CesRoomsServiceImpl extends ServiceImpl<CesRoomsMapper, CesRooms> i
     }
 
 
+    /**
+     * 根据楼层获取房间数据
+     * @param floorId
+     * @return
+     */
+    public Result queryByFloorId(String floorId){
+        List<CesRooms> rooms = roomsMapper.selectList(Wrappers.<CesRooms>lambdaQuery().eq(CesRooms::getFloorId, floorId).eq(CesRooms::getInvalid,false));
+        return Result.OK(rooms);
+    }
+
+    /**
+     * 根据楼层获取房间数据
+     * @param hotelId
+     * @return
+     */
+    public Result queryByHotelId(String hotelId){
+        List<CesRooms> rooms = roomsMapper.selectList(Wrappers.<CesRooms>lambdaQuery().eq(CesRooms::getHotelId, hotelId).eq(CesRooms::getInvalid,false));
+        return Result.OK(rooms);
+    }
+
+    public List<CesRooms> getByHotelId(String hotelId){
+        List<CesRooms> rooms = roomsMapper.selectList(Wrappers.<CesRooms>lambdaQuery().eq(CesRooms::getHotelId, hotelId).eq(CesRooms::getInvalid,false));
+        return rooms;
+    }
 }

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

@@ -2,18 +2,26 @@ 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.StringUtils;
 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.lang3.ObjectUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.rooms.DTO.CesServiceMaintenanceSearchDto;
 import org.jeecg.modules.rooms.entity.CesServiceMaintenance;
+import org.jeecg.modules.rooms.entity.CesServiceType;
 import org.jeecg.modules.rooms.mapper.CesServiceMaintenanceMapper;
 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;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -28,6 +36,9 @@ public class CesServiceMaintenanceServiceImpl extends ServiceImpl<CesServiceMain
         @Resource
         private CesServiceMaintenanceMapper cesServiceMaintenanceMapper;
 
+        @Resource
+        private CesServiceTypeServiceImpl serviceTypeService;
+
 
     /**
      *
@@ -107,5 +118,24 @@ public class CesServiceMaintenanceServiceImpl extends ServiceImpl<CesServiceMain
     }
 
 
+    public Result fetch(CesServiceMaintenanceSearchDto dto){
+        QueryWrapper<CesServiceMaintenance> queryWrapper =new QueryWrapper<>();
+        if(StringUtils.isBlank(dto.getTypeId())){
+            queryWrapper.eq(CesServiceMaintenance.TYPE,dto.getTypeId());
+        }
+        queryWrapper.eq(CesServiceMaintenance.HOTEL_ID,dto.getHotelId());
+
+        queryWrapper.eq(CesServiceMaintenance.INVALID,false);
+        IPage<CesServiceMaintenance> dataPage = cesServiceMaintenanceMapper.selectPage(new Page<>(dto.getPageNo().intValue(),dto.getPageSize().intValue()),queryWrapper);
+        List<CesServiceMaintenance> list = dataPage.getRecords();
+        List<String> ids  = list.stream().map(v -> v.getClassify()).collect(Collectors.toList());
+        List<CesServiceType> serviceTypes =   serviceTypeService.fetchByIds(ids);
+        list.forEach(v -> {
 
+        });
+        Map<String,Object> map = new HashMap<>();
+        map.put("records", "");
+        map.put("total",dataPage.getTotal());
+        return Result.OK(map);
+    }
 }

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

@@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -127,4 +128,9 @@ public class CesServiceTypeServiceImpl extends ServiceImpl<CesServiceTypeMapper,
     }
 
 
+    public List<CesServiceType> fetchByIds(List<String> ids){
+        if(CollectionUtil.isEmpty(ids)) return new ArrayList<>();
+        return serviceTypeMapper.selectBatchIds(ids);
+    }
+
 }