From 62ef8708f7a1eb15219e28431ee0cd4b071d33f4 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 12 四月 2023 17:50:11 +0800
Subject: [PATCH] 1

---
 ExportMap/cs/SGUtils.cs      |    2 
 ExportMap/cs/XYZUtils.cs     |    2 
 ExportMap/cs/ConvertUtils.cs |    2 
 ExportMap/Models/SysMeta.cs  |    2 +
 ExportMap/db/PubDBHelper.cs  |   53 ++++++++++++++++++++++++++
 5 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/ExportMap/Models/SysMeta.cs b/ExportMap/Models/SysMeta.cs
index 5d0cf86..60fedc5 100644
--- a/ExportMap/Models/SysMeta.cs
+++ b/ExportMap/Models/SysMeta.cs
@@ -46,5 +46,7 @@
         public DateTime update_time { set; get; }
 
         public string bak { set; get; }
+
+        public string dirname { set; get; }
     }
 }
diff --git a/ExportMap/cs/ConvertUtils.cs b/ExportMap/cs/ConvertUtils.cs
index cca8fb3..0ae0818 100644
--- a/ExportMap/cs/ConvertUtils.cs
+++ b/ExportMap/cs/ConvertUtils.cs
@@ -132,7 +132,7 @@
             if (pubid > 0)
             {
                 sys.id = pubid;
-                PubDBHelper.InsertLayer(sys, meta, 100);
+                PubDBHelper.InsertLayer(sys, meta);
                 PubDBHelper.InsertMetaPub(meta.id, pubid, args.userId);
             }
 
diff --git a/ExportMap/cs/SGUtils.cs b/ExportMap/cs/SGUtils.cs
index 78e1408..ecb5f57 100644
--- a/ExportMap/cs/SGUtils.cs
+++ b/ExportMap/cs/SGUtils.cs
@@ -179,7 +179,7 @@
             if (pubid > 0)
             {
                 sys.id = pubid;
-                PubDBHelper.InsertLayer(sys, meta, sys.type == "3dml" ? 100 : 0);
+                PubDBHelper.InsertLayer(sys, meta);
                 PubDBHelper.InsertMetaPub(meta.id, pubid, args.userId);
             }
 
diff --git a/ExportMap/cs/XYZUtils.cs b/ExportMap/cs/XYZUtils.cs
index 5224d2b..ee75d38 100644
--- a/ExportMap/cs/XYZUtils.cs
+++ b/ExportMap/cs/XYZUtils.cs
@@ -129,7 +129,7 @@
         /// </summary>
         public static List<SysMeta> SelectMetas(List<int> ids, string types = "")
         {
-            string sql = string.Format("select * from lf.sys_meta where id in ({0}) {1} order by id", string.Join(",", ids), types);
+            string sql = string.Format("select a.*, fn_get_fullname(dircode, 2) dirname from lf.sys_meta a where id in ({0}) {1} order by id", string.Join(",", ids), types);
             DataTable dt = Tools.DBHelper.GetDataTable(sql);
             List<SysMeta> list = ModelHandler.FillModel<SysMeta>(dt);
 
diff --git a/ExportMap/db/PubDBHelper.cs b/ExportMap/db/PubDBHelper.cs
index 0c99d8a..e4cdb8b 100644
--- a/ExportMap/db/PubDBHelper.cs
+++ b/ExportMap/db/PubDBHelper.cs
@@ -19,7 +19,8 @@
         private static string insertMetaPubSql = "insert into lf.sys_meta_pub (metaid, pubid, create_user) select {0}, {1}, {2} from (select 1) temp where not exists (select 1 from lf.sys_meta_pub where metaid = {0} and pubid = {1})";
 
         // 妯″瀷-@cnName锛宮odel-@enName锛岃嚜鍔ㄥ彂甯冩ā鍨�-@name锛宧ttp:// - @url锛孴ileset-@serve锛�1-@user锛�7-@pubid
-        private static string insertLayerSql = "insert into lf.sys_layer (pid, cn_name, en_name, url, type, level, order_num, is_show, create_user, data_type, serve_type, pubid, elev) values ((select coalesce(id, 0) from lf.sys_layer where cn_name = @name limit 1), @cnName, @enName, @url, 2, (select coalesce(level, 0) + 1 from lf.sys_layer where cn_name = @name limit 1), (select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = (select id from lf.sys_layer where cn_name = @name limit 1)), 0, @user, @name, @serve, @pubid, @elev);";
+        //private static string insertLayerSql = "insert into lf.sys_layer (pid, cn_name, en_name, url, type, level, order_num, is_show, create_user, data_type, serve_type, pubid, elev) values ((select coalesce(id, 0) from lf.sys_layer where cn_name = @name limit 1), @cnName, @enName, @url, 2, (select coalesce(level, 0) + 1 from lf.sys_layer where cn_name = @name limit 1), (select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = (select id from lf.sys_layer where cn_name = @name limit 1)), 0, @user, @name, @serve, @pubid, @elev);";
+        private static string insertLayerSql = "insert into lf.sys_layer (pid, cn_name, en_name, url, type, level, order_num, is_show, create_user, data_type, serve_type, pubid, elev) values ((select coalesce(id, 0) from lf.sys_layer where cn_name = @name limit 1), @cnName, @enName, @url, 2, (select coalesce(level, 0) + 1 from lf.sys_layer where cn_name = @name limit 1), (select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = (select id from lf.sys_layer where cn_name = @name limit 1)), 0, @user, @name, @serve, @pubid, @elev)";
 
         private static string updateMetaSql = "update lf.sys_meta set path = @path where id = @id";
 
@@ -113,6 +114,56 @@
         }
 
         /// <summary>
+        /// 鏌ヨ鍥惧眰鐖惰妭鐐笽D
+        /// </summary>
+        public static int SelectLayerPid(SysMeta meta)
+        {
+            string sql = GetSelectLayerPidSql(meta);
+
+            object obj = Tools.DBHelper.GetScalar(sql);
+
+            return null == obj ? 0 : Convert.ToInt32(obj);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏌ヨ鍥惧眰鐖惰妭鐐笽D鐨凷QL
+        /// </summary>
+        public static string GetSelectLayerPidSql(SysMeta meta)
+        {
+            string noneSql = "select id from lf.sys_layer where cn_name = '鍏朵粬' and pid = (select id from lf.sys_layer where cn_name = '宸ョ▼鏁版嵁' order by pid limit 1)";
+
+            if (string.IsNullOrWhiteSpace(meta.dirname)) return noneSql;
+
+            if (meta.dirname.IndexOf("\\鍕樺療") > -1)
+                return "select id from lf.sys_layer where cn_name = '涓夌淮鍦拌川妯″瀷' and pid = (select id from lf.sys_layer where cn_name = '鍕樺療' order by pid limit 1)";
+
+            if (meta.dirname.IndexOf("\\娴嬬粯") > -1)
+            {
+                switch (meta.type)
+                {
+                    case "mpt":
+                        return "select id from lf.sys_layer where cn_name = '涓夌淮鍦板舰妯″瀷' and pid = (select id from lf.sys_layer where cn_name = '娴嬬粯' order by pid limit 1)";
+                    case "jpg":
+                    case "png":
+                    case "img":
+                    case "tif":
+                    case "tiff":
+                        return "select id from lf.sys_layer where cn_name = '鏁板瓧姝e皠褰卞儚鍥�' and pid = (select id from lf.sys_layer where cn_name = '娴嬬粯' order by pid limit 1)";
+                    default:
+                        return "select id from lf.sys_layer where cn_name = '鍗曚綋妯″瀷' and pid = (select id from lf.sys_layer where cn_name = '娴嬬粯' order by pid limit 1)";
+                }
+            }
+
+            if (meta.dirname.IndexOf("\\鍦扮伨") > -1)
+                return "select id from lf.sys_layer where cn_name = '涓夌淮鍦拌川妯″瀷' and pid = (select id from lf.sys_layer where cn_name = '鍦扮伨' order by pid limit 1)";
+
+            if (meta.dirname.IndexOf("\\娲炲簱") > -1)
+                return "select id from lf.sys_layer where cn_name = '娲炲簱妯″瀷' and pid = (select id from lf.sys_layer where cn_name = '娲炲簱' order by pid limit 1)";
+
+            return noneSql;
+        }
+
+        /// <summary>
         /// 鑾峰彇鍙傛暟鍒楄〃
         /// </summary>
         public static List<DbParameter> GetParams<T>(string sql, T t)

--
Gitblit v1.9.3