From 09a9aadd3e0991fddeb7307979c2a9ad1de4b3c1 Mon Sep 17 00:00:00 2001 From: Zel Date: Sun, 16 Mar 2025 23:05:57 +0800 Subject: [PATCH] 11111111 --- .../OrderManagement/OrderCustomerService.cs | 84 ++++++++++++++++--- .../Views/OrderCustomer/Details.cshtml | 55 ++++++------ .../Views/OrderCustomer/Index.cshtml | 50 ++++++----- 3 files changed, 133 insertions(+), 56 deletions(-) diff --git a/WaterCloud.Service/OrderManagement/OrderCustomerService.cs b/WaterCloud.Service/OrderManagement/OrderCustomerService.cs index d702c47..64368a0 100644 --- a/WaterCloud.Service/OrderManagement/OrderCustomerService.cs +++ b/WaterCloud.Service/OrderManagement/OrderCustomerService.cs @@ -6,6 +6,10 @@ using WaterCloud.Code; using SqlSugar; using WaterCloud.DataBase; using WaterCloud.Domain.OrderManagement; +using System.Collections; +using static Serenity.Web.PropertyItemsScript; +using WaterCloud.Service.SystemOrganize; +using System.Diagnostics; namespace WaterCloud.Service.OrderManagement { @@ -16,6 +20,8 @@ namespace WaterCloud.Service.OrderManagement /// public class OrderCustomerService : BaseService, IDenpendency { + public UserService UserService { get; set; } + public OrderCustomerService(ISqlSugarClient context) : base(context) { } @@ -28,7 +34,14 @@ namespace WaterCloud.Service.OrderManagement data = data.Where(a => a.F_Name.Contains(keyword) || a.F_ContactPerson.Contains(keyword)); } - return await data.Where(a => a.F_DeleteMark == false).OrderBy(a => a.F_CreatorTime , OrderByType.Desc).ToListAsync(); + + //普通用户仅可查看自己的数据 + if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior)) + { + data = data.Where(oo => oo.F_CreatorUserId == currentuser.UserId); + } + + return await data.Where(a => a.F_DeleteMark == false).OrderBy(a => a.F_CreatorTime, OrderByType.Desc).ToListAsync(); } public async Task> GetLookList(string keyword = "") @@ -40,12 +53,26 @@ namespace WaterCloud.Service.OrderManagement query = query.Where(a => a.F_Name.Contains(keyword) || a.F_ContactPerson.Contains(keyword)); } - //权限过滤 - query = GetDataPrivilege("a", "", query); - return await query.OrderBy(a => a.F_CreatorTime , OrderByType.Desc).ToListAsync(); + //权限过滤 + query = GetDataPrivilege("a", "", query); + + //普通用户仅可查看自己的数据 + if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior)) + { + query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId); + } + + var pageList = await query.OrderBy(a => a.F_CreatorTime, OrderByType.Desc).ToListAsync(); + var users = await UserService.GetUserList(string.Empty); + pageList.ForEach(item => + { + var user = users.Find(oo => oo.F_Id == item.F_CreatorUserId); + item.F_CreatorUserId = user == null ? "未知用户" : user.F_RealName; + }); + return pageList; } - public async Task> GetLookList(SoulPage pagination,string keyword = "",string id="") + public async Task> GetLookList(SoulPage pagination, string keyword = "", string id = "") { var query = repository.IQueryable().Where(a => a.F_DeleteMark == false); if (!string.IsNullOrEmpty(keyword)) @@ -53,13 +80,26 @@ namespace WaterCloud.Service.OrderManagement query = query.Where(a => a.F_Name.Contains(keyword) || a.F_ContactPerson.Contains(keyword)); } - if(!string.IsNullOrEmpty(id)) + if (!string.IsNullOrEmpty(id)) { - query= query.Where(a=>a.F_Id==id); + query = query.Where(a => a.F_Id == id); } //权限过滤 - query = GetDataPrivilege("a","",query); - return await query.ToPageListAsync(pagination); + query = GetDataPrivilege("a", "", query); + + if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior)) + { + query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId); + } + + var pageList = await query.ToPageListAsync(pagination); + var users = await UserService.GetUserList(string.Empty); + pageList.ForEach(item => + { + var user = users.Find(oo => oo.F_Id == item.F_CreatorUserId); + item.F_CreatorUserId = user == null ? "未知用户" : user.F_RealName; + }); + return pageList; } public async Task GetForm(string keyValue) @@ -78,17 +118,23 @@ namespace WaterCloud.Service.OrderManagement #region 提交数据 public async Task SubmitForm(OrderCustomerEntity entity, string keyValue) { - if(string.IsNullOrEmpty(keyValue)) + if (string.IsNullOrEmpty(keyValue)) { - //初始值添加 + //初始值添加 entity.F_DeleteMark = false; entity.Create(); await repository.Insert(entity); } else { - //此处需修改 - entity.Modify(keyValue); + if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior) && + currentuser.UserId != entity.F_CreatorUserId) + { + return; + } + + //此处需修改 + entity.Modify(keyValue); await repository.Update(entity); } } @@ -96,6 +142,18 @@ namespace WaterCloud.Service.OrderManagement public async Task DeleteForm(string keyValue) { var ids = keyValue.Split(','); + + foreach (var id in ids) + { + var data = await repository.FindEntity(id); + if (data == null) + return; + if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior) && + currentuser.UserId != data.F_CreatorUserId) + throw new Exception($"{data.F_Id} {data.F_Name}违规删除"); + } + + await repository.Delete(a => ids.Contains(a.F_Id.ToString())); } #endregion diff --git a/WaterCloud.Web/Areas/OrderManagement/Views/OrderCustomer/Details.cshtml b/WaterCloud.Web/Areas/OrderManagement/Views/OrderCustomer/Details.cshtml index 74ba661..ac6d5d4 100644 --- a/WaterCloud.Web/Areas/OrderManagement/Views/OrderCustomer/Details.cshtml +++ b/WaterCloud.Web/Areas/OrderManagement/Views/OrderCustomer/Details.cshtml @@ -54,47 +54,46 @@ +
+ +
+ +
+
+
+ +
+ @* *@ + +
+
+
+ +
+ +
+
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
@@ -102,6 +101,14 @@
+ +
+ +
+ @* *@ + +
+
diff --git a/WaterCloud.Web/Areas/OrderManagement/Views/OrderCustomer/Index.cshtml b/WaterCloud.Web/Areas/OrderManagement/Views/OrderCustomer/Index.cshtml index e034236..53d0cc7 100644 --- a/WaterCloud.Web/Areas/OrderManagement/Views/OrderCustomer/Index.cshtml +++ b/WaterCloud.Web/Areas/OrderManagement/Views/OrderCustomer/Index.cshtml @@ -58,34 +58,46 @@ { field: 'F_Name', title: '客户名称', width: 120,sort: true,filter: true }, { field: 'F_CooperationTime', title: '开始合作时间', - width: 140,sort: true, - filter: true, - filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'}}, + width: 140, + sort: true, + //filter: {type: 'date[yyyy/MM/dd]'}, + filter:true, + templet:function(d){ + return layui.util.toDateString(d.F_CooperationTime, "yyyy/MM/dd") + } + }, { field: 'F_PostTime', title: '发帖时间', width: 140, sort: true, - filter: true, - filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'} }, + filter:true, + //filter: {type: 'date[yyyy/MM/dd]'}, + templet:function(d){ + return layui.util.toDateString(d.F_PostTime, "yyyy/MM/dd") + } + }, { field: 'F_OrderState', title: '合作进展', width: 140,sort: true,filter: true, templet:function(d){ - if (d.F_OrderState == 1) { - return "持续合作"; - } else if (d.F_FileType == 0) { - return "断续"; - } - else - return "未知进展"; + switch(d.F_OrderState){ + case 1: + return "持续合作"; + break; + case 0: + return "断续"; + break; + default: + return "未知进展"; + break; + } }}, - { field: 'F_ContactPerson', title: '对接人', width: 140,filter: true }, - { field: 'F_Contact', title: '联系方式', width: 140,filter: true }, + { field: 'F_Contact', title: '联系方式', width: 180,filter: true }, + { field: 'F_ContactPerson', title: '对接人', width: 160,filter: true }, { field: 'F_Docking', title: '对接情况', - width: 140, - filter: true, - filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'} }, - { field: 'F_CreatorTime', title: '创建时间', width: 120,sort: true,filter: true }, - { field: 'F_CreatorUserId', title: '创建人', width: 120,sort: true,filter: true }, + width: 350, + filter: true}, + { field: 'F_CreatorTime', title: '创建时间', width: 200,sort: true,filter: true }, + { field: 'F_CreatorUserId', title: '创建人', width: 150,sort: true,filter: true }, { title: '操作', width: 160, toolbar: '#currentTableBar', align: "center", fixed: 'right' } ]] });