SysDictLogServiceImpl.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.xy.service;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.xy.dto.SysDictLogDto;
  7. import com.xy.entity.SysDict;
  8. import com.xy.entity.SysDictLog;
  9. import com.xy.mapper.SysDictLogMapper;
  10. import com.xy.sys.EnumSysDictOperateType;
  11. import com.xy.utils.Emptys;
  12. import com.xy.utils.MybatisPlusQuery;
  13. import com.xy.utils.PageBean;
  14. import com.xy.utils.R;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import lombok.AllArgsConstructor;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.core.env.Environment;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.validation.annotation.Validated;
  22. import org.springframework.web.bind.annotation.PostMapping;
  23. import org.springframework.web.bind.annotation.RequestBody;
  24. import java.time.LocalDateTime;
  25. import java.util.List;
  26. import static com.xy.utils.Beans.copy;
  27. import static com.xy.utils.PlusBeans.toIPage;
  28. import static com.xy.utils.PlusBeans.toPageBean;
  29. /**
  30. * <p>
  31. * 字典表 服务实现类
  32. * </p>
  33. *
  34. * @author 谭斌
  35. * @since 2024-10-09
  36. */
  37. @Slf4j
  38. @Service
  39. @AllArgsConstructor
  40. @Api(tags = "字典表")
  41. public class SysDictLogServiceImpl extends ServiceImpl<SysDictLogMapper, SysDictLog> implements SysDictLogService {
  42. private Environment environment;
  43. @PostMapping("obj")
  44. @ApiOperation("对象查询")
  45. public R<SysDictLogDto.Vo> obj(@RequestBody SysDictLogDto.Vo vo) {
  46. SysDictLogDto.SelectList selectList = copy(SysDictLogDto.SelectList.class, vo);
  47. List<SysDictLogDto.Vo> list = list(selectList).getData();
  48. if (Emptys.check(list)) {
  49. return R.ok(list.get(0));
  50. }
  51. return R.ok();
  52. }
  53. /**
  54. * 处理日志
  55. *
  56. * @param sysDictLog
  57. * @param operateType
  58. * @return
  59. */
  60. public boolean handleLog(SysDict sysDict, SysDictLog sysDictLog, EnumSysDictOperateType operateType) {
  61. sysDictLog.setSysDictId(sysDict.getId());
  62. sysDictLog.setId(null);
  63. sysDictLog.setIsSync(false);
  64. sysDictLog.setOperateType(operateType.getIntCode());
  65. if (EnumSysDictOperateType.UPDATE.getIntCode() == operateType.getIntCode()) {
  66. String code = sysDictLog.getCode();
  67. String paterCode = sysDictLog.getPaterCode();
  68. //更新只保存最后一条
  69. LambdaQueryWrapper<SysDictLog> lambdaQueryWrapper = new LambdaQueryWrapper<>();
  70. lambdaQueryWrapper.eq(StrUtil.isNotEmpty(code), SysDictLog::getCode, code);
  71. lambdaQueryWrapper.eq(StrUtil.isNotEmpty(paterCode), SysDictLog::getPaterCode, paterCode);
  72. lambdaQueryWrapper.eq(SysDictLog::getOperateType, EnumSysDictOperateType.UPDATE.getIntCode());
  73. lambdaQueryWrapper.orderByDesc(SysDictLog::getCreateTime);
  74. List<SysDictLog> sysDictLogs = this.list(lambdaQueryWrapper);
  75. if (Emptys.check(sysDictLogs)) {
  76. SysDictLog log = sysDictLogs.get(0);
  77. sysDictLog.setId(log.getId());
  78. }
  79. }
  80. sysDictLog.setCreateTime(LocalDateTime.now());
  81. saveOrUpdate(sysDictLog);
  82. return true;
  83. }
  84. @PostMapping("list")
  85. @ApiOperation("集合查询")
  86. public R<List<SysDictLogDto.Vo>> list(@RequestBody SysDictLogDto.SelectList selectList) {
  87. LambdaQueryWrapper<SysDictLog> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, SysDictLog.class).build();
  88. List<SysDictLog> list = list(lambdaQueryWrapper);
  89. return R.ok(copy(SysDictLogDto.Vo.class, list));
  90. }
  91. @PostMapping("page")
  92. @ApiOperation("分页查询")
  93. public R<PageBean<SysDictLogDto.Vo>> page(@RequestBody SysDictLogDto.Page page) {
  94. PageBean pageBean = page.getPage();
  95. LambdaQueryWrapper<SysDictLog> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, SysDictLog.class).build()
  96. .ge(page.getBeginTime() != null, SysDictLog::getCreateTime, page.getBeginTime()).le(page.getEndTime() != null, SysDictLog::getCreateTime, page.getEndTime());
  97. IPage<SysDictLog> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
  98. return R.ok(toPageBean(SysDictLogDto.Vo.class, iPage));
  99. }
  100. @PostMapping("save")
  101. @ApiOperation("添加")
  102. public R save(@RequestBody @Validated SysDictLogDto.Save save) {
  103. SysDictLog saveInfo = copy(SysDictLog.class, save);
  104. save(saveInfo);
  105. return R.ok();
  106. }
  107. @PostMapping("update")
  108. @ApiOperation("修改")
  109. public R update(@RequestBody @Validated SysDictLogDto.Update update) {
  110. SysDictLog updateInfo = copy(SysDictLog.class, update);
  111. updateById(updateInfo);
  112. return R.ok();
  113. }
  114. }