You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
542 lines
24 KiB
542 lines
24 KiB
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using NPOI.Util;
|
|
using Shentun.Peis.CardBills;
|
|
using Shentun.Peis.CardTypes;
|
|
using Shentun.Peis.Enums;
|
|
using Shentun.Peis.MedicalConclusionTypes;
|
|
using Shentun.Peis.Models;
|
|
using Shentun.Peis.PatientRegisters;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Volo.Abp;
|
|
using Volo.Abp.Application.Dtos;
|
|
using Volo.Abp.Application.Services;
|
|
using Volo.Abp.Domain.Repositories;
|
|
using Volo.Abp.Identity;
|
|
using Volo.Abp.ObjectMapping;
|
|
|
|
namespace Shentun.Peis.CardRegisters
|
|
{
|
|
[ApiExplorerSettings(GroupName = "Work")]
|
|
[Authorize]
|
|
public class CardRegisterAppService : ApplicationService
|
|
{
|
|
private readonly IRepository<CardRegister, Guid> _cardRegisterRepository;
|
|
private readonly IRepository<CardBill, Guid> _cardBillRepository;
|
|
private readonly IRepository<IdentityUser, Guid> _userRepository;
|
|
private readonly IRepository<OrganizationUnit, Guid> _organizationUnitRepository;
|
|
private readonly CardRegisterManager _manager;
|
|
private readonly CardBillManager _cardBillManager;
|
|
private readonly IRepository<CardType, Guid> _cardTypeRepository;
|
|
private readonly CacheService _cacheService;
|
|
private readonly IRepository<PayMode> _payModeRepository;
|
|
public CardRegisterAppService(
|
|
IRepository<CardRegister, Guid> cardRegisterRepository,
|
|
IRepository<CardBill, Guid> cardBillRepository,
|
|
IRepository<IdentityUser, Guid> userRepository,
|
|
IRepository<OrganizationUnit, Guid> organizationUnitRepository,
|
|
CardRegisterManager manager,
|
|
CardBillManager cardBillManager,
|
|
IRepository<CardType, Guid> cardTypeRepository,
|
|
CacheService cacheService,
|
|
IRepository<PayMode> payModeRepository)
|
|
{
|
|
this._cardRegisterRepository = cardRegisterRepository;
|
|
this._cardBillRepository = cardBillRepository;
|
|
this._userRepository = userRepository;
|
|
this._organizationUnitRepository = organizationUnitRepository;
|
|
this._manager = manager;
|
|
this._cardBillManager = cardBillManager;
|
|
_cardTypeRepository = cardTypeRepository;
|
|
_cacheService = cacheService;
|
|
_payModeRepository = payModeRepository;
|
|
}
|
|
|
|
///// <summary>
|
|
///// 查询会员卡列表 带联合搜索条件
|
|
///// </summary>
|
|
///// <param name="input"></param>
|
|
///// <returns></returns>
|
|
//[HttpPost("api/app/cardregister/getcardregisterlist")]
|
|
//public async Task<List<CardRegisterDto>> GetCardRegisterListAsync(GetCardRegisterListDto input)
|
|
//{
|
|
// if (input != null)
|
|
// {
|
|
// var cardRegisterList = (await _cardRegisterRepository.GetDbSetAsync())
|
|
// .Include(x => x.CardType).AsEnumerable();
|
|
|
|
// if (input.CardModeId != null)
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => m.CardType.CardModeId == input.CardModeId);
|
|
// }
|
|
|
|
// if (input.CardTypeId != null && input.CardTypeId != Guid.Empty)
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => m.CardTypeId == input.CardTypeId);
|
|
// }
|
|
// if (!string.IsNullOrEmpty(input.CardNo))
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => m.CardNo == input.CardNo);
|
|
// }
|
|
// if (!string.IsNullOrEmpty(input.IdNo))
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => m.IdNo == input.IdNo);
|
|
// }
|
|
// if (!string.IsNullOrEmpty(input.CustomerName))
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => !string.IsNullOrEmpty(m.CustomerName) && m.CustomerName.Contains(input.CustomerName));
|
|
// }
|
|
// if (input.IsActive != null)
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => m.IsActive == input.IsActive);
|
|
// }
|
|
// if (!string.IsNullOrEmpty(input.Phone))
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => (!string.IsNullOrEmpty(m.Telephone) && m.Telephone.Contains(input.Phone)) || (!string.IsNullOrEmpty(m.MobileTelephone) && m.MobileTelephone.Contains(input.Phone)));
|
|
// }
|
|
// if (!string.IsNullOrEmpty(input.StartDate) && !string.IsNullOrEmpty(input.EndDate))
|
|
// {
|
|
// if (input.DateType != null)
|
|
// {
|
|
// if (input.DateType == '1')
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => m.CreationTime >= Convert.ToDateTime(input.StartDate) &&
|
|
// m.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
|
|
// }
|
|
// else if (input.DateType == '2')
|
|
// {
|
|
// cardRegisterList = cardRegisterList.Where(m => m.ExpiryDate != null && m.ExpiryDate >= Convert.ToDateTime(input.StartDate) &&
|
|
// m.ExpiryDate < Convert.ToDateTime(input.EndDate).AddDays(1));
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
|
|
// var organizationUnitQueryable = await _organizationUnitRepository.GetQueryableAsync();
|
|
// var userQueryable = await _userRepository.GetQueryableAsync();
|
|
|
|
// var entlist = from a in cardRegisterList
|
|
// join b in userQueryable on a.CreatorId equals b.Id into bb
|
|
// from ab in bb.DefaultIfEmpty()
|
|
// join c in userQueryable on a.LastModifierId equals c.Id into cc
|
|
// from ac in cc.DefaultIfEmpty()
|
|
// join d in organizationUnitQueryable on a.MedicalCenterId equals d.Id into dd
|
|
// from ad in dd.DefaultIfEmpty()
|
|
// select new { a, CreatorName = ab != null ? ab.Surname : "", LastModifierName = ac != null ? ac.Surname : "", OrganizationUnitName = ad != null ? ad.DisplayName : "" };
|
|
|
|
|
|
// var entdtolist = entlist.Select(s => new CardRegisterDto
|
|
// {
|
|
// CardBalance = s.a.CardBalance,
|
|
// IsActive = s.a.IsActive,
|
|
// CardModeId = s.a.CardType.CardModeId,
|
|
// CardNo = s.a.CardNo,
|
|
// CardPassword = s.a.CardPassword,
|
|
// CardTypeId = s.a.CardTypeId,
|
|
// CardTypeName = s.a.CardType.DisplayName,
|
|
// CreationTime = s.a.CreationTime,
|
|
// CreatorId = s.a.CreatorId,
|
|
// Discount = s.a.Discount,
|
|
// ExpiryDate = DataHelper.ConversionDateToString(s.a.ExpiryDate),
|
|
// Id = s.a.Id,
|
|
// IdNo = s.a.IdNo,
|
|
// LastModificationTime = s.a.LastModificationTime,
|
|
// LastModifierId = s.a.LastModifierId,
|
|
// CustomerName = s.a.CustomerName,
|
|
// MobileTelephone = s.a.MobileTelephone,
|
|
// Remark = s.a.Remark,
|
|
// Telephone = s.a.Telephone,
|
|
// CreatorName = s.CreatorName,
|
|
// LastModifierName = s.LastModifierName,
|
|
// OrganizationUnitName = s.OrganizationUnitName
|
|
// }).ToList();
|
|
|
|
|
|
|
|
|
|
// return entdtolist;
|
|
|
|
// }
|
|
// else
|
|
// {
|
|
// throw new UserFriendlyException("参数有误");
|
|
// }
|
|
//}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 查询会员卡列表 带联合搜索条件
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/cardregister/getcardregisterlist")]
|
|
public async Task<PagedResultDto<CardRegisterDto>> GetCardRegisterListAsync(GetCardRegisterListDto input)
|
|
{
|
|
if (input != null)
|
|
{
|
|
var cardRegisterList = from cardRegister in await _cardRegisterRepository.GetQueryableAsync()
|
|
join cardType in await _cardTypeRepository.GetQueryableAsync() on cardRegister.CardTypeId equals cardType.Id
|
|
join organizationUnit in await _organizationUnitRepository.GetQueryableAsync() on cardRegister.MedicalCenterId equals organizationUnit.Id
|
|
select new
|
|
{
|
|
cardRegister,
|
|
cardType,
|
|
organizationUnitName = organizationUnit.DisplayName
|
|
};
|
|
|
|
if (input.CardModeId != null)
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardType.CardModeId == input.CardModeId);
|
|
}
|
|
|
|
if (input.CardTypeId != null && input.CardTypeId != Guid.Empty)
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.CardTypeId == input.CardTypeId);
|
|
}
|
|
if (!string.IsNullOrEmpty(input.CardNo))
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.CardNo.ToUpper() == input.CardNo.ToUpper());
|
|
}
|
|
if (!string.IsNullOrEmpty(input.IdNo))
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.IdNo == input.IdNo);
|
|
}
|
|
if (!string.IsNullOrEmpty(input.CustomerName))
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => !string.IsNullOrEmpty(m.cardRegister.CustomerName) && m.cardRegister.CustomerName.Contains(input.CustomerName));
|
|
}
|
|
if (input.IsActive != null)
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.IsActive == input.IsActive);
|
|
}
|
|
if (!string.IsNullOrEmpty(input.Phone))
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => (!string.IsNullOrEmpty(m.cardRegister.Telephone) && m.cardRegister.Telephone.Contains(input.Phone)) || (!string.IsNullOrEmpty(m.cardRegister.MobileTelephone) && m.cardRegister.MobileTelephone.Contains(input.Phone)));
|
|
}
|
|
if (!string.IsNullOrEmpty(input.StartDate) && !string.IsNullOrEmpty(input.EndDate))
|
|
{
|
|
if (input.DateType != null)
|
|
{
|
|
if (input.DateType == '1')
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.CreationTime >= Convert.ToDateTime(input.StartDate) &&
|
|
m.cardRegister.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
|
|
}
|
|
else if (input.DateType == '2')
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.ExpiryDate >= Convert.ToDateTime(input.StartDate) &&
|
|
m.cardRegister.ExpiryDate < Convert.ToDateTime(input.EndDate).AddDays(1));
|
|
}
|
|
}
|
|
}
|
|
|
|
int totalCount = cardRegisterList.Count();
|
|
|
|
cardRegisterList = cardRegisterList.OrderBy(o => o.cardType.CardModeId).ThenBy(o => o.cardRegister.Id).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount);
|
|
|
|
var entDtoList = cardRegisterList.ToList().Select(s => new CardRegisterDto
|
|
{
|
|
CardBalance = s.cardRegister.CardBalance,
|
|
IsActive = s.cardRegister.IsActive,
|
|
CardModeId = s.cardType.CardModeId,
|
|
CardNo = s.cardRegister.CardNo,
|
|
CardPassword = s.cardRegister.CardPassword,
|
|
CardTypeId = s.cardRegister.CardTypeId,
|
|
CardTypeName = s.cardType.DisplayName,
|
|
CreationTime = s.cardRegister.CreationTime,
|
|
CreatorId = s.cardRegister.CreatorId,
|
|
Discount = s.cardRegister.Discount,
|
|
ExpiryDate = DataHelper.ConversionDateToString(s.cardRegister.ExpiryDate),
|
|
Id = s.cardRegister.Id,
|
|
IdNo = s.cardRegister.IdNo,
|
|
LastModificationTime = s.cardRegister.LastModificationTime,
|
|
LastModifierId = s.cardRegister.LastModifierId,
|
|
CustomerName = s.cardRegister.CustomerName,
|
|
MobileTelephone = s.cardRegister.MobileTelephone,
|
|
Remark = s.cardRegister.Remark,
|
|
Telephone = s.cardRegister.Telephone,
|
|
CreatorName = _cacheService.GetSurnameAsync(s.cardRegister.CreatorId).GetAwaiter().GetResult(),
|
|
LastModifierName = _cacheService.GetSurnameAsync(s.cardRegister.LastModifierId).GetAwaiter().GetResult(),
|
|
OrganizationUnitName = s.organizationUnitName,
|
|
MedicalCenterId = s.cardRegister.MedicalCenterId
|
|
}).ToList();
|
|
|
|
|
|
return new PagedResultDto<CardRegisterDto>(totalCount, entDtoList);
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
throw new UserFriendlyException("参数有误");
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 收费时检索会员卡信息
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/CardRegister/GetCardRegisterCharge")]
|
|
public async Task<List<GetCardRegisterChargeDto>> GetCardRegisterChargeAsync(GetCardRegisterChargeInputDto input)
|
|
{
|
|
var cardRegisterList = from cardRegister in await _cardRegisterRepository.GetQueryableAsync()
|
|
join cardType in await _cardTypeRepository.GetQueryableAsync() on cardRegister.CardTypeId equals cardType.Id
|
|
where cardRegister.IsActive == 'Y'
|
|
select new
|
|
{
|
|
cardRegister,
|
|
cardType
|
|
};
|
|
|
|
if (input.CardModeId != null)
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardType.CardModeId == input.CardModeId);
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(input.CardNo))
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.CardNo.ToUpper() == input.CardNo.ToUpper());
|
|
}
|
|
if (!string.IsNullOrEmpty(input.IdNo))
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.IdNo == input.IdNo);
|
|
}
|
|
if (!string.IsNullOrEmpty(input.CustomerName))
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.CustomerName == input.CustomerName);
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(input.Phone))
|
|
{
|
|
cardRegisterList = cardRegisterList.Where(m => m.cardRegister.Telephone == input.Phone || m.cardRegister.MobileTelephone == input.Phone);
|
|
}
|
|
|
|
var entDtoList = cardRegisterList.ToList().Select(s => new GetCardRegisterChargeDto
|
|
{
|
|
CardBalance = s.cardRegister.CardBalance,
|
|
CardModeId = s.cardType.CardModeId,
|
|
CardNo = s.cardRegister.CardNo,
|
|
CardTypeName = s.cardType.DisplayName,
|
|
Discount = s.cardRegister.Discount,
|
|
ExpiryDate = DataHelper.ConversionDateToString(s.cardRegister.ExpiryDate),
|
|
Id = s.cardRegister.Id,
|
|
IdNo = s.cardRegister.IdNo,
|
|
CustomerName = s.cardRegister.CustomerName,
|
|
MobileTelephone = s.cardRegister.MobileTelephone,
|
|
Remark = s.cardRegister.Remark,
|
|
Telephone = s.cardRegister.Telephone
|
|
}).ToList();
|
|
|
|
return entDtoList;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 根据ID查实体内容
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("api/app/cardregister/get")]
|
|
public async Task<CardRegisterDto> GetAsync(Guid id)
|
|
{
|
|
var userList = await _userRepository.GetListAsync();
|
|
var entity = await _cardRegisterRepository.GetAsync(id);
|
|
var entityDto = ObjectMapper.Map<CardRegister, CardRegisterDto>(entity);
|
|
entityDto.CreatorName = EntityHelper.GetSurnameNoSql(userList, entityDto.CreatorId);
|
|
entityDto.LastModifierName = EntityHelper.GetSurnameNoSql(userList, entityDto.LastModifierId);
|
|
|
|
return entityDto;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 创建
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/cardregister/create")]
|
|
public async Task<CardRegisterDto> CreateAsync(CreateCardRegisterDto input)
|
|
{
|
|
Guid cardRegisterId = GuidGenerator.Create();
|
|
var createEntity = ObjectMapper.Map<CreateCardRegisterDto, CardRegister>(input);
|
|
var entity = await _manager.CreateAsync(createEntity, cardRegisterId);
|
|
entity = await _cardRegisterRepository.InsertAsync(entity);
|
|
var dto = ObjectMapper.Map<CardRegister, CardRegisterDto>(entity);
|
|
return dto;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/cardregister/update")]
|
|
public async Task<CardRegisterDto> UpdateAsync(Guid id, UpdateCardRegisterDto input)
|
|
{
|
|
var entity = await _cardRegisterRepository.GetAsync(id);
|
|
var sourceEntity = ObjectMapper.Map<UpdateCardRegisterDto, CardRegister>(input);
|
|
_manager.UpdateAsync(sourceEntity, entity);
|
|
entity = await _cardRegisterRepository.UpdateAsync(entity);
|
|
return ObjectMapper.Map<CardRegister, CardRegisterDto>(entity);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/cardregister/delete")]
|
|
public Task DeleteAsync(Guid id)
|
|
{
|
|
throw new Exception("卡禁止删除");
|
|
|
|
}
|
|
/// <summary>
|
|
/// 更新启用状态
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="updateCardRegisterActiveDto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/cardregister/updateactive")]
|
|
public async Task UpdateActive(Guid id, UpdateCardRegisterActiveDto updateCardRegisterActiveDto)
|
|
{
|
|
Check.NotNull<UpdateCardRegisterActiveDto>(updateCardRegisterActiveDto, nameof(updateCardRegisterActiveDto));
|
|
var entity = await _cardRegisterRepository.GetAsync(id);
|
|
await _manager.UpdateActive(entity, updateCardRegisterActiveDto.IsActive);
|
|
|
|
await _cardRegisterRepository.UpdateAsync(entity);
|
|
}
|
|
|
|
/*
|
|
/// <summary>
|
|
/// 会员卡充值 delete by zhh 2024-03-17
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/cardregister/cardregisterrecharge")]
|
|
public async Task CardRegisterRechargeAsync(CardRegisterRechargeDto input)
|
|
{
|
|
if (input != null)
|
|
{
|
|
var cardRegisterEnt = await _cardRegisterRepository.FindAsync(m => m.Id == input.CardRegisterId);
|
|
if (cardRegisterEnt != null)
|
|
{
|
|
cardRegisterEnt.CardBalance += input.RechargeAmount;
|
|
await _cardRegisterRepository.UpdateAsync(cardRegisterEnt);
|
|
|
|
//增加充值记录
|
|
var cardBill = new CardBill(GuidGenerator.Create())
|
|
{
|
|
BillFlag = '2',
|
|
BillMoney = input.RechargeAmount,
|
|
CardRegisterId = input.CardRegisterId,
|
|
PayModeId = input.PayModeId
|
|
};
|
|
|
|
cardBill = _cardBillManager.CreateAsync(cardBill);
|
|
|
|
await _cardBillRepository.InsertAsync(cardBill);
|
|
|
|
}
|
|
else
|
|
{
|
|
throw new UserFriendlyException("会员卡不存在");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new UserFriendlyException("参数有误");
|
|
}
|
|
}
|
|
*/
|
|
|
|
/// <summary>
|
|
/// 会员卡充值、退费
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/cardregister/addcardbill")]
|
|
public async Task AddCardBill(CreateCardBillDto createCardBillDto)
|
|
{
|
|
DataHelper.CheckEntityIsNull(createCardBillDto);
|
|
//Check.NotNull<CreateCardBillDto>(createCardBillDto, "CreateCardBillDto");
|
|
var cardRegister = await _cardRegisterRepository.GetAsync(createCardBillDto.CardRegisterId);
|
|
var cardBill = _manager.CreateCardBill(cardRegister,
|
|
createCardBillDto.PayModeId, createCardBillDto.BillFlag, createCardBillDto.BillMoney);
|
|
|
|
await _cardRegisterRepository.UpdateAsync(cardRegister);
|
|
await _cardBillRepository.InsertAsync(cardBill);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// excel文档创建会员卡
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost("api/app/CardRegister/BatchCreateCardRegisterByExcel")]
|
|
public async Task BatchCreateCardRegisterByExcelAsync(BatchCreateCardRegisterByExcelInputDto input)
|
|
{
|
|
var cardTypeEntity = await _cardTypeRepository.FirstOrDefaultAsync(f => f.DisplayName == input.CardTypeName.Trim());
|
|
if (cardTypeEntity == null)
|
|
{
|
|
throw new UserFriendlyException($"当前数据卡类型不存在,卡号:{input.CardNo},姓名:{input.CustomerName}");
|
|
}
|
|
|
|
Guid cardRegisterId = GuidGenerator.Create();
|
|
var cardRegisterEntity = new CardRegister
|
|
{
|
|
CardNo = input.CardNo,
|
|
CardPassword = "",
|
|
CardTypeId = cardTypeEntity.Id,
|
|
CustomerName = input.CustomerName,
|
|
Discount = input.Discount,
|
|
ExpiryDate = DateTime.Parse(input.ExpiryDate),
|
|
IdNo = input.IdNo,
|
|
IsActive = 'Y',
|
|
MobileTelephone = input.MobileTelephone,
|
|
Remark = input.Remark,
|
|
Telephone = input.Telephone,
|
|
MedicalCenterId = input.MedicalCenterId
|
|
};
|
|
|
|
cardRegisterEntity = await _manager.CreateAsync(cardRegisterEntity, cardRegisterId);
|
|
|
|
if (input.CardBalance > 0)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(input.PayModeName))
|
|
{
|
|
throw new UserFriendlyException("充值支付方式不能为空");
|
|
}
|
|
|
|
var payModeEntity = await _payModeRepository.FirstOrDefaultAsync(f => f.DisplayName == input.PayModeName.Trim());
|
|
if (payModeEntity == null)
|
|
{
|
|
throw new UserFriendlyException($"当前数据充值支付方式不存在,卡号:{input.CardNo},姓名:{input.CustomerName}");
|
|
}
|
|
|
|
var cardBillEntity = _manager.CreateCardBill(cardRegisterEntity, payModeEntity.Id, CardBillFlag.Charge, input.CardBalance);
|
|
|
|
await _cardRegisterRepository.InsertAsync(cardRegisterEntity);
|
|
|
|
await _cardBillRepository.InsertAsync(cardBillEntity);
|
|
|
|
}
|
|
else
|
|
{
|
|
await _cardRegisterRepository.InsertAsync(cardRegisterEntity);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
}
|