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.
117 lines
5.3 KiB
117 lines
5.3 KiB
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Shentun.Peis.Enums;
|
|
using Shentun.Peis.Models;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Transactions;
|
|
using Volo.Abp.Application.Services;
|
|
using Volo.Abp.Domain.Repositories;
|
|
using Volo.Abp.Identity;
|
|
|
|
namespace Shentun.Peis.ChargeAsbitems
|
|
{
|
|
/// <summary>
|
|
/// 收费项目
|
|
/// </summary>
|
|
[ApiExplorerSettings(GroupName = "Work")]
|
|
[Authorize]
|
|
public class ChargeAsbitemAppService : ApplicationService
|
|
{
|
|
private readonly IRepository<ChargeAsbitem, Guid> _chargeAsbitemRepository;
|
|
private readonly IRepository<IdentityUser, Guid> _userRepository;
|
|
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerAsbitemRepository;
|
|
private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository;
|
|
|
|
public ChargeAsbitemAppService(
|
|
IRepository<ChargeAsbitem, Guid> chargeAsbitemRepository,
|
|
IRepository<IdentityUser, Guid> userRepository,
|
|
IRepository<RegisterCheckAsbitem, Guid> registerAsbitemRepository,
|
|
IRepository<RegisterCheck, Guid> registerCheckRepository
|
|
)
|
|
{
|
|
this._chargeAsbitemRepository = chargeAsbitemRepository;
|
|
this._userRepository = userRepository;
|
|
this._registerAsbitemRepository = registerAsbitemRepository;
|
|
this._registerCheckRepository = registerCheckRepository;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取收费项目 跟据收费主表ID
|
|
/// </summary>
|
|
/// <param name="ChargeId"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("api/app/chargeasbitem/getchargeasbiteminchargeid")]
|
|
public async Task<List<ChargeAsbitemDto>> GetChargeAsbitemInChargeIdAsync(Guid ChargeId)
|
|
{
|
|
var chargeAsbitemList = (await _chargeAsbitemRepository.GetDbSetAsync())
|
|
.Include(x => x.Asbitem)
|
|
.Where(m => m.ChargeId == ChargeId);
|
|
|
|
var userQueryable = await _userRepository.GetQueryableAsync();
|
|
var registerAsbitemQueryable = await _registerAsbitemRepository.GetQueryableAsync();
|
|
var registerCheckQueryable = await _registerCheckRepository.GetQueryableAsync();
|
|
|
|
DateTime? dtnull = null;
|
|
char? charnull = null;
|
|
|
|
var entlist = from a in chargeAsbitemList
|
|
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 registerAsbitemQueryable on a.RegisterAsbitemId equals d.Id into dd
|
|
from ad in dd.DefaultIfEmpty()
|
|
join f in userQueryable on ad.CreatorId equals f.Id into ff
|
|
from af in ff.DefaultIfEmpty()
|
|
join e in registerCheckQueryable on ad.RegisterCheckId equals e.Id into ee
|
|
from ae in ee.DefaultIfEmpty()
|
|
select new
|
|
{
|
|
a,
|
|
CreatorName = ab.Surname,
|
|
LastModifierName = ac.Surname,
|
|
AsbitemPrice = ad != null ? ad.StandardPrice : 0,
|
|
RegisterAsbitemChargePrice = ad != null ? ad.ChargePrice : 0,
|
|
RegisterAsbitemCreationTime = ad != null ? ad.CreationTime : dtnull,
|
|
RegisterAsbitemCreatorName = af != null ? af.Surname : "",
|
|
RegisterAsbitemPayTypeFlag = ad != null ? ad.PayTypeFlag : PayTypeFlag.PersonPay,
|
|
RegisterCheckCompleteFlag = ae != null ? ae.CompleteFlag : charnull,
|
|
};
|
|
|
|
var ss = entlist.ToQueryString();
|
|
var entlistdto = entlist.Select(s => new ChargeAsbitemDto
|
|
{
|
|
Amount = s.a.Amount,
|
|
ChargePrice = s.a.ChargePrice,
|
|
ChargeId = s.a.ChargeId,
|
|
AsbitemId = s.a.AsbitemId,
|
|
AsbitemName = s.a.Asbitem.DisplayName,
|
|
AsbitemPrice = s.AsbitemPrice,
|
|
CreationTime = s.a.CreationTime,
|
|
CreatorId = s.a.CreatorId,
|
|
CreatorName = s.CreatorName,
|
|
Id = s.a.Id,
|
|
LastModificationTime = s.a.LastModificationTime,
|
|
LastModifierId = s.a.LastModifierId,
|
|
LastModifierName = s.LastModifierName,
|
|
RegisterAsbitemId = s.a.RegisterAsbitemId,
|
|
RegisterAsbitemChargePrice = s.RegisterAsbitemChargePrice,
|
|
RegisterAsbitemCreationTime =DataHelper.ConversionDateToString( s.RegisterAsbitemCreationTime),
|
|
RegisterAsbitemCreatorName = s.RegisterAsbitemCreatorName,
|
|
RegisterAsbitemPayTypeFlag = s.RegisterAsbitemPayTypeFlag,
|
|
RegisterCheckCompleteFlag = s.RegisterCheckCompleteFlag != null ? s.RegisterCheckCompleteFlag.Value : null
|
|
|
|
}).ToList();
|
|
|
|
return entlistdto;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|