using Vo;
using Microsoft.AspNetCore.Mvc;
using Model;
using Services;
using Model.Base;
using Vo.Admin;
using Mapster;
using Infrastructure;
using Dto.Client;
using Custom;
using Feign;
using Common;
using Util;
namespace Controllers.Client
{
public class MakeCodeController : BaseController
{
private readonly IDatabaseInfoService _DatabaseInfoService;
private readonly IDatabaseTableService _DatabaseTableService;
private readonly IApiGroupService _ApiGroupService;
private readonly IApiInfoService _ApiInfoService;
public MakeCodeController(IDatabaseInfoService DatabaseInfoService, IDatabaseTableService DatabaseTableService, IApiGroupService ApiGroupService, IApiInfoService ApiInfoService)
{
_DatabaseInfoService = DatabaseInfoService;
_DatabaseTableService = DatabaseTableService;
_ApiGroupService = ApiGroupService;
_ApiInfoService = ApiInfoService;
}
///
/// 生成代码
///
/// 参数
/// 生成代码
[HttpPost]
[Route("/v1/omega_source/MakeCode/getMakeCodeList")]
public IActionResult getMakeCodeList([FromBody] MakeCodeDto param)
{
try
{
TokenModel loginUser = JwtUtil.GetLoginUser(HttpContext);
Function.WriteLog(loginUser.username, "测试生成代码");
Function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(param), "测试生成代码");
ProjectService baseInfo = IProject.getProjectService(param.serviceId);
Function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(baseInfo), "测试生成代码");
List databaseIds = baseInfo.databaseList.ToList();
Function.WriteLog("databaseIds:" + databaseIds.Count.ToString(), "测试生成代码");
foreach(var databaseId in databaseIds)
{
var tables = _DatabaseTableService.GetList(a => a.databaseId == databaseId);
Function.WriteLog("tables:" + tables.Count.ToString(), "测试生成代码");
foreach(var table in tables)
{
_DatabaseTableService.makeJavaModel(baseInfo, table, loginUser);
_DatabaseTableService.makeJavaService(baseInfo, table, loginUser);
_DatabaseTableService.makeJavaServiceImpl(baseInfo, table, loginUser);
_DatabaseTableService.makeJavaMapper(baseInfo, table, loginUser);
_DatabaseTableService.makeJavaMapperXml(baseInfo, table, loginUser);
}
}
var apiGroups = _ApiGroupService.GetList(a => a.serviceId == param.serviceId);
Function.WriteLog("apiGroups:" + apiGroups.Count.ToString(), "测试生成代码");
foreach(var apiGroup in apiGroups)
{
var apiInfos = _ApiInfoService.GetList(a => a.groupId == apiGroup.id);
Function.WriteLog("apiInfos:" + apiInfos.Count.ToString(), "测试生成代码");
foreach(var apiInfo in apiInfos)
{
_DatabaseTableService.makeJavaDto(baseInfo, apiInfo, loginUser);
_DatabaseTableService.makeJavaVo(baseInfo, apiInfo, loginUser);
}
_DatabaseTableService.makeJavaController(baseInfo, apiGroup, loginUser);
}
Function.WriteLog("end\n\n\n", "测试生成代码");
}
catch(Exception ex)
{
Function.WriteLog(ex.ToString(), "测试生成代码异常");
}
return SUCCESS("ok");
}
}
}