serviceImpl.java.vm 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. package ${packageName}.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5. import org.springframework.stereotype.Service;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import com.ruoyi.common.utils.StringUtils;
  8. import java.util.List;
  9. import java.util.Map;
  10. #if($table.sub)
  11. import java.util.Arrays;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import ${packageName}.domain.${subClassName};
  14. #end
  15. import ${packageName}.mapper.${ClassName}Mapper;
  16. import ${packageName}.domain.${ClassName};
  17. import ${packageName}.service.I${ClassName}Service;
  18. /**
  19. * ${functionName}Service业务层处理
  20. *
  21. * @author ${author}
  22. * @date ${datetime}
  23. */
  24. @Service
  25. public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service {
  26. @Autowired
  27. private ${ClassName}Mapper ${className}Mapper;
  28. /**
  29. * 查询${functionName}列表
  30. *
  31. * @param ${className} ${functionName}
  32. * @return ${functionName}
  33. */
  34. @Override
  35. public List<${ClassName}> select${ClassName}List(${ClassName} ${className})
  36. {
  37. List<${ClassName}> ${className}List = ${className}Mapper.selectList(buildQueryWrapper(${className}));
  38. #if($table.sub)
  39. if (StringUtils.isNotNull(${className}List)) {
  40. for (${ClassName} temp : ${className}List) {
  41. List<${subClassName}> ${subclassName}List = ${className}Mapper.select${subClassName}By${pkColumn.capJavaField}(temp.get${pkColumn.capJavaField}());
  42. temp.set${subClassName}List(${subclassName}List);
  43. }
  44. }
  45. #end
  46. return ${className}List;
  47. }
  48. #if($table.sub)
  49. /**
  50. * 查询${functionName}
  51. *
  52. * @param ${pkColumn.javaField} ${functionName}主键
  53. * @return ${functionName}
  54. */
  55. @Override
  56. public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
  57. {
  58. ${ClassName} ${className} = ${className}Mapper.selectById(${pkColumn.javaField});
  59. List<${subClassName}> ${subclassName}List = ${className}Mapper.select${subClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});
  60. ${className}.set${subClassName}List(${subclassName}List);
  61. return ${className};
  62. }
  63. /**
  64. * 新增${functionName}
  65. *
  66. * @param ${className} ${functionName}
  67. * @return 结果
  68. */
  69. @Transactional
  70. @Override
  71. public int insert${ClassName}(${ClassName} ${className})
  72. {
  73. int rows = ${className}Mapper.insert(${className});
  74. insert${subClassName}(${className});
  75. return rows;
  76. }
  77. /**
  78. * 修改${functionName}
  79. *
  80. * @param ${className} ${functionName}
  81. * @return 结果
  82. */
  83. @Transactional
  84. @Override
  85. public int update${ClassName}(${ClassName} ${className})
  86. {
  87. ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());
  88. insert${subClassName}(${className});
  89. return ${className}Mapper.updateById(${className});
  90. }
  91. /**
  92. * 批量删除${functionName}
  93. *
  94. * @param ${pkColumn.javaField}s 需要删除的${functionName}主键
  95. * @return 结果
  96. */
  97. @Transactional
  98. @Override
  99. public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s)
  100. {
  101. List<${pkColumn.javaType}> ${pkColumn.javaField}List = Arrays.asList(${pkColumn.javaField}s);
  102. for (${pkColumn.javaType} ${pkColumn.javaField} : ${pkColumn.javaField}List) {
  103. ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField});
  104. }
  105. return ${className}Mapper.deleteBatchIds(${pkColumn.javaField}List);
  106. }
  107. /**
  108. * 删除${functionName}信息
  109. *
  110. * @param ${pkColumn.javaField} ${functionName}主键
  111. * @return 结果
  112. */
  113. @Transactional
  114. @Override
  115. public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
  116. {
  117. ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField});
  118. return ${className}Mapper.deleteById(${pkColumn.javaField});
  119. }
  120. /**
  121. * 新增${subTable.functionName}信息
  122. *
  123. * @param ${className} ${functionName}对象
  124. */
  125. private void insert${subClassName}(${ClassName} ${className})
  126. {
  127. List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List();
  128. ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}();
  129. if (StringUtils.isNotNull(${subclassName}List)) {
  130. for (${subClassName} ${subclassName} : ${subclassName}List) {
  131. ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
  132. }
  133. ${className}Mapper.batchInsert${subClassName}(${subclassName}List);
  134. }
  135. }
  136. #end
  137. private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName} query) {
  138. Map<String, Object> params = query.getParams();
  139. LambdaQueryWrapper<${ClassName}> lqw = Wrappers.lambdaQuery();
  140. #foreach($column in $columns)
  141. #if($column.query)
  142. #set($queryType=$column.queryType)
  143. #set($javaField=$column.javaField)
  144. #set($javaType=$column.javaType)
  145. #set($columnName=$column.columnName)
  146. #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  147. #set($mpMethod=$column.queryType.toLowerCase())
  148. #if($queryType != 'BETWEEN')
  149. #if($javaType == 'String')
  150. #set($condition='StringUtils.isNotBlank(query.get'+$AttrName+'())')
  151. #else
  152. #set($condition='query.get'+$AttrName+'() != null')
  153. #end
  154. lqw.$mpMethod($condition, ${ClassName}::get$AttrName, query.get$AttrName());
  155. #else
  156. lqw.between(params.get("begin$AttrName") != null && params.get("end$AttrName") != null,
  157. ${ClassName}::get$AttrName ,params.get("begin$AttrName"), params.get("end$AttrName"));
  158. #end
  159. #end
  160. #end
  161. return lqw;
  162. }
  163. }