qianxb 1 рік тому
батько
коміт
7de7197c0e

+ 3 - 1
blade-service/blade-land/src/main/java/org/springblade/land/mapper/AttachmentInfoMapper.java

@@ -32,9 +32,11 @@ import java.util.List;
  */
 public interface AttachmentInfoMapper extends BaseMapper<AttachmentInfo> {
 
-    void deleteByMasterId(@Param("masterId") Long masterId);
+    void deleteByMasterId(@Param("masterId") Long masterId,@Param("projectId") Long projectId);
 
     void deleteByMasterIds(@Param("masterIds") List<Long> masterIds);
 
     void delete(@Param("id") Long id);
+
+    void deleteBatch(@Param("ids") List<Long> collect);
 }

+ 8 - 1
blade-service/blade-land/src/main/java/org/springblade/land/mapper/AttachmentInfoMapper.xml

@@ -5,7 +5,7 @@
 
     <delete id="deleteByMasterId">
         delete from l_attachment_info
-        where master_id = #{masterId}
+        where master_id = #{masterId} and project_id = #{projectId}
     </delete>
     <delete id="deleteByMasterIds">
         delete from l_attachment_info
@@ -18,4 +18,11 @@
         delete from l_attachment_info
         where id = #{id}
     </delete>
+    <delete id="deleteBatch">
+        delete from l_attachment_info
+        where id in
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 </mapper>

+ 3 - 1
blade-service/blade-land/src/main/java/org/springblade/land/service/IAttachmentInfoService.java

@@ -34,11 +34,13 @@ public interface IAttachmentInfoService extends BaseService<AttachmentInfo> {
     List<AttachmentInfo> getAllFile(Long masterId);
 
     //根据主件id删除附件
-    void deleteByMasterId(Long id);
+    void deleteByMasterId(Long id,Long projectId);
 
     //根据主件id批量删除附件
     void deleteByMasterIds(List<Long> ids);
 
     //根据附件id删除附件
     void delete(Long id);
+
+    void deleteBatch(List<Long> collect);
 }

+ 11 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/AttachmentInfoServiceImpl.java

@@ -78,8 +78,8 @@ public class AttachmentInfoServiceImpl extends BaseServiceImpl<AttachmentInfoMap
      * @param masterId
      */
     @Override
-    public void deleteByMasterId(Long masterId) {
-        baseMapper.deleteByMasterId(masterId);
+    public void deleteByMasterId(Long masterId,Long projectId) {
+        baseMapper.deleteByMasterId(masterId,projectId);
     }
 
     /**
@@ -95,4 +95,13 @@ public class AttachmentInfoServiceImpl extends BaseServiceImpl<AttachmentInfoMap
     public void delete(Long id) {
         baseMapper.delete(id);
     }
+
+    /**
+     * 根据id批量删除
+     * @param collect
+     */
+    @Override
+    public void deleteBatch(List<Long> collect) {
+        baseMapper.deleteBatch(collect);
+    }
 }

+ 8 - 6
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/PolicyInfoServiceImpl.java

@@ -52,19 +52,21 @@ public class PolicyInfoServiceImpl extends BaseServiceImpl<PolicyInfoMapper, Pol
         PolicyInfo policyInfo = new PolicyInfo();
         BeanUtils.copyProperties(dto,policyInfo);
         Boolean isExist = true;
+        List<AttachmentInfo> list = dto.getList();
+        if (list == null || list.size() == 0){
+            throw new ServiceException("请上传附件");
+        }
         if (policyInfo.getId() == null){
             isExist = false;
             policyInfo.setId(SnowFlakeUtil.getId());
             policyInfo.setUploadDate(LocalDate.now());
             //删除之前的附件
-            attachmentInfoService.deleteByMasterId(-1L);
+            attachmentInfoService.deleteByMasterId(-1L,dto.getProjectId());
         }else {
             //删除之前的附件
-            attachmentInfoService.deleteByMasterId(policyInfo.getId());
-        }
-        List<AttachmentInfo> list = dto.getList();
-        if (list == null || list.size() == 0){
-            throw new ServiceException("请上传附件");
+            attachmentInfoService.deleteByMasterId(policyInfo.getId(),dto.getProjectId());
+            //再删除本次上传的附件
+            attachmentInfoService.deleteBatch(list.stream().map(l->l.getId()).collect(Collectors.toList()));
         }
         List<String> data = new ArrayList<>();
         for (AttachmentInfo info : list) {