/** * EC_OrderBasicDAL.cs * * 功 能: 订单基本信息数据访问接口实现类 * 类 名: EC_OrderBasicDAL * * Ver 变更日期 负责人 变更内容 * ─────────────────────────────────── * V0.01 2013-4-23 10:09 吴崎均 更改InsertModel以及UpdateModel以与存储相匹配 * V0.02 2013-4-23 14:43 吴崎均 增加初始化构造 * V0.03 2013-4-23 18:01 吴崎均 增加更新订单状态方法 * V0.04 2013-4-24 11:26 吴崎均 增加方法:更新订单支付金额、更新订单支付状态,修改UpdateModel使之与存储对应(修改时不可修改ShowCode、SellerOrderId) * V0.05 2013-5-3 17:32 吴崎均 增加分页方法(调用订单专用分页存储) * V0.06 2013-5-10 16:33 吴崎均 增加方法:发起订单属性改变请求、执行订单属性改变请求 * V0.07 2013-5-11 13:21 吴崎均 增加方法:根据接手人查询属性变更请求集合 * V0.08 2013-5-11 14:13 吴崎均 增加方法:答复订单属性改变请求 * V0.09 2013-5-14 11:35 吴崎均 增加方法:根据卖家编号加载下一订单编号方法 * V0.10 2013-5-15 15:19 吴崎均 增加方法:根据编号获取订单信息 * V0.11 2013-5-17 11:07 吴崎均 增加方法:送货(含送货订单操作) * V0.12 2013-5-20 9:47 吴崎均 增加方法:根据订单编号获取收货地址信息、获取订单操作 * V0.13 2013-5-21 9:30 吴崎均 修改方法:修改获取订单操作方法实现方式为调用存储 * V0.14 2013-5-29 14:33 吴崎均 增加方法:ReceiveMoneyToAccount(帐户收款)bug修正:UpdateOrderStateUnit 调用增加订单操作时未接收结果 * V0.15 2013-5-30 10:28 吴崎均 增加方法:预付款收/付款 * V0.16 2013-5-31 19:01 吴崎均 增加方法:根据订单编号确认收货 * * * */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using CY.IDAL; using System.Data.SqlClient; using System.Data; using CY.Model.Pay; using CY.Model; using CY.Infrastructure.Query; using System.Transactions; namespace CY.SQLDAL { /// /// 订单基本信息数据访问接口实现类 /// public class EC_OrderBasicDAL : IEC_OrderBasicDAL { EC_OrderOperateDAL _eC_OrderOperateDAL = null; EC_OrderExtendDAL _eC_OrderExtendDAL = null; Pay_TradingSingleDAL _pay_TradingSingleDAL = null; EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = null; EC_OrderPrintParameterDAL _eC_OrderPrintParameterDAL = null; EC_MemberBasicDAL _eC_MemberBasicDAL = null; OA_CorporateClientsDAL _oA_CorporateClientsDAL = null; EC_OrderDialogueDAL _EC_OrderDialogueDAL = null; private Database _dataBase = null; #region 常量 /// /// 查询目标 /// const string SELECTTARGET = " t.* "; /// /// 查询来源 /// const string FROMSOUCEBEFORE = " ( select ob.*,oe.DelayTime,oe.Productionprogress,oe.PrintPackDeliveryRequir,oe.PrintNum,oe.ExigencyCaseId,oe.SurplusPrintNum,ts.OnlineMoney,ts.LineMoney,ts.UsedCredit,ts.PayedMoney,pt.PrintName as PrintTypeName,otp.Name as OrderTypeName ,ost.Name as OrderStateName ,opt.Name as PayStateName,Parameter.[PrintParameter] as PrintParameter ,Staff.[Name] as BusinessManager" + " from EC_OrderBasic as ob Inner Join Pay_TradingSingle as ts On ob.Keyid = ts.OrderId " + " Inner Join EC_OrderExtend as oe On ob.Keyid=oe.Keyid " + " Left Join [OA_Staff] as Staff On(oe.[BusinessManagerId]=Staff.Keyid) " + " Left Join SysInquiry_PrintingType as pt On(ob.PrintTypeId=pt.Keyid) " + " Left Join Sys_Dictionary as otp On (otp.DicType='EC_订单类型' And otp.MeanValue = ob.OrderTypeId ) " + " Left Join Sys_Dictionary as ost On (ost.DicType='EC_订单状态' And ost.MeanValue = ob.OrderState ) " + " Left Join Sys_Dictionary as opt On (opt.DicType='EC_订单支付状态' And opt.MeanValue = ob.PayState ) " + " Left Join [EC_OrderPrintParameter] as Parameter On Parameter.[OrderId] = ob.[Keyid] " + " Left Join [OA_CorporateClients] as CorporateClients On CorporateClients.[Keyid] = ob.[BuyerId] " + " Left Join [OA_CustomerCommunications] as CustomerCommunications On CustomerCommunications.[Keyid] = ob.[BuyerId] " + " where 0=0 "; const string FROMSOUCEEND = ") as t "; /// /// 分页默认排序字段 /// const string ORDERBY = " [DeliveryTime] DESC "; #endregion /// /// 初始化构造 /// /// public EC_OrderBasicDAL(Database database) { _dataBase = database; } /// /// 默认构造 /// public EC_OrderBasicDAL() { _dataBase = new Database(); } #region 订单本表操作 /// /// 新增 /// /// /// public bool InserModel(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); } IList sqlParms = new List() { 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), 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_Insert", CommandType.StoredProcedure, sqlParms.ToArray()); 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; } } /// /// 修改 /// /// /// public bool UpdateModel(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); } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid), //new SqlParameter("@OrderTypeId",trueModel.OrderTypeId), new SqlParameter("@PrintTypeId",trueModel.PrintTypeId), new SqlParameter("@SellerId",trueModel.SellerId), new SqlParameter("@SellerName",trueModel.SellerName), new SqlParameter("@DocumentName",trueModel.DocumentName), new SqlParameter("@DeliveryTime",trueModel.DeliveryTime), unitPricePar, new SqlParameter("@SumPrice",trueModel.SumPrice), new SqlParameter("@PayState",trueModel.PayState), new SqlParameter("@Operator",trueModel.Operator), new SqlParameter("@Remark",trueModel.Remark) , new SqlParameter("@CompledState",trueModel.CompledState ?? false) , new SqlParameter("@CompledTime",trueModel.CompledTime ?? DateTime.Now) , new SqlParameter("@CompledOperator",trueModel.CompledOperator ?? "") , new SqlParameter("@CompledRemarks",trueModel.CompledRemarks ?? "") , new SqlParameter("@OutId",(trueModel.OutId==null ? "0":trueModel.OutId.ToString())) }; try { _dataBase.Query("sp_EC_OrderBasic_Update", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 删除 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { Model.EC_OrderBasic trueModel = model as Model.EC_OrderBasic; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid) }; try { _eC_OrderOperateDAL = null == _eC_OrderOperateDAL ? new EC_OrderOperateDAL(_dataBase) : _eC_OrderOperateDAL; bool isWin = _eC_OrderOperateDAL.InserModel(new EC_OrderOperate() { OrderId = trueModel.Keyid, OperateType = 0, Remark = "终止订单", Operator = trueModel.Operator }); if (!isWin) return false; else ; _dataBase.Query("sp_EC_OrderBasic_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 删除外协订单 /// /// /// public bool DeleteOutOrder(int OrderId) { IList sqlParms = new List() { new SqlParameter("@Keyid",OrderId) }; try { _dataBase.Query("sp_EC_OrderBasic_DeleteOutOrder", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 分页查询 /// /// 查询对象 /// 分页对象 /// public IEnumerable SelectModelPage(Query query, Pagination pagination) { throw new Exception("方法未实现"); } /// /// 分页查询(根据联系人和结束状态) /// /// 分页对象 /// 查询参数 /// 查询结果 传入参数错误时结果为空 public IEnumerable SelectModelPage(Infrastructure.Query.Pagination pagination, Dictionary searchParam) { if (null == pagination) return null; else { } IList sqlParms = new List() { new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25}, new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50} }; /* * 拷贝参数 */ if (null != searchParam && 0 < searchParam.Count) { foreach (int index in searchParam.Keys) { if (0 > index || index >= sqlParms.Count) continue; else sqlParms[index].Value = searchParam[index]; } } else { } sqlParms.Add(new SqlParameter() { ParameterName = "@pageIndex", SqlDbType = SqlDbType.Int, Value = pagination.PageIndex }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageSize", SqlDbType = SqlDbType.Int, Value = pagination.PageSize }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); sqlParms.Add(new SqlParameter() { ParameterName = "@recordCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); IList result = null; //执行分页存储 using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Search", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } if (result != null && result.Count > 0) { foreach (EC_OrderBasic ob in result) { if (IsComplainant(ob.Keyid.Value)) { ob.IsComplainant = true; } } } /*获取页数与返回数据条数*/ int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[20].Value); pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0; resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[21].Value); pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0; return result; } /// /// 分页查询(根据联系人和结束状态)-订单收款去除已冻结订单 /// /// 分页对象 /// 查询参数 /// 查询结果 传入参数错误时结果为空 public IEnumerable SelectModelPage_Financial(Infrastructure.Query.Pagination pagination, Dictionary searchParam) { if (null == pagination) return null; else { } IList sqlParms = new List() { new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25}, new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50} }; /* * 拷贝参数 */ if (null != searchParam && 0 < searchParam.Count) { foreach (int index in searchParam.Keys) { if (0 > index || index >= sqlParms.Count) continue; else sqlParms[index].Value = searchParam[index]; } } else { } sqlParms.Add(new SqlParameter() { ParameterName = "@pageIndex", SqlDbType = SqlDbType.Int, Value = pagination.PageIndex }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageSize", SqlDbType = SqlDbType.Int, Value = pagination.PageSize }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); sqlParms.Add(new SqlParameter() { ParameterName = "@recordCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); IList result = null; //执行分页存储 using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Financial_Search", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } if (result != null && result.Count > 0) { foreach (EC_OrderBasic ob in result) { if (IsComplainant(ob.Keyid.Value)) { ob.IsComplainant = true; } } } /*获取页数与返回数据条数*/ int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[20].Value); pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0; resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[21].Value); pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0; return result; } /// /// 分页查询(根据联系人和结束状态)厂商订单,根据区域以及客户、业务经理查询 /// /// 分页对象 /// 查询参数 /// 查询结果 传入参数错误时结果为空 public IEnumerable SelectModelPage_Seller(Infrastructure.Query.Pagination pagination, Dictionary searchParam) { if (null == pagination) return null; else { } IList sqlParms = new List() { new SqlParameter("@buyerId1",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25}, new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@IsStaff",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@StaffMemberId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@StaffId",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@StaffName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@KaipiaoshenqingTimeStart",DBNull.Value){SqlDbType=SqlDbType.Date }, new SqlParameter("@KaipiaoshenqingTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date }, new SqlParameter("@Kaipiaoshenqing",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@Kehuqianshou",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@KaipiaoshenqingId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@DocumentName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, }; /* * 拷贝参数 */ if (null != searchParam && 0 < searchParam.Count) { foreach (int index in searchParam.Keys) { if (0 > index || index >= sqlParms.Count || string.IsNullOrEmpty(searchParam[index].ToString())) continue; else sqlParms[index].Value = searchParam[index]; } } else { } sqlParms.Add(new SqlParameter() { ParameterName = "@pageIndex", SqlDbType = SqlDbType.Int, Value = pagination.PageIndex }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageSize", SqlDbType = SqlDbType.Int, Value = pagination.PageSize }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); sqlParms.Add(new SqlParameter() { ParameterName = "@recordCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); IList result = null; //执行分页存储 using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Search_Seller", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } if (result != null && result.Count > 0) { foreach (EC_OrderBasic ob in result) { if (IsComplainant(ob.Keyid.Value)) { ob.IsComplainant = true; } } } /*获取页数与返回数据条数*/ int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[30].Value); pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0; resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[31].Value); pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0; return result; } /// /// 统计订单金额 /// /// 分页对象 /// 查询参数 /// 查询结果 传入参数错误时结果为空 public EC_OrderBasic SumOrderMoney_receive(Infrastructure.Query.Pagination pagination, Dictionary searchParam) { try { if (null == pagination) return null; else { } IList sqlParms = new List() { new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25}, new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50} }; /* * 拷贝参数 */ if (null != searchParam && 0 < searchParam.Count) { foreach (int index in searchParam.Keys) { if (0 > index || index >= sqlParms.Count) continue; else { if (searchParam[index].ToString() != null && searchParam[index].ToString() != "00000000-0000-0000-0000-000000000000") { sqlParms[index].Value = searchParam[index]; } } } } else { } sqlParms.Add(new SqlParameter() { ParameterName = "@pageIndex", SqlDbType = SqlDbType.Int, Value = pagination.PageIndex }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageSize", SqlDbType = SqlDbType.Int, Value = pagination.PageSize }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); sqlParms.Add(new SqlParameter() { ParameterName = "@recordCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); IList result = null; //执行分页存储 using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SumMoney_receive", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } if (result != null && result.Count > 0) { return result[0]; } else { return null; } } catch (Exception ex) { throw ex; } } /// /// 统计订单金额 /// /// 分页对象 /// 查询参数 /// 查询结果 传入参数错误时结果为空 public EC_OrderBasic SumOrderMoney(Infrastructure.Query.Pagination pagination, Dictionary searchParam) { try { if (null == pagination) return null; else { } IList sqlParms = new List() { new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25}, new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50} }; /* * 拷贝参数 */ if (null != searchParam && 0 < searchParam.Count) { foreach (int index in searchParam.Keys) { if (0 > index || index >= sqlParms.Count) continue; else { if (searchParam[index].ToString() != null && searchParam[index].ToString() != "00000000-0000-0000-0000-000000000000") { sqlParms[index].Value = searchParam[index]; } } } } else { } sqlParms.Add(new SqlParameter() { ParameterName = "@pageIndex", SqlDbType = SqlDbType.Int, Value = pagination.PageIndex }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageSize", SqlDbType = SqlDbType.Int, Value = pagination.PageSize }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); sqlParms.Add(new SqlParameter() { ParameterName = "@recordCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); IList result = null; //执行分页存储 using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SumMoney", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } if (result != null && result.Count > 0) { return result[0]; } else { return null; } } catch (Exception ex) { throw ex; } } /// /// 分页查询外协订单(根据联系人和结束状态) /// /// 分页对象 /// 查询参数 /// 查询结果 传入参数错误时结果为空 public IEnumerable SelectModelPage_Outsource(Infrastructure.Query.Pagination pagination, Dictionary searchParam) { if (null == pagination) return null; else { } IList sqlParms = new List() { new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25}, new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20} }; /* * 拷贝参数 */ if (null != searchParam && 0 < searchParam.Count) { foreach (int index in searchParam.Keys) { if (0 > index || index >= sqlParms.Count) continue; else { if (searchParam[index].ToString() != null && searchParam[index].ToString() != "00000000-0000-0000-0000-000000000000") { sqlParms[index].Value = searchParam[index]; } } } } else { } sqlParms.Add(new SqlParameter() { ParameterName = "@pageIndex", SqlDbType = SqlDbType.Int, Value = pagination.PageIndex }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageSize", SqlDbType = SqlDbType.Int, Value = pagination.PageSize }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); sqlParms.Add(new SqlParameter() { ParameterName = "@recordCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); IList result = null; //执行分页存储 using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Outsource_Search", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } if (result != null && result.Count > 0) { foreach (EC_OrderBasic ob in result) { if (IsComplainant(ob.Keyid.Value)) { ob.IsComplainant = true; } } } /*获取页数与返回数据条数*/ int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[19].Value); pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0; resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[20].Value); pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0; return result; } /// /// 判断是否投诉过 /// /// /// public bool IsComplainant(int orderId) { bool isComplainant = false; string selectTarget = " a.* "; string fromSouce = @" dbo.EC_OrderBasic a INNER JOIN Integrity_ComplainanInfo b ON a.Keyid=b.OrderId AND b.ComplaintsStatusId<>4"; string condition = " a.Keyid=" + orderId; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result != null && result.Count > 0) { isComplainant = true; } return isComplainant; } /// /// 生产安排分页查询 /// /// 分页对象 /// 查询参数 /// 查询结果 传入参数错误时结果为空 public IEnumerable SelectModelPageAg(Infrastructure.Query.Pagination pagination, Dictionary searchParam) { if (null == pagination) return null; else { } IList sqlParms = new List() { new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25}, new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int} }; /* * 拷贝参数 */ if (null != searchParam && 0 < searchParam.Count) { foreach (int index in searchParam.Keys) { if (0 > index || index >= sqlParms.Count) continue; else sqlParms[index].Value = searchParam[index]; } } else { } sqlParms.Add(new SqlParameter() { ParameterName = "@pageIndex", SqlDbType = SqlDbType.Int, Value = pagination.PageIndex }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageSize", SqlDbType = SqlDbType.Int, Value = pagination.PageSize }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); sqlParms.Add(new SqlParameter() { ParameterName = "@recordCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); IList result = null; //执行分页存储 using (IDataReader reader = _dataBase.QueryDataReader("sp_AgOrderProduction_Search", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } /*获取页数与返回数据条数*/ int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[16].Value); pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0; resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[17].Value); pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0; return result; } /// /// 封签分页查询 /// /// 分页对象 /// 查询参数 /// 查询结果 传入参数错误时结果为空 public IEnumerable SelectModelPageSeal(Infrastructure.Query.Pagination pagination, Dictionary searchParam) { if (null == pagination) return null; else { } IList sqlParms = new List() { new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25}, new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date}, new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20}, new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int} }; /* * 拷贝参数 */ if (null != searchParam && 0 < searchParam.Count) { foreach (int index in searchParam.Keys) { if (0 > index || index >= sqlParms.Count) continue; else sqlParms[index].Value = searchParam[index]; } } else { } sqlParms.Add(new SqlParameter() { ParameterName = "@pageIndex", SqlDbType = SqlDbType.Int, Value = pagination.PageIndex }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageSize", SqlDbType = SqlDbType.Int, Value = pagination.PageSize }); sqlParms.Add(new SqlParameter() { ParameterName = "@pageCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); sqlParms.Add(new SqlParameter() { ParameterName = "@recordCount", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }); IList result = null; //执行分页存储 using (IDataReader reader = _dataBase.QueryDataReader("sp_AgOrderSeal_Search", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } /*获取页数与返回数据条数*/ int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[16].Value); pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0; resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[17].Value); pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0; return result; } /// /// 单个查询 /// /// /// public IEnumerable SelectAllModel(Infrastructure.Query.Query query) { throw new NotImplementedException(); } /// /// 根据订单编号获取订单 /// /// 订单编号 /// public EC_OrderBasic GetOrderById(int orderId) { if (1 < orderId) return null; else { } IList result = _dataBase.SelectModel(" * ", "EC_OrderBasic ", string.Format(" Keyid = {0}", orderId)); return null == result || result.Count < 1 ? null : result[0]; } /// /// 根据客户ID和订单支付状态获取订单列表 /// /// 卖家ID /// public IList GetOrderById(Guid BuyerId, int PayState) { IList result = new List(); result = _dataBase.SelectModel(" * ", "EC_OrderBasic ", string.Format(" BuyerId = '{0}' and PayState!={1}", BuyerId,PayState)); return result; } /// /// 受理订单 /// /// 订单编号 /// 受理佣金(受理订单时站方收取的服务费) /// public bool AcceptOrder(int orderId, double commission) { if (0 >= orderId || 0 >= orderId) { return false; } else { } if (0 >= commission || 0 >= commission) { return false; } else { } IList sqlParms = new List() { new SqlParameter("@orderId",orderId){SqlDbType=SqlDbType.Int}, new SqlParameter("@commission",commission){SqlDbType=SqlDbType.Float,DbType=DbType.Double}, new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.Output,SqlDbType=SqlDbType.Int,DbType=DbType.Int32} }; try { _dataBase.Query("sp_Order_Accept", CommandType.StoredProcedure, sqlParms.ToArray()); return 1.Equals(sqlParms[2].Value); } catch (Exception ex) { throw ex; } } /// /// 批量受理订单 /// /// /// /// public bool AcceptOrderAll(string orderIds, double commission) { IList orderIdList = new List(); string[] orderIdArry = orderIds.Split(','); foreach (string orderIdStr in orderIdArry) { if (!string.IsNullOrEmpty(orderIdStr)) { orderIdList.Add(int.Parse(orderIdStr)); } } bool isSuccess = true; using (TransactionScope scope = new TransactionScope()) { foreach (int orderId in orderIdList) { isSuccess = AcceptOrder(orderId, commission); if (!isSuccess) break; } if (isSuccess) { scope.Complete(); } } return isSuccess; } /// /// 根据卖家编号加载下一订单编号方法 /// /// 卖家编号 /// public string LoadOrderIdBySellerId(Guid memberId) { if (Guid.Empty == memberId) { return string.Empty; } else { } IList sqlParms = new List() { new SqlParameter("@memberid",memberId){SqlDbType=SqlDbType.UniqueIdentifier} }; try { using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_GetOrderId", CommandType.StoredProcedure, sqlParms.ToArray())) { return reader.Read() ? reader[0] as string : string.Empty; } } catch (Exception ex) { throw ex; } } /// /// 根据编号批量删除数据 /// /// 当前操作人 /// 编号集合 /// public bool DeleteDataByIds(string currentOperator, params int[] ids) { return Database.DeleteDataByIds(this, currentOperator, ids); } /// /// 根据编号获取订单信息 /// /// 订单唯一编号 /// public EC_OrderBasic SelectModelById(int orderId) { if (0 >= orderId) { return null; } else { } List result = null; try { using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SelectById", CommandType.StoredProcedure, new SqlParameter("@orderId", orderId) { SqlDbType = SqlDbType.Int })) { result = _dataBase.ReadDataToModel(reader); } } catch (Exception ex) { throw ex; } return null == result || result.Count == 0 ? null : result[0]; } /// /// 根据订单编号获取自动外协订单 /// /// 订单编号 /// public EC_OrderBasic SelectOutOrderById(int orderId) { if (1 > orderId) return null; else { } IList result = _dataBase.SelectModel(" b.* ", " dbo.EC_OrderBasic AS a INNER JOIN dbo.EC_OrderBasic AS b ON a.OutId =b.Keyid ", string.Format(" a.Keyid = {0}", orderId)); return null == result || result.Count < 1 ? null : result[0]; } /// /// 获取请求 /// /// /// public EC_OrderDialogue SelecEC_OrderDialogueById(Guid Keyid) { try { IList result = _dataBase.SelectModel(" * ", " EC_OrderDialogue ", string.Format(" Keyid = '{0}'", Keyid)); return null == result || result.Count < 1 ? null : result[0]; } catch (Exception ex) { throw ex; } } /// /// 获取自动外协的请求 /// /// /// public EC_OrderDialogue SelecEC_OrderDialogueById_Out(int? orderid) { try { IList result = _dataBase.SelectModel(" * ", " EC_OrderDialogue ", string.Format(" IsAllow IS NULL AND TargetOrder = '{0}'", orderid)); return null == result || result.Count < 1 ? null : result[0]; } catch (Exception ex) { throw ex; } } /// /// 根据自动外协订单编号获取来源订单 /// /// 订单编号 /// public EC_OrderBasic SelectFromOutOrderById(int orderId) { if (1 > orderId) return null; else { } IList result = _dataBase.SelectModel(" * ", " dbo.EC_OrderBasic ", string.Format(" OutId = {0}", orderId)); return null == result || result.Count < 1 ? null : result[0]; } /// /// 修改订单状态(无事务,仅内部使用) /// /// 订单操作 /// internal bool UpdateOrderStateUnit(EC_OrderOperate orderOperate) { if (null == orderOperate) return false; else { } if (!orderOperate.OrderId.HasValue || 0 >= orderOperate.OrderId) { return false; } else { } _eC_OrderOperateDAL = null == _eC_OrderOperateDAL ? new EC_OrderOperateDAL(_dataBase) : _eC_OrderOperateDAL; try { bool isWin = false; if (orderOperate.OperateType == 0) { return DeleteModel(new EC_OrderBasic() { Keyid = orderOperate.OrderId, Operator = orderOperate.Operator }); } else ; isWin = _eC_OrderOperateDAL.InserModel(orderOperate); if (!isWin) return false; else ; IList sqlParms = new List() { new SqlParameter("@orderId",orderOperate.OrderId.Value), new SqlParameter("@stateId",orderOperate.OperateType), new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32} }; _dataBase.Query("sp_Order_UpdateOrderState", CommandType.StoredProcedure, sqlParms.ToArray()); return isWin = 1.Equals(sqlParms[2].Value); } catch (Exception ex) { throw ex; } } /// /// 根据新增订单操作,并修改订单状态 /// /// /// public bool UpdateOrderState(EC_OrderOperate orderOperate) { if (null == orderOperate) return false; else ; using (TransactionScope tran = new TransactionScope()) { _eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase); try { bool isWin = false; if (orderOperate.OperateType == 0) { return DeleteModel(new EC_OrderBasic() { Keyid = orderOperate.OrderId, Operator = orderOperate.Operator }); } else ; isWin = _eC_OrderOperateDAL.InserModel(orderOperate); if (!isWin) return false; else ; IList sqlParms = new List() { new SqlParameter("@orderId",orderOperate.OrderId.Value), new SqlParameter("@stateId",orderOperate.OperateType), new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32} }; _dataBase.Query("sp_Order_UpdateOrderState1", CommandType.StoredProcedure, sqlParms.ToArray()); isWin = 1.Equals(sqlParms[2].Value); if (isWin) { tran.Complete(); } return isWin; } catch (Exception ex) { throw ex; } } } /// /// 修改订单状态(非支付状态且不可修改为未受理和已受理) /// /// 订单操作 /// public bool UpdateOrderState(params EC_OrderOperate[] orderOperates) { if (null == orderOperates) return false; else ; _eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase); using (TransactionScope tran = new TransactionScope()) { int i = -1; bool isWin = false; while (++i < orderOperates.Length) { if (isWin = UpdateOrderStateUnit(orderOperates[i])) ; else { return isWin; } } tran.Complete(); return isWin; } } /// /// 更新订单支付状态 /// /// 订单编号 /// public bool UpdateOrderPayState(int orderId) { SqlParameter[] sqlParms = new SqlParameter[] { new SqlParameter(){ParameterName="@returnState", Direction=ParameterDirection.Output,SqlDbType=SqlDbType.Int}, new SqlParameter("@orderId",orderId) }; _dataBase.Query("sp_Order_UpdateOrderPayState", CommandType.StoredProcedure, sqlParms); return 1.Equals(sqlParms[0].Value); } /// /// 更新订单支付金额 /// /// 订单编号 /// 支付方式(1:收款、-1:付款) /// 支付金额 /// 使用授信(默认0) /// public bool UpdateOrderPayedMoney(int orderId, int payWay, decimal paymoney, decimal usedCredit = 0) { SqlParameter[] sqlParms = new SqlParameter[] { new SqlParameter(){ParameterName="@returnState", Direction=ParameterDirection.Output,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, new SqlParameter("@orderId",orderId){SqlDbType=SqlDbType.Int}, new SqlParameter("@payWay",payWay){SqlDbType=SqlDbType.Int}, new SqlParameter("@payedMoney",paymoney){SqlDbType=SqlDbType.Money ,Size=8}, new SqlParameter("@usedCredit",usedCredit){SqlDbType=SqlDbType.Money,Size=8 } }; _dataBase.Query("sp_Order_UpdatePayedMoney", CommandType.StoredProcedure, sqlParms); int? returnState = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[0].Value); return 1.Equals(sqlParms[0].Value); } /// /// 收款(线下转账、现金) /// /// 订单编号 /// 操作记录 /// public bool ReceiveMoneyToAccount(int orderId, OA_FirmAccountRecord firmAccountRecord) { bool isWin = false; if (0 >= orderId || null == firmAccountRecord || !firmAccountRecord.AccountId.HasValue || !firmAccountRecord.SubjectId.HasValue || !firmAccountRecord.Money.HasValue) return false; else ; if (0 >= firmAccountRecord.AccountId.Value || 0 >= firmAccountRecord.SubjectId.Value || 0 > firmAccountRecord.Money.Value) return false; else ; try { OA_FirmAccountRecordDAL oA_FirmAccountRecordDAL = new OA_FirmAccountRecordDAL(_dataBase); using (TransactionScope tran = new TransactionScope()) { if (firmAccountRecord.Money.Value > 0) { //收款到账户并记录收支记录 isWin = oA_FirmAccountRecordDAL.OrderReceivables(firmAccountRecord.AccountId, firmAccountRecord.Money, firmAccountRecord.SubjectId, firmAccountRecord.LastUpdateTime, firmAccountRecord.PaymentUnit, firmAccountRecord.Operator); if (!isWin) { return isWin; } else ; } //更新订单支付金额 isWin = this.UpdateOrderPayedMoney(orderId, -1, firmAccountRecord.Money.Value); if (!isWin) { return isWin; } else ; //更新订单状态 isWin = this.UpdateOrderPayState(orderId); if (!isWin) { return isWin; } else ; tran.Complete(); } } catch (Exception ex) { throw ex; } return isWin; } /// /// 收款(外协预付款、客户预付款) /// /// 卖家 /// 买家 /// 订单编号 /// 金额 /// 操作类型编号(2:预付款,3普通付款) /// 支付科目(订单付款,外协付款) /// 操作人 /// public bool ReceiveMoney(Guid sellerId, Guid buyerId, int orderId, decimal money, int operatTypeId, string subjectName, string currentOperator) { bool isWin = false; if (0 >= orderId || 0 > money || string.IsNullOrEmpty(subjectName) || string.IsNullOrEmpty(currentOperator)) return false; else ; try { using (TransactionScope tran = new TransactionScope()) { if (money > 0) { OA_CorporateClientsDAL oA_CorporateClientsDAL = new OA_CorporateClientsDAL(_dataBase); //从预付款扣除金额 isWin = oA_CorporateClientsDAL.OrderReciveMoney(buyerId, sellerId, money, subjectName, currentOperator, operatTypeId); if (!isWin) { return isWin; } else ; } //更新订单支付金额 isWin = this.UpdateOrderPayedMoney(orderId, -1, money); if (!isWin) { return isWin; } else ; //更新订单状态 isWin = this.UpdateOrderPayState(orderId); if (!isWin) { return isWin; } else ; tran.Complete(); } } catch (Exception ex) { throw ex; } return isWin; } /// /// 根据编号获取订单列表 /// /// /// /// public IEnumerable GetEC_OrderBasicListByKeyid(string Keyids, Guid FirmId) { try { if (string.IsNullOrEmpty(Keyids)) return null;//错误数据返会空 IList result = _dataBase.SelectModel("*", "EC_OrderBasic", string.Format(" Keyid in ({0}) and SellerId ='{1}' order by SellerOrderId DESC ", Keyids, FirmId)) as IList;//执行查询 return result;//返回结果 } catch (Exception ex) { throw ex; } } /// /// 订单完工 /// /// /// /// public bool CompletedOrderList(List m_EC_OrderOperateList, List m_EC_OrderBasicList) { if (null == m_EC_OrderOperateList || null == m_EC_OrderBasicList) return false; else ; _eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase); using (TransactionScope tran = new TransactionScope()) { int i = -1; bool isWin = false; while (++i < m_EC_OrderOperateList.Count) { if (isWin = UpdateOrderStateUnit(m_EC_OrderOperateList[i])) ; else return isWin; } i = -1; while (++i < m_EC_OrderBasicList.Count) { if (isWin = UpdateModel(m_EC_OrderBasicList[i])) ; else return isWin; } tran.Complete(); return isWin; } } #endregion /// /// 分页查询 /// /// /// /// public IEnumerable SelectModelPage_weiwangong(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination) { if (null == pagination || null == query || null == query.Criteria || 1 > query.Criteria.Count) return null; //query.Criteria 首个元素必须是排序字段,其值为结果排序字段 int maxParamIndex = query.Criteria.Count - 1;//最大索引 string[] orderbys = new string[] { ORDERBY }; string resultOrderBy = "";//结果集排序方式 if ("@orderBy".Equals(query.Criteria[maxParamIndex].PropertyName)) { orderbys = string.Format("{0}", query.Criteria[maxParamIndex].Value).Split(','); resultOrderBy = 1 == orderbys.Length ? resultOrderBy : orderbys[1]; } string fromSouce = string.Format("{0}{1}{2}", FROMSOUCEBEFORE, query.Criteria[0].Value, FROMSOUCEEND);//拼装条件 return _dataBase.SelectModelPage(pagination, SELECTTARGET, fromSouce, orderbys[0], resultOrderBy); } #region 外表操作 /// /// 支付订单 /// /// 订单编号 /// 支付请求 /// public bool PayOrder(int orderId, Pay_Request payRequest, double commission, decimal OutAllMoney = 0) { try { Pay_PaymentAccountDAL pay_PaymentAccountDAL = new Pay_PaymentAccountDAL(_dataBase); if (!pay_PaymentAccountDAL.Pay(payRequest))//执行支付 { return false;//支付不成功则操作失败 } payRequest.UsedCredit = payRequest.UsedCredit.HasValue ? payRequest.UsedCredit : 0; if (payRequest.Paymoney < 0 || payRequest.UsedCredit < 0) { return false; } bool IsSuccess = this.UpdateOrderPayedMoney(orderId, 1, payRequest.Paymoney, payRequest.UsedCredit.Value);//更新已支付金额 payway 为-1为收款 1为付款 EC_OrderBasic orderBasic = SelectModelById(orderId); if (0 < commission && orderBasic.OrderState == 1 && orderBasic.OrderTypeId == -1) { pay_PaymentAccountDAL.MergeBufferMoneyByMemberId(orderBasic.SellerId); IsSuccess = this.AcceptOrder(orderBasic.Keyid.Value, commission); } #region 自动外协 //询价订单切支付完毕才可自动外协 if (IsSuccess && orderBasic.OrderTypeId == 0 && (orderBasic.TradingSingle.OnlineMoney + orderBasic.TradingSingle.UsedCredit) >= orderBasic.SumPrice && OutAllMoney > 0) { _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); _eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase); //自动外协处理 EC_MemberBasic m_EC_MemberBasic = _eC_MemberBasicDAL.GetMemberByMemberId(orderBasic.SellerId); Pay_PaymentAccount m_Pay_PaymentAccount = pay_PaymentAccountDAL.SelectModleByMemberId(m_EC_MemberBasic.MemberId); if (m_EC_MemberBasic != null && ((m_Pay_PaymentAccount.SurplusMoney + m_Pay_PaymentAccount.SurplusCredit) > OutAllMoney)) { OA_CorporateClients m_OA_CorporateClients = _oA_CorporateClientsDAL.GetDefaultOutFirm(orderBasic.SellerId);//外协厂商 //需付受理佣金(订单受理佣金>0时直接调用受理订单进行受理) if (0 < commission && orderBasic.OrderState == 1 && m_OA_CorporateClients != null) { pay_PaymentAccountDAL.MergeBufferMoneyByMemberId(orderBasic.SellerId); IsSuccess = this.AcceptOrder(orderBasic.Keyid.Value, commission); } if (IsSuccess && m_OA_CorporateClients != null && orderBasic.OrderTypeId == 0 && orderBasic.BuyerId != m_OA_CorporateClients.FirmId && OutAllMoney > 0) { Pay_PaymentAccount m_Pay_PaymentAccount_Out = pay_PaymentAccountDAL.SelectModleByMemberId(m_OA_CorporateClients.FirmId); Pay_Request payRequest_Out = new Pay_Request(); payRequest_Out.BalanceAccount = 18; payRequest_Out.Payeeid = payRequest.Payeeid; payRequest_Out.Payerid = m_Pay_PaymentAccount.Keyid.Value; payRequest_Out.Paymoney = OutAllMoney; payRequest_Out.Subject = "";//string.Format(CY.Infrastructure.Common.UtilConst.ORDER_PAY_SUBJECT_FORMT, eC_OrderBasic.Keyid, eC_OrderBasic.SellerOrderId); payRequest_Out.UsedCredit = 0; EC_OrderBasic OLD_eC_OrderBasic = SelectModelById(orderBasic.Keyid.Value); EC_OrderBasic OLD_eC_OrderBasic2 = SelectModelById(orderBasic.Keyid.Value); EC_OrderExtend OrderExtendNew = new EC_OrderExtend(); EC_OrderBasic m_EC_OrderBasicNew = new EC_OrderBasic(); EC_AcceptWayByOrder m_EC_AcceptWayByOrderNew = new EC_AcceptWayByOrder(); EC_OrderPrintParameter m_EC_OrderPrintParameterNew = new EC_OrderPrintParameter(); m_EC_OrderBasicNew = OLD_eC_OrderBasic; OrderExtendNew = OLD_eC_OrderBasic.OrderExtend; m_EC_AcceptWayByOrderNew = _eC_AcceptWayByOrderDAL.SelectModelByTargetId(orderBasic.Keyid); m_EC_OrderPrintParameterNew = _eC_OrderPrintParameterDAL.GetModel(orderBasic.Keyid.Value); m_EC_OrderBasicNew.BuyerId = m_EC_MemberBasic.MemberId; m_EC_OrderBasicNew.BuyerName = m_EC_MemberBasic.Name; m_EC_OrderBasicNew.SellerId = m_OA_CorporateClients.FirmId; m_EC_OrderBasicNew.SellerName = m_OA_CorporateClients.OutVendorName; m_EC_OrderBasicNew.OrderTypeId = 2; m_EC_OrderBasicNew.SumPrice = OutAllMoney; m_EC_OrderBasicNew.UnitPrice = null;//价格比率 m_EC_OrderBasicNew.OrderExtend = OrderExtendNew; EC_OrderOperate m_EC_OrderOperate = new EC_OrderOperate(); m_EC_OrderOperate.LastUpdateTime = DateTime.Now; m_EC_OrderOperate.OperateType = 3; m_EC_OrderOperate.Operator = m_EC_MemberBasic.ShortName; m_EC_OrderOperate.OrderId = OLD_eC_OrderBasic.Keyid; m_EC_OrderOperate.Remark = ""; m_EC_OrderBasicNew.TradingSingle = GetPay_TradingSingleById(orderBasic.Keyid.Value); m_EC_OrderBasicNew.TradingSingle.PayerId = m_EC_OrderBasicNew.BuyerId;//设置买家为当前收货用户 m_EC_OrderBasicNew.TradingSingle.PayeeId = m_EC_OrderBasicNew.SellerId;//设置卖家为秒杀业务的发布人 m_EC_OrderBasicNew.TradingSingle.LineMoney = 0; m_EC_OrderBasicNew.TradingSingle.TradingMoney = OutAllMoney; m_EC_OrderBasicNew.TradingSingle.UsedCredit = 0; m_EC_OrderBasicNew.TradingSingle.OnlineMoney = 0; m_EC_OrderBasicNew.TradingSingle.PayedMoney = 0; m_EC_OrderBasicNew.TradingSingle.PayableMoney = OutAllMoney; //if (OLD_eC_OrderBasic2.TradingSingle.UsedCredit >= OutAllMoney) //{ // m_EC_OrderBasicNew.TradingSingle.UsedCredit = OutAllMoney; // m_EC_OrderBasicNew.TradingSingle.OnlineMoney = 0; // m_EC_OrderBasicNew.TradingSingle.PayedMoney = OutAllMoney; // m_EC_OrderBasicNew.TradingSingle.PayableMoney = 0; //} //else //{ // if (OutAllMoney >= OLD_eC_OrderBasic2.TradingSingle.TradingMoney) // { // m_EC_OrderBasicNew.TradingSingle.UsedCredit = (OLD_eC_OrderBasic.TradingSingle.UsedCredit == null ? 0 : OLD_eC_OrderBasic.TradingSingle.UsedCredit); // m_EC_OrderBasicNew.TradingSingle.OnlineMoney = (OLD_eC_OrderBasic.TradingSingle.OnlineMoney == null ? 0 : OLD_eC_OrderBasic.TradingSingle.OnlineMoney); // m_EC_OrderBasicNew.TradingSingle.PayedMoney = (OLD_eC_OrderBasic.TradingSingle.PayedMoney == null ? 0 : OLD_eC_OrderBasic.TradingSingle.PayedMoney); // m_EC_OrderBasicNew.TradingSingle.PayableMoney = OutAllMoney - m_EC_OrderBasicNew.TradingSingle.PayedMoney; // } // else // { // m_EC_OrderBasicNew.TradingSingle.UsedCredit = (OLD_eC_OrderBasic.TradingSingle.UsedCredit == null ? 0 : OLD_eC_OrderBasic.TradingSingle.UsedCredit); // m_EC_OrderBasicNew.TradingSingle.OnlineMoney = (OutAllMoney - m_EC_OrderBasicNew.TradingSingle.UsedCredit); // m_EC_OrderBasicNew.TradingSingle.PayedMoney = OutAllMoney; // m_EC_OrderBasicNew.TradingSingle.PayableMoney = 0; // } //} IsSuccess = AutoOutOrder(OLD_eC_OrderBasic2, m_EC_OrderBasicNew, m_EC_AcceptWayByOrderNew, m_EC_OrderPrintParameterNew, m_EC_OrderOperate, 4, 0, payRequest_Out); IsSuccess = this.AcceptOrder(m_EC_OrderBasicNew.Keyid.Value, commission); } } } #endregion return IsSuccess; } catch (Exception ex) { throw ex; } } /// /// 发起订单属性改变请求 /// /// 请求 /// public int OrderPropertyChangeRequest(EC_OrderDialogue dialogue) { if (null == dialogue || !dialogue.DialogueTypeId.HasValue || Guid.Empty == dialogue.InitiatorId || Guid.Empty == dialogue.ReceiverId || !dialogue.TargetOrder.HasValue || dialogue.TargetOrder.Value < 1 || !dialogue.TargetValue.HasValue || null == dialogue.DialogueContent //|| dialogue.TargetValue.Value < 1 ) { return 0; } IList sqlParms = new List() { new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, new SqlParameter("@InitiatorId",dialogue.InitiatorId){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@ReceiverId",dialogue.ReceiverId){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@TargetOrder",dialogue.TargetOrder.Value){SqlDbType=SqlDbType.Int}, new SqlParameter("@TargetValue",dialogue.TargetValue){SqlDbType=SqlDbType.Money,Size=8}, new SqlParameter("@DialogueTypeId",dialogue.DialogueTypeId){SqlDbType=SqlDbType.Int}, new SqlParameter("@DialogueContent",dialogue.DialogueContent){SqlDbType=SqlDbType.VarChar,Size=200} }; try { _dataBase.Query("sp_OrderPropertyChangeRequest", CommandType.StoredProcedure, sqlParms.ToArray()); #region 根据订单判断是否被自动外协 //if (dialogue.DialogueTypeId != 2) //{ // #region 根据订单判断是否被自动外协 // EC_OrderBasic m_EC_OrderBasicOut = SelectOutOrderById(dialogue.TargetOrder.Value); // if (m_EC_OrderBasicOut != null && m_EC_OrderBasicOut.Keyid > 0) // { // IList sqlParmsOut = new List() // { // new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, // new SqlParameter("@InitiatorId",m_EC_OrderBasicOut.BuyerId){SqlDbType=SqlDbType.UniqueIdentifier}, // new SqlParameter("@ReceiverId",m_EC_OrderBasicOut.SellerId){SqlDbType=SqlDbType.UniqueIdentifier}, // new SqlParameter("@TargetOrder",m_EC_OrderBasicOut.Keyid.Value){SqlDbType=SqlDbType.Int}, // new SqlParameter("@TargetValue",dialogue.TargetValue){SqlDbType=SqlDbType.Money,Size=8}, // new SqlParameter("@DialogueTypeId",dialogue.DialogueTypeId){SqlDbType=SqlDbType.Int}, // new SqlParameter("@DialogueContent",dialogue.DialogueContent){SqlDbType=SqlDbType.VarChar,Size=200} // }; // _dataBase.Query("sp_OrderPropertyChangeRequest", CommandType.StoredProcedure, sqlParmsOut.ToArray()); // } // #endregion //} //else //{ // #region 根据订单判断是否来源于自动外协 // EC_OrderBasic m_EC_OrderBasicFromOut = SelectFromOutOrderById(dialogue.TargetOrder.Value); // if (m_EC_OrderBasicFromOut != null && m_EC_OrderBasicFromOut.Keyid > 0) // { // IList sqlParmsFromOut = new List() // { // new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, // new SqlParameter("@InitiatorId",m_EC_OrderBasicFromOut.SellerId){SqlDbType=SqlDbType.UniqueIdentifier}, // new SqlParameter("@ReceiverId",m_EC_OrderBasicFromOut.BuyerId){SqlDbType=SqlDbType.UniqueIdentifier}, // new SqlParameter("@TargetOrder",m_EC_OrderBasicFromOut.Keyid.Value){SqlDbType=SqlDbType.Int}, // new SqlParameter("@TargetValue",dialogue.TargetValue){SqlDbType=SqlDbType.Money,Size=8}, // new SqlParameter("@DialogueTypeId",dialogue.DialogueTypeId){SqlDbType=SqlDbType.Int}, // new SqlParameter("@DialogueContent",dialogue.DialogueContent){SqlDbType=SqlDbType.VarChar,Size=200} // }; // _dataBase.Query("sp_OrderPropertyChangeRequest", CommandType.StoredProcedure, sqlParmsFromOut.ToArray()); // } // #endregion //} #endregion return (int)sqlParms[0].Value; } catch (Exception ex) { throw ex; } } /// /// 卖家退单操作 /// /// /// /// /// public int RetireOrderBySeller(int orderId, decimal retireMony, string operatorName) { IList sqlParms = new List() { new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, new SqlParameter("@orderId",orderId){SqlDbType=SqlDbType.Int}, new SqlParameter("@retireMony",retireMony){SqlDbType=SqlDbType.Money,Size=8}, new SqlParameter("@opetName",operatorName){SqlDbType=SqlDbType.VarChar,Size=40} }; try { _dataBase.Query("sp_RetireOrderBySeller", CommandType.StoredProcedure, sqlParms.ToArray()); return (int)sqlParms[0].Value; } catch (Exception ex) { throw ex; } } /// /// 执行订单属性改变请求 /// /// 要执行的目标数据 /// 执行者 /// public int OrderPropertyChangeExecute(Guid requestId, Guid memberId) { if (Guid.Empty == requestId || Guid.Empty == memberId) { return 0; } else { } IList sqlParms = new List() { new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, new SqlParameter("@Keyid",requestId){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@ReceiverId",memberId){SqlDbType=SqlDbType.UniqueIdentifier} }; try { _dataBase.Query("sp_OrderPropertyChangeExecute", CommandType.StoredProcedure, sqlParms.ToArray()); return (int)sqlParms[0].Value; } catch (Exception ex) { throw ex; } } /// /// 答复订单属性改变请求 /// /// 要答复的目标数据 /// 答复人 /// 是否同意 /// public int OrderPropertyChangeReply(Guid requestId, Guid memberId, bool isAllow) { if (Guid.Empty == requestId || Guid.Empty == memberId) { return 0; } else { } IList sqlParms = new List() { new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, new SqlParameter("@Keyid",requestId){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@ReceiverId",memberId){SqlDbType=SqlDbType.UniqueIdentifier}, new SqlParameter("@IsAllow",isAllow){SqlDbType=SqlDbType.Bit} }; try { _dataBase.Query("sp_OrderPropertyChangeReply", CommandType.StoredProcedure, sqlParms.ToArray()); #region 根据订单判断是否被自动外协 //EC_OrderDialogue m_EC_OrderDialogue = this.SelecEC_OrderDialogueById(requestId); //if (m_EC_OrderDialogue != null && m_EC_OrderDialogue.DialogueTypeId != 2) //{ // #region 根据订单判断是否被自动外协 // EC_OrderBasic m_EC_OrderBasicOut = this.SelectFromOutOrderById(m_EC_OrderDialogue.TargetOrder.Value); // if (m_EC_OrderBasicOut != null && m_EC_OrderBasicOut.Keyid > 0) // { // EC_OrderDialogue SelecEC_OrderDialogueById_Out = this.SelecEC_OrderDialogueById_Out(m_EC_OrderBasicOut.Keyid); // if (SelecEC_OrderDialogueById_Out != null) // { // IList sqlParmsOut = new List() // { // new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, // new SqlParameter("@Keyid",SelecEC_OrderDialogueById_Out.Keyid){SqlDbType=SqlDbType.UniqueIdentifier}, // new SqlParameter("@ReceiverId",SelecEC_OrderDialogueById_Out.ReceiverId){SqlDbType=SqlDbType.UniqueIdentifier}, // new SqlParameter("@IsAllow",isAllow){SqlDbType=SqlDbType.Bit} // }; // _dataBase.Query("sp_OrderPropertyChangeReply", CommandType.StoredProcedure, sqlParmsOut.ToArray()); // } // } // #endregion //} //else //{ // #region 根据订单判断是否来源于自动外协 // EC_OrderBasic m_EC_OrderBasicFromOut = this.SelectOutOrderById(m_EC_OrderDialogue.TargetOrder.Value); // if (m_EC_OrderBasicFromOut != null && m_EC_OrderBasicFromOut.Keyid > 0) // { // EC_OrderDialogue SelecEC_OrderDialogueById_Out = this.SelecEC_OrderDialogueById_Out(m_EC_OrderBasicFromOut.Keyid); // if (SelecEC_OrderDialogueById_Out != null) // { // IList sqlParmsOut = new List() // { // new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, // new SqlParameter("@Keyid",SelecEC_OrderDialogueById_Out.Keyid){SqlDbType=SqlDbType.UniqueIdentifier}, // new SqlParameter("@ReceiverId",SelecEC_OrderDialogueById_Out.ReceiverId){SqlDbType=SqlDbType.UniqueIdentifier}, // new SqlParameter("@IsAllow",isAllow){SqlDbType=SqlDbType.Bit} // }; // _dataBase.Query("sp_OrderPropertyChangeReply", CommandType.StoredProcedure, sqlParmsOut.ToArray()); // } // } // #endregion //} #endregion return (int)sqlParms[0].Value; } catch (Exception ex) { throw ex; } } /// /// 根据接手人查询属性变更请求集合 /// /// 接手用户 /// public IEnumerable SelectPropertyChangeRequest(Guid memberId) { if (Guid.Empty == memberId) { return null; } else { } List result = null; IList sqlParms = new List() { new SqlParameter("@ReceiverId",memberId){SqlDbType=SqlDbType.UniqueIdentifier} }; try { using (IDataReader reader = _dataBase.QueryDataReader("sp_OrderPropertyChangeRequestGetter", CommandType.StoredProcedure, sqlParms.ToArray())) { result = _dataBase.ReadDataToModel(reader); } } catch (Exception ex) { throw ex; } return result; } /// /// 送货 /// /// 货运信息 /// public bool DeliverPresswork(EC_AwbInfo awbInfo) { if (null == awbInfo) return false; else { } _eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase); EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase); if (!awbInfo.Keyid.HasValue || 0 >= awbInfo.Keyid.Value) { return false; } else { } try { using (TransactionScope tran = new TransactionScope()) { bool isWin = false; /* 新增送货信息 */ IList sqlParms = new List() { new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, new SqlParameter(){ParameterName="@Keyid",Value=awbInfo.Keyid}, new SqlParameter(){ParameterName="@DeliverPerson",Value=awbInfo.DeliverPerson,SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter(){ParameterName="@DeliverTime",Value=awbInfo.DeliverTime,SqlDbType=SqlDbType.DateTime}, new SqlParameter(){ParameterName="@Remark",Value=awbInfo.Remark,SqlDbType=SqlDbType.VarChar,Size=200}, new SqlParameter(){ParameterName="@TheAwb",Value=awbInfo.TheAwb,SqlDbType=SqlDbType.VarChar,Size=30}, new SqlParameter(){ParameterName="@OperateType",Value=awbInfo.Operate.OperateType,SqlDbType=SqlDbType.Int,Size=4}, new SqlParameter(){ParameterName="@AcceptTypeId",Value=awbInfo.AcceptTypeId,SqlDbType=SqlDbType.Int,Size=4}, new SqlParameter(){ParameterName="@AppointCourierCompany",Value=awbInfo.AppointCourierCompany,SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter(){ParameterName="@FetchAddress",Value=awbInfo.FetchAddress,SqlDbType=SqlDbType.VarChar,Size=200}, new SqlParameter(){ParameterName="@FetchContacts",Value=awbInfo.FetchContacts,SqlDbType=SqlDbType.VarChar,Size=50}, new SqlParameter(){ParameterName="@FetchPhoneNum",Value=awbInfo.FetchPhoneNum,SqlDbType=SqlDbType.VarChar,Size=20} }; _dataBase.Query("sp_EC_AwbInfo_DeliverPresswork", CommandType.StoredProcedure, sqlParms.ToArray()); isWin = 1.Equals(sqlParms[0].Value); if (!isWin) return false; else { } if (awbInfo.Operate.OperateType != -1) { isWin = _eC_OrderOperateDAL.InserModel(awbInfo.Operate);//新增操作信息 if (!isWin) return false; else ; isWin = this.UpdateOrderStateUnit(awbInfo.Operate);//修改订单状态 if (!isWin) return false; else ; } else { awbInfo.Operate.OperateType = 5; isWin = _eC_OrderOperateDAL.InserModel(awbInfo.Operate);//新增操作信息 if (!isWin) return false; else ; } tran.Complete(); return isWin; } } catch (Exception ex) { throw ex; } } /// /// 根据编号获取货运信息 /// /// 订单编号 /// public EC_AwbInfo SelectAwbInfoById(int orderId) { IList result = _dataBase.SelectModel(" * ", "EC_AwbInfo", string.Format(" Keyid={0} ", orderId)) as IList; return null == result || result.Count < 1 ? null : result[0]; } /// /// 根据订单编号获取订单操作信息 /// /// 订单编号 /// public IEnumerable SelectOrderOperates(int orderId) { IList result = null; using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderOperate_Search", CommandType.StoredProcedure, new SqlParameter() { ParameterName = "@orderId", Value = orderId, SqlDbType = SqlDbType.Int })) { result = _dataBase.ReadDataToModel(reader); } return result; } /// /// 根据订单编号获取收货地址信息 /// /// 订单编号集合 /// public IEnumerable SelectOrderAddress(string orderIds) { IList result = null; using (IDataReader reader = _dataBase.QueryDataReader("sp_SendOrderAdress", CommandType.StoredProcedure, new SqlParameter() { ParameterName = "@ids", Value = orderIds, SqlDbType = SqlDbType.VarChar, Size = 400 })) { result = _dataBase.ReadDataToModel(reader); } return result; } /// /// 根据订单编号确认收货 /// /// 订单编号 /// 买家编号 /// public bool ConfirmAcceptById(int orderId, Guid memberId) { /* 新增送货信息 */ IList sqlParms = new List() { new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}, new SqlParameter(){ParameterName="@orderId",Value=orderId}, new SqlParameter(){ParameterName="@memberId",Value=memberId,SqlDbType=SqlDbType.UniqueIdentifier} }; _dataBase.Query("sp_EC_Order_AcceptById", CommandType.StoredProcedure, sqlParms.ToArray()); return 1.Equals(sqlParms[0].Value); } /// /// 判断是否已经操作 /// /// /// /// /// public bool IsOpearted(int keyid, int orderState, string opType) { bool isOpearted = false; if (opType == "受理") { isOpearted = IsExist(keyid, opType); } else if (opType == "完工" || opType == "送货") { isOpearted = IsExist(keyid, opType); } else if (opType == "撤单") { if (orderState == 0) { isOpearted = true; } } return isOpearted; } public bool IsExist(int keyid, string opType) { bool isExist = false; string condition = string.Empty; condition += " OrderId=" + keyid; condition += " and OperateType>0 ORDER BY LastUpdateTime DESC "; IList result = _dataBase.SelectModel(" TOP 1 OperateType ", "EC_OrderOperate", condition); if (result != null && result.Count > 0) { EC_OrderOperate model = result[0]; if (opType == "受理") { if (model.OperateType.Value > 1) { isExist = true; } } else if (opType == "完工") { if (model.OperateType.Value >= 4) { isExist = true; } } else if (opType == "送货") { if (model.OperateType.Value == 5) { isExist = true; } } } return isExist; } /// /// 修改打印状态 /// /// public void UpdatePrintState(int orderId) { try { string sqlStr = string.Empty; sqlStr = "UPDATE EC_OrderBasic SET IsPrint='true' WHERE Keyid=@orderId"; SqlParameter par = new SqlParameter("@orderId", orderId); _dataBase.ExecuteSql(sqlStr, par); } catch { } } /// /// 修改打印状态 /// /// public void UpdatePrintBiaoqianState(int orderId) { try { string sqlStr = string.Empty; sqlStr = "UPDATE EC_OrderBasic SET IsPrintbiaoqian='true' WHERE Keyid=@orderId"; SqlParameter par = new SqlParameter("@orderId", orderId); _dataBase.ExecuteSql(sqlStr, par); } catch { } } /// /// 查询后道(3)整单(4) /// /// /// /// /// /// /// /// /// /// /// /// /// public IEnumerable SelectAferOfOutOrder(Infrastructure.Query.Pagination pagination, Guid MemberId, DateTime? StartCreatTime, DateTime? EndCreatTime, DateTime? StartReturnTime, DateTime? EndReturnTime, string Creater, string OutFirm, string WorkStates, string OutOrderId, int? RelationType) { try { string condition = " 1=1 "; if (MemberId != Guid.Empty) condition += " and a.BuyerId = '" + MemberId + "' "; if (RelationType > 0) condition += " and b.RelationTypeId = '" + RelationType + "' "; if (StartCreatTime != null) condition += " and a.CreateTime >= '" + StartCreatTime.Value + "' "; if (EndCreatTime != null) condition += " and a.CreateTime =< '" + EndCreatTime.Value.AddDays(1) + "' "; if (StartReturnTime != null) condition += " and d.DeliverTime >= '" + StartReturnTime.Value + "' "; if (EndReturnTime != null) condition += " and d.DeliverTime >= '" + EndReturnTime.Value.AddDays(1) + "' "; if (!string.IsNullOrEmpty(Creater)) condition += " and a.Creater like '%" + Creater + "%'"; if (WorkStates == "true") condition += " and ( a.OrderState > 3 or a.OrderState= -1) "; else if (WorkStates == "false") condition += " and ( a.OrderState <= 3 and a.OrderState != -1) "; if (!string.IsNullOrEmpty(OutFirm)) condition += " and a.SellerId = '" + OutFirm + "' "; if (!string.IsNullOrEmpty(OutOrderId)) condition += " and a.SellerOrderId like '%" + OutOrderId + "%' "; return _dataBase.SelectModelPage(pagination, " a.*,e.PrintNum AS PrintNum,pt.PrintName as PrintTypeName,c.Keyid AS OldOrderId ,c.SellerOrderId AS OldOrderSellerId,d.DeliverTime AS DeliverTime", " dbo.EC_OrderBasic AS a LEFT JOIN dbo.OA_OrderWorkListRelation AS b ON a.Keyid = b.RelationTargetId LEFT JOIN dbo.EC_OrderBasic AS c ON c.Keyid = b.OrderId LEFT JOIN dbo.EC_AwbInfo AS d ON a.Keyid = d.Keyid LEFT JOIN dbo.EC_OrderExtend AS e ON a.Keyid = e.Keyid LEFT JOIN dbo.Sys_Dictionary AS f ON f.DicType='EC_订单类型' And f.MeanValue = a.OrderTypeId Left Join SysInquiry_PrintingType as pt On a.PrintTypeId=pt.Keyid ", " a.CreateTime DESC ", " CreateTime DESC ", condition); } catch (Exception ex) { throw ex; } } /// /// 根据订单编号获取订单 /// /// 订单编号 /// public Pay_TradingSingle GetPay_TradingSingleById(int orderId) { if (1 > orderId) return null; else { } IList result = _dataBase.SelectModel(" * ", "Pay_TradingSingle ", string.Format(" OrderId = {0}", orderId)); return null == result || result.Count < 1 ? null : result[0]; } /// /// 判断某订单是否是另一订单的自动外协订单 /// /// /// public bool IsOutOrder(int orderId) { bool isOutOrder = false; string condition = " OutId=" + orderId; IList result = _dataBase.SelectModel("*", "EC_OrderBasic", condition); if (result != null && result.Count > 0) { isOutOrder = true; } return isOutOrder; } /// /// 自动外协订单 /// /// /// /// /// /// /// /// /// /// public bool AutoOutOrder(EC_OrderBasic OLD_orderBasic, EC_OrderBasic orderBasic, EC_AcceptWayByOrder acceptWayByOrder, EC_OrderPrintParameter orderPrintParameter, EC_OrderOperate m_EC_OrderOperate, int? RelationTypeid, double commission, Pay_Request payRequest) { 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); OA_OrderWorkListRelationDAL dal_OA_OrderWorkListRelationDAL = new OA_OrderWorkListRelationDAL(_dataBase); EC_SpecialForumsDAL dal_EC_SpecialForumsDAL = new EC_SpecialForumsDAL(_dataBase); EC_OrderExtend orderExtend = orderBasic.OrderExtend; Pay_TradingSingle tradingSingle = orderBasic.TradingSingle; using (TransactionScope t_TransactionScope = new TransactionScope()) { bool isWin = false; isWin = InserModel(orderBasic); if (!isWin) { return false; } OLD_orderBasic.OutId = 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; } isWin = _eC_OrderExtendDAL.UpSurplusPrintNum(m_EC_OrderOperate.OrderId, -1, orderBasic.Operator); if (!isWin) { return false; } isWin = UpdateOrderStateUnit(m_EC_OrderOperate); if (!isWin) { return false; } isWin = UpdateModel(OLD_orderBasic); if (!isWin) { return false; } payRequest.Subject = string.Format(CY.Infrastructure.Common.UtilConst.ORDER_PAY_SUBJECT_FORMT, orderBasic.Keyid, orderBasic.SellerOrderId); isWin = PayOrder(orderBasic.Keyid.Value, payRequest, 0, 0); if (!isWin) { return false; } if (orderBasic.TradingSingle.PayableMoney == 0) { orderBasic.PayState = -1; isWin = UpdateModel(orderBasic); if (!isWin) { return false; } } OA_OrderWorkListRelation m_OA_OrderWorkListRelation = new OA_OrderWorkListRelation(); m_OA_OrderWorkListRelation.OrderId = m_EC_OrderOperate.OrderId; m_OA_OrderWorkListRelation.RelationTypeId = RelationTypeid; m_OA_OrderWorkListRelation.RelationTargetId = orderBasic.Keyid; isWin = dal_OA_OrderWorkListRelationDAL.InserModel(m_OA_OrderWorkListRelation); 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) { t_TransactionScope.Complete(); } return isWin; } } catch (Exception ex) { throw ex; } } /// /// WEB服务自动完成订单 /// public void AutoCompleteOrderByWebService() { try { IList result = _dataBase.SelectModel(" * ", " EC_OrderBasic ", string.Format(" OrderState <> 1 AND OrderState <> 6 AND OrderState <> -1 AND OrderState > 0 AND DeliveryTime <=GETDATE() AND OrderTypeId <=0 ")) as IList;//执行查询 if (result != null && result.Count > 0) { int i = 0; foreach (var item in result) { ConfirmAcceptById(result[i].Keyid.Value, result[i].BuyerId); } i++; } return; } catch (Exception ex) { throw ex; } } #endregion /// /// 修改打印状态 /// /// public void UpdateDeliveryOrderId(int orderId,Guid DeliveryOrderId) { try { string sqlStr = string.Empty; sqlStr = "UPDATE EC_OrderExtend SET DeliveryOrderId=@DeliveryOrderId WHERE Keyid=@orderId"; IList sqlParms = new List() { new SqlParameter("@DeliveryOrderId", DeliveryOrderId), new SqlParameter("@orderId", orderId), }; _dataBase.ExecuteSql(sqlStr, sqlParms.ToArray()); } catch { } } /// /// 根据发货单id查询 /// /// /// /// public IEnumerable GetEC_OrderBasicListBydeliverorderId(Guid deliverorderId, Guid FirmId) { try { if (deliverorderId==null || deliverorderId.Equals(Guid.Empty)) return null;//错误数据返会空 IList result = _dataBase.SelectModel(" ob.*,oe.shifouDelivery,oe.DeliveryOrderId,oe.Kaipiaoshenqing,oe.KaipiaoshenqingCreater,oe.KaipiaoshenqingTime,oe.KaipiaoquerenCreater,oe.KaipiaoquerenTime,oe.Kehuqianshou,oe.KehuqianshouCreater,oe.KehuqianshouTime ,oe.Quchudingdan,oe.QuchudingdanCreater,oe.QuchudingdanTime,oe.PrintPackDeliveryRequir,oe.PrintNum,oe.ExigencyCaseId,pt.PrintName as PrintTypeName ", "EC_OrderBasic ob Inner Join EC_OrderExtend as oe On ob.Keyid=oe.Keyid Left Join SysInquiry_PrintingType as pt On(ob.PrintTypeId=pt.Keyid) ", string.Format(" oe.DeliveryOrderId = '{0}' and ob.SellerId ='{1}' order by SellerOrderId DESC ", deliverorderId, FirmId)) as IList;//执行查询 return result;//返回结果 } catch (Exception ex) { throw ex; } } } }