|
|
using System;
|
|
|
using System.Collections;
|
|
|
using System.Configuration;
|
|
|
using System.Data;
|
|
|
using System.Web;
|
|
|
using System.Web.Security;
|
|
|
using System.Web.UI;
|
|
|
using System.Web.UI.HtmlControls;
|
|
|
using System.Web.UI.WebControls;
|
|
|
using System.Web.UI.WebControls.WebParts;
|
|
|
using DSWeb.EntityDA;
|
|
|
using System.Xml;
|
|
|
using System.Text;
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
|
namespace DSWeb.FeeCodes
|
|
|
{
|
|
|
public partial class FeeCodeService : System.Web.UI.Page
|
|
|
{
|
|
|
private string strMark;
|
|
|
private string strPos;
|
|
|
private int iPos = 0;
|
|
|
private string strHandle;
|
|
|
private string strFeeName;
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
{
|
|
|
if (!IsPostBack)
|
|
|
{
|
|
|
string strPost = Request.Url.ToString();
|
|
|
|
|
|
if (Request.QueryString["mask"] != null)
|
|
|
{
|
|
|
strMark = Request.QueryString["mask"].ToString();
|
|
|
}
|
|
|
if (Request.QueryString["pos"] != null)
|
|
|
{
|
|
|
strPos = Request.QueryString["pos"].ToString();
|
|
|
iPos = int.Parse(strPos);
|
|
|
}
|
|
|
if (Request.QueryString["handle"] != null)
|
|
|
{
|
|
|
strHandle = Request.QueryString["handle"].ToString();
|
|
|
}
|
|
|
if (Request.QueryString["feename"] != null)
|
|
|
{
|
|
|
UnicodeEncoding unicode = new UnicodeEncoding();
|
|
|
if (Request.QueryString["feename"].ToString().Trim().IndexOf("/") >= 0)
|
|
|
{
|
|
|
strFeeName = Request.QueryString["feename"].ToString().Trim();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strFeeName = UnicodeToGB(unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["feename"].ToString()))));
|
|
|
}
|
|
|
}
|
|
|
if (Request.QueryString["isbeing"] != null)
|
|
|
{
|
|
|
string strBeing = Request.QueryString["isbeing"].ToString();
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
strBeing = T_ALL_DA.GetBeingCodeFee(strBeing);
|
|
|
Response.Write(strBeing.Trim());
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (strHandle != null)
|
|
|
{
|
|
|
if (strHandle == "feecode")
|
|
|
{ //返回code_fee费用名称JSON字符串
|
|
|
Response.Write(GetFeeNameJson());
|
|
|
}
|
|
|
else if (strHandle == "getcurrency")
|
|
|
{ //通过费用名称获取费用代码表(code_fee)币别汇率信息
|
|
|
Response.Write(GetFeeCodeCurrencyJson(strFeeName));
|
|
|
}
|
|
|
else if (strHandle == "all")
|
|
|
{
|
|
|
XmlDocument docs = GetDoc();
|
|
|
Response.ContentType = "text/xml";
|
|
|
Response.Write(docs.OuterXml.ToString());
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
XmlDocument docs = GetDoc();
|
|
|
Response.ContentType = "text/xml";
|
|
|
Response.Write(docs.OuterXml.ToString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public string BuildXML()
|
|
|
{
|
|
|
StringBuilder resultBuilder = new StringBuilder();
|
|
|
|
|
|
resultBuilder.Append("<?xml version=\"1.0\" ?>");
|
|
|
resultBuilder.AppendFormat("<complete{0}>", iPos == 0 ? string.Empty : " add=\"true\"");
|
|
|
if (!string.IsNullOrEmpty(strMark))
|
|
|
{
|
|
|
if (strHandle == "all")
|
|
|
{
|
|
|
resultBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", "0", "ALL | 全部");
|
|
|
}
|
|
|
DataTable feeCodeTable = new DataTable();
|
|
|
FeeCodeDA feeCodeDA = new FeeCodeDA();
|
|
|
feeCodeTable = feeCodeDA.GetExcuteSql("SELECT ISNULL(FEECODE,'')+' | '+ISNULL(Name,'') AS FULLNAME,FEECODE,name FROM code_fee order by name desc").Tables[0];
|
|
|
if (feeCodeTable.Rows.Count > 0)
|
|
|
{
|
|
|
for (int i = 0; i < feeCodeTable.Rows.Count; i++)
|
|
|
{
|
|
|
resultBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", feeCodeTable.Rows[i]["name"].ToString(), feeCodeTable.Rows[i]["FULLNAME"].ToString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
resultBuilder.Append("</complete>");
|
|
|
return resultBuilder.ToString().Replace("&", "&");
|
|
|
}
|
|
|
|
|
|
public XmlDocument GetDoc()
|
|
|
{
|
|
|
XmlDocument xmldoc = new XmlDocument();
|
|
|
string content = BuildXML();
|
|
|
try
|
|
|
{
|
|
|
xmldoc.LoadXml(content);
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
}
|
|
|
return xmldoc;
|
|
|
}
|
|
|
#region 返回code_fee费用名称JSON字符串
|
|
|
/// <summary>
|
|
|
/// 返回code_fee费用名称JSON字符串
|
|
|
/// code_fee费用名称设置
|
|
|
/// </summary>
|
|
|
/// <returns>返回code_fee费用名称JSON字符串</returns>
|
|
|
public string GetFeeNameJson()
|
|
|
{
|
|
|
FeeCodeDA feeCodeDA = new FeeCodeDA();
|
|
|
DataTable sourceTable = new DataTable();
|
|
|
|
|
|
string strSql = "SELECT GID,ISNULL(FEECODE,'')+' '+ISNULL(Name,'') AS FullName,Name FROM code_fee ORDER BY FEECODE ASC";
|
|
|
|
|
|
if (Cache["feecodes"] != null)
|
|
|
{
|
|
|
sourceTable = (DataTable)Cache["feecodes"];
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sourceTable = feeCodeDA.GetExcuteSql(strSql).Tables[0];
|
|
|
Cache.Insert("feecodes", sourceTable);
|
|
|
}
|
|
|
|
|
|
StringBuilder sourceBuilder = new StringBuilder();
|
|
|
sourceBuilder.Append("{");
|
|
|
sourceBuilder.Append("feecode:[");
|
|
|
for (int i = 0; i < sourceTable.Rows.Count; i++)
|
|
|
{
|
|
|
if (i == 0)
|
|
|
{
|
|
|
sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sourceBuilder.Append(",{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
|
|
|
}
|
|
|
sourceBuilder.Append("\"code\":\"" + sourceTable.Rows[i][1].ToString() + "\",");
|
|
|
sourceBuilder.Append("\"name\":\"" + sourceTable.Rows[i][2].ToString() + "\"}");
|
|
|
}
|
|
|
sourceBuilder.Append("]");
|
|
|
sourceBuilder.Append("}");
|
|
|
|
|
|
return sourceBuilder.ToString();
|
|
|
}
|
|
|
#endregion
|
|
|
#region 通过费用名称获取费用代码表(code_fee)币别汇率信息
|
|
|
/// <summary>
|
|
|
/// 通过费用名称获取费用代码表(code_fee)币别汇率信息
|
|
|
/// </summary>
|
|
|
/// <param name="tempFeeCodeName"></param>
|
|
|
/// <returns>返回汇率信息</returns>
|
|
|
private string GetFeeCodeCurrencyJson(string tempFeeCodeName)
|
|
|
{
|
|
|
FeeCodeDA feeCodeDA = new FeeCodeDA();
|
|
|
DataTable sourceTable;
|
|
|
|
|
|
string strSql = String.Format(" SELECT GID,ISNULL(FEECODE,'') as FEECODE,ISNULL(Name,'') AS NAME,DEFAULTCURR,ISSEA,ISAIR,DEFAULTUNIT,DEFAULTDEBIT,DEFAULTCREDIT FROM code_fee WHERE NAME = '{0}'",tempFeeCodeName);
|
|
|
|
|
|
sourceTable = feeCodeDA.GetExcuteSql(strSql).Tables[0];
|
|
|
|
|
|
StringBuilder sourceBuilder = new StringBuilder();
|
|
|
sourceBuilder.Append("{");
|
|
|
sourceBuilder.Append("feecode:[");
|
|
|
if (sourceTable.Rows.Count > 0)
|
|
|
{
|
|
|
for (int i = 0; i < sourceTable.Rows.Count; i++)
|
|
|
{
|
|
|
if (i == 0)
|
|
|
{
|
|
|
sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sourceBuilder.Append(",{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
|
|
|
}
|
|
|
sourceBuilder.Append("\"code\":\"" + sourceTable.Rows[i][1].ToString() + "\",");
|
|
|
sourceBuilder.Append("\"name\":\"" + sourceTable.Rows[i][2].ToString() + "\",");
|
|
|
sourceBuilder.Append("\"cur\":\"" + sourceTable.Rows[i][3].ToString() + "\",");
|
|
|
sourceBuilder.Append("\"issea\":" + (sourceTable.Rows[i][4].ToString().ToLower().Equals("true") ? 1 : 0) + ",");
|
|
|
sourceBuilder.Append("\"isair\":\"" + (sourceTable.Rows[i][5].ToString().ToLower().Equals("true") ? 1 : 0) + "\",");
|
|
|
sourceBuilder.Append("\"unit\":\"" + sourceTable.Rows[i][6].ToString() + "\",");
|
|
|
sourceBuilder.Append("\"debit\":\"" + sourceTable.Rows[i][7].ToString() + "\",");
|
|
|
sourceBuilder.Append("\"credit\":\"" + sourceTable.Rows[i][8].ToString() + "\"");
|
|
|
sourceBuilder.Append("}");
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sourceBuilder.Append("{id:\"\",");
|
|
|
sourceBuilder.Append("\"code\":\"\",");
|
|
|
sourceBuilder.Append("\"name\":\"\",");
|
|
|
sourceBuilder.Append("\"cur\":\"\",");
|
|
|
sourceBuilder.Append("\"issea\":-1,");
|
|
|
sourceBuilder.Append("\"isair\":-1,");
|
|
|
sourceBuilder.Append("\"unit\":0,");
|
|
|
sourceBuilder.Append("\"debit\":0,");
|
|
|
sourceBuilder.Append("\"credit\":0");
|
|
|
sourceBuilder.Append("}");
|
|
|
}
|
|
|
sourceBuilder.Append("]");
|
|
|
sourceBuilder.Append("}");
|
|
|
|
|
|
return sourceBuilder.ToString();
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region Unicode-GB Code转换
|
|
|
/// <summary>
|
|
|
/// Unicode-GB Code转换
|
|
|
/// </summary>
|
|
|
/// <param name="text">将Unicode编码字符转换成GB编码字符</param>
|
|
|
/// <returns>GB Code字符串</returns>
|
|
|
public string UnicodeToGB(string text)
|
|
|
{
|
|
|
UnicodeEncoding unicode = new UnicodeEncoding();
|
|
|
text = unicode.GetString(unicode.GetBytes(Regex.Unescape(text.Trim())));
|
|
|
return text;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Unicode-GB Code转换
|
|
|
/// </summary>
|
|
|
/// <param name="text">将Unicode编码字符转换成GB编码字符</param>
|
|
|
/// <returns>GB Code字符串</returns>
|
|
|
public string UnicodeToGB_Old(string text)
|
|
|
{
|
|
|
MatchCollection mc = Regex.Matches(text, "([\\w]+)|(\\\\u([\\w]{4}))");
|
|
|
if (mc != null && mc.Count > 0)
|
|
|
{
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
foreach (Match m2 in mc)
|
|
|
{
|
|
|
string v = m2.Value;
|
|
|
if (v.IndexOf("\\") >= 0)
|
|
|
{
|
|
|
string word = v.Substring(2);
|
|
|
byte[] codes = new byte[2];
|
|
|
int code = Convert.ToInt32(word.Substring(0, 2), 16);
|
|
|
int code2 = Convert.ToInt32(word.Substring(2), 16);
|
|
|
codes[0] = (byte)code2;
|
|
|
codes[1] = (byte)code;
|
|
|
sb.Append(Encoding.Unicode.GetString(codes));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sb.Append(v);
|
|
|
}
|
|
|
}
|
|
|
return sb.ToString();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return text;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|