src/main/java/com/lf/server/mapper/data/DirMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/all/BaseUploadService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/data/DirService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/data/DirMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/lf/server/mapper/data/DirMapper.java
@@ -115,4 +115,20 @@ * @return */ public List<DirEntity> selectDirsForPrj(); /** * 根据父ID查找最大排序号 * * @return */ public Integer selectMaxOrderNum(); /** * 根据名称查找目录 * * @param name * @param pid * @return */ public DirEntity selectDirByName(String name, Integer pid); } src/main/java/com/lf/server/service/all/BaseUploadService.java
@@ -7,6 +7,7 @@ import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.*; import com.lf.server.service.data.DirService; import com.lf.server.service.sys.TokenService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -14,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; @@ -27,11 +29,14 @@ */ @Service public class BaseUploadService { @Autowired @Resource protected DirService dirService; @Autowired @Resource protected PathHelper pathHelper; @Resource protected TokenService tokenService; public final Log log = LogFactory.getLog(getClass()); @@ -560,7 +565,7 @@ if (StringHelper.isEmpty(code)) { DirEntity baseDir = findBaseDirByPath(dirs, filePath); if (null != baseDir) { createDirByPath(baseDir, mfe.getPath()); createDirByPath(baseDir, mfe.getPath().replace("/", "\\")); dirs = dirService.selectRecursiveById(dir.getId()); code = findDirByPath(dirs, filePath, fileName); } @@ -603,7 +608,35 @@ * 根据路径创建目录 */ private void createDirByPath(DirEntity baseDir, String filePath) { int start = filePath.toLowerCase().indexOf(baseDir.getFullName().toLowerCase() + "\\") + baseDir.getFullName().length() + 1; int end = filePath.lastIndexOf("\\"); if (end <= start) { return; } if (0 == baseDir.getLevel()) { baseDir.setLevel(2); } HttpServletRequest req = WebHelper.getRequest(); UserEntity ue = tokenService.getCurrentUser(req); String[] strs = filePath.substring(start, end).split("\\\\"); for (String str : strs) { DirEntity entity = dirService.selectDirByName(str, baseDir.getId()); if (null == entity) { entity = new DirEntity(); entity.setPid(baseDir.getId()); entity.setName(str); entity.setOrderNum(dirService.selectMaxOrderNum()); entity.setLevel(baseDir.getLevel() + 1); entity.setCreateUser(ue.getId()); dirService.insert(entity); baseDir = dirService.selectDir(entity.getId()); } else { baseDir = entity; } } } /** src/main/java/com/lf/server/service/data/DirService.java
@@ -98,6 +98,16 @@ return dirMapper.selectDirsForPrj(); } @Override public Integer selectMaxOrderNum() { return dirMapper.selectMaxOrderNum(); } @Override public DirEntity selectDirByName(String name, Integer pid) { return dirMapper.selectDirByName(name, pid); } /** * 创建数据目录 */ src/main/resources/mapper/data/DirMapper.xml
@@ -53,6 +53,20 @@ select a.* from lf.sys_dir a where code not like '00%' order by code; </select> <select id="selectMaxOrderNum" resultType="java.lang.Integer"> select coalesce(max(order_num), 0) + 1 from lf.sys_dir; </select> <select id="selectDirByName" resultType="com.lf.server.entity.data.DirEntity"> select * from lf.sys_dir <where> upper(name) = #{name} <if test="pid != null"> and pid = #{pid} </if> </where> </select> <!-- 插入一条 --> <insert id="insert" parameterType="com.lf.server.entity.data.DirEntity"> <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> @@ -62,7 +76,7 @@ insert into lf.sys_dir (pid,name,exts,descr,level,order_num,create_user,create_time,checks,bak,code) values (#{pid},#{name},#{exts},#{descr},#{level},#{orderNum},#{createUser},now(),#{checks},#{bak},#{code}) (#{pid},#{name},#{exts},#{descr},#{level},#{orderNum},#{createUser},now(),#{checks},#{bak},#{code}); </insert> <!-- 插入多条 --> @@ -75,7 +89,7 @@ </foreach> </insert> <delete id="deleteDir" > <delete id="deleteDir"> delete from lf.sys_dir where id = #{id} </delete>