From c6f6cf89d9dd5245d83f796313c879ae616b9044 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 10 六月 2025 16:50:17 +0800
Subject: [PATCH] fix:运营端--渠道管理--渠道咨询管理列表的查询条件输入推广人信息,列表查询结果不正确

---
 LifePayment/LifePayment.Application/Promoter/PromoterService.cs |   84 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 70 insertions(+), 14 deletions(-)

diff --git a/LifePayment/LifePayment.Application/Promoter/PromoterService.cs b/LifePayment/LifePayment.Application/Promoter/PromoterService.cs
index d7c0b1e..ac00aea 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>
@@ -129,12 +153,43 @@
                 query = query.Where(s =>
                     s.Name.Contains(input.SearchKey)
                     || s.PhoneNumber.Contains(input.SearchKey)
-                    || s.Name.Contains(input.SearchKey)
-                    || s.PhoneNumber.Contains(input.SearchKey));
+                    || s.PromoterName.Contains(input.SearchKey)
+                    || s.PromoterPhoneNumber.Contains(input.SearchKey));
             }
 
             var result = await query.GetPageResult(input.PageModel);
             return result;
+        }
+
+        /// <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()
+                        where cc.Id == id
+                        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>
@@ -170,7 +225,7 @@
         /// <param name="input"></param>
         /// <returns></returns>
         /// <exception cref="FormatException"></exception>
-        public async Task<Guid> CreateOrUpdatePromoter(CreateOrUpdatePromoterInput input)
+        public async Task<CreateOrUpdatePromoterOutput> CreateOrUpdatePromoter(CreateOrUpdatePromoterInput input)
         {
             CheckExtensions.IfTrueThrowUserFriendlyException(string.IsNullOrWhiteSpace(input.Name), "璇疯緭鍏ユ帹骞夸汉");
             CheckExtensions.IfTrueThrowUserFriendlyException(string.IsNullOrWhiteSpace(input.PhoneNumber), "璇疯緭鍏ヨ仈绯绘柟寮�");
@@ -183,15 +238,8 @@
                 var exist = await lifePayPromoterRepository.FirstOrDefaultAsync(it => it.IdNumber == input.IdNumber || it.PhoneNumber == input.PhoneNumber);
                 if (exist != null)
                 {
-                    if (exist.IdNumber == input.IdNumber)
-                    {
-                        throw new FormatException("璇D宸插瓨鍦�");
-                    }
-
-                    if (exist.PhoneNumber == input.PhoneNumber)
-                    {
-                        throw new FormatException("璇ユ墜鏈哄彿宸茬敵璇�");
-                    }
+                    CheckExtensions.IfTrueThrowUserFriendlyException(exist.IdNumber == input.IdNumber, "璇D宸插瓨鍦�");
+                    CheckExtensions.IfTrueThrowUserFriendlyException(exist.PhoneNumber == input.PhoneNumber, "璇ユ墜鏈哄彿宸茬敵璇�");
                 }
             }
 
@@ -200,7 +248,11 @@
                 var entity = new LifePayPromoter();
                 ObjectMapper.Map(input, entity);
                 await lifePayPromoterRepository.InsertAsync(entity);
-                return entity.Id;
+                return new CreateOrUpdatePromoterOutput
+                {
+                    Id = entity.Id,
+                    IdNumber = entity.IdNumber,
+                };
             }
             else
             {
@@ -208,7 +260,11 @@
                 CheckExtensions.IfTrueThrowUserFriendlyException(entity == null, "璇ユ帹骞垮憳涓嶅瓨鍦�");
                 ObjectMapper.Map(input, entity);
                 await lifePayPromoterRepository.UpdateAsync(entity);
-                return entity.Id;
+                return new CreateOrUpdatePromoterOutput
+                {
+                    Id = entity.Id,
+                    IdNumber = entity.IdNumber,
+                };
             }
         }
 

--
Gitblit v1.9.1