Преглед на файлове

添加事务处理和修正注释及查询条件

在 `SystemController.cs` 中,添加了事务处理逻辑以确保在导入 Excel 数据时的原子性,记录当前时间和用户 ID,并在插入数据时进行检查,添加了异常处理以捕获错误并回滚事务。

在 `Res_VisaFeeStandard.cs` 中,修正了 `LastUpdateUserId` 的注释,确保描述准确。

在 `CountryFeeRepository.cs` 中,修改了 `LeftJoin` 的查询条件,将 `ProvinceName` 的选择从英文名称改为中文名称。
Lyyyi преди 2 месеца
родител
ревизия
c7c66ba5f0

+ 46 - 1
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -3876,7 +3876,52 @@ And u.UId = {0} And u.FId = 1 ", dto.UserId);
 
             if (datas.Any())
             {
-                return Ok(datas);
+                _sqlSugar.BeginTran();
+                try
+                {
+                    foreach (var item in datas)
+                    {
+
+                        var now = DateTime.Now;
+                        var visaFeeStandard = _mapper.Map<Res_VisaFeeStandard>(item);
+                        visaFeeStandard.LastUpdateTime = now;
+                        visaFeeStandard.LastUpdateUserId = currUserId;
+                        visaFeeStandard.CreateTime = now;
+                        visaFeeStandard.CreateUserId = currUserId;
+
+                        var insertId = await _sqlSugar.Insertable(visaFeeStandard).ExecuteReturnIdentityAsync();
+
+                        if (insertId < 1)
+                        {
+                            _sqlSugar.RollbackTran();
+                            return Ok(JsonView(false, "excel导入失败!"));
+                        }
+
+                        var visaFeeStandardDetails = _mapper.Map<List<Res_VisaFeeStandardDetails>>(item.VisaFees);
+                        visaFeeStandardDetails.ForEach(x => {
+                            x.ParentId = insertId;
+                            x.CreateUserId = currUserId;
+                            x.CreateTime = now;
+                        });
+
+                        var insertSubId = await _sqlSugar.Insertable(visaFeeStandardDetails).ExecuteCommandAsync();
+                        if (insertSubId < 1)
+                        {
+                            _sqlSugar.RollbackTran();
+                            return Ok(JsonView(false, "excel导入失败!"));
+                        }
+
+                    }
+                    _sqlSugar.CommitTran();
+
+                    return Ok(JsonView(true, $"excel导入成功!Total:{datas.Count}"));
+                }
+                catch (Exception ex)
+                {
+                    _sqlSugar.RollbackTran();
+                    return Ok(JsonView(false, ex.Message));
+                }
+
             }
             return Ok(JsonView(false, "excel导入失败!"));
         }

+ 1 - 1
OASystem/OASystem.Domain/Entities/Resource/Res_VisaFeeStandard.cs

@@ -27,7 +27,7 @@
         /// <summary>
         /// 最后更新者Id
         /// </summary>
-        [SugarColumn(ColumnName = "LastUpdateTime", ColumnDescription = "最后更新者Id", IsNullable = true, ColumnDataType = "int")]
+        [SugarColumn(ColumnName = "LastUpdateUserId", ColumnDescription = "最后更新者Id", IsNullable = true, ColumnDataType = "int")]
         public int LastUpdateUserId { get; set; }
 
         /// <summary>

+ 3 - 2
OASystem/OASystem.Infrastructure/Repositories/Resource/CountryFeeRepository.cs

@@ -178,12 +178,13 @@ namespace OASystem.Infrastructure.Repositories.Resource
             }
 
             var detailsList = await _sqlSugar.Queryable<Res_VisaFeeStandardDetails>()
-                .LeftJoin<Sys_Cities>((x, y) => x.ProvinceId == y.Id && y.Level == 1)
+                .LeftJoin<Sys_Cities>((x, y) => x.ProvinceId == y.Id && (y.Level == 1 || y.Level == 4))
+                .Where((x, y) => x.ParentId == view.Id && x.IsDel == 0)
                 .Select((x, y) => new VisaFeeStandardDetails {
                     Id = x.Id,
                     ParentId = x.ParentId,
                     ProvinceId = x.ProvinceId,
-                    ProvinceName = y.Name_EN,
+                    ProvinceName = y.Name_CN,
                     VisaAddress = x.VisaAddress,
                     IsVisaOnArrival = x.IsVisaOnArrival,
                     IsElectronicSign = x.IsElectronicSign,