/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 202403/02 * Description: 暂无 ***********************************************************************/ using System.Collections.Generic; using System.Linq; using CoreCms.Net.CodeGenerator; using CoreCms.Net.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.Model.ViewModels.Basics; using SqlSugar; namespace CoreCms.Net.Repository.CodeGenerator { public class CodeGeneratorRepository : BaseRepository, ICodeGeneratorRepository { public CodeGeneratorRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { } /// /// 获取所有的表 /// /// public List GetDbTables() { var tables = DbClient.DbMaintenance.GetTableInfoList(false).OrderBy(p => p.Name).ToList(); var views = DbClient.DbMaintenance.GetViewInfoList(false).OrderBy(p => p.Name).ToList(); if (!views.Any()) return tables; var newList = tables.Union(views).ToList(); return newList; } /// /// 获取表下面所有的字段 /// /// /// public List GetDbTablesColumns(string tableName) { var columns = DbClient.DbMaintenance.GetColumnInfosByTableName(tableName, false); return columns; } /// /// 自动生成代码 /// /// /// /// public byte[] CodeGen(string tableName, string fileType, bool isVue = false) { var tables = DbClient.DbMaintenance.GetTableInfoList(false); var views = DbClient.DbMaintenance.GetViewInfoList(false); var tb = tables.Find(p => p.Name == tableName) ?? views.Find(p => p.Name == tableName); if (tb == null) { return null; } var columns = DbClient.DbMaintenance.GetColumnInfosByTableName(tb.Name, false); return GeneratorCodeHelper.CodeGenerator(tb.Name, tb.Description, columns, fileType, isVue); } /// /// 自动生成类型的所有数据库代码 /// /// /// /// public byte[] CodeGenByAll(string fileType, bool isVue = false) { var tables = DbClient.DbMaintenance.GetTableInfoList(false); var views = DbClient.DbMaintenance.GetViewInfoList(false); var newList = tables; if (views.Any()) newList = tables.Union(views).ToList(); var allDb = new List(); newList.ForEach(p => { var model = new DbTableInfoAndColumns(); model.Name = p.Name; model.DbObjectType = p.DbObjectType; model.Description = p.Description; model.columns = DbClient.DbMaintenance.GetColumnInfosByTableName(p.Name, false); allDb.Add(model); }); if (!allDb.Any()) return null; return GeneratorCodeHelper.CodeGeneratorAll(allDb, fileType, isVue); } } }