123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- using Hotline.Application.Snapshot;
- using Hotline.Share.Dtos;
- using Hotline.Share.Dtos.Snapshot;
- using Microsoft.AspNetCore.Mvc;
- using Hotline.Repository.SqlSugar.Extensions;
- using Hotline.Share.Tools;
- using Hotline.Snapshot.Interfaces;
- using Hotline.Caching.Interfaces;
- using XF.Utility.EnumExtensions;
- using Hotline.Share.Enums.Snapshot;
- using Quartz.Impl.Triggers;
- namespace Hotline.Api.Controllers.Snapshot;
- public class RedPackController : BaseController
- {
- private readonly IRedPackApplication _redPackApplication;
- private readonly IIndustryRepository _industryRepository;
- private readonly ISystemDicDataCacheManager _sysDic;
- private readonly ISnapshotSMSTemplateRepository _snapshotSMSTemplateRepository;
- private readonly IOrderSnapshotRepository _orderSnapshotRepository;
- public RedPackController(IRedPackApplication redPackApplication, IIndustryRepository industryRepository, ISystemDicDataCacheManager sysDic, ISnapshotSMSTemplateRepository snapshotSMSTemplateRepository, IOrderSnapshotRepository orderSnapshotRepository)
- {
- _redPackApplication = redPackApplication;
- _industryRepository = industryRepository;
- _sysDic = sysDic;
- _snapshotSMSTemplateRepository = snapshotSMSTemplateRepository;
- _orderSnapshotRepository = orderSnapshotRepository;
- }
- #region 特殊红包
- /// <summary>
- /// 特殊红包审批集合
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpGet("special")]
- public async Task<PagedDto<SnapshotOrderAuditItemsOutDto>> GetRedPackSpecialItems([FromQuery] SnapshotOrderAuditItemsInDto dto)
- => (await _redPackApplication.GetRedPackSpecialAuditItems(dto).ToPagedListAsync(dto)).ToPaged();
- #endregion
- #region 红包审核
- /// <summary>
- /// 获取市民红包审批列表
- /// </summary>
- /// <returns></returns>
- [HttpGet("audit")]
- public async Task<PagedDto<SnapshotOrderAuditItemsOutDto>> GetRedPackAuditItems([FromQuery] SnapshotOrderAuditItemsInDto dto)
- => (await _redPackApplication.GetRedPackAuditItems(dto).ToPagedListAsync(dto)).ToPaged();
- /// <summary>
- /// 获取网格员红包审批集合(政法委或应急管理局:根据账号登录返回数据)
- /// </summary>
- /// <returns></returns>
- [HttpGet("audit/guider")]
- public async Task<PagedDto<SnapshotOrderGuiderAuditItemsOutDto>> GetRedPackGuiderAuditItems([FromQuery] SnapshotOrderGuiderAuditItemsInDto dto)
- => (await _redPackApplication.GetRedPackGuiderAuditItems(dto).ToPagedListAsync(dto)).ToPaged();
- /// <summary>
- /// 获取网格员审核详情
- /// </summary>
- /// <param name="id">工单Id</param>
- /// <returns></returns>
- [HttpGet("audit/guider/{id}")]
- public async Task<SnapshotOrderAuditDetailOutDto> GetRedPackGuiderAuditDetailAsync(string id)
- => await _redPackApplication.GetRedPackGuiderAuditDetailAsync(id);
- /// <summary>
- /// 网格员红包审核通过或拒绝
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpPut("audit/guider")]
- public async Task UpdateRedPackGuiderAuditAsync([FromBody] UpdateRedPackGuiderAuditInDto dto)
- => await _redPackApplication.AuditRedPackGuiderAuditAsync(dto);
- /// <summary>
- /// 获取审核市民详情
- /// </summary>
- /// <param name="id">工单Id</param>
- /// <returns></returns>
- [HttpGet("audit/{id}")]
- public async Task<SnapshotOrderAuditDetailOutDto> GetRedPackAuditDetailAsync(string id)
- => await _redPackApplication.GetRedPackAuditDetailAsync(id);
- /// <summary>
- /// 获取特提(退回)参数
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- [HttpGet("audit/back/{id}")]
- public async Task<GetAuditBackBaseDataOutDto> GetAuditBackBaseDataAsync(string id)
- => await _redPackApplication.GetAuditBackBaseDataAsync(id);
- /// <summary>
- /// 添加备注
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpPut("audit/remark")]
- public async Task UpdateRedPackAuditRemarkAsync([FromBody] UpdateRedPackAuditRemarkInDto dto)
- => await _redPackApplication.UpdateRedPackAuditRemarkAsync(dto);
- /// <summary>
- /// 添加备注页面基础信息
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpGet("audit/remark/basedata")]
- public async Task<Dictionary<string, object>> UpdateRedPackAuditRemarkBaseDataAsync()
- {
- return new Dictionary<string, object>()
- {
- { "failCase", EnumExts.GetDescriptions<ERedPackPickupFailCase>() }
- };
- }
- /// <summary>
- /// 添加补充发放信息页面基础信息
- /// </summary>
- /// <returns></returns>
- [HttpGet("record/basedata/{id}")]
- public async Task<Dictionary<string, object>> UpdateRedPackRecordBaseDataAsync(string id)
- {
- var snapshot = await _orderSnapshotRepository.Queryable()
- .Where(m => m.Id == id)
- .Select(m => new
- {
- m.Id,
- m.AwardBankCardNo,
- m.AwardOpenBank,
- m.AwardName,
- m.AwardAmount
- })
- .FirstAsync();
- var dic = new Dictionary<string, object>()
- {
- { "replenishType", _sysDic.SnapshotReplenishType }
- };
- if (snapshot != null)
- {
- dic.Add("bankCardNo", snapshot.AwardBankCardNo);
- dic.Add("openBank", snapshot.AwardOpenBank);
- dic.Add("name", snapshot.AwardName);
- dic.Add("amount", snapshot.AwardAmount);
- }
- return dic;
- }
- /// <summary>
- /// 添加补充发放信息
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpPut("record")]
- public async Task UpdateRedPackRecordAsync([FromBody] UpdateRedPackRecordInDto dto)
- => await _redPackApplication.UpdateRedPackRecordAsync(dto);
- /// <summary>
- /// 补充发放集合基础信息
- /// </summary>
- [HttpGet("record/supplement/basedata")]
- public async Task<Dictionary<string, object>> GetRedPackRecordSupplementBaseDataAsync()
- {
- return new Dictionary<string, object>()
- {
- { "industry", await _industryRepository.GetDataBaseAsync() }
- };
- }
- /// <summary>
- /// 补充发放集合
- /// </summary>
- [HttpGet("record/supplement")]
- public async Task<PagedDto<SnapshotRedPackRecordSupplementItemsOutDto>> GetRedPackRecordSupplementItems([FromQuery] SnapshotRedPackRecordSupplementItemsInDto dto)
- => (await _redPackApplication.GetRedPackRecordSupplementItems(dto).ToPagedListAsync(dto)).ToPaged();
- /// <summary>
- /// 红包审核通过或拒绝
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpPut("audit")]
- public async Task UpdateRedPackAuditAsync([FromBody] UpdateRedPackAuditInDto dto)
- => await _redPackApplication.AuditRedPackAuditAsync(dto);
- /// <summary>
- /// 获取审核短信模板
- /// </summary>
- /// <returns></returns>
- [HttpGet("audit/sms_template")]
- public async Task<IList<GetRedPackAuditSMSTemplateOutDto>> GetRedPackAuditSMSTemplateAsync([FromQuery] GetRedPackAuditSMSTemplateInDto dto)
- => await _redPackApplication.GetRedPackAuditSMSTemplateAsync(dto);
- /// <summary>
- /// 红包审批页面基础数据
- /// </summary>
- /// <returns></returns>
- [HttpGet("audit/basedata")]
- public async Task<Dictionary<string, object>> GetAuditBaseDataAsync()
- {
- var industry = await _industryRepository.GetDataBaseAsync();
- var configAmount = await _industryRepository.Queryable()
- .Select(m => m.CitizenReadPackAmount)
- .Distinct()
- .ToListAsync();
- var sms = await _snapshotSMSTemplateRepository.Queryable()
- .ToListAsync();
- return new Dictionary<string, object>
- {
- { "industry", industry },
- { "configAmount", configAmount },
- { "status", EnumExts.GetDescriptions<ERedPackAuditStatus>() }
- };
- }
- #endregion
- #region 红包发放记录
- /// <summary>
- /// 市民红包发放记录
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpGet("record")]
- public async Task<PagedDto<SnapshotRedPackRecordItemsOutDto>> GetRedPackRecordItems([FromQuery] SnapshotRedPackRecordItemsInDto dto)
- => (await _redPackApplication.GetRedPackRecordItems(dto).ToPagedListAsync(dto)).ToPaged();
- /// <summary>
- /// 网格员红包发放记录
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpGet("record/guider")]
- public async Task<PagedDto<SnapshotRedPackRecordItemsGuiderOutDto>> GetRedPackRecordGuiderItems([FromQuery] SnapshotRedPackRecordItemsGuiderInDto dto)
- => (await _redPackApplication.GetRedPackRecordGuiderItems(dto).ToPagedListAsync(dto)).ToPaged();
- /// <summary>
- /// 红包发放明细基础数据
- /// </summary>
- /// <returns></returns>
- [HttpGet("record/send/database")]
- public async Task<Dictionary<string, object>> GetRedPackRecordSendBaseDataAsync()
- {
- return new Dictionary<string, object>()
- {
- { "industry", await _industryRepository.Queryable()
- .Select(m => new { m.Id, m.Name })
- .ToListAsync()},
- { "sendStatus", EnumExts.GetDescriptions<EReadPackSendStatus>().Where(m => m.Key != 2).ToList() },
- { "userType", EnumExts.GetDescriptions<EReadPackUserType>() }
- };
- }
- /// <summary>
- /// 红包发放明细
- /// </summary>
- /// <returns></returns>
- [HttpGet("record/send")]
- public async Task<PagedDto<SnapshotRedPackRecordSendOutDto>> GetRedPackRecordDetail([FromQuery] SnapshotRedPackRecordSendInDto dto)
- => (await _redPackApplication.GetRedPackRecordDetail(dto).ToPagedListAsync(dto)).ToPaged();
- /// <summary>
- /// 批量发送红包
- /// </summary>
- /// <param name="ids"></param>
- /// <returns></returns>
- [HttpPut("record/send_bath")]
- public async Task<string> BathSendRedPackAsync([FromBody] List<string> ids)
- {
- return "ok";
- }
- #endregion
- }
|