主子ServiceImpl.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package ${package}.${moduleName}.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import ${package}.${moduleName}.entity.${ClassName}Entity;
  4. import ${package}.${moduleName}.mapper.${ClassName}Mapper;
  5. import ${package}.${moduleName}.service.${ClassName}Service;
  6. import org.springframework.stereotype.Service;
  7. import cn.hutool.core.collection.CollUtil;
  8. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  9. import ${package}.${moduleName}.entity.${ChildClassName}Entity;
  10. import ${package}.${moduleName}.mapper.${ChildClassName}Mapper;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import lombok.RequiredArgsConstructor;
  13. import java.util.Objects;
  14. /**
  15. * ${tableComment}
  16. *
  17. * @author ${author}
  18. * @date ${datetime}
  19. */
  20. @Service
  21. @RequiredArgsConstructor
  22. public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}Entity> implements ${ClassName}Service {
  23. private final ${ChildClassName}Mapper ${childClassName}Mapper;
  24. @Override
  25. @Transactional(rollbackFor = Exception.class)
  26. public Boolean saveDeep(${ClassName}Entity ${className}) {
  27. baseMapper.insert(${className});
  28. for (${ChildClassName}Entity ${childClassName} : ${className}.get${ChildClassName}List()) {
  29. ${childClassName}.$str.setProperty($childField)(${className}.$str.getProperty($mainField)());
  30. ${childClassName}Mapper.insert( ${childClassName});
  31. }
  32. return Boolean.TRUE;
  33. }
  34. @Override
  35. @Transactional(rollbackFor = Exception.class)
  36. public Boolean updateDeep(${ClassName}Entity ${className}) {
  37. baseMapper.updateById(${className});
  38. for (${ChildClassName}Entity ${childClassName} : ${className}.get${ChildClassName}List()) {
  39. #set($getChildPkName=$str.getProperty(${pk.attrName}))
  40. if (Objects.isNull(${childClassName}.$getChildPkName())) {
  41. ${childClassName}.$str.setProperty($childField)(${className}.$str.getProperty($mainField)());
  42. ${childClassName}Mapper.insert(${childClassName});
  43. } else {
  44. ${childClassName}Mapper.updateById(${childClassName});
  45. }
  46. }
  47. return Boolean.TRUE;
  48. }
  49. @Override
  50. @Transactional(rollbackFor = Exception.class)
  51. public Boolean removeDeep(Long[] ids) {
  52. baseMapper.deleteBatchIds(CollUtil.toList(ids));
  53. ${childClassName}Mapper.delete(Wrappers.<${ChildClassName}Entity>lambdaQuery().in(${ChildClassName}Entity::$str.getProperty($childField), ids));
  54. return Boolean.TRUE;
  55. }
  56. @Override
  57. @Transactional(rollbackFor = Exception.class)
  58. public Boolean removeChild(Long[] ids) {
  59. ${childClassName}Mapper.deleteBatchIds(CollUtil.toList(ids));
  60. return Boolean.TRUE;
  61. }
  62. }