// Decompiled with JetBrains decompiler // Type: Dao.SysXhDao // Assembly: Dao, Version=3.2.1.428, Culture=neutral, PublicKeyToken=c1a16487c920c3dc // MVID: 22E6EB3F-6D25-4B57-BE09-AD2F5391CFA5 // Assembly location: C:\Users\Administrator\Desktop\wwww\bin\Dao.dll using Common; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Oracle.DataAccess.Client; using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using Model; namespace Dao { public class SysXhDao : IDisposable { /** * 根据产品ID获取产品信息 * API_SP_NOTICE:通知短信API账号生成规则 * API_SP_SECURITY_CODE:验证码短信API账号生成规则 * API_SP_MARKETING:会员营销短信API账号生成规则 * */ public string getXh(string xhId) { SysXh o = new SysXh(); if (string.IsNullOrEmpty(xhId) || string.Equals("0", xhId)) return null; using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("select * from SYS_XH where XH_ID=:XH_ID"), OracleHelper.Connection, new OracleParameter(":XH_ID", (object)xhId))) { if (reader.RowSize <= 0) { return "无配置" + xhId + "序号规则"; } //序号组合串 string xhStr = ""; if (((DbDataReader)reader).Read()) { this.ReadInfo(reader, o); //检查序号长度 if (o.xhLength == 0 ) { return null; } //检查序号前缀 if (!string.IsNullOrEmpty(o.xhPrefix)) { xhStr += o.xhPrefix; } //检查序号回归规则 if (!string.IsNullOrEmpty(o.returnRules)) { //按年 if (string.Equals("Y", o.returnRules) ) { //当前年不匹配时 if (!string.Equals(DateTime.Now.ToString("yyyy"), o.currentReturnStr)) { o.currentNum = 1; } else { o.currentNum += 1; } //更新当前年 o.currentReturnStr = DateTime.Now.ToString("yyyy"); } //按月 else if (string.Equals("M", o.returnRules)) { //当前年月不匹配时 if (!string.Equals(DateTime.Now.ToString("yyyyMM"), o.currentReturnStr)) { o.currentNum = 1; } else { o.currentNum += 1; } //更新当前年月 o.currentReturnStr = DateTime.Now.ToString("yyyyMM"); } //按日 else if (string.Equals("D", o.returnRules)) { //当前年月日不匹配时 if (!string.Equals(DateTime.Now.ToString("yyyyMMdd"), o.currentReturnStr)) { o.currentNum = 1; } else { o.currentNum += 1; } //更新当前年月日 o.currentReturnStr = DateTime.Now.ToString("yyyyMMdd"); } xhStr += o.currentReturnStr; } else { o.currentNum += 1; } string tmpXhStr = ""; //判断序号长度 if (o.xhLength > (xhStr.Length + o.currentNum.ToString().Length)) { for (int i = 0; i < (o.xhLength - xhStr.Length - o.currentNum.ToString().Length); i++) { //序数前补“0” tmpXhStr += "0"; } tmpXhStr += o.currentNum ; } else if (o.xhLength == (xhStr.Length + o.currentNum.ToString().Length)) { tmpXhStr = o.currentNum.ToString(); } else { //序号溢出 return "序号溢出"; } //更新序号 update(o); xhStr += tmpXhStr; return xhStr; } } return null; } public bool update(SysXh o) { string sql = ""; sql += " update SYS_XH set XH_ID=:XH_ID, XH_NAME=:XH_NAME, XH_PREFIX=:XH_PREFIX, RETURN_RULES=:RETURN_RULES, CURRENT_RETURN_STR=:CURRENT_RETURN_STR, CURRENT_NUM=:CURRENT_NUM "; sql += " ,XH_LENGTH=:XH_LENGTH, REMARK=:REMARK "; sql += " where XH_ID=:XH_ID "; return OracleHelper.ExecuteSql(sql, OracleHelper.Connection, new OracleParameter(":XH_ID", (object)o.xhId), new OracleParameter(":XH_NAME", (object)o.xhName), new OracleParameter(":XH_PREFIX", (object)o.xhPrefix), new OracleParameter(":RETURN_RULES", (object)o.returnRules), new OracleParameter(":CURRENT_RETURN_STR", (object)o.currentReturnStr), new OracleParameter(":CURRENT_NUM", (object)o.currentNum), new OracleParameter(":XH_LENGTH", (object)o.xhLength), new OracleParameter(":REMARK", (object)o.remark) ) > 0; } public List GetSysXhList() { List list = new List(); using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT * FROM SYS_XH ORDER BY XH_NAME ", OracleHelper.Connection)) { while (reader != null && ((DbDataReader)reader).Read()) { SysXh o = new SysXh(); if (this.ReadInfo(reader, o)) { list.Add(o); } } } return list; } public void Dispose() { } /** * 数据转换封装 * */ private bool ReadInfo(OracleDataReader reader, SysXh sysXh) { OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); sysXh.xhId = oracleReaderWrapper.GetString("XH_ID", ""); sysXh.xhName = oracleReaderWrapper.GetString("XH_NAME", ""); sysXh.xhPrefix = oracleReaderWrapper.GetString("XH_PREFIX", ""); sysXh.returnRules = oracleReaderWrapper.GetString("RETURN_RULES", ""); sysXh.currentReturnStr = oracleReaderWrapper.GetString("CURRENT_RETURN_STR", ""); sysXh.xhLength = oracleReaderWrapper.GetInt("XH_LENGTH", 0); sysXh.currentNum = oracleReaderWrapper.GetInt("CURRENT_NUM", 0); sysXh.remark = oracleReaderWrapper.GetString("remark", ""); return true; } } }