using Vo;
using Microsoft.AspNetCore.Mvc;
using Model;
using Services;
using Model.Base;
using Vo.Admin;
using Mapster;
using Infrastructure;
using Dto.Admin;
using Common;
namespace Controllers.Admin
{
///
/// AppProject)Controller
///
// [Route("${Router}$")]
// [ApiExplorerSettings(GroupName = "AppProject")]
public class AppProjectController : BaseController
{
private readonly IAppProjectService _AppProjectService;
private readonly IAppProjectModuleService _AppProjectModuleService;
private readonly IAppProjectParamService _AppProjectParamService;
private readonly IAppModuleAndroidCodeService _AppModuleAndroidCodeService;
private readonly IAppModuleIosCodeService _AppModuleIosCodeService;
public AppProjectController(IAppProjectService AppProjectService, IAppProjectModuleService appProjectModuleService, IAppProjectParamService appProjectParamService, IAppModuleAndroidCodeService appModuleAndroidCodeService, IAppModuleIosCodeService appModuleIosCodeService)
{
_AppProjectService = AppProjectService;
_AppProjectModuleService = appProjectModuleService;
_AppProjectParamService = appProjectParamService;
_AppModuleAndroidCodeService = appModuleAndroidCodeService;
_AppModuleIosCodeService = appModuleIosCodeService;
}
///
/// 列表
///
/// 分页对象
/// 参数请求体
/// 列表
[HttpGet]
[Route("/v1/omega_source/AppProject/getAppProjectList")]
public IActionResult getAppProjectList([FromQuery] PagerInfo page, [FromQuery] AppProject param)
{
var response = _AppProjectService.getAppProjectList(page, param);
return SUCCESS(response);
}
///
/// 详情
///
/// 参数请求体
/// 详情
[HttpGet]
[Route("/v1/omega_source/AppProject/getAppProjectQuery")]
public IActionResult getAppProjectQuery([FromQuery] AppProject param)
{
var response = _AppProjectService.GetFirst(m => m.id == param.id).Adapt();
response.appIcon = App.OptionsSetting.OssConfigs.Host + response.appIcon;
response.appStartBg = App.OptionsSetting.OssConfigs.Host + response.appStartBg;
if (!string.IsNullOrEmpty(response.appStartListPhoto))
{
response.appStartListPhoto = App.OptionsSetting.OssConfigs.Host + response.appStartListPhoto;
}
response.moduleList = string.Join(",", _AppProjectModuleService.GetList(m => m.appId == param.id).Select(m => m.moduleId).ToList());
return SUCCESS(response);
}
///
/// 添加
///
/// 参数请求体
/// 添加
[HttpPost]
[Route("/v1/omega_source/AppProject/addAppProject")]
public IActionResult addAppProject([FromBody] AddAppProjectDto param)
{
var response = _AppProjectService.AddAppProjectWithModule(param, HttpContext);
if (!string.IsNullOrEmpty(param.moduleList))
{
var moduleIds = Tools.SpitIntArrary(param.moduleList).ToList();
var androidCode = _AppModuleAndroidCodeService.GetList(m => moduleIds.Contains(m.moduleId));
var iosCode = _AppModuleIosCodeService.GetList(m => moduleIds.Contains(m.moduleId));
_AppProjectParamService.initAppProjectParam(response, param.moduleList, androidCode, iosCode);
}
return SUCCESS(response);
}
///
/// 修改
///
/// 参数请求体
/// 修改
[HttpPut]
[Route("/v1/omega_source/AppProject/updateAppProject")]
public IActionResult updateAppProject([FromBody] AddAppProjectDto param)
{
param.appIcon = param.appIcon?.Replace(App.OptionsSetting.OssConfigs.Host, "");
param.appStartBg = param.appStartBg?.Replace(App.OptionsSetting.OssConfigs.Host, "");
param.appStartListPhoto = param.appStartListPhoto?.Replace(App.OptionsSetting.OssConfigs.Host, "");
var response = _AppProjectService.UpdateAppProjectWithModule(param, HttpContext);
if (!string.IsNullOrEmpty(param.moduleList))
{
var moduleIds = Tools.SpitIntArrary(param.moduleList).ToList();
var androidCode = _AppModuleAndroidCodeService.GetList(m => moduleIds.Contains(m.moduleId));
var iosCode = _AppModuleIosCodeService.GetList(m => moduleIds.Contains(m.moduleId));
_AppProjectParamService.initAppProjectParam(response, param.moduleList, androidCode, iosCode);
}
return SUCCESS(response);
}
///
/// 删除
///
/// ID
/// 删除
[HttpDelete]
[Route("/v1/omega_source/AppProject/deleteAppProject/{id}")]
public IActionResult deleteAppProject(int id)
{
var response = _AppProjectService.Delete(id);
return SUCCESS(response);
}
}
}