using LeaRun.Application.Busines.AuthorizeManage; using LeaRun.Application.Code; using LeaRun.Application.Entity.AuthorizeManage; using LeaRun.CodeGenerator; using LeaRun.CodeGenerator.Model; using LeaRun.CodeGenerator.Template; using LeaRun.Util; using System.Web.Mvc; namespace LeaRun.Application.Web.Areas.GeneratorManage.Controllers { /// /// 版 本 6.3.1 /// Copyright (c) 2013-2016 上海力软信息技术有限公司 /// 创建人:佘赐雄 /// 日 期:2016.2.13 14:29 /// 描 述:生成器多表 /// public class MultiTableController : MvcControllerBase { private ModuleBLL moduleBLL = new ModuleBLL(); #region 视图功能 /// /// 代码生成器 /// /// [HttpGet] public ActionResult CodeBuilder() { string OutputDirectory = Server.MapPath("~/Web.config"); ; for (int i = 0; i < 2; i++) OutputDirectory = OutputDirectory.Substring(0, OutputDirectory.LastIndexOf('\\')); ViewBag.OutputDirectory = OutputDirectory; ViewBag.UserName = OperatorProvider.Provider.Current().UserName; return View(); } /// /// 编辑控件 /// /// [HttpGet] public ActionResult EditControl() { return View(); } #endregion #region 提交数据 /// /// 查看代码 /// /// 基本信息配置 /// /// /// /// /// [HttpPost] [AjaxOnly] public ActionResult LookCode(string baseInfoJson, string gridPrimaryFieldJson, string gridDetailsFieldJson, string formPrimaryFieldJson, string formDetailsFieldJson) { MultiTableConfigModel multiTableConfigModel = baseInfoJson.ToObject(); var gridPrimary = gridPrimaryFieldJson.ToList(); var gridDetails = gridDetailsFieldJson.ToList(); var formPrimary = formPrimaryFieldJson.ToList(); var formDetails = formDetailsFieldJson.ToList(); MultiTable multiTable = new MultiTable(); string entitybuilder = multiTable.EntityBuilder(multiTableConfigModel, gridPrimary, false);//主表实体 string childEntitybuilder = multiTable.EntityBuilder(multiTableConfigModel, gridDetails, true);//子表实体 string entitymapbuilder = multiTable.EntityMapBuilder(multiTableConfigModel, false);//实体映射类 string childEntitymapbuilder = multiTable.EntityMapBuilder(multiTableConfigModel, true); //服务类 string servicebuilder = multiTable.ServiceBuilder(multiTableConfigModel, gridPrimary); //服务接口类 string iservicebuilder = multiTable.IServiceBuilder(multiTableConfigModel); //业务类 string businesbuilder = multiTable.BusinesBuilder(multiTableConfigModel); //控制器 string controllerbuilder = multiTable.ControllerBuilder(multiTableConfigModel); //主页面 string indexbuilder = multiTable.IndexBuilder(multiTableConfigModel, gridPrimary, gridDetails); //表单页面 string formbuilder = multiTable.FormBuilder(multiTableConfigModel, formPrimary, formDetails); var jsonData = new { entityCode = entitybuilder, entityChildCode = childEntitybuilder, entitymapCode = entitymapbuilder, entitymapChildCode = childEntitymapbuilder, serviceCode = servicebuilder, iserviceCode = iservicebuilder, businesCode = businesbuilder, controllerCode = controllerbuilder, indexCode = indexbuilder, formCode = formbuilder }; return ToJsonResult(jsonData); } /// /// 创建代码(自动写入VS里面目录) /// /// 基本信息配置Json /// 生成代码内容 /// [HttpPost] [AjaxOnly] public ActionResult CreateCode(string baseInfoJson, string strCode) { MultiTableConfigModel baseConfigModel = baseInfoJson.ToObject(); CreateCodeFile.CreateExecution(baseConfigModel, Server.UrlDecode(strCode)); return Success("恭喜您,创建成功!"); } /// /// 发布功能(自动创建导航菜单) /// /// 基本信息配置Json /// 功能实体 /// 按钮实体列表 /// 视图实体列表 /// [HttpPost] [AjaxOnly] public ActionResult PublishModule(string baseInfoJson, ModuleEntity moduleEntity, string moduleButtonListJson, string moduleColumnListJson) { MultiTableConfigModel baseConfigModel = baseInfoJson.ToObject(); var urlAddress = "/" + baseConfigModel.OutputAreas + "/" + CommonHelper.DelLastLength(baseConfigModel.ControllerName, 10) + "/" + baseConfigModel.IndexPageName; moduleEntity.SortCode = moduleBLL.GetSortCode(); moduleEntity.IsMenu = 1; moduleEntity.EnabledMark = 1; moduleEntity.Target = "iframe"; moduleEntity.UrlAddress = urlAddress; moduleBLL.SaveForm("", moduleEntity, moduleButtonListJson, moduleColumnListJson); return Success("发布成功!"); } #endregion #region 处理数据 #endregion } }