using GZ.EntityFramework.Extended.Extensions;
using GZCCC.API.Core;
using GZCCC.API.Models;
using GZCCC.Common;
using GZCCC.Models;
using HS.Server.Core;
using HS.Server.Core.Models;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Http;
<#@ import namespace="GZ.CodeGenerate.T4.Model" #>
<#@ parameter type="GZ.CodeGenerate.T4.Model.EntityServerPage" name="entity" #>
namespace <#= entity.NameSpace#>
{
public partial class <#= entity.ClassName#>Controller : ApiBase
{
#region 增删改查
///
/// 分页查询检索条件参数
///
public class p_searchList : ModalAgGridSearchData
{
}
///
/// 查询列表
///
///
[HttpPost]
public GZAPIResult SearchList(p_searchList searchData)
{
var query = entitiesOP.<#= entity.TableName#>.AsNoTracking().Select(s => new
{
<# foreach(var item in entity.ServerFieldSelectSelect)
{
#>
s.<#= item.FieldName #>,
<#;
}
#>
});
foreach (string key in searchData.filterModel.Keys)
{
string value = searchData.filterModel[key].value;
if (String.IsNullOrEmpty(value)) continue;
switch (key)
{
<# foreach(var item in entity.ServerFieldFilter)
{
#>
case nameof(<#= entity.TableName#>.<#= item.FieldName#>):
{
<# if(item.FilterType==1) {#>
query = query.Where(w => w.<#= item.FieldName#>==value);
<#; } else if(item.FilterType==2) {#>
query = query.Where(w => w.<#= item.FieldName#>.Contains(value));
<#;
} #>
}
break;
<#;
}
#>
}
}
int total = query.Count();
if (searchData.sortModel == null || searchData.sortModel.Count == 0)
{
<# if(entity.ServerFieldDefaultSort.DefaultSortType==1) { #>
query = query.OrderByDescending(o => o.<#= entity.ServerFieldDefaultSort.FieldName#>);
<#; } else { #>
query = query.OrderBy(o => o.<#= entity.ServerFieldDefaultSort.FieldName#>);
<#;
} #>
}
else
{
var sortData = searchData.sortModel[0];
switch (sortData.colId)
{
<# foreach(var item in entity.ServerFieldOrder)
{
#>
case nameof(<#= entity.TableName#>.<#= item.FieldName #>):
{
if (sortData.sort == "asc")
query = query.OrderByDescending(o => o.<#= item.FieldName #>);
else
query = query.OrderBy(o => o.<#= item.FieldName #>);
}
break;
<#;
}
#>
default:
{
<# if(entity.ServerFieldDefaultSort.DefaultSortType==1) { #>
query = query.OrderByDescending(o => o.<#= entity.ServerFieldDefaultSort.FieldName#>);
<#; } else { #>
query = query.OrderBy(o => o.<#= entity.ServerFieldDefaultSort.FieldName#>);
<#;
} #>
}
break;
}
}
var data = query.Skip(searchData.startRow).Take(searchData.rowLength).ToList();
Dictionary dictionary = new Dictionary();
dictionary.Add("total", total);
dictionary.Add("data", data);
return GZAPISuccess(dictionary);
}
public class P_Create
{
<# foreach(var item in entity.ServerFieldAddClassPropertys)
{
#>
public <#= item.TypeName#> <#= item.FieldName#> { get; set; }
<#;
}
#>
}
// 新增
[HttpPost]
public GZAPIResult Create(P_Create data)
{
List valResult = new List();
//if (String.IsNullOrEmpty(data.OfficeName))
//{
// valResult.Add("XX不能为空");
//}
<# foreach(var item in entity.ServerFieldAddValidate)
{
switch(item.TypeName) {
case "int":{
#>
if (data.<#= item.FieldName#> == 0)
{
valResult.Add("<#= item.DisplayText#>不能为空");
}
<# ;} break;
default: {
#>
if (String.IsNullOrEmpty(data.<#= item.FieldName#>))
{
valResult.Add("<#= item.DisplayText#>不能为空");
}
<# ;} break;
#>
<# }
}
#>
if (valResult.Count > 0)
{
return GZAPIBadRequest(String.Join(System.Environment.NewLine, valResult));
}
using (var trans = entitiesOP.Database.BeginTransaction())
{
try
{
<#= entity.TableName#> newData = new <#= entity.TableName#>()
{
/*
OfficeID = HS.Server.Core.DocNoProvider.DocNoHelper.Intance.getSN(currentUser.ClientID, trans.UnderlyingTransaction as SqlTransaction, d =>
{
d.CustomerSeed = currentUser.ClientID;
d.DocHeader = currentUser.ClientID;
}),
*/
<# if(entity.ServerSetValueOnAdd) {#>
// 主键
<#= entity.FieldPrimaryKey.FieldName#> = Tools.GUID,
<#;
}
#>
<# foreach(var item in entity.ServerFieldAddSetValue)
{
#>
<#= item.FieldName#> = data.<#= item.FieldName#>,
<#;
}
#>
};
entitiesOP.<#= entity.TableName#>.Add(newData);
entitiesOP.SaveChanges();
trans.Commit();
return GZAPISuccess(newData);
}
catch (Exception ex)
{
trans.Rollback();
return GZAPIThrowException(ex);
}
}
}
///
/// 获得数据详情
///
///
///
public GZAPIResult GetData(string pk)
{
var obj = entitiesOP.<#= entity.TableName#>.Where(w => w.<#= entity.FieldPrimaryKey.FieldName#> == pk).Select(s => new
{
<# foreach(var item in entity.ServerFieldDetailSelect)
{
#>
s.<#= item.FieldName#>,
<#;
}
#>
}).FirstOrDefault();
if (obj == null)
{
return GZAPIBadRequest("数据不存在!");
}
return GZAPISuccess(obj);
}
public class P_Update
{
<# foreach(var item in entity.ServerFieldUpdateClassPropertys)
{
#>
public <#= item.TypeName#> <#= item.FieldName#> { get; set; }
<#;
}
#>
}
// 更新数据
[HttpPost]
public GZAPIResult Update(P_Update data)
{
List valResult = new List();
<# foreach(var item in entity.ServerFieldUpdateValidate)
{
switch(item.TypeName) {
case "int":{
#>
if (data.<#= item.FieldName#> == 0)
{
valResult.Add("<#= item.DisplayText#>不能为空");
}
<# ;} break;
default: {
#>
if (String.IsNullOrEmpty(data.<#= item.FieldName#>))
{
valResult.Add("<#= item.DisplayText#>不能为空");
}
<# ;} break;
#>
<# }
}
#>
if (valResult.Count > 0)
{
return GZAPIBadRequest(String.Join(System.Environment.NewLine, valResult));
}
var obj = entitiesOP.<#= entity.TableName#>.Where(w => w.<#= entity.FieldPrimaryKey.FieldName#> == data.<#= entity.FieldPrimaryKey.FieldName#>).FirstOrDefault();
if (obj == null)
{
return GZAPISuccess("数据不存在");
}
<# foreach(var item in entity.ServerFieldUpdateSetValue)
{
#>
obj.<#= item.FieldName#> = data.<#= item.FieldName#>;
<#;
}
#>
entitiesOP.SaveChanges();
return GZAPISuccess();
}
///
/// 删除
///
///
///
[HttpGet]
public GZAPIResult Delete(string pk)
{
entitiesOP.<#= entity.TableName#>.Where(w => w.<#= entity.FieldPrimaryKey.FieldName#> == pk).Delete();
return GZAPISuccess();
}
#endregion 增删改查
}
}