From 12afc554dfde40c49f19c788ee51e061d037d084 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 12 六月 2025 10:43:03 +0800 Subject: [PATCH] fix:创建或更新推广员 重复校验修改 --- LifePayment/LifePayment.Application/Promoter/PromoterService.cs | 92 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 73 insertions(+), 19 deletions(-) diff --git a/LifePayment/LifePayment.Application/Promoter/PromoterService.cs b/LifePayment/LifePayment.Application/Promoter/PromoterService.cs index d7c0b1e..5258676 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), "璇疯緭鍏ヨ仈绯绘柟寮�"); @@ -178,21 +233,12 @@ { input.IdNumber = BuildIdNumber(); } - else if (input.Id == null) - { - 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("璇ユ墜鏈哄彿宸茬敵璇�"); - } - } + var exist = await lifePayPromoterRepository.FirstOrDefaultAsync(it => it.Id != input.Id && (it.IdNumber == input.IdNumber || it.PhoneNumber == input.PhoneNumber)); + if (exist != null) + { + CheckExtensions.IfTrueThrowUserFriendlyException(exist.IdNumber == input.IdNumber, "璇D宸插瓨鍦�"); + CheckExtensions.IfTrueThrowUserFriendlyException(exist.PhoneNumber == input.PhoneNumber, "璇ユ墜鏈哄彿宸茬敵璇�"); } if (input.Id == null) @@ -200,7 +246,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 +258,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