KuaKeService.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. using Microsoft.AspNetCore.Authorization;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.AspNetCore.Mvc;
  4. using NPOI.SS.Formula.PTG;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Diagnostics;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using ZhonTai.Admin.Core.Attributes;
  12. using ZhonTai.Admin.Core.Configs;
  13. using ZhonTai.Admin.Core.Consts;
  14. using ZhonTai.Admin.Core.Dto;
  15. using ZhonTai.Admin.Domain.KuaKe;
  16. using ZhonTai.Admin.Domain.Org;
  17. using ZhonTai.Admin.Domain.Platform;
  18. using ZhonTai.Admin.Domain.Tenant;
  19. using ZhonTai.Admin.Repositories.Platform;
  20. using ZhonTai.Admin.Repositories;
  21. using ZhonTai.Admin.Services.Auth.Dto;
  22. using ZhonTai.Admin.Services.DiTuiAPI.Dto;
  23. using ZhonTai.Common.Helpers;
  24. using ZhonTai.DynamicApi;
  25. using ZhonTai.DynamicApi.Attributes;
  26. using ZhonTai.Admin.Domain.Project;
  27. using System.ComponentModel.DataAnnotations;
  28. using ZhonTai.Admin.Services.DiTuiAPI.KuaKe.Dto;
  29. using ZhonTai.Admin.Domain.Banner;
  30. using ZhonTai.Admin.Repositories.Banner;
  31. using ZhonTai.Admin.Services.Banner.Dto;
  32. using ZhonTai.Admin.Core.Auth;
  33. namespace ZhonTai.Admin.Services.DiTuiAPI.KuaKe
  34. {
  35. public interface IKuaKeService
  36. {
  37. }
  38. /// <summary>
  39. /// 夸克服务
  40. /// </summary>
  41. [DynamicApi(Area = AdminConsts.DiTuiName)]
  42. public class KuaKeService : BaseService, IKuaKeService, IDynamicApi
  43. {
  44. private readonly AppConfig _appConfig;
  45. private readonly IKuaKeRepository _kuaKeRepository;
  46. private readonly IProjectRepository _projectRepository;
  47. public KuaKeService(IKuaKeRepository kuaKeRepository, IProjectRepository projectRepository, AppConfig appConfig)
  48. {
  49. _kuaKeRepository = kuaKeRepository;
  50. _projectRepository = projectRepository;
  51. _appConfig = appConfig;
  52. }
  53. /// <summary>
  54. /// 推广详情
  55. /// </summary>
  56. /// <param name="ProjectId"></param>
  57. /// <returns></returns>
  58. /// <exception cref="NotImplementedException"></exception>
  59. [HttpGet]
  60. public async Task<KuakeDetailOutput> Detail([Required]long ProjectId)
  61. {
  62. var project = await _projectRepository.Select.DisableGlobalFilter(FilterNames.Tenant).Where(m => m.Id == ProjectId && m.ProjectType == 2).ToOneAsync();
  63. if (!(project?.Id > 0))
  64. {
  65. throw ResultOutput.Exception("项目不存在");
  66. }
  67. KuakeDetailOutput output = new KuakeDetailOutput();
  68. output.SignUrl = _appConfig.KuaKeSet.SignUrl;
  69. output.FirstImg = _appConfig.KuaKeSet.FirstImg;
  70. var list=Newtonsoft.Json.JsonConvert.DeserializeObject<List<KuakeDetailOutput_Indeustry>>(_appConfig.KuaKeSet.Industry);
  71. output.Indeustry = list;
  72. return output;
  73. }
  74. /// <summary>
  75. /// 推广申请
  76. /// </summary>
  77. /// <param name="input"></param>
  78. /// <returns></returns>
  79. /// <exception cref="NotImplementedException"></exception>
  80. public async Task<long> AddAsync(KuaKeInput input)
  81. {
  82. var project = await _projectRepository.Select.DisableGlobalFilter(FilterNames.Tenant).Where(m => m.Id == input.ProjectId&&m.ProjectType==2).ToOneAsync();
  83. if (!(project?.Id > 0))
  84. {
  85. throw ResultOutput.Exception("项目不存在");
  86. }
  87. var count=await _kuaKeRepository.Select.Where(m => m.KuaKeID == input.KuaKeID).CountAsync();
  88. if (count > 0) {
  89. throw ResultOutput.Exception("夸克ID已使用");
  90. }
  91. var entity = Mapper.Map<KuaKeEntity>(input);
  92. //创建用户
  93. entity.UserId = User.Id;
  94. await _kuaKeRepository.InsertAsync(entity);
  95. return entity.Id;
  96. }
  97. /// <summary>
  98. /// 推广资料
  99. /// </summary>
  100. /// <param name="id"></param>
  101. /// <returns></returns>
  102. public async Task<KuaKeGetOutput> GetAsync(long id)
  103. {
  104. var result = await _kuaKeRepository.GetAsync<KuaKeGetOutput>(id);
  105. return result;
  106. }
  107. }
  108. }