// 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<SysXh> GetSysXhList()
|
{
|
List<SysXh> list = new List<SysXh>();
|
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;
|
}
|
}
|
}
|