using System; using System.Collections.Generic; using System.Linq; using System.Text; using CY.IDAL.Inquiry; using System.Transactions; using CY.Model; using System.Data.SqlClient; using System.Data; namespace CY.SQLDAL { /// /// 画册快速询价操作接口 --SQL实现 /// public class PictureAlbumFastCostDAL:IPictureAlbumFastCostDAL { Database _dataBase = null; public PictureAlbumFastCostDAL() { _dataBase = new Database(); } public IList GetModelList(Guid inquiryId, int coverGramWeight, int insideGramWeight) { string selectTarget = @" a.CopiesCount, ( SELECT MAX(b.Price) FROM Inquiry_PictureAlbumFastCost b WHERE b.CopiesCount=a.CopiesCount AND b.PaginalCount=8 and b.FirmId='{0}' AND b.CoverGramWeight='{1}' AND b.InsideGramWeight='{2}' ) AS Price8, ( SELECT MAX(b.Price) FROM Inquiry_PictureAlbumFastCost b WHERE b.CopiesCount=a.CopiesCount AND b.PaginalCount=12 and b.FirmId='{0}' AND b.CoverGramWeight='{1}' AND b.InsideGramWeight='{2}' ) AS Price12, ( SELECT MAX(b.Price) FROM Inquiry_PictureAlbumFastCost b WHERE b.CopiesCount=a.CopiesCount AND b.PaginalCount=16 and b.FirmId='{0}' AND b.CoverGramWeight='{1}' AND b.InsideGramWeight='{2}' ) AS Price16, ( SELECT MAX(b.Price) FROM Inquiry_PictureAlbumFastCost b WHERE b.CopiesCount=a.CopiesCount AND b.PaginalCount=20 and b.FirmId='{0}' AND b.CoverGramWeight='{1}' AND b.InsideGramWeight='{2}' ) AS Price20, ( SELECT MAX(b.Price) FROM Inquiry_PictureAlbumFastCost b WHERE b.CopiesCount=a.CopiesCount AND b.PaginalCount=24 and b.FirmId='{0}' AND b.CoverGramWeight='{1}' AND b.InsideGramWeight='{2}' ) AS Price24, ( SELECT MAX(b.Price) FROM Inquiry_PictureAlbumFastCost b WHERE b.CopiesCount=a.CopiesCount AND b.PaginalCount=28 and b.FirmId='{0}' AND b.CoverGramWeight='{1}' AND b.InsideGramWeight='{2}' ) AS Price28, ( SELECT MAX(b.Price) FROM Inquiry_PictureAlbumFastCost b WHERE b.CopiesCount=a.CopiesCount AND b.PaginalCount=32 and b.FirmId='{0}' AND b.CoverGramWeight='{1}' AND b.InsideGramWeight='{2}' ) AS Price32, ( SELECT MAX(b.Price) FROM Inquiry_PictureAlbumFastCost b WHERE b.CopiesCount=a.CopiesCount AND b.PaginalCount=36 and b.FirmId='{0}' AND b.CoverGramWeight='{1}' AND b.InsideGramWeight='{2}' ) AS Price36 "; selectTarget = string.Format(selectTarget, inquiryId.ToString(), coverGramWeight,insideGramWeight); string fromSouce = " Inquiry_PictureAlbumFastCost a "; string condition = " a.FirmId='" + inquiryId.ToString() + "' and a.CoverGramWeight=" + coverGramWeight + " AND a.InsideGramWeight=" + insideGramWeight + " GROUP BY a.CopiesCount ORDER BY a.CopiesCount"; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); return result; } /// /// 获取画册快速询价价格 /// /// /// /// /// /// /// public decimal GetPictureAlbumFastCost(int coverGramWeight, int insideGramWeight, int printCount, int pageNum, Guid inquiryId) { string selectTarget = " Price "; string fromSouce = " Inquiry_PictureAlbumFastCost "; string condition = " FirmId='" + inquiryId.ToString() + "' and CoverGramWeight=" + coverGramWeight + " and InsideGramWeight=" + insideGramWeight + " and CopiesCount=" + printCount + " and PaginalCount=" + pageNum; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result != null && result.Count > 0) { return result[0].Price; } else { return 0; } } public bool SaveModelList(IList list, Model.Inquiry.InquiryCondition inquiryCondition) { bool isSuccess = true; using (TransactionScope scope = new TransactionScope()) { //执行复制全部询价参数数据 if (inquiryCondition.IsFirstSave()) { new CommonInquiryHelper(_dataBase).CopyALLInquiryParameter(inquiryCondition); } foreach (Inquiry_PictureAlbumFastCost model in list) { isSuccess = UpdateModel(model); if (!isSuccess) break; } if (isSuccess) scope.Complete(); } return isSuccess; } public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.Inquiry_PictureAlbumFastCost trueModel = model as Model.Inquiry_PictureAlbumFastCost; if (trueModel == null) { return false; } SqlParameter[] parameters = { new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16), new SqlParameter("@CoverGramWeight", SqlDbType.Int,4), new SqlParameter("@InsideGramWeight", SqlDbType.Int,4), new SqlParameter("@CopiesCount", SqlDbType.Int,4), new SqlParameter("@PaginalCount", SqlDbType.Int,4), new SqlParameter("@Price", SqlDbType.Money,8), new SqlParameter("@Operater", SqlDbType.VarChar,20), new SqlParameter("@LastUpdateTime", SqlDbType.DateTime) }; parameters[0].Value = trueModel.FirmId; parameters[1].Value = trueModel.CoverGramWeight; parameters[2].Value = trueModel.InsideGramWeight; parameters[3].Value = trueModel.CopiesCount; parameters[4].Value = trueModel.PaginalCount; parameters[5].Value = trueModel.Price; parameters[6].Value = trueModel.Operater; parameters[7].Value = trueModel.LastUpdateTime; try { _dataBase.Query("Inquiry_PictureAlbumFastCost_Update", CommandType.StoredProcedure, parameters); } catch (Exception ex) { throw ex; } return true; } public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } } }