using Learun.Application.AppMagager;
using Learun.Application.Base.CodeGeneratorModule;
using Learun.Application.Base.SystemModule;
using Learun.Application.BaseModule.CodeGeneratorModule;
using Learun.Util;
using System.Collections.Generic;
using System.Configuration;
using System.Web.Mvc;
namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
{
///
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
/// Copyright (c) 2013-2018 上海力软信息技术有限公司
/// 创建人:力软-框架开发组
/// 日 期:2017.03.09
/// 描 述:PC端代码生成器
///
public class TemplatePCController : MvcControllerBase
{
private CodeGenerator codeGenerator = new CodeGenerator();
private CodeGeneratorApp codeGeneratorApp = new CodeGeneratorApp();
private CodeGeneratorWx codeGeneratorWx = new CodeGeneratorWx();
private ModuleIBLL moduleIBLL = new ModuleBLL();
private DatabaseTableIBLL databaseTableIBLL = new DatabaseTableBLL();
private FunctionIBLL functionIBLL = new FunctionBLL();
#region 视图功能
///
/// 管理页面
///
///
[HttpGet]
public ActionResult Index()
{
return View();
}
///
/// 自定义开发模板
///
///
[HttpGet]
public ActionResult CustmerCodeIndex()
{
ViewBag.rootDirectory = GetRootDirectory();
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString();
return View();
}
///
/// 添加扩展按钮
///
///
[HttpGet]
public ActionResult AddBtnForm()
{
return View();
}
///
/// 快速开发模板
///
///
[HttpGet]
public ActionResult FastCodeIndex()
{
ViewBag.rootDirectory = GetRootDirectory();
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString();
return View();
}
///
/// 快速生成类
///
///
[HttpGet]
public ActionResult EntityCodeIndex()
{
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.rootDirectory = GetRootDirectory();
return View();
}
///
/// 流程系统表单开发模板
///
///
[HttpGet]
public ActionResult WorkflowCodeIndex()
{
ViewBag.rootDirectory = GetRootDirectory();
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString();
return View();
}
///
/// 编辑列表开发模板
///
///
[HttpGet]
public ActionResult GridEditCodeIndex()
{
ViewBag.rootDirectory = GetRootDirectory();
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString();
return View();
}
///
/// 报表开发模板
///
///
[HttpGet]
public ActionResult ReportCodeIndex()
{
ViewBag.rootDirectory = GetRootDirectory();
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString();
return View();
}
///
/// 移动端开发模板
///
///
[HttpGet]
public ActionResult AppCustmerCodeIndex()
{
ViewBag.rootDirectory = GetRootDirectory();
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString();
ViewBag.apiDirectory = ConfigurationManager.AppSettings["ApiDirectory"].ToString();
ViewBag.appDirectory = ConfigurationManager.AppSettings["AppDirectory"].ToString();
return View();
}
///
/// 小程序开发模板
///
///
[HttpGet]
public ActionResult WxCustmerCodeIndex()
{
ViewBag.rootDirectory = GetRootDirectory();
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString();
ViewBag.apiDirectory = ConfigurationManager.AppSettings["ApiDirectory"].ToString();
ViewBag.appDirectory = ConfigurationManager.AppSettings["WxDirectory"].ToString();
return View();
}
#endregion
#region 自定义开发模板
///
/// 自定义开发模板代码生成
///
/// 数据库连接ID
/// 数据表
/// 表单数据
/// 查询数据
/// 列表数据
/// 基础信息
///
[HttpPost]
[AjaxOnly]
public ActionResult LookCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo)
{
// 数据实体化
List dbTableObj = dbTable.ToObject>();
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
// 实体类 映射类
string entityCode = "";
string mapCode = "";
string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
entityCode += codeGenerator.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
// 映射类
mapCode += codeGenerator.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
}
// 服务类
string serviceCode = codeGenerator.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj);
// 业务类
string bllCode = codeGenerator.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 业务接口类
string ibllCode = codeGenerator.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 控制器类
string controllerCode = codeGenerator.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 页面类
string indexCode = codeGenerator.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
// 页面js类
string indexJsCode = codeGenerator.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
// 表单类
string formCode = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap);
// 表单js类
string formJsCode = codeGenerator.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
var jsonData = new
{
entityCode = entityCode,
mapCode = mapCode,
serviceCode = serviceCode,
bllCode = bllCode,
ibllCode = ibllCode,
controllerCode = controllerCode,
indexCode = indexCode,
indexJsCode = indexJsCode,
formCode = formCode,
formJsCode = formJsCode
};
return Success(jsonData);
}
///
/// 自定义开发模板代码生成(创建)
///
/// 数据库连接ID
/// 数据表
/// 表单数据
/// 查询数据
/// 列表数据
/// 基础信息
/// 系统功能配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult CreateCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson)
{
// 数据
List dbTableObj = dbTable.ToObject>();
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
var moduleEntity = moduleEntityJson.ToObject();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";
// 按钮
List moduleButtonList = new List();
foreach (var btn in colDataObj.btns)
{
switch (btn)
{
case "add":
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_EnCode = "lr_add";
addButtonEntity.F_FullName = "新增";
moduleButtonList.Add(addButtonEntity);
break;
case "edit":
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_EnCode = "lr_edit";
editButtonEntity.F_FullName = "编辑";
moduleButtonList.Add(editButtonEntity);
break;
case "delete":
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity();
deleteButtonEntity.Create();
deleteButtonEntity.F_EnCode = "lr_delete";
deleteButtonEntity.F_FullName = "删除";
moduleButtonList.Add(deleteButtonEntity);
break;
case "print":
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);
break;
}
}
foreach (var btn in colDataObj.btnexs)
{
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = btn.id;
printButtonEntity.F_FullName = btn.name;
moduleButtonList.Add(printButtonEntity);
}
// 列表
List moduleColumnList = new List();
foreach (var col in colDataObj.fields)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
moduleColumnEntity.F_FullName = col.fieldName;
moduleColumnEntity.F_ParentId = "0";
moduleColumnList.Add(moduleColumnEntity);
}
// 表单字段
List moduleFormEntitys = new List();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
ModuleFormEntity moduleFormEntity = new ModuleFormEntity();
moduleFormEntity.Create();
moduleFormEntity.F_EnCode = compont.field;
moduleFormEntity.F_FullName = compont.title;
moduleFormEntitys.Add(moduleFormEntity);
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb
}
// 实体类 映射类
string codeContent = "";
string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
codeContent = codeGenerator.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
codeGenerator.CreateEntityCodeFile(baseInfoObj, tableOne.name, codeContent);
// 映射类
codeContent = codeGenerator.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
codeGenerator.CreateMapCodeFile(baseInfoObj, tableOne.name, codeContent);
}
// 服务类
codeContent = codeGenerator.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGenerator.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent);
// 业务接口类
codeContent = codeGenerator.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent);
// 控制器类
codeContent = codeGenerator.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent);
// 页面类
codeContent = codeGenerator.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGenerator.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
// 表单类
codeContent = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap);
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent);
// 表单js类
codeContent = codeGenerator.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent);
return Success("创建成功");
}
#endregion
#region 快速开发模板
///
/// 快速开发代码查看
///
/// 配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult LookFastCode(CodeBaseConfigModel codeBaseConfigModel)
{
string entityCode = "";
string mapCode = "";
codeBaseConfigModel.backProject = ConfigurationManager.AppSettings["BackProject"].ToString();
// 实体类
entityCode += codeGenerator.EntityCreate(codeBaseConfigModel, codeBaseConfigModel.tableName);
// 映射类
mapCode += codeGenerator.MappingCreate(codeBaseConfigModel, codeBaseConfigModel.tableName);
// 服务类
string serviceCode = codeGenerator.ServiceCreate(codeBaseConfigModel);
// 业务类
string bllCode = codeGenerator.BllCreate(codeBaseConfigModel);
// 业务接口类
string ibllCode = codeGenerator.IBllCreate(codeBaseConfigModel);
// 控制器类
string controllerCode = codeGenerator.ControllerCreate(codeBaseConfigModel);
// 页面类
string indexCode = codeGenerator.IndexCreate(codeBaseConfigModel);
// 页面js类
string indexJsCode = codeGenerator.IndexJSCreate(codeBaseConfigModel);
// 表单类
string formCode = codeGenerator.FormCreate(codeBaseConfigModel);
// 表单js类
string formJsCode = codeGenerator.FormJsCreate(codeBaseConfigModel);
var jsonData = new
{
entityCode = entityCode,
mapCode = mapCode,
serviceCode = serviceCode,
bllCode = bllCode,
ibllCode = ibllCode,
controllerCode = controllerCode,
indexCode = indexCode,
indexJsCode = indexJsCode,
formCode = formCode,
formJsCode = formJsCode
};
return Success(jsonData);
}
///
/// 快速开发代码创建
///
/// 配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult CreateFastCode(CodeBaseConfigModel codeBaseConfigModel)
{
string codeContent = "";
codeBaseConfigModel.backProject = ConfigurationManager.AppSettings["BackProject"].ToString();
// 实体类
codeContent = codeGenerator.EntityCreate(codeBaseConfigModel, codeBaseConfigModel.tableName);
codeGenerator.CreateEntityCodeFile(codeBaseConfigModel, codeBaseConfigModel.tableName, codeContent);
// 映射类
codeContent = codeGenerator.MappingCreate(codeBaseConfigModel, codeBaseConfigModel.tableName);
codeGenerator.CreateMapCodeFile(codeBaseConfigModel, codeBaseConfigModel.tableName, codeContent);
// 服务类
codeContent = codeGenerator.ServiceCreate(codeBaseConfigModel);
codeGenerator.CreateSerivceCodeFile(codeBaseConfigModel, codeContent);
// 业务接口类
codeContent = codeGenerator.IBllCreate(codeBaseConfigModel);
codeGenerator.CreateIBLLCodeFile(codeBaseConfigModel, codeContent);
// 业务类
codeContent = codeGenerator.BllCreate(codeBaseConfigModel);
codeGenerator.CreateBLLCodeFile(codeBaseConfigModel, codeContent);
// 控制器类
codeContent = codeGenerator.ControllerCreate(codeBaseConfigModel);
codeGenerator.CreateControllerCodeFile(codeBaseConfigModel, codeContent);
// 页面类
codeContent = codeGenerator.IndexCreate(codeBaseConfigModel);
codeGenerator.CreateIndexCodeFile(codeBaseConfigModel, codeContent);
// 页面js类
codeContent = codeGenerator.IndexJSCreate(codeBaseConfigModel);
codeGenerator.CreateIndexJSCodeFile(codeBaseConfigModel, codeContent);
// 表单类
codeContent = codeGenerator.FormCreate(codeBaseConfigModel);
codeGenerator.CreateFormCodeFile(codeBaseConfigModel, codeContent);
// 表单js类
codeContent = codeGenerator.FormJsCreate(codeBaseConfigModel);
codeGenerator.CreateFormJSCodeFile(codeBaseConfigModel, codeContent);
var moduleEntity = codeBaseConfigModel.moduleEntityJson.ToObject();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + codeBaseConfigModel.area + "/" + codeBaseConfigModel.name + "/Index";
List moduleButtonList = new List();
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_ActionAddress = "/" + codeBaseConfigModel.area + "/" + codeBaseConfigModel.name + "/Form";
addButtonEntity.F_EnCode = "lr_add";
addButtonEntity.F_FullName = "新增";
moduleButtonList.Add(addButtonEntity);
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_ActionAddress = "/" + codeBaseConfigModel.area + "/" + codeBaseConfigModel.name + "/Form";
editButtonEntity.F_EnCode = "lr_edit";
editButtonEntity.F_FullName = "编辑";
moduleButtonList.Add(editButtonEntity);
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity();
deleteButtonEntity.Create();
deleteButtonEntity.F_ActionAddress = "/" + codeBaseConfigModel.area + "/" + codeBaseConfigModel.name + "/DeleteForm";
deleteButtonEntity.F_EnCode = "lr_delete";
deleteButtonEntity.F_FullName = "删除";
moduleButtonList.Add(deleteButtonEntity);
List moduleColumnList = new List();
IEnumerable fieldList = databaseTableIBLL.GetTableFiledList(codeBaseConfigModel.databaseLinkId, codeBaseConfigModel.tableName);
// 表单字段
List moduleFormEntitys = new List();
foreach (var fileditem in fieldList)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = fileditem.f_column;
moduleColumnEntity.F_FullName = fileditem.f_remark;
moduleColumnEntity.F_ParentId = "0";
ModuleFormEntity moduleFormEntity = new ModuleFormEntity();
moduleFormEntity.Create();
moduleFormEntity.F_EnCode = fileditem.f_column;
moduleFormEntity.F_FullName = fileditem.f_remark;
moduleFormEntitys.Add(moduleFormEntity);
moduleColumnList.Add(moduleColumnEntity);
}
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);
return Success("创建成功");
}
#endregion
#region 快速生成实体类和映射类
///
/// 快速开发代码查看
///
/// 配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult LookEntityCode(CodeBaseConfigModel codeBaseConfigModel)
{
string entityCode = "";
string mapCode = "";
codeBaseConfigModel.backProject = ConfigurationManager.AppSettings["BackProject"].ToString();
string[] tableNameList = codeBaseConfigModel.tableNames.Split(',');
foreach (string tableName in tableNameList)
{
// 实体类
entityCode += codeGenerator.EntityCreate(codeBaseConfigModel, tableName);
// 映射类
mapCode += codeGenerator.MappingCreate(codeBaseConfigModel, tableName);
}
var jsonData = new
{
entityCode = entityCode,
mapCode = mapCode
};
return Success(jsonData);
}
///
/// 快速开发代码创建
///
/// 配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult CreateEntityCode(CodeBaseConfigModel codeBaseConfigModel)
{
string codeContent = "";
codeBaseConfigModel.backProject = ConfigurationManager.AppSettings["BackProject"].ToString();
string[] tableNameList = codeBaseConfigModel.tableNames.Split(',');
foreach (string tableName in tableNameList)
{
// 实体类
codeContent = codeGenerator.EntityCreate(codeBaseConfigModel, tableName);
codeGenerator.CreateEntityCodeFile(codeBaseConfigModel, tableName, codeContent);
// 映射类
codeContent = codeGenerator.MappingCreate(codeBaseConfigModel, tableName);
codeGenerator.CreateMapCodeFile(codeBaseConfigModel, tableName, codeContent);
}
return Success("创建成功");
}
#endregion
#region 流程系统表单模板
///
/// 流程系统表单代码生成
///
/// 配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult LookWorkflowCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo)
{
// 数据
List dbTableObj = dbTable.ToObject>();
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
// 实体类 映射类
string entityCode = "";
string mapCode = "";
string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
entityCode += codeGenerator.WfEntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain, colDataObj.workField);
// colDataObj
mapCode += codeGenerator.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
}
// 服务类
string serviceCode = codeGenerator.WfServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj, colDataObj.workField);
// 业务类
string bllCode = codeGenerator.WfBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 业务接口类
string ibllCode = codeGenerator.WfIBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 控制器类
string controllerCode = codeGenerator.WfControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 页面类
string indexCode = codeGenerator.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
// 页面js类
string indexJsCode = codeGenerator.WfIndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
// 表单类
string formCode = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap);
// 表单js类
string formJsCode = codeGenerator.WfFormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2, colDataObj.workField);
var jsonData = new
{
entityCode = entityCode,
mapCode = mapCode,
serviceCode = serviceCode,
bllCode = bllCode,
ibllCode = ibllCode,
controllerCode = controllerCode,
indexCode = indexCode,
indexJsCode = indexJsCode,
formCode = formCode,
formJsCode = formJsCode
};
return Success(jsonData);
}
///
/// 流程系统表单代码创建
///
/// 配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult CreateWorkflowCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson)
{
// 数据
List dbTableObj = dbTable.ToObject>();
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
var moduleEntity = moduleEntityJson.ToObject();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";
// 按钮
List moduleButtonList = new List();
foreach (var btn in colDataObj.btns)
{
switch (btn)
{
case "add":
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_EnCode = "lr_add";
addButtonEntity.F_FullName = "新增";
moduleButtonList.Add(addButtonEntity);
break;
case "edit":
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_EnCode = "lr_edit";
editButtonEntity.F_FullName = "编辑";
moduleButtonList.Add(editButtonEntity);
break;
case "delete":
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity();
deleteButtonEntity.Create();
deleteButtonEntity.F_EnCode = "lr_delete";
deleteButtonEntity.F_FullName = "删除";
moduleButtonList.Add(deleteButtonEntity);
break;
case "print":
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);
break;
}
}
foreach (var btn in colDataObj.btnexs)
{
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = btn.id;
printButtonEntity.F_FullName = btn.name;
moduleButtonList.Add(printButtonEntity);
}
// 列表
List moduleColumnList = new List();
foreach (var col in colDataObj.fields)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
moduleColumnEntity.F_FullName = col.fieldName;
moduleColumnEntity.F_ParentId = "0";
moduleColumnList.Add(moduleColumnEntity);
}
// 表单字段
List moduleFormEntitys = new List();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
ModuleFormEntity moduleFormEntity = new ModuleFormEntity();
moduleFormEntity.Create();
moduleFormEntity.F_EnCode = compont.field;
moduleFormEntity.F_FullName = compont.title;
moduleFormEntitys.Add(moduleFormEntity);
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);
}
// 实体类 映射类
string codeContent = "";
string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
codeContent = codeGenerator.WfEntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain, colDataObj.workField);
codeGenerator.CreateEntityCodeFile(baseInfoObj, tableOne.name, codeContent);
// 映射类
codeContent = codeGenerator.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
codeGenerator.CreateMapCodeFile(baseInfoObj, tableOne.name, codeContent);
}
// 服务类
codeContent = codeGenerator.WfServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj, colDataObj.workField);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGenerator.WfBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent);
// 业务接口类
codeContent = codeGenerator.WfIBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent);
// 控制器类
codeContent = codeGenerator.WfControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent);
// 页面类
codeContent = codeGenerator.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGenerator.WfIndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
// 表单类
codeContent = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap);
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent);
// 表单js类
codeContent = codeGenerator.WfFormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2, colDataObj.workField);
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent);
return Success("创建成功");
}
#endregion
#region 编辑列表开发模板
///
/// 编辑列表开发模板代码生成
///
/// 数据库连接ID
/// 数据表
/// 数据表主键
/// 表单数据
/// 查询数据
/// 列表数据
/// 基础信息
///
[HttpPost]
[AjaxOnly]
public ActionResult LookGridEditCode(string databaseLinkId, string dbTable, string dbTablePk, string formData, string queryData, string colData, string baseInfo)
{
// 数据实体化
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
// 实体类
string entityCode = codeGenerator.EntityCreate(databaseLinkId, dbTable, dbTablePk, baseInfoObj, colDataObj, true);
// 映射类
string mapCode = codeGenerator.MappingCreate(dbTable, dbTablePk, baseInfoObj);
// 服务类
string serviceCode = codeGenerator.GridEditServiceCreate(databaseLinkId, dbTable, dbTablePk, compontMap, queryDataObj, colDataObj, baseInfoObj);
// 业务类
string bllCode = codeGenerator.GridEditBllCreate(baseInfoObj, dbTable, dbTablePk, colDataObj);
// 业务接口类
string ibllCode = codeGenerator.GridEditIBllCreate(baseInfoObj, dbTable, colDataObj);
// 控制器类
string controllerCode = codeGenerator.GridEditControllerCreate(baseInfoObj, dbTable, compontMap, colDataObj);
// 页面类
string indexCode = codeGenerator.GridEditIndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
// 页面js类
string indexJsCode = codeGenerator.GridEditIndexJSCreate(baseInfoObj, dbTablePk, compontMap, colDataObj, queryDataObj);
// 表单类
string formCode = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap);
// 表单js类
string formJsCode = codeGenerator.GridEditFormJsCreate(baseInfoObj, formDataObj, compontMap2);
var jsonData = new
{
entityCode = entityCode,
mapCode = mapCode,
serviceCode = serviceCode,
bllCode = bllCode,
ibllCode = ibllCode,
controllerCode = controllerCode,
indexCode = indexCode,
indexJsCode = indexJsCode,
formCode = formCode,
formJsCode = formJsCode
};
return Success(jsonData);
}
///
/// 编辑列表开发模板代码生成(创建)
///
/// 数据库连接ID
/// 数据表
/// 表单数据
/// 查询数据
/// 列表数据
/// 基础信息
/// 系统功能配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult CreateGridEditCode(string databaseLinkId, string dbTable, string dbTablePk, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson)
{
// 数据
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
var moduleEntity = moduleEntityJson.ToObject();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";
// 按钮
List moduleButtonList = new List();
foreach (var btn in colDataObj.btns)
{
switch (btn)
{
case "add":
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_EnCode = "lr_add";
addButtonEntity.F_FullName = "新增";
moduleButtonList.Add(addButtonEntity);
break;
case "save":
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_EnCode = "lr_save";
editButtonEntity.F_FullName = "保存";
moduleButtonList.Add(editButtonEntity);
break;
case "delete":
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity();
deleteButtonEntity.Create();
deleteButtonEntity.F_EnCode = "lr_delete";
deleteButtonEntity.F_FullName = "删除";
moduleButtonList.Add(deleteButtonEntity);
break;
case "print":
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);
break;
}
}
foreach (var btn in colDataObj.btnexs)
{
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = btn.id;
printButtonEntity.F_FullName = btn.name;
moduleButtonList.Add(printButtonEntity);
}
// 列表
List moduleColumnList = new List();
foreach (var col in colDataObj.fields)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
moduleColumnEntity.F_FullName = col.fieldName;
moduleColumnEntity.F_ParentId = "0";
moduleColumnList.Add(moduleColumnEntity);
}
// 表单字段
List moduleFormEntitys = new List();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
ModuleFormEntity moduleFormEntity = new ModuleFormEntity();
moduleFormEntity.Create();
moduleFormEntity.F_EnCode = compont.field;
moduleFormEntity.F_FullName = compont.title;
moduleFormEntitys.Add(moduleFormEntity);
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb
}
// 实体类 映射类
string codeContent = "";
// 实体类
codeContent = codeGenerator.EntityCreate(databaseLinkId, dbTable, dbTablePk, baseInfoObj, colDataObj, true);
codeGenerator.CreateEntityCodeFile(baseInfoObj, dbTable, codeContent);
// 映射类
codeContent = codeGenerator.MappingCreate(dbTable, dbTablePk, baseInfoObj);
codeGenerator.CreateMapCodeFile(baseInfoObj, dbTable, codeContent);
// 服务类
codeContent = codeGenerator.GridEditServiceCreate(databaseLinkId, dbTable, dbTablePk, compontMap, queryDataObj, colDataObj, baseInfoObj);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGenerator.GridEditBllCreate(baseInfoObj, dbTable, dbTablePk, colDataObj);
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent);
// 业务接口类
codeContent = codeGenerator.GridEditIBllCreate(baseInfoObj, dbTable, colDataObj);
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent);
// 控制器类
codeContent = codeGenerator.GridEditControllerCreate(baseInfoObj, dbTable, compontMap, colDataObj);
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent);
// 页面类
codeContent = codeGenerator.GridEditIndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGenerator.GridEditIndexJSCreate(baseInfoObj, dbTablePk, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
// 表单类
codeContent = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap);
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent);
// 表单js类
codeContent = codeGenerator.GridEditFormJsCreate(baseInfoObj, formDataObj, compontMap2);
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent);
return Success("创建成功");
}
#endregion
#region 报表开发模板
///
/// 报表开发模板代码生成
///
/// 数据库连接ID
/// 查询数据
/// 列表数据
/// 基础信息
///
[HttpPost]
[AjaxOnly]
public ActionResult LookReportCode(string databaseLinkId, string strSql, string queryData, string colData, string baseInfo)
{
// 数据实体化
QueryModel queryDataObj = queryData.ToObject();
List collist = colData.ToObject>();
BaseModel baseInfoObj = baseInfo.ToObject();
// 服务类
string serviceCode = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, collist, queryDataObj, baseInfoObj);
// 业务类
string bllCode = codeGenerator.ReportBllCreate(baseInfoObj);
// 业务接口类
string ibllCode = codeGenerator.ReportIBllCreate(baseInfoObj);
// 控制器类
string controllerCode = codeGenerator.ReportControllerCreate(baseInfoObj);
// 页面类
string indexCode = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj);
// 页面js类
string indexJsCode = codeGenerator.ReportIndexJSCreate(baseInfoObj, collist, queryDataObj);
var jsonData = new
{
serviceCode = serviceCode,
bllCode = bllCode,
ibllCode = ibllCode,
controllerCode = controllerCode,
indexCode = indexCode,
indexJsCode = indexJsCode
};
return Success(jsonData);
}
///
/// 自定义开发模板代码生成(创建)
///
/// 数据库连接ID
/// 查询数据
/// 列表数据
/// 基础信息
/// 系统功能配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult CreateReportCode(string databaseLinkId, string strSql, string queryData, string colData, string baseInfo, string moduleEntityJson)
{
// 数据
QueryModel queryDataObj = queryData.ToObject();
List collist = colData.ToObject>();
BaseModel baseInfoObj = baseInfo.ToObject();
var moduleEntity = moduleEntityJson.ToObject();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";
// 按钮
List moduleButtonList = new List();
ModuleButtonEntity outportButtonEntity = new ModuleButtonEntity();
outportButtonEntity.Create();
outportButtonEntity.F_EnCode = "lr_outport";
outportButtonEntity.F_FullName = "导出";
moduleButtonList.Add(outportButtonEntity);
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);
// 列表
List moduleColumnList = new List();
foreach (var col in collist)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
moduleColumnEntity.F_FullName = col.name;
moduleColumnEntity.F_ParentId = "0";
moduleColumnList.Add(moduleColumnEntity);
}
// 表单字段
List moduleFormEntitys = new List();
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb
}
// 实体类 映射类
string codeContent = "";
// 服务类
codeContent = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, collist, queryDataObj, baseInfoObj);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGenerator.ReportBllCreate(baseInfoObj);
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent);
// 业务接口类
codeContent = codeGenerator.ReportIBllCreate(baseInfoObj);
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent);
// 控制器类
codeContent = codeGenerator.ReportControllerCreate(baseInfoObj);
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent);
// 页面类
codeContent = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGenerator.ReportIndexJSCreate(baseInfoObj, collist, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
return Success("创建成功");
}
#endregion
#region 移动开发模板
///
/// 移动开发模板代码生成
///
/// 数据库连接ID
/// 数据表
/// 表单数据
/// 查询数据
/// 列表数据
/// 基础信息
///
[HttpPost]
[AjaxOnly]
public ActionResult LookAppCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo)
{
// 数据实体化
List dbTableObj = dbTable.ToObject>();
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
// 实体类 映射类
string entityCode = "";
string mapCode = "";
string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
entityCode += codeGeneratorApp.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
// 映射类
mapCode += codeGeneratorApp.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
}
// 服务类
string serviceCode = codeGeneratorApp.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj);
// 业务类
string bllCode = codeGeneratorApp.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 业务接口类
string ibllCode = codeGeneratorApp.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 控制器类
string controllerCode = codeGeneratorApp.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 页面类
string indexCode = codeGeneratorApp.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
// 页面js类
string indexJsCode = codeGeneratorApp.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
// 表单类
string formCode = codeGeneratorApp.FormCreate(baseInfoObj, formDataObj, compontMap);
// 表单js类
string formJsCode = codeGeneratorApp.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
// api接口类
string apiCode = codeGeneratorApp.ApiCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 移动页面
string appIndexCode = codeGeneratorApp.AppIndexCreate(baseInfoObj, compontMap, queryDataObj);
// 移动页面JS
string appIndexJsCode = codeGeneratorApp.AppIndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
// 移动页面表单
string appFormCode = codeGeneratorApp.AppFormCreate(baseInfoObj, formDataObj, compontMap);
// 移动表单页面JS
string appFormJsCode = codeGeneratorApp.AppFormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
var jsonData = new
{
entityCode,
mapCode,
serviceCode,
bllCode,
ibllCode,
controllerCode,
indexCode,
indexJsCode,
formCode,
formJsCode,
apiCode,
appIndexCode = appIndexCode + appIndexJsCode,
appFormCode = appFormCode + appFormJsCode
};
return Success(jsonData);
}
///
/// 自定义开发模板代码生成(创建)
///
/// 数据库连接ID
/// 数据表
/// 表单数据
/// 查询数据
/// 列表数据
/// 基础信息
/// 系统功能配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult CreateAppCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson, string functionEntityJson)
{
// 数据
List dbTableObj = dbTable.ToObject>();
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
FunctionEntity functionEntity = functionEntityJson.ToObject();
functionEntity.F_Url = baseInfoObj.outputArea + "/" + baseInfoObj.name;
functionIBLL.SaveEntity("", functionEntity, null);
var moduleEntity = moduleEntityJson.ToObject();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";
// 按钮
List moduleButtonList = new List();
foreach (var btn in colDataObj.btns)
{
switch (btn)
{
case "add":
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_EnCode = "lr_add";
addButtonEntity.F_FullName = "新增";
moduleButtonList.Add(addButtonEntity);
break;
case "edit":
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_EnCode = "lr_edit";
editButtonEntity.F_FullName = "编辑";
moduleButtonList.Add(editButtonEntity);
break;
case "delete":
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity();
deleteButtonEntity.Create();
deleteButtonEntity.F_EnCode = "lr_delete";
deleteButtonEntity.F_FullName = "删除";
moduleButtonList.Add(deleteButtonEntity);
break;
case "print":
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);
break;
}
}
foreach (var btn in colDataObj.btnexs)
{
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = btn.id;
printButtonEntity.F_FullName = btn.name;
moduleButtonList.Add(printButtonEntity);
}
// 列表
List moduleColumnList = new List();
foreach (var col in colDataObj.fields)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
moduleColumnEntity.F_FullName = col.fieldName;
moduleColumnEntity.F_ParentId = "0";
moduleColumnList.Add(moduleColumnEntity);
}
// 表单字段
List moduleFormEntitys = new List();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
ModuleFormEntity moduleFormEntity = new ModuleFormEntity();
moduleFormEntity.Create();
moduleFormEntity.F_EnCode = compont.field;
moduleFormEntity.F_FullName = compont.title;
moduleFormEntitys.Add(moduleFormEntity);
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb
}
// 实体类 映射类
string codeContent = "";
string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
codeContent = codeGeneratorApp.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
codeGenerator.CreateEntityCodeFile(baseInfoObj, tableOne.name, codeContent);
// 映射类
codeContent = codeGeneratorApp.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
codeGenerator.CreateMapCodeFile(baseInfoObj, tableOne.name, codeContent);
}
// 服务类
codeContent = codeGeneratorApp.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGeneratorApp.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent);
// 业务接口类
codeContent = codeGeneratorApp.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent);
// 控制器类
codeContent = codeGeneratorApp.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent);
// 页面类
codeContent = codeGeneratorApp.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGeneratorApp.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
// 表单类
codeContent = codeGeneratorApp.FormCreate(baseInfoObj, formDataObj, compontMap);
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent);
// 表单js类
codeContent = codeGeneratorApp.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent);
// api接口类
codeContent = codeGeneratorApp.ApiCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateApiFile(baseInfoObj, codeContent);
// 移动页面
codeContent = codeGeneratorApp.AppIndexCreate(baseInfoObj, compontMap, queryDataObj);
codeGenerator.CreateAppIndexCodeFile(baseInfoObj, codeContent, "html");
// 移动页面JS
codeContent = codeGeneratorApp.AppIndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateAppIndexCodeFile(baseInfoObj, codeContent, "js");
codeGenerator.CreateAppIndexCodeFile(baseInfoObj, "", "css");
// 移动页面表单
codeContent = codeGeneratorApp.AppFormCreate(baseInfoObj, formDataObj, compontMap);
codeGenerator.CreateAppFormCodeFile(baseInfoObj, codeContent, "html");
// 移动表单页面JS
codeContent = codeGeneratorApp.AppFormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
codeGenerator.CreateAppFormCodeFile(baseInfoObj, codeContent, "js");
codeGenerator.CreateAppFormCodeFile(baseInfoObj, "", "css");
return Success("创建成功");
}
#endregion
#region 小程序开发模板
///
/// 移动开发模板代码生成
///
/// 数据库连接ID
/// 数据表
/// 表单数据
/// 查询数据
/// 列表数据
/// 基础信息
///
[HttpPost]
[AjaxOnly]
public ActionResult LookWxCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo)
{
// 数据实体化
List dbTableObj = dbTable.ToObject>();
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
// 实体类 映射类
string entityCode = "";
string mapCode = "";
string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
entityCode += codeGeneratorWx.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
// 映射类
mapCode += codeGeneratorWx.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
}
// 服务类
string serviceCode = codeGeneratorWx.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj);
// 业务类
string bllCode = codeGeneratorWx.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 业务接口类
string ibllCode = codeGeneratorWx.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 控制器类
string controllerCode = codeGeneratorWx.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 页面类
string indexCode = codeGeneratorWx.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
// 页面js类
string indexJsCode = codeGeneratorWx.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
// 表单类
string formCode = codeGeneratorWx.FormCreate(baseInfoObj, formDataObj, compontMap);
// 表单js类
string formJsCode = codeGeneratorWx.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
// api接口类
string apiCode = codeGeneratorWx.ApiCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 移动页面
string appIndexCode = codeGeneratorWx.AppIndexCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
// 移动页面表单
string appFormCode = codeGeneratorWx.AppFormCreate(baseInfoObj, dbTableObj, formDataObj, compontMap, colDataObj);
var jsonData = new
{
entityCode,
mapCode,
serviceCode,
bllCode,
ibllCode,
controllerCode,
indexCode,
indexJsCode,
formCode,
formJsCode,
apiCode,
appIndexCode = appIndexCode,
appFormCode = appFormCode
};
return Success(jsonData);
}
///
/// 自定义开发模板代码生成(创建)
///
/// 数据库连接ID
/// 数据表
/// 表单数据
/// 查询数据
/// 列表数据
/// 基础信息
/// 系统功能配置信息
///
[HttpPost]
[AjaxOnly]
public ActionResult CreateWxCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson, string functionEntityJson)
{
// 数据
List dbTableObj = dbTable.ToObject>();
List formDataObj = formData.ToObject>();
QueryModel queryDataObj = queryData.ToObject();
ColModel colDataObj = colData.ToObject();
BaseModel baseInfoObj = baseInfo.ToObject();
FunctionEntity functionEntity = functionEntityJson.ToObject();
functionEntity.F_Url = baseInfoObj.outputArea + "/" + baseInfoObj.name;
functionIBLL.SaveEntity("", functionEntity, null);
var moduleEntity = moduleEntityJson.ToObject();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";
// 按钮
List moduleButtonList = new List();
foreach (var btn in colDataObj.btns)
{
switch (btn)
{
case "add":
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_EnCode = "lr_add";
addButtonEntity.F_FullName = "新增";
moduleButtonList.Add(addButtonEntity);
break;
case "edit":
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_EnCode = "lr_edit";
editButtonEntity.F_FullName = "编辑";
moduleButtonList.Add(editButtonEntity);
break;
case "delete":
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity();
deleteButtonEntity.Create();
deleteButtonEntity.F_EnCode = "lr_delete";
deleteButtonEntity.F_FullName = "删除";
moduleButtonList.Add(deleteButtonEntity);
break;
case "print":
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);
break;
}
}
foreach (var btn in colDataObj.btnexs)
{
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = btn.id;
printButtonEntity.F_FullName = btn.name;
moduleButtonList.Add(printButtonEntity);
}
// 列表
List moduleColumnList = new List();
foreach (var col in colDataObj.fields)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
moduleColumnEntity.F_FullName = col.fieldName;
moduleColumnEntity.F_ParentId = "0";
moduleColumnList.Add(moduleColumnEntity);
}
// 表单字段
List moduleFormEntitys = new List();
// 将表单数据进行一次转化
Dictionary compontMap = new Dictionary();
Dictionary compontMap2 = new Dictionary();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
ModuleFormEntity moduleFormEntity = new ModuleFormEntity();
moduleFormEntity.Create();
moduleFormEntity.F_EnCode = compont.field;
moduleFormEntity.F_FullName = compont.title;
moduleFormEntitys.Add(moduleFormEntity);
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb
}
// 实体类 映射类
string codeContent = "";
string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
codeContent = codeGeneratorWx.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
codeGenerator.CreateEntityCodeFile(baseInfoObj, tableOne.name, codeContent);
// 映射类
codeContent = codeGeneratorWx.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
codeGenerator.CreateMapCodeFile(baseInfoObj, tableOne.name, codeContent);
}
// 服务类
codeContent = codeGeneratorWx.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGeneratorWx.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent);
// 业务接口类
codeContent = codeGeneratorWx.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent);
// 控制器类
codeContent = codeGeneratorWx.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent);
// 页面类
codeContent = codeGeneratorWx.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGeneratorWx.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
// 表单类
codeContent = codeGeneratorWx.FormCreate(baseInfoObj, formDataObj, compontMap);
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent);
// 表单js类
codeContent = codeGeneratorWx.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent);
// api接口类
codeContent = codeGeneratorWx.ApiCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateApiFile(baseInfoObj, codeContent);
// 移动页面
codeContent = codeGeneratorWx.AppIndexCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateWxIndexCodeFile(baseInfoObj, codeContent, "vue");
// 移动页面表单
codeContent = codeGeneratorWx.AppFormCreate(baseInfoObj, dbTableObj, formDataObj, compontMap, colDataObj);
codeGenerator.CreateWxFormCodeFile(baseInfoObj, codeContent, "vue");
return Success("创建成功");
}
#endregion
#region 私有方法
///
/// 获取项目根目录
///
///
private string GetRootDirectory()
{
string rootDirectory = Server.MapPath("~/Web.config"); ;
for (int i = 0; i < 2; i++)
{
rootDirectory = rootDirectory.Substring(0, rootDirectory.LastIndexOf('\\'));
}
return rootDirectory;
}
#endregion
}
}