refactor(iot): 重构参数处理逻辑
- 合并参数创建和更新方法,减少重复代码 - 优化参数查询和删除逻辑,提高效率 -调整服务和产品相关方法,适应新的参数处理方式 -移除未使用的 ParamType 枚举
This commit is contained in:
parent
f6a12e2b35
commit
be080ffb3a
@ -13,6 +13,7 @@ import com.zsc.edu.gateway.modules.iot.product.repo.ProductParamRepository;
|
||||
import com.zsc.edu.gateway.modules.iot.product.repo.ProductRepository;
|
||||
import com.zsc.edu.gateway.modules.iot.product.service.ProductService;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.dto.ParamDto;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.entity.EventParam;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.entity.Param;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.mapper.ParamMapper;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.repo.ParamRepository;
|
||||
@ -21,6 +22,7 @@ import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
@ -45,7 +47,10 @@ public class ProductServiceImpl extends ServiceImpl<ProductRepository, Product>
|
||||
}
|
||||
Product product = mapper.toEntity(dto);
|
||||
save(product);
|
||||
productParamRepo.insert(paramService.productParamCreate(dto, product.getId()));
|
||||
List<ProductParam> productParams = paramService.paramCreate(dto.getParams()).stream()
|
||||
.map(paramId -> new ProductParam(product.getId(), paramId))
|
||||
.toList();
|
||||
productParamRepo.insert(productParams);
|
||||
return product;
|
||||
}
|
||||
/**
|
||||
@ -56,7 +61,12 @@ public class ProductServiceImpl extends ServiceImpl<ProductRepository, Product>
|
||||
Product product = baseMapper.selectById(id);
|
||||
mapper.convert(dto, product);
|
||||
updateById(product);
|
||||
paramService.productParamUpdate(dto.getParams(), id);
|
||||
paramService.paramUpdate(dto.getParams(),
|
||||
productParamRepo.selectList(new LambdaQueryWrapper<ProductParam>()
|
||||
.eq(ProductParam::getProductId, product.getId()))
|
||||
.stream()
|
||||
.map(ProductParam::getParamId)
|
||||
.collect(Collectors.toList()));
|
||||
return product;
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,9 @@ public class ServeDto {
|
||||
|
||||
public String identifier;
|
||||
|
||||
private List<ParamDto> inputs;
|
||||
private List<ParamDto> params;
|
||||
|
||||
private List<ParamDto> outputs;
|
||||
//TODO 将inputs和outputs整合成一个params集合(操作一样,params中有type区分)
|
||||
// private List<ParamDto> inputs;
|
||||
// private List<ParamDto> outputs;
|
||||
}
|
||||
|
@ -32,6 +32,10 @@ public class Param extends BaseParam {
|
||||
*/
|
||||
private Type type;
|
||||
|
||||
// /**
|
||||
// * 事件/服务/产品的类型
|
||||
// */
|
||||
// private ParamType paramType;
|
||||
|
||||
public enum Type implements IEnum<Integer>, IState<Type> {
|
||||
/**
|
||||
@ -65,4 +69,37 @@ public class Param extends BaseParam {
|
||||
return this.description;
|
||||
}
|
||||
}
|
||||
|
||||
// public enum ParamType implements IEnum<Integer>, IState<ParamType> {
|
||||
// /**
|
||||
// * 事件
|
||||
// */
|
||||
// EVENT(1, "Event"),
|
||||
// /**
|
||||
// * 服务
|
||||
// */
|
||||
// SERVICE(2, "Service"),
|
||||
// /**
|
||||
// * 产品
|
||||
// */
|
||||
// PRODUCT(3, "Product");
|
||||
//
|
||||
// private final int value;
|
||||
// private final String description;
|
||||
//
|
||||
// ParamType(int value, String description) {
|
||||
// this.value = value;
|
||||
// this.description = description;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Integer getValue() {
|
||||
// return value;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String toString() {
|
||||
// return this.description;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
@ -24,16 +24,11 @@ public class Serve extends BaseParam {
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 服务所需参数
|
||||
* 服务输入/输出参数,根据param中的type区分
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private List<Param> inputs;
|
||||
private List<Param> params;
|
||||
|
||||
/**
|
||||
* 服务输出的参数
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private List<Param> outputs;
|
||||
|
||||
}
|
||||
|
||||
|
@ -3,5 +3,8 @@ package com.zsc.edu.gateway.modules.iot.tsl.repo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.entity.EventParam;
|
||||
|
||||
/**
|
||||
* @author zhuang
|
||||
*/
|
||||
public interface EventParamRepository extends BaseMapper<EventParam> {
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.entity.Event;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.query.EventQuery;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
|
@ -3,5 +3,8 @@ package com.zsc.edu.gateway.modules.iot.tsl.repo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.entity.Param;
|
||||
|
||||
/**
|
||||
* @author lenovo
|
||||
*/
|
||||
public interface ParamRepository extends BaseMapper<Param> {
|
||||
}
|
||||
|
@ -11,6 +11,9 @@ import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhuang
|
||||
*/
|
||||
public interface PropertyRepository extends BaseMapper<Property> {
|
||||
|
||||
|
||||
|
@ -16,15 +16,7 @@ import java.util.List;
|
||||
* @author zhuang
|
||||
*/
|
||||
public interface ParamService extends IService<Param> {
|
||||
List<EventParam> eventParamCreate(EventDto dto, Long eventId);
|
||||
List<Long> paramCreate(List<ParamDto> params);
|
||||
|
||||
List<ProductParam> productParamCreate(ProductDto dto, Long productId);
|
||||
|
||||
List<ServeParam> serveParamCreate(ServeDto dto, Long serveId);
|
||||
|
||||
boolean eventParamUpdate(List<ParamDto> paramDto, Long eventId);
|
||||
|
||||
boolean productParamUpdate(List<ParamDto> paramDto, Long productId);
|
||||
|
||||
boolean serveParamUpdate(List<ParamDto> paramDto, Long serveId);
|
||||
boolean paramUpdate(List<ParamDto> paramDto, List<Long> paramIds);
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author Yao
|
||||
@ -46,7 +47,10 @@ public class EventServiceImpl extends ServiceImpl<EventRepository, Event> implem
|
||||
}
|
||||
Event event = mapper.toEntity(dto);
|
||||
save(event);
|
||||
eventParamRepo.insert(paramService.eventParamCreate(dto, event.getId()));
|
||||
List<EventParam> eventParams = paramService.paramCreate(dto.getOutputs()).stream()
|
||||
.map(paramId -> new EventParam(event.getId(), paramId))
|
||||
.toList();
|
||||
eventParamRepo.insert(eventParams);
|
||||
return event;
|
||||
}
|
||||
/**
|
||||
@ -57,7 +61,12 @@ public class EventServiceImpl extends ServiceImpl<EventRepository, Event> implem
|
||||
Event event = baseMapper.selectById(id);
|
||||
mapper.convert(dto, event);
|
||||
updateById(event);
|
||||
paramService.eventParamUpdate(dto.getOutputs(), id);
|
||||
paramService.paramUpdate(dto.getOutputs(),
|
||||
eventParamRepo.selectList(new LambdaQueryWrapper<EventParam>()
|
||||
.eq(EventParam::getEventId, event.getId()))
|
||||
.stream()
|
||||
.map(EventParam::getParamId)
|
||||
.collect(Collectors.toList()));
|
||||
return event;
|
||||
}
|
||||
/**
|
||||
|
@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zsc.edu.gateway.modules.iot.product.dto.ProductDto;
|
||||
import com.zsc.edu.gateway.modules.iot.product.entity.ProductParam;
|
||||
import com.zsc.edu.gateway.modules.iot.product.repo.ProductParamRepository;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.dto.EventDto;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.dto.ParamDto;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.dto.ServeDto;
|
||||
import com.zsc.edu.gateway.modules.iot.tsl.entity.EventParam;
|
||||
@ -21,6 +20,8 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
/**
|
||||
* @author zhuang
|
||||
@ -34,79 +35,34 @@ public class ParamServiceImpl extends ServiceImpl<ParamRepository, Param> implem
|
||||
private final ProductParamRepository productParamRepository;
|
||||
private final ServeParamRepository serveParamRepository;
|
||||
|
||||
@Override
|
||||
public List<Long> paramCreate(List<ParamDto> params) {
|
||||
List<Long> paramIds = new ArrayList<>();
|
||||
params.forEach(paramDto -> {
|
||||
Param param = mapper.toEntity(paramDto);
|
||||
baseMapper.insert(param);
|
||||
paramIds.add(param.getId());
|
||||
});
|
||||
List<Param> paramsToInsert = params.stream()
|
||||
.map(mapper::toEntity)
|
||||
.collect(Collectors.toList());
|
||||
baseMapper.insert(paramsToInsert);
|
||||
paramsToInsert.forEach(param -> paramIds.add(param.getId()));
|
||||
return paramIds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EventParam> eventParamCreate(EventDto dto, Long eventId) {
|
||||
return paramCreate(dto.getOutputs()).stream()
|
||||
.map(paramId -> new EventParam(eventId, paramId))
|
||||
.toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProductParam> productParamCreate(ProductDto dto, Long productId) {
|
||||
return paramCreate(dto.getParams()).stream()
|
||||
.map(paramId -> new ProductParam(productId, paramId))
|
||||
.toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ServeParam> serveParamCreate(ServeDto dto, Long serveId) {
|
||||
List<ServeParam> serveParams = new ArrayList<>();
|
||||
serveParams.addAll(paramCreate(dto.getInputs()).stream()
|
||||
.map(paramId -> new ServeParam(serveId, paramId))
|
||||
.toList());
|
||||
serveParams.addAll(paramCreate(dto.getOutputs()).stream()
|
||||
.map(paramId -> new ServeParam(serveId, paramId))
|
||||
.toList());
|
||||
return serveParams;
|
||||
}
|
||||
|
||||
public boolean paramUpdate(List<ParamDto> paramDto, List<Long> paramIds) {
|
||||
List<Param> params = baseMapper.selectByIds(paramIds);
|
||||
if (!params.isEmpty() && !paramDto.isEmpty()) {
|
||||
for (int i = 0; i < Math.min(params.size(), paramDto.size()); i++) {
|
||||
List<Param> updatedParams = IntStream.range(0, Math.min(params.size(), paramDto.size()))
|
||||
.parallel()
|
||||
.mapToObj(i -> {
|
||||
Param param = params.get(i);
|
||||
ParamDto dto = paramDto.get(i);
|
||||
paramMapper.convert(dto, param);
|
||||
baseMapper.updateById(param);
|
||||
}
|
||||
return param;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
baseMapper.updateById(updatedParams);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean eventParamUpdate(List<ParamDto> paramDto, Long eventId) {
|
||||
return paramUpdate(paramDto, eventParamRepository.selectList(new LambdaQueryWrapper<EventParam>()
|
||||
.eq(EventParam::getEventId, eventId))
|
||||
.stream()
|
||||
.map(EventParam::getParamId)
|
||||
.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean productParamUpdate(List<ParamDto> paramDto, Long productId) {
|
||||
return paramUpdate(paramDto, productParamRepository.selectList(new LambdaQueryWrapper<ProductParam>()
|
||||
.eq(ProductParam::getProductId, productId))
|
||||
.stream()
|
||||
.map(ProductParam::getParamId)
|
||||
.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean serveParamUpdate(List<ParamDto> paramDto, Long serveId) {
|
||||
return paramUpdate(paramDto, serveParamRepository.selectList(new LambdaQueryWrapper<ServeParam>()
|
||||
.eq(ServeParam::getServeId, serveId))
|
||||
.stream()
|
||||
.map(ServeParam::getParamId)
|
||||
.toList());
|
||||
}
|
||||
//TODO 整合方法?方法一:保持现状,但是会有多个联表多个entity多个repo?方法二:建新联表其中values(product_id,serve_id,event_id,param_id)一表联三表
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
||||
/**
|
||||
@ -31,7 +33,6 @@ import java.util.List;
|
||||
public class ServeServiceImpl extends ServiceImpl<ServeRepository, Serve> implements ServeService {
|
||||
|
||||
private final ServeMapper mapper;
|
||||
private final ParamMapper paramMapper;
|
||||
private final ParamRepository paramRepository;
|
||||
private final ServeParamRepository serveParamRepository;
|
||||
private final ParamService paramService;
|
||||
@ -45,7 +46,10 @@ public class ServeServiceImpl extends ServiceImpl<ServeRepository, Serve> implem
|
||||
}
|
||||
Serve serve = mapper.toEntity(dto);
|
||||
save(serve);
|
||||
serveParamRepository.insert(paramService.serveParamCreate(dto, serve.getId()));
|
||||
List<ServeParam> serveParams = paramService.paramCreate(dto.getParams()).stream()
|
||||
.map(paramId -> new ServeParam(serve.getId(), paramId))
|
||||
.toList();
|
||||
serveParamRepository.insert(serveParams);
|
||||
return serve;
|
||||
}
|
||||
/**
|
||||
@ -56,8 +60,12 @@ public class ServeServiceImpl extends ServiceImpl<ServeRepository, Serve> implem
|
||||
Serve serve = baseMapper.selectById(id);
|
||||
mapper.convert(dto, serve);
|
||||
updateById(serve);
|
||||
paramService.serveParamUpdate(dto.getInputs(), id);
|
||||
paramService.serveParamUpdate(dto.getOutputs(), id);
|
||||
paramService.paramUpdate(dto.getParams(),
|
||||
serveParamRepository.selectList(new LambdaQueryWrapper<ServeParam>()
|
||||
.eq(ServeParam::getServeId, serve.getId()))
|
||||
.stream()
|
||||
.map(ServeParam::getParamId)
|
||||
.collect(Collectors.toList()));
|
||||
return serve;
|
||||
}
|
||||
|
||||
|
@ -70,9 +70,8 @@ public class BulletinController {
|
||||
*/
|
||||
@GetMapping()
|
||||
@PreAuthorize("hasAuthority('BULLETIN_QUERY')")
|
||||
public IPage<BulletinVo> query(Page<BulletinVo> page, BulletinQuery query) {
|
||||
// Page<BulletinVo> page = new Page<>(query.getPageNum(), query.getPageSize());
|
||||
return service.selectPageByConditions(page, query);
|
||||
public Page<Bulletin> query(Page<Bulletin> page, BulletinQuery query) {
|
||||
return service.page(page, query.wrapper());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -101,7 +101,10 @@ public class UserMessageServiceImpl extends ServiceImpl<UserMessageRepository, U
|
||||
@Override
|
||||
public boolean markAsRead(UserDetailsImpl userDetails, List<Long> messageIds) {
|
||||
if (CollectionUtils.isEmpty(messageIds)) {
|
||||
throw new RuntimeException("messageIds is NULL!");
|
||||
return this.lambdaUpdate().eq(UserMessage::getUserId, userDetails.getId())
|
||||
.set(UserMessage::getIsRead, true)
|
||||
.set(UserMessage::getReadTime, LocalDateTime.now())
|
||||
.update();
|
||||
}
|
||||
return this.lambdaUpdate().eq(UserMessage::getUserId, userDetails.getId())
|
||||
.in(UserMessage::getMessageId, messageIds)
|
||||
|
Loading…
Reference in New Issue
Block a user