TestDemoServiceImpl.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.ruoyi.demo.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import com.ruoyi.common.core.domain.PageQuery;
  4. import com.ruoyi.common.utils.StringUtils;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.ruoyi.common.annotation.DataScope;
  9. import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
  10. import com.ruoyi.common.core.page.PagePlus;
  11. import com.ruoyi.common.core.page.TableDataInfo;
  12. import com.ruoyi.common.utils.PageUtils;
  13. import com.ruoyi.demo.domain.TestDemo;
  14. import com.ruoyi.demo.domain.bo.TestDemoBo;
  15. import com.ruoyi.demo.domain.vo.TestDemoVo;
  16. import com.ruoyi.demo.mapper.TestDemoMapper;
  17. import com.ruoyi.demo.service.ITestDemoService;
  18. import org.springframework.stereotype.Service;
  19. import java.util.Collection;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * 测试单表Service业务层处理
  24. *
  25. * @author Lion Li
  26. * @date 2021-07-26
  27. */
  28. @Service
  29. public class TestDemoServiceImpl extends ServicePlusImpl<TestDemoMapper, TestDemo, TestDemoVo> implements ITestDemoService {
  30. @Override
  31. public TestDemoVo queryById(Long id) {
  32. return getVoById(id);
  33. }
  34. @DataScope(isUser = true)
  35. @Override
  36. public TableDataInfo<TestDemoVo> queryPageList(TestDemoBo bo, PageQuery pageQuery) {
  37. LambdaQueryWrapper<TestDemo> lqw = buildQueryWrapper(bo);
  38. PagePlus<TestDemo, TestDemoVo> result = pageVo(PageUtils.buildPagePlus(pageQuery), lqw);
  39. return PageUtils.buildDataInfo(result);
  40. }
  41. /**
  42. * 自定义分页查询
  43. */
  44. @DataScope(isUser = true)
  45. @Override
  46. public TableDataInfo<TestDemoVo> customPageList(TestDemoBo bo, PageQuery pageQuery) {
  47. LambdaQueryWrapper<TestDemo> lqw = buildQueryWrapper(bo);
  48. Page<TestDemoVo> result = baseMapper.customPageList(PageUtils.buildPage(pageQuery), lqw);
  49. return PageUtils.buildDataInfo(result);
  50. }
  51. @DataScope(isUser = true)
  52. @Override
  53. public List<TestDemoVo> queryList(TestDemoBo bo) {
  54. return listVo(buildQueryWrapper(bo));
  55. }
  56. private LambdaQueryWrapper<TestDemo> buildQueryWrapper(TestDemoBo bo) {
  57. Map<String, Object> params = bo.getParams();
  58. Object dataScope = params.get("dataScope");
  59. LambdaQueryWrapper<TestDemo> lqw = Wrappers.lambdaQuery();
  60. lqw.like(StringUtils.isNotBlank(bo.getTestKey()), TestDemo::getTestKey, bo.getTestKey());
  61. lqw.eq(StringUtils.isNotBlank(bo.getValue()), TestDemo::getValue, bo.getValue());
  62. lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
  63. TestDemo::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
  64. lqw.apply(dataScope != null && StringUtils.isNotBlank(dataScope.toString()),
  65. dataScope != null ? dataScope.toString() : null);
  66. return lqw;
  67. }
  68. @Override
  69. public Boolean insertByBo(TestDemoBo bo) {
  70. TestDemo add = BeanUtil.toBean(bo, TestDemo.class);
  71. validEntityBeforeSave(add);
  72. boolean flag = save(add);
  73. if (flag) {
  74. bo.setId(add.getId());
  75. }
  76. return flag;
  77. }
  78. @Override
  79. public Boolean updateByBo(TestDemoBo bo) {
  80. TestDemo update = BeanUtil.toBean(bo, TestDemo.class);
  81. validEntityBeforeSave(update);
  82. return updateById(update);
  83. }
  84. /**
  85. * 保存前的数据校验
  86. *
  87. * @param entity 实体类数据
  88. */
  89. private void validEntityBeforeSave(TestDemo entity) {
  90. //TODO 做一些数据校验,如唯一约束
  91. }
  92. @Override
  93. public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
  94. if (isValid) {
  95. //TODO 做一些业务上的校验,判断是否需要校验
  96. }
  97. return removeByIds(ids);
  98. }
  99. }