Browse Source

CardType修改

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
6c9774a125
  1. 29
      src/Shentun.Peis.Application/CardTypes/CardTypeAppService.cs
  2. 14
      src/Shentun.Peis.Application/PayModes/PayModeAppService.cs
  3. 10
      src/Shentun.Peis.Domain/CardTypes/CardType.cs
  4. 93
      src/Shentun.Peis.Domain/CardTypes/CardTypeManager.cs
  5. 47
      src/Shentun.Peis.Domain/PayModes/PayModeManager.cs

29
src/Shentun.Peis.Application/CardTypes/CardTypeAppService.cs

@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Shentun.Peis.GuideTypes;
using Shentun.Peis.GuidTypes;
using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
@ -13,6 +14,7 @@ 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.CardTypes
{
@ -28,13 +30,15 @@ namespace Shentun.Peis.CardTypes
{
private readonly IRepository<CardType, Guid> _cardTypeRepository;
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly CardTypeManager _manager;
public CardTypeAppService(
IRepository<CardType, Guid> cardTypeRepository,
IRepository<IdentityUser, Guid> userRepository) : base(cardTypeRepository)
IRepository<IdentityUser, Guid> userRepository,
CardTypeManager manager) : base(cardTypeRepository)
{
this._cardTypeRepository = cardTypeRepository;
this._userRepository = userRepository;
_manager = manager;
}
@ -110,9 +114,13 @@ namespace Shentun.Peis.CardTypes
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/cardtype/create")]
public override Task<CardTypeDto> CreateAsync(CreateCardTypeDto input)
public override async Task<CardTypeDto> CreateAsync(CreateCardTypeDto input)
{
return base.CreateAsync(input);
var createEntity = ObjectMapper.Map<CreateCardTypeDto, CardType>(input);
var entity = await _manager.CreateAsync(createEntity);
entity = await Repository.InsertAsync(entity);
var dto = ObjectMapper.Map<CardType, CardTypeDto>(entity);
return dto;
}
/// <summary>
@ -122,9 +130,13 @@ namespace Shentun.Peis.CardTypes
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/cardtype/update")]
public override Task<CardTypeDto> UpdateAsync(Guid id, UpdateCardTypeDto input)
public override async Task<CardTypeDto> UpdateAsync(Guid id, UpdateCardTypeDto input)
{
return base.UpdateAsync(id, input);
var entity = await Repository.GetAsync(id);
var sourceEntity = ObjectMapper.Map<UpdateCardTypeDto, CardType>(input);
await _manager.UpdateAsync(sourceEntity, entity);
entity = await Repository.UpdateAsync(entity);
return ObjectMapper.Map<CardType, CardTypeDto>(entity);
}
/// <summary>
@ -133,9 +145,10 @@ namespace Shentun.Peis.CardTypes
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("api/app/cardtype/delete")]
public override Task DeleteAsync(Guid id)
public override async Task DeleteAsync(Guid id)
{
return base.DeleteAsync(id);
var entity = await Repository.GetAsync(id);
await _manager.CheckAndDeleteAsync(entity);
}
}
}

14
src/Shentun.Peis.Application/PayModes/PayModeAppService.cs

@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Mvc;
using Shentun.Peis.HelperDto;
using Shentun.Peis.Models;
using Shentun.Peis.PayModes;
using Shentun.Peis.PersonnelTypes;
using Shentun.Utilities;
using System;
using System.Collections.Generic;
@ -13,6 +14,7 @@ using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping;
namespace Shentun.Peis.PayModes
{
@ -25,10 +27,11 @@ namespace Shentun.Peis.PayModes
public class PayModeAppService : ApplicationService
{
private readonly IRepository<PayMode> _repository;
public PayModeAppService(IRepository<PayMode> repository)
private readonly PayModeManager _manager;
public PayModeAppService(IRepository<PayMode> repository, PayModeManager manager)
{
this._repository = repository;
_manager = manager;
}
@ -65,6 +68,12 @@ namespace Shentun.Peis.PayModes
/// <returns></returns>
public async Task<PayModeDto> UpdateAsync(string Id, UpdatePayModeDto input)
{
var entity = await _repository.GetAsync(o=>o.Id == Id);
var sourceEntity = ObjectMapper.Map<UpdatePayModeDto, PayMode>(input);
await _manager.UpdateAsync(sourceEntity, entity);
entity = await _repository.UpdateAsync(entity);
return ObjectMapper.Map<PayMode, PayModeDto>(entity);
/* ,_manager处理业务 by zhh 2024-03-13
Check.NotNullOrWhiteSpace(input.DisplayName, nameof(input.DisplayName));
PayMode existEntity = await _repository.FindAsync(o => o.Id != Id && o.DisplayName == input.DisplayName);
@ -88,6 +97,7 @@ namespace Shentun.Peis.PayModes
{
return ObjectMapper.Map<PayMode, PayModeDto>(ent);
}
*/
}

10
src/Shentun.Peis.Domain/CardTypes/CardType.cs

@ -12,15 +12,19 @@ namespace Shentun.Peis.Models
/// 会员卡类别
/// </summary>
[Table("card_type")]
public class CardType : AuditedEntity<Guid>, IHasConcurrencyStamp
public class CardType : AuditedEntity<Guid>, IHasConcurrencyStamp, IDisplayName, IDisplayOrder
{
public CardType()
{
CardRegisters = new HashSet<CardRegister>();
}
internal CardType(Guid id
) : base(id)
{
}
/// <summary>
/// 名称
/// </summary>

93
src/Shentun.Peis.Domain/CardTypes/CardTypeManager.cs

@ -0,0 +1,93 @@
using Shentun.Peis.Models;
using Shentun.Utilities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TencentCloud.Sqlserver.V20180328.Models;
using Volo.Abp;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Domain.Services;
namespace Shentun.Peis.CardTypes
{
public class CardTypeManager : DomainService
{
private readonly IRepository<CardType, Guid> _repository;
private readonly IRepository<CardRegister, Guid> _cardRegisterRepository;
public CardTypeManager(IRepository<CardType, Guid> repository,
IRepository<CardRegister, Guid> cardRegisterRepository)
{
_repository = repository;
_cardRegisterRepository = cardRegisterRepository;
}
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public async Task<CardType> CreateAsync(
CardType entity
)
{
Check.NotNullOrWhiteSpace(entity.DisplayName, nameof(entity.DisplayName));
await EntityHelper.CheckSameName<CardType, Guid>(_repository, entity.DisplayName);
return new CardType(
GuidGenerator.Create()
)
{
DisplayName = entity.DisplayName,
DisplayOrder = await EntityHelper.CreateMaxDisplayOrder<CardType>(_repository),
CardModeId = entity.CardModeId,
Discount = entity.Discount,
ExpiryDay = entity.ExpiryDay,
Remark = entity.Remark
};
}
/// <summary>
/// 更新
/// </summary>
/// <param name="sourceEntity"></param>
/// <param name="targetEntity"></param>
/// <returns></returns>
public async Task UpdateAsync(
CardType sourceEntity,
CardType targetEntity
)
{
Check.NotNullOrWhiteSpace(sourceEntity.DisplayName, nameof(sourceEntity.DisplayName));
if (sourceEntity.DisplayName != targetEntity.DisplayName)
{
await EntityHelper.CheckSameName<CardType, Guid>(_repository, sourceEntity.DisplayName, targetEntity);
targetEntity.DisplayName = sourceEntity.DisplayName;
}
targetEntity.CardModeId = sourceEntity.CardModeId;
targetEntity.Discount = sourceEntity.Discount;
targetEntity.ExpiryDay = sourceEntity.ExpiryDay;
targetEntity.Remark = sourceEntity.Remark;
}
public async Task CheckAndDeleteAsync(CardType entity)
{
var queryable = await _cardRegisterRepository.GetQueryableAsync();
var item = queryable.Where(o => o.CardTypeId.Equals(entity.Id)).FirstOrDefault();
if (item != null)
{
throw new BusinessException("", $"卡类别\"{entity.DisplayName}\"已在卡登记\"{item.CustomerName}\"中使用,不能删除");
}
await _repository.DeleteAsync(entity);
}
}
}

47
src/Shentun.Peis.Domain/PayModes/PayModeManager.cs

@ -0,0 +1,47 @@
using Shentun.Peis.Models;
using Shentun.Utilities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Domain.Services;
namespace Shentun.Peis.PayModes
{
public class PayModeManager : DomainService
{
private readonly IRepository<PayMode> _repository;
public PayModeManager(
IRepository<PayMode> repository
)
{
_repository = repository;
}
public async Task UpdateAsync(
PayMode sourceEntity,
PayMode targetEntity
)
{
Check.NotNullOrWhiteSpace(sourceEntity.DisplayName, nameof(sourceEntity.DisplayName));
if (sourceEntity.DisplayName != targetEntity.DisplayName)
{
PayMode existEntity = await _repository.FindAsync(o => o.Id != targetEntity.Id && o.DisplayName == sourceEntity.DisplayName);
if (existEntity != null)
{
throw new UserFriendlyException($"名称:'{sourceEntity.DisplayName}'已存在");
}
targetEntity.DisplayName = sourceEntity.DisplayName;
targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(targetEntity.DisplayName);
}
targetEntity.IsActive = sourceEntity.IsActive;
}
}
}
Loading…
Cancel
Save