ServiceImpl.java.template 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package org.dromara.${module}.${submodule}.service.impl;
  2. import lombok.RequiredArgsConstructor;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.dromara.${module}.${submodule}.domain.${ClassName};
  5. import org.dromara.${module}.${submodule}.domain.bo.${ClassName}Bo;
  6. import org.dromara.${module}.${submodule}.domain.vo.${ClassName}Vo;
  7. import org.dromara.${module}.${submodule}.mapper.${ClassName}Mapper;
  8. import org.dromara.${module}.${submodule}.service.I${ClassName}Service;
  9. import org.dromara.common.core.utils.MapstructUtils;
  10. import org.dromara.common.core.utils.StringUtils;
  11. import org.dromara.common.mybatis.core.page.PageQuery;
  12. import org.dromara.common.mybatis.core.page.TableDataInfo;
  13. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  14. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  15. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  16. import org.springframework.stereotype.Service;
  17. import java.util.Collection;
  18. import java.util.List;
  19. import java.util.Map;
  20. import java.util.Objects;
  21. /**
  22. * ${tableComment}Service业务层处理
  23. *
  24. * @author ${author}
  25. * @date ${date}
  26. */
  27. @Slf4j
  28. @RequiredArgsConstructor
  29. @Service
  30. public class ${ClassName}ServiceImpl implements I${ClassName}Service {
  31. private final ${ClassName}Mapper baseMapper;
  32. /**
  33. * 查询${tableComment}
  34. */
  35. @Override
  36. public ${ClassName}Vo queryById(${pkType} ${pkField}) {
  37. return baseMapper.selectVoById(${pkField});
  38. }
  39. /**
  40. * 查询${tableComment}列表
  41. */
  42. @Override
  43. public List<${ClassName}Vo> queryList(${ClassName}Bo bo) {
  44. LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo);
  45. return baseMapper.selectVoList(lqw);
  46. }
  47. /**
  48. * 分页查询${tableComment}列表
  49. */
  50. @Override
  51. public TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery) {
  52. LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo);
  53. lqw.orderByDesc(${ClassName}::getCreateTime);
  54. Page<${ClassName}Vo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
  55. return TableDataInfo.build(result);
  56. }
  57. /**
  58. * 新增${tableComment}
  59. */
  60. @Override
  61. public Boolean insertByBo(${ClassName}Bo bo) {
  62. ${ClassName} add = MapstructUtils.convert(bo, ${ClassName}.class);
  63. validEntityBeforeSave(Objects.requireNonNull(add));
  64. boolean flag = baseMapper.insert(add) > 0;
  65. if (flag) {
  66. bo.set${PkCapField}(add.get${PkCapField}());
  67. }
  68. return flag;
  69. }
  70. /**
  71. * 修改${tableComment}
  72. */
  73. @Override
  74. public Boolean updateByBo(${ClassName}Bo bo) {
  75. ${ClassName} update = MapstructUtils.convert(bo, ${ClassName}.class);
  76. if (update != null) {
  77. validEntityBeforeSave(update);
  78. }
  79. return baseMapper.updateById(update) > 0;
  80. }
  81. /**
  82. * 校验并批量删除${tableComment}
  83. */
  84. @Override
  85. public Boolean deleteWithValidByIds(Collection<${pkType}> ids, Boolean isValid) {
  86. if (isValid) {
  87. // 做一些业务上的校验,判断是否需要校验
  88. }
  89. return baseMapper.deleteByIds(ids) > 0;
  90. }
  91. /**
  92. * 保存前的数据校验
  93. */
  94. private void validEntityBeforeSave(${ClassName} entity) {
  95. // TODO 做一些数据校验,如唯一约束
  96. }
  97. /**
  98. * 构建查询条件
  99. */
  100. private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) {
  101. Map<String, Object> params = bo.getParams();
  102. LambdaQueryWrapper<${ClassName}> lqw = Wrappers.lambdaQuery();
  103. ${queryWrapperConditions}
  104. return lqw;
  105. }
  106. }