|
|
using Shentun.Peis.Models;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using TencentCloud.Ic.V20190307.Models;using TencentCloud.Sqlserver.V20180328.Models;using Volo.Abp;using Volo.Abp.Domain.Repositories;using Volo.Abp.Domain.Services;using static log4net.Appender.RollingFileAppender;
namespace Shentun.Peis.CardRegisters{ public class CardRegisterManager : DomainService { private readonly IRepository<CardRegister, Guid> _repository; public CardRegisterManager(IRepository<CardRegister, Guid> repository) { _repository = repository;
} /// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public async Task<CardRegister> CreateAsync( CardRegister entity ) { Verify(entity); var queryable = await _repository.GetQueryableAsync(); var findedEntity = queryable.Where(x => x.CardNo == entity.CardNo && x.IsActive == 'Y').FirstOrDefault(); if (findedEntity != null) { throw new UserFriendlyException($"卡号已经被{findedEntity.CustomerName}使用"); } return new CardRegister( GuidGenerator.Create() ) { CardBalance = 0, IsActive = entity.IsActive, CardNo = entity.CardNo, CardPassword = entity.CardPassword, CardTypeId = entity.CardTypeId, CustomerName = entity.CustomerName, Discount = entity.Discount, ExpiryDate = entity.ExpiryDate, IdNo = entity.IdNo, MobileTelephone = entity.MobileTelephone, OrganizationUnitId = entity.OrganizationUnitId, Remark = entity.Remark, Telephone = entity.Telephone
}; }
/// <summary>
/// 更新
/// </summary>
/// <param name="sourceEntity"></param>
/// <param name="targetEntity"></param>
/// <returns></returns>
public void UpdateAsync( CardRegister sourceEntity, CardRegister targetEntity ) { DataHelper.CheckVerifyData(sourceEntity); DataHelper.CheckVerifyData(targetEntity); Verify(sourceEntity); if (sourceEntity.CardNo != targetEntity.CardNo) { throw new ArgumentException("卡号不允许修改"); } if (sourceEntity.CardBalance != targetEntity.CardBalance) { throw new ArgumentException("卡余额不允许修改"); } targetEntity.IsActive = sourceEntity.IsActive; targetEntity.CardPassword = sourceEntity.CardPassword; targetEntity.CardTypeId = sourceEntity.CardTypeId; targetEntity.CustomerName = sourceEntity.CustomerName; targetEntity.Discount = sourceEntity.Discount; targetEntity.ExpiryDate = sourceEntity.ExpiryDate; targetEntity.IdNo = sourceEntity.IdNo; targetEntity.MobileTelephone = sourceEntity.MobileTelephone; targetEntity.OrganizationUnitId = sourceEntity.OrganizationUnitId; targetEntity.Remark = sourceEntity.Remark; targetEntity.Telephone = sourceEntity.Telephone;
}
public async Task UpdateActive(CardRegister entity, char isActive) { DataHelper.CheckVerifyData(entity); DataHelper.CheckVerifyData(isActive, "使用标志", true); if (isActive == 'N') { entity.IsActive = isActive; } else { //检查卡号是否用过
var queryable = await _repository.GetQueryableAsync(); var findedEntity = queryable.Where(x => x.Id != entity.Id && x.CardNo == entity.CardNo && x.IsActive == 'Y').FirstOrDefault(); if (findedEntity != null) { throw new UserFriendlyException($"卡号已经被{findedEntity.CustomerName}使用"); } } }
public CardBill CreateCardBill(CardRegister entity, string payModeId, char billFlag, decimal amount) { DataHelper.CheckVerifyData(entity); DataHelper.CheckVerifyData(billFlag, "记账标志"); if (amount == 0) { throw new ArgumentException("金额等于0"); }; if (billFlag == Shentun.Peis.Enums.CardBillFlag.Charge && amount < 0) { throw new ArgumentException("充值金额不能小于0"); } else if (billFlag != Shentun.Peis.Enums.CardBillFlag.Charge && amount > 0) { throw new ArgumentException("扣费或退费金额不能大于0"); } if ((entity.CardBalance + amount) < 0) { throw new ArgumentException($"扣费或退费金额不能小于余额{entity.CardBalance}"); } entity.CardBalance += amount; var cardBill = new CardBill(GuidGenerator.Create()) { CardRegisterId = entity.Id, PayModeId = payModeId, BillFlag = billFlag, BillMoney = amount, }; return cardBill; }
public void AddCardBill(CardRegister entity, string payModeId, char billFlag, decimal amount) { DataHelper.CheckVerifyData(entity); DataHelper.CheckVerifyData(billFlag, "记账标志"); if (amount == 0) { throw new ArgumentException("金额等于0"); }; if (billFlag == Shentun.Peis.Enums.CardBillFlag.Charge && amount < 0) { throw new ArgumentException("充值金额不能小于0"); } else if (billFlag != Shentun.Peis.Enums.CardBillFlag.Charge && amount > 0) { throw new ArgumentException("扣费或退费金额不能大于0"); } if ((entity.CardBalance + amount) < 0) { throw new ArgumentException($"扣费或退费金额不能小于余额{entity.CardBalance}"); } entity.CardBalance += amount; var cardBill = new CardBill(GuidGenerator.Create()) { CardRegisterId = entity.Id, PayModeId = payModeId, BillFlag = billFlag, BillMoney = amount, }; entity.CardBills.Add(cardBill); } private void Verify(CardRegister entity) { DataHelper.CheckVerifyData(entity); DataHelper.CheckVerifyData(entity.CardNo, "卡号"); DataHelper.CheckVerifyData(entity.CustomerName, "领用者"); DataHelper.CheckVerifyData(entity.IdNo, "身份证号"); DataHelper.CheckVerifyData(entity.IdNo, "手机号"); DataHelper.CheckVerifyData(entity.CardTypeId, "卡类型"); DataHelper.CheckVerifyData(entity.OrganizationUnitId, "体检中心"); DataHelper.CheckVerifyData(entity.IsActive, "使用标志", true); } }}
|