GroupOrderPreInfoRepository.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using AutoMapper;
  2. using OASystem.Domain.Entities.Groups;
  3. using OASystem.Domain.ViewModels.Groups;
  4. using Org.BouncyCastle.Utilities;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace OASystem.Infrastructure.Repositories.Groups
  11. {
  12. /// <summary>
  13. /// 团组下单前信息
  14. /// </summary>
  15. public class GroupOrderPreInfoRepository : BaseRepository<Grp_OrderPreInfo, OrderPreInfoView>
  16. {
  17. private readonly IMapper _mapper;
  18. public GroupOrderPreInfoRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
  19. {
  20. _mapper = mapper;
  21. }
  22. /// <summary>
  23. /// 获取模板信息
  24. /// </summary>
  25. /// <param name="tempId"></param>
  26. /// <returns></returns>
  27. public async Task<GrpOrderPreItemView[]> TempInfoById(int tempId = 1404)
  28. {
  29. var tempInfos = await _sqlSugar.Queryable<Sys_FormTemp, Sys_SetData, Sys_SetData>((ft, sd1, sd2) =>
  30. new JoinQueryInfos(
  31. JoinType.Left, ft.FieldNameId == sd1.Id,
  32. JoinType.Left, ft.FieldTypeId == sd2.Id
  33. ))
  34. .Where((ft, sd1, sd2) => ft.IsDel == 0 && ft.TempId == tempId)
  35. .OrderBy((ft, sd1, sd2) => ft.Index)
  36. .Select((ft, sd1, sd2) => new GrpOrderPreItemView()
  37. {
  38. FieldName = sd1.Name,
  39. FieldTypeName = sd2.Name,
  40. IsRequired = ft.IsRequired,
  41. IsRemark = ft.IsRemark,
  42. Index = ft.Index
  43. })
  44. .ToArrayAsync();
  45. return tempInfos;
  46. }
  47. /// <summary>
  48. /// 获取团组下单前信息列表
  49. /// </summary>
  50. /// <param name="id"></param>
  51. /// <returns></returns>
  52. public async Task<JsonView> InfoAsync(int id)
  53. {
  54. var jw = new JsonView() { Code = StatusCodes.Status200OK,Msg = "操作成功!" };
  55. var view = new GrpOrderPreInfoView();
  56. var info = await _sqlSugar.Queryable<Grp_OrderPreInfo>().FirstAsync(x => x.IsDel == 0 && x.Id == id);
  57. if (info == null)
  58. {
  59. view.TempId = 1404;
  60. view.Items = await TempInfoById(view.TempId);
  61. }
  62. jw.Data = view;
  63. return jw;
  64. }
  65. }
  66. }