Переглянути джерело

优化团组前期信息管理功能

在 `GroupsController.cs` 中,简化了 `GroupOrderPreInfoList` 方法的查询逻辑,新增了 `GroupOrderPreInfoDel` 方法以支持删除操作。
在 `GroupOrderPreInfoDtos.cs` 中,添加了 `GroupOrderPreInfoDelDto` 类用于删除请求。
在 `OrderPreInfoView.cs` 中,设置了 `VisitDays` 和 `VisiPpNum` 的默认值为 "0"。
在 `GroupOrderPreInfoRepository.cs` 中,更新了 `OpAsync` 方法以使用 `dataId`,并新增了 `DelAsync` 方法以处理删除逻辑和事务管理。
LEIYI 1 тиждень тому
батько
коміт
3bc1d3466e

+ 21 - 4
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -410,6 +410,11 @@ namespace OASystem.API.Controllers
         public async Task<IActionResult> GroupOrderPreInfoList(GroupOrderPreInfoListDto dto)
         {
             var search = dto.Search;
+
+            int[] nameTempIds = new int[] { 1, 12, 28 },
+                  countryTempIds = new int[] { 2, 13, 29 },
+                  daysTempIds = new int[] { 4, 15, 31 },
+                  ppNumTempIds = new int[] { 6 };
             var list = await _sqlSugar.Queryable<Grp_OrderPreInfo>()
                 .LeftJoin<Sys_Users>((opi, u) => opi.CreateUserId == u.Id)
                 .Where((opi, u) => opi.IsDel == 0)
@@ -418,10 +423,10 @@ namespace OASystem.API.Controllers
                 {
                     Id = opi.Id,
                     Name = opi.Name,
-                    UnitName = SqlFunc.Subqueryable<Grp_OrderPreItem>().Where(x => x.ParentId == opi.Id && x.FormTempId == 1).Select(x => x.Value),
-                    VisitCountryVal = SqlFunc.Subqueryable<Grp_OrderPreItem>().Where(x => x.ParentId == opi.Id && x.FormTempId == 2).Select(x => x.Value),
-                    VisitDays = SqlFunc.Subqueryable<Grp_OrderPreItem>().Where(x => x.ParentId == opi.Id && x.FormTempId == 4).Select(x => x.Value),
-                    VisiPpNum = SqlFunc.Subqueryable<Grp_OrderPreItem>().Where(x => x.ParentId == opi.Id && x.FormTempId == 6).Select(x => x.Value),
+                    UnitName = SqlFunc.Subqueryable<Grp_OrderPreItem>().Where(x => x.ParentId == opi.Id && nameTempIds.Contains( x.FormTempId)).Select(x => x.Value),
+                    VisitCountryVal = SqlFunc.Subqueryable<Grp_OrderPreItem>().Where(x => x.ParentId == opi.Id && countryTempIds.Contains(x.FormTempId)).Select(x => x.Value),
+                    VisitDays = SqlFunc.Subqueryable<Grp_OrderPreItem>().Where(x => x.ParentId == opi.Id && daysTempIds.Contains(x.FormTempId)).Select(x => x.Value),
+                    VisiPpNum = SqlFunc.Subqueryable<Grp_OrderPreItem>().Where(x => x.ParentId == opi.Id && ppNumTempIds.Contains(x.FormTempId)).Select(x => x.Value),
                     Operator = u.CnName,
                     OperationTime = opi.CreateTime
                 })
@@ -546,6 +551,18 @@ namespace OASystem.API.Controllers
             return Ok(await _grpOrderPreInfoRep.OpAsync(dto));
         }
 
+        /// <summary>
+        ///  团组前期信息 Del
+        /// </summary>
+        /// <param name="dto">Id</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GroupOrderPreInfoDel(GroupOrderPreInfoDelDto dto)
+        {
+            return Ok(await _grpOrderPreInfoRep.DelAsync(dto));
+        }
+
         /// <summary>
         ///  团组前期信息 文件下载
         /// </summary>

+ 5 - 0
OASystem/OASystem.Domain/Dtos/Groups/GroupOrderPreInfoDtos.cs

@@ -15,6 +15,11 @@ namespace OASystem.Domain.Dtos.Groups
     {
         public int CurrUserId { get; set; }
     }
+    public class GroupOrderPreInfoDelDto
+    {
+        public int Id { get; set; }
+        public int CurrUserId { get; set; }
+    }
 
     public class GroupOrderPreInfoListDto : DtoBase
     {

+ 2 - 2
OASystem/OASystem.Domain/ViewModels/Groups/OrderPreInfoView.cs

@@ -36,9 +36,9 @@ namespace OASystem.Domain.ViewModels.Groups
             }
         }
 
-        public string VisitDays { get; set; }
+        public string VisitDays { get; set; } = "0";
 
-        public string VisiPpNum { get; set; }
+        public string VisiPpNum { get; set; } = "0";
 
         public object[] VersionDetails { get; set; }
 

+ 56 - 4
OASystem/OASystem.Infrastructure/Repositories/Groups/GroupOrderPreInfoRepository.cs

@@ -166,6 +166,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// <returns></returns>
         public async Task<JsonView> OpAsync(GroupOrderPreInfoOpDto dto)
         {
+            int dataId = dto.Id;
             var jw = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "操作成功!" };
             int currUserId = dto.CurrUserId;
             if (currUserId < 1)
@@ -181,7 +182,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
             var info = new Grp_OrderPreInfo()
             {
-                Id = dto.Id,
+                Id = dataId,
                 Name = dto.Name,
                 GroupId = dto.GroupId,
                 CreateUserId = currUserId
@@ -241,8 +242,8 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     return jw;
                 }
 
-                var addId = await _sqlSugar.Insertable(info).ExecuteReturnIdentityAsync();
-                if (addId < 1)
+                dataId = await _sqlSugar.Insertable(info).ExecuteReturnIdentityAsync();
+                if (dataId < 1)
                 {
                     _sqlSugar.RollbackTran();
                     jw.Msg = $"新增失败!";
@@ -250,11 +251,62 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 }
 
                 // 设置所有项的 ParentId 为新增后的 Id
-                foreach (var item in items) item.ParentId = addId;
+                foreach (var item in items) item.ParentId = dataId;
 
                 if (items.Any()) await _sqlSugar.Insertable(items).ExecuteCommandAsync();
             }
 
+            _sqlSugar.CommitTran();
+            jw.Msg = $"操作成功!";
+            jw.Code = StatusCodes.Status200OK;
+            jw.Data = dataId;
+            return jw;
+        }
+
+        /// <summary>
+        /// 获取团组下单前信息 Del
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<JsonView> DelAsync(GroupOrderPreInfoDelDto dto)
+        {
+            var jw = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "操作成功!" };
+            int currUserId = dto.CurrUserId,
+                id = dto.Id;
+            if (currUserId < 1)
+            {
+                jw.Msg = MsgTips.UserId;
+                return jw;
+            }
+            if (currUserId < 1)
+            {
+                jw.Msg = MsgTips.Id;
+                return jw;
+            }
+
+            
+            _sqlSugar.BeginTran();
+           
+
+            var parentDel = await _sqlSugar.Updateable<Grp_OrderPreInfo>()
+                .SetColumns(a => new Grp_OrderPreInfo()
+                {
+                    DeleteUserId = currUserId,
+                    IsDel = 1,
+                    DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                })
+                .Where(x => x.Id == id)
+                .ExecuteCommandAsync(); 
+            var subDel = await _sqlSugar.Updateable<Grp_OrderPreItem>()
+                .SetColumns(a => new Grp_OrderPreItem()
+                {
+                    DeleteUserId = currUserId,
+                    IsDel = 1,
+                    DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                })
+                .Where(x => x.ParentId == id)
+                .ExecuteCommandAsync();
+
             _sqlSugar.CommitTran();
             jw.Msg = $"操作成功!";
             jw.Code = StatusCodes.Status200OK;