// ZNBM\eKing.SzdfLib\Helpers\BLLs\HRZZ\UTB_SZDF_HRZZ_TXZ__P.cs
using System;
using SlowX.DAL.Helpers;
using SlowX.Core.ICoreClasses;
namespace eKing.SzdfLib.Helpers
{
/// <summary>
///
/// </summary>
/// 表名:UTB_SZDF_HRZZ_TXZ
/// 表注释:通行证
/// 表前缀:HrzzTxz
/// 表逻辑:eKing.SzdfLib.Business.HRZZ.UTB_SZDF_HRZZ_TXZ
public partial class eKingSzdfLibHelper
:
eKing.SzdfLib.IHelpers.BLLs.HRZZ.UTB_SZDF_HRZZ_TXZ
{
/// <summary>
/// UTB_SZDF_HRZZ_TXZ - 通行证 -- 设置IsDelete = 1(更新删除) 并更新新的记录为当前
/// </summary>
/// <param name="pkId">关键字</param>
/// <param name="xdbHelper">数据库链接串</param>
/// <returns></returns>
public int HrzzTxzDeleteItem(long pkId,DBHelper xdbHelper)
{
if (pkId == 0)
return 0;
int theResult = 0;
bool bIsCreate = true;
if (xdbHelper == null)
{
xdbHelper
=
SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = xdbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
xdbHelper.OpenDBHelper();
// 获得当前记录 //
eKing.SzdfLib.Model.HRZZ.UTB_SZDF_HRZZ_TXZ
model = HrzzTxzModelGet(pkId, xdbHelper);
if (model == null)
{
if (bIsCreate)
xdbHelper.EndDBHelper();
return 0;
}
theResult = HrzzTxzUpdateDeleteItem(pkId, xdbHelper);
if (model.EmHrzzStatusV__Get()
==
Enums.HrzzStatus.EmHrzzStatus.最新)
{
// 更新其他表为最新 //
HrzzTxzUpdateEmHrzzStatusV(model.User_Item_Id, xdbHelper);
}
if (bIsCreate)
xdbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
xdbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
xdbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// UTB_SZDF_HRZZ_TXZ - 通行证 -- 设置IsDelete = 1(更新删除)
/// </summary>
/// <param name="pkId">关键字</param>
/// <param name="xdbHelper">数据库链接串</param>
/// <returns></returns>
protected int HrzzTxzUpdateDeleteItem(long pkId, DBHelper xdbHelper)
{
if (pkId == 0)
return 0;
int theResult = 0;
bool bIsCreate = true;
if (xdbHelper == null)
{
xdbHelper
=
SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = xdbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
xdbHelper.OpenDBHelper();
eKing.SzdfLib.Business.HRZZ.UTB_SZDF_HRZZ_TXZ
bll
=
eKing.SzdfLib.Business.HRZZ.UTB_SZDF_HRZZ_TXZ.instance;
eKing.SzdfLib.Entity.HRZZ.UTB_SZDF_HRZZ_TXZ
entity
=
new eKing.SzdfLib.Entity.HRZZ.UTB_SZDF_HRZZ_TXZ();
ISaveDriver isave = entity;
IWhereDriver iwhere = entity;
isave.AddISaveItemByBoolean(entity._IsDelete, true);
iwhere.WhereAddLong(entity._ID, pkId);
theResult = bll.Update(entity, xdbHelper);
if (bIsCreate)
xdbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
xdbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
xdbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// UTB_SZDF_HRZZ_TXZ - 通行证 -- 更新EmHrzzStatusV为历史
/// </summary>
/// <param name="userItemId">用户ID</param>
/// <param name="xdbHelper">数据库链接串</param>
/// <returns>更新的记录数</returns>
protected int HrzzTxzUpdateEmHrzzStatusV2His
(
long userItemId,
DBHelper xdbHelper
)
{
if (userItemId == 0)
return 0;
int theResult = 0;
bool bIsCreate = true;
if (xdbHelper == null)
{
xdbHelper
=
SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = xdbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
xdbHelper.OpenDBHelper();
eKing.SzdfLib.Business.HRZZ.UTB_SZDF_HRZZ_TXZ
bll
=
eKing.SzdfLib.Business.HRZZ.UTB_SZDF_HRZZ_TXZ.instance;
eKing.SzdfLib.Entity.HRZZ.UTB_SZDF_HRZZ_TXZ
entity
=
new eKing.SzdfLib.Entity.HRZZ.UTB_SZDF_HRZZ_TXZ();
IWhereDriver iwhere = entity;
ISaveDriver isave = entity;
// 过滤删除的数据 //
iwhere.WhereAddBoolean(entity._IsDelete, false);
iwhere.WhereAddLong(entity._User_Item_Id, userItemId);
Enums.HrzzStatus.EmHrzzStatus em = Enums.HrzzStatus.EmHrzzStatus.历史;
// 更新成为 历史 //
isave.AddISaveItem
(
entity._EmHrzzStatusV,
(int)em
);
theResult = bll.Update(entity, xdbHelper);
if (bIsCreate)
xdbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
xdbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
xdbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// UTB_SZDF_HRZZ_TXZ - 通行证 -- 更新EmHrzzStatusV为当前
/// </summary>
/// <param name="userItemId">用户ID</param>
/// <param name="xdbHelper">数据库链接串</param>
/// <returns>被更新的记录的ID</returns>
protected long HrzzTxzSetEmHrzzStatusV2Cur
(
long userItemId,
DBHelper xdbHelper
)
{
if (userItemId == 0)
return 0;
long theResult = 0;
bool bIsCreate = true;
if (xdbHelper == null)
{
xdbHelper
=
SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = xdbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
xdbHelper.OpenDBHelper();
eKing.SzdfLib.Business.HRZZ.UTB_SZDF_HRZZ_TXZ
bll
=
eKing.SzdfLib.Business.HRZZ.UTB_SZDF_HRZZ_TXZ.instance;
eKing.SzdfLib.Entity.HRZZ.UTB_SZDF_HRZZ_TXZ
entity
=
new eKing.SzdfLib.Entity.HRZZ.UTB_SZDF_HRZZ_TXZ();
IOrderByDriver iorder = entity;
IQueryDriver iq = entity;
IWhereDriver iwhere = entity;
ISaveDriver isave = entity;
// 过滤删除的数据 //
iwhere.WhereAddBoolean(entity._IsDelete, false);
iwhere.WhereAddLong(entity._User_Item_Id, userItemId);
iwhere.WhereAddNull(entity._End_Date);
// 到期时间倒序 //
// iorder.AddOrderBy(entity._End_Date, SlowX.Core.Enums.OrderBy.EmOrderBy.DESC);
iorder.AddOrderBy(entity._CreateTime, SlowX.Core.Enums.OrderBy.EmOrderBy.DESC);
iorder.AddOrderBy(entity._ID, SlowX.Core.Enums.OrderBy.EmOrderBy.DESC);
// 因为字段为null的排序在多个数据库环境中不同,现在End_Date为null的 //
eKing.SzdfLib.Model.HRZZ.UTB_SZDF_HRZZ_TXZ model
=
bll.GetBaseModel(entity, xdbHelper)
as
eKing.SzdfLib.Model.HRZZ.UTB_SZDF_HRZZ_TXZ;
if (model == null)
{
// 没有找到End_date为null的数据 //
iq.ClearAllIQueryItem();
iorder.ClearAllIOrderByItem();
// 过滤删除的数据 //
iwhere.WhereAddBoolean(entity._IsDelete, false);
iwhere.WhereAddLong(entity._User_Item_Id, userItemId);
iwhere.WhereAddNotNull(entity._End_Date);
// 到期时间倒序 //
iorder.AddOrderBy(entity._End_Date, SlowX.Core.Enums.OrderBy.EmOrderBy.DESC);
iorder.AddOrderBy(entity._CreateTime, SlowX.Core.Enums.OrderBy.EmOrderBy.DESC);
iorder.AddOrderBy(entity._ID, SlowX.Core.Enums.OrderBy.EmOrderBy.DESC);
model
=
bll.GetBaseModel(entity, xdbHelper)
as
eKing.SzdfLib.Model.HRZZ.UTB_SZDF_HRZZ_TXZ;
}
if (model == null)
{
if (bIsCreate)
xdbHelper.EndDBHelper();
return 0;
}
isave.ClearAllISaveItem();
iq.ClearAllIQueryItem();
isave.AddISaveItem
(
entity._EmHrzzStatusV,
Enums.HrzzStatus.EmHrzzStatus.最新
);
iwhere.WhereAddLong(entity._ID, model.ID);
bll.Update(entity, xdbHelper);
if (bIsCreate)
xdbHelper.EndDBHelper();
theResult = model.ID;
}
catch (Exception err)
{
if (bIsCreate)
xdbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
xdbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// UTB_SZDF_HRZZ_TXZ - 通行证 -- 更新EmHrzzStatusV为历史,并找出第一条更新为当前
/// </summary>
/// <param name="userItemId">用户ID</param>
/// <param name="xdbHelper">数据库链接串</param>
/// <returns>被更新的记录的ID</returns>
public long HrzzTxzUpdateEmHrzzStatusV
(
long userItemId,
DBHelper xdbHelper
)
{
if (userItemId == 0)
return 0;
long theResult = 0;
bool bIsCreate = true;
if (xdbHelper == null)
{
xdbHelper
=
SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = xdbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
xdbHelper.OpenDBHelper();
int iCount = HrzzTxzUpdateEmHrzzStatusV2His(userItemId, xdbHelper);
if(iCount == 0)
{
// 没有需要更新的数据 //
if (bIsCreate)
xdbHelper.EndDBHelper();
return 0;
}
theResult = HrzzTxzSetEmHrzzStatusV2Cur(userItemId, xdbHelper);
if (bIsCreate)
xdbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
xdbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
xdbHelper.FinallyDBHelper();
}
return theResult;
}
}
}