Ejemplo n.º 1
0
 /// <summary>
 /// 取消交易校验
 /// </summary>
 private void ValidateCancel(TblCashOrderTrade entity)
 {
     if (entity == null || entity.TradeStatus != (int)TradeStatus.Trading)
     {
         throw new BussinessException(ModelType.Cash, 9);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 作废交易校验
 /// </summary>
 private void ValidateInvalid(TblCashOrderTrade entity)
 {
     if (entity == null || entity.TradeStatus != (int)TradeStatus.Complete)
     {
         throw new BussinessException(ModelType.Cash, 9);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新取消交易状态
        /// </summary>
        protected void UpdateTradeCancel()
        {
            TblCashOrderTrade entity = this.CurrentOrderTrade;

            this.ValidateCancel(entity);
            entity.TradeStatus = (int)TradeStatus.Cancel;
            entity.Remark      = _tradeInfo.Remark;
            _tradeRepository.Value.Update(entity);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 添加一笔进入交易完成的数据
        /// caiyakang 2018-10-06
        /// </summary>
        /// <param name="cancel">是否是订单取消</param>
        protected void AddTradeComplete()
        {
            TradeInfo         tradeInfo = this._tradeInfo;
            TblCashOrderTrade entity    = GetTblCashOrderTrade(tradeInfo);

            entity.TradeType          = (int)_orderTrade.TradeType;
            entity.TradeAmount        = tradeInfo.TradeAmount;
            entity.TradeBalanceAmount = tradeInfo.TradeBalanceAmount;
            entity.TradeStatus        = (int)TradeStatus.Complete;
            entity.Remark             = tradeInfo.Remark;
            _tradeRepository.Value.Add(entity);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 更新交易中的数据
        /// </summary>
        internal void UpdateNewTradingInfo()
        {
            TradeInfo         tradeInfo = this._tradeInfo;
            TblCashOrderTrade entity    = _tradeRepository.Value.GetByOrderId(tradeInfo.SchoolId, tradeInfo.OrderId, tradeInfo.OrderNo);

            //只有交易中的数据才允许更改
            if (entity.TradeStatus == (int)TradeStatus.Trading)
            {
                entity.TradeAmount = tradeInfo.TradeAmount;
                _tradeRepository.Value.Update(entity);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 添加一条作废交易的交易单
        /// caiyakang 2018-11-23
        /// </summary>
        protected void AddTradeInvalid()
        {
            this.ValidateInvalid(this.CurrentOrderTrade);
            TradeInfo         tradeInfo = this._tradeInfo;
            TblCashOrderTrade entity    = this.GetTblCashOrderTrade(tradeInfo);

            entity.TradeType          = (int)GetCancelTradeType(_orderTrade.TradeType);
            entity.TradeAmount        = -tradeInfo.TradeAmount;
            entity.TradeBalanceAmount = -tradeInfo.TradeBalanceAmount;
            entity.TradeStatus        = (int)TradeStatus.Complete;
            entity.Remark             = tradeInfo.Remark;
            entity.CreateTime         = DateTime.Now;
            _tradeRepository.Value.Add(entity);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 统一获取相同的交易单信息
        /// </summary>
        /// <param name="tradeInfo"></param>
        /// <returns></returns>
        private TblCashOrderTrade GetTblCashOrderTrade(TradeInfo tradeInfo)
        {
            TblCashOrderTrade entity = new TblCashOrderTrade();

            entity.OrderTradeId  = IdGenerator.NextId();
            entity.SchoolId      = tradeInfo.SchoolId;
            entity.OrderId       = tradeInfo.OrderId;
            entity.OrderNo       = tradeInfo.OrderNo;
            entity.PayType       = (int)tradeInfo.PayType;
            entity.TotalDiscount = tradeInfo.TotalDiscount;
            entity.Buyer         = tradeInfo.Buyer;
            entity.Seller        = tradeInfo.Seller;
            entity.Remark        = tradeInfo.Remark;
            entity.CreateTime    = DateTime.Now;
            return(entity);
        }
        /// <summary>
        /// 更新交易完成状态
        /// </summary>
        internal void TradeComplete()
        {
            TradeInfo         tradeInfo = base._tradeInfo;
            TblCashOrderTrade entity    = _tradeRepository.Value.GetByOrderId(tradeInfo.SchoolId, tradeInfo.OrderId, tradeInfo.OrderNo);

            if (entity.TradeStatus == (int)TradeStatus.Trading)
            {
                entity.TradeStatus = (int)TradeStatus.Complete;
                entity.Remark      = _tradeInfo.Remark;
            }
            //1、操作交易完成
            _tradeRepository.Value.Update(entity);

            //2、操作余额冻结完成
            WalletService service = new WalletService(tradeInfo.SchoolId, Convert.ToInt64(tradeInfo.Buyer), base._unitOfWork);

            service.TradeFrozeComplete(_orderTrade.TradeType, tradeInfo.OrderId);
        }