using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.WebService;
using System.Data;
using System.Data.SqlClient;
using CY.WebService.Logging;
namespace CyinOrderWebService
{
public class WebServiceBLL
{
///
/// 自动对规定时间内的订单进行收货操作
///
public void AcceptOverTimeOrder()
{
try
{
List d = new List();
Database _dataBase = new Database();
DataTable OrderTable = _dataBase.SelectModel(" * ", " EC_OrderBasic ", string.Format(" OrderState <> 1 AND OrderState <> 6 AND OrderState <> -1 AND OrderState > 0 AND DeliveryTime <=GETDATE() AND OrderTypeId <=0 "));//执行查询
DataRow[] result = OrderTable.Select();
int i = -1;
while (++i < result.Length)
{
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
new SqlParameter(){ParameterName="@orderId",Value=int.Parse(result[i]["Keyid"].ToString())},
new SqlParameter(){ParameterName="@memberId",Value=Guid.Parse(result[i]["BuyerId"].ToString()),SqlDbType=SqlDbType.UniqueIdentifier}
};
_dataBase.Query("sp_EC_Order_AcceptById", CommandType.StoredProcedure, sqlParms.ToArray());
}
}
catch (Exception ex)
{
Log4NetAdapter log_Log4NetAdapter = new Log4NetAdapter();
log_Log4NetAdapter.Log(ex.Message);
}
}
///
/// 自动删除超过规定时间的线上订单
///
public void DelOverTimeOrder()
{
try
{
List d = new List();
Database _dataBase = new Database();
DataTable OrderTable = _dataBase.SelectModel(" * ", " EC_OrderBasic ", string.Format(" PayState = 0 AND OrderState = 1 AND CreateTime <='{0}' AND OrderTypeId <=0 ", DateTime.Now.AddDays(-int.Parse(System.Configuration.ConfigurationManager.AppSettings["OrderOverDays"].ToString())).ToString()));//执行查询
DataRow[] result = OrderTable.Select();
int i = -1;
while (++i < result.Length)
{
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@Keyid",Value=int.Parse(result[i]["Keyid"].ToString())}
};
_dataBase.Query("sp_EC_OrderBasic_DeleteOnlineOverTime", CommandType.StoredProcedure, sqlParms.ToArray());
}
}
catch (Exception ex)
{
Log4NetAdapter log_Log4NetAdapter = new Log4NetAdapter();
log_Log4NetAdapter.Log(ex.Message);
}
}
///
/// 自动删除超过规定时间的线上订单
///
public void RemovedlOverTimeOrder()
{
try
{
string time = DateTime.Now.AddDays(-int.Parse(System.Configuration.ConfigurationManager.AppSettings["RecruitmentsOverDays"].ToString())).ToString();
Database _dataBase = new Database();
_dataBase.ExecuteSql(" UPDATE OA_StaffRecruitments SET R_Status='1' WHERE R_Status='2' AND R_StartTime <='" + time + "' ");
}
catch (Exception ex)
{
Log4NetAdapter log_Log4NetAdapter = new Log4NetAdapter();
log_Log4NetAdapter.Log(ex.Message);
}
}
///
/// 将已到期会员状态修改为已到期
///
public void SetMemberStatus()
{
try
{
List d = new List();
Database _dataBase = new Database();
DataTable OrderTable = _dataBase.SelectModel(" * ", " EC_MemberBasic ", string.Format(" MemberType = '印刷厂商' AND ExpirationTime <= GETDATE() AND UseState='3' "));//执行查询
DataRow[] result = OrderTable.Select();
int i = -1;
while (++i < result.Length)
{
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@MemberId",Value=Guid.Parse(result[i]["MemberId"].ToString()),SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter(){ParameterName="@UseState",Value=1}
};
_dataBase.Query("sp_EC_MemberBasic_FirmOverTime", CommandType.StoredProcedure, sqlParms.ToArray());
}
}
catch (Exception ex)
{
Log4NetAdapter log_Log4NetAdapter = new Log4NetAdapter();
log_Log4NetAdapter.Log(ex.Message);
}
}
///
/// 15天未还款自动降低客户信誉
///
public void LowerCreditLevel()
{
try
{
Database _dataBase = new Database();
DataTable OrderTable = _dataBase.SelectModel(" t.PayeeId,MIN(t.CreateTime) AS CreateTime ", " (SELECT PayeeId,CreateTime FROM dbo.Pay_IncExpRecord AS a WHERE a.BalanceAccount='9' AND a.TradingType=1 AND a.Keyid > ISNULL((SELECT TOP(1) Keyid FROM dbo.Pay_IncExpRecord WHERE BalanceAccount='14' AND a.PayeeId = PayId ORDER BY Keyid DESC),0) AND a.CreateTime > ISNULL((SELECT TOP(1) CreateTime FROM dbo.Pay_CreditRecard WHERE a.PayeeId = PayId ORDER BY Keyid DESC),'2000-01-01 00:00:00')) t ", string.Format(" 1=1 GROUP BY t.PayeeId ORDER BY MIN(t.CreateTime) "));//执行查询
DataRow[] result = OrderTable.Select();
int i = -1;
while (++i < result.Length)
{
int Payeeid = int.Parse(result[i]["PayeeId"].ToString());
DateTime CreatTime = DateTime.Parse(result[i]["CreateTime"].ToString());
if (CreatTime.AddDays(15) < DateTime.Now)
{
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@PayeeId",Value=Payeeid}
};
_dataBase.Query("sp_Pay_PaymentAccount_LowerCreditLevel", CommandType.StoredProcedure, sqlParms.ToArray());
}
}
}
catch (Exception ex)
{
Log4NetAdapter log_Log4NetAdapter = new Log4NetAdapter();
log_Log4NetAdapter.Log(ex.Message);
}
}
}
}