Ver código fonte

其他款项-出行物资 --> 自动审核 代码编写

LEIYI 4 meses atrás
pai
commit
c86c1f883d

+ 2 - 2
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -200,7 +200,7 @@ namespace OASystem.API.Controllers
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.DailyPayment, title, content, userIds, 0);
 
-                await APNsTools.iOS_PushNotifications("051", $"日付费用审核", "", content);
+                await APNsTools.iOS_PushNotifications1("051", $"日付费用审核", "", content);
             }
             catch (Exception ex)
             {
@@ -243,7 +243,7 @@ namespace OASystem.API.Controllers
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.DailyPayment, title, content, userIds, 0);
 
-                await APNsTools.iOS_PushNotifications("051", $"日付费用审核", "", content);
+                await APNsTools.iOS_PushNotifications1("051", $"日付费用审核", "", content);
             }
             catch (Exception ex)
             {

+ 11 - 16
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -2768,7 +2768,7 @@ FROM
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
 
-                await APNsTools.iOS_PushNotifications("051", $"机票费用审核", "", content);
+                await APNsTools.iOS_PushNotifications1("051", $"机票费用审核", "", content);
 
             }
             catch (Exception ex)
@@ -3643,9 +3643,13 @@ FROM
             }
 
             #region 应用推送
+            int otherId = (int)groupData.Data.GetType().GetProperty("dataId").GetValue(groupData.Data, null);
             int ccpId = (int)groupData.Data.GetType().GetProperty("ccpId").GetValue(groupData.Data, null);
             int sign = (int)groupData.Data.GetType().GetProperty("sign").GetValue(groupData.Data, null);
 
+            //自动审核
+            var autoAdit = await _feeAuditRep.FeeAutomaticAudit(3, dto.DiId, otherId);
+
             await AppNoticeLibrary.SendChatMsg_GroupStatus_ApplyFee(ccpId, sign, QiyeWeChatEnum.GuoJiaoLeaderChat);
 
             //2024-10-21 新增LZ UID
@@ -3660,9 +3664,7 @@ FROM
 
             await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
 
-            await APNsTools.iOS_PushNotifications("051", $"其他款项费用审核", "", content);
-
-
+            //await APNsTools.iOS_PushNotifications1("051", $"其他款项费用审核", "", content);
 
             #endregion
 
@@ -4265,7 +4267,7 @@ FROM
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
 
-                await APNsTools.iOS_PushNotifications("051", $"商邀费用审核", "", content);
+                await APNsTools.iOS_PushNotifications1("051", $"商邀费用审核", "", content);
             }
             catch (Exception ex)
             {
@@ -7144,7 +7146,7 @@ FROM
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId); 
                 
-                await APNsTools.iOS_PushNotifications("051", $"签证费用审核", "", content);
+                await APNsTools.iOS_PushNotifications1("051", $"签证费用审核", "", content);
             }
             catch (Exception ex)
             {
@@ -7517,7 +7519,7 @@ FROM
                     string content = $"[更新-OP费用录入填写详情({groupInfo?.TeamName ?? "-"})]一项费用:{(((ccpInfo.PayMoney * ccpInfo.DayRate) / 100) * ccpInfo.PayPercentage).ToString("#0.00")} CNY;";
 
                     await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
-                    await APNsTools.iOS_PushNotifications("051", "OP费用审核", "", content);
+                    await APNsTools.iOS_PushNotifications1("051", "OP费用审核", "", content);
                 }
                 catch (Exception ex)
                 {
@@ -11057,14 +11059,9 @@ ORDER by  gctggrc.id DESC
                 if (_dto.Id == 0) content = $"[新增-酒店费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate).ToString("#0.00")} CNY;";
                 else if (_dto.Id > 0) content = $"[更新-酒店费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate).ToString("#0.00")} CNY;";
 
-               
-
                 try
                 {
-
-                    Logs($"【iOS推送通知PostHotelReservationsAddOrEdit】Start");
                     var iosRes1 = await APNsTools.iOS_PushNotifications1("051", title, "", content);
-                    Logs($"【iOS推送通知PostHotelReservationsAddOrEdit】End Response:[{JsonConvert.SerializeObject(iosRes1)}]");
                     //Logs($"【iOS推送通知PostHotelReservationsAddOrEdit】Start");
                     //var iosRes = await APNsTools.iOS_PushNotifications("051", title, "", content);
                     //Logs($"【iOS推送通知PostHotelReservationsAddOrEdit】End Response:[{JsonConvert.SerializeObject(iosRes)}]");
@@ -11106,9 +11103,7 @@ ORDER by  gctggrc.id DESC
                 else if (_dto.Id > 0) content = $"[更新-酒店费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate).ToString("#0.00")} CNY;";
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
-                //await GeneralMethod.iOS_PushNotifications("051", "费用审核", "", content);
-
-            }
+                            }
             catch (Exception ex)
             {
             }
@@ -13201,7 +13196,7 @@ ORDER by  gctggrc.id DESC
                 else if (dto.Status == 2) content = $"[更新-保险费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate).ToString("#0.00")} CNY;";
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
-                await APNsTools.iOS_PushNotifications("051", $"保险费用审核", "", content);
+                await APNsTools.iOS_PushNotifications1("051", $"保险费用审核", "", content);
             }
             catch (Exception ex)
             {

+ 17 - 11
OASystem/OASystem.Api/OAMethodLib/APNs/APNsService.cs

@@ -100,7 +100,8 @@ namespace OASystem.API.OAMethodLib.APNs
             }
 
             var kid = _configuration["apple:kid"];
-            var securityKey = _configuration["apple:securityKey"].Replace("\n", "");
+           //var securityKey = _configuration["apple:securityKey"].Replace("\n", "");
+            var securityKey = string.Format("MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQglyUl7hjI75YJUVMbZLN6TpkiFzuTXUN+UIjuJA7+y8ugCgYIKoZIzj0DAQehRANCAAS8GR7lKNst4KENCp45OXCMyiytvzK0qdRBrx0l+bMaHjiU+Upfox82G+Xy4wd8hI+0wMDh341aNelqEdYUUx3O");
             var iss = _configuration["apple:iss"];
             var claims = new Claim[]
             {
@@ -108,27 +109,39 @@ namespace OASystem.API.OAMethodLib.APNs
                 new Claim("iat", iat.ToString())
             };
 
+            string msg = string.Empty;
+
+            msg += $"[GetnerateAPNsJWTToken] 0";
             try
             {
+                msg += $"[GetnerateAPNsJWTToken] 1";
                 var eCDsa = ECDsa.Create();
 
+                msg += $"[GetnerateAPNsJWTToken] 2";
                 eCDsa.ImportPkcs8PrivateKey(Convert.FromBase64String(securityKey), out _);
 
+                msg += $"[GetnerateAPNsJWTToken] 3";
                 var key = new ECDsaSecurityKey(eCDsa);
 
+                msg += $"[GetnerateAPNsJWTToken] 4";
                 key.KeyId = kid;
 
+                msg += $"[GetnerateAPNsJWTToken] 5";
                 var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.EcdsaSha256);
+                msg += $"[GetnerateAPNsJWTToken] 6";
                 var jwtHeader = new JwtHeader(signingCredentials);
+                msg += $"[GetnerateAPNsJWTToken] 7";
                 var jwtPayload = new JwtPayload(claims);
 
+                msg += $"[GetnerateAPNsJWTToken] 8";
                 var jwtSecurityToken = new JwtSecurityToken(jwtHeader, jwtPayload);
 
+                msg += $"[GetnerateAPNsJWTToken] 9";
                 APNsService.token = tokenHandler.WriteToken(jwtSecurityToken);
             }
             catch (Exception ex)
             {
-                return $"[ECDsa] ExMsg:[{ex.Message}]";
+                return msg += $"[GetnerateAPNsJWTToken] --> ExMsg:[{ex.Message}]";
             }
             
             return APNsService.token;
@@ -136,10 +149,8 @@ namespace OASystem.API.OAMethodLib.APNs
 
         public async Task<Result>  PushNotification1(string apnsTopic, string deviceToken, NotificationType type, string title, string subtitle, string body)
         {
-
             var res = new Result() { Code = 0, Msg = "", Data = "" };
 
-            res.Msg += $"[PushNotification1] --> Start\t\t\t\t\t";
             //This string is for extracting libcurl and ssl libs to the bin directory.
             CurlResources.Init();
             var global = CurlNative.Init();
@@ -147,9 +158,8 @@ namespace OASystem.API.OAMethodLib.APNs
             string content=string.Empty;
             try
             {
-                var token = GetnerateAPNsJWTToken(); ;
+                var token = GetnerateAPNsJWTToken(); 
 
-                res.Msg += $"[PushNotification1] --> Token:[{token}]\t\t\t\t\t";
                 var dataCopier = new DataCallbackCopier();
 
                 CurlNative.Easy.SetOpt(easy, CURLoption.URL, $"https://api.push.apple.com:443/3/device/{deviceToken}");
@@ -157,7 +167,6 @@ namespace OASystem.API.OAMethodLib.APNs
                 //This string is needed when you call a https endpoint.
                 CurlNative.Easy.SetOpt(easy, CURLoption.CAINFO, CurlResources.CaBundlePath);
 
-
                 var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, APNsService.baseUrl + deviceToken)
                 {
                     Headers =
@@ -169,7 +178,6 @@ namespace OASystem.API.OAMethodLib.APNs
                     Version = new Version(2, 0)
                 };
 
-                res.Msg += $"[PushNotification1] --> httpRequestMessage:baseUrl[{APNsService.baseUrl + deviceToken}]\t\t\t\t\t";
                 var notContent = new
                 {
                     aps = new
@@ -192,14 +200,12 @@ namespace OASystem.API.OAMethodLib.APNs
                 var contentJson = new StringContent(System.Text.Json.JsonSerializer.Serialize(notContent), System.Text.Encoding.UTF8, Application.Json);
                 CurlNative.Easy.SetOpt(easy, CURLoption.POSTFIELDS, System.Text.Json.JsonSerializer.Serialize(notContent));
 
-
-
                 //Your set of ciphers, full list is here https://curl.se/docs/ssl-ciphers.html
                 CurlNative.Easy.SetOpt(easy, CURLoption.SSL_CIPHER_LIST, "ECDHE-RSA-AES256-GCM-SHA384");
 
 
 
-                res.Msg += $"[PushNotification1] --> 发送请求\t\t\t\t\t";
+                res.Msg += $"[PushNotification1] --> 发送请求";
                 CurlNative.Easy.Perform(easy);
 
                 content = Encoding.UTF8.GetString(dataCopier.Stream.ToArray());

+ 2 - 2
OASystem/OASystem.Api/OAMethodLib/GeneralMethod.cs

@@ -830,7 +830,7 @@ namespace OASystem.API.OAMethodLib
         #region 三公费用相关
 
 
-        // <summary>
+        /// <summary>
         /// 保存操作前汇率
         /// </summary>
         /// <param name="currUserId"></param>
@@ -879,7 +879,7 @@ namespace OASystem.API.OAMethodLib
 
 
         /// <summary>
-        /// 三公费用导入款账单数据
+        /// 三公费用导入款账单数据
         /// </summary>
         /// <param name="groupId"></param>
         /// <returns></returns>

+ 6 - 0
OASystem/OASystem.Domain/ViewModels/Groups/FeeAuditView.cs

@@ -179,5 +179,11 @@ namespace OASystem.Domain.ViewModels.Groups
 
         #endregion
 
+        #region 自动审核 - 其他费用相关字段
+        /// <summary>
+        /// 出行物资费用
+        /// </summary>
+        public decimal TeFee { get { return TE; } set { TE = value; } }
+        #endregion
     }
 }

+ 7 - 7
OASystem/OASystem.Infrastructure/Repositories/Groups/DecreasePaymentsRepository.cs

@@ -152,14 +152,14 @@ namespace OASystem.Infrastructure.Repositories.Groups
         {
             BeginTran();
             int id = 0;
-            Grp_DecreasePayments grp_Decrease = _mapper.Map<Grp_DecreasePayments>(dto);
+            var grp_Decrease = _mapper.Map<Grp_DecreasePayments>(dto);
             //处理费用总计
             if (grp_Decrease.FeeTotal == 0.00M)
             {
                 grp_Decrease.FeeTotal = grp_Decrease.Price * grp_Decrease.Price;
             }
 
-            List<TeamRateDescAddCurrencyIdView> teamRates = await _teamRateRep.PostGroupTeamRateItemByDiIdAndCTableId(1, dto.DiId, 98);
+            var teamRates = await _teamRateRep.PostGroupTeamRateItemByDiIdAndCTableId(1, dto.DiId, 98);
             if (dto.Status == 1)//添加
             {
                 string selectSql = string.Format(@"select * from Grp_DecreasePayments where PriceName='{0}' and IsDel={1} and DiId={2}"
@@ -229,7 +229,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     //C.RMBPrice = 0.00f;
 
                     //设置该团组的汇率
-                    TeamRateDescAddCurrencyIdView teamRate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
+                    var teamRate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
                     //Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_Decrease.DiId && a.IsDel == 0 && a.CTable == 98);
                     if (teamRate != null)
                     {
@@ -253,7 +253,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     if (cId != 0)
                     {
                         CommitTran();
-                        var data = new { ccpId = cId, sign = 1 };
+                        var data = new { ccpId = cId, sign = 1,dataId = id };
                         return new JsonView() { Code = 200, Msg = "添加成功!", Data = data };
                     }
                     else
@@ -288,11 +288,11 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 });
                 if (res)
                 {
-                    Grp_CreditCardPayment grp_CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == grp_Decrease.Id && a.CTable == 98 && a.CId == grp_Decrease.Id && a.IsDel == 0);
+                    var grp_CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == grp_Decrease.Id && a.CTable == 98 && a.CId == grp_Decrease.Id && a.IsDel == 0);
                     if (grp_CreditCardPayment != null)
                     {
                         //设置该团组的汇率
-                        TeamRateDescAddCurrencyIdView teamRate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
+                        var teamRate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
 
                         if (teamRate != null)
                         {
@@ -338,7 +338,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         {
                             CommitTran();
 
-                            var data = new { ccpId = grp_CreditCardPayment.Id, sign = 2 };
+                            var data = new { ccpId = grp_CreditCardPayment.Id, sign = 2,dataId = grp_CreditCardPayment.Id };
 
                             return new JsonView() { Code = 200, Msg = "修改成功!", Data = data };
                         }

+ 76 - 10
OASystem/OASystem.Infrastructure/Repositories/Groups/FeeAuditRepository.cs

@@ -27,6 +27,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// <param name="feeType">
         /// 1.酒店 76 
         /// 2.op 79
+        /// 3.其他费用-出行物资 98
         /// </param>
         /// <param name="diId">团组Id</param>
         /// <param name="dataId">数据Id(模块类型主表Id)</param>
@@ -37,7 +38,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
             if (diId < 1) { _view.Msg = MsgTips.DiId; return _view; }
             if (dataId < 1) { _view.Msg = MsgTips.Id; return _view; }
 
-            List<int> stids = new List<int>() { 17, 66 };
+            var stids = new List<int>() { 17, 66, 91 };
             var setData = _sqlSugar.Queryable<Sys_SetData>().Where(x => x.IsDel == 0 && stids.Contains(x.STid)).ToList();
             string _teamCurrency = string.Empty;
            
@@ -114,11 +115,11 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 DateTime checkIn = Convert.ToDateTime(hotelCostInfo.CheckInDate),
                          checkOut = Convert.ToDateTime(hotelCostInfo.CheckOutDate);
                 if (checkOut > checkIn) checkOut = checkOut.AddDays(-1); //房费计算,结束日期为前一天
-                var hotelCostInfos = costContents.Where(x =>  x.CurrTime >= checkIn && x.CurrTime <= checkOut).ToList();
+                var hotelCostInfos = costContents.Where(x => x.CurrTime >= checkIn && x.CurrTime <= checkOut).ToList();
                 if (hotelCostInfos.Count < 1) isAutoAudit = false;
 
                 decimal otherFee = hotelCostDetails.Where(x => x.PriceType != 1).Sum(x => x.Price * (x.Rate == 0.0000M ? 1.0000M : x.Rate));
-                if (otherFee > 0) { otherFee /= (checkOut-checkIn).Days; }
+                if (otherFee > 0) { otherFee /= (checkOut - checkIn).Days; }
                 var hotelCostInfosGroup = hotelCostInfos.GroupBy(x => x.Date);
                 foreach (var item in hotelCostInfosGroup)
                 {
@@ -160,10 +161,10 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         return _view;
                     }
                 }
-                else {
+                else
+                {
                     //撤销该条数据的自动审核 --> 该条数据的审核状态是自动审核  3 --> 0
-
-                    var quashStatus = QuashAudit(76,diId,dataId);
+                    var quashStatus = QuashAudit(76, diId, dataId);
 
                     if (quashStatus)
                     {
@@ -171,7 +172,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         _view.Msg = "费用超团组成本,自动审核撤销成功!";
                         return _view;
                     }
-                    
                 }
             }
             else if (feeType == 2)
@@ -199,7 +199,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 }
                 //1.参数验证
                 var opCheckPriceTyeps = opinfos.SelectCheck.Split(',');
-                var opCheckPriceTyepIds = setData.Where(x => opinfos.SelectCheck.Split(',').Contains(x.Name)).Select(x=>x.Id).ToList();
+                var opCheckPriceTyepIds = setData.Where(x => opinfos.SelectCheck.Split(',').Contains(x.Name)).Select(x => x.Id).ToList();
                 var opContents = _sqlSugar.Queryable<Grp_CarTouristGuideGroundReservationsContent>()
                     .Where(x => x.IsDel == 0 && x.DiId == diId && x.CTGGRId == dataId && opCheckPriceTyepIds.Contains(x.SId))
                     .OrderBy(x => x.DatePrice, OrderByType.Asc)
@@ -228,7 +228,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     _teamRate = payInfo.DayRate;
                 }
 
-                
+
                 var opBasicDatas = setData.Where(x => x.STid == 17).ToList(); //费用类型基础数据
                 bool isAutoAudit = true;
                 if (!DateTime.TryParse(opinfos.ServiceStartTime, out DateTime startDt1) || !DateTime.TryParse(opinfos.ServiceEndTime, out DateTime endDt1))
@@ -357,13 +357,79 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 else
                 {
                     //撤销该条数据的自动审核 --> 该条数据的审核状态是自动审核  3 --> 0
-                    if (QuashAudit(79,diId,dataId))
+                    if (QuashAudit(79, diId, dataId))
+                    {
+                        _view.Code = 200;
+                        _view.Msg = "费用超团组成本,自动审核撤销成功!";
+                        return _view;
+                    }
+                }
+            }
+            else if (feeType == 3)
+            {
+                #region 出行物资的功能及相关费用自动审核
+
+                var isAutoAudit = false;
+                var currModule = 98; //其他款项
+                int groupSize = 0; // 团组人数
+                var groupDetails = await _sqlSugar.Queryable<Grp_DelegationInfo>().Where(x => x.IsDel == 0 && x.Id == diId).FirstAsync();
+                if (groupInfo != null) groupSize = groupDetails.VisitPNumber;
+
+                decimal groupCostCNYTotal = costContents.Sum(x => x.TeFee) * _teamRate * groupSize; //团组成本出行物资总金额
+                if (groupCostCNYTotal <= 0.00M)
+                {
+                    _view.Msg = $"团组成本出行物资费用数据未填写";
+                    QuashAudit(currModule, diId, dataId);
+                    return _view;
+                }
+
+                var teNames = setData.Where(x => x.STid == 91).Select(x => x.Name).ToList();
+                var otherFeeDatas = _sqlSugar.Queryable<Grp_DecreasePayments>().Where(x => x.IsDel == 0 && teNames.Contains(x.PriceName)).ToList();
+                decimal otherFeeCNYTotal = otherFeeDatas.Sum(x => x.FeeTotal);  //其他费用出行物资总金额
+                if (groupCostCNYTotal <= 0.00M)
+                {
+                    _view.Msg = $"其他款项出行物资费用数据未填写";
+                    QuashAudit(currModule, diId, dataId);
+                    return _view;
+                }
+
+                if (otherFeeCNYTotal > groupCostCNYTotal)
+                {
+                    _view.Msg = $"其他款项出行物资费用超出团组成本物资费用";
+                    QuashAudit(currModule, diId, dataId);
+                    return _view;
+                }
+
+                //2.判断是否自动审核
+                if (isAutoAudit)
+                {
+                    var ccpUpdate = _sqlSugar.Updateable<Grp_CreditCardPayment>()
+                                       .SetColumns(it => it.IsAuditGM == 3)
+                                       .SetColumns(it => it.AuditGMOperate == 4)
+                                       .SetColumns(it => it.AuditGMDate == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
+                                       .Where(s => s.DIId == diId && s.CTable == currModule && s.CId == dataId)
+                                       .ExecuteCommand();
+                    if (ccpUpdate > 0)
+                    {
+                        _view.Code = 200;
+                        _view.Msg = "自动审核执行成功";
+                        return _view;
+                    }
+                }
+                else
+                {
+                    //撤销该条数据的自动审核 --> 该条数据的审核状态是自动审核  3 --> 0
+                    var quashStatus = QuashAudit(currModule, diId, dataId);
+
+                    if (quashStatus)
                     {
                         _view.Code = 200;
                         _view.Msg = "费用超团组成本,自动审核撤销成功!";
                         return _view;
                     }
                 }
+
+                #endregion
             }
             else _view.Msg = $"请传入有效的feeType参数";