Przeglądaj źródła

系统设置-订单铃声+门锁管理

WIN-B904R0U0NNS\Administrator 2 lat temu
rodzic
commit
151bb8eaf0
17 zmienionych plików z 936 dodań i 1 usunięć
  1. 330 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusDoorLockController.java
  2. 206 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusOrderSoundController.java
  3. 8 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/DoorLockDto.java
  4. 95 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusDoorLock.java
  5. 85 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusOrderSound.java
  6. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusDoorLockMapper.java
  7. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusOrderSoundMapper.java
  8. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusDoorLockMapper.xml
  9. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusOrderSoundMapper.xml
  10. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusDoorLockService.java
  11. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusOrderSoundService.java
  12. 42 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusDoorLockServiceImpl.java
  13. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusOrderSoundServiceImpl.java
  14. 12 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomBuildingFloorController.java
  15. 25 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomsController.java
  16. 11 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomBuildingFloorServiceImpl.java
  17. 28 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomsServiceImpl.java

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

@@ -0,0 +1,330 @@
+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<>();
+		 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);
+    }
+
+}

+ 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);
+    }
+
+}

+ 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;
+}

+ 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> {
+
+}

+ 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>

+ 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/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/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 {
+
+}

+ 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());
+        }
+    }
 }
 }
 
 

+ 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;
         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.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
 import cn.hutool.core.bean.copier.CopyOptions;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 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.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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;
+    }
 }
 }