package ${package}.service.impl; import ${package}.domain.${className}; <#if columns??> <#list columns as column> <#if column.columnKey = 'UNI'> <#if column_index = 1> import me.zhengjie.exception.EntityExistException; import com.yxkadmin.utils.ValidationUtil; import com.yxkadmin.utils.FileUtil; import lombok.RequiredArgsConstructor; import ${package}.repository.${className}Repository; import ${package}.service.${className}Service; import ${package}.service.dto.${className}Dto; import ${package}.service.dto.${className}QueryCriteria; import ${package}.service.mapstruct.${className}Mapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; <#if !auto && pkColumnType = 'Long'> import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.IdUtil; <#if !auto && pkColumnType = 'String'> import cn.hutool.core.util.IdUtil; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import com.yxkadmin.utils.PageUtil; import com.yxkadmin.utils.QueryHelp; import java.util.List; import java.util.Map; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.LinkedHashMap; /** * @website https://yxk-admin.vip * @description 服务实现 * @author ${author} * @date ${date} **/ @Service @RequiredArgsConstructor public class ${className}ServiceImpl implements ${className}Service { private final ${className}Repository ${changeClassName}Repository; private final ${className}Mapper ${changeClassName}Mapper; @Override public Map queryAll(${className}QueryCriteria criteria, Pageable pageable){ Page<${className}> page = ${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(${changeClassName}Mapper::toDto)); } @Override public List<${className}Dto> queryAll(${className}QueryCriteria criteria){ return ${changeClassName}Mapper.toDto(${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); } @Override @Transactional public ${className}Dto findById(${pkColumnType} ${pkChangeColName}) { ${className} ${changeClassName} = ${changeClassName}Repository.findById(${pkChangeColName}).orElseGet(${className}::new); ValidationUtil.isNull(${changeClassName}.get${pkCapitalColName}(),"${className}","${pkChangeColName}",${pkChangeColName}); return ${changeClassName}Mapper.toDto(${changeClassName}); } @Override @Transactional(rollbackFor = Exception.class) public ${className}Dto create(${className} resources) { <#if !auto && pkColumnType = 'Long'> Snowflake snowflake = IdUtil.createSnowflake(1, 1); resources.set${pkCapitalColName}(snowflake.nextId()); <#if !auto && pkColumnType = 'String'> resources.set${pkCapitalColName}(IdUtil.simpleUUID()); <#if columns??> <#list columns as column> <#if column.columnKey = 'UNI'> if(${changeClassName}Repository.findBy${column.capitalColumnName}(resources.get${column.capitalColumnName}()) != null){ throw new EntityExistException(${className}.class,"${column.columnName}",resources.get${column.capitalColumnName}()); } return ${changeClassName}Mapper.toDto(${changeClassName}Repository.save(resources)); } @Override @Transactional(rollbackFor = Exception.class) public void update(${className} resources) { ${className} ${changeClassName} = ${changeClassName}Repository.findById(resources.get${pkCapitalColName}()).orElseGet(${className}::new); ValidationUtil.isNull( ${changeClassName}.get${pkCapitalColName}(),"${className}","id",resources.get${pkCapitalColName}()); <#if columns??> <#list columns as column> <#if column.columnKey = 'UNI'> <#if column_index = 1> ${className} ${changeClassName}1 = null; ${changeClassName}1 = ${changeClassName}Repository.findBy${column.capitalColumnName}(resources.get${column.capitalColumnName}()); if(${changeClassName}1 != null && !${changeClassName}1.get${pkCapitalColName}().equals(${changeClassName}.get${pkCapitalColName}())){ throw new EntityExistException(${className}.class,"${column.columnName}",resources.get${column.capitalColumnName}()); } ${changeClassName}.copy(resources); ${changeClassName}Repository.save(${changeClassName}); } @Override public void deleteAll(${pkColumnType}[] ids) { for (${pkColumnType} ${pkChangeColName} : ids) { ${changeClassName}Repository.deleteById(${pkChangeColName}); } } @Override public void download(List<${className}Dto> all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (${className}Dto ${changeClassName} : all) { Map map = new LinkedHashMap<>(); <#list columns as column> <#if column.columnKey != 'PRI'> <#if column.remark != ''> map.put("${column.remark}", ${changeClassName}.get${column.capitalColumnName}()); <#else> map.put(" ${column.changeColumnName}", ${changeClassName}.get${column.capitalColumnName}()); list.add(map); } FileUtil.downloadExcel(list, response); } }