406 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
			
		
		
	
	
			406 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
| package ${packageName}.admin.service.${moduleName}.impl;
 | |
| 
 | |
| #if(!$table.genTpl.equals("crud"))
 | |
| import com.alibaba.fastjson.JSONArray;
 | |
| #end
 | |
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | |
| import com.baomidou.mybatisplus.core.metadata.IPage;
 | |
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | |
| import com.github.yulichang.query.MPJQueryWrapper;
 | |
| import ${packageName}.admin.service.${moduleName}.I${EntityName}Service;
 | |
| import ${packageName}.admin.validate.common.PageParam;
 | |
| import ${packageName}.admin.validate.${moduleName}.${EntityName}Param;
 | |
| import ${packageName}.admin.vo.${moduleName}.${EntityName}ListVo;
 | |
| import ${packageName}.admin.vo.${moduleName}.${EntityName}DetailVo;
 | |
| import ${packageName}.common.core.PageResult;
 | |
| import ${packageName}.common.entity.${moduleName}.${EntityName};
 | |
| import ${packageName}.common.mapper.${moduleName}.${EntityName}Mapper;
 | |
| import ${packageName}.common.utils.ArrayUtil;
 | |
| import ${packageName}.common.utils.TimeUtil;
 | |
| import ${packageName}.common.utils.UrlUtil;
 | |
| import ${packageName}.common.config.GlobalConfig;
 | |
| import org.springframework.beans.BeanUtils;
 | |
| import org.springframework.stereotype.Service;
 | |
| import org.springframework.util.Assert;
 | |
| 
 | |
| import javax.annotation.Resource;
 | |
| import java.util.*;
 | |
| 
 | |
| /**
 | |
|  * ${functionName}实现类
 | |
|  */
 | |
| @Service
 | |
| public class ${EntityName}ServiceImpl implements I${EntityName}Service {
 | |
|     ## 设置模板方式的变量
 | |
|     #if($table.genTpl.equals("crud"))
 | |
|         #set($genTpl = "PageResult<${EntityName}ListVo>")
 | |
|         #if($isSearch)
 | |
|             #set($isSearchParam = true)
 | |
|             #set($genParam = "PageParam pageParam, Map<String, String> params")
 | |
|         #else
 | |
|             #set($isSearchParam = false)
 | |
|             #set($genParam = "PageParam pageParam")
 | |
|         #end
 | |
|     #else
 | |
|         #set($genTpl = "JSONArray")
 | |
|         #if($isSearch)
 | |
|             #set($isSearchParam = true)
 | |
|             #set($genParam = "Map<String, String> params")
 | |
|         #else
 | |
|             #set($isSearchParam = false)
 | |
|             #set($genParam = "")
 | |
|         #end
 | |
|     #end
 | |
|     ## 设置基本的参数变量
 | |
|     #set($isAuthor = !$authorName.equals(""))
 | |
|     #set($pageParam = "@param pageParam 分页参数")
 | |
|     #set($searchparams = "@param params 搜索参数")
 | |
| 
 | |
|     @Resource
 | |
|     ${EntityName}Mapper ${entityName}Mapper;
 | |
| 
 | |
|     /**
 | |
|      * ${functionName}列表
 | |
|      *
 | |
|      #if($isAuthor)
 | |
|      * @author ${authorName}
 | |
|      #end
 | |
|      #if($table.genTpl.equals("crud"))
 | |
|      * ${pageParam}
 | |
|      #end
 | |
|      #if($isSearchParam)
 | |
|      * ${searchparams}
 | |
|      #end
 | |
|      * @return $genTpl
 | |
|      */
 | |
|     @Override
 | |
|     public $genTpl list($genParam) {
 | |
|     #if($table.genTpl.equals("crud"))
 | |
|         Integer page  = pageParam.getPageNo();
 | |
|         Integer limit = pageParam.getPageSize();
 | |
|     #end
 | |
| 
 | |
|     #if(!$table.subTableName.equals("") && !$table.subTableFk.equals(""))
 | |
|         #set($queryWrapper = "mpjQueryWrapper")
 | |
|         MPJQueryWrapper<${EntityName}> mpjQueryWrapper = new MPJQueryWrapper<>();
 | |
|         mpjQueryWrapper.innerJoin("?_$table.subTableName f ON f.$table.SubTableFk=t.id".replace("?_", GlobalConfig.tablePrefix));
 | |
|         #if($allFields.contains("is_delete"))
 | |
|         mpjQueryWrapper.eq("is_delete", 0);
 | |
|         #end
 | |
|         #if($allFields.contains("sort"))
 | |
|          mpjQueryWrapper.orderByDesc(Arrays.asList("sort", "id"));
 | |
|         #else
 | |
|         mpjQueryWrapper.orderByDesc("id");
 | |
|         #end
 | |
|     #else
 | |
|         #set($queryWrapper = "queryWrapper")
 | |
|         QueryWrapper<${EntityName}> queryWrapper = new QueryWrapper<>();
 | |
|         #if($allFields.contains("is_delete"))
 | |
|         queryWrapper.eq("is_delete", 0);
 | |
|         #end
 | |
|         #if($allFields.contains("sort"))
 | |
|         queryWrapper.orderByDesc(Arrays.asList("sort", "id"));
 | |
|         #else
 | |
|         queryWrapper.orderByDesc("id");
 | |
|         #end
 | |
|     #end
 | |
| 
 | |
|     #if($isSearch)
 | |
|         ${entityName}Mapper.setSearch($queryWrapper, params, new String[]{
 | |
|     #foreach ($column in $columns)
 | |
|     #if($column.isQuery)
 | |
|         #if($dateFields.contains($column.columnName))
 | |
|             "datetime:${column.javaField}Start-${column.javaField}End@${column.columnName}:str",
 | |
|         #elseif($column.javaType=="Integer")
 | |
|             #if($column.javaField.equals($column.columnName))
 | |
|             "${column.queryType.toLowerCase()}:${column.javaField}:int",
 | |
|             #else
 | |
|             "${column.queryType.toLowerCase()}:${column.javaField}@${column.columnName}:int",
 | |
|             #end
 | |
|         #elseif($column.javaType=="Long")
 | |
|             #if($column.javaField.equals($column.columnName))
 | |
|             "${column.queryType.toLowerCase()}:${column.javaField}:long",
 | |
|             #else
 | |
|             "${column.queryType.toLowerCase()}:${column.javaField}@${column.columnName}:long",
 | |
|             #end
 | |
|         #else
 | |
|             #if($column.javaField.equals($column.columnName))
 | |
|             "${column.queryType.toLowerCase()}:${column.javaField}:str",
 | |
|             #else
 | |
|             "${column.queryType.toLowerCase()}:${column.javaField}@${column.columnName}:str",
 | |
|             #end
 | |
|         #end
 | |
|     #end
 | |
|     #end
 | |
|         });
 | |
|     #end
 | |
| 
 | |
|     #if(!$table.subTableName.equals("") && !$table.subTableFk.equals(""))
 | |
|         #set($isJoin = true)
 | |
|         #set($joinCrudList = "${EntityName}ListVo")
 | |
|         #set($joinCrudName = "iPage.getRecords()")
 | |
|         #if($table.genTpl.equals("crud"))
 | |
|         IPage<${EntityName}ListVo> iPage = ${entityName}Mapper.selectJoinPage(
 | |
|                 new Page<>(page, limit),
 | |
|                 ${EntityName}ListVo.class,
 | |
|                 $queryWrapper);
 | |
|         #else
 | |
|         List<${EntityName}ListVo> iPage = ${entityName}Mapper.selectJoinList(
 | |
|                 ${EntityName}ListVo.class,
 | |
|                 $queryWrapper);
 | |
|         #end
 | |
|     #else
 | |
|         #set($isJoin = false)
 | |
|         #set($joinCrudList = "${EntityName}")
 | |
|         #if($table.genTpl.equals("crud"))
 | |
|         #set($joinCrudName = "iPage.getRecords()")
 | |
|         IPage<${EntityName}> iPage = ${entityName}Mapper.selectPage(new Page<>(page, limit), $queryWrapper);
 | |
|         #else
 | |
|         #set($joinCrudName = "array")
 | |
|         List<${EntityName}> array = ${entityName}Mapper.selectList($queryWrapper);
 | |
|         #end
 | |
|     #end
 | |
| 
 | |
|     #set($filter = false)
 | |
|     #if($listFields.contains("create_time") || $listFields.contains("update_time") ||
 | |
|         $listFields.contains("delete_time") || $listFields.contains("start_time") ||
 | |
|         $listFields.contains("end_time") || $listFields.contains("image") ||
 | |
|         $listFields.contains("avatar") || $listFields.contains("logo") ||
 | |
|         $listFields.contains("img"))
 | |
|         #set($filter = true)
 | |
|         #if(!$isJoin)
 | |
|         List<${EntityName}ListVo> list = new LinkedList<>();
 | |
|         #end
 | |
|         for($joinCrudList item : $joinCrudName) {
 | |
|         #if(!$isJoin)
 | |
|             ${EntityName}ListVo vo = new ${EntityName}ListVo();
 | |
|             BeanUtils.copyProperties(item, vo);
 | |
|             #if($listFields.contains("image"))
 | |
|             vo.setImage(UrlUtil.toAbsoluteUrl(item.getImage()));
 | |
|             #end
 | |
|             #if($listFields.contains("avatar"))
 | |
|             vo.setAvatar(UrlUtil.toAbsoluteUrl(item.getAvatar()));
 | |
|             #end
 | |
|             #if($listFields.contains("logo"))
 | |
|             vo.setLogo(UrlUtil.toAbsoluteUrl(item.getLogo()));
 | |
|             #end
 | |
|             #if($listFields.contains("img"))
 | |
|             vo.setImg(UrlUtil.toAbsoluteUrl(item.getImg()));
 | |
|             #end
 | |
|             #if($listFields.contains("create_time"))
 | |
|             vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
 | |
|             #end
 | |
|             #if($listFields.contains("update_time"))
 | |
|             vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
 | |
|             #end
 | |
|             #if($listFields.contains("delete_time"))
 | |
|             vo.setDeleteTime(TimeUtil.timestampToDate(item.getDeleteTime()));
 | |
|             #end
 | |
|             #if($listFields.contains("start_time"))
 | |
|             vo.setStartTime(TimeUtil.timestampToDate(item.getStartTime()));
 | |
|             #end
 | |
|             #if($listFields.contains("end_time"))
 | |
|             vo.setEndTime(TimeUtil.timestampToDate(item.getEndTime()));
 | |
|             #end
 | |
|             list.add(vo);
 | |
|         #else
 | |
|             #if($listFields.contains("image"))
 | |
|             item.setImage(UrlUtil.toAbsoluteUrl(item.getImage()));
 | |
|             #end
 | |
|             #if($listFields.contains("avatar"))
 | |
|             item.setAvatar(UrlUtil.toAbsoluteUrl(item.getAvatar()));
 | |
|             #end
 | |
|             #if($listFields.contains("logo"))
 | |
|             item.setLogo(UrlUtil.toAbsoluteUrl(item.getLogo()));
 | |
|             #end
 | |
|             #if($listFields.contains("img"))
 | |
|             item.setImg(UrlUtil.toAbsoluteUrl(item.getImg()));
 | |
|             #end
 | |
|             #if($listFields.contains("create_time"))
 | |
|             item.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
 | |
|             #end
 | |
|             #if($listFields.contains("update_time"))
 | |
|             item.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
 | |
|             #end
 | |
|             #if($listFields.contains("delete_time"))
 | |
|             item.setDeleteTime(TimeUtil.timestampToDate(item.getDeleteTime()));
 | |
|             #end
 | |
|             #if($listFields.contains("start_time"))
 | |
|             item.setStartTime(TimeUtil.timestampToDate(item.getStartTime()));
 | |
|             #end
 | |
|             #if($listFields.contains("end_time"))
 | |
|             item.setEndTime(TimeUtil.timestampToDate(item.getEndTime()));
 | |
|             #end
 | |
|         #end
 | |
|         }
 | |
|     #end
 | |
| 
 | |
|     #if($table.genTpl.equals("crud"))
 | |
|         #if($isJoin)
 | |
|         return PageResult.iPageHandle(iPage);
 | |
|         #else
 | |
|         return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
 | |
|         #end
 | |
|     #else
 | |
|         #if($filter)
 | |
|         JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(list));
 | |
|         #else
 | |
|         JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(array));
 | |
|         #end
 | |
|         return ArrayUtil.listToTree(jsonArray, "${table.treePrimary}", "${table.treeParent}", "children");
 | |
|     #end
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * ${functionName}详情
 | |
|      *
 | |
|      #if($isAuthor)
 | |
|      * @author ${authorName}
 | |
|      #end
 | |
|      * @param id 主键参数
 | |
|      * @return ${EntityName}
 | |
|      */
 | |
|     @Override
 | |
|     public ${EntityName}DetailVo detail(Integer id) {
 | |
|         ${EntityName} model = ${entityName}Mapper.selectOne(
 | |
|                 new QueryWrapper<${EntityName}>()
 | |
|                     .eq("id", id)
 | |
|                     #if($allFields.contains("is_delete"))
 | |
|                     .eq("is_delete", 0)
 | |
|                     #end
 | |
|                     .last("limit 1"));
 | |
| 
 | |
|         Assert.notNull(model, "数据不存在");
 | |
| 
 | |
|         ${EntityName}DetailVo vo = new ${EntityName}DetailVo();
 | |
|         BeanUtils.copyProperties(model, vo);
 | |
|     #if($detailFields.contains("create_time") || $detailFields.contains("update_time") ||
 | |
|         $detailFields.contains("delete_time") || $detailFields.contains("start_time") ||
 | |
|         $detailFields.contains("end_time") || $detailFields.contains("image") ||
 | |
|         $detailFields.contains("avatar") || $detailFields.contains("logo") ||
 | |
|         $detailFields.contains("img"))
 | |
|         #if($detailFields.contains("image"))
 | |
|         vo.setImage(UrlUtil.toAbsoluteUrl(model.getImage()));
 | |
|         #end
 | |
|         #if($detailFields.contains("avatar"))
 | |
|         vo.setAvatar(UrlUtil.toAbsoluteUrl(model.getAvatar()));
 | |
|         #end
 | |
|         #if($detailFields.contains("logo"))
 | |
|         vo.setLogo(UrlUtil.toAbsoluteUrl(model.getLogo()));
 | |
|         #end
 | |
|         #if($detailFields.contains("img"))
 | |
|         vo.setImg(UrlUtil.toAbsoluteUrl(model.getImg()));
 | |
|         #end
 | |
|         #if($detailFields.contains("create_time"))
 | |
|         vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime()));
 | |
|         #end
 | |
|         #if($detailFields.contains("update_time"))
 | |
|         vo.setUpdateTime(TimeUtil.timestampToDate(model.getUpdateTime()));
 | |
|         #end
 | |
|         #if($detailFields.contains("delete_time"))
 | |
|         vo.setDeleteTime(TimeUtil.timestampToDate(model.getDeleteTime()));
 | |
|         #end
 | |
|         #if($detailFields.contains("start_time"))
 | |
|         vo.setStartTime(TimeUtil.timestampToDate(model.getStartTime()));
 | |
|         #end
 | |
|         #if($detailFields.contains("end_time"))
 | |
|         vo.setEndTime(TimeUtil.timestampToDate(model.getEndTime()));
 | |
|         #end
 | |
|      #end
 | |
|         return vo;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * ${functionName}新增
 | |
|      *
 | |
|      #if($isAuthor)
 | |
|      * @author ${authorName}
 | |
|      #end
 | |
|      * @param ${entityName}Param 参数
 | |
|      */
 | |
|     @Override
 | |
|     public void add(${EntityName}Param ${entityName}Param) {
 | |
|         ${EntityName} model = new ${EntityName}();
 | |
|     #foreach ($column in $columns)
 | |
|     #if($column.isInsert)
 | |
|         #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
 | |
|         #if($column.javaField.equals("image") || $column.javaField.equals("avatar") || $column.javaField.equals("logo") || $column.javaField.equals("img"))
 | |
|         model.set${AttrName}(UrlUtil.toRelativeUrl(${entityName}Param.get${AttrName}()));
 | |
|         #elseif(!$dateFields.contains($column.columnName) and !$column.javaField.equals("isDelete"))
 | |
|         model.set${AttrName}(${entityName}Param.get${AttrName}());
 | |
|         #elseif($column.htmlType=="datetime")
 | |
|         model.set${AttrName}(TimeUtil.dateToTimestamp(${entityName}Param.get${AttrName}()));
 | |
|         #end
 | |
|     #end
 | |
|     #end
 | |
|         ${entityName}Mapper.insert(model);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * ${functionName}编辑
 | |
|      *
 | |
|      #if($isAuthor)
 | |
|      * @author ${authorName}
 | |
|      #end
 | |
|      * @param ${entityName}Param 参数
 | |
|      */
 | |
|     @Override
 | |
|     public void edit(${EntityName}Param ${entityName}Param) {
 | |
|         ${EntityName} model = ${entityName}Mapper.selectOne(
 | |
|                 new QueryWrapper<${EntityName}>()
 | |
|                     .eq("id",  ${entityName}Param.getId())
 | |
|                     #if($allFields.contains("is_delete"))
 | |
|                     .eq("is_delete", 0)
 | |
|                     #end
 | |
|                     .last("limit 1"));
 | |
| 
 | |
|         Assert.notNull(model, "数据不存在!");
 | |
| 
 | |
|     #foreach ($column in $columns)
 | |
|     #if($column.isEdit==1)
 | |
|         #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
 | |
|         #if($column.javaField.equals("image") || $column.javaField.equals("avatar") || $column.javaField.equals("logo") || $column.javaField.equals("img"))
 | |
|         model.set${AttrName}(UrlUtil.toRelativeUrl(${entityName}Param.get${AttrName}()));
 | |
|         #elseif(!$dateFields.contains($column.columnName) and !$column.javaField.equals("isDelete"))
 | |
|         model.set${AttrName}(${entityName}Param.get${AttrName}());
 | |
|         #elseif($column.htmlType=="datetime")
 | |
|         model.set${AttrName}(TimeUtil.dateToTimestamp(${entityName}Param.get${AttrName}()));
 | |
|         #end
 | |
|     #end
 | |
|     #end
 | |
|         ${entityName}Mapper.updateById(model);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * ${functionName}删除
 | |
|      *
 | |
|      #if($isAuthor)
 | |
|      * @author ${authorName}
 | |
|      #end
 | |
|      * @param id 主键ID
 | |
|      */
 | |
|     @Override
 | |
|     public void del(Integer id) {
 | |
|         ${EntityName} model = ${entityName}Mapper.selectOne(
 | |
|                 new QueryWrapper<${EntityName}>()
 | |
|                     .eq("id", id)
 | |
|                     #if($allFields.contains("is_delete"))
 | |
|                     .eq("is_delete", 0)
 | |
|                     #end
 | |
|                     .last("limit 1"));
 | |
| 
 | |
|         Assert.notNull(model, "数据不存在!");
 | |
| 
 | |
|     #if($allFields.contains("is_delete"))
 | |
|         model.setIsDelete(1);
 | |
|         #if($allFields.contains("delete_time"))
 | |
|         model.setDeleteTime(System.currentTimeMillis() / 1000);
 | |
|         #end
 | |
|         ${entityName}Mapper.updateById(model);
 | |
|     #else
 | |
|         ${entityName}Mapper.delete(new QueryWrapper<${EntityName}>().eq("id", id));
 | |
|     #end
 | |
|     }
 | |
| 
 | |
| }
 |