Browse Source

Merge branch 'feat_Sys_repo_file_manger' into feat_wangshuo

wangshuo 1 month ago
parent
commit
9e9453fc20

+ 48 - 14
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRepoController.java

@@ -1,7 +1,14 @@
 package com.ruoyi.web.controller.system;
 
+import java.io.IOException;
 import java.util.List;
 
+import com.ruoyi.common.utils.file.FileUploadUtils;
+import com.ruoyi.system.domain.SysRepoHistory;
+import com.ruoyi.common.utils.OfficeCompareUtils;
+import com.ruoyi.system.service.ISysRepoHistoryService;
+import org.apache.tomcat.util.http.fileupload.FileUpload;
+import org.apache.tomcat.util.http.fileupload.FileUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -16,7 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
 /**
  * 仓库管理Controller
  * 
- * @author ruoyi
+ * @author lixu
  * @date 2025-05-15
  */
 @RestController
@@ -26,6 +33,8 @@ public class SysRepoController extends BaseController
     @Autowired
     private ISysRepoService sysRepoService;
 
+    @Autowired
+    private ISysRepoHistoryService sysRepoHistoryService;
     /**
      * 查询仓库列表
      */
@@ -59,25 +68,50 @@ public class SysRepoController extends BaseController
         return toAjax(sysRepoService.insertSysRepo(sysRepo));
     }
 
-    @PreAuthorize("@ss.hasPermi('system:repo:addByfile')")
-    @Log(title = "新增仓库文件", businessType = BusinessType.INSERT)
-    public AjaxResult addByfile(@RequestParam("parent_id") Long parent_id,@RequestParam("file") MultipartFile file)
+    /**
+     * 更新文件版本
+     */
+    @PreAuthorize("@ss.hasPermi('system:repo:updateFile')")
+    @Log(title = "更新文件版本", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/upload_file")
+    public AjaxResult upload_file(@RequestBody SysRepo sysRepo_new)
     {
-        if(!file.isEmpty()){
-            SysRepo sysRepo = new SysRepo();
-            sysRepo.setRepoName(file.getOriginalFilename());
-            sysRepo.setParentId(parent_id);
-            sysRepo.setRepoType("file");
-            sysRepo.setRepoLevel(sysRepoService.selectSysRepoByRepoId(parent_id).getRepoLevel() + 1);
-            sysRepo.setRepoStatus("public");
-            sysRepo.setCreateBy(getLoginUser().getUserId());
-            return toAjax(sysRepoService.insertSysRepo(sysRepo));
+        if(sysRepo_new.getRepoId()==null || sysRepo_new.getUrl()==null ){
+            return AjaxResult.error("参数错误");
         }else{
-            return error("上传文件异常,请联系管理员");
+            Long repoId = sysRepo_new.getRepoId();
+            SysRepo sysRepo = sysRepoService.selectSysRepoByRepoId(repoId);
+            SysRepoHistory sysRepoHistory = new SysRepoHistory();
+            sysRepoHistory.setRepoId(sysRepo.getRepoId());
+            sysRepoHistory.setUrl(sysRepo.getUrl());
+            sysRepoHistory.setUploadBy(sysRepo.getUpdateBy());
+            sysRepoHistory.setFileVersion("v0.0.1");
+            if(sysRepoHistoryService.insertSysRepoHistory(sysRepoHistory)<1){
+                return AjaxResult.error("文件插入失败");
+            }
+            sysRepo.setUpdateBy(getUsername());
+            sysRepo.setUrl(sysRepo_new.getUrl());
+            if(sysRepoService.updateSysRepo(sysRepo)<1){
+                return AjaxResult.error("文件插入失败");
+            }
+//            OfficeCompareUtils.compare(sysRepoHistory.getUrl(),sysRepo.getUrl(),"spire");
+            return AjaxResult.success("操作成功");
         }
+    }
+    /**
+     * 获取文件版本
+     */
+    @PreAuthorize("@ss.hasPermi('system:repo:getversion')")
+    @GetMapping (value = "version/{repoId}")
+    public AjaxResult getVersion(@PathVariable("repoId") Long repoId)
+    {
+        SysRepoHistory sysRepoHistory = new SysRepoHistory();
+        sysRepoHistory.setRepoId(repoId);
 
+        return success(sysRepoHistoryService.selectSysRepoHistoryList(sysRepoHistory));
     }
 
+
     /**
      * 修改仓库
      */

+ 32 - 8
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRepo.java

@@ -1,10 +1,14 @@
 package com.ruoyi.system.domain;
 
+import com.ruoyi.common.core.domain.entity.SysMenu;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 【请填写功能名称】对象 sys_repo
  * 
@@ -15,19 +19,20 @@ public class SysRepo extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
-    /** $column.columnComment */
+    /** 仓库Id */
     private Long repoId;
 
+    private Long createBy;
     /** 名称 */
     @Excel(name = "名称")
     private String repoName;
 
     /** 类别(目录、文件) */
-    @Excel(name = "类别", readConverterExp = "目=录、文件")
+    @Excel(name = "类别", readConverterExp = "目录、文件")
     private String repoType;
 
     /** 状态(私密、公开) */
-    @Excel(name = "状态", readConverterExp = "私=密、公开")
+    @Excel(name = "状态", readConverterExp = "私密、公开")
     private String repoStatus;
 
     /** 父级 */
@@ -35,7 +40,7 @@ public class SysRepo extends BaseEntity
     private Long parentId;
 
     /** 等级(一级只能是目录类型) */
-    @Excel(name = "等级", readConverterExp = "一=级只能是目录类型")
+    @Excel(name = "等级", readConverterExp = "一级只能是目录类型")
     private Long repoLevel;
 
     /** 描述 */
@@ -46,10 +51,10 @@ public class SysRepo extends BaseEntity
     @Excel(name = "是否删除")
     private Integer isDelete;
 
-    public void setRepoId(Long repoId) 
-    {
-        this.repoId = repoId;
-    }
+    /** url */
+    private String  url;
+
+    private List<SysMenu> children = new ArrayList<SysMenu>();
 
     public Long getRepoId() 
     {
@@ -126,6 +131,24 @@ public class SysRepo extends BaseEntity
         return isDelete;
     }
 
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public List<SysMenu> getChildren()
+    {
+        return children;
+    }
+
+    public void setChildren(List<SysMenu> children)
+    {
+        this.children = children;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -141,6 +164,7 @@ public class SysRepo extends BaseEntity
             .append("repoLevel", getRepoLevel())
             .append("description", getDescription())
             .append("isDelete", getIsDelete())
+            .append("url", getIsDelete())
             .toString();
     }
 }

+ 93 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRepoHistory.java

@@ -0,0 +1,93 @@
+package com.ruoyi.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】对象 sys_repo_history
+ * 
+ * @author ruoyi
+ * @date 2025-05-19
+ */
+public class SysRepoHistory extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 历史记录ID */
+    private Long hId;
+
+    /** 归属仓库记录ID */
+    private Long repoId;
+
+    /** 上传人 */
+    private String uploadBy;
+
+    /** 版本号 */
+    private String fileVersion;
+
+    /** url */
+    private String url;
+
+    public void sethId(Long hId) 
+    {
+        this.hId = hId;
+    }
+
+    public Long gethId() 
+    {
+        return hId;
+    }
+
+    public void setRepoId(Long repoId) 
+    {
+        this.repoId = repoId;
+    }
+
+    public Long getRepoId() 
+    {
+        return repoId;
+    }
+
+    public void setUploadBy(String uploadBy) 
+    {
+        this.uploadBy = uploadBy;
+    }
+
+    public String getUploadBy() 
+    {
+        return uploadBy;
+    }
+
+    public void setFileVersion(String fileVersion) 
+    {
+        this.fileVersion = fileVersion;
+    }
+
+    public String getFileVersion() 
+    {
+        return fileVersion;
+    }
+
+    public void setUrl(String url) 
+    {
+        this.url = url;
+    }
+
+    public String getUrl() 
+    {
+        return url;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("hId", gethId())
+            .append("repoId", getRepoId())
+            .append("uploadBy", getUploadBy())
+            .append("fileVersion", getFileVersion())
+            .append("url", getUrl())
+            .toString();
+    }
+}

+ 70 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRepoHistoryMapper.java

@@ -0,0 +1,70 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.SysRepoHistory;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-05-19
+ */
+public interface SysRepoHistoryMapper 
+{
+    /**
+     * 查询【请填写功能名称】
+     * 
+     * @param hId 【请填写功能名称】主键
+     * @return 【请填写功能名称】
+     */
+    public SysRepoHistory selectSysRepoHistoryByHId(Long hId);
+
+    /**
+     * 查询【请填写功能名称】列表
+     * 
+     * @param sysRepoHistory 【请填写功能名称】
+     * @return 【请填写功能名称】集合
+     */
+    public List<SysRepoHistory> selectSysRepoHistoryList(SysRepoHistory sysRepoHistory);
+
+    /**
+     * 新增【请填写功能名称】
+     * 
+     * @param sysRepoHistory 【请填写功能名称】
+     * @return 结果
+     */
+    public int insertSysRepoHistory(SysRepoHistory sysRepoHistory);
+
+    /**
+     * 修改【请填写功能名称】
+     * 
+     * @param sysRepoHistory 【请填写功能名称】
+     * @return 结果
+     */
+    public int updateSysRepoHistory(SysRepoHistory sysRepoHistory);
+
+    /**
+     * 删除【请填写功能名称】
+     * 
+     * @param hId 【请填写功能名称】主键
+     * @return 结果
+     */
+    public int deleteSysRepoHistoryByHId(Long hId);
+
+    /**
+     * 批量删除【请填写功能名称】
+     * 
+     * @param hIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteSysRepoHistoryByHIds(Long[] hIds);
+
+//    /**
+//     * 获取历史版本列表
+//     *
+//     * @param repoId 仓库文件ID
+//     * @return 历史版本集合
+//     */
+//    public List<SysRepoHistory> selectSysRepoHistoryListByRepoId(Long repoId);
+
+}

+ 69 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRepoHistoryService.java

@@ -0,0 +1,69 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.SysRepoHistory;
+
+/**
+ * SysRepoHistoryService接口
+ * 
+ * @author ruoyi
+ * @date 2025-05-19
+ */
+public interface ISysRepoHistoryService 
+{
+    /**
+     * 查询仓库历史版本
+     * 
+     * @param hId 仓库历史版本主键
+     * @return 仓库历史记录
+     */
+    public SysRepoHistory selectSysRepoHistoryByHId(Long hId);
+
+    /**
+     * 查询仓库历史版本列表
+     * 
+     * @param sysRepoHistory 仓库历史版本
+     * @return 仓库历史版本集合
+     */
+    public List<SysRepoHistory> selectSysRepoHistoryList(SysRepoHistory sysRepoHistory);
+
+    /**
+     * 新增仓库历史版本
+     * 
+     * @param sysRepoHistory 仓库历史版本
+     * @return 结果
+     */
+    public int insertSysRepoHistory(SysRepoHistory sysRepoHistory);
+
+    /**
+     * 修改仓库历史版本
+     * 
+     * @param sysRepoHistory 仓库历史版本
+     * @return 结果
+     */
+    public int updateSysRepoHistory(SysRepoHistory sysRepoHistory);
+
+    /**
+     * 批量删除仓库历史版本
+     * 
+     * @param hIds 需要删除的仓库历史版本主键集合
+     * @return 结果
+     */
+    public int deleteSysRepoHistoryByHIds(Long[] hIds);
+
+    /**
+     * 删除仓库历史版本信息
+     * 
+     * @param hId 仓库历史版本主键
+     * @return 结果
+     */
+    public int deleteSysRepoHistoryByHId(Long hId);
+
+//    /**
+//     * 获取仓库历史版本信息
+//     *
+//     * @param repoId 文件仓库ID
+//     * @return 结果
+//     */
+//    List<SysRepoHistory> selectSysRepoHistoryListbyRepoId(Long repoId);
+}

+ 14 - 14
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRepoService.java

@@ -12,49 +12,49 @@ import com.ruoyi.system.domain.SysRepo;
 public interface ISysRepoService 
 {
     /**
-     * 查询【请填写功能名称】
+     * 查询文化仓库
      * 
-     * @param repoId 【请填写功能名称】主键
-     * @return 【请填写功能名称】
+     * @param repoId 文件仓库主键
+     * @return 文件仓库
      */
     public SysRepo selectSysRepoByRepoId(Long repoId);
 
     /**
-     * 查询【请填写功能名称】列表
+     * 查询文件仓库列表
      * 
-     * @param sysRepo 【请填写功能名称】
-     * @return 【请填写功能名称】集合
+     * @param sysRepo 文件仓库
+     * @return 文件仓库
      */
     public List<SysRepo> selectSysRepoList(SysRepo sysRepo);
 
     /**
-     * 新增【请填写功能名称】
+     * 新增文件仓库
      * 
-     * @param sysRepo 【请填写功能名称】
+     * @param sysRepo 文件仓库
      * @return 结果
      */
     public int insertSysRepo(SysRepo sysRepo);
 
     /**
-     * 修改【请填写功能名称】
+     * 修改文件仓库
      * 
-     * @param sysRepo 【请填写功能名称】
+     * @param sysRepo 文件仓库
      * @return 结果
      */
     public int updateSysRepo(SysRepo sysRepo);
 
     /**
-     * 批量删除【请填写功能名称】
+     * 批量删除文件仓库
      * 
-     * @param repoIds 需要删除的【请填写功能名称】主键集合
+     * @param repoIds 需要删除的文件仓库主键集合
      * @return 结果
      */
     public int deleteSysRepoByRepoIds(Long[] repoIds);
 
     /**
-     * 删除【请填写功能名称】信息
+     * 删除文件仓库信息
      * 
-     * @param repoId 【请填写功能名称】主键
+     * @param repoId 文件仓库主键
      * @return 结果
      */
     public int deleteSysRepoByRepoId(Long repoId);

+ 98 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRepoHistoryServiceImpl.java

@@ -0,0 +1,98 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.SysRepoHistoryMapper;
+import com.ruoyi.system.domain.SysRepoHistory;
+import com.ruoyi.system.service.ISysRepoHistoryService;
+
+/**
+ * 【】Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-05-19
+ */
+@Service
+public class SysRepoHistoryServiceImpl implements ISysRepoHistoryService 
+{
+    @Autowired
+    private SysRepoHistoryMapper sysRepoHistoryMapper;
+
+    /**
+     * 查询仓库历史版本
+     * 
+     * @param hId 仓库历史版本主键
+     * @return 仓库历史版本
+     */
+    @Override
+    public SysRepoHistory selectSysRepoHistoryByHId(Long hId)
+    {
+        return sysRepoHistoryMapper.selectSysRepoHistoryByHId(hId);
+    }
+
+    /**
+     * 查询仓库历史版本列表
+     * 
+     * @param sysRepoHistory 仓库历史版本
+     * @return 仓库历史版本
+     */
+    @Override
+    public List<SysRepoHistory> selectSysRepoHistoryList(SysRepoHistory sysRepoHistory)
+    {
+        return sysRepoHistoryMapper.selectSysRepoHistoryList(sysRepoHistory);
+    }
+
+    /**
+     * 新增仓库历史版本
+     * 
+     * @param sysRepoHistory 仓库历史版本
+     * @return 结果
+     */
+    @Override
+    public int insertSysRepoHistory(SysRepoHistory sysRepoHistory)
+    {
+        return sysRepoHistoryMapper.insertSysRepoHistory(sysRepoHistory);
+    }
+
+    /**
+     * 修改仓库历史版本
+     * 
+     * @param sysRepoHistory 仓库历史版本
+     * @return 结果
+     */
+    @Override
+    public int updateSysRepoHistory(SysRepoHistory sysRepoHistory)
+    {
+        return sysRepoHistoryMapper.updateSysRepoHistory(sysRepoHistory);
+    }
+
+    /**
+     * 批量删除仓库历史版本
+     * 
+     * @param hIds 需要删除的仓库历史版本主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSysRepoHistoryByHIds(Long[] hIds)
+    {
+        return sysRepoHistoryMapper.deleteSysRepoHistoryByHIds(hIds);
+    }
+
+    /**
+     * 删除仓库历史版本信息
+     * 
+     * @param hId 仓库历史版本主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSysRepoHistoryByHId(Long hId)
+    {
+        return sysRepoHistoryMapper.deleteSysRepoHistoryByHId(hId);
+    }
+
+//    @Override
+//    public List<SysRepoHistory> selectSysRepoHistoryListbyRepoId(Long repoId) {
+//        return sysRepoHistoryMapper.selectSysRepoHistoryByRepoId(repoId);
+//    }
+}

+ 72 - 0
ruoyi-system/src/main/resources/mapper/system/SysRepoHistoryMapper.xml

@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.SysRepoHistoryMapper">
+    
+    <resultMap type="SysRepoHistory" id="SysRepoHistoryResult">
+        <result property="hId"    column="h_id"    />
+        <result property="repoId"    column="repo_id"    />
+        <result property="uploadBy"    column="upload_by"    />
+        <result property="fileVersion"    column="file_version"    />
+        <result property="url"    column="url"    />
+    </resultMap>
+
+    <sql id="selectSysRepoHistoryVo">
+        select h_id, repo_id, upload_by, file_version, url from sys_repo_history
+    </sql>
+
+    <select id="selectSysRepoHistoryList" parameterType="SysRepoHistory" resultMap="SysRepoHistoryResult">
+        <include refid="selectSysRepoHistoryVo"/>
+        <where>  
+            <if test="repoId != null "> and repo_id = #{repoId}</if>
+            <if test="uploadBy != null  and uploadBy != ''"> and upload_by = #{uploadBy}</if>
+            <if test="fileVersion != null  and fileVersion != ''"> and file_version = #{fileVersion}</if>
+            <if test="url != null  and url != ''"> and url = #{url}</if>
+        </where>
+    </select>
+    
+    <select id="selectSysRepoHistoryByHId" parameterType="Long" resultMap="SysRepoHistoryResult">
+        <include refid="selectSysRepoHistoryVo"/>
+        where h_id = #{hId}
+    </select>
+
+    <insert id="insertSysRepoHistory" parameterType="SysRepoHistory" useGeneratedKeys="true" keyProperty="hId">
+        insert into sys_repo_history
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="repoId != null">repo_id,</if>
+            <if test="uploadBy != null and uploadBy != ''">upload_by,</if>
+            <if test="fileVersion != null and fileVersion != ''">file_version,</if>
+            <if test="url != null and url != ''">url,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="repoId != null">#{repoId},</if>
+            <if test="uploadBy != null and uploadBy != ''">#{uploadBy},</if>
+            <if test="fileVersion != null and fileVersion != ''">#{fileVersion},</if>
+            <if test="url != null and url != ''">#{url},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSysRepoHistory" parameterType="SysRepoHistory">
+        update sys_repo_history
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="repoId != null">repo_id = #{repoId},</if>
+            <if test="uploadBy != null and uploadBy != ''">upload_by = #{uploadBy},</if>
+            <if test="fileVersion != null and fileVersion != ''">file_version = #{fileVersion},</if>
+            <if test="url != null and url != ''">url = #{url},</if>
+        </trim>
+        where h_id = #{hId}
+    </update>
+
+    <delete id="deleteSysRepoHistoryByHId" parameterType="Long">
+        delete from sys_repo_history where h_id = #{hId}
+    </delete>
+
+    <delete id="deleteSysRepoHistoryByHIds" parameterType="String">
+        delete from sys_repo_history where h_id in 
+        <foreach item="hId" collection="array" open="(" separator="," close=")">
+            #{hId}
+        </foreach>
+    </delete>
+
+</mapper>

+ 6 - 1
ruoyi-system/src/main/resources/mapper/system/SysRepoMapper.xml

@@ -17,10 +17,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="repoLevel"    column="repo_level"    />
         <result property="description"    column="description"    />
         <result property="isDelete"    column="is_delete"    />
+        <result property="url"    column="url"    />
     </resultMap>
 
     <sql id="selectSysRepoVo">
-        select repo_Id, repo_name, create_by, update_by, repo_type, repo_status, create_Time, update_Time, parent_id, repo_level, description, is_delete from sys_repo
+        select repo_Id, repo_name, create_by, update_by, repo_type, repo_status, create_Time, update_Time, parent_id, repo_level, description, is_delete, url from sys_repo
     </sql>
 
     <select id="selectSysRepoList" parameterType="SysRepo" resultMap="SysRepoResult">
@@ -35,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="repoLevel != null "> and repo_level = #{repoLevel}</if>
             <if test="description != null  and description != ''"> and description = #{description}</if>
             <if test="isDelete != null "> and is_delete = #{isDelete}</if>
+            <if test="url != null "> and url = #{isDelete}</if>
         </where>
     </select>
     
@@ -57,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="repoLevel != null">repo_level,</if>
             <if test="description != null">description,</if>
             <if test="isDelete != null">is_delete,</if>
+            <if test="url != null">url,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="repoName != null and repoName != ''">#{repoName},</if>
@@ -70,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="repoLevel != null">#{repoLevel},</if>
             <if test="description != null">#{description},</if>
             <if test="isDelete != null">#{isDelete},</if>
+            <if test="url != null">#{url},</if>
          </trim>
     </insert>
 
@@ -87,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="repoLevel != null">repo_level = #{repoLevel},</if>
             <if test="description != null">description = #{description},</if>
             <if test="isDelete != null">is_delete = #{isDelete},</if>
+            <if test="url != null">url = #{url},</if>
         </trim>
         where repo_Id = #{repoId}
     </update>