using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NPOI.SS.Formula.PTG;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZhonTai.Admin.Core.Attributes;
using ZhonTai.Admin.Core.Configs;
using ZhonTai.Admin.Core.Consts;
using ZhonTai.Admin.Core.Dto;
using ZhonTai.Admin.Domain.KuaKe;
using ZhonTai.Admin.Domain.Org;
using ZhonTai.Admin.Domain.Platform;
using ZhonTai.Admin.Domain.Tenant;
using ZhonTai.Admin.Repositories.Platform;
using ZhonTai.Admin.Repositories;
using ZhonTai.Admin.Services.Auth.Dto;
using ZhonTai.Admin.Services.DiTuiAPI.Dto;
using ZhonTai.Common.Helpers;
using ZhonTai.DynamicApi;
using ZhonTai.DynamicApi.Attributes;
using ZhonTai.Admin.Domain.Project;
using System.ComponentModel.DataAnnotations;
using ZhonTai.Admin.Services.DiTuiAPI.KuaKe.Dto;
using ZhonTai.Admin.Domain.Banner;
using ZhonTai.Admin.Repositories.Banner;
using ZhonTai.Admin.Services.Banner.Dto;
using ZhonTai.Admin.Core.Auth;
namespace ZhonTai.Admin.Services.DiTuiAPI.KuaKe
{
public interface IKuaKeService
{
}
///
/// 夸克服务
///
[DynamicApi(Area = AdminConsts.DiTuiName)]
public class KuaKeService : BaseService, IKuaKeService, IDynamicApi
{
private readonly AppConfig _appConfig;
private readonly IKuaKeRepository _kuaKeRepository;
private readonly IProjectRepository _projectRepository;
public KuaKeService(IKuaKeRepository kuaKeRepository, IProjectRepository projectRepository, AppConfig appConfig)
{
_kuaKeRepository = kuaKeRepository;
_projectRepository = projectRepository;
_appConfig = appConfig;
}
///
/// 推广详情
///
///
///
///
[HttpGet]
public async Task Detail([Required]long ProjectId)
{
var project = await _projectRepository.Select.DisableGlobalFilter(FilterNames.Tenant).Where(m => m.Id == ProjectId && m.ProjectType == 2).ToOneAsync();
if (!(project?.Id > 0))
{
throw ResultOutput.Exception("项目不存在");
}
KuakeDetailOutput output = new KuakeDetailOutput();
output.SignUrl = _appConfig.KuaKeSet.SignUrl;
output.FirstImg = _appConfig.KuaKeSet.FirstImg;
var list=Newtonsoft.Json.JsonConvert.DeserializeObject>(_appConfig.KuaKeSet.Industry);
output.Indeustry = list;
return output;
}
///
/// 推广申请
///
///
///
///
public async Task AddAsync(KuaKeInput input)
{
var project = await _projectRepository.Select.DisableGlobalFilter(FilterNames.Tenant).Where(m => m.Id == input.ProjectId&&m.ProjectType==2).ToOneAsync();
if (!(project?.Id > 0))
{
throw ResultOutput.Exception("项目不存在");
}
var count=await _kuaKeRepository.Select.Where(m => m.KuaKeID == input.KuaKeID).CountAsync();
if (count > 0) {
throw ResultOutput.Exception("夸克ID已使用");
}
var entity = Mapper.Map(input);
//创建用户
entity.UserId = User.Id;
await _kuaKeRepository.InsertAsync(entity);
return entity.Id;
}
///
/// 推广资料
///
///
///
public async Task GetAsync(long id)
{
var result = await _kuaKeRepository.GetAsync(id);
return result;
}
}
}