From d8b6851836a7bbfcc15db478744453782cc0e27f Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期三, 02 八月 2023 16:26:43 +0800
Subject: [PATCH] 主题库分类,父节点连带子节点发布失效修正

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml                          |   23 +++++++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java |   28 ++++++++++----
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java            |   13 ++++++
 3 files changed, 55 insertions(+), 9 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
index 3772ae2..0a38d9b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
@@ -148,4 +148,17 @@
 	 * @return
 	 */
 	List<CodeClassify>  selectAllParenClassifytByOid(@Param("oid")String oid,@Param("tenantId") String tenantId);
+
+	/**
+	 * 涓婚敭鏌ヨ褰撳墠鑺傜偣鍙婂叾瀛愯妭鐐�
+	 * @param oid 褰撳墠鑺傜偣涓婚敭
+	 * @return 鏌ヨ缁撴灉
+	 */
+    List<CodeClassify> selectStartWithCurrentOid(String oid);
+
+	/**
+	 * 鎵归噺鏇存柊鍒嗙被鐘舵��
+	 * @param classifyList
+	 */
+	void batchUpdateLcStatus(@Param("records") List<CodeClassify> classifyList);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
index 6f1dbdf..a2ec15e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -359,20 +359,32 @@
 	@Override
 	public R updateLcStatus(String oid, String lcStatus){
 
-		//鏌ヨ淇敼鍓峵s
-		CodeClassify codeClassify = codeClassifyMapper.selectById(oid);//涓昏鏄负浜嗘煡璇s
-		codeClassify.setLcStatus(lcStatus);
-		codeClassify.setTs(new Date());
-		codeClassify.setLastModifyTime(new Date());
-		codeClassify.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		List<CodeClassify> classifyList = codeClassifyMapper.selectStartWithCurrentOid(oid);
+		Date now = new Date();
+		String userId = String.valueOf(AuthUtil.getUserId());
+		classifyList = classifyList.stream().map(s -> {
+			s.setLcStatus(lcStatus);
+			s.setTs(now);
+			s.setLastModifier(userId);
+			s.setLastModifyTime(now);
+			return s;
+		}).collect(Collectors.toList());
+//		//鏌ヨ淇敼鍓峵s
+//		CodeClassify codeClassify = codeClassifyMapper.selectById(oid);//涓昏鏄负浜嗘煡璇s
+//		codeClassify.setLcStatus(lcStatus);
+//		codeClassify.setTs(new Date());
+//		codeClassify.setLastModifyTime(new Date());
+//		codeClassify.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
 		//鍚敤銆佸仠鐢�
 //		int u = codeClassifyMapper.updateLcStatus(oid,lcStatus);
-		int count = codeClassifyMapper.updateById(codeClassify);
+//		int count = codeClassifyMapper.updateById(codeClassify);
+		codeClassifyMapper.batchUpdateLcStatus(classifyList);
 //        //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆�
 //        if(u!=0) {
 //            codeDuckingServiceI.insertCache1(lcStatus,lcStatus,DOCKING_DEFAULT_CLASSIFY, DOCKING_DEFAULT_CLASSIFYOID, oid, codeClassifyDO_old.getTs());
 //        }
-		return R.data(SqlHelper.retBool(count));
+//		return R.data(SqlHelper.retBool(count));
+		return R.success("");
 	}
 
 	/**
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
index 8015984..f84bca4 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -39,7 +39,9 @@
         <result column="CODERESEMBLERULEOID" property="codeResembleRuleOid"/>
         <result column="TENANT_ID" property="tenantId"/>
     </resultMap>
-
+    <sql id="tableName">
+        pl_code_classify
+    </sql>
     <select id="selectPlCodeClassifyPage" resultMap="plCodeClassifyResultMap">
         select * from PL_CODE_CLASSIFY where is_deleted = 0
     </select>
@@ -487,4 +489,23 @@
           </if>
             connect by prior PARENTCODECLASSIFYOID = codeclassify0.oid
     </select>
+
+    <select id="selectStartWithCurrentOid" resultMap="plCodeClassifyResultMap">
+        select * from <include refid="tableName"/>
+                          start with oid = #{oid}
+        connect by prior oid = parentcodeclassifyoid;
+    </select>
+
+    <update id="batchUpdateLcStatus" parameterType="java.util.List">
+        BEGIN
+        <foreach collection="records" item="item" index="index" separator=";">
+            update <include refid="tableName"/> set
+            lcstatus = #{item.lcStatus},
+            ts = #{item.ts},
+            lastModifyTime = #{item.lastModifyTime},
+            lastModifier = #{item.lastModifier}
+            where oid = #{item.oid,jdbcType=VARCHAR}
+        </foreach>
+        ;END;
+    </update>
 </mapper>

--
Gitblit v1.9.3