/**
|
* 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;
|
using CY.Model.Inquiry;
|
using CY.Infrastructure.Common;
|
|
namespace CY.SQLDAL
|
{
|
/// <summary>
|
/// 订单基本信息数据访问接口实现类
|
/// </summary>
|
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 常量
|
/// <summary>
|
/// 查询目标
|
/// </summary>
|
const string SELECTTARGET = " t.* ";
|
/// <summary>
|
/// 查询来源
|
/// </summary>
|
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 ";
|
/// <summary>
|
/// 分页默认排序字段
|
/// </summary>
|
const string ORDERBY = " [DeliveryTime] DESC ";
|
#endregion
|
|
/// <summary>
|
/// 初始化构造
|
/// </summary>
|
/// <param name="database"></param>
|
public EC_OrderBasicDAL(Database database)
|
{
|
_dataBase = database;
|
}
|
|
/// <summary>
|
/// 默认构造
|
/// </summary>
|
public EC_OrderBasicDAL()
|
{
|
_dataBase = new Database();
|
}
|
|
#region 订单本表操作
|
|
/// <summary>
|
/// 新增
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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);
|
}
|
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_Insert", 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>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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);
|
}
|
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("@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),
|
DeliveryTime,//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<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 删除
|
/// </summary>
|
/// <param name="id"></param>
|
/// <returns></returns>
|
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.EC_OrderBasic trueModel = model as Model.EC_OrderBasic;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 删除外协订单
|
/// </summary>
|
/// <param name="OrderId"></param>
|
/// <returns></returns>
|
public bool DeleteOutOrder(int OrderId)
|
{
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@Keyid",OrderId)
|
};
|
try
|
{
|
_dataBase.Query("sp_EC_OrderBasic_DeleteOutOrder", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="query">查询对象</param>
|
/// <param name="pagination">分页对象</param>
|
/// <returns></returns>
|
public IEnumerable<EC_OrderBasic> SelectModelPage(Query query, Pagination pagination)
|
{
|
throw new Exception("方法未实现");
|
|
}
|
|
/// <summary>
|
/// 分页查询(根据联系人和结束状态)
|
/// </summary>
|
/// <param name="pagination">分页对象</param>
|
/// <param name="searchParam">查询参数</param>
|
/// <returns>查询结果 传入参数错误时结果为空</returns>
|
public IEnumerable<EC_OrderBasic> SelectModelPage(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
|
{
|
if (null == pagination)
|
return null;
|
else
|
{
|
}
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<EC_OrderBasic> result = null;
|
//执行分页存储
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(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;
|
|
}
|
|
/// <summary>
|
/// 分页查询(根据联系人和结束状态)-订单收款去除已冻结订单
|
/// </summary>
|
/// <param name="pagination">分页对象</param>
|
/// <param name="searchParam">查询参数</param>
|
/// <returns>查询结果 传入参数错误时结果为空</returns>
|
public IEnumerable<EC_OrderBasic> SelectModelPage_Financial(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
|
{
|
if (null == pagination)
|
return null;
|
else
|
{
|
}
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<EC_OrderBasic> result = null;
|
//执行分页存储
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Financial_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
|
{
|
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(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;
|
|
}
|
|
/// <summary>
|
/// 分页查询(根据联系人和结束状态)厂商订单,根据区域以及客户、业务经理查询
|
/// </summary>
|
/// <param name="pagination">分页对象</param>
|
/// <param name="searchParam">查询参数</param>
|
/// <returns>查询结果 传入参数错误时结果为空</returns>
|
public IEnumerable<EC_OrderBasic> SelectModelPage_Seller(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
|
{
|
if (null == pagination)
|
return null;
|
else
|
{
|
}
|
StringBuilder ssss = new StringBuilder();
|
if (int.Parse(searchParam[18].ToString()) > 0)
|
{
|
var oA_Staffs = _dataBase.SelectModel<OA_Staff>(" * ", " [OA_Staff] ", "[Keyid]='" + searchParam[20] + "'").FirstOrDefault();
|
|
|
if (!string.IsNullOrEmpty(oA_Staffs.ManageCountry))
|
{
|
var sys_CitySites = _dataBase.SelectModel<Sys_CitySite>(" * ", " [Sys_CitySite] ").ToList();
|
|
|
|
var ManageCity = oA_Staffs.ManageCity.Split(',').Where(x => x != "").ToArray();
|
|
|
var ManageCountry = (oA_Staffs.ManageCountry + "," + oA_Staffs.ManageCountry1).Split(',').Where(x => x != "").ToArray();
|
|
int[] intManageCity = new int[ManageCity.Length];
|
for (int i = 0; i < ManageCity.Length; i++)
|
{
|
intManageCity[i] = int.Parse(ManageCity[i]);
|
}
|
|
int[] intManageCountry = new int[ManageCountry.Length];
|
for (int i = 0; i < ManageCountry.Length; i++)
|
{
|
intManageCountry[i] = int.Parse(ManageCountry[i]);
|
}
|
var city = sys_CitySites.Where(x => intManageCity.Contains(x.Keyid)).ToList();
|
var country = sys_CitySites.Where(x => intManageCountry.Contains(x.Keyid)).ToList();
|
|
StringBuilder citystring = new StringBuilder();
|
for (int i = 0; i < city.Count; i++)
|
{
|
if (i == city.Count - 1)
|
{
|
citystring.Append("'" + city[i].Name.ToString() + "'");
|
}
|
else
|
{
|
citystring.Append("'" + city[i].Name.ToString() + "',");
|
}
|
|
}
|
|
StringBuilder countrystring = new StringBuilder();
|
for (int i = 0; i < country.Count; i++)
|
{
|
if (i == country.Count - 1)
|
{
|
countrystring.Append("'" + country[i].Name.ToString() + "'");
|
}
|
else
|
{
|
countrystring.Append("'" + country[i].Name.ToString() + "',");
|
}
|
|
}
|
|
|
|
var resultsss = _dataBase.SelectModel<OA_CorporateClients>(" axz.* ", " [OA_CorporateClients] axz join [OA_CustomerCommunications] bxz on axz.Keyid=bxz.Keyid ", " axz.FirmId ='" + searchParam[1] + "'and ( ( bxz.City in ( " + citystring.ToString() + ") and bxz.County in ( " + countrystring.ToString() + " ) )or axz.AccountManagerId='" + searchParam[20] + "' or axz.BusinessManagerId='" + searchParam[20] + "')").Select(x => x.Keyid).ToList();
|
//return null == result || result.Count < 1 ? null : result[0];
|
|
|
|
for (int i = 0; i < resultsss.Count; i++)
|
{
|
if (i == resultsss.Count - 1)
|
{
|
ssss.Append("'" + resultsss[i].ToString() + "'");
|
}
|
else
|
{
|
ssss.Append("'" + resultsss[i].ToString() + "',");
|
}
|
|
}
|
}
|
else
|
{
|
var resultsss = _dataBase.SelectModel<OA_CorporateClients>(" axz.* ", " [OA_CorporateClients] axz join [OA_CustomerCommunications] bxz on axz.Keyid=bxz.Keyid ", " axz.FirmId ='" + searchParam[1] + "'and ( axz.AccountManagerId='" + searchParam[20] + "' or axz.BusinessManagerId='" + searchParam[20] + "')").Select(x => x.Keyid).ToList();
|
//return null == result || result.Count < 1 ? null : result[0];
|
|
|
|
for (int i = 0; i < resultsss.Count; i++)
|
{
|
if (i == resultsss.Count - 1)
|
{
|
ssss.Append("'" + resultsss[i].ToString() + "'");
|
}
|
else
|
{
|
ssss.Append("'" + resultsss[i].ToString() + "',");
|
}
|
|
}
|
}
|
|
if (string.IsNullOrEmpty(ssss.ToString()))
|
{
|
ssss.Append("'4354654657568345429890'");
|
}
|
|
|
}
|
else
|
{
|
var resultsss = _dataBase.SelectModel<OA_CorporateClients>(" axz.* ", " [OA_CorporateClients] axz ", " axz.FirmId ='" + searchParam[1] + "' ").Select(x => x.Keyid).ToList();
|
//return null == result || result.Count < 1 ? null : result[0];
|
|
|
|
for (int i = 0; i < resultsss.Count; i++)
|
{
|
if (i == resultsss.Count - 1)
|
{
|
ssss.Append("'" + resultsss[i].ToString() + "'");
|
}
|
else
|
{
|
ssss.Append("'" + resultsss[i].ToString() + "',");
|
}
|
|
}
|
}
|
|
|
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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},
|
new SqlParameter("@Orderids",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=500},
|
|
};
|
|
/*
|
* 拷贝参数
|
*/
|
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
|
});
|
|
sqlParms.Add(new SqlParameter()
|
{
|
ParameterName = "@CorporateClientsId",
|
SqlDbType = SqlDbType.VarChar,
|
Size=int.MaxValue,
|
Value = ssss.ToString()
|
});
|
|
IList<EC_OrderBasic> result = null;
|
//执行分页存储
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Search_Seller_Ceshi", CommandType.StoredProcedure, sqlParms.ToArray()))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(reader);
|
}
|
if (result != null && result.Count > 0)
|
{
|
_eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase);
|
foreach (EC_OrderBasic ob in result)
|
{
|
if (IsComplainant(ob.Keyid.Value))
|
{
|
ob.IsComplainant = true;
|
}
|
|
EC_OrderPrintParameter _eC_OrderPrintParameter = _eC_OrderPrintParameterDAL.GetModel(ob.Keyid.Value);
|
InquiryCommonModel _inquiryCommonModel = null;
|
if (null == _eC_OrderPrintParameter)
|
{
|
_inquiryCommonModel = new InquiryCommonModel();
|
}
|
else
|
{
|
_inquiryCommonModel = SerializationHelper.DeSerialize(typeof(InquiryCommonModel), _eC_OrderPrintParameter.PrintParameter) as InquiryCommonModel;
|
}
|
|
ob.PrintSizeName = _inquiryCommonModel.PrintSizeName;
|
}
|
}
|
/*获取页数与返回数据条数*/
|
int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[32].Value);
|
pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0;
|
resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[33].Value);
|
pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0;
|
|
return result;
|
|
}
|
|
/// <summary>
|
/// 统计订单金额
|
/// </summary>
|
/// <param name="pagination">分页对象</param>
|
/// <param name="searchParam">查询参数</param>
|
/// <returns>查询结果 传入参数错误时结果为空</returns>
|
public EC_OrderBasic SumOrderMoney_receive(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
|
{
|
try
|
{
|
if (null == pagination)
|
return null;
|
else
|
{
|
}
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<EC_OrderBasic> result = null;
|
//执行分页存储
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SumMoney_receive", CommandType.StoredProcedure, sqlParms.ToArray()))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(reader);
|
}
|
if (result != null && result.Count > 0)
|
{
|
return result[0];
|
}
|
else
|
{
|
return null;
|
}
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
|
}
|
|
/// <summary>
|
/// 统计订单金额
|
/// </summary>
|
/// <param name="pagination">分页对象</param>
|
/// <param name="searchParam">查询参数</param>
|
/// <returns>查询结果 传入参数错误时结果为空</returns>
|
public EC_OrderBasic SumOrderMoney(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
|
{
|
try
|
{
|
if (null == pagination)
|
return null;
|
else
|
{
|
}
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<EC_OrderBasic> result = null;
|
//执行分页存储
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SumMoney", CommandType.StoredProcedure, sqlParms.ToArray()))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(reader);
|
}
|
if (result != null && result.Count > 0)
|
{
|
return result[0];
|
}
|
else
|
{
|
return null;
|
}
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
|
}
|
|
/// <summary>
|
/// 分页查询外协订单(根据联系人和结束状态)
|
/// </summary>
|
/// <param name="pagination">分页对象</param>
|
/// <param name="searchParam">查询参数</param>
|
/// <returns>查询结果 传入参数错误时结果为空</returns>
|
public IEnumerable<EC_OrderBasic> SelectModelPage_Outsource(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
|
{
|
if (null == pagination)
|
return null;
|
else
|
{
|
}
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<EC_OrderBasic> result = null;
|
//执行分页存储
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Outsource_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(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;
|
|
}
|
|
/// <summary>
|
/// 判断是否投诉过
|
/// </summary>
|
/// <param name="orderId"></param>
|
/// <returns></returns>
|
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<Model.EC_OrderBasic> result = _dataBase.SelectModel<Model.EC_OrderBasic>(selectTarget, fromSouce, condition);
|
if (result != null && result.Count > 0)
|
{
|
isComplainant = true;
|
}
|
return isComplainant;
|
}
|
|
/// <summary>
|
/// 生产安排分页查询
|
/// </summary>
|
/// <param name="pagination">分页对象</param>
|
/// <param name="searchParam">查询参数</param>
|
/// <returns>查询结果 传入参数错误时结果为空</returns>
|
public IEnumerable<EC_OrderBasic> SelectModelPageAg(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
|
{
|
if (null == pagination)
|
return null;
|
else
|
{
|
}
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<EC_OrderBasic> result = null;
|
//执行分页存储
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_AgOrderProduction_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(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;
|
|
}
|
|
/// <summary>
|
/// 封签分页查询
|
/// </summary>
|
/// <param name="pagination">分页对象</param>
|
/// <param name="searchParam">查询参数</param>
|
/// <returns>查询结果 传入参数错误时结果为空</returns>
|
public IEnumerable<EC_OrderBasic> SelectModelPageSeal(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
|
{
|
if (null == pagination)
|
return null;
|
else
|
{
|
}
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<EC_OrderBasic> result = null;
|
//执行分页存储
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_AgOrderSeal_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(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;
|
|
}
|
|
|
|
/// <summary>
|
/// 作业本送货分页查询
|
/// </summary>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<EC_OrderBasic> SelectModelPageWorkBook(Infrastructure.Query.Pagination pagination, Guid _MemberID, string txtBeginDate, string txtEndDate, string txtOrderId, string txtSearchyjname, string selCustormerManager, string selBusinessManager, string selOrderStates)
|
{
|
try
|
{
|
string condition = " ob.PrintTypeId = 37 ";
|
|
if (_MemberID != Guid.Empty)
|
condition += " and ob.SellerId = '" + _MemberID + "'";
|
|
if (!string.IsNullOrEmpty(txtBeginDate))
|
condition += string.Format(" and CAST(ob.CreateTime AS DATE) >='{0}'", txtBeginDate);
|
|
if (!string.IsNullOrEmpty(txtEndDate))
|
{
|
var EndDate = txtEndDate.ToDateTime2().Value.AddDays(1).ToShortDateString();
|
condition += string.Format(" and CAST(ob.CreateTime AS DATE) <='{0}'", EndDate);
|
}
|
|
|
if (!string.IsNullOrEmpty(txtOrderId))
|
condition += " and ob.SellerOrderId like '%" + txtOrderId + "%'";
|
|
if (!string.IsNullOrEmpty(txtSearchyjname))
|
condition += " and ob.DocumentName like '%" + txtSearchyjname + "%'";
|
|
if (!string.IsNullOrEmpty(selCustormerManager))
|
condition += " and oe.CustomerManagerId = '" + selCustormerManager + "'";
|
|
if (!string.IsNullOrEmpty(selBusinessManager))
|
condition += " and oe.BusinessManagerId = '" + selBusinessManager + "'";
|
|
if (!string.IsNullOrEmpty(selOrderStates))
|
condition += " and ob.OrderState = '" + selOrderStates + "'";
|
|
|
|
return _dataBase.SelectModelPage<EC_OrderBasic>(pagination, " ob.*,oe.shifouDelivery,oe.DeliveryOrderId,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,opy.Name as yssldw ", " EC_OrderBasic as ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Left Join Sys_Dictionary as opy On (opy.DicType='印刷单位' And opy.MeanValue = oe.printunit ) ", " ob.Keyid DESC ", " Keyid DESC ", condition);
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 单个查询
|
/// </summary>
|
/// <param name="query"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.EC_OrderBasic> SelectAllModel(Infrastructure.Query.Query query)
|
{
|
throw new NotImplementedException();
|
}
|
|
/// <summary>
|
/// 根据订单编号获取订单
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <returns></returns>
|
public EC_OrderBasic GetOrderById(int orderId)
|
{
|
if (1 < orderId)
|
return null;
|
else
|
{
|
}
|
IList<EC_OrderBasic> result = _dataBase.SelectModel<EC_OrderBasic>(" * ", "EC_OrderBasic ", string.Format(" Keyid = {0}", orderId));
|
return null == result || result.Count < 1 ? null : result[0];
|
}
|
|
|
/// <summary>
|
/// 根据客户ID和订单支付状态获取订单列表
|
/// </summary>
|
/// <param name="BuyerId">卖家ID</param>
|
/// <returns></returns>
|
public IList<EC_OrderBasic> GetOrderById(Guid BuyerId, int PayState)
|
{
|
IList<EC_OrderBasic> result = new List<EC_OrderBasic>();
|
|
result = _dataBase.SelectModel<EC_OrderBasic>(" * ", "EC_OrderBasic ", string.Format(" BuyerId = '{0}' and PayState!={1}", BuyerId,PayState));
|
return result;
|
}
|
/// <summary>
|
/// 受理订单
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <param name="commission">受理佣金(受理订单时站方收取的服务费)</param>
|
/// <returns></returns>
|
public bool AcceptOrder(int orderId, double commission)
|
{
|
if (0 >= orderId || 0 >= orderId)
|
{
|
return false;
|
}
|
else
|
{
|
}
|
if (0 >= commission || 0 >= commission)
|
{
|
return false;
|
}
|
else
|
{
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
|
return 1.Equals(sqlParms[2].Value);
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
|
}
|
|
|
|
/// <summary>
|
/// 锁单订单
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <param name="operater">操作人</param>
|
/// <returns></returns>
|
public bool SuodingOrder(int orderId, string operater)
|
{
|
if (0 >= orderId || 0 >= orderId)
|
{
|
return false;
|
}
|
else
|
{
|
}
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
|
new SqlParameter("@SuodanState",true),
|
new SqlParameter("@SuodanTime",DateTime.Now),
|
new SqlParameter("@SuodanOperator",operater),
|
new SqlParameter("@Keyid",orderId),
|
};
|
IList<SqlParameter> sqlParms1 = new List<SqlParameter>()
|
{
|
new SqlParameter("@Keyid",orderId),
|
};
|
try
|
{
|
string sql = "Update EC_OrderBasic Set [SuodanState]=@SuodanState,[SuodanTime]=@SuodanTime,[SuodanOperator]=@SuodanOperator where [Keyid] =@Keyid ";
|
_dataBase.ExecuteSql(sql, sqlParms.ToArray<SqlParameter>());
|
|
string sql1 = "Update CoreCmsPlanOrder Set [status]=2 where [orderkeyid] =@Keyid ";
|
_dataBase.ExecuteSql(sql1, sqlParms1.ToArray<SqlParameter>());
|
|
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 批量受理订单
|
/// </summary>
|
/// <param name="orderIds"></param>
|
/// <param name="commission"></param>
|
/// <returns></returns>
|
public bool AcceptOrderAll(string orderIds, double commission)
|
{
|
IList<int> orderIdList = new List<int>();
|
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;
|
}
|
|
/// <summary>
|
/// 根据卖家编号加载下一订单编号方法
|
/// </summary>
|
/// <param name="memberId">卖家编号</param>
|
/// <returns></returns>
|
public string LoadOrderIdBySellerId(Guid memberId)
|
{
|
if (Guid.Empty == memberId)
|
{
|
return string.Empty;
|
}
|
else
|
{
|
}
|
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@memberid",memberId){SqlDbType=SqlDbType.UniqueIdentifier}
|
};
|
try
|
{
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_GetOrderId", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>()))
|
{
|
return reader.Read() ? reader[0] as string : string.Empty;
|
}
|
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 根据编号批量删除数据
|
/// </summary>
|
/// <param name="currentOperator">当前操作人</param>
|
/// <param name="ids">编号集合</param>
|
/// <returns></returns>
|
public bool DeleteDataByIds(string currentOperator, params int[] ids)
|
{
|
return Database.DeleteDataByIds<EC_OrderBasic>(this, currentOperator, ids);
|
}
|
|
/// <summary>
|
/// 根据编号获取订单信息
|
/// </summary>
|
/// <param name="orderId">订单唯一编号</param>
|
/// <returns></returns>
|
public EC_OrderBasic SelectModelById(int orderId)
|
{
|
if (0 >= orderId)
|
{
|
return null;
|
}
|
else
|
{
|
}
|
List<EC_OrderBasic> result = null;
|
|
|
try
|
{
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SelectById", CommandType.StoredProcedure, new SqlParameter("@orderId", orderId)
|
{
|
SqlDbType = SqlDbType.Int
|
}))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderBasic>(reader);
|
}
|
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
|
return null == result || result.Count == 0 ? null : result[0];
|
}
|
|
|
/// <summary>
|
/// 根据订单编号获取订单
|
/// </summary>
|
/// <param name="orderIds">订单编号</param>
|
/// <returns></returns>
|
public IEnumerable<EC_OrderBasic> GetOrderByIds(string orderIds)
|
{
|
//return _eC_OrderBasicDAL.SelectModelById(orderId);
|
IList<EC_OrderBasic> result = _dataBase.SelectModel<EC_OrderBasic>(" ob.*,ts.OnlineMoney,ts.LineMoney,ts.UsedCredit,ts.PayedMoney ", "EC_OrderBasic as ob Inner Join Pay_TradingSingle as ts On ( ob.Keyid = ts.OrderId ) ", string.Format(" ob.Keyid in ({0})", orderIds));
|
return null == result || result.Count < 1 ? null : result;
|
}
|
|
/// <summary>
|
/// 根据订单编号获取自动外协订单
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <returns></returns>
|
public EC_OrderBasic SelectOutOrderById(int orderId)
|
{
|
if (1 > orderId)
|
return null;
|
else
|
{
|
}
|
IList<EC_OrderBasic> result = _dataBase.SelectModel<EC_OrderBasic>(" 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];
|
}
|
|
/// <summary>
|
/// 获取请求
|
/// </summary>
|
/// <param name="Keyid"></param>
|
/// <returns></returns>
|
public EC_OrderDialogue SelecEC_OrderDialogueById(Guid Keyid)
|
{
|
try
|
{
|
IList<EC_OrderDialogue> result = _dataBase.SelectModel<EC_OrderDialogue>(" * ", " EC_OrderDialogue ", string.Format(" Keyid = '{0}'", Keyid));
|
return null == result || result.Count < 1 ? null : result[0];
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 获取自动外协的请求
|
/// </summary>
|
/// <param name="Keyid"></param>
|
/// <returns></returns>
|
public EC_OrderDialogue SelecEC_OrderDialogueById_Out(int? orderid)
|
{
|
try
|
{
|
IList<EC_OrderDialogue> result = _dataBase.SelectModel<EC_OrderDialogue>(" * ", " 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;
|
}
|
}
|
|
/// <summary>
|
/// 根据自动外协订单编号获取来源订单
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <returns></returns>
|
public EC_OrderBasic SelectFromOutOrderById(int orderId)
|
{
|
if (1 > orderId)
|
return null;
|
else
|
{
|
}
|
IList<EC_OrderBasic> result = _dataBase.SelectModel<EC_OrderBasic>(" * ", " dbo.EC_OrderBasic ", string.Format(" OutId = {0}", orderId));
|
return null == result || result.Count < 1 ? null : result[0];
|
}
|
|
/// <summary>
|
/// 修改订单状态(无事务,仅内部使用)
|
/// </summary>
|
/// <param name="orderOperate">订单操作</param>
|
/// <returns></returns>
|
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<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
return isWin = 1.Equals(sqlParms[2].Value);
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 根据新增订单操作,并修改订单状态
|
/// </summary>
|
/// <param name="orderOperate"></param>
|
/// <returns></returns>
|
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<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
isWin = 1.Equals(sqlParms[2].Value);
|
if (isWin)
|
{
|
tran.Complete();
|
}
|
return isWin;
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 修改订单状态(非支付状态且不可修改为未受理和已受理)
|
/// </summary>
|
/// <param name="orderOperate">订单操作</param>
|
/// <returns></returns>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 更新订单支付状态
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <returns></returns>
|
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);
|
}
|
|
/// <summary>
|
/// 更新订单支付金额
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <param name="payWay">支付方式(1:收款、-1:付款)</param>
|
/// <param name="paymoney">支付金额</param>
|
/// <param name="usedCredit">使用授信(默认0)</param>
|
/// <returns></returns>
|
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);
|
}
|
|
/// <summary>
|
/// 收款(线下转账、现金)
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <param name="firmAccountRecord">操作记录</param>
|
/// <returns></returns>
|
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;
|
|
}
|
|
|
|
/// <summary>
|
/// 收款(线下转账、现金)
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <param name="firmAccountRecord">操作记录</param>
|
/// <returns></returns>
|
public bool ReceiveMoneyToQueren(int orderId, OA_FirmAccountRecord firmAccountRecord)
|
{
|
bool isWin = false;
|
if (0 >= orderId || !firmAccountRecord.Money.HasValue)
|
return false;
|
else
|
;
|
if ( 0 > firmAccountRecord.Money.Value)
|
return false;
|
else
|
;
|
try
|
{
|
OA_FirmAccountRecordDAL oA_FirmAccountRecordDAL = new OA_FirmAccountRecordDAL(_dataBase);
|
using (TransactionScope tran = new TransactionScope())
|
{
|
|
|
//更新订单支付金额
|
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;
|
|
}
|
|
/// <summary>
|
/// 收款(外协预付款、客户预付款)
|
/// </summary>
|
/// <param name="sellerId">卖家</param>
|
/// <param name="buyerId">买家</param>
|
/// <param name="orderId">订单编号</param>
|
/// <param name="money">金额</param>
|
/// <param name="operatTypeId">操作类型编号(2:预付款,3普通付款)</param>
|
/// <param name="subjectName">支付科目(订单付款,外协付款)</param>
|
/// <param name="currentOperator">操作人</param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 根据编号获取订单列表
|
/// </summary>
|
/// <param name="Keyids"></param>
|
/// <param name="FirmId"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.EC_OrderBasic> GetEC_OrderBasicListByKeyid(string Keyids, Guid FirmId)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(Keyids))
|
return null;//错误数据返会空
|
|
IList<EC_OrderBasic> result = _dataBase.SelectModel<EC_OrderBasic>("*", "EC_OrderBasic", string.Format(" Keyid in ({0}) and SellerId ='{1}' order by SellerOrderId DESC ", Keyids, FirmId)) as IList<EC_OrderBasic>;//执行查询
|
|
return result;//返回结果
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 订单完工
|
/// </summary>
|
/// <param name="m_EC_OrderOperateList"></param>
|
/// <param name="m_EC_OrderBasicList"></param>
|
/// <returns></returns>
|
public bool CompletedOrderList(List<EC_OrderOperate> m_EC_OrderOperateList, List<EC_OrderBasic> 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
|
|
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="query"></param>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<EC_OrderBasic> 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<EC_OrderBasic>(pagination, SELECTTARGET, fromSouce, orderbys[0], resultOrderBy);
|
}
|
|
#region 外表操作
|
|
/// <summary>
|
/// 支付订单
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <param name="payRequest">支付请求</param>
|
/// <returns></returns>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 发起订单属性改变请求
|
/// </summary>
|
/// <param name="dialogue">请求</param>
|
/// <returns></returns>
|
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<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
|
#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<SqlParameter> sqlParmsOut = new List<SqlParameter>()
|
// {
|
// 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<SqlParameter>());
|
// }
|
|
// #endregion
|
//}
|
//else
|
//{
|
// #region 根据订单判断是否来源于自动外协
|
|
// EC_OrderBasic m_EC_OrderBasicFromOut = SelectFromOutOrderById(dialogue.TargetOrder.Value);
|
// if (m_EC_OrderBasicFromOut != null && m_EC_OrderBasicFromOut.Keyid > 0)
|
// {
|
// IList<SqlParameter> sqlParmsFromOut = new List<SqlParameter>()
|
// {
|
// 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<SqlParameter>());
|
// }
|
|
// #endregion
|
//}
|
#endregion
|
|
return (int)sqlParms[0].Value;
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
|
}
|
|
/// <summary>
|
/// 卖家退单操作
|
/// </summary>
|
/// <param name="orderId"></param>
|
/// <param name="retireMony"></param>
|
/// <param name="operatorName"></param>
|
/// <returns></returns>
|
public int RetireOrderBySeller(int orderId, decimal retireMony, string operatorName)
|
{
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
|
return (int)sqlParms[0].Value;
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 执行订单属性改变请求
|
/// </summary>
|
/// <param name="requestId">要执行的目标数据</param>
|
/// <param name="memberId">执行者</param>
|
/// <returns></returns>
|
public int OrderPropertyChangeExecute(Guid requestId, Guid memberId)
|
{
|
if (Guid.Empty == requestId || Guid.Empty == memberId)
|
{
|
return 0;
|
}
|
else
|
{
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
|
return (int)sqlParms[0].Value;
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 答复订单属性改变请求
|
/// </summary>
|
/// <param name="requestId">要答复的目标数据</param>
|
/// <param name="memberId">答复人</param>
|
/// <param name="isAllow">是否同意</param>
|
/// <returns></returns>
|
public int OrderPropertyChangeReply(Guid requestId, Guid memberId, bool isAllow)
|
{
|
if (Guid.Empty == requestId || Guid.Empty == memberId)
|
{
|
return 0;
|
}
|
else
|
{
|
}
|
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
|
#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<SqlParameter> sqlParmsOut = new List<SqlParameter>()
|
// {
|
// 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<SqlParameter>());
|
// }
|
// }
|
|
// #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<SqlParameter> sqlParmsOut = new List<SqlParameter>()
|
// {
|
// 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<SqlParameter>());
|
// }
|
// }
|
|
// #endregion
|
//}
|
#endregion
|
|
return (int)sqlParms[0].Value;
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
|
}
|
|
/// <summary>
|
/// 根据接手人查询属性变更请求集合
|
/// </summary>
|
/// <param name="memberId">接手用户</param>
|
/// <returns></returns>
|
public IEnumerable<EC_OrderDialogue> SelectPropertyChangeRequest(Guid memberId)
|
{
|
|
if (Guid.Empty == memberId)
|
{
|
return null;
|
}
|
else
|
{
|
}
|
List<EC_OrderDialogue> result = null;
|
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@ReceiverId",memberId){SqlDbType=SqlDbType.UniqueIdentifier}
|
};
|
|
try
|
{
|
using (IDataReader reader = _dataBase.QueryDataReader("sp_OrderPropertyChangeRequestGetter", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>()))
|
{
|
result = _dataBase.ReadDataToModel<EC_OrderDialogue>(reader);
|
}
|
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return result;
|
}
|
|
/// <summary>
|
/// 送货
|
/// </summary>
|
/// <param name="awbInfo">货运信息</param>
|
/// <returns></returns>
|
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<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 根据编号获取货运信息
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <returns></returns>
|
public EC_AwbInfo SelectAwbInfoById(int orderId)
|
{
|
IList<EC_AwbInfo> result = _dataBase.SelectModel<EC_AwbInfo>(" * ", "EC_AwbInfo", string.Format(" Keyid={0} ", orderId)) as IList<EC_AwbInfo>;
|
return null == result || result.Count < 1 ? null : result[0];
|
}
|
|
/// <summary>
|
/// 根据订单编号获取订单操作信息
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <returns></returns>
|
public IEnumerable<EC_OrderOperate> SelectOrderOperates(int orderId)
|
{
|
IList<EC_OrderOperate> 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<EC_OrderOperate>(reader);
|
}
|
return result;
|
|
|
|
}
|
|
/// <summary>
|
/// 根据订单编号获取收货地址信息
|
/// </summary>
|
/// <param name="orderIds">订单编号集合</param>
|
/// <returns></returns>
|
public IEnumerable<EC_AcceptWayByOrder> SelectOrderAddress(string orderIds)
|
{
|
IList<EC_AcceptWayByOrder> 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<EC_AcceptWayByOrder>(reader);
|
}
|
return result;
|
}
|
|
/// <summary>
|
/// 根据订单编号确认收货
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <param name="memberId">买家编号</param>
|
/// <returns></returns>
|
public bool ConfirmAcceptById(int orderId, Guid memberId)
|
{
|
/*
|
新增送货信息
|
*/
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
return 1.Equals(sqlParms[0].Value);
|
}
|
|
/// <summary>
|
/// 判断是否已经操作
|
/// </summary>
|
/// <param name="keyid"></param>
|
/// <param name="orderState"></param>
|
/// <param name="opType"></param>
|
/// <returns></returns>
|
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<EC_OrderOperate> result = _dataBase.SelectModel<EC_OrderOperate>(" 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;
|
}
|
|
/// <summary>
|
/// 修改打印状态
|
/// </summary>
|
/// <param name="orderId"></param>
|
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
|
{
|
|
}
|
}
|
|
|
/// <summary>
|
/// 修改打印状态
|
/// </summary>
|
/// <param name="orderId"></param>
|
public bool Updatejinedanjia(int orderId, decimal SumPrice, decimal UnitPrice,int num)
|
{
|
try
|
{
|
string sqlStr = string.Empty;
|
sqlStr = "UPDATE EC_OrderBasic SET SumPrice="+ SumPrice + " ,UnitPrice="+ UnitPrice + " WHERE Keyid=@orderId;UPDATE [EC_OrderExtend] SET [PrintNum]=" + num + " WHERE Keyid="+ orderId ;
|
SqlParameter par = new SqlParameter("@orderId", orderId);
|
_dataBase.ExecuteSql(sqlStr, par);
|
}
|
catch
|
{
|
|
}
|
|
return true;
|
}
|
|
/// <summary>
|
/// 修改打印状态
|
/// </summary>
|
/// <param name="orderId"></param>
|
public void UpdatePrintfengqianState(int orderId)
|
{
|
try
|
{
|
string sqlStr = string.Empty;
|
sqlStr = "UPDATE EC_OrderExtend SET IsPrintfengqian='true' WHERE Keyid=@orderId";
|
SqlParameter par = new SqlParameter("@orderId", orderId);
|
_dataBase.ExecuteSql(sqlStr, par);
|
}
|
catch
|
{
|
|
}
|
}
|
|
|
/// <summary>
|
/// 修改打印状态
|
/// </summary>
|
/// <param name="orderId"></param>
|
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
|
{
|
|
}
|
}
|
|
/// <summary>
|
/// 查询后道(3)整单(4)
|
/// </summary>
|
/// <param name="pagination"></param>
|
/// <param name="MemberId"></param>
|
/// <param name="StartCreatTime"></param>
|
/// <param name="EndCreatTime"></param>
|
/// <param name="StartReturnTime"></param>
|
/// <param name="EndReturnTime"></param>
|
/// <param name="Creater"></param>
|
/// <param name="OutFirm"></param>
|
/// <param name="WorkStates"></param>
|
/// <param name="OutOrderId"></param>
|
/// <param name="RelationType"></param>
|
/// <returns></returns>
|
public IEnumerable<EC_OrderBasic> 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<Model.EC_OrderBasic>(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;
|
}
|
}
|
|
/// <summary>
|
/// 根据订单编号获取订单
|
/// </summary>
|
/// <param name="orderId">订单编号</param>
|
/// <returns></returns>
|
public Pay_TradingSingle GetPay_TradingSingleById(int orderId)
|
{
|
if (1 > orderId)
|
return null;
|
else
|
{
|
}
|
IList<Pay_TradingSingle> result = _dataBase.SelectModel<Pay_TradingSingle>(" * ", "Pay_TradingSingle ", string.Format(" OrderId = {0}", orderId));
|
return null == result || result.Count < 1 ? null : result[0];
|
}
|
|
/// <summary>
|
/// 判断某订单是否是另一订单的自动外协订单
|
/// </summary>
|
/// <param name="orderId"></param>
|
/// <returns></returns>
|
public bool IsOutOrder(int orderId)
|
{
|
bool isOutOrder = false;
|
string condition = " OutId=" + orderId;
|
IList<EC_OrderBasic> result = _dataBase.SelectModel<EC_OrderBasic>("*", "EC_OrderBasic", condition);
|
if (result != null && result.Count > 0)
|
{
|
isOutOrder = true;
|
}
|
return isOutOrder;
|
}
|
|
/// <summary>
|
/// 自动外协订单
|
/// </summary>
|
/// <param name="OLD_orderBasic"></param>
|
/// <param name="orderBasic"></param>
|
/// <param name="acceptWayByOrder"></param>
|
/// <param name="orderPrintParameter"></param>
|
/// <param name="m_EC_OrderOperate"></param>
|
/// <param name="RelationTypeid"></param>
|
/// <param name="commission"></param>
|
/// <param name="payRequest"></param>
|
/// <returns></returns>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// WEB服务自动完成订单
|
/// </summary>
|
public void AutoCompleteOrderByWebService()
|
{
|
try
|
{
|
IList<EC_OrderBasic> result = _dataBase.SelectModel<EC_OrderBasic>(" * ", " EC_OrderBasic ", string.Format(" OrderState <> 1 AND OrderState <> 6 AND OrderState <> -1 AND OrderState > 0 AND DeliveryTime <=GETDATE() AND OrderTypeId <=0 ")) as IList<EC_OrderBasic>;//执行查询
|
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
|
|
|
/// <summary>
|
/// 修改打印状态
|
/// </summary>
|
/// <param name="orderId"></param>
|
public void UpdateDeliveryOrderId(int orderId,Guid DeliveryOrderId)
|
{
|
try
|
{
|
string sqlStr = string.Empty;
|
sqlStr = "UPDATE EC_OrderExtend SET DeliveryOrderId=@DeliveryOrderId WHERE Keyid=@orderId";
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@DeliveryOrderId", DeliveryOrderId),
|
new SqlParameter("@orderId", orderId),
|
};
|
|
_dataBase.ExecuteSql(sqlStr, sqlParms.ToArray());
|
}
|
catch
|
{
|
|
}
|
}
|
|
|
/// <summary>
|
/// 根据发货单id查询
|
/// </summary>
|
/// <param name="deliverorderId"></param>
|
/// <param name="FirmId"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.EC_OrderBasic> GetEC_OrderBasicListBydeliverorderId(Guid deliverorderId, Guid FirmId)
|
{
|
try
|
{
|
if (deliverorderId==null || deliverorderId.Equals(Guid.Empty))
|
return null;//错误数据返会空
|
|
IList<EC_OrderBasic> result = _dataBase.SelectModel<EC_OrderBasic>(" 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<EC_OrderBasic>;//执行查询
|
|
return result;//返回结果
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
}
|
}
|