Browse Source

优化翻译人员信息处理逻辑

在 `OfficialActivitiesDto.cs` 中,将 `TranslatorInfo` 属性更改为可空类型 `TranslatorView?`,增强灵活性。重构 `OfficialActivitiesRepository.cs` 中的代码,简化 `Result` 对象的创建,增加可读性。引入 `isInserTranslator` 布尔变量以避免重复代码,并优化翻译人员资料的更新和插入逻辑,确保事务处理的正确性和数据一致性。
LEIYI 2 months ago
parent
commit
5eadd4b4ba

+ 1 - 1
OASystem/OASystem.Domain/Dtos/Resource/OfficialActivitiesDto.cs

@@ -156,7 +156,7 @@ namespace OASystem.Domain.Dtos.Resource
         /// <summary>
         /// 翻译人员Info
         /// </summary>
-        public TranslatorView TranslatorInfo { get; set; }
+        public TranslatorView? TranslatorInfo { get; set; }
 
 
     }

+ 114 - 102
OASystem/OASystem.Infrastructure/Repositories/Resource/OfficialActivitiesRepository.cs

@@ -192,7 +192,7 @@ FROM
         }
         public async Task<Result> OpOfficialActivities(OpOfficialActivitiesDto dto)
         {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            var result = new Result() { Code = -2, Msg = "未知错误" };
 
             #region 特殊字符转码  037 - 4.28 15:17
 
@@ -221,19 +221,25 @@ FROM
             res_InvitationData.Field = dto.Field;
             EncryptionProcessor.EncryptProperties(res_InvitationData);
 
-            //翻译人员资料
-            var translatorInfo = _mapper.Map<Res_TranslatorLibrary>(dto.TranslatorInfo);
-            translatorInfo.CreateUserId = dto.CreateUserId;
-            if (dto.TranslatorIdItem.Any()) translatorInfo.Id = dto.TranslatorIdItem[0];
+            var isInserTranslator = false;
+            var translatorInfo = new Res_TranslatorLibrary();
+            if (true)
+            {
+                //翻译人员资料
+                translatorInfo = _mapper.Map<Res_TranslatorLibrary>(dto.TranslatorInfo);
+                translatorInfo.CreateUserId = dto.CreateUserId;
+                if (dto.TranslatorIdItem.Any()) translatorInfo.Id = dto.TranslatorIdItem[0];
 
-            EncryptionProcessor.EncryptProperties(translatorInfo);
+                EncryptionProcessor.EncryptProperties(translatorInfo);
+                isInserTranslator = true;
+            }
 
             int DataID = 0;
             if (dto.Status == 1)//添加
             {
                 //添加资料
                 DataID = await _sqlSugar.Insertable(res_InvitationData).ExecuteReturnIdentityAsync();
-                Res_OfficialActivities _InvitationOfficialActivityData = _mapper.Map<Res_OfficialActivities>(dto);
+                var _InvitationOfficialActivityData = _mapper.Map<Res_OfficialActivities>(dto);
                 _InvitationOfficialActivityData.DataId = DataID;
                 int id = await _sqlSugar.Insertable(_InvitationOfficialActivityData).ExecuteReturnIdentityAsync();
                 if (id == 0)
@@ -244,60 +250,62 @@ FROM
                 else
                 {
                     var translatorId = translatorInfo.Id;
-                    if (translatorId > 0) // 翻译人员资料更新
+
+                    if (isInserTranslator)
                     {
-                        var tiStatus = await _sqlSugar.Updateable<Res_TranslatorLibrary>(translatorInfo)
-                            .UpdateColumns(x => new
-                            {
-                                x.Area,
-                                x.Name,
-                                x.Sex,
-                                x.Tel,
-                                x.Email,
-                                x.WechatNo,
-                                x.OtherSocialAccounts,
-                                x.Language,
-                                x.Price,
-                                x.Currency,
-                            })
-                            .ExecuteCommandAsync();
-
-                        if (tiStatus < 1)
+                        if (translatorId > 0) // 翻译人员资料更新
                         {
-                            _sqlSugar.RollbackTran();
-                            return new Result() { Code = -1, Msg = "翻译人员资料更新失败!", Data = new { Id = id } };
+                            var tiStatus = await _sqlSugar.Updateable<Res_TranslatorLibrary>(translatorInfo)
+                                .UpdateColumns(x => new
+                                {
+                                    x.Area,
+                                    x.Name,
+                                    x.Sex,
+                                    x.Tel,
+                                    x.Email,
+                                    x.WechatNo,
+                                    x.OtherSocialAccounts,
+                                    x.Language,
+                                    x.Price,
+                                    x.Currency,
+                                })
+                                .ExecuteCommandAsync();
+
+                            if (tiStatus < 1)
+                            {
+                                _sqlSugar.RollbackTran();
+                                return new Result() { Code = -1, Msg = "翻译人员资料更新失败!", Data = new { Id = id } };
+                            }
                         }
-                    }
-                    else //添加翻译人员资料
-                    {
-                        translatorId = await _sqlSugar.Insertable(translatorInfo).ExecuteReturnIdentityAsync();
-                        if (translatorId == 0)
+                        else //添加翻译人员资料
                         {
-                            _sqlSugar.RollbackTran();
-                            return new Result() { Code = -1, Msg = "翻译人员资料添加失败!", Data = new { Id = id } };
+                            translatorId = await _sqlSugar.Insertable(translatorInfo).ExecuteReturnIdentityAsync();
+                            if (translatorId == 0)
+                            {
+                                _sqlSugar.RollbackTran();
+                                return new Result() { Code = -1, Msg = "翻译人员资料添加失败!", Data = new { Id = id } };
+                            }
                         }
-                    }
 
-                    #region 新增(公务信息关联翻译人员) 关联信息
+                        #region 新增(公务信息关联翻译人员) 关联信息
 
-                    var linkStatus = await _sqlSugar
-                        .Insertable(new Grp_OfficialDutyLinkTranslator()
+                        var linkStatus = await _sqlSugar
+                            .Insertable(new Grp_OfficialDutyLinkTranslator()
+                            {
+                                TranslatorId = translatorId,
+                                OfficialDutyId = id,
+                                CreateUserId = dto.CreateUserId,
+                                Remark = $"公务出访客户资料-->添加"
+                            }).ExecuteCommandAsync();
+
+                        if (linkStatus < 1)
                         {
-                            TranslatorId = translatorId,
-                            OfficialDutyId = id,
-                            CreateUserId = dto.CreateUserId,
-                            Remark = $"公务出访客户资料-->添加"
-                        }).ExecuteCommandAsync();
+                            _sqlSugar.RollbackTran();
+                            return new Result() { Code = -1, Msg = "公务出访关联翻译人员资料添加失败!", Data = new { Id = id } };
+                        }
 
-                    if (linkStatus < 1)
-                    {
-                        _sqlSugar.RollbackTran();
-                        return new Result() { Code = -1, Msg = "公务出访关联翻译人员资料添加失败!", Data = new { Id = id } };
+                        #endregion
                     }
-                    
-                    #endregion
-
-
                     _sqlSugar.CommitTran();
                     result = new Result() { Code = 0, Msg = "添加成功!", Data = new { Id = id } };
                 }
@@ -383,73 +391,77 @@ FROM
                 });
                 if (res)
                 {
-                    #region 更新(公务信息关联翻译人员) 关联信息
-
-                    if (translatorInfo.Id > 0) //资料更新
+                    if (isInserTranslator)
                     {
-                        var tiStatus = await _sqlSugar.Updateable<Res_TranslatorLibrary>(translatorInfo)
-                            .UpdateColumns(x => new
-                            {
-                                x.Area,
-                                x.Name,
-                                x.Sex,
-                                x.Tel,
-                                x.Email,
-                                x.WechatNo,
-                                x.OtherSocialAccounts,
-                                x.Language,
-                                x.Price,
-                                x.Currency,
-                            })
-                            .ExecuteCommandAsync();
-
-                        if (tiStatus < 1)
-                        {
-                            _sqlSugar.RollbackTran();
-                            return new Result() { Code = -1, Msg = "翻译人员资料更新失败!", Data = new { Id = dto.Id } };
-                        }
+                        #region 更新(公务信息关联翻译人员) 关联信息
 
-                        var dutyLink_select = await _sqlSugar.Queryable<Grp_OfficialDutyLinkTranslator>()
-                       .Where(x => x.IsDel == 0 && x.OfficialDutyId == dto.Id&& x.TranslatorId == translatorInfo.Id)
-                       .FirstAsync();
-                        if (dutyLink_select == null)
+                        if (translatorInfo.Id > 0) //资料更新
                         {
-                            var odltStatus = await _sqlSugar.Insertable(new Grp_OfficialDutyLinkTranslator()
+                            var tiStatus = await _sqlSugar.Updateable<Res_TranslatorLibrary>(translatorInfo)
+                                .UpdateColumns(x => new
+                                {
+                                    x.Area,
+                                    x.Name,
+                                    x.Sex,
+                                    x.Tel,
+                                    x.Email,
+                                    x.WechatNo,
+                                    x.OtherSocialAccounts,
+                                    x.Language,
+                                    x.Price,
+                                    x.Currency,
+                                })
+                                .ExecuteCommandAsync();
+
+                            if (tiStatus < 1)
+                            {
+                                _sqlSugar.RollbackTran();
+                                return new Result() { Code = -1, Msg = "翻译人员资料更新失败!", Data = new { Id = dto.Id } };
+                            }
+
+                            var dutyLink_select = await _sqlSugar.Queryable<Grp_OfficialDutyLinkTranslator>()
+                           .Where(x => x.IsDel == 0 && x.OfficialDutyId == dto.Id && x.TranslatorId == translatorInfo.Id)
+                           .FirstAsync();
+                            if (dutyLink_select == null)
+                            {
+                                var odltStatus = await _sqlSugar.Insertable(new Grp_OfficialDutyLinkTranslator()
                                 {
                                     TranslatorId = translatorInfo.Id,
                                     OfficialDutyId = dto.Id,
                                     CreateUserId = dto.CreateUserId,
                                     Remark = $"公务出访客户资料-->添加"
                                 }).ExecuteCommandAsync();
+                                if (odltStatus < 1)
+                                {
+                                    _sqlSugar.RollbackTran();
+                                    result = new Result() { Code = -1, Msg = "公务出访关联翻译人员资料添加失败!" };
+                                }
+                            }
+                        }
+                        else // 添加
+                        {
+                            translatorInfo.Id = await _sqlSugar.Insertable(translatorInfo).ExecuteReturnIdentityAsync();
+                            if (translatorInfo.Id == 0)
+                            {
+                                _sqlSugar.RollbackTran();
+                                return new Result() { Code = -1, Msg = "翻译人员资料添加失败!", Data = new { Id = dto.Id } };
+                            }
+                            var odltStatus = await _sqlSugar.Insertable(new Grp_OfficialDutyLinkTranslator()
+                            {
+                                TranslatorId = translatorInfo.Id,
+                                OfficialDutyId = dto.Id,
+                                CreateUserId = dto.CreateUserId,
+                                Remark = $"公务出访客户资料-->添加"
+                            }).ExecuteCommandAsync();
                             if (odltStatus < 1)
                             {
                                 _sqlSugar.RollbackTran();
                                 result = new Result() { Code = -1, Msg = "公务出访关联翻译人员资料添加失败!" };
                             }
                         }
+                        #endregion
                     }
-                    else // 添加
-                    {
-                        translatorInfo.Id = await _sqlSugar.Insertable(translatorInfo).ExecuteReturnIdentityAsync();
-                        if (translatorInfo.Id == 0)
-                        {
-                            _sqlSugar.RollbackTran();
-                            return new Result() { Code = -1, Msg = "翻译人员资料添加失败!", Data = new { Id = dto.Id } };
-                        }
-                        var odltStatus = await _sqlSugar.Insertable(new Grp_OfficialDutyLinkTranslator()
-                        {
-                            TranslatorId = translatorInfo.Id,
-                            OfficialDutyId = dto.Id,
-                            CreateUserId = dto.CreateUserId,
-                            Remark = $"公务出访客户资料-->添加"
-                        }).ExecuteCommandAsync();
-                        if (odltStatus < 1)
-                        {
-                            _sqlSugar.RollbackTran();
-                            result = new Result() { Code = -1, Msg = "公务出访关联翻译人员资料添加失败!" };
-                        }
-                    }
-                    #endregion
+
 
                     _sqlSugar.CommitTran();
                     result = new Result() { Code = 0, Msg = "修改成功!", Data = new { Id = dto.Id } };