| package ${packageName}.service.impl; | 
|   | 
| import java.util.List; | 
|     #foreach ($column in $columns) | 
|         #if($column.javaField == 'createTime' || $column.javaField == 'updateTime') | 
|         import com.ruoyi.common.utils.DateUtils; | 
|             #break | 
|         #end | 
|     #end | 
|   | 
| import com.ruoyi.common.utils.uuid.IdUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
| import java.util.ArrayList; | 
| import com.ruoyi.common.utils.StringUtils; | 
| import com.ruoyi.common.utils.SecurityUtils; | 
|     #if($table.sub) | 
|     import org.springframework.transaction.annotation.Transactional; | 
|     import ${packageName}.domain.${subClassName}; | 
|     #end | 
| import ${packageName}.mapper.${ClassName}Mapper; | 
| import ${packageName}.domain.${ClassName}; | 
| import ${packageName}.service.I${ClassName}Service; | 
|   | 
| /** | 
|  * ${functionName}Service业务层处理 | 
|  * | 
|  * @author ${author} | 
|  * @date ${datetime} | 
|  */ | 
| @Service | 
| public class ${ClassName}ServiceImpl implements I${ClassName}Service { | 
|     @Autowired | 
|     private ${ClassName}Mapper ${className}Mapper; | 
|   | 
|     /** | 
|      * 查询${functionName} | 
|      * | 
|      * @param ${pkColumn.javaField} ${functionName}主键 | 
|      * @return ${functionName} | 
|      */ | 
|     @Override | 
|     public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { | 
|         return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); | 
|     } | 
|   | 
|     /** | 
|      * 查询${functionName}列表 | 
|      * | 
|      * @param ${className} ${functionName} | 
|      * @return ${functionName} | 
|      */ | 
|     @Override | 
|     public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) { | 
|         return ${className}Mapper.select${ClassName}List(${className}); | 
|     } | 
|   | 
|     /** | 
|      * 新增${functionName} | 
|      * | 
|      * @param ${className} ${functionName} | 
|      * @return 结果 | 
|      */ | 
|         #if($table.sub) | 
|         @Transactional | 
|         #end | 
|     @Override | 
|     public int insert${ClassName}(${ClassName} ${className}) { | 
|         #foreach ($column in $columns) | 
|             #if($column.javaField == 'id') | 
|                 ${className}.setId(IdUtils.simpleUUID()); | 
|             #end | 
|             #if($column.javaField == 'createTime') | 
|                 ${className}.setCreateTime(DateUtils.getNowDate()); | 
|             #end | 
|             #if($column.javaField == 'createBy') | 
|                 ${className}.setCreateBy(SecurityUtils.getUsername()); | 
|             #end | 
|             #if($column.javaField == 'userId') | 
|                 ${className}.setUserId(SecurityUtils.getUserId()); | 
|             #end | 
|         #end | 
|         #if($table.sub) | 
|             int rows = ${className}Mapper.insert${ClassName}(${className}); | 
|             insert${subClassName}(${className}); | 
|             return rows; | 
|         #else | 
|             return ${className}Mapper.insert${ClassName}(${className}); | 
|         #end | 
|     } | 
|   | 
|     /** | 
|      * 修改${functionName} | 
|      * | 
|      * @param ${className} ${functionName} | 
|      * @return 结果 | 
|      */ | 
|         #if($table.sub) | 
|         @Transactional | 
|         #end | 
|     @Override | 
|     public int update${ClassName}(${ClassName} ${className}) { | 
|         #foreach ($column in $columns) | 
|             #if($column.javaField == 'updateTime') | 
|                 ${className}.setUpdateTime(DateUtils.getNowDate()); | 
|             #end | 
|             #if($column.javaField == 'updateBy') | 
|                 ${className}.setUpdateBy(SecurityUtils.getUsername()); | 
|             #end | 
|         #end | 
|         #if($table.sub) | 
|                 ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()) | 
|             ; | 
|             insert${subClassName}(${className}); | 
|         #end | 
|         return ${className}Mapper.update${ClassName}(${className}); | 
|     } | 
|   | 
|     /** | 
|      * 批量删除${functionName} | 
|      * | 
|      * @param ${pkColumn.javaField}s 需要删除的${functionName}主键 | 
|      * @return 结果 | 
|      */ | 
|         #if($table.sub) | 
|         @Transactional | 
|         #end | 
|     @Override | 
|     public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) { | 
|         #if($table.sub) | 
|                 ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); | 
|         #end | 
|         return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s); | 
|     } | 
|   | 
|     /** | 
|      * 删除${functionName}信息 | 
|      * | 
|      * @param ${pkColumn.javaField} ${functionName}主键 | 
|      * @return 结果 | 
|      */ | 
|         #if($table.sub) | 
|         @Transactional | 
|         #end | 
|     @Override | 
|     public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { | 
|         #if($table.sub) | 
|                 ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); | 
|         #end | 
|         return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); | 
|     } | 
|     #if($table.sub) | 
|   | 
|         /** | 
|          * 新增${subTable.functionName}信息 | 
|          * | 
|          * @param ${className} ${functionName}对象 | 
|          */ | 
|         public void insert${subClassName}(${ClassName} ${className}) { | 
|             List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); | 
|             ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); | 
|             if (StringUtils.isNotNull(${subclassName}List)) { | 
|                 List<${subClassName}> list = new ArrayList<${subClassName}>(); | 
|                 for (${subClassName} ${subclassName} :${subclassName}List) | 
|                 { | 
|                     ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); | 
|                     list.add(${subclassName}); | 
|                 } | 
|                 if (list.size() > 0) { | 
|                         ${className}Mapper.batch${subClassName}(list); | 
|                 } | 
|             } | 
|         } | 
|     #end | 
| } |