From 7c4b851b43764e09d00b49e5f20217a8ae27181a Mon Sep 17 00:00:00 2001 From: zel Date: Sun, 9 Mar 2025 03:46:28 +0800 Subject: [PATCH] 1111 --- .../CustomerOrder/CustomerOrderEntity.cs | 20 +- .../CustomerOrder/CustomerOrderService.cs | 77 ++++++- .../Controllers/CustomerOrderController.cs | 78 +++++++ .../Views/CustomerOrder/Form.cshtml | 80 +++++++ .../Views/CustomerOrder/Index.cshtml | 203 ++++++++++++++++++ .../Views/CustomerOrder/Index.cshtml.cs | 11 + WaterCloud.Web/WaterCloud.Web.csproj | 3 + WaterCloud.Web/appsettings.Development.json | 2 +- 8 files changed, 463 insertions(+), 11 deletions(-) create mode 100644 WaterCloud.Web/Areas/CustomerOrder/Controllers/CustomerOrderController.cs create mode 100644 WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Form.cshtml create mode 100644 WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Index.cshtml create mode 100644 WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Index.cshtml.cs diff --git a/WaterCloud.Domain/Entity/CustomerOrder/CustomerOrderEntity.cs b/WaterCloud.Domain/Entity/CustomerOrder/CustomerOrderEntity.cs index ace5c16..c2c9e78 100644 --- a/WaterCloud.Domain/Entity/CustomerOrder/CustomerOrderEntity.cs +++ b/WaterCloud.Domain/Entity/CustomerOrder/CustomerOrderEntity.cs @@ -101,22 +101,32 @@ public class CustomerOrderEntity : IEntity, ICreationAudite /// [SugarColumn(IsNullable = true, ColumnName = "F_OrderState", ColumnDescription = "合作进展")] public int? F_OrderState { get; set; } - + /// /// 附件 /// - [SugarColumn(ColumnName="F_Attachment", ColumnDescription = "模板文件",ColumnDataType = "nvarchar(200)")] - public string F_Attachment{ get; set; } + [SugarColumn(IsNullable = true, ColumnName = "F_Attachment", ColumnDescription = "模板文件", + ColumnDataType = "nvarchar(200)")] + public string F_Attachment { get; set; } /// /// 联系方式 /// - [SugarColumn(ColumnName="F_Contact", ColumnDescription = "联系方式",ColumnDataType = "nvarchar(500)")] + [SugarColumn(IsNullable = true, ColumnName = "F_Contact", ColumnDescription = "联系方式", + ColumnDataType = "nvarchar(500)")] public string F_Contact { get; set; } /// /// 对接情况 /// - [SugarColumn(IsNullable = true, ColumnName = "F_Docking", ColumnDescription = "对接情况",ColumnDataType = "nvarchar(100)")] + [SugarColumn(IsNullable = true, ColumnName = "F_Docking", ColumnDescription = "对接情况", + ColumnDataType = "nvarchar(100)")] public string F_Docking { get; set; } + + /// + /// 备注 + /// + [SugarColumn(IsNullable = true, ColumnName = "F_Remark", ColumnDescription = "备注", + ColumnDataType = "nvarchar(500)")] + public string F_Remark { get; set; } } \ No newline at end of file diff --git a/WaterCloud.Service/CustomerOrder/CustomerOrderService.cs b/WaterCloud.Service/CustomerOrder/CustomerOrderService.cs index c72d28e..aa7acf1 100644 --- a/WaterCloud.Service/CustomerOrder/CustomerOrderService.cs +++ b/WaterCloud.Service/CustomerOrder/CustomerOrderService.cs @@ -1,11 +1,15 @@ -using System.Collections.Generic; -using System.Threading.Tasks; +using System; using SqlSugar; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using WaterCloud.Code; +using WaterCloud.DataBase; using WaterCloud.Domain.Entity.CustomerOrder; namespace WaterCloud.Service.CustomerOrder; -public class CustomerOrderService:BaseService,IDenpendency +public class CustomerOrderService : BaseService, IDenpendency { public CustomerOrderService(ISqlSugarClient context) : base(context) { @@ -16,7 +20,70 @@ public class CustomerOrderService:BaseService,IDenpendency { var query = repository.IQueryable(); if (!string.IsNullOrWhiteSpace(keyword)) - query = query.Where(oo=>oo.F_Name.Contains(keyword)); - return await query.OrderBy(oo=>oo.F_CreatorTime).ToListAsync(); + query = query.Where(oo => oo.F_Name.Contains(keyword)); + + //普通用户仅可查看自己的数据 + if (!currentuser.IsAdmin || !currentuser.IsBoss || !currentuser.IsSuperAdmin || !currentuser.IsSenior) + query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId); + + return await query.OrderBy(oo => oo.F_CreatorTime).ToListAsync(); } + + public async Task> GetPageList(Pagination pagination, string keyword = "") + { + var query = repository.IQueryable().Where(a => a.F_DeleteMark == false); + if (!string.IsNullOrWhiteSpace(keyword)) + query = query.Where(oo => oo.F_Name.Contains(keyword)); + + //普通用户仅可查看自己的数据 + if (!currentuser.IsAdmin || !currentuser.IsBoss || !currentuser.IsSuperAdmin || !currentuser.IsSenior) + query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId); + + return await query.ToPageListAsync(pagination); + } + + public async Task GetForm(string keyValue) + { + var data = await repository.FindEntity(keyValue); + return data; + } + + #region 提交数据 + + public async Task SubmitForm(CustomerOrderEntity entity, string keyValue) + { + if (string.IsNullOrWhiteSpace(keyValue)) + { + entity.F_DeleteMark = false; + entity.Create(); + await repository.Insert(entity); + } + else + { + if ((!currentuser.IsAdmin || !currentuser.IsBoss || !currentuser.IsSuperAdmin || !currentuser.IsSenior) && + currentuser.UserId != entity.F_CreatorUserId) + { + return; + } + + entity.Modify(keyValue); + await repository.Update(entity); + } + } + + + public async Task DeleteForm(string keyValue) + { + var ids = keyValue.Split(','); + var data = await repository.FindEntity(keyValue); + if (data == null) + return; + if ((!currentuser.IsAdmin || !currentuser.IsBoss || !currentuser.IsSuperAdmin || !currentuser.IsSenior) && + currentuser.UserId != data.F_CreatorUserId) + throw new Exception("违规删除"); + + await repository.Delete(oo=>ids.Contains(oo.F_Id)); + } + + #endregion } \ No newline at end of file diff --git a/WaterCloud.Web/Areas/CustomerOrder/Controllers/CustomerOrderController.cs b/WaterCloud.Web/Areas/CustomerOrder/Controllers/CustomerOrderController.cs new file mode 100644 index 0000000..f603c04 --- /dev/null +++ b/WaterCloud.Web/Areas/CustomerOrder/Controllers/CustomerOrderController.cs @@ -0,0 +1,78 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using WaterCloud.Code; +using WaterCloud.Domain.Entity.CustomerOrder; +using WaterCloud.Service.CustomerOrder; + +namespace WaterCloud.Web.Areas.CustomerOrder.Controllers; + +[Area("CustomerOrder")] +public class CustomerOrderController : BaseController +{ + public CustomerOrderService CustomerOrderService { get; set; } + + [HttpGet] + [HandlerAjaxOnly] + public async Task GetPageList(Pagination pagination, string keyword) + { + if (string.IsNullOrEmpty(pagination.field)) + { + pagination.order = "desc"; + pagination.field = "F_CreatorTime"; + } + var data = await CustomerOrderService.GetPageList(pagination, keyword); + return Success(pagination.records, data); + } + + [HttpGet] + [HandlerAjaxOnly] + public async Task GetListJson(string keyword) + { + var data = await CustomerOrderService.GetList(keyword); + return Content(data.ToJson()); + } + + [HttpGet] + [HandlerAjaxOnly] + public async Task GetFormJson(string keyValue) + { + var data = await CustomerOrderService.GetForm(keyValue); + return Content(data.ToJson()); + } + + #region 提交数据 + + [HttpPost] + [HandlerAjaxOnly] + public async Task SubmitForm(CustomerOrderEntity entity, string keyValue) + { + try + { + await CustomerOrderService.SubmitForm(entity, keyValue); + return await Success("操作成功。", "", keyValue); + } + catch (Exception ex) + { + return await Error(ex.Message, "", keyValue); + } + } + + [HttpPost] + [HandlerAjaxOnly] + [HandlerAuthorize] + public async Task DeleteForm(string keyValue) + { + try + { + await CustomerOrderService.DeleteForm(keyValue); + return await Success("操作成功。", "", keyValue, DbLogType.Delete); + } + catch (Exception ex) + { + return await Error(ex.Message, "", keyValue, DbLogType.Delete); + } + } + + #endregion 提交数据 +} \ No newline at end of file diff --git a/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Form.cshtml b/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Form.cshtml new file mode 100644 index 0000000..f7eda2e --- /dev/null +++ b/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Form.cshtml @@ -0,0 +1,80 @@ +@{ + ViewBag.Title = "Form"; + Layout = "~/Views/Shared/_Form.cshtml"; +} + + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + + +
+
+
+ +
+
+
+
+ \ No newline at end of file diff --git a/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Index.cshtml b/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Index.cshtml new file mode 100644 index 0000000..971a3cf --- /dev/null +++ b/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Index.cshtml @@ -0,0 +1,203 @@ +@{ + ViewBag.Title = "Index"; + Layout = "~/Views/Shared/_Index.cshtml"; +} +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Index.cshtml.cs b/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Index.cshtml.cs new file mode 100644 index 0000000..31bd4b2 --- /dev/null +++ b/WaterCloud.Web/Areas/CustomerOrder/Views/CustomerOrder/Index.cshtml.cs @@ -0,0 +1,11 @@ +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace WaterCloud.Web.Areas.CustomerOrder.Views.CustomerOrder; + +public class Index : PageModel +{ + public void OnGet() + { + + } +} \ No newline at end of file diff --git a/WaterCloud.Web/WaterCloud.Web.csproj b/WaterCloud.Web/WaterCloud.Web.csproj index ccde475..c151fa6 100644 --- a/WaterCloud.Web/WaterCloud.Web.csproj +++ b/WaterCloud.Web/WaterCloud.Web.csproj @@ -81,6 +81,9 @@ + + + diff --git a/WaterCloud.Web/appsettings.Development.json b/WaterCloud.Web/appsettings.Development.json index 4b94f2f..c81cd37 100644 --- a/WaterCloud.Web/appsettings.Development.json +++ b/WaterCloud.Web/appsettings.Development.json @@ -14,7 +14,7 @@ "DBProvider": "MySql", //SqlServer //Oracle "DBConnectionString": "server=192.168.31.37;user id=root;password=zhuyunyu;database=water", "DBCommandTimeout": 180, // 数据库超时时间,单位秒 - "IsInitDb": false, //是否初始化数据库 + "IsInitDb": true, //是否初始化数据库 "IsSeedData": false, //是否初始化数据库数据 "CacheProvider": "Redis", // 缓存使用方式 Redis/Memory "RedisConnectionString": "192.168.31.37:6379,password=zhuyunyu", //docker部署 172.17.0.1