Kaynağa Gözat

试验-删除规范文件夹,把所有有关的都删除

LHB 3 ay önce
ebeveyn
işleme
a78ec07cea

+ 10 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/StandardInfoJoinMapper.java

@@ -1,5 +1,6 @@
 package org.springblade.business.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.business.entity.UStandardInfoJoin;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -11,6 +12,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 */
 public interface StandardInfoJoinMapper extends BaseMapper<UStandardInfoJoin> {
 
+    /**
+     * 软删除
+     * @param userId 用户 id
+     * @param isDeleted 删除状态
+     * @param standardId 规范文件id
+     */
+    void updateJoin(@Param("userId") Long userId,
+                    @Param("isDeleted") int isDeleted,
+                    @Param("standardId") Long standardId);
 }
 
 

+ 9 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/StandardInfoJoinMapper.xml

@@ -19,4 +19,13 @@
         id,standard_info_left_id,standard_info_right_id,is_deleted,create_time,create_user,
         update_time,update_user
     </sql>
+    <update id="updateJoin">
+        UPDATE u_standard_info_join a
+            INNER JOIN u_standard_info b ON a.standard_info_left_id = b.id
+        SET a.is_deleted = #{isDeleted},
+            a.update_user = #{userId}
+        WHERE
+            b.is_deleted = 0
+          AND b.standard_id = #{standardId}
+    </update>
 </mapper>

+ 10 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/StandardInfoPrivateJoinMapper.java

@@ -1,5 +1,6 @@
 package org.springblade.business.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.business.entity.UStandardInfoPrivateJoin;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -11,6 +12,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 */
 public interface StandardInfoPrivateJoinMapper extends BaseMapper<UStandardInfoPrivateJoin> {
 
+    /**
+     * 软删除
+     * @param userId 用户 id
+     * @param isDeleted 删除状态
+     * @param standardId 规范文件id
+     */
+    void updateJoin(@Param("userId") Long userId,
+                    @Param("isDeleted") int isDeleted,
+                    @Param("standardId") Long standardId);
 }
 
 

+ 9 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/StandardInfoPrivateJoinMapper.xml

@@ -21,4 +21,13 @@
         id,standard_info_id,private_id,col_key,col_name,is_deleted,
         create_time,create_user,update_time,update_user
     </sql>
+    <update id="updateJoin">
+        UPDATE u_standard_info_private_join a
+            INNER JOIN u_standard_info b ON a.standard_info_id = b.id
+        SET a.is_deleted = #{isDeleted},
+            a.update_user = #{userId}
+        WHERE
+            b.is_deleted = 0
+          AND b.standard_id = #{standardId}
+    </update>
 </mapper>

+ 44 - 12
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/PrivateStandardServiceImpl.java

@@ -3,13 +3,21 @@ package org.springblade.business.service.impl;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.business.entity.PrivateStandard;
+import org.springblade.business.entity.UStandardInfo;
+import org.springblade.business.mapper.StandardInfoJoinMapper;
+import org.springblade.business.mapper.StandardInfoMapper;
+import org.springblade.business.mapper.StandardInfoPrivateJoinMapper;
 import org.springblade.business.service.PrivateStandardService;
 import org.springblade.business.mapper.PrivateStandardMapper;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.SecureUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
+
 /**
 * @author LHB
 * @description 针对表【u_wbs_private_standard(规范文件夹及规范文件表)】的数据库操作Service实现
@@ -18,6 +26,14 @@ import org.springframework.transaction.annotation.Transactional;
 @Service
 public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMapper, PrivateStandard>
     implements PrivateStandardService {
+    @Resource
+    private StandardInfoMapper standardInfoMapper;
+    @Resource
+    private StandardInfoJoinMapper standardInfoJoinMapper;
+    @Resource
+    private StandardInfoPrivateJoinMapper standardInfoPrivateJoinMapper;
+
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean insert(PrivateStandard uWbsPrivateStandard) {
@@ -33,18 +49,34 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean delete(Long id) {
-        //获取当前用户
-        BladeUser user = SecureUtil.getUser();
-        int update = baseMapper.update(null, Wrappers.<PrivateStandard>lambdaUpdate()
-                .set(PrivateStandard::getIsDeleted, 1)
-                .set(PrivateStandard::getUpdateUser, user.getUserId())
-                .eq(PrivateStandard::getId, id)
-                .or()
-                .eq(PrivateStandard::getParentId, id)
-        );
-        //TODO 后续还要删除规范详细信息
-
-        return update > 0;
+
+        try {
+            //获取当前用户
+            BladeUser user = SecureUtil.getUser();
+            int update = baseMapper.update(null, Wrappers.<PrivateStandard>lambdaUpdate()
+                    .set(PrivateStandard::getIsDeleted, 1)
+                    .set(PrivateStandard::getUpdateUser, user.getUserId())
+                    .eq(PrivateStandard::getId, id)
+                    .or()
+                    .eq(PrivateStandard::getParentId, id)
+            );
+            //TODO 后续还要删除规范详细信息
+
+
+
+            int update1 = standardInfoMapper.update(null, Wrappers.<UStandardInfo>lambdaUpdate()
+                    .set(UStandardInfo::getIsDeleted, 1)
+                    .set(UStandardInfo::getUpdateUser, user.getUserId())
+                    .eq(UStandardInfo::getStandardId, id));
+            //TODO 还要删除关联信息
+            standardInfoJoinMapper.updateJoin(user.getUserId(),1,id);
+            //TODo 还要删除与表单的关联信息
+            standardInfoPrivateJoinMapper.updateJoin(user.getUserId(),1,id);
+            return update > 0;
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new ServiceException("删除失败");
+        }
     }
 }