From ad8e329a739839bf5ce80b42d931b655c2c20356 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 09 六月 2025 15:40:30 +0800 Subject: [PATCH] feat:新增接口x2 GET/api/Promoter/GetChannelConsultationById获取渠道咨询Id GET/api/Promoter/GetPromoter获取推广员信息 --- LifePayment/LifePayment.Application.Contracts/Promoter/IPromoterService.cs | 16 +++ LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml | 22 ++++ LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs | 18 +- LifePayment/LifePayment.Domain/ACOOLY/IACOOLYManager.cs | 7 + LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs | 12 ++ LifePayment/LifePayment.Host/Properties/launchSettings.json | 1 LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYInput.cs | 17 +++ LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYOutput.cs | 14 ++ LifePayment/LifePayment.HttpApi/LifePay/PromoterController.cs | 24 ++++ LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYConstant.cs | 5 + LifePayment/LifePayment.Application/Promoter/PromoterService.cs | 54 ++++++++++ LifePayment/LifePayment.Domain/ACOOLY/ACOOLYManager.cs | 12 ++ LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs | 7 + LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs | 2 LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml | 22 ++++ LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 19 +++ 16 files changed, 238 insertions(+), 14 deletions(-) diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs index 4c1373f..08e57d0 100644 --- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs +++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs @@ -30,6 +30,13 @@ Task<PhoneParValueResponse> GetPhoneParValue(); /// <summary> + /// 璇濊垂璁㈠崟鏌ヨ + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + Task<QueryPhoneOrderResponse> QueryPhoneOrder(QueryPhoneOrderRequestInput input); + + /// <summary> /// 鑾峰彇鐕冩皵闈㈠�� /// </summary> /// <returns></returns> diff --git a/LifePayment/LifePayment.Application.Contracts/Promoter/IPromoterService.cs b/LifePayment/LifePayment.Application.Contracts/Promoter/IPromoterService.cs index ff7afbd..c73b5e8 100644 --- a/LifePayment/LifePayment.Application.Contracts/Promoter/IPromoterService.cs +++ b/LifePayment/LifePayment.Application.Contracts/Promoter/IPromoterService.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Services; using Volo.Abp.AutoMapper; using Volo.Abp.Users; @@ -24,6 +25,13 @@ Task<PageOutput<PromoterDto>> GetPromoters(GetPromotersInput input); /// <summary> + /// 鑾峰彇鎺ㄥ箍鍛樹俊鎭� + /// </summary> + /// <param name="phoneNumber"></param> + /// <returns></returns> + Task<PromoterDto> GetPromoter(string phoneNumber); + + /// <summary> /// 鑾峰彇娓犻亾鍜ㄨ鍒楄〃 /// </summary> /// <param name="input"></param> @@ -31,6 +39,14 @@ Task<PageOutput<ChannelConsultationDto>> GetChannelConsultation(GetChannelConsultationsInput input); /// <summary> + /// 鑾峰彇娓犻亾鍜ㄨId + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + /// <exception cref="FriendlyException"></exception> + Task<ChannelConsultationDto> GetChannelConsultationById(Guid id); + + /// <summary> /// 鑾峰彇娓犻亾鍜ㄨ鍥炶璁板綍 /// </summary> /// <param name="id">娓犻亾鍜ㄨId</param> diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs index 48708f5..25fc798 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs @@ -130,6 +130,16 @@ } /// <summary> + /// 璇濊垂璁㈠崟鏌ヨ + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<QueryPhoneOrderResponse> QueryPhoneOrder(QueryPhoneOrderRequestInput input) + { + return await _aCOOLYManager.QueryPhoneOrder(input); + } + + /// <summary> /// 鑾峰彇璇濊垂闈㈠�� /// </summary> /// <param name="input"></param> @@ -1378,10 +1388,11 @@ var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync(); CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�"); - //if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�) - //{ - // return; - //} + if (order.LifePayOrderStatus == status && order.ACOOLYStatus == acoolyStatus) + { + _logger.LogInformation($"璁㈠崟锛坽orderNo}锛夊凡澶勭悊璇ョ姸鎬�"); + return; + } order.ActualReceivedAmount = actualParValue; diff --git a/LifePayment/LifePayment.Application/Promoter/PromoterService.cs b/LifePayment/LifePayment.Application/Promoter/PromoterService.cs index d7c0b1e..30e1896 100644 --- a/LifePayment/LifePayment.Application/Promoter/PromoterService.cs +++ b/LifePayment/LifePayment.Application/Promoter/PromoterService.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Services; using Volo.Abp.AutoMapper; using Volo.Abp.Domain.Repositories; @@ -89,6 +90,29 @@ } /// <summary> + /// 鑾峰彇鎺ㄥ箍鍛樹俊鎭� + /// </summary> + /// <param name="phoneNumber"></param> + /// <returns></returns> + public async Task<PromoterDto> GetPromoter(string phoneNumber) + { + return await lifePayPromoterRepository + .Where(it => it.PhoneNumber == phoneNumber) + .Select(it => new PromoterDto + { + Id = it.Id, + CreationTime = it.CreationTime, + IdNumber = it.IdNumber, + Name = it.Name, + PhoneNumber = it.PhoneNumber, + ClickCount = it.ClickCount, + ApplyCount = it.ApplyCount, + Remark = it.Remark, + }) + .FirstOrDefaultAsync(); + } + + /// <summary> /// 鑾峰彇娓犻亾鍜ㄨ鍒楄〃 /// </summary> /// <param name="input"></param> @@ -138,6 +162,36 @@ } /// <summary> + /// 鑾峰彇娓犻亾鍜ㄨId + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + /// <exception cref="FriendlyException"></exception> + public async Task<ChannelConsultationDto> GetChannelConsultationById(Guid id) + { + var query = from cc in lifePayChannelConsultationRepository + join p in lifePayPromoterRepository on cc.PromoterId equals p.Id into pg + from pgd in pg.DefaultIfEmpty() + select new ChannelConsultationDto + { + Id = cc.Id, + CreationTime = cc.CreationTime, + Name = cc.Name, + AgentType = cc.AgentType, + PhoneNumber = cc.PhoneNumber, + CompanyName = cc.CompanyName, + CustomerResources = cc.CustomerResources, + PromoterIdNumber = pgd.IdNumber, + PromoterName = pgd.Name, + PromoterPhoneNumber = pgd.PhoneNumber, + FollowupStatus = cc.FollowupStatus, + LastFollowupTime = cc.LastFollowupTime, + FollowupRemark = cc.FollowupRemark, + }; + return await query.FirstOrDefaultAsync(); + } + + /// <summary> /// 鑾峰彇娓犻亾鍜ㄨ鍥炶璁板綍 /// </summary> /// <param name="id">娓犻亾鍜ㄨId</param> diff --git a/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYConstant.cs b/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYConstant.cs index ec454c0..07312cc 100644 --- a/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYConstant.cs +++ b/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYConstant.cs @@ -38,6 +38,11 @@ public const string PhoneParValue = "phoneParValue"; /// <summary> + /// 璇濊垂璁㈠崟鏌ヨ + /// </summary> + public const string QueryPhoneOrder = "queryPhoneOrder"; + + /// <summary> /// 鎻愪氦鐢佃瘽璐硅鍗� /// </summary> public const string ConfirmPhoneOrder = "confirmPhoneOrder"; diff --git a/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYInput.cs b/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYInput.cs index a09e3dc..d0470e5 100644 --- a/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYInput.cs +++ b/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYInput.cs @@ -205,6 +205,23 @@ } /// <summary> +/// 璇濊垂璁㈠崟鏌ヨ璇锋眰鍙傛暟 +/// </summary> +public class QueryPhoneOrderRequestInput : ACOOLYRequestBaseInput +{ + /// <summary> + /// 澶栭儴鍟嗘埛璁㈠崟鍙� + /// </summary> + [JsonProperty("outOrderNo")] + public string OutOrderNo { get; set; } + /// <summary> + /// 骞冲彴璁㈠崟鍙� + /// </summary> + [JsonProperty("busiOrderNo")] + public string BusiOrderNo { get; set; } +} + +/// <summary> /// 鎻愪氦鐢佃瘽璐硅鍗曡姹傚弬鏁� /// </summary> public class ConfirmPhoneOrderRequestInput : ACOOLYRequestBaseInput diff --git a/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYOutput.cs b/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYOutput.cs index d8555e3..06efe70 100644 --- a/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYOutput.cs +++ b/LifePayment/LifePayment.Domain.Shared/ACOOLY/ACOOLYOutput.cs @@ -378,6 +378,18 @@ } /// <summary> +/// 璇濊垂璁㈠崟鏌ヨ杩斿洖鍙傛暟 +/// </summary> +public class QueryPhoneOrderResponse : ACOOLYRequestBaseResponse +{ + /// <summary> + /// 璇濊垂鍏呭�艰鍗� + /// </summary> + [JsonProperty("phoneChargeOrder")] + public PhoneChargeOrderOutput PhoneChargeOrder { get; set; } +} + +/// <summary> /// 璇濊垂闈㈠�艰繑鍥炲弬鏁� /// </summary> public class PhoneParValueResponse : ACOOLYRequestBaseResponse @@ -499,7 +511,7 @@ /// 閫氱煡娑堟伅 /// </summary> [JsonProperty("responseMessage")] - public string ResponseMessage { get; set; } + public string ResponseMessage { get; set; } } diff --git a/LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs b/LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs index d2a2396..ccdc980 100644 --- a/LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs +++ b/LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs @@ -106,6 +106,8 @@ 閮ㄥ垎鍏呭�兼垚鍔� = 40, [Description("鍏呭�煎け璐�")] 鍏呭�煎け璐� = 50, + [Description("閫�娆句腑")] + 閫�娆句腑 = 51, [Description("宸查��娆�")] 宸查��娆� = 60, } diff --git a/LifePayment/LifePayment.Domain/ACOOLY/ACOOLYManager.cs b/LifePayment/LifePayment.Domain/ACOOLY/ACOOLYManager.cs index 16b7128..5fb7191 100644 --- a/LifePayment/LifePayment.Domain/ACOOLY/ACOOLYManager.cs +++ b/LifePayment/LifePayment.Domain/ACOOLY/ACOOLYManager.cs @@ -150,6 +150,18 @@ #region 璇濊垂 /// <summary> + /// 璇濊垂璁㈠崟鏌ヨ + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<QueryPhoneOrderResponse> QueryPhoneOrder(QueryPhoneOrderRequestInput input) + { + SetBaseInfo(input, ACOOLYConstant.Sevice.QueryPhoneOrder); + + return await PostAsync<QueryPhoneOrderRequestInput, QueryPhoneOrderResponse>(input); + } + + /// <summary> /// 鑾峰彇璇濊垂闈㈠�� /// </summary> /// <param name="input"></param> diff --git a/LifePayment/LifePayment.Domain/ACOOLY/IACOOLYManager.cs b/LifePayment/LifePayment.Domain/ACOOLY/IACOOLYManager.cs index 4ee1455..5b4f9b7 100644 --- a/LifePayment/LifePayment.Domain/ACOOLY/IACOOLYManager.cs +++ b/LifePayment/LifePayment.Domain/ACOOLY/IACOOLYManager.cs @@ -59,6 +59,13 @@ #region 璇濊垂 /// <summary> + /// 璇濊垂璁㈠崟鏌ヨ + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + Task<QueryPhoneOrderResponse> QueryPhoneOrder(QueryPhoneOrderRequestInput input); + + /// <summary> /// 鑾峰彇璇濊垂闈㈠�� /// </summary> /// <param name="input"></param> diff --git a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml index e2a7cca..fdaf8ab 100644 --- a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml +++ b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml @@ -116,6 +116,13 @@ </summary> <returns></returns> </member> + <member name="M:LifePayment.HttpApi.LifePayController.QueryPhoneOrder(LifePayment.Domain.Shared.QueryPhoneOrderRequestInput)"> + <summary> + 璇濊垂璁㈠崟鏌ヨ + </summary> + <param name="input"></param> + <returns></returns> + </member> <member name="M:LifePayment.HttpApi.LifePayController.GetGasParValue(LifePayment.Domain.Shared.ChannelsBaseInput)"> <summary> 鑾峰彇鐕冩皵闈㈠�� @@ -520,6 +527,13 @@ <param name="input"></param> <returns></returns> </member> + <member name="M:LifePayment.HttpApi.PromoterController.GetPromoter(System.String)"> + <summary> + 鑾峰彇鎺ㄥ箍鍛樹俊鎭� + </summary> + <param name="phoneNumber"></param> + <returns></returns> + </member> <member name="M:LifePayment.HttpApi.PromoterController.GetChannelConsultation(LifePayment.Application.Contracts.GetChannelConsultationsInput)"> <summary> 鑾峰彇娓犻亾鍜ㄨ鍒楄〃 @@ -534,6 +548,14 @@ <param name="id">娓犻亾鍜ㄨId</param> <returns></returns> </member> + <member name="M:LifePayment.HttpApi.PromoterController.GetChannelConsultationById(System.Guid)"> + <summary> + 鑾峰彇娓犻亾鍜ㄨId + </summary> + <param name="id"></param> + <returns></returns> + <exception cref="T:Volo.Abp.FriendlyException"></exception> + </member> <member name="M:LifePayment.HttpApi.PromoterController.CreateOrUpdatePromoter(LifePayment.Application.Contracts.CreateOrUpdatePromoterInput)"> <summary> 鍒涘缓鎴栨洿鏂版帹骞垮憳 diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml index ef23058..28b0129 100644 --- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml +++ b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml @@ -22,6 +22,13 @@ </summary> <returns></returns> </member> + <member name="M:LifePayment.Application.Contracts.ILifePayService.QueryPhoneOrder(LifePayment.Domain.Shared.QueryPhoneOrderRequestInput)"> + <summary> + 璇濊垂璁㈠崟鏌ヨ + </summary> + <param name="input"></param> + <returns></returns> + </member> <member name="M:LifePayment.Application.Contracts.ILifePayService.GetGasParValue"> <summary> 鑾峰彇鐕冩皵闈㈠�� @@ -2304,6 +2311,13 @@ <param name="input"></param> <returns></returns> </member> + <member name="M:LifePayment.Application.Contracts.IPromoterService.GetPromoter(System.String)"> + <summary> + 鑾峰彇鎺ㄥ箍鍛樹俊鎭� + </summary> + <param name="phoneNumber"></param> + <returns></returns> + </member> <member name="M:LifePayment.Application.Contracts.IPromoterService.GetChannelConsultation(LifePayment.Application.Contracts.GetChannelConsultationsInput)"> <summary> 鑾峰彇娓犻亾鍜ㄨ鍒楄〃 @@ -2311,6 +2325,14 @@ <param name="input"></param> <returns></returns> </member> + <member name="M:LifePayment.Application.Contracts.IPromoterService.GetChannelConsultationById(System.Guid)"> + <summary> + 鑾峰彇娓犻亾鍜ㄨId + </summary> + <param name="id"></param> + <returns></returns> + <exception cref="T:Volo.Abp.FriendlyException"></exception> + </member> <member name="M:LifePayment.Application.Contracts.IPromoterService.GetChannelConsultationFollowupList(System.Guid)"> <summary> 鑾峰彇娓犻亾鍜ㄨ鍥炶璁板綍 diff --git a/LifePayment/LifePayment.Host/Properties/launchSettings.json b/LifePayment/LifePayment.Host/Properties/launchSettings.json index c976b0b..c33e6a4 100644 --- a/LifePayment/LifePayment.Host/Properties/launchSettings.json +++ b/LifePayment/LifePayment.Host/Properties/launchSettings.json @@ -2,6 +2,7 @@ "profiles": { "IIS Express": { "commandName": "IISExpress", + "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs b/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs index b7dd3a4..02e1a4b 100644 --- a/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs +++ b/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs @@ -100,13 +100,13 @@ else if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.閫�娆句腑) { - status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.宸查��娆�; + status = LifePayOrderStatusEnum.閫�娆句腑; + acoolyStatus = ACOOLYStatusEnum.閫�娆句腑; } else if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.閫�娆惧畬鎴�) { - status = LifePayOrderStatusEnum.宸插畬鎴�; + status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.宸查��娆�; } else @@ -158,13 +158,13 @@ else if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.閫�娆句腑) { - status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.宸查��娆�; + status = LifePayOrderStatusEnum.閫�娆句腑; + acoolyStatus = ACOOLYStatusEnum.閫�娆句腑; } else if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.閫�娆惧畬鎴�) { - status = LifePayOrderStatusEnum.宸插畬鎴�; + status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.宸查��娆�; } else @@ -215,13 +215,13 @@ else if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.閫�娆句腑) { - status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.宸查��娆�; + status = LifePayOrderStatusEnum.閫�娆句腑; + acoolyStatus = ACOOLYStatusEnum.閫�娆句腑; } else if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.閫�娆惧畬鎴�) { - status = LifePayOrderStatusEnum.宸插畬鎴�; + status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.宸查��娆�; } else diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs index 5e4326d..f0dbec9 100644 --- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs +++ b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs @@ -162,6 +162,18 @@ } /// <summary> + /// 璇濊垂璁㈠崟鏌ヨ + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [AllowAnonymous] + public async Task<QueryPhoneOrderResponse> QueryPhoneOrder(QueryPhoneOrderRequestInput input) + { + return await _lifePayService.QueryPhoneOrder(input); + } + + /// <summary> /// 鑾峰彇鐕冩皵闈㈠�� /// </summary> /// <returns></returns> diff --git a/LifePayment/LifePayment.HttpApi/LifePay/PromoterController.cs b/LifePayment/LifePayment.HttpApi/LifePay/PromoterController.cs index becb882..770412f 100644 --- a/LifePayment/LifePayment.HttpApi/LifePay/PromoterController.cs +++ b/LifePayment/LifePayment.HttpApi/LifePay/PromoterController.cs @@ -15,6 +15,7 @@ using ZeroD.Util.Fadd; using Volo.Abp.Uow; using Nest; +using Volo.Abp; namespace LifePayment.HttpApi { @@ -44,6 +45,17 @@ } /// <summary> + /// 鑾峰彇鎺ㄥ箍鍛樹俊鎭� + /// </summary> + /// <param name="phoneNumber"></param> + /// <returns></returns> + [HttpGet] + public async Task<PromoterDto> GetPromoter(string phoneNumber) + { + return await promoterService.GetPromoter(phoneNumber); + } + + /// <summary> /// 鑾峰彇娓犻亾鍜ㄨ鍒楄〃 /// </summary> /// <param name="input"></param> @@ -65,6 +77,18 @@ return await promoterService.GetChannelConsultationFollowupList(id); } + /// <summary> + /// 鑾峰彇娓犻亾鍜ㄨId + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + /// <exception cref="FriendlyException"></exception> + [HttpGet] + public async Task<ChannelConsultationDto> GetChannelConsultationById(Guid id) + { + return await promoterService.GetChannelConsultationById(id); + } + #endregion #region 鍐欏叆 -- Gitblit v1.9.1