using System; using SqlSugar; using Infrastructure.Attribute; using Infrastructure.Extensions; using ${options.BaseNamespace}Model; using ${options.DtosNamespace}; using ${options.ModelsNamespace}.${options.SubNamespace}; using ${options.RepositoriesNamespace}; using ${options.IServicsNamespace}.${options.SubNamespace}.I${options.SubNamespace}Service; using System.Linq; $if(genTable.TplCategory == "tree") using System.Collections.Generic; $end namespace ${options.ServicesNamespace}.${options.SubNamespace} { /// /// ${genTable.FunctionName}Service业务层处理 /// [AppService(ServiceType = typeof(I${replaceDto.ModelTypeName}Service), ServiceLifetime = LifeTime.Transient)] public class ${replaceDto.ModelTypeName}Service : BaseService<${replaceDto.ModelTypeName}>, I${replaceDto.ModelTypeName}Service { /// /// 查询${genTable.FunctionName}列表 /// /// /// public PagedInfo<${replaceDto.ModelTypeName}Dto> GetList(${replaceDto.ModelTypeName}QueryDto parm) { var predicate = Expressionable.Create<${replaceDto.ModelTypeName}>(); $foreach(column in genTable.Columns) $if(column.IsQuery) $if(column.HtmlType == "selectMulti") predicate = predicate.AndIF(parm.${column.CsharpField} != null, it => parm.${column.CsharpField}.Contains(it.${column.CsharpField})); $elseif(column.CsharpType == "string") predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.${column.CsharpField}), ${codeTool.QueryExp(column.CsharpField, column.QueryType)}; $elseif(column.CsharpType == "DateTime") $if(column.HtmlType == "month") DateTime monthEnd = Convert.ToDateTime(parm.${column.CsharpField}).AddMonths(1); predicate = predicate.AndIF(parm.${column.CsharpField} != null, it => it.${column.CsharpField} >= parm.${column.CsharpField} && it.${column.CsharpField} < monthEnd); $else predicate = predicate.AndIF(parm.Begin${column.CsharpField} == null, it => it.${column.CsharpField} >= DateTime.Now.ToShortDateString().ParseToDateTime()); predicate = predicate.AndIF(parm.Begin${column.CsharpField} != null, it => it.${column.CsharpField} >= parm.Begin${column.CsharpField}); predicate = predicate.AndIF(parm.End${column.CsharpField} != null, it => it.${column.CsharpField} <= parm.End${column.CsharpField}); $end $elseif(column.CsharpType == "int" || column.CsharpType == "long") predicate = predicate.AndIF(parm.${column.CsharpField} != null, ${codeTool.QueryExp(column.CsharpField, column.QueryType)}; $end $end $end var response = Queryable() $if(null != genTable.SubTableName && "" != genTable.SubTableName) .Includes(x => x.${genTable.SubTable.ClassName}Nav) //填充子对象 $end $if(genTable.Options.SortField != "" && genTable.Options.SortField != null) //.OrderBy("${genTable.Options.SortField} ${genTable.Options.SortType}") $end .Where(predicate.ToExpression()) .ToPage<${replaceDto.ModelTypeName}, ${replaceDto.ModelTypeName}Dto>(parm); return response; } $if(genTable.TplCategory == "tree") /// /// 查询${genTable.FunctionName}树列表 /// /// /// public List<${replaceDto.ModelTypeName}> GetTreeList(${replaceDto.ModelTypeName}QueryDto parm) { var predicate = Expressionable.Create<${replaceDto.ModelTypeName}>(); $foreach(column in genTable.Columns) $if(column.IsQuery) $if(column.CsharpType == "string") predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.${column.CsharpField}), ${codeTool.QueryExp(column.CsharpField, column.QueryType)}; $elseif(column.CsharpType == "int" || column.CsharpType == "long") predicate = predicate.AndIF(parm.${column.CsharpField} != null, ${codeTool.QueryExp(column.CsharpField, column.QueryType)}; $end $end $end var response = Queryable() .Where(predicate.ToExpression()) .ToTree(it => it.Children, it => it.${genTable.Options.TreeParentCode}, 0); return response; } $end /// /// 添加${genTable.FunctionName} /// /// /// public int Add${replaceDto.ModelTypeName}(${replaceDto.ModelTypeName} model) { return Add(model, true); } /// /// 修改${genTable.FunctionName} /// /// /// public int Update${replaceDto.ModelTypeName}(${replaceDto.ModelTypeName} model) { //var response = Update(w => w.${replaceDto.PKName} == model.${replaceDto.PKName}, it => new ${replaceDto.ModelTypeName}() //{ $foreach(item in genTable.Columns) $if((item.IsEdit)) // $item.CsharpField = model.$item.CsharpField, $end ${end} //}); //return response; return Update(model, true); } $if(replaceDto.ShowBtnTruncate) /// /// 清空${genTable.FunctionName} /// /// public bool Truncate${replaceDto.ModelTypeName}() { var newTableName = $"${genTable.TableName}_{DateTime.Now:yyyyMMdd}"; if (Queryable().Any() && !Context.DbMaintenance.IsAnyTable(newTableName)) { Context.DbMaintenance.BackupTable("${genTable.TableName}", newTableName); } return Truncate(); } $end } }