| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974 |
- using Db_Core;
- using log4net;
- using SuperAdmin.Models;
- using System;
- using System.Collections.Generic;
- using System.Data.Common;
- using Oracle.ManagedDataAccess.Client;
- using System.Data;
- using ReportWeb.Models;
- using ReportWeb.Source;
- namespace SuperAdmin.Source
- {
- /// <summary>
- /// Summary description for DbConnector
- /// </summary>
- public class DbConnector
- {
- private readonly ILog log = LogManager.GetLogger(typeof(DbConnector));
- private ConnectionType connType = ConnectionType.ORACLE;
- public List<Services> LoadListServices()
- {
- try
- {
- String sql = @"select * from sv where status = 1";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- var rs = Services.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListServices", ex);
- return null;
- }
- }
- public List<Services> LoadListServicesReport()
- {
- try
- {
- String sql = @"select * from sv join sv_report sr on sv.sv_code = sr.sv_code where sv.status = 1";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- var rs = Services.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListServicesReport", ex);
- return null;
- }
- }
- public List<Services> LoadListServicesAdv(int status)
- {
- try
- {
- String sql = @"select sv.id, sv.sv_code, sv.sv_name, a.msg_adv, a.adv_name, a.channel_adv, a.message_type, a.from_money, a.status, a.id adv_id
- from sv join sv_adv a on sv.sv_code = a.sv_code where sv.status = 1
- [ and a.status = ? ]";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- if (status >= 0)
- {
- stmt.SetParameter(0, status);
- }
- var rs = Services.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListServicesAdv", ex);
- return null;
- }
- }
- public List<Users> GetUserByName(string username)
- {
- try
- {
- log.Info("Error GetUserByName: " + username);
- String sql = @"select * from user_report where status = 1 and username = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- log.Info(stmt.connectionString);
- stmt.SetParameters(username);
- var rs = Users.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error GetUserByName", ex);
- return null;
- }
- }
- public Services GetServiceById(string serviceId)
- {
- try
- {
- String sql = @"select * from sv where status = 1 and id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(serviceId);
- var rs = Services.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- if (rs != null && rs.Count > 0)
- {
- return rs[0];
- }
- return null;
- }
- catch (Exception ex)
- {
- log.Error("Error GetServiceById", ex);
- return null;
- }
- }
- public Services GetServiceRpBySvCode(string svCode)
- {
- try
- {
- String sql = @"select * from sv_report where status = 1 and sv_code = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(svCode);
- var rs = Services.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- if (rs != null && rs.Count > 0)
- {
- return rs[0];
- }
- return null;
- }
- catch (Exception ex)
- {
- log.Error("Error GetServiceRpBySvCode", ex);
- return null;
- }
- }
- public Services GetServiceAdvById(string advId)
- {
- try
- {
- String sql = @"select a.*, a.id adv_id from sv_adv a where id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(advId);
- var rs = Services.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- if (rs != null && rs.Count > 0)
- {
- return rs[0];
- }
- return null;
- }
- catch (Exception ex)
- {
- log.Error("Error GetServiceAdvById", ex);
- return null;
- }
- }
- public List<DailyReport> GetCommonReport(DateTime fromDate, DateTime toDate)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand = "SELECT a.sv_code, sv.sv_name service_name, sv.id service_id, to_char(a.report_date,'dd/mm/yyyy') report_date, a.revenue, a.count_reg, a.paid_money, a.count_active, a.count_deactive, a.revenue_buy " +
- " FROM daily_report a, sv " +
- "WHERE a.sv_code = sv.sv_code AND report_date >= :fromDate AND report_date <= :toDate ORDER BY a.sv_code, a.report_date";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- // from date
- AddCmdParam(ref myCommand, "fromDate", fromDate);
- // todate
- AddCmdParam(ref myCommand, "toDate", toDate);
- DbDataReader reader = myCommand.ExecuteReader();
- return DailyReport.Parse((OracleDataReader)reader);
- }
- }
- catch (Exception ex)
- {
- log.Error("Error GetDailyReport", ex);
- return null;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public List<DailyReport> GetTotalReport(DateTime fromDate, DateTime toDate)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand = "SELECT to_char(a.report_date,'dd/mm/yyyy') report_date, sum(a.revenue) revenue," +
- " sum(a.count_reg) count_reg, sum(a.paid_money) paid_money, sum(a.count_active) count_active, sum(a.count_deactive) count_deactive FROM daily_report a " +
- "WHERE report_date >= :fromDate AND report_date <= :toDate GROUP by a.report_date ORDER BY a.report_date";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- // from date
- AddCmdParam(ref myCommand, "fromDate", fromDate);
- // todate
- AddCmdParam(ref myCommand, "toDate", toDate);
- DbDataReader reader = myCommand.ExecuteReader();
- return DailyReport.Parse((OracleDataReader)reader);
- }
- }
- catch (Exception ex)
- {
- log.Error("Error GetDailyReport", ex);
- return null;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public List<DailyReport> GetDailyReport(string serviceCode, DateTime fromDate, DateTime toDate)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand =
- "SELECT a.sv_code, to_char(a.report_date,'dd/mm/yyyy') report_date, a.revenue, a.revenue_buy, a.count_reg, a.paid_money, a.count_active, a.count_deactive " +
- "FROM daily_report a " +
- "WHERE sv_code = :service_code AND report_date >= :fromDate AND report_date <= :toDate ORDER BY a.report_date desc";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- // service code
- AddCmdParam(ref myCommand, "service_code", serviceCode);
- // from date
- AddCmdParam(ref myCommand, "fromDate", fromDate);
- // todate
- AddCmdParam(ref myCommand, "toDate", toDate);
- DbDataReader reader = myCommand.ExecuteReader();
- return DailyReport.Parse((OracleDataReader)reader);
- }
- }
- catch (Exception ex)
- {
- log.Error("Error GetDailyReport", ex);
- return null;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public List<DailyReport> GetDailyReportAccu(string serviceCode, DateTime fromDate, DateTime toDate)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand = "SELECT a.sv_code, to_char(a.report_date,'dd/mm/yyyy') report_date, a.revenue, a.revenue_buy, a.count_reg, a.paid_money, a.count_active, a.count_deactive " +
- "FROM daily_report a " +
- "WHERE sv_code = :service_code AND report_date >= :fromDate AND report_date <= :toDate ORDER BY a.report_date desc";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- // service code
- AddCmdParam(ref myCommand, "service_code", serviceCode);
- // from date
- AddCmdParam(ref myCommand, "fromDate", fromDate);
- // todate
- AddCmdParam(ref myCommand, "toDate", toDate);
- DbDataReader reader = myCommand.ExecuteReader();
- return DailyReport.Parse((OracleDataReader)reader);
- }
- }
- catch (Exception ex)
- {
- log.Error("Error GetDailyReport", ex);
- return null;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public List<DailyReport> GetHourlyReport(string serviceCode, DateTime fromDate, DateTime toDate)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand =
- "SELECT a.sv_code, to_char(a.report_date,'dd/mm/yyyy hh24') report_date, a.revenue, a.revenue_buy, a.count_reg, a.paid_money, a.count_active, a.count_deactive " +
- "FROM hourly_report a " +
- "WHERE sv_code = :service_code AND report_date >= :fromDate AND report_date <= :toDate + 1 ORDER BY a.report_date desc";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- // service code
- AddCmdParam(ref myCommand, "service_code", serviceCode);
- // from date
- AddCmdParam(ref myCommand, "fromDate", fromDate);
- // todate
- AddCmdParam(ref myCommand, "toDate", toDate);
- DbDataReader reader = myCommand.ExecuteReader();
- return DailyReport.Parse((OracleDataReader)reader);
- }
- }
- catch (Exception ex)
- {
- log.Error("Error GetHourlyReport", ex);
- return null;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public List<DailyReport> GetTotalHourlyReport(DateTime fromDate, DateTime toDate)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand = "SELECT to_char(a.report_date,'dd/mm/yyyy hh24') report_date, sum(a.revenue) revenue," +
- " sum(a.count_reg) count_reg, sum(a.paid_money) paid_money, sum(a.count_active) count_active, sum(a.count_deactive) count_deactive FROM hourly_report a " +
- "WHERE report_date >= trunc(:fromDate) AND report_date < trunc(:toDate) + 1 GROUP by a.report_date ORDER BY a.report_date";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- // from date
- AddCmdParam(ref myCommand, "fromDate", fromDate);
- // todate
- AddCmdParam(ref myCommand, "toDate", toDate);
- DbDataReader reader = myCommand.ExecuteReader();
- return DailyReport.Parse((OracleDataReader)reader);
- }
- }
- catch (Exception ex)
- {
- log.Error("Error GetTotalHourlyRerpot", ex);
- return null;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public DataTable GetRevenueHourly(string serviceCode, DateTime fromDate, DateTime toDate)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand =
- @"select * from (SELECT sv_code, report_date,
- SUM(revenue) as TOTAL,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 0 AND to_number(to_char(report_hour, 'hh24')) < 1 THEN revenue ELSE 0 END) as h00,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 1 AND to_number(to_char(report_hour, 'hh24')) < 2 THEN revenue ELSE 0 END) as h01,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 2 AND to_number(to_char(report_hour, 'hh24')) < 3 THEN revenue ELSE 0 END) as h02,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 3 AND to_number(to_char(report_hour, 'hh24')) < 4 THEN revenue ELSE 0 END) as h03,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 4 AND to_number(to_char(report_hour, 'hh24')) < 5 THEN revenue ELSE 0 END) as h04,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 5 AND to_number(to_char(report_hour, 'hh24')) < 6 THEN revenue ELSE 0 END) as h05,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 6 AND to_number(to_char(report_hour, 'hh24')) < 7 THEN revenue ELSE 0 END) as h06,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 7 AND to_number(to_char(report_hour, 'hh24')) < 8 THEN revenue ELSE 0 END) as h07,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 8 AND to_number(to_char(report_hour, 'hh24')) < 9 THEN revenue ELSE 0 END) as h08,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 9 AND to_number(to_char(report_hour, 'hh24')) < 10 THEN revenue ELSE 0 END) as h09,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 10 AND to_number(to_char(report_hour, 'hh24')) < 11 THEN revenue ELSE 0 END) as h10,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 11 AND to_number(to_char(report_hour, 'hh24')) < 12 THEN revenue ELSE 0 END) as h11,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 12 AND to_number(to_char(report_hour, 'hh24')) < 13 THEN revenue ELSE 0 END) as h12,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 13 AND to_number(to_char(report_hour, 'hh24')) < 14 THEN revenue ELSE 0 END) as h13,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 14 AND to_number(to_char(report_hour, 'hh24')) < 15 THEN revenue ELSE 0 END) as h14,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 15 AND to_number(to_char(report_hour, 'hh24')) < 16 THEN revenue ELSE 0 END) as h15,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 16 AND to_number(to_char(report_hour, 'hh24')) < 17 THEN revenue ELSE 0 END) as h16,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 17 AND to_number(to_char(report_hour, 'hh24')) < 18 THEN revenue ELSE 0 END) as h17,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 18 AND to_number(to_char(report_hour, 'hh24')) < 19 THEN revenue ELSE 0 END) as h18,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 19 AND to_number(to_char(report_hour, 'hh24')) < 20 THEN revenue ELSE 0 END) as h19,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 20 AND to_number(to_char(report_hour, 'hh24')) < 21 THEN revenue ELSE 0 END) as h20,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 21 AND to_number(to_char(report_hour, 'hh24')) < 22 THEN revenue ELSE 0 END) as h21,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 22 AND to_number(to_char(report_hour, 'hh24')) < 23 THEN revenue ELSE 0 END) as h22,
- SUM(CASE WHEN to_number(to_char(report_hour, 'hh24')) >= 23 AND to_number(to_char(report_hour, 'hh24')) < 24 THEN revenue ELSE 0 END) as h23
- FROM(
- SELECT trunc(report_date) report_date,
- sv_code,
- revenue,
- report_date report_hour
- FROM hourly_report
- )
-
- GROUP BY sv_code, report_date
- )
- WHERE sv_code = :service_code AND report_date >= :fromDate AND report_date <= :toDate ORDER BY report_date desc";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- // service code
- AddCmdParam(ref myCommand, "service_code", serviceCode);
- // from date
- AddCmdParam(ref myCommand, "fromDate", fromDate);
- // todate
- AddCmdParam(ref myCommand, "toDate", toDate);
- DbDataReader reader = myCommand.ExecuteReader();
- var tb = new DataTable();
- tb.Load(reader);
- return tb;
- }
- }
- catch (Exception ex)
- {
- log.Error("Error GetRevenueHourly", ex);
- return null;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public List<ChargeLog> GetChargeLog(Services sv, String msisdn, DateTime fromDate, DateTime toDate)
- {
- try
- {
- String sqlCommand = "SELECT * FROM " + sv.db_name + ".charge_log WHERE msisdn = ? AND insert_time >= ? AND insert_time - 1 <= ? ORDER BY insert_time desc";
- SqlStatement stmt = new SqlStatement(sqlCommand, BuildConnectionString(sv));
- stmt.SetParameters(msisdn, fromDate, toDate);
- return ChargeLog.Parse(stmt.ExecuteReader());
- }
- catch (Exception ex)
- {
- log.Error("Error GetChargeLog " + msisdn, ex);
- return null;
- }
- }
- public List<RegInfo> GetRegisterInfo(Services sv, String msisdn, DateTime fromDate, DateTime toDate)
- {
- try
- {
- String sqlCommand = "SELECT * FROM " + sv.db_name + ".reg_info WHERE msisdn = ? AND expire_time >= ? AND register_time - 1 <= ? ORDER BY register_time desc";
- SqlStatement stmt = new SqlStatement(sqlCommand, BuildConnectionString(sv));
- stmt.SetParameters(msisdn, fromDate, toDate);
- return RegInfo.Parse(stmt.ExecuteReader());
- }
- catch (Exception ex)
- {
- log.Error("Error Get RegInfo " + msisdn, ex);
- return null;
- }
- }
- // lucky spin
- public List<SpinLog> GetLuckySpin(String msisdn, DateTime fromDate, DateTime toDate)
- {
- try
- {
- String sqlCommand = "SELECT * FROM lucky_spin WHERE msisdn = ? AND expire_time >= ? AND insert_time - 1 <= ? ORDER BY expire_time desc";
- SqlStatement stmt = new SqlStatement(sqlCommand, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(msisdn, fromDate, toDate);
- return SpinLog.Parse(stmt.ExecuteReader());
- }
- catch (Exception ex)
- {
- log.Error("Error Get Spin log " + msisdn, ex);
- return null;
- }
- }
- public int CountLuckySpin(String msisdn)
- {
- SqlStatement stmt = null;
- try
- {
- String sqlCommand = "select nvl(sum(added - used),0) remain_spin, nvl(sum(added),0) total_spin, nvl(sum(used),0) used_spin from lucky_spin "
- + " where msisdn = ? and expire_time > sysdate";
- stmt = new SqlStatement(sqlCommand, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(msisdn);
- using (OracleDataReader reader = (OracleDataReader)stmt.ExecuteReader(connType))
- {
- while (reader.Read())
- {
- return int.Parse(reader.GetValue("remain_spin").ToString());
- }
- return 0;
- }
- }
- catch (Exception ex)
- {
- log.Error("Error Get Spin log " + msisdn, ex);
- return 0;
- }
- finally
- {
- try
- {
- stmt.CloseConnection();
- }
- catch { }
- }
- }
- public List<LuckyCode> GetListLuckyCode(String msisdn, String code, String codeType, String period, String redeemStatus, DateTime? fromDate, DateTime? toDate)
- {
- try
- {
- String sqlCommand = @"
- SELECT *
- FROM (SELECT *
- FROM (SELECT a.id, a.msisdn, a.code, a.insert_time, a.expire_time, a.period,
- a.status, a.confirm_time, a.confirm_channel, a.fee, a.code_type FROM lucky_code a
- WHERE 1=1
- [ AND insert_time >= trunc(?) ]
- [ AND insert_time < trunc(?) + 1 ]
- [ AND msisdn like '%' || ? || '%' ]
- [ AND code = ? ]
- [ AND period = ? ]
- [ AND status = ? ]
- [ AND code_type = ? ]
- )
- lc
- UNION ALL
- (SELECT a.id, a.msisdn, a.code, a.insert_time, a.expire_time, a.period,
- a.status, a.confirm_time, a.confirm_channel, a.fee, a.code_type FROM lucky_code_his a
- WHERE 1=1
- [ AND insert_time >= trunc(?) ]
- [ AND insert_time < trunc(?) + 1 ]
- [ AND msisdn like '%' || ? || '%' ]
- [ AND code = ? ]
- [ AND period = ? ]
- [ AND status = ? ]
- [ AND code_type = ? ]
- )
- ) ";
- SqlStatement stmt = new SqlStatement(sqlCommand, SqlConnString.GAMEPORTAL);
- int numPa = 7;
- if (fromDate != null)
- {
- stmt.SetParameter(0, fromDate);
- stmt.SetParameter(0 + numPa, fromDate);
- }
- if (toDate != null)
- {
- stmt.SetParameter(1, toDate);
- stmt.SetParameter(1 + numPa, toDate);
- }
- if (msisdn != null && msisdn.Length > 0)
- {
- stmt.SetParameter(2, msisdn);
- stmt.SetParameter(2 + numPa, msisdn);
- }
- if (code != null && code.Length > 0)
- {
- stmt.SetParameter(3, code);
- stmt.SetParameter(3 + numPa, code);
- }
- if (period != null && period.Length > 0)
- {
- stmt.SetParameter(4, period);
- stmt.SetParameter(4 + numPa, period);
- }
- if (redeemStatus != null && redeemStatus != "-1" && redeemStatus.Length > 0)
- {
- stmt.SetParameter(5, redeemStatus);
- stmt.SetParameter(5 + numPa, redeemStatus);
- }
- if (codeType != null && codeType.Length > 0 && codeType != "-1")
- {
- stmt.SetParameter(6, codeType);
- stmt.SetParameter(6 + numPa, codeType);
- }
- return LuckyCode.Parse(stmt.ExecuteReader());
- }
- catch (Exception ex)
- {
- log.Error("Error GetListLuckyCode " + msisdn, ex);
- return null;
- }
- }
- // RANKING
- public List<UserCoin> GetRankingCoin(String msisdn, String month, int maxRow)
- {
- try
- {
- String sqlCommand =
- @"SELECT a.* FROM
- (SELECT *
- FROM ( SELECT rownum rank, a.*
- FROM (SELECT c.*, r.product_name
- FROM user_coin c
- left join (select * from reg_info where status = 1) r on c.msisdn = r.msisdn
- where c.start_time <= to_date(?, 'mm/yyyy') and c.end_time >= to_date(?, 'mm/yyyy')
-
- ORDER BY c.total_coin DESC, c.last_update) a )
- WHERE 1=1
- [ and msisdn = ? ]
- [ and rank <= ? ]
- ) a";
- //String sqlCommand = "SELECT * FROM (SELECT * FROM user_coin WHERE start_time <= to_date(?, 'mm/yyyy') and end_time >= to_date(?, 'mm/yyyy') " +
- // " [ and msisdn = ? ]" +
- // " ORDER BY total_coin desc, last_update) " +
- // " where 1=1 " +
- // " [and rownum <= ?]";
- SqlStatement stmt = new SqlStatement(sqlCommand, SqlConnString.GAMEPORTAL);
- stmt.SetParameter(0, month);
- stmt.SetParameter(1, month);
- if (msisdn != null & msisdn.Length > 0)
- {
- stmt.SetParameter(2, msisdn);
- }
- else
- {
- if (maxRow > 0)
- {
- stmt.SetParameter(3, maxRow);
- }
- }
- return UserCoin.Parse(stmt.ExecuteReader());
- }
- catch (Exception ex)
- {
- log.Error("Error Get ranking coin " + msisdn, ex);
- return null;
- }
- }
- public List<PrizeObj> GetListPrizeWinner(String msisdn, String period, DateTime? fromDate, DateTime? toDate)
- {
- try
- {
- String sqlCommand = @"
- SELECT *
- FROM ( SELECT pw.*,
- lch.status status,
- g.is_auto,
- g.times_prize,
- lp.description,
- lp.prize_name,
- lp.is_top
- FROM prize_winner pw
- LEFT JOIN
- list_prize lp
- ON pw.prize_id = lp.id
- LEFT JOIN
- group_prize g
- ON lp.sub_group_prize = g.sub_group_id
- left join
- execute_prize_his lch on lch.prize_winner_id = pw.id
- WHERE 1 = 1
- ORDER BY code_time DESC)
- WHERE 1=1
- [ AND code_time >= trunc(?) ]
- [ AND code_time < trunc(?) + 1 ]
- [ AND msisdn like '%' || ? || '%' ]
- [ AND period = ? ]";
- SqlStatement stmt = new SqlStatement(sqlCommand, SqlConnString.GAMEPORTAL);
- if (fromDate != null)
- {
- stmt.SetParameter(0, fromDate);
- }
- if (toDate != null)
- {
- stmt.SetParameter(1, toDate);
- }
- if (msisdn != null && msisdn.Length > 0)
- {
- stmt.SetParameter(2, msisdn);
- }
- if (period != null && period.Length > 0 && period != "-1")
- {
- stmt.SetParameter(3, period);
- }
- return PrizeObj.Parse(stmt.ExecuteReader());
- }
- catch (Exception ex)
- {
- log.Error("Error GetListPrizeWinner " + msisdn, ex);
- return null;
- }
- }
- public PrizeObj GetWinnerById(int id)
- {
- try
- {
- String sqlCommand = @"
- SELECT * FROM prize_winner where id = ?";
- SqlStatement stmt = new SqlStatement(sqlCommand, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(id);
- List<PrizeObj> list = PrizeObj.Parse(stmt.ExecuteReader());
- return list[0];
- }
- catch (Exception ex)
- {
- log.Error("Error GetWinnerById " + id, ex);
- return null;
- }
- }
- public bool InsertPrizeWinner(String msisdn, int prizeId, String code, DateTime codeTime, int codeType)
- {
- try
- {
- String sql = @"INSERT INTO prize_winner (ID,MSISDN,PRIZE_ID,CODE,CODE_TIME,PROCESS_TIME,CODE_TYPE)
- VALUES(prize_winner_seq.nextval, ?, ?, ?, ?, NULL, ?)";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(msisdn, prizeId, code, codeTime, codeType);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error InsertService", ex);
- return false;
- }
- }
- public bool DeleteWinner(int id)
- {
- try
- {
- String sql = "DELETE FROM prize_winner WHERE id= ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(id);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error DeleteWinner", ex);
- return false;
- }
- }
- public bool UpdateSendWinner(int id, String user)
- {
- try
- {
- String sql = "UPDATE prize_winner set process_time = sysdate, processed_by = ? WHERE id= ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(user, id);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateSendWinner", ex);
- return false;
- }
- }
- public bool SendMessage(String messageCode, String msisdn, String channel)
- {
- try
- {
- String sql = @"insert into mt values(
- mt_seq.nextval, 0, ?, (select distinct(param_value) from config where param_name = ?), sysdate, 0, ?
- )";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(msisdn, messageCode, channel);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error InsertService", ex);
- return false;
- }
- }
- public List<PrizeObj> LoadListPrize(int period, int is_auto)
- {
- try
- {
- String sqlCommand = @"
- SELECT *
- FROM ( SELECT lp.id, g.period,
- g.channel,
- g.is_auto,
- lp.description,
- lp.prize_name,
- lp.is_top
- FROM list_prize lp
- LEFT JOIN
- group_prize g
- ON lp.sub_group_prize = g.sub_group_id
- WHERE 1 = 1 )
- WHERE 1=1 and period = ? and is_auto = ? ";
- SqlStatement stmt = new SqlStatement(sqlCommand, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(period, is_auto);
- return PrizeObj.Parse(stmt.ExecuteReader());
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListPrize ", ex);
- return null;
- }
- }
- private String BuildConnectionString(Services sv)
- {
- String desc = sv.connection_string.Split('@')[1];
- return "Data Source=" + desc + "; " +
- " User ID=" + sv.db_username + ";Password=" + sv.db_password + ";Max Pool Size=3;";
- }
- public bool InsertService(string svCode, string svName)
- {
- try
- {
- String sql = @"INSERT INTO sv (ID,SV_CODE,SV_NAME,STATUS)
- VALUES(sv_seq.nextval, ?, ?, 1)";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(svCode, svName);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error InsertService", ex);
- return false;
- }
- }
- public bool UpdateServiceInfo(string serviceId, string serviceCode, string serviceName)
- {
- try
- {
- String sql = @"Update sv set sv_code = ?, sv_name = ? where id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(serviceCode, serviceName, serviceId);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateServiceInfo", ex);
- return false;
- }
- }
- public bool UpdateServiceStatus(string svId, string status)
- {
- try
- {
- String sql = @"Update sv set status = ? where id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(status, svId);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateServiceStatus", ex);
- return false;
- }
- }
- public bool InsertSvReport(string svCode, string dbName, string connectionString, string dbUsername, string dbPassword, string sqlReportDaily, string sqlReportHourly)
- {
- try
- {
- String sql = @"INSERT INTO sv_report (SV_CODE,DB_NAME,CONNECTION_STRING,DB_USERNAME,DB_PASSWORD,SQL_REPORT_DAILY,SQL_REPORT_HOURLY,STATUS)
- VALUES(?, ?, ?, ?, ?, ?, ?, 1)";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(svCode, dbName, connectionString, dbUsername, dbPassword, sqlReportDaily, sqlReportHourly);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error InsertSvReport", ex);
- return false;
- }
- }
- public bool UpdateServiceRpInfo(string svCode, string dbName, string connectionString, string dbUsername, string dbPassword, string sqlReportDaily, string sqlReportHourly)
- {
- try
- {
- String sql = @"Update sv_report set DB_NAME = ?,CONNECTION_STRING = ?,DB_USERNAME = ?,DB_PASSWORD = ?,SQL_REPORT_DAILY = ?,SQL_REPORT_HOURLY = ?
- where sv_code = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(dbName, connectionString, dbUsername, dbPassword, sqlReportDaily, sqlReportHourly, svCode);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateServiceRpInfo", ex);
- return false;
- }
- }
- public bool UpdateServiceRpStatus(string svCode, string status)
- {
- try
- {
- String sql = @"Update sv_report set status = ? where sv_code = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(status, svCode);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateServiceRpStatus", ex);
- return false;
- }
- }
- public bool ClearPortDown(string portName)
- {
- try
- {
- String sql = @"UPDATE port_down SET end_time = sysdate WHERE port_name = ? AND end_time is null";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(portName);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error ClearPortDown", ex);
- return false;
- }
- }
- private void AddCmdParam(ref DbCommand myCommand, string paramName, object paramValue)
- {
- var parameter1 = myCommand.CreateParameter();
- parameter1.ParameterName = ":" + paramName;
- parameter1.Value = paramValue;
- myCommand.Parameters.Add(parameter1);
- }
- public List<Broadcast> GetBroadcastById(int broadcastId)
- {
- try
- {
- String sql =
- @"SELECT br.*, a.adv_name, a.id adv_id"
- + " FROM broadcast br JOIN sv_adv a on br.sv_adv_id = a.id "
- + " WHERE br.id = ? "
- + " ORDER BY schedule_time desc";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(broadcastId);
- var rs = Broadcast.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error GetBroadcastById", ex);
- return null;
- }
- }
- public List<Broadcast> LoadListBroadcast(DateTime? fromdate, DateTime? todate)
- {
- try
- {
- String sql =
- @"SELECT br.*, a.adv_name, a.id adv_id"
- + " FROM broadcast br JOIN sv_adv a on br.sv_adv_id = a.id "
- + " WHERE 1=1 " +
- " [ AND br.schedule_time >= ? ] " +
- " [ and br.schedule_time <= ? + 1 ]"
- + " ORDER BY schedule_time desc";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- if (fromdate != null)
- {
- stmt.SetParameter(0, fromdate);
- }
- if (todate != null)
- {
- stmt.SetParameter(1, todate);
- }
- var rs = Broadcast.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListBroadcast", ex);
- return null;
- }
- }
- public bool InsertBroadcast(Broadcast broadcast)
- {
- try
- {
- String sql = @"INSERT INTO broadcast (ID,BROADCAST_NAME,IMPORT_FILE,COUNT_SUB,STATUS,SCHEDULE_TIME,FINISH_TIME,SV_ADV_ID,SV_CODE,MSG_ADV,
- CHANNEL_ADV,MESSAGE_TYPE,COUNT_SUB_REAL,PROGRESS_SUB)
- VALUES(?, ?, ?, ?, 0, ?, NULL, ?, ?, ?, ?, ?, 0, 0)";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(
- broadcast.id,
- broadcast.broadcast_name,
- broadcast.import_file,
- broadcast.count_sub,
- DateTime.ParseExact(broadcast.schedule_time, "dd/MM/yyyy HH:mm:ss", null),
- broadcast.sv_adv_id,
- broadcast.sv_code,
- broadcast.msg_adv,
- broadcast.channel_adv,
- broadcast.message_type);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error InsertSvReport", ex);
- return false;
- }
- }
- public bool UpdateBroadcast(Broadcast broadcast)
- {
- try
- {
- String sql = "UPDATE BROADCAST SET BROADCAST_NAME = ?, IMPORT_FILE = ?, COUNT_SUB = ?, STATUS = ?, SCHEDULE_TIME = ?, SV_ADV_ID = ?,"
- + "SV_CODE = ?, MSG_ADV = ?, CHANNEL_ADV = ?, MESSAGE_TYPE = ? "
- + " WHERE id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(
- broadcast.broadcast_name,
- broadcast.import_file,
- broadcast.count_sub,
- broadcast.status,
- DateTime.ParseExact(broadcast.schedule_time, "dd/MM/yyyy HH:mm:ss", null),
- broadcast.sv_adv_id,
- broadcast.sv_code,
- broadcast.msg_adv,
- broadcast.channel_adv,
- broadcast.message_type,
- broadcast.id);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateBroadcast", ex);
- return false;
- }
- }
- public bool UpdateBroadcastStatus(int id, string status)
- {
- try
- {
- String sql = "UPDATE BROADCAST SET STATUS = ? WHERE id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(status, id);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateBroadcastStatus", ex);
- return false;
- }
- }
- public int ImportSubBroadcast(Broadcast broadcast, List<String> listMsisdn)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand = "INSERT INTO MT_EXTEND_TEMP (ID,MSISDN,MESSAGE,RECEIVE_TIME,SEND_TIME,RETRY_NUM,CHANNEL,MESSAGE_TYPE,BROADCAST_ID)"
- + " VALUES(MT_EXTEND_seq.nextval, :msisdn, :message, sysdate, :send_time, 0, :channel, :message_type, :broadcast_id)";
- int i = 0;
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbTransaction transaction = myConnection.BeginTransaction();
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.Transaction = transaction;
- myCommand.CommandText = sqlCommand;
- for (i = 0; i < listMsisdn.Count; i++)
- {
- myCommand.Parameters.Clear();
- AddCmdParam(ref myCommand, "msisdn", listMsisdn[i]);
- AddCmdParam(ref myCommand, "message", broadcast.msg_adv);
- AddCmdParam(ref myCommand, "send_time", DateTime.ParseExact(broadcast.schedule_time, "dd/MM/yyyy HH:mm:ss", null));
- AddCmdParam(ref myCommand, "channel", broadcast.channel_adv);
- AddCmdParam(ref myCommand, "message_type", broadcast.message_type);
- AddCmdParam(ref myCommand, "broadcast_id", broadcast.id);
- myCommand.ExecuteNonQuery();
- if (i % 1000 == 999)
- {
- transaction.Commit();
- transaction = myConnection.BeginTransaction();
- myCommand.Transaction = transaction;
- }
- }
- transaction.Commit();
- return i;
- }
- }
- catch (Exception ex)
- {
- log.Error("Error ImportSubBroadcast", ex);
- return i;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public bool InsertMtExtendFromTemp(int broadcastId)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand = "broadcast_from_temp";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandType = CommandType.StoredProcedure;
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- AddCmdParam(ref myCommand, "brid", broadcastId);
- myCommand.ExecuteNonQuery();
- return true;
- }
- }
- catch (Exception ex)
- {
- log.Error("Error InsertMtExtendFromTemp", ex);
- return false;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public bool DeleteMtExtendTemp(int broadcastId)
- {
- try
- {
- String sql = "DELETE FROM mt_extend_temp WHERE broadcast_id= ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(broadcastId);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error DeleteMtExtendTemp", ex);
- return false;
- }
- }
- public bool DeleteMtExtend(int broadcastId)
- {
- try
- {
- String sql = "DELETE FROM mt_extend WHERE broadcast_id= ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(broadcastId);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error DeleteMtExtend", ex);
- return false;
- }
- }
- public int GetNextBroadcastId()
- {
- try
- {
- String sql = @"select broadcast_seq.nextval seq from dual";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- OracleDataReader reader = (OracleDataReader)stmt.ExecuteReader(connType);
- int seq = 0;
- while (reader.Read())
- {
- seq = int.Parse(reader.GetValue(0).ToString());
- }
- stmt.CloseConnection();
- return seq;
- }
- catch (Exception ex)
- {
- log.Error("Error GetNextBroadcastId", ex);
- return 0;
- }
- }
- public List<ReportDetail> GetReportDetail(DateTime fromDate, DateTime toDate)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlCommand = @"SELECT a.sv_code, to_char(a.report_date,'dd/mm/yyyy') report_date, a.revenue_others, a.revenue_mocha,
- a.revenue_web, a.revenue_buy_others, a.revenue_buy_mocha,
- a.revenue_buy_web, a.count_reg_others, a.count_reg_mocha,
- a.count_reg_web FROM report_detail a WHERE REPORT_DATE >= :fromDate and REPORT_DATE <= :toDate ORDER BY report_date desc";
- // @"select
- //'LUCKY_DRAW' SV_CODE,
- // to_char(REPORT_DATE,'dd-mm-yyyy') REPORT_DATE,
- //nvl(revenue_others,0) REVENUE_OTHERS,
- //nvl(revenue_mocha,0) REVENUE_MOCHA,
- //nvl(revenue_web,0) revenue_web,
- //nvl(revenue_buy_others,0) REVENUE_BUY_OTHERS,
- //nvl(revenue_buy_mocha,0) REVENUE_BUY_MOCHA,
- //nvl(revenue_buy_web,0) revenue_buy_web,
- //nvl(count_reg_others,0) count_reg_others ,
- //nvl(count_reg_mocha,0) count_reg_mocha ,
- //nvl(count_reg_web,0) count_reg_web
- //from
- //(
- //select a.report_date, a.revenue_others, revenue_mocha, revenue_web, revenue_buy_others, revenue_buy_mocha, revenue_buy_web, count_reg_others, count_reg_mocha, count_reg_web from
- //( select nvl(sum(fee),0) revenue_others, trunc(charge_time) REPORT_DATE from charge_log
- // where charge_time >= :from_date and charge_time < :to_date + 1 and fee > 0 and product_name = 'Lucky_Draw' and channel not in ('1','4')
- // group by trunc(charge_time) ) a
- // left join
- //(select nvl(sum(fee),0) revenue_mocha, trunc(charge_time) REPORT_DATE from charge_log
- // where charge_time >= :from_date and charge_time < :to_date + 1 and fee > 0 and product_name = 'Lucky_Draw' and channel = '1'
- // group by trunc(charge_time) ) a2 on a.report_date = a2.report_date
- //left join
- //(select nvl(sum(fee),0) revenue_web, trunc(charge_time) REPORT_DATE from charge_log
- // where charge_time >= :from_date and charge_time < :to_date + 1 and fee > 0 and product_name = 'Lucky_Draw' and channel = '4'
- // group by trunc(charge_time) ) a3 on a.report_date = a3.report_date
- //left join
- //(select nvl(sum(fee),0) revenue_buy_others, trunc(charge_time) REPORT_DATE from charge_log
- // where charge_time >= :from_date and charge_time < :to_date + 1 and fee > 0 and product_name = 'Lucky_Draw' and description in ('Redeem')and channel not in ('1','4')
- // group by trunc(charge_time) ) b on a.report_date = b.report_date
- //left join
- //(select nvl(sum(fee),0) revenue_buy_mocha, trunc(charge_time) REPORT_DATE from charge_log
- // where charge_time >= :from_date and charge_time < :to_date+ 1 and fee > 0 and product_name = 'Lucky_Draw' and description in ('Redeem')and channel = '1'
- // group by trunc(charge_time) ) b2 on a.report_date = b2.report_date
- //left join
- //(select nvl(sum(fee),0) revenue_buy_web, trunc(charge_time) REPORT_DATE from charge_log
- // where charge_time >= :from_date and charge_time < :to_date+ 1 and fee > 0 and product_name = 'Lucky_Draw' and description in ('Redeem')and channel = '4'
- // group by trunc(charge_time) ) b3 on a.report_date = b3.report_date
- //left join
- //(select count(*) count_reg_others, trunc(register_time) REPORT_DATE from reg_info
- // where register_time >= :from_date and register_time < :to_date+ 1 and channel not in ('1','4')
- // group by trunc(register_time) ) c on c.report_date = a.report_date
- //left join
- //(select count(*) count_reg_mocha, trunc(register_time) REPORT_DATE from reg_info
- // where register_time >= :from_date and register_time < :to_date+ 1 and channel = '1'
- // group by trunc(register_time) ) c2 on c2.report_date = a.report_date
- //left join
- //(select count(*) count_reg_web, trunc(register_time) REPORT_DATE from reg_info
- // where register_time >= :from_date and register_time < :to_date+ 1 and channel = '4'
- // group by trunc(register_time) ) c3 on c3.report_date = a.report_date
- // ) a order by a.report_date desc ";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.CommandText = sqlCommand;
- myCommand.Parameters.Clear();
- // from date
- AddCmdParam(ref myCommand, "fromDate", fromDate);
- // todate
- AddCmdParam(ref myCommand, "toDate", toDate);
- DbDataReader reader = myCommand.ExecuteReader();
- return ReportDetail.Parse((OracleDataReader)reader);
- }
- }
- catch (Exception ex)
- {
- log.Error("Error GetReportDetail", ex);
- return null;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public List<WebserviceObj> GetWebserviceById(int wsId)
- {
- try
- {
- String sql =
- @"SELECT * from webservice where ws_id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(wsId);
- var rs = WebserviceObj.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error GetWebserviceById", ex);
- return null;
- }
- }
- public List<WebserviceObj> LoadListWebserivce(String wsName)
- {
- try
- {
- String sql =
- @"SELECT * from webservice WHERE ws_name = ?"
- + " ORDER BY ws_code";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(wsName);
- var rs = WebserviceObj.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListWebserivce", ex);
- return null;
- }
- }
- public bool InsertWebservice(WebserviceObj wsObj)
- {
- try
- {
- String sql = @"INSERT INTO webservice (WS_ID,WS_NAME,WS_CODE,WSDL,MSG_TEMPLATE,STATUS)
- VALUES(webservice_seq.nextval, ?, ?, ?, ?, 1)";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(
- wsObj.ws_name,
- wsObj.ws_code,
- wsObj.wsdl,
- wsObj.msg_template);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error InsertWebservice", ex);
- return false;
- }
- }
- public bool UpdateWebservice(WebserviceObj wsObj)
- {
- try
- {
- String sql = "UPDATE webservice SET WS_NAME = ?, WS_CODE = ?, WSDL = ?, MSG_TEMPLATE = ? "
- + " WHERE WS_ID = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(
- wsObj.ws_name,
- wsObj.ws_code,
- wsObj.wsdl,
- wsObj.msg_template,
- wsObj.ws_id);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateWebservice", ex);
- return false;
- }
- }
- public bool UpdateWebserviceStatus(int id, string status)
- {
- try
- {
- String sql = "UPDATE webservice SET STATUS = ? WHERE ws_id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(status, id);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateWebserviceStatus", ex);
- return false;
- }
- }
- // SV ADV
- public bool InsertSvAdv(string svCode, string msgAdv, string advName, string channelAdv, string messageType, string fromMoney)
- {
- try
- {
- String sql = @"INSERT INTO sv_adv (ID, SV_CODE,ADV_NAME,MSG_ADV,MSG_ADV_PUSH,CHANNEL_ADV,MESSAGE_TYPE,FROM_MONEY,STATUS )
- VALUES(sv_adv_seq.nextval, ?, ?, ?, ?, ?, ?, ?, 1)";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(svCode, advName, msgAdv, msgAdv, channelAdv, messageType, fromMoney);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error InsertSvReport", ex);
- return false;
- }
- }
- //public bool InsertSvAdvHistory(string svCode, string messageType)
- //{
- // try
- // {
- // String sql = @"INSERT INTO sv_adv_history (ID,SV_CODE,START_TIME,END_TIME,COUNT_MSG,MESSAGE_TYPE)
- // VALUES(sv_adv_history_seq.nextval, ?, sysdate, NULL, 0, ?)";
- // SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- // stmt.SetParameters(svCode, messageType);
- // stmt.ExecuteNonQuery(connType);
- // stmt.CloseConnection();
- // return true;
- // }
- // catch (Exception ex)
- // {
- // log.Error("Error InsertSvAdvHistory", ex);
- // return false;
- // }
- //}
- public bool UpdateServiceAdvInfo(string svCode, string msgAdv, string advName, string channelAdv, string messageType, string fromMoney, string advId)
- {
- try
- {
- String sql = @"Update sv_adv set sv_code = ?, msg_adv = ?,adv_name = ?,channel_adv = ?,message_type = ?,from_money = ?
- where id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(svCode, msgAdv, advName, channelAdv, messageType, fromMoney, advId);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateServiceAdvInfo", ex);
- return false;
- }
- }
- public bool UpdateServiceAdvStatus(string advId, string status)
- {
- try
- {
- String sql = @"Update sv_adv set status = ? where id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(status, advId);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateServiceAdvStatus", ex);
- return false;
- }
- }
- //public bool UpdateServiceAdvEndTime(string svCode)
- //{
- // try
- // {
- // String sql = @"Update sv_adv_history set end_time = sysdate WHERE sv_code = ? and end_time is null";
- // SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- // stmt.SetParameters(svCode);
- // stmt.ExecuteNonQuery(connType);
- // stmt.CloseConnection();
- // return true;
- // }
- // catch (Exception ex)
- // {
- // log.Error("Error UpdateServiceAdvStatus", ex);
- // return false;
- // }
- //}
- // Service Adv schedule
- public SvAdvSchedule GetSvAdvScheduleById(string scheduleId, int codeType)
- {
- try
- {
- String sql;
- if (codeType == LuckyCardUtils.CodeType.LUCKY_CARD)
- {
- sql = @"select s.*, a.adv_name, a.id sv_adv_id, a.sv_code, a.msg_adv, a.msg_adv_push, a.channel_adv, a.message_type, a.from_money,
- d.id schedule_detail_id, nvl(d.percent,0) percent
- from sv_adv_schedule s
- left join sv_adv a on a.status = 1
- left join sv_adv_schedule_detail d on s.id = d.schedule_id and d.sv_adv_id = a.id and d.status = 1
- where s.id = ?";
- }
- else
- {
- sql = @"select s.*, a.adv_name, a.id sv_adv_id, a.sv_code, a.msg_adv, a.msg_adv_push, a.channel_adv, a.message_type, a.from_money,
- d.id schedule_detail_id, nvl(d.percent,0) percent
- from sv_adv_schedule_call s
- left join sv_adv a on a.status = 1
- left join sv_adv_schedule_detail_call d on s.id = d.schedule_id and d.sv_adv_id = a.id and d.status = 1
- where s.id = ?";
- }
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(scheduleId);
- var rs = SvAdvSchedule.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- if (rs != null && rs.Count > 0)
- {
- return rs[0];
- }
- return null;
- }
- catch (Exception ex)
- {
- log.Error("Error GetSvAdvScheduleById", ex);
- return null;
- }
- }
- public bool UpdateSvAdvScheduleInfo(SvAdvSchedule svAdvSchedule, int codeType)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlUpdateSchedule = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? "UPDATE sv_adv_schedule SET from_date = :from_date, to_date = :to_date, schedule_name = :schedule_name WHERE id = :id"
- : "UPDATE sv_adv_schedule_call SET from_date = :from_date, to_date = :to_date, schedule_name = :schedule_name WHERE id = :id";
- String sqlDeleteAdv = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? "UPDATE sv_adv_schedule_detail SET status = 0 WHERE schedule_id = :schedule_id"
- : "UPDATE sv_adv_schedule_detail_call SET status = 0 WHERE schedule_id = :schedule_id";
- String sqlInsertAdv = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? @"INSERT INTO sv_adv_schedule_detail (ID,SCHEDULE_ID,SV_ADV_ID,PERCENT,SV_CODE,MSG_ADV,CHANNEL_ADV,MESSAGE_TYPE,FROM_MONEY)
- SELECT sv_adv_schedule_detail_seq.nextval,
- :schedule_id, id, :percent, sv_code, msg_adv, channel_adv, message_type, from_money FROM sv_adv WHERE id = :sv_adv_id"
- : @"INSERT INTO sv_adv_schedule_detail_call (ID,SCHEDULE_ID,SV_ADV_ID,PERCENT,SV_CODE,MSG_ADV,CHANNEL_ADV,MESSAGE_TYPE,FROM_MONEY)
- SELECT sv_adv_schedule_detail_seq.nextval,
- :schedule_id, id, :percent, sv_code, msg_adv, channel_adv, message_type, from_money FROM sv_adv WHERE id = :sv_adv_id";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbTransaction transaction = myConnection.BeginTransaction();
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.Transaction = transaction;
- // update schedule
- myCommand.CommandText = sqlUpdateSchedule;
- myCommand.Parameters.Clear();
- AddCmdParam(ref myCommand, "from_date", svAdvSchedule.from_date);
- AddCmdParam(ref myCommand, "to_date", svAdvSchedule.to_date);
- AddCmdParam(ref myCommand, "schedule_name", svAdvSchedule.schedule_name);
- AddCmdParam(ref myCommand, "id", svAdvSchedule.id);
- myCommand.ExecuteNonQuery();
- // delete old adv
- myCommand.CommandText = sqlDeleteAdv;
- myCommand.Parameters.Clear();
- AddCmdParam(ref myCommand, "schedule_id", svAdvSchedule.id);
- myCommand.ExecuteNonQuery();
- // insert new adv
- myCommand.CommandText = sqlInsertAdv;
- for (int i = 0; i < svAdvSchedule.list_adv.Count; i++)
- {
- SvAdv adv = svAdvSchedule.list_adv[i];
- myCommand.Parameters.Clear();
- AddCmdParam(ref myCommand, "schedule_id", svAdvSchedule.id);
- AddCmdParam(ref myCommand, "percent", adv.percent);
- AddCmdParam(ref myCommand, "sv_adv_id", adv.id);
- //AddCmdParam(ref myCommand, "sv_code", adv.sv_code);
- //AddCmdParam(ref myCommand, "msg_adv", adv.msg_adv);
- //AddCmdParam(ref myCommand, "channel_adv", adv.channel_adv);
- //AddCmdParam(ref myCommand, "message_type", adv.message_type);
- //AddCmdParam(ref myCommand, "from_money", adv.from_money);
- myCommand.ExecuteNonQuery();
- }
- transaction.Commit();
- return true;
- }
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateSvAdvScheduleInfo", ex);
- return false;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- public bool UpdateSvAdvScheduleStatus(string scheduleId, string status, int codeType)
- {
- try
- {
- String sql = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? @"Update sv_adv_schedule set status = ? where id = ?"
- : @"Update sv_adv_schedule_call set status = ? where id = ?";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- stmt.SetParameters(status, scheduleId);
- stmt.ExecuteNonQuery(connType);
- stmt.CloseConnection();
- return true;
- }
- catch (Exception ex)
- {
- log.Error("Error UpdateSvAdvScheduleStatus", ex);
- return false;
- }
- }
- public List<SvAdv> LoadListServicesAdv()
- {
- try
- {
- String sql = @"select sv.sv_code, sv.sv_name, a.msg_adv, a.adv_name, a.channel_adv, a.message_type, a.from_money, a.status, a.id
- from sv join sv_adv a on sv.sv_code = a.sv_code
- where sv.status = 1
- and a.status = 1 ORDER BY sv.sv_code ";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- var rs = SvAdv.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListServicesAdv", ex);
- return null;
- }
- }
- public List<SvAdvSchedule> LoadListSvAdvSchedule(int month, int year, int codeType)
- {
- try
- {
- String sql = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? @"select s.*, d.sv_adv_id, d.sv_code, d.msg_adv, d.channel_adv, d.message_type, d.from_money,
- d.id schedule_detail_id, nvl(d.percent,0) percent
- from sv_adv_schedule s
- left join sv_adv_schedule_detail d on s.id = d.schedule_id and d.status = 1
- where 1=1
- and s.from_date < ? +1
- and s.to_date >= ?
- ORDER BY s.from_date desc"
- : @"select s.*, d.sv_adv_id, d.sv_code, d.msg_adv, d.channel_adv, d.message_type, d.from_money,
- d.id schedule_detail_id, nvl(d.percent,0) percent
- from sv_adv_schedule_call s
- left join sv_adv_schedule_detail_call d on s.id = d.schedule_id and d.status = 1
- where 1=1
- and s.from_date < ? +1
- and s.to_date >= ?
- ORDER BY s.from_date desc";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- DateTime max = new DateTime(year, month, DateTime.DaysInMonth(year, month));
- DateTime min = new DateTime(year, month, 1);
- stmt.SetParameters(max, min);
- var rs = SvAdvSchedule.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListSvAdvSchedule", ex);
- return null;
- }
- }
- public List<SvAdv> LoadListSvAdvCounter(int month, int year, int codeType)
- {
- try
- {
- String sql = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? @"select nvl(c.schedule_detail_id,-1) schedule_detail_id,
- nvl(c.counter,0) counter, nvl(c.create_time, s.from_date) start_time, nvl(c.report_date, trunc(s.from_date)) report_date,
- nvl(s.to_date, trunc(c.report_date) + 1 - 1/86400) end_time, d.*
- from sv_adv_schedule_detail d
- full outer join schedule_counter c on d.id = c.schedule_detail_id
- left join sv_adv_schedule s on s.id = d.schedule_id
- where 1=1
- and nvl(c.create_time, s.from_date) < ? + 1
- and nvl(c.create_time, s.to_date) >= ?
- ORDER BY nvl(c.report_date, trunc(s.from_date)) desc, d.sv_code"
- : @"select nvl(c.schedule_detail_id,-1) schedule_detail_id,
- nvl(c.counter,0) counter, nvl(c.create_time, s.from_date) start_time, nvl(c.report_date, trunc(s.from_date)) report_date,
- nvl(s.to_date, trunc(c.report_date) + 1 - 1/86400) end_time, d.*
- from sv_adv_schedule_detail_call d
- full outer join schedule_counter_call c on d.id = c.schedule_detail_id
- left join sv_adv_schedule_call s on s.id = d.schedule_id
- where 1=1
- and nvl(c.create_time, s.from_date) < ? + 1
- and nvl(c.create_time, s.to_date) >= ?
- ORDER BY nvl(c.create_time, s.from_date) desc, d.sv_code";
- SqlStatement stmt = SqlStatement.FromString(sql, SqlConnString.GAMEPORTAL);
- DateTime max = new DateTime(year, month, DateTime.DaysInMonth(year, month));
- DateTime min = new DateTime(year, month, 1);
- stmt.SetParameters(max, min);
- var rs = SvAdv.Parse((OracleDataReader)stmt.ExecuteReader(connType));
- stmt.CloseConnection();
- return rs;
- }
- catch (Exception ex)
- {
- log.Error("Error LoadListSvAdvCounter", ex);
- return null;
- }
- }
- public bool InsertSvAdvSchedule(SvAdvSchedule svAdvSchedule, int codeType)
- {
- DbConnection myConnection = null;
- SqlStatement stmt = new SqlStatement(SqlConnString.GAMEPORTAL);
- String sqlGetScheduleId = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? "SELECT sv_adv_schedule_seq.nextval seq FROM DUAL"
- : "SELECT sv_adv_schedule_call_seq.nextval seq FROM DUAL";
- String sqlUpdateSchedule = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? @"INSERT INTO sv_adv_schedule (ID,FROM_DATE,TO_DATE,SCHEDULE_NAME,STATUS)
- VALUES(:schedule_id, :from_date, :to_date, :schedule_name, 1)"
- : @"INSERT INTO sv_adv_schedule_call (ID,FROM_DATE,TO_DATE,SCHEDULE_NAME,STATUS)
- VALUES(:schedule_id, :from_date, :to_date, :schedule_name, 1)";
- String sqlInsertAdv = codeType == LuckyCardUtils.CodeType.LUCKY_CARD
- ? @"INSERT INTO sv_adv_schedule_detail (ID,SCHEDULE_ID,SV_ADV_ID,PERCENT,SV_CODE,MSG_ADV,CHANNEL_ADV,MESSAGE_TYPE,FROM_MONEY)
- SELECT sv_adv_schedule_detail_seq.nextval,
- :schedule_id, id, :percent, sv_code, msg_adv, channel_adv, message_type, from_money FROM sv_adv WHERE id = :sv_adv_id"
- : @"INSERT INTO sv_adv_schedule_detail_call (ID,SCHEDULE_ID,SV_ADV_ID,PERCENT,SV_CODE,MSG_ADV,CHANNEL_ADV,MESSAGE_TYPE,FROM_MONEY)
- SELECT sv_adv_schedule_detail_seq.nextval,
- :schedule_id, id, :percent, sv_code, msg_adv, channel_adv, message_type, from_money FROM sv_adv WHERE id = :sv_adv_id";
- // VALUES(sv_adv_schedule_detail_seq.nextval, :schedule_id, :sv_adv_id, :percent, :sv_code, :msg_adv, :channel_adv, :message_type, :from_money)";
- try
- {
- using (myConnection = (DbConnection)stmt.GetConnection(connType))
- {
- DbTransaction transaction = myConnection.BeginTransaction();
- DbCommand myCommand = myConnection.CreateCommand();
- myCommand.Transaction = transaction;
- // get sequence
- myCommand.CommandText = sqlGetScheduleId;
- myCommand.Parameters.Clear();
- DbDataReader reader = myCommand.ExecuteReader();
- if (reader.Read())
- {
- svAdvSchedule.id = reader.GetInt32(0);
- }
- // update schedule
- myCommand.CommandText = sqlUpdateSchedule;
- myCommand.Parameters.Clear();
- AddCmdParam(ref myCommand, "schedule_id", svAdvSchedule.id);
- AddCmdParam(ref myCommand, "from_date", svAdvSchedule.from_date);
- AddCmdParam(ref myCommand, "to_date", svAdvSchedule.to_date);
- AddCmdParam(ref myCommand, "schedule_name", svAdvSchedule.schedule_name);
- myCommand.ExecuteNonQuery();
- // insert new adv
- myCommand.CommandText = sqlInsertAdv;
- for (int i = 0; i < svAdvSchedule.list_adv.Count; i++)
- {
- SvAdv adv = svAdvSchedule.list_adv[i];
- myCommand.Parameters.Clear();
- AddCmdParam(ref myCommand, "schedule_id", svAdvSchedule.id);
- AddCmdParam(ref myCommand, "percent", adv.percent);
- AddCmdParam(ref myCommand, "sv_adv_id", adv.id);
- //AddCmdParam(ref myCommand, "sv_code", adv.sv_code);
- //AddCmdParam(ref myCommand, "msg_adv", adv.msg_adv);
- //AddCmdParam(ref myCommand, "channel_adv", adv.channel_adv);
- //AddCmdParam(ref myCommand, "message_type", adv.message_type);
- //AddCmdParam(ref myCommand, "from_money", adv.from_money);
- myCommand.ExecuteNonQuery();
- }
- transaction.Commit();
- return true;
- }
- }
- catch (Exception ex)
- {
- log.Error("Error InsertSvAdvSchedule", ex);
- return false;
- }
- finally
- {
- try
- {
- if (myConnection != null)
- {
- myConnection.Close();
- }
- }
- catch { }
- }
- }
- }
- }
|