/**
* LF_OrderFileDAL.cs
*
* 功 能: 卖家文件空间扩展类
* 类 名: LF_OrderFileDAL
*
* Ver 变更日期 负责人 变更内容
* ───────────────────────────────────
* V0.01 2013-6-17 16:26 吴崎均 初版
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL;
using CY.Model;
using System.Data.SqlClient;
using System.Data;
using System.Transactions;
using CY.Infrastructure.Common;
using System.IO;
using CY.Infrastructure.Query;
namespace CY.SQLDAL
{
public class LF_OrderFilesDAL : ILF_OrderFilesDAL
{
private Database _dataBase = null;
public LF_OrderFilesDAL()
{
_dataBase = new Database();
}
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
LF_OrderFile orderFile = model as LF_OrderFile;
SqlParameter[] parameters = {
//new SqlParameter("@returnValue", SqlDbType.Int,4),
new SqlParameter("@OrderId", SqlDbType.Int,4),
new SqlParameter("@FileName", SqlDbType.VarChar,250),
new SqlParameter("@FilePath", SqlDbType.VarChar,1000),
new SqlParameter("@FileSize", SqlDbType.Decimal,5),
new SqlParameter("@FileType", SqlDbType.VarChar,10),
new SqlParameter("@FileState", SqlDbType.Int,4),
new SqlParameter("@UploadTime", SqlDbType.DateTime,8),
new SqlParameter("@UploaderId", SqlDbType.UniqueIdentifier,16),
new SqlParameter("@SellerId", SqlDbType.UniqueIdentifier,16)};
//new SqlParameter("@ClientPath", SqlDbType.VarChar,1000)};
parameters[0].Value = orderFile.OrderId;
parameters[1].Value = orderFile.FileName;
parameters[2].Value = orderFile.FilePath;
parameters[3].Value = orderFile.FileSize;
parameters[4].Value = orderFile.FileType;
parameters[5].Value = orderFile.FileState;
parameters[6].Value = orderFile.UploadTime;
parameters[7].Value = orderFile.UploaderId;
parameters[8].Value = orderFile.SellerId;
//parameters[8].Value = orderFile.ClientPath;
try
{
_dataBase.Query("sp_LF_OrderFiles_Insert", CommandType.StoredProcedure, parameters);
//return 1.Equals(parameters[0].Value);
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 更新一条数据
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
LF_OrderFile orderFile = model as LF_OrderFile;
SqlParameter[] parameters = {
//new SqlParameter("@returnValue", SqlDbType.Int,4),
new SqlParameter("@OrderId", SqlDbType.Int,4),
new SqlParameter("@FileName", SqlDbType.VarChar,250),
new SqlParameter("@FilePath", SqlDbType.VarChar,1000),
new SqlParameter("@FileSize", SqlDbType.Decimal,5),
new SqlParameter("@FileType", SqlDbType.VarChar,10),
new SqlParameter("@FileState", SqlDbType.Int,4),
new SqlParameter("@UploadTime", SqlDbType.DateTime,8),
new SqlParameter("@UploaderId", SqlDbType.UniqueIdentifier,16),
new SqlParameter("@SellerId", SqlDbType.UniqueIdentifier,16)};
//new SqlParameter("@ClientPath", SqlDbType.VarChar,1000)};
parameters[0].Value = orderFile.OrderId;
parameters[1].Value = orderFile.FileName;
parameters[2].Value = orderFile.FilePath;
parameters[3].Value = orderFile.FileSize;
parameters[4].Value = orderFile.FileType;
parameters[5].Value = orderFile.FileState;
parameters[6].Value = orderFile.UploadTime;
parameters[7].Value = orderFile.UploaderId;
parameters[8].Value = orderFile.SellerId;
//parameters[8].Value = orderFile.ClientPath;
try
{
_dataBase.Query("sp_LF_OrderFiles_Update", CommandType.StoredProcedure, parameters);
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除一条数据
///
public bool DeleteFiles(int OrderId)
{
SqlParameter[] parameters = {new SqlParameter("@OrderId", SqlDbType.Int, 4) };
parameters[0].Value = OrderId;
try
{
_dataBase.Query("sp_LF_OrderFiles_DeleteRow", CommandType.StoredProcedure, parameters);
return true;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 得到一个对象实体
///
public LF_OrderFile GetModel(int OrderId)
{
if (OrderId == null)
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "LF_OrderFiles", string.Format(" OrderId='{0}'", OrderId)) as IList;//执行查询
return (null == result || result.Count == 0) ? null : result[0];//返回结果
}
///
///
///
///
///
///
public bool AddOrderFiles(EC_FirmInfo m_EC_FirmInfo, LF_OrderFile m_LF_OrderFile)
{
try
{
bool result = false;
EC_FirmInfoDAL eC_FirmInfoDAL = new EC_FirmInfoDAL();
LF_OrderFile _lF_OrderFile = GetModel(Convert.ToInt32(m_LF_OrderFile.OrderId));
using (TransactionScope t_TransactionScope = new TransactionScope())
{
if (_lF_OrderFile != null)
{
result = DeleteFiles(Convert.ToInt32(_lF_OrderFile.OrderId));
if(result)
{
File.Delete(_lF_OrderFile.FilePath);
m_EC_FirmInfo.FileSize = m_EC_FirmInfo.FileSize - (Convert.ToInt32(m_LF_OrderFile.FileSize) - Convert.ToInt32(_lF_OrderFile.FileSize));
}
}
result = InserModel(m_LF_OrderFile);
if (result)
{
result = eC_FirmInfoDAL.UpdateModel(m_EC_FirmInfo);
if (result)
{
t_TransactionScope.Complete();
}
}
}
return result;
}
catch (Exception ex)
{
throw ex;
}
}
/////
///// 新增
/////
/////
/////
//public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
//{
// return false;
//}
/////
///// 修改
/////
/////
/////
//public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
//{
// return false;
//}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
return false;
}
///
/// 查询符合条件的文件列表
///
///
///
///
///
///
///
///
public IList GetModeListByMy(Guid MemberId, DateTime startTime, DateTime endTime, string FilesName, string CustomerName,int FilesStatus, Pagination pa)
{
string selectTarget = " a.*,b.FileSize as SurplusFileSize, c.SellerOrderId as Ordernumber,c.BuyerName as SellerName";
string fromSouce = " LF_OrderFiles a INNER JOIN dbo.EC_FirmInfo b ON a.SellerId=b.MemberId INNER JOIN dbo.EC_OrderBasic c ON a.OrderId=c.KeyId where a.SellerId='" + MemberId.ToString() + "' ";
if (startTime != DateTime.MinValue && endTime == DateTime.MaxValue)
{
fromSouce += " and a.UploadTime>='" + startTime + "'";
}
else if (startTime == DateTime.MinValue && endTime != DateTime.MaxValue)
{
fromSouce += " and a.UploadTime<='" + endTime + "'";
}
else if (startTime != DateTime.MinValue && endTime != DateTime.MaxValue)
{
fromSouce += " and a.UploadTime>='" + startTime + "' and a.UploadTime<='" + endTime + "'";
}
if (!string.IsNullOrEmpty(FilesName))
{
fromSouce += " and a.FileName like '%" + FilesName + "%'";
}
if (!string.IsNullOrEmpty(CustomerName))
{
fromSouce += " and c.BuyerName like '%" + CustomerName + "%'";
}
if (FilesStatus != -1)
{
fromSouce += " and a.FileState='" + FilesStatus + "'";
}
return _dataBase.SelectModelPage(pa, selectTarget, fromSouce, "a.UploadTime desc ", "UploadTime desc ", string.Empty);
}
///
/// 批量删除记录
///
///
///
public bool DeleteModelList(List keyIdList)
{
if (keyIdList == null || keyIdList.Count == 0)
{
return true;
}
EC_FirmInfoDAL eC_FirmInfoDAL = new EC_FirmInfoDAL();
EC_FirmInfo _ecFirmInfoModel = null;
bool isSuccess = true;
using (TransactionScope scope = new TransactionScope())
{
foreach (int keyId in keyIdList)
{
LF_OrderFile model = GetModel(keyId);
isSuccess = DeleteFiles(Convert.ToInt32(model.OrderId));
_ecFirmInfoModel = eC_FirmInfoDAL.GetModelByMemberId(model.SellerId);
if (isSuccess)
{
if (File.Exists(model.FilePath))
{
File.Delete(model.FilePath);
}
_ecFirmInfoModel.FileSize = _ecFirmInfoModel.FileSize + Convert.ToInt32(model.FileSize);
eC_FirmInfoDAL.UpdateModel(_ecFirmInfoModel);
}
else
{
break;
}
}
if (isSuccess)
scope.Complete();
}
return isSuccess;
}
}
}