ChannelConfigMapper.java 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package cc.iotkit.data.model;
  2. import cc.iotkit.common.utils.JsonUtils;
  3. import cc.iotkit.model.notify.ChannelConfig;
  4. import org.mapstruct.Mapper;
  5. import org.mapstruct.Mapping;
  6. import org.mapstruct.Mappings;
  7. import java.util.Objects;
  8. /**
  9. * @Author: 石恒
  10. * @Date: 2023/5/11 21:02
  11. * @Description:
  12. */
  13. @Mapper(componentModel = "spring")
  14. public interface ChannelConfigMapper {
  15. @Mappings({
  16. @Mapping(target = "param", expression = "java(stingToParam(vo.getParam()))")
  17. })
  18. ChannelConfig toDto(TbChannelConfig vo);
  19. @Mappings({
  20. @Mapping(target = "param", expression = "java(paramToSting(dto.getParam()))")
  21. })
  22. TbChannelConfig toVo(ChannelConfig dto);
  23. default String paramToSting(ChannelConfig.ChannelParam param) {
  24. if (Objects.isNull(param)) {
  25. return null;
  26. }
  27. return JsonUtils.toJsonString(param);
  28. }
  29. default ChannelConfig.ChannelParam stingToParam(String param) {
  30. if (Objects.isNull(param)) {
  31. return null;
  32. }
  33. return JsonUtils.parse(param, ChannelConfig.ChannelParam.class);
  34. }
  35. }