|
|
@@ -8,6 +8,7 @@ import org.dromara.backstage.basics.service.IPtAccountService;
|
|
|
import org.dromara.backstage.basics.service.IPtRoomService;
|
|
|
import org.dromara.backstage.consumption.domain.bo.XfTermParamBo;
|
|
|
import org.dromara.backstage.consumption.domain.vo.XfTermParamVo;
|
|
|
+import org.dromara.common.core.config.DefaultConfig;
|
|
|
import org.dromara.common.core.constant.CacheNames;
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
@@ -46,6 +47,7 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
private final IPtRoomService roomService;
|
|
|
|
|
|
private final IPtAccountService accountService;
|
|
|
+ private final DefaultConfig defaultConfig;
|
|
|
|
|
|
/**
|
|
|
* 查询消费设备
|
|
|
@@ -58,9 +60,9 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
return baseMapper.selectVoById(termId);
|
|
|
}
|
|
|
|
|
|
- public XfTermParamVo queryById4Param(Long termId){
|
|
|
+ public XfTermParamVo queryById4Param(Long termId) {
|
|
|
XfTerm xfTerm = baseMapper.selectById(termId);
|
|
|
- if(xfTerm==null){
|
|
|
+ if (xfTerm == null) {
|
|
|
return null;
|
|
|
}
|
|
|
return MapstructUtils.convert(xfTerm, XfTermParamVo.class);
|
|
|
@@ -75,25 +77,25 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
*/
|
|
|
@Override
|
|
|
public TableDataInfo<XfTermVo> queryPageList(XfTermBo bo, PageQuery pageQuery) {
|
|
|
- QueryWrapper<XfTerm> lqw = buildQueryWrapper(bo,"t");
|
|
|
+ QueryWrapper<XfTerm> lqw = buildQueryWrapper(bo, "t");
|
|
|
Map<String, Object> params = bo.getParams();
|
|
|
Object roomId1 = params.get("roomId");
|
|
|
List<Long> roomIds = new ArrayList<>();
|
|
|
- if(roomId1!=null){
|
|
|
+ if (roomId1 != null) {
|
|
|
Object type = params.get("type");
|
|
|
- if(type!=null && type.toString().equals("area")){
|
|
|
+ if (type != null && type.toString().equals("area")) {
|
|
|
List<PtRoomVo> ptRoomVos = roomService.queryRoomByAreaId(Long.parseLong(roomId1.toString()));
|
|
|
- if(CollectionUtil.isNotEmpty(ptRoomVos)){
|
|
|
+ if (CollectionUtil.isNotEmpty(ptRoomVos)) {
|
|
|
roomIds.addAll(ptRoomVos.stream().map(PtRoomVo::getRoomId).toList());
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// 没有房间id 则不用查询了
|
|
|
return TableDataInfo.build(new Page<>());
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
roomIds.add(Long.valueOf(roomId1.toString()));
|
|
|
}
|
|
|
}
|
|
|
- lqw.in(CollectionUtil.isNotEmpty(roomIds),"t.room_id", roomIds);
|
|
|
+ lqw.in(CollectionUtil.isNotEmpty(roomIds), "t.room_id", roomIds);
|
|
|
lqw.eq("t.del_flag", 0);
|
|
|
lqw.orderByDesc("t.create_time");
|
|
|
Page<XfTermVo> result = baseMapper.customPageList(pageQuery.build(), lqw);
|
|
|
@@ -110,8 +112,8 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
public List<XfTermVo> queryList(XfTermBo bo) {
|
|
|
LambdaQueryWrapper<XfTerm> lqw = buildQueryWrapper(bo);
|
|
|
List<XfTermVo> xfTermVos = baseMapper.selectVoList(lqw);
|
|
|
- if(CollectionUtil.isNotEmpty(xfTermVos)){
|
|
|
- xfTermVos.forEach(x->{
|
|
|
+ if (CollectionUtil.isNotEmpty(xfTermVos)) {
|
|
|
+ xfTermVos.forEach(x -> {
|
|
|
PtRoomVo ptRoomVo = Optional.ofNullable(roomService.queryById(x.getRoomId())).orElse(new PtRoomVo());
|
|
|
x.setRoomName(ptRoomVo.getRoomName());
|
|
|
PtAccountVo ptAccountVo = Optional.ofNullable(accountService.queryById(x.getAccountId())).orElse(new PtAccountVo());
|
|
|
@@ -128,14 +130,14 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
return baseMapper.selectVoList(query);
|
|
|
}
|
|
|
|
|
|
- public List<XfTermVo> queryListByIds(List<Long> ids){
|
|
|
+ public List<XfTermVo> queryListByIds(List<Long> ids) {
|
|
|
LambdaQueryWrapper<XfTerm> lqw = Wrappers.lambdaQuery();
|
|
|
return baseMapper.selectVoList(lqw.in(XfTerm::getTermId, ids));
|
|
|
}
|
|
|
|
|
|
- public Map<Long,XfTermVo> queryMapByIds(List<Long> ids){
|
|
|
+ public Map<Long, XfTermVo> queryMapByIds(List<Long> ids) {
|
|
|
List<XfTermVo> xfTermVos = queryListByIds(ids);
|
|
|
- if(CollectionUtil.isNotEmpty(xfTermVos)){
|
|
|
+ if (CollectionUtil.isNotEmpty(xfTermVos)) {
|
|
|
return xfTermVos.stream().collect(Collectors.toMap(XfTermVo::getTermId, x -> x));
|
|
|
}
|
|
|
|
|
|
@@ -197,7 +199,7 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
}
|
|
|
|
|
|
@CacheEvict(cacheNames = CacheNames.PT_TERM, allEntries = true)
|
|
|
- public Boolean updateParamByBo(XfTermParamBo bo){
|
|
|
+ public Boolean updateParamByBo(XfTermParamBo bo) {
|
|
|
XfTerm update = MapstructUtils.convert(bo, XfTerm.class);
|
|
|
return baseMapper.updateById(update) > 0;
|
|
|
}
|
|
|
@@ -205,20 +207,20 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
/**
|
|
|
* 保存前的数据校验
|
|
|
*/
|
|
|
- private void validEntityBeforeSave(XfTerm entity){
|
|
|
- //设备机号和设备名称必须唯一
|
|
|
+ private void validEntityBeforeSave(XfTerm entity) {
|
|
|
+ // 设备机号和设备名称必须唯一
|
|
|
Long aLong = baseMapper.selectCount(Wrappers.<XfTerm>lambdaQuery()
|
|
|
- .ne(entity.getTermId() != null,XfTerm::getTermId, entity.getTermId())
|
|
|
- .and(queryWrapper -> queryWrapper.eq(XfTerm::getTermNo, entity.getTermNo())
|
|
|
- .or().eq(XfTerm::getTermName, entity.getTermName())
|
|
|
- .or().eq(XfTerm::getTermIp, entity.getTermIp())
|
|
|
- ));
|
|
|
- if(aLong>0){
|
|
|
+ .ne(entity.getTermId() != null, XfTerm::getTermId, entity.getTermId())
|
|
|
+ .and(queryWrapper -> queryWrapper.eq(XfTerm::getTermNo, entity.getTermNo())
|
|
|
+ .or().eq(XfTerm::getTermName, entity.getTermName())
|
|
|
+ .or().eq(XfTerm::getTermIp, entity.getTermIp())
|
|
|
+ ));
|
|
|
+ if (aLong > 0) {
|
|
|
throw new ServiceException("设备机号或设备名称或设备IP重复");
|
|
|
}
|
|
|
// 校验房间
|
|
|
PtRoomVo roomVo = roomService.queryById(entity.getRoomId());
|
|
|
- if(roomVo==null){
|
|
|
+ if (roomVo == null) {
|
|
|
throw new ServiceException("房间不存在");
|
|
|
}
|
|
|
}
|
|
|
@@ -233,8 +235,8 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
@Override
|
|
|
@CacheEvict(cacheNames = CacheNames.PT_TERM, allEntries = true)
|
|
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
|
|
- if(isValid){
|
|
|
- //可以删除
|
|
|
+ if (isValid) {
|
|
|
+ // 可以删除
|
|
|
}
|
|
|
return baseMapper.deleteByIds(ids) > 0;
|
|
|
}
|
|
|
@@ -248,8 +250,21 @@ public class XfTermServiceImpl implements IXfTermService {
|
|
|
@Override
|
|
|
@Cacheable(cacheNames = CacheNames.PT_TERM, key = "#termNo")
|
|
|
public XfTermVo queryByNo(Long termNo) {
|
|
|
- XfTermVo vo = baseMapper.selectVoOne(new LambdaQueryWrapper<XfTerm>().eq(XfTerm::getTermNo, termNo));
|
|
|
- if(vo!=null){
|
|
|
+ return this.queryByNo(termNo, defaultConfig.getTenantId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据设备机号查询设备信息
|
|
|
+ *
|
|
|
+ * @param termNo 设备机号
|
|
|
+ * @param tenantId 所属租户Id
|
|
|
+ * @return 设备信息
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Cacheable(cacheNames = CacheNames.PT_TERM, key = "#termNo")
|
|
|
+ public XfTermVo queryByNo(Long termNo, String tenantId) {
|
|
|
+ XfTermVo vo = baseMapper.selectVoOne(new LambdaQueryWrapper<XfTerm>().eq(XfTerm::getTermNo, termNo).eq(XfTerm::getTenantId, tenantId));
|
|
|
+ if (vo != null) {
|
|
|
PtRoomVo roomVo = roomService.queryById(vo.getRoomId());
|
|
|
vo.setRoomName(roomVo.getRoomName());
|
|
|
|