MetaServiceImpl.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package space.anyi.serve.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.fasterxml.jackson.core.JsonProcessingException;
  6. import com.fasterxml.jackson.databind.ObjectMapper;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import space.anyi.serve.entity.meta.Meta;
  10. import space.anyi.serve.service.MetaService;
  11. import space.anyi.serve.mapper.MetaMapper;
  12. import org.springframework.stereotype.Service;
  13. /**
  14. * @author yangyi
  15. * @description 针对表【meta(元数据表,用于存储键值对形式的配置或扩展属性)】的数据库操作Service实现
  16. * @createDate 2026-06-14 14:33:39
  17. */
  18. @Service
  19. public class MetaServiceImpl extends ServiceImpl<MetaMapper, Meta>
  20. implements MetaService{
  21. public static final Logger log = LoggerFactory.getLogger(MetaServiceImpl.class);
  22. public final ObjectMapper objectMapper;
  23. public MetaServiceImpl(ObjectMapper objectMapper) {
  24. this.objectMapper = objectMapper;
  25. }
  26. @Override
  27. public Boolean updateMeta(String key, Meta meta) {
  28. try {
  29. //UpdateWrapper<Meta> updateWrapper = new UpdateWrapper<Meta>().eq("key", key).set("value", objectMapper.writeValueAsString(meta.getValue()));
  30. //return update(updateWrapper);
  31. return getBaseMapper().updateValueByKey(key, objectMapper.writeValueAsString(meta.getValue()));
  32. } catch (JsonProcessingException e) {
  33. log.error("网站元素对象序列化为JSON失败",e);
  34. e.printStackTrace();
  35. throw new RuntimeException(e);
  36. }
  37. }
  38. @Override
  39. public Boolean updateMetaValue(String key, Object value) {
  40. try {
  41. String json = objectMapper.writeValueAsString(value);
  42. UpdateWrapper<Meta> updateWrapper = new UpdateWrapper<Meta>()
  43. .eq("key", key)
  44. .set("value", json);
  45. return update(updateWrapper);
  46. } catch (JsonProcessingException e) {
  47. log.error("序列化JSON失败", e);
  48. throw new RuntimeException(e);
  49. }
  50. }
  51. @Override
  52. public Meta getMeta(String key) {
  53. LambdaQueryWrapper<Meta> queryWrapper = new LambdaQueryWrapper<Meta>()
  54. .eq(Meta::getKey, key);
  55. return getOne(queryWrapper);
  56. }
  57. }