| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 新建订单(全,含秒杀) |
| | | /// </summary> |
| | | /// <param name="orderBasic">订单基础信息</param> |
| | | /// <param name="orderExtend">订单扩展信息</param> |
| | | /// <param name="tradingSingle">交易单</param> |
| | | /// <param name="acceptWayByOrder">订单收货方式</param> |
| | | /// <param name="payRequest">支付请求(可空)</param> |
| | | /// <param name="commission">订单受理佣金(传入值大于0时最后会调用受理订单进行受理)</param> |
| | | /// <param name="seckillId">秒杀业务编号(传入值大于0时会减少秒杀数量1)</param> |
| | | /// <param name="orderPrintParameter">订单印刷参数(选填)</param> |
| | | /// <returns></returns> |
| | | public bool NewOrdersheji(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, Pay_Request payRequest = null, double commission = 0, int seckillId = 0, EC_OrderPrintParameter orderPrintParameter = null) |
| | | { |
| | | return _iEC_OrderDAL.NewOrdersheji(orderBasic, orderExtend, tradingSingle, acceptWayByOrder, payRequest, commission, seckillId, orderPrintParameter); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 新建订单(全,含秒杀)批量 |
| | | /// </summary> |
| | | /// <param name="orderBasic">订单基础信息</param> |
| | |
| | | bool NewOrder(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, Pay_Request payRequest = null, double commission = 0, int seckillId = 0, EC_OrderPrintParameter orderPrintParameter = null); |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 新建订单(全,含秒杀) |
| | | /// </summary> |
| | | /// <param name="orderBasic">订单基础信息</param> |
| | | /// <param name="orderExtend">订单扩展信息</param> |
| | | /// <param name="tradingSingle">交易单</param> |
| | | /// <param name="acceptWayByOrder">订单收货方式</param> |
| | | /// <param name="payRequest">支付请求(可空)</param> |
| | | /// <param name="commission">订单受理佣金(传入值大于0时会调用受理订单进行受理)</param> |
| | | /// <param name="seckillId">秒杀业务编号(传入值大于0时会减少秒杀数量1)</param> |
| | | /// <param name="orderPrintParameter">印刷参数对象(秒杀订单不传入)</param> |
| | | /// <returns></returns> |
| | | bool NewOrdersheji(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, Pay_Request payRequest = null, double commission = 0, int seckillId = 0, EC_OrderPrintParameter orderPrintParameter = null); |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 新建订单(全,含秒杀)批量 |
| | | /// </summary> |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 新增 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public bool InserModelsheji(Infrastructure.Domain.IAggregateRoot model) |
| | | { |
| | | Model.EC_OrderBasic trueModel = model as Model.EC_OrderBasic; |
| | | if (trueModel == null) |
| | | { |
| | | return false; |
| | | } |
| | | SqlParameter unitPricePar = null; |
| | | if (trueModel.UnitPrice.HasValue) |
| | | { |
| | | unitPricePar = new SqlParameter("@UnitPrice", trueModel.UnitPrice); |
| | | } |
| | | else |
| | | { |
| | | unitPricePar = new SqlParameter("@UnitPrice", DBNull.Value); |
| | | } |
| | | SqlParameter DeliveryTime = null; |
| | | if (trueModel.DeliveryTime.HasValue) |
| | | { |
| | | DeliveryTime = new SqlParameter("@DeliveryTime", trueModel.DeliveryTime); |
| | | } |
| | | else |
| | | { |
| | | DeliveryTime = new SqlParameter("@DeliveryTime", DBNull.Value); |
| | | } |
| | | IList<SqlParameter> sqlParms = new List<SqlParameter>() |
| | | { |
| | | new SqlParameter(){ ParameterName ="@Keyid", SqlDbType=System.Data.SqlDbType.Int, DbType=System.Data.DbType.Int32, Direction=ParameterDirection.Output}, |
| | | new SqlParameter(){ ParameterName="@SellerOrderId",SqlDbType=System.Data.SqlDbType.VarChar,Size=25,DbType=System.Data.DbType.String, Direction=ParameterDirection.Output}, |
| | | new SqlParameter("@OrderTypeId",trueModel.OrderTypeId), |
| | | new SqlParameter("@PrintTypeId",trueModel.PrintTypeId), |
| | | new SqlParameter("@DocumentName",trueModel.DocumentName), |
| | | DeliveryTime,//new SqlParameter("@DeliveryTime",trueModel.DeliveryTime), |
| | | new SqlParameter("@SellerId",trueModel.SellerId), |
| | | new SqlParameter("@BuyerId",trueModel.BuyerId), |
| | | new SqlParameter("@SellerName",trueModel.SellerName){SqlDbType=SqlDbType.VarChar,Size=200}, |
| | | new SqlParameter("@BuyerName",trueModel.BuyerName){SqlDbType=SqlDbType.VarChar,Size=200}, |
| | | unitPricePar, |
| | | new SqlParameter("@SumPrice",trueModel.SumPrice), |
| | | new SqlParameter("@Creater",trueModel.Creater), |
| | | new SqlParameter("@Operator",trueModel.Operator), |
| | | new SqlParameter("@Remark",trueModel.Remark??"") , |
| | | new SqlParameter("@OutId",(trueModel.OutId==null ? "0":trueModel.OutId.ToString())) |
| | | }; |
| | | try |
| | | { |
| | | _dataBase.Query("sp_EC_OrderBasic_Insertsheji", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>()); |
| | | trueModel.Keyid = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[0].Value); |
| | | trueModel.SellerOrderId = CY.Infrastructure.Common.MyConvert.ConvertToString(sqlParms[1].Value); |
| | | return trueModel.Keyid.HasValue; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 修改 |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | /// <param name="BuyerId">卖家ID</param> |
| | | /// <returns></returns> |
| | | public IList<EC_OrderBasic> GetOrderById(Guid BuyerId, int PayState) |
| | | public IList<EC_OrderBasic> GetOrderById(Guid BuyerId, int PayState, Guid SellerId) |
| | | { |
| | | IList<EC_OrderBasic> result = new List<EC_OrderBasic>(); |
| | | |
| | | result = _dataBase.SelectModel<EC_OrderBasic>(" * ", "EC_OrderBasic ", string.Format(" BuyerId = '{0}' and PayState!={1}", BuyerId,PayState)); |
| | | result = _dataBase.SelectModel<EC_OrderBasic>(" * ", "EC_OrderBasic ", string.Format(" BuyerId = '{0}' and PayState!={1} and SellerId = '{2}'", BuyerId,PayState, SellerId)); |
| | | return result; |
| | | } |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 新建订单(全,含秒杀) |
| | | /// </summary> |
| | | /// <param name="orderBasic">订单基础信息</param> |
| | | /// <param name="orderExtend">订单扩展信息</param> |
| | | /// <param name="tradingSingle">交易单</param> |
| | | /// <param name="acceptWayByOrder">订单收货方式</param> |
| | | /// <param name="payRequest">支付请求(可空)</param> |
| | | /// <param name="commission">订单受理佣金(传入值大于0时会调用受理订单进行受理)</param> |
| | | /// <param name="seckillId">秒杀业务编号(传入值大于0时会减少秒杀数量1)</param> |
| | | /// <param name="orderPrintParameter">印刷参数对象(秒杀订单不传入)</param> |
| | | /// <returns></returns> |
| | | public bool NewOrdersheji(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, Pay_Request payRequest = null, double commission = 0, int seckillId = 0, EC_OrderPrintParameter orderPrintParameter = null) |
| | | { |
| | | try |
| | | { |
| | | _eC_OrderExtendDAL = new EC_OrderExtendDAL(_dataBase); |
| | | _pay_TradingSingleDAL = new Pay_TradingSingleDAL(_dataBase); |
| | | _eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase); |
| | | _eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase); |
| | | _eC_MemberBasicDAL = new EC_MemberBasicDAL(_dataBase); |
| | | _oA_CorporateClientsDAL = new OA_CorporateClientsDAL(_dataBase); |
| | | using (System.Transactions.TransactionScope tran = new System.Transactions.TransactionScope()) |
| | | { |
| | | bool isWin = false; |
| | | isWin = _eC_OrderBasicDAL.InserModelsheji(orderBasic); |
| | | if (!isWin) |
| | | { |
| | | return false; |
| | | } |
| | | acceptWayByOrder.TargetId = tradingSingle.OrderId = orderExtend.Keyid = orderBasic.Keyid;//获取返回的订单唯一编号 |
| | | isWin = _eC_OrderExtendDAL.InserModel(orderExtend); |
| | | if (!isWin) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | isWin = _eC_AcceptWayByOrderDAL.InserModel(acceptWayByOrder); |
| | | if (!isWin) |
| | | { |
| | | return false; |
| | | } |
| | | isWin = _pay_TradingSingleDAL.InserModel(tradingSingle); |
| | | if (!isWin) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | //增加下单操作记录 |
| | | isWin = _eC_OrderOperateDAL.InserModel(new EC_OrderOperate() |
| | | { |
| | | OperateType = 1, |
| | | Operator = orderBasic.Operator, |
| | | OrderId = orderBasic.Keyid, |
| | | Remark = string.Empty |
| | | }); |
| | | if (!isWin) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | if (null != payRequest)//有支付请求则调用支付订单方法 |
| | | { |
| | | //传入的payRequest.Subject必须为格式化器 格式例如:{0},{1},{2} |
| | | //0:Keyid,1:SellerOrderId,2:DocumentName |
| | | payRequest.Subject = string.Format(payRequest.Subject, orderBasic.Keyid, orderBasic.SellerOrderId, orderBasic.DocumentName); |
| | | isWin = _eC_OrderBasicDAL.PayOrder(orderBasic.Keyid.Value, payRequest, commission, 0); |
| | | } |
| | | |
| | | if (0 < seckillId) |
| | | { |
| | | _eC_SeckillBusinessDAL = new EC_SeckillBusinessDAL(_dataBase); |
| | | //若有秒杀业务编号则扣除其秒杀数量1 |
| | | isWin = _eC_SeckillBusinessDAL.DecreaseSeckillNum(seckillId, 1, orderBasic.BuyerId); |
| | | } |
| | | if (!isWin) |
| | | { |
| | | return false; |
| | | } |
| | | if (null != orderPrintParameter) |
| | | { |
| | | _eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase); |
| | | orderPrintParameter.OrderId = orderBasic.Keyid.Value; |
| | | isWin = _eC_OrderPrintParameterDAL.InserModel(orderPrintParameter); |
| | | } |
| | | |
| | | if (!isWin) |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | tran.Complete(); |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 新建订单(全,含秒杀)批量 |
| | | /// </summary> |
| | |
| | | { |
| | | item.LessOrderMoneyProperty = item.Contractmoney-item.OrderMoney; |
| | | |
| | | item.NoOverOderCount = bll_eC_OrderBasicDAL.GetOrderById(item.Keyid, -1).Count; |
| | | item.NoOverOderCount = bll_eC_OrderBasicDAL.GetOrderById(item.Keyid, -1, CurrentUser.MemberId).Count; |
| | | Database DC = new Database(); |
| | | try |
| | | { |
| | |
| | | return null;//买家不能是卖家 |
| | | |
| | | EC_OrderBLL eC_OrderBLL = new EC_OrderBLL();//实例化订单业务操作对象 |
| | | bool isWin = eC_OrderBLL.NewOrder(orderBasic, orderBasic.OrderExtend, orderBasic.TradingSingle, eC_AcceptWayByOrder, pay_Request, commission.Value, seckillId, orderPrintParameter); |
| | | bool isWin = eC_OrderBLL.NewOrdersheji(orderBasic, orderBasic.OrderExtend, orderBasic.TradingSingle, eC_AcceptWayByOrder, pay_Request, commission.Value, seckillId, orderPrintParameter); |
| | | return isWin ? orderBasic : null; |
| | | |
| | | } |