package ${packageName}.service.impl; ##判断是否包含用户选择框的标志位 #set( $hasUser = 0) ##判断是否包含用户选择框的标志位 #set( $hasDept = 0) ##判断是否需要引入collectionUtil #set( $hasCollectionUtil = 0) #foreach($column in $columns) #if($column.htmlType == "user") #set( $hasUser = $hasUser + 1) #set( $hasCollectionUtil = $hasCollectionUtil + 1) #elseif($column.htmlType == "dept") #set( $hasDept = $hasDept + 1) #set( $hasCollectionUtil = $hasCollectionUtil + 1) #end #end import java.util.List; import org.springframework.stereotype.Service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.github.pagehelper.PageInfo; import com.aidex.common.core.domain.BaseEntity; import com.aidex.common.core.service.BaseServiceImpl; ##引入用户工具类和用户对象 #if($hasUser >0 ) import com.aidex.framework.cache.UserUtils; import com.aidex.common.core.domain.entity.SysUser; #end ##引入部门工具类和部门对象 #if($hasDept >0 ) import com.aidex.framework.cache.DeptUtils; import com.aidex.common.core.domain.entity.SysDept; #end #if($hasUser >0 || $hasDept >0 ) import com.aidex.common.utils.StringUtils; #end import ${packageName}.mapper.${ClassName}Mapper; import ${packageName}.domain.${ClassName}; import ${packageName}.service.${ClassName}Service; import org.springframework.transaction.annotation.Transactional; #if(${hasSubParam} == 'true') import ${packageName}.mapper.${subTableJavaNameCap}Mapper; import ${packageName}.domain.${subTableJavaNameCap}; import org.springframework.beans.factory.annotation.Autowired; import com.aidex.common.exception.CustomException; #end ##是否有排序字段 #foreach($column in $columns) #if($column.columnName == "sort") import com.aidex.common.utils.NumberUtils; #break; #end #end ##唯一性校验 #foreach($column in $columns) #if($column.isUnique == "1") import com.aidex.common.exception.BizException; #set( $hasCollectionUtil = $hasCollectionUtil + 1) #break; #end #end ##判断是否需要引入collectionUtil #if($hasCollectionUtil >0 ) import org.springframework.util.CollectionUtils; #end /** * ${functionName}Service业务层处理 * @author ${functionAuthor} * @email ${functionAuthorEmail} * @date ${datetime} */ @Service @Transactional(readOnly = true) public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper, ${ClassName}> implements ${ClassName}Service { private static final Logger log = LoggerFactory.getLogger(${ClassName}ServiceImpl.class); #if(${hasSubParam} == 'true') @Autowired(required = false) private ${subTableJavaNameCap}Mapper ${subTableJavaNameUnCap}Mapper; #end /** * 获取单条数据 * @param ${className} ${functionName} * @return ${functionName} */ @Override public ${ClassName} get(${ClassName} ${className}) { ${ClassName} dto = super.get(${className}); #foreach($column in $columns) #set($javaField=$column.javaField) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #if($column.htmlType == "user") if (StringUtils.isNotEmpty(dto.get${AttrName}())){ SysUser sysUser = UserUtils.getSysUser(dto.get${AttrName}()); if (null != sysUser){ dto.set${AttrName}Name(sysUser.getName()); } } #elseif($column.htmlType == "dept") if (StringUtils.isNotEmpty(dto.get${AttrName}())){ SysDept sysDept = DeptUtils.getSysDept(dto.get${AttrName}()); if (null != sysDept){ dto.set${AttrName}Name(sysDept.getDeptName()); } } #end #end return dto; } /** * 获取单条数据 * @param id ${functionName}id * @return ${functionName} */ @Override public ${ClassName} get(String id) { ${ClassName} dto = super.get(id); #foreach($column in $columns) #set($javaField=$column.javaField) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #if($column.htmlType == "user") if (StringUtils.isNotEmpty(dto.get${AttrName}())){ SysUser sysUser = UserUtils.getSysUser(dto.get${AttrName}()); if (null != sysUser){ dto.set${AttrName}Name(sysUser.getName()); } } #elseif($column.htmlType == "dept") if (StringUtils.isNotEmpty(dto.get${AttrName}())){ SysDept sysDept = DeptUtils.getSysDept(dto.get${AttrName}()); if (null != sysDept){ dto.set${AttrName}Name(sysDept.getDeptName()); } } #end #end return dto; } /** * 查询${functionName}列表 * @param ${className} ${functionName} * @return ${functionName} */ @Override public List<${ClassName}> findList(${ClassName} ${className}) { List<${ClassName}> ${className}List = super.findList(${className}); #if($hasUser >0 || $hasDept >0) if (!CollectionUtils.isEmpty(${className}List)) { ${className}List.stream().forEach(dto -> { #foreach($column in $columns) #set($javaField=$column.javaField) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #if($column.htmlType == "user") if (StringUtils.isNotEmpty(dto.get${AttrName}())){ SysUser sysUser = UserUtils.getSysUser(dto.get${AttrName}()); if (null != sysUser){ dto.set${AttrName}Name(sysUser.getName()); } } #elseif($column.htmlType == "dept") if (StringUtils.isNotEmpty(dto.get${AttrName}())){ SysDept sysDept = DeptUtils.getSysDept(dto.get${AttrName}()); if (null != sysDept){ dto.set${AttrName}Name(sysDept.getDeptName()); } } #end #end }); } #end return ${className}List; } /** * 分页查询${functionName}列表 * @param ${className} ${functionName} * @return ${functionName} */ @Override public PageInfo<${ClassName}> findPage(${ClassName} ${className}) { PageInfo<${ClassName}> page = super.findPage(${className}); #if($hasUser >0 || $hasDept >0) if (!CollectionUtils.isEmpty(page.getList())) { page.getList().stream().forEach(dto -> { #foreach($column in $columns) #set($javaField=$column.javaField) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #if($column.htmlType == "user") if (StringUtils.isNotEmpty(dto.get${AttrName}())){ SysUser sysUser = UserUtils.getSysUser(dto.get${AttrName}()); if (null != sysUser){ dto.set${AttrName}Name(sysUser.getName()); } } #elseif($column.htmlType == "dept") if (StringUtils.isNotEmpty(dto.get${AttrName}())){ SysDept sysDept = DeptUtils.getSysDept(dto.get${AttrName}()); if (null != sysDept){ dto.set${AttrName}Name(sysDept.getDeptName()); } } #end #end }); } #end return page; } /** * 保存${functionName} * @param ${className} * @return 结果 */ @Override public boolean save(${ClassName} ${className}) { #foreach($column in $columns) #if($column.isUnique == "1") #set($attrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) check${attrName}Unique(${className}); #end #end return super.save(${className}); } #foreach($column in $columns) #if($column.isUnique == "1") #set($attrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) /** * 校验${column.columnComment}的唯一性 * @param ${className} */ @Override public void check${attrName}Unique(${ClassName} ${className}) { ${ClassName} ${className}Unique = new ${ClassName}(); ${className}Unique.setNotEqualId(${className}.getId()); ${className}Unique.set${attrName}(${className}.get${attrName}()); if (!CollectionUtils.isEmpty(mapper.findListWithUnique(${className}Unique))) { throw new BizException("${column.columnComment}已存在,请重新输入!"); } } #end #end #if($hasDisableEnable) /** * 更新${functionName}状态 * @param ${className} * @return 结果 */ @Transactional(readOnly = false) @Override public int updateStatus(${ClassName} ${className}) { return mapper.updateStatus(${className}); } #end /** * 删除${functionName}信息 * @param ${className} * @return 结果 */ @Override public boolean remove(${ClassName} ${className}) { return super.remove(${className}); } /** * 批量删除${functionName} * @param ids 需要删除的${functionName}ID * @return 结果 */ @Transactional(readOnly = false) @Override public int delete${ClassName}ByIds(String[] ids) { #if(${hasSubParam} == 'true') for (String id : ids) { ${subTableJavaNameCap} ${subTableJavaNameUnCap} = new ${subTableJavaNameCap}(); ${subTableJavaNameUnCap}.set${subTableFkNameCap}(id); List<${subTableJavaNameCap}> ${subTableJavaNameUnCap}List = ${subTableJavaNameUnCap}Mapper.findList(${subTableJavaNameUnCap}); if (${subTableJavaNameUnCap}List.size() > 0) { throw new CustomException("子表存在数据,不能删除"); } } #end return mapper.delete${ClassName}ByIds(ids, BaseEntity.DEL_FLAG_DELETE); } #foreach($column in $columns) #if($column.columnName == "sort") /** * 获取最大编号 * @param ${className} ${functionName} * @return 结果 */ @Override public int findMaxSort(${ClassName} ${className}) { return NumberUtils.nextOrder(mapper.findMaxSort(${className})); } #break #end #end }