From 0ac73423b8d5bb464a05c3c3437d91155b6242ce Mon Sep 17 00:00:00 2001 From: liteng <930372551@qq.com> Date: Sat, 15 Dec 2018 16:08:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E8=B4=B4=E5=9B=BE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ShadowEditor.Model/Map/MapEditModel.cs | 5 +++ ShadowEditor.Model/Map/MapModel.cs | 10 +++++ .../Controllers/MapController.cs | 38 +++++++++++++++++-- .../Controllers/MeshController.cs | 3 +- 4 files changed, 52 insertions(+), 4 deletions(-) diff --git a/ShadowEditor.Model/Map/MapEditModel.cs b/ShadowEditor.Model/Map/MapEditModel.cs index f643c2f9..c8b3f192 100644 --- a/ShadowEditor.Model/Map/MapEditModel.cs +++ b/ShadowEditor.Model/Map/MapEditModel.cs @@ -20,5 +20,10 @@ namespace ShadowEditor.Model.Map /// 名称 /// public string Name { get; set; } + + /// + /// 类别 + /// + public string Category { get; set; } } } diff --git a/ShadowEditor.Model/Map/MapModel.cs b/ShadowEditor.Model/Map/MapModel.cs index c481fc4b..2a693d71 100644 --- a/ShadowEditor.Model/Map/MapModel.cs +++ b/ShadowEditor.Model/Map/MapModel.cs @@ -21,6 +21,16 @@ namespace ShadowEditor.Model.Map /// public string Name { get; set; } + /// + /// 类别ID + /// + public string CategoryID { get; set; } + + /// + /// 类别名称 + /// + public string CategoryName { get; set; } + /// /// 全拼 /// diff --git a/ShadowEditor.Server/Controllers/MapController.cs b/ShadowEditor.Server/Controllers/MapController.cs index 98b5edaa..5247f763 100644 --- a/ShadowEditor.Server/Controllers/MapController.cs +++ b/ShadowEditor.Server/Controllers/MapController.cs @@ -30,12 +30,30 @@ namespace ShadowEditor.Server.Controllers public JsonResult List() { var mongo = new MongoHelper(); - var docs = mongo.FindAll(Constant.MapCollectionName); + + // 获取所有类别 + var filter = Builders.Filter.Eq("Type", "Map"); + var categories = mongo.FindMany(Constant.CategoryCollectionName, filter); + + var maps = mongo.FindAll(Constant.MapCollectionName); var list = new List(); - foreach (var i in docs) + foreach (var i in maps) { + var categoryID = ""; + var categoryName = ""; + + if (i.Contains("Category") && !i["Category"].IsBsonNull && !string.IsNullOrEmpty(i["Category"].ToString())) + { + var doc = categories.Where(n => n["_id"].ToString() == i["Category"].ToString()).FirstOrDefault(); + if (doc != null) + { + categoryID = doc["_id"].ToString(); + categoryName = doc["Name"].ToString(); + } + } + var builder = new StringBuilder(); if (i["Url"].IsBsonDocument) // 立体贴图 @@ -56,6 +74,8 @@ namespace ShadowEditor.Server.Controllers { ID = i["ID"].AsObjectId.ToString(), Name = i["Name"].AsString, + CategoryID = categoryID, + CategoryName = categoryName, TotalPinYin = i["TotalPinYin"].ToString(), FirstPinYin = i["FirstPinYin"].ToString(), Type = i["Type"].AsString, @@ -238,7 +258,19 @@ namespace ShadowEditor.Server.Controllers var update1 = Builders.Update.Set("Name", model.Name); var update2 = Builders.Update.Set("TotalPinYin", pinyin.TotalPinYin); var update3 = Builders.Update.Set("FirstPinYin", pinyin.FirstPinYin); - var update = Builders.Update.Combine(update1, update2, update3); + + UpdateDefinition update5; + + if (string.IsNullOrEmpty(model.Category)) + { + update5 = Builders.Update.Unset("Category"); + } + else + { + update5 = Builders.Update.Set("Category", model.Category); + } + + var update = Builders.Update.Combine(update1, update2, update3, update5); mongo.UpdateOne(Constant.MapCollectionName, filter, update); return Json(new diff --git a/ShadowEditor.Server/Controllers/MeshController.cs b/ShadowEditor.Server/Controllers/MeshController.cs index af48de7b..d164d984 100644 --- a/ShadowEditor.Server/Controllers/MeshController.cs +++ b/ShadowEditor.Server/Controllers/MeshController.cs @@ -31,7 +31,8 @@ namespace ShadowEditor.Server.Controllers var mongo = new MongoHelper(); // 获取所有类别 - var categories = mongo.FindAll(Constant.CategoryCollectionName); + var filter = Builders.Filter.Eq("Type", "Mesh"); + var categories = mongo.FindMany(Constant.CategoryCollectionName, filter); var meshes = mongo.FindAll(Constant.MeshCollectionName);