/// <summary> /// 获取现货对应委托单的资金冻结对象 /// </summary> /// <param name="entrustNumber">委托单号</param> /// <param name="ft">冻结类型</param> /// <returns>委托单的资金冻结实体</returns> public static HK_CapitalAccountFreezeInfo GetCapitalAccountFreeze(string entrustNumber, Types.FreezeType ft) { HK_CapitalAccountFreezeDal dal = new HK_CapitalAccountFreezeDal(); string format = "EntrustNumber='{0}' AND FreezeTypeLogo={1}"; string where = string.Format(format, entrustNumber, (int)ft); IList <HK_CapitalAccountFreezeInfo> list = null; try { list = dal.GetListArray(where); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); } if (list == null) { return(null); } if (list.Count == 0) { return(null); } return(list[0]); }
private int PO_BuildCapitalFreezeRecord(decimal predealCapital, decimal predealCost, Types.TransactionDirection buySellType, ReckoningTransaction tm) { HK_CapitalAccountFreezeInfo caft = new HK_CapitalAccountFreezeInfo(); caft.EntrustNumber = EntrustNumber; //委托单号 //卖不产生冻结金额,只有费用 if (buySellType == Types.TransactionDirection.Buying) { caft.FreezeCapitalAmount = predealCapital; //冻结 预成交金额 } caft.FreezeCost = predealCost; //冻结 预成交费用 caft.FreezeTime = DateTime.Now; //冻结时间 caft.ThawTime = DateTime.Now; //解冻时间 caft.FreezeTypeLogo = (int)Entity.Contants.Types.FreezeType.DelegateFreeze; //冻结类型 caft.OweCosting = 0; caft.CapitalAccountLogo = CapitalAccountId; string format = "港股资金冻结处理HKBuyOrderLogicFlow.PO_BuildCapitalFreezeRecord[委托单号={0},冻结时间={1},解冻时间={2},冻结类型={3},预成交金额={4},预成交费用={5},资金账户ID={6}]"; string desc = string.Format(format, caft.EntrustNumber, caft.FreezeTime, caft.ThawTime, caft.FreezeTypeLogo, caft.FreezeCapitalAmount, caft.FreezeCost, CapitalAccountId); LogHelper.WriteDebug(desc); HK_CapitalAccountFreezeDal dal = new HK_CapitalAccountFreezeDal(); return(dal.Add(caft, tm.Database, tm.Transaction)); }
private void DoCapitalFreezeCheck() { HK_CapitalAccountFreezeDal dal = new HK_CapitalAccountFreezeDal(); var list = dal.GetAllFreezeMoney(); foreach (var freezeSum in list) { //InternalDoCheck(freezeSum); smartPool.QueueWorkItem(InternalDoCheck, freezeSum); } }
/// <summary> /// 插入一条空的资金冻结记录 /// </summary> /// <param name="capitalAccountId"></param> /// <param name="entrustNumber"></param> /// <returns></returns> public static int InsertNullCapitalFreeze(int capitalAccountId, string entrustNumber) { HK_CapitalAccountFreezeInfo caf = new HK_CapitalAccountFreezeInfo(); caf.CapitalAccountLogo = capitalAccountId; caf.EntrustNumber = entrustNumber; caf.FreezeTypeLogo = (int)Types.FreezeType.DelegateFreeze; caf.FreezeTime = DateTime.Now; caf.FreezeCapitalAmount = 0; caf.FreezeCost = 0; HK_CapitalAccountFreezeDal dal = new HK_CapitalAccountFreezeDal(); return(dal.Add(caf)); }
/// <summary> /// 删除持仓冻结记录 /// </summary> /// <param name="persistCapitalFreezeId">持仓冻结记录id</param> /// <returns>是否成功 </returns> public static bool DeleteCapitalFreeze(int persistCapitalFreezeId) { if (persistCapitalFreezeId != -1) { try { HK_CapitalAccountFreezeDal caDal = new HK_CapitalAccountFreezeDal(); caDal.Delete(persistCapitalFreezeId); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); return(false); } } return(true); }
/// <summary> /// 清除资金冻结 /// </summary> /// <param name="persistCapitalFreezeId"></param> /// <param name="db"></param> /// <param name="transaction"></param> /// <returns></returns> public static bool ClearCapitalFreeze(int persistCapitalFreezeId, Database db, DbTransaction transaction) { if (persistCapitalFreezeId != -1) { try { HK_CapitalAccountFreezeDal caDal = new HK_CapitalAccountFreezeDal(); caDal.Clear(persistCapitalFreezeId, db, transaction); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); return(false); } } return(true); }
/// <summary> /// 删除持仓冻结记录 /// </summary> /// <param name="persistCapitalFreezeId">持仓冻结记录id</param> /// <param name="db">数据库对象</param> /// <param name="transaction">事务对象</param> /// <returns>是否成功</returns> public static bool DeleteCapitalFreeze(int persistCapitalFreezeId, Database db, DbTransaction transaction) { if (persistCapitalFreezeId != -1) { try { HK_CapitalAccountFreezeDal caDal = new HK_CapitalAccountFreezeDal(); ReckoningTransaction tm = new ReckoningTransaction(); tm.Database = db; tm.Transaction = transaction; caDal.Delete(persistCapitalFreezeId, tm); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); return(false); } } return(true); }