| 
															
																@@ -186,36 +186,52 @@ module.exports = app => { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const parent = await this.getDataById(data.tree_pid); 
															 | 
															
															 | 
															
																             const parent = await this.getDataById(data.tree_pid); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (!parent) throw '移动后的分类不存在,请刷新页面后重试'; 
															 | 
															
															 | 
															
																             if (!parent) throw '移动后的分类不存在,请刷新页面后重试'; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             const sibling = await this.getAllDataByCondition({ where: { tree_pid: data.tree_pid, is_deleted: 0 } }); 
															 | 
															
															 | 
															
																             const sibling = await this.getAllDataByCondition({ where: { tree_pid: data.tree_pid, is_deleted: 0 } }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            const updateData = [{ id: filing.id, tree_order: data.tree_order, tree_pid: data.tree_pid, tree_level: parent.tree_level + 1 }]; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const posterity = await this.getPosterityData(filing.id); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const updateData = { id: filing.id, tree_order: data.tree_order, tree_pid: data.tree_pid, tree_level: parent.tree_level + 1 }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const posterityUpdateData = posterity.map(x => { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+               updateData.push({ id: x.id,  tree_level: parent.tree_level + 1 - filing.tree_level + x.tree_level }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const siblingUpdateData = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (data.tree_pid === filing.tree_pid) { 
															 | 
															
															 | 
															
																             if (data.tree_pid === filing.tree_pid) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 if (data.tree_order < filing.tree_order) { 
															 | 
															
															 | 
															
																                 if (data.tree_order < filing.tree_order) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     sibling.forEach(x => { 
															 | 
															
															 | 
															
																                     sibling.forEach(x => { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         if (x.id === filing.id) return; 
															 | 
															
															 | 
															
																                         if (x.id === filing.id) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         if (x.tree_order < data.tree_order) return; 
															 | 
															
															 | 
															
																                         if (x.tree_order < data.tree_order) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         if (x.tree_order > filing.tree_order) return; 
															 | 
															
															 | 
															
																                         if (x.tree_order > filing.tree_order) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        updateData.push({id: x.id, tree_order: x.tree_order + 1}); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        siblingUpdateData.push({id: x.id, tree_order: x.tree_order + 1}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     }); 
															 | 
															
															 | 
															
																                     }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 } else { 
															 | 
															
															 | 
															
																                 } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     sibling.forEach(x => { 
															 | 
															
															 | 
															
																                     sibling.forEach(x => { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         if (x.id === filing.id) return; 
															 | 
															
															 | 
															
																                         if (x.id === filing.id) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         if (x.tree_order < filing.tree_order) return; 
															 | 
															
															 | 
															
																                         if (x.tree_order < filing.tree_order) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         if (x.tree_order > data.tree_order) return; 
															 | 
															
															 | 
															
																                         if (x.tree_order > data.tree_order) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        updateData.push({id: x.id, tree_order: x.tree_order - 1}); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        siblingUpdateData.push({id: x.id, tree_order: x.tree_order - 1}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     }); 
															 | 
															
															 | 
															
																                     }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 } 
															 | 
															
															 | 
															
																                 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             } else { 
															 | 
															
															 | 
															
																             } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const orgSibling = await this.getAllDataByCondition({ where: { tree_pid: filing.tree_pid, is_deleted: 0 } }); 
															 | 
															
															 | 
															
																                 const orgSibling = await this.getAllDataByCondition({ where: { tree_pid: filing.tree_pid, is_deleted: 0 } }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 orgSibling.forEach(x => { 
															 | 
															
															 | 
															
																                 orgSibling.forEach(x => { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     if (x.tree_order < filing.tree_order) return; 
															 | 
															
															 | 
															
																                     if (x.tree_order < filing.tree_order) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    updateData.push({id: x.id, tree_order: x.tree_order - 1}); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    siblingUpdateData.push({id: x.id, tree_order: x.tree_order - 1}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 }); 
															 | 
															
															 | 
															
																                 }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 sibling.forEach(x => { 
															 | 
															
															 | 
															
																                 sibling.forEach(x => { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     if (x.tree_order < data.tree_order) return; 
															 | 
															
															 | 
															
																                     if (x.tree_order < data.tree_order) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    updateData.push({id: x.id, tree_order: x.tree_order + 1}); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    siblingUpdateData.push({id: x.id, tree_order: x.tree_order + 1}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 }) 
															 | 
															
															 | 
															
																                 }) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             } 
															 | 
															
															 | 
															
																             } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const conn = await this.db.beginTransaction(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                await conn.update(this.tableName, updateData); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                if (posterityUpdateData.length > 0) await conn.updateRows(this.tableName, posterityUpdateData); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                if (siblingUpdateData.length > 0) await conn.updateRows(this.tableName, siblingUpdateData); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                await conn.commit(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } catch (err) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                await conn.rollback(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                throw err; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             await this.db.updateRows(this.tableName, updateData); 
															 | 
															
															 | 
															
																             await this.db.updateRows(this.tableName, updateData); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            return { update: updateData }; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            return { update: [updateData, ...posterityUpdateData, ...siblingUpdateData] }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																         async sumFileCount(spid) { 
															 | 
															
															 | 
															
																         async sumFileCount(spid) { 
															 |