using Common; using Model; using Oracle.DataAccess.Client; using System; using System.Collections.Generic; using System.Data.Common; using System.Text; namespace Dao { public class GwChargeLogDao : IDisposable { public List LoadInfoList(string clientID, string clientName, string spID, DateTime sDate, DateTime eDate, out int recordcount, int pageSize, int PageIndex) { List list = new List(); recordcount = 0; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("from GW_CHARGE_LOG_VIEW where OCCUR_TIME BETWEEN :SDATE AND :EDATE AND (SP_ID=:SP_ID OR :SP_ID IS NULL) AND (CLIENT_ID=:CLIENT_ID OR :CLIENT_ID IS NULL) AND (CLIENT_NAME LIKE :CLIENT_NAME OR :CLIENT_NAME='%%')"); OracleParameter[] oracleParameterArray = new OracleParameter[5] { new OracleParameter(":SP_ID", (object) spID), new OracleParameter(":CLIENT_ID", (object) clientID), new OracleParameter(":CLIENT_NAME", (object) ("%" + clientName + "%")), new OracleParameter(":SDATE", (object) sDate), new OracleParameter(":EDATE", (object) eDate) }; using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count " + stringBuilder.ToString(), OracleHelper.Connection, oracleParameterArray)) { while (((DbDataReader)reader).Read()) recordcount = this.ReadCount(reader); } stringBuilder.Append(" order by CHARGE_ID DESC"); using (OracleDataReader reader = OracleHelper.ExecuteReader(PubConstant.doOracleSql(PageIndex, pageSize, recordcount, "select * " + stringBuilder.ToString()).ToString(), OracleHelper.Connection, oracleParameterArray)) { while (((DbDataReader)reader).Read()) { GwChargeLog o = new GwChargeLog(); if (this.ReadInfo(reader, o)) list.Add(o); } } return list; } public bool Add(GwChargeLog o) { return OracleHelper.ExecuteSql("insert into GW_CHARGE_LOG(CHARGE_ID,SP_ID,OCCUR_TIME,AMOUNT,OPERATOR_ID,FLAG,FLUSH_TIME,REMARK,PAYMENT_TYPE,PAYLOG_ID) values(GW_CHARGE_LOG_SEQ.nextval,:SpID,sysdate,:Amount,:OperatorId,0,sysdate,:Remark,:PayMentType,:PayLogID)", OracleHelper.Connection, new OracleParameter(":SpID", (object)o.SpID), new OracleParameter(":Amount", (object)o.Amount), new OracleParameter(":OperatorID", (object)o.OperatorID), new OracleParameter(":Remark", (object)o.Remark), new OracleParameter(":PayMentType", (object)o.PayMentType), new OracleParameter(":PayLogID", (object)o.PayLogID)) > 0; } public bool UpdatePayState(GwChargeLog o) { return OracleHelper.ExecuteSql("update GW_CHARGE_LOG set FLAG=:FLAG WHERE CHARGE_ID=:CHARGE_ID ", OracleHelper.Connection, new OracleParameter(":FLAG", (object)o.Flag), new OracleParameter("CHARGE_ID", (object)o.ChargeID)) > 0; } public GwChargeLog Get(string chargeID) { GwChargeLog o = new GwChargeLog(); if (string.IsNullOrEmpty(chargeID) || string.Equals("0", chargeID)) return o; using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("select * from GW_CHARGE_LOG where CHARGE_ID=:CHARGE_ID"), OracleHelper.Connection, new OracleParameter(":CHARGE_ID", (object)chargeID))) { if (((DbDataReader)reader).Read()) { this.ReadInfo(reader, o); return o; } } return o; } public GwChargeLog GetLog(int paylogID) { GwChargeLog o = new GwChargeLog(); using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("SELECT FlAG FROM GW_CHARGE_LOG WHERE PAYLOG_ID=: PAYLOG_ID"), OracleHelper.Connection, new OracleParameter(":PAYLOG_ID", (object)paylogID))) { if (((DbDataReader)reader).Read()) { this.ReadInfo(reader, o); return o; } } return (GwChargeLog)null; } private bool ReadInfo(OracleDataReader reader, GwChargeLog o) { OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); o.ChargeID = oracleReaderWrapper.GetInt("CHARGE_ID", 0); o.ClientID = oracleReaderWrapper.GetString("CLIENT_ID", ""); o.ClientName = oracleReaderWrapper.GetString("CLIENT_NAME", ""); o.SpID = oracleReaderWrapper.GetString("SP_ID", ""); o.OccurTime = oracleReaderWrapper.GetDateTime("OCCUR_TIME"); o.Amount = oracleReaderWrapper.GetInt64("AMOUNT", 0L); o.OperatorID = oracleReaderWrapper.GetString("OPERATOR_ID", ""); o.Flag = oracleReaderWrapper.GetInt("FLAG", 0); o.FlushTime = oracleReaderWrapper.GetDateTime("FLUSH_TIME"); o.Remark = oracleReaderWrapper.GetString("REMARK", ""); o.PayMentType = oracleReaderWrapper.GetInt("PAYMENT_TYPE", 0); o.PayLogID = oracleReaderWrapper.GetInt("PAYLOG_ID", 0); return true; } private int ReadCount(OracleDataReader reader) { return new OracleReaderWrapper(reader).GetInt("count", 0); } public void Dispose() { } public List GetChargeLog(string spid) { List list = new List(); using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT * FROM GW_CHARGE_LOG WHERE SP_ID=:SP_ID ORDER BY CHARGE_ID DESC", OracleHelper.Connection, new OracleParameter(":SP_ID", (object)spid))) { while (reader != null && ((DbDataReader)reader).Read()) { GwChargeLog o = new GwChargeLog(); if (this.ReadInfo(reader, o)) list.Add(o); } } return list; } public List GetChargeLog(string spid, int payLogID, out int recordCount, int pageSize, int pageIndex) { List list1 = new List(); recordCount = 0; StringBuilder stringBuilder = new StringBuilder(); List list2 = new List(); stringBuilder.Append(" FROM GW_CHARGE_LOG WHERE SP_ID=:SP_ID "); list2.Add(new OracleParameter(":SP_ID", (object)spid)); if (payLogID > 0) { stringBuilder.Append("AND PAYLOG_ID=:PAYLOG_ID "); list2.Add(new OracleParameter(":PAYLOG_ID", (object)payLogID)); } stringBuilder.Append("ORDER BY CHARGE_ID DESC"); using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT count(*) as count" + (object)stringBuilder, OracleHelper.Connection, list2.ToArray())) { while (((DbDataReader)reader).Read()) recordCount = this.ReadCount(reader); } using (OracleDataReader reader = OracleHelper.ExecuteReader(PubConstant.doOracleSql(pageIndex, pageSize, recordCount, "SELECT * " + stringBuilder.ToString()).ToString(), OracleHelper.Connection, list2.ToArray())) { while (reader != null && ((DbDataReader)reader).Read()) { GwChargeLog o = new GwChargeLog(); if (this.ReadInfo(reader, o)) list1.Add(o); } } return list1; } public List CLientChargeLogList(string spid, string payLogID, out int recordCount, int pageSize, int pageIndex) { List list = new List(); recordCount = 0; OracleParameter[] oracleParameterArray = new OracleParameter[0]; string str = string.Format(" FROM GW_CHARGE_LOG WHERE SP_ID in ({0})", (object)spid) + string.Format("ORDER BY CHARGE_ID DESC"); using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT count(*) as count" + str, OracleHelper.Connection, oracleParameterArray)) { while (((DbDataReader)reader).Read()) recordCount = this.ReadCount(reader); } using (OracleDataReader reader = OracleHelper.ExecuteReader(PubConstant.doOracleSql(pageIndex, pageSize, recordCount, "SELECT * " + str.ToString()).ToString(), OracleHelper.Connection, oracleParameterArray)) { while (reader != null && ((DbDataReader)reader).Read()) { GwChargeLog o = new GwChargeLog(); if (this.ReadInfo(reader, o)) list.Add(o); } } return list; } } }