| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- package com.chuanghai.ihotel.service.impl;
- import com.chuanghai.ihotel.common.exception.BizCodeEnume;
- import com.chuanghai.ihotel.common.exception.RRException;
- import com.chuanghai.ihotel.controller.request.RoomQueryRequest;
- import com.chuanghai.ihotel.entity.RoomTypeEntity;
- import com.chuanghai.ihotel.service.RoomTypeService;
- import com.chuanghai.ihotel.vo.RoomGroupVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.cache.annotation.CacheEvict;
- import org.springframework.cache.annotation.Cacheable;
- import org.springframework.stereotype.Service;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.chuanghai.ihotel.common.utils.PageUtils;
- import com.chuanghai.ihotel.common.utils.MyQuery;
- import com.chuanghai.ihotel.common.utils.PageParam;
- import com.chuanghai.ihotel.dao.RoomDao;
- import com.chuanghai.ihotel.entity.RoomEntity;
- import com.chuanghai.ihotel.service.RoomService;
- import org.springframework.util.StringUtils;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- @Service("roomService")
- public class RoomServiceImpl extends ServiceImpl<RoomDao, RoomEntity> implements RoomService {
- @Autowired
- private RoomTypeService roomTypeService;
- @Cacheable(value = {"room"}, key = "#root.method.name " +
- "+ '-' + #pageParam.curPage " +
- "+ '-' + #pageParam.pageSize " +
- "+ '-' + #pageParam.orderField " +
- "+ '-' + #pageParam.order " +
- "+ '-' + #request.roomNo " +
- "+ '-' + #request.build " +
- "+ '-' + #request.floor " +
- "+ '-' + #request.roomTypeId")
- @Override
- public PageUtils queryPage(PageParam pageParam, RoomQueryRequest request) {
- QueryWrapper<RoomEntity> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq(StringUtils.hasText(request.getRoomNo()), "room_no", request.getRoomNo());
- queryWrapper.eq(StringUtils.hasText(request.getBuild()), "build", request.getBuild());
- queryWrapper.eq(StringUtils.hasText(request.getFloor()), "floor", request.getFloor());
- queryWrapper.eq(request.getRoomTypeId() != null, "room_type_id", request.getRoomTypeId());
- IPage<RoomEntity> page = this.page(
- new MyQuery<RoomEntity>().getPage(pageParam),
- queryWrapper
- );
- return new PageUtils(page);
- }
- @Cacheable(value = {"room"},
- key = "#root.method.name " +
- "+ '-' + #pageParam.curPage " +
- "+ '-' + #pageParam.pageSize " +
- "+ '-' + #pageParam.orderField " +
- "+ '-' + #pageParam.order " +
- "+ '-' + #request.roomNo " +
- "+ '-' + #request.build " +
- "+ '-' + #request.floor " +
- "+ '-' + #request.roomTypeId")
- @Override
- public PageUtils queryPageGroup(PageParam pageParam, RoomQueryRequest request) {
- IPage<RoomGroupVO> page =this.getBaseMapper().queryPageGroup(new MyQuery<RoomEntity>().getPage(pageParam), request);
- return new PageUtils<>(page);
- }
- @CacheEvict(value = "room", allEntries = true)
- @Override
- public void mySave(RoomEntity room) {
- // 检测房型是否存在
- RoomTypeEntity roomType = roomTypeService.getById(room.getRoomTypeId());
- if (roomType == null) {
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "无效的roomTypeId");
- }
- room.setRoomTypeName(roomType.getTypeName());
- this.save(room);
- // 增加房型数量
- roomType.setRoomNum(roomType.getRoomNum() + 1);
- roomTypeService.updateById(roomType);
- }
- @Override
- public Long getRoomIdNotIn(Long roomTypeId, List<Long> roomIds) {
- QueryWrapper<RoomEntity> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("room_type_id", roomTypeId);
- queryWrapper.notIn(roomIds.size()> 0, "id", roomIds);
- queryWrapper.last("limit 1");
- RoomEntity room = this.getOne(queryWrapper);
- if (room != null) {
- return room.getId();
- } else {
- return null;
- }
- }
- @CacheEvict(value = "room", allEntries = true)
- @Override
- public boolean myUpdate(RoomEntity room) {
- return this.updateById(room);
- }
- @CacheEvict(value = "room", allEntries = true)
- @Override
- public boolean myRemoveByIds(List<Long> ids) {
- return this.removeByIds(ids);
- }
- @Override
- public List<RoomEntity> getByRoomIds(Set<Long> roomIds) {
- QueryWrapper<RoomEntity> queryWrapper = new QueryWrapper<>();
- queryWrapper.in("id", roomIds);
- return this.list(queryWrapper);
- }
- }
|