SZDF:录入保存后更新第一条记录的EmHrzzStatus为最新,其他为历史

2017-06-28 09:12:39  访问(1673) 赞(0) 踩(0)


  • 两个地方
    1、Management\Areas\ZnbmHrzz\Controllers\HRZZ\HrzzTxz\HrzzTxzController__partial.cs  
    (扩展保存和删除的逻辑方法)

    2、ZNBM\eKing.SzdfLib\Helpers\BLLs\HRZZ\UTB_SZDF_HRZZ_TXZ__P.cs
    (逻辑的执行方法)

  • 
    // Management\Areas\ZnbmHrzz\Controllers\HRZZ\HrzzTxz\HrzzTxzController__partial.cs
    
            #region 删除记录(重写) - BaseDeleteDataOper
    
            /// <summary>
            /// 删除记录(重写) - BaseDeleteDataOper
            /// </summary>
            /// <param name="xdbHelper"></param>
            /// <returns></returns>
            protected override OperResult BaseDeleteDataOper(DBHelper xdbHelper)
            {
    
                // 通过http获得参数 //
                HttpContextName hcn = HttpContextName.instance;
    
                // 获得关键字ID的值 //
                string strId = Request.Form[hcn._id];
    
                // 没有获得关键字的值 //
                if (strId == null)
                {
                    return OperResult.ToError("没有获得参数id");
                }
    
    
                // 逻辑方法 //
                eKing.SzdfPage.Helpers.eKingSzdfPageHelper
                    wh
                    =
                    eKing.SzdfPage.Helpers.eKingSzdfPageHelper.ekInstance;
    
                long pkId = wh.LongByStr(strId, 0);
    
                if (pkId == 0)
                {
                    return OperResult.ToError("没有获得参数id");
                }
    
                bool bIsCreate = true;
    
                if (xdbHelper == null)
                {
                    xdbHelper
                        =
                        SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
                }
                else
                {
                    // 没有打开链接 //
                    bIsCreate = xdbHelper.IsNotOpen();
                }
    
                try
                {
                    if (bIsCreate)
                        xdbHelper.OpenDBHelper();
    
                    wh.HrzzTxzDeleteItem(pkId, xdbHelper);
    
                    if (bIsCreate)
                        xdbHelper.EndDBHelper();
    
                }
                catch (Exception err)
                {
                    if (bIsCreate)
                        xdbHelper.TranDBHelper();
    
                    throw err;
                }
                finally
                {
                    if (bIsCreate)
                        xdbHelper.FinallyDBHelper();
                }
    
                return OperResult.DelSucc();
            }
    
            #endregion 删除记录(重写) - BaseDeleteDataOper
    
    
  • 
    // Management\Areas\ZnbmHrzz\Controllers\HRZZ\HrzzTxz\HrzzTxzController__partial.cs
    
            #region 删除选中的(重写) - BaseDeleteSelectedOper
    
            /// <summary>
            /// 删除选中的(重写)
            /// </summary>
            /// <param name="xdbHelper"></param>
            /// <returns></returns>
            protected override OperResult BaseDeleteSelectedOper(DBHelper xdbHelper)
            {
                // 获得页面的属性 //
                eKing.EkPageCreate.WebCtrls.EkxTable eKt = EkxTableGet();
    
                // 逻辑方法 //
                eKing.SzdfPage.Helpers.eKingSzdfPageHelper
                    wh
                    =
                    eKing.SzdfPage.Helpers.eKingSzdfPageHelper.ekInstance;
    
                // 获得关键字的拼串 //
                List<string> pkList
                    =
                    wh.ToPkList4Oper(Request, eKt.PkId);
    
                if (pkList == null || pkList.Count == 0)
                {
                    return OperResult.ToError("没有获得关键字");
                }
    
                bool bIsCreate = true;
    
                if (xdbHelper == null)
                {
                    xdbHelper
                        =
                        SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
                }
                else
                {
                    // 没有打开链接 //
                    bIsCreate = xdbHelper.IsNotOpen();
                }
    
                try
                {
                    if (bIsCreate)
                        xdbHelper.OpenDBHelper();
    
                    long pkId = 0;
                    foreach(string s in pkList)
                    {
                        pkId = wh.LongByStr(s, 0);
    
                        if (pkId == 0)
                            continue;
    
                        wh.HrzzTxzDeleteItem(pkId, xdbHelper);
                    }
    
                    if (bIsCreate)
                        xdbHelper.EndDBHelper();
    
                }
                catch (Exception err)
                {
                    if (bIsCreate)
                        xdbHelper.TranDBHelper();
    
                    throw err;
                }
                finally
                {
                    if (bIsCreate)
                        xdbHelper.FinallyDBHelper();
                }
    
                return OperResult.DelSucc();
            }
    
            #endregion 删除选中的(重写) - BaseDeleteSelectedOper
    
    
  • 
    // Management\Areas\ZnbmHrzz\Controllers\HRZZ\HrzzTxz\HrzzTxzController__partial.cs
    
    
            #region 录入保存后的操作(主要是更新EmHrzzStatusV字段)
    
            /// <summary>
            /// 录入保存后的操作(主要是更新EmHrzzStatusV字段)
            /// </summary>
            /// <param name="bllMain"></param>
            /// <param name="entityMain"></param>
            /// <param name="dp"></param>
            /// <param name="xdbHelper"></param>
            public override void DetailSaveOperAfterDB
                (
                    BaseBusiness bllMain,
                    BaseEntity entityMain,
                    DetailSaveOperDBParams dp,
                    DBHelper xdbHelper
                )
            {
                base.DetailSaveOperAfterDB(bllMain, entityMain, dp, xdbHelper);
    
    
                // 逻辑方法 //
                eKing.SzdfPage.Helpers.eKingSzdfPageHelper
                        wh
                        =
                        eKing.SzdfPage.Helpers.eKingSzdfPageHelper.ekInstance;
    
                // 获得页面的属性 //
                eKing.SzdfPage.Areas.ZnbmHrzz.HRZZ.HrzzTxz.EkSzdfPage eKp
                    =
                    eKing.SzdfPage.Areas.ZnbmHrzz.HRZZ.HrzzTxz.EkSzdfPage.instance;
    
                //这里指定录入页面(同理可以指定其他页面)
                eKing.SzdfPage.Areas.ZnbmHrzz.HRZZ.HrzzTxz.EkSzdfDetailForm
                    df
                    =
                    eKp.DetailForm;
    
                // 获得用户ID //
                long userItemId = df._User_Item_Id.GetHttpContextLongValue();
    
                if (userItemId != 0)
                {
                    // 更新为当前 //
                    wh.HrzzTxzUpdateEmHrzzStatusV(userItemId, xdbHelper);
                }
            }
    
            #endregion 录入保存后的操作(主要是更新EmHrzzStatusV字段)
    
    
    
  • 
    // 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;
            }
    
    
        }
    }
    
    
    
    

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)