Wednesday, January 27, 2010

ValidateNumber.cs

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.UI;
using System.Drawing.Drawing2D;
using System.IO;

///
/// 生成验证码的类
///

public class ValidateNumber
{
public ValidateNumber()
{
}
///
/// 验证码的最大长度
///

public int MaxLength
{
get{return 10;}
}
///
/// 验证码的最小长度
///

public int MinLength
{
get{return 1;}
}
///
/// 生成验证码
///

/// 指定验证码的长度
///
public string CreateValidateNumber(int length)
{
int[] randMembers=new int[length];
int[] validateNums=new int[length];
string validateNumberStr="";
//生成起始序列值
int seekSeek=unchecked((int)DateTime.Now.Ticks);
Random seekRand=new Random(seekSeek);
int beginSeek=(int)seekRand.Next(0,Int32.MaxValue-length*10000);
int[] seeks=new int[length];
for(int i=0;i {
beginSeek+=10000;
seeks[i]=beginSeek;
}
//生成随机数字
for(int i=0;i {
Random rand=new Random(seeks[i]);
int pownum=1*(int)Math.Pow(10,length);
randMembers[i]=rand.Next(pownum,Int32.MaxValue);
}
//抽取随机数字
for(int i=0;i {
string numStr=randMembers[i].ToString();
int numLength=numStr.Length;
Random rand=new Random();
int numPosition=rand.Next(0,numLength-1);
validateNums[i]=Int32.Parse(numStr.Substring(numPosition,1));
}
//生成验证码
for(int i=0;i {
validateNumberStr+=validateNums[i].ToString();
}
return validateNumberStr;
}
///
/// 创建验证码的图片
///

/// 要输出到的page对象
/// 验证码
public void CreateValidateGraphic(Page containsPage,string validateNum)
{
Bitmap image=new Bitmap((int)Math.Ceiling(validateNum.Length*12.5),22);
Graphics g=Graphics.FromImage(image);
try
{
//生成随机生成器
Random random=new Random();
//清空图片背景色
g.Clear(Color.White);
//画图片的干扰线
for(int i=0;i<25;i++)
{
int x1=random.Next(image.Width);
int x2=random.Next(image.Width);
int y1=random.Next(image.Height);
int y2=random.Next(image.Height);
g.DrawLine(new Pen(Color.Silver),x1,y1,x2,y2);
}
Font font=new Font("Arial",12,(FontStyle.Bold|FontStyle.Italic));
LinearGradientBrush brush=new LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height),
Color.Blue,Color.DarkRed,1.2f,true);
g.DrawString(validateNum,font,brush,3,2);
//画图片的前景干扰点
for(int i=0;i<100;i++)
{
int x=random.Next(image.Width);
int y=random.Next(image.Height);
image.SetPixel(x,y,Color.FromArgb(random.Next()));
}
//画图片的边框线
g.DrawRectangle(new Pen(Color.Silver),0,0,image.Width-1,image.Height-1);
//保存图片数据
MemoryStream stream=new MemoryStream();
image.Save(stream,ImageFormat.Jpeg);
//输出图片
containsPage.Response.Clear();
containsPage.Response.ContentType="image/jpeg";
containsPage.Response.BinaryWrite(stream.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}
///
/// 得到验证码图片的长度
///

/// 验证码的长度
///
public static int GetImageWidth(int validateNumLength)
{
return (int)(validateNumLength*12.5);
}
///
/// 得到验证码的高度
///

///
public static double GetImageHeight()
{
return 22.5;
}
}

userwin.cs

using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
//该源码下载自www.51aspx.com(51aspx.com)

public class userwin
{
private string u_id;//用户id
private decimal win_money;//赢的资金+输或者是赢,有可能是负数

private DataTable user_dt;//返回用户的数据表
private DataRow this_dr;//该用户的数据行

private string maxP_uid;//该用户向上的最高一级代理用户id
private decimal maxP_gufen;//该用户向上的最高一级代理
private decimal maxP_pay;//该用户向上的最高一级代理抽水


private string[] allParen_uid;//所有我的父级代理名
private string[] allParen_gufen;//所有我的父级代理股份
private string[] allParen_pay;//所有我的父级代理抽水


public string sq="";

private string log;//操作日志
private string doone = "";

///
/// 预处理函数
///

public userwin()
{

init();
}
///
/// 预处理函数
///

private void init()
{
}

///
/// 结算
///

public void domoney(string uid,decimal winmo)
{
this.u_id = uid;
this.win_money = winmo;

//取得用户表
user_dt = Sp.SQLServerDAL.DbHelperSQL.Query("select * from Sp_user").Tables[0];

this_dr = user_dt.Select("id=" + u_id)[0];

//开始递归,的到代理参数
Parent_agent();
sq += reSqlStr();
Sp.SQLServerDAL.DbHelperSQL.ExecuteSql(sq);

}
///
/// 查看该会员是否需要抽水
///

///
private bool isneedchoushui()
{ //内部会员不抽水
bool b1 = this_dr["Prentid"].ToString() != "-1";
return b1;
}
///
/// 得到需要执行的sql语句
/// 返回sql语句字符串
///

///
private string reSqlStr()
{ //资金大于0 就抽水,否则不抽
decimal mymoney=win_money;
decimal paymoney = 0;
if (win_money > 0)
{
mymoney = win_money * (1 - maxP_pay / 100);
paymoney = win_money - mymoney;
}


//更改当前用户的的资金
string sql1 = "update sp_user set Truemoney=Truemoney+"+mymoney+" where id="+u_id+";";
sql1 += Sp.SQLServerDAL.Sp_Money_log.readdsql(mymoney.ToString(), u_id, "系统结算", "游戏输赢");
//把抽的水中的差分配给该用户所属的代理
//Sp.Functions.ResT("
k:"+allParen_pay.Length.ToString());
for (int i = allParen_pay.Length - 2; i >0 ; i--)
{
decimal pc = decimal.Parse(allParen_pay[i]) - decimal.Parse(allParen_pay[i-1]);
decimal tmoney = win_money * ( pc / 100);
sql1 += "update sp_user set Truemoney=Truemoney+" + tmoney + " where id=" + allParen_uid[i] + ";";
sql1 += Sp.SQLServerDAL.Sp_Money_log.readdsql(tmoney.ToString(), allParen_uid[i], "系统结算", "游戏抽水代理分成");
}



return sql1;

}

///
/// 递归出所有上级代理
///

private string temp1 = "0,";
private string temp2 = "0,";
private string temp3 = "0,";
private void Parent_agent()
{
string my_prentid = string.Empty;
my_prentid = this_dr["parentid"].ToString();

DrParent(my_prentid);
allParen_uid = temp1.Split(',');
allParen_gufen = temp2.Split(',');
allParen_pay = temp3.Split(',');


maxP_uid=allParen_uid[allParen_uid.Length-1];
//Sp.Functions.ResT(temp1);
maxP_gufen = decimal.Parse(allParen_gufen[allParen_gufen.Length - 2]);
maxP_pay = decimal.Parse(allParen_pay[allParen_pay.Length - 2]);

}
///
/// 执行递归
///

private void DrParent(string uid)
{
DataRow[] srows = user_dt.Select("id=" + uid);
if (srows.Length >0)
{
temp1 += srows[0]["id"] + ",";
temp2 += srows[0]["gufen"] + ",";
temp3 += srows[0]["pay"] + ",";

DrParent(srows[0]["parentid"].ToString());
}
else
{ return; }

}
///
/// 返回与我相关的代理需要添加或修改的值
///

private string up_agent()
{
throw new System.NotImplementedException();
}

}

Sp_log.cs

using System;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

///
/// 类Sp_log。
///

public class Sp_log
{
public Sp_log()
{ }
#region Model
private int _id;
private string _loger;
private string _idname;
private DateTime _dtt;
///
///
///

public int id
{
set { _id = value; }
get { return _id; }
}
///
///
///

public string loger
{
set { _loger = value; }
get { return _loger; }
}
///
///
///

public string idname
{
set { _idname = value; }
get { return _idname; }
}
///
///
///

public DateTime dtt
{
set { _dtt = value; }
get { return _dtt; }
}
#endregion Model


#region 成员方法

///
/// 增加一条数据
///

public int Add()
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into Sp_log(");
strSql.Append("loger,idname,dtt)");
strSql.Append(" values (");
strSql.Append("@loger,@idname,@dtt)");
strSql.Append(";select @@IDENTITY");
SqlParameter[] parameters = {
new SqlParameter("@loger", SqlDbType.Text),
new SqlParameter("@idname", SqlDbType.VarChar,50),
new SqlParameter("@dtt", SqlDbType.DateTime)};
parameters[0].Value = loger;
parameters[1].Value = idname;
parameters[2].Value = dtt;

object obj = Sp.SQLServerDAL.DbHelperSQL.GetSingle(strSql.ToString(), parameters);
if (obj == null)
{
return 1;
}
else
{
return Convert.ToInt32(obj);
}
}
#endregion 成员方法
}

fun.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
///
/// fun 的摘要说明
///

public class fun
{
public fun()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static string Left(string sSource, int iLength)
{
return sSource.Substring(0, iLength > sSource.Length ? sSource.Length : iLength);
}
///
/// encrypting string
///

/// encrypting string
/// format,0 is SHA1,1 is MD5
///
public static string Encrypt(string Password, int Format)
{
string str = "";
switch (Format)
{
case 0:
str = FormsAuthentication.HashPasswordForStoringInConfigFile(Password, "SHA1");
break;
case 1:
str = FormsAuthentication.HashPasswordForStoringInConfigFile(Password, "MD5");
break;
}
return str;
}
public static string GenerateMix(int CodeLength)
{
int number;
StringBuilder result = new StringBuilder();

System.Random random = new Random();

for (int i = 0; i < CodeLength; i++)
{
number = random.Next();

if (number % 2 == 0)
result.Append(((char)('0' + (char)(number % 10))).ToString());
else
result.Append(((char)('A' + (char)(number % 26))).ToString());

}
return result.ToString();
}
public string GenerateMixNo(int CodeLength)
{
int number;
StringBuilder result = new StringBuilder();

System.Random random = new Random();

for (int i = 0; i < CodeLength; i++)
{
number = random.Next();
if ((i+1) % 6 == 0 && i!=0 && i!=CodeLength)
result.Append("-");
else
result.Append(((char)('0' + (char)(number % 10))).ToString());
}
return result.ToString();
}

public static string CreateValidateNumber(int length)
{
int[] randMembers = new int[length];
int[] validateNums = new int[length];
string validateNumberStr = "";
//生成起始序列值
int seekSeek = unchecked((int)DateTime.Now.Ticks);
Random seekRand = new Random(seekSeek);
int beginSeek = (int)seekRand.Next(0, Int32.MaxValue - length * 10000);
int[] seeks = new int[length];
for (int i = 0; i < length; i++)
{
beginSeek += 10000;
seeks[i] = beginSeek;
}
//生成随机数字
for (int i = 0; i < length; i++)
{
Random rand = new Random(seeks[i]);
int pownum = 1 * (int)Math.Pow(10, length);
randMembers[i] = rand.Next(pownum, Int32.MaxValue);
}
//抽取随机数字
for (int i = 0; i < length; i++)
{
string numStr = randMembers[i].ToString();
int numLength = numStr.Length;
Random rand = new Random();
int numPosition = rand.Next(0, numLength - 1);
validateNums[i] = Int32.Parse(numStr.Substring(numPosition, 1));
}
//生成验证码
for (int i = 0; i < length; i++)
{
validateNumberStr += validateNums[i].ToString();
}
return validateNumberStr;
}

}

Class1.cs

#region 版权信息
//======================================================================
//
// Copyright (C) 2008-2001 海口网博软件工作室
// All rights reserved
//
// filename :Class1
// description :
// created by webabc at 04/02/2008 17:46:53
// http://www.webabc.com.cn

//======================================================================
#endregion
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

///
/// Class1 的摘要说明
///

public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
}