using BizCom; using SiteCore.Msn; using SiteCore.Redis; using SQLData; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; using Utils; namespace SiteCore.Handler { public partial class app { public static FrequencyControler DuFrequency = new FrequencyControler("duba", 10, 3); public static FrequencyControler DoorFrequency = new FrequencyControler("door",6, 3); public static FrequencyControler TmpDoorFrequency = new FrequencyControler("door", 6, 3); public static readonly Object lockMsn = new object(); public void quduba_sendms() { if (UrlPostParmsCheck("tmp,mobile")) { //string tmp = GetPostString("tmp"); //int qid = WebHelper.getDecodeUid(tmp); //if (qid == 0) //{ // con.Response.Write("{\"s\":0,\"msg\":\"无法访问,请稍候再试\"}"); // return; //} if (con.Session["uid"] == null || con.Session["uid"].ToString()=="") { con.Response.Write("{\"s\":0,\"msg\":\"已过期,无法发送验证码\"}"); return; } string mobile = GetPostString("mobile"); lock (lockMsn) { MsnObj mo = redis.RedisHelper.StringGet(mobile); if (mo == null) { if(SDuUser.Exists("Mobile=?",mobile)) { con.Response.Write("{\"s\":0,\"msg\":\"该手机号已验证过!\"}"); return; } } else if (mo.isFinish) { con.Response.Write("{\"s\":0,\"msg\":\"该手机号已验证过!\"}"); return; } Random random = new Random(); string smsCode = random.Next(1000, 9999).ToString(); string msg = ""; bool isSend = MnsHelper.SendBindSms(mobile, smsCode, out msg); if (isSend) con.Response.Write("{\"s\":1,\"msg\":\"验证码已发送\"}"); else con.Response.Write("{\"s\":0,\"msg\":\"" + msg + "\"}"); } } else { con.Response.Write("{\"s\":0,\"msg\":\"错误的参数,无法发送验证码\"}"); } } public void quduba_sign() { if (DuFrequency.IsTooFrequently(true)) { con.Response.Write("{\"s\":0,\"msg\":\"访问太频繁\"}"); return; } //name,idcard, if (UrlPostParmsCheck("mobile,code,tmp")) { string mobile = GetPostString("mobile"); MsnObj mo = redis.RedisHelper.StringGet(mobile); if (mo == null) { con.Response.Write("{\"s\":0,\"msg\":\"验证码不正确\"}"); return; } string code = GetPostString("code"); if (code != mo.code) { con.Response.Write("{\"s\":0,\"msg\":\"验证码不正确\"}"); return; } //string tmp= GetPostString("tmp"); //int qid = WebHelper.getDecodeUid(tmp); //if (qid == 0) //{ // con.Response.Write("{\"s\":0,\"msg\":\"无法访问,请稍候再试\"}"); // return; //} if (con.Session["uid"] == null || con.Session["uid"].ToString() == "") { con.Response.Write("{\"s\":0,\"msg\":\"注册已过期,请重试\"}"); } try { int uid = Convert.ToInt32(con.Session["uid"]); SDuUser entity = SDuUser.Get(uid); if (entity != null) { entity.Mobile = mobile; entity.Update(); redis.RedisHelper.StringSet(entity.openid, entity.ID + "|" + entity.State); //RedisHelper.StringSet(entity.openid, entity.ID+"|"+entity.State); con.Session["openid"] = entity.openid; mo.isFinish = true; redis.RedisHelper.StringSet(mobile, mo, TimeSpan.FromDays(2)); con.Response.Write("{\"s\":1,\"code\":\"" + DecryptHelper.Encrypt(WebHelper.ConvertDateTimeToInt(DateTime.Now).ToString()) + "\"}"); } else { con.Response.Write("{\"s\":0,\"msg\":\"页面己过期,请重新进入\"}"); } } catch (Exception ex) { XLog.SaveLog(0, ex.Message); } return; } con.Response.Write("{\"s\":0,\"msg\":\"无法访问,请稍候再试\"}"); } public void quduba_sign2() { if (DuFrequency.IsTooFrequently(true)) { con.Response.Write("{\"s\":0,\"msg\":\"访问太频繁\"}"); return; } //name,idcard, if (UrlPostParmsCheck("mobile,code,uname,birth,sex,duty")) { string mobile = GetPostString("mobile"); MsnObj mo = redis.RedisHelper.StringGet(mobile); if (mo == null) { con.Response.Write("{\"s\":0,\"msg\":\"验证码不正确\"}"); return; } string code = GetPostString("code"); if (code != mo.code) { con.Response.Write("{\"s\":0,\"msg\":\"验证码不正确\"}"); return; } string uname = GetPostString("uname"); if (uname.Length < 2) { con.Response.Write("{\"s\":0,\"msg\":\"请输入您的姓名\"}"); return; } int sex = GetPostInt("sex"); if (sex <= 0 && sex > 2) { con.Response.Write("{\"s\":0,\"msg\":\"请选择您的性别\"}"); return; } string duty = GetPostString("duty"); if (duty.Length < 1) { con.Response.Write("{\"s\":0,\"msg\":\"请输入您的职业\"}"); return; } string work = GetPostString("work"); string birth = GetPostString("birth"); if (birth.Length < 1) { con.Response.Write("{\"s\":0,\"msg\":\"请选择出生年月\"}"); return; } //int age = GetPostInt("age"); //if(age<=0 && age > 10) //{ // con.Response.Write("{\"s\":0,\"msg\":\"请选择您的年龄段\"}"); // return; //} //if (work.Length < 1) //{ // con.Response.Write("{\"s\":0,\"msg\":\"请输入您的工作单位\"}"); // return; //} //string tmp= GetPostString("tmp"); //int qid = WebHelper.getDecodeUid(tmp); //if (qid == 0) //{ // con.Response.Write("{\"s\":0,\"msg\":\"无法访问,请稍候再试\"}"); // return; //} if (con.Session["uid"] == null || con.Session["uid"].ToString() == "") { con.Response.Write("{\"s\":0,\"msg\":\"注册已过期,请重试\"}"); } try { int uid = Convert.ToInt32(con.Session["uid"]); SDuUser entity = SDuUser.Get(uid); if (entity != null) { entity.RealName = uname; entity.Sex = sex; //entity.Age = age; entity.Birthday = birth; entity.Duty = duty; entity.WorkUnit = work; entity.Mobile = mobile; entity.Update(); redis.RedisHelper.StringSet(entity.openid, entity.ID + "|" + entity.State); con.Session["openid"] = entity.openid; mo.isFinish = true; redis.RedisHelper.StringSet(mobile, mo, TimeSpan.FromDays(2)); con.Response.Write("{\"s\":1,\"code\":\"" + DecryptHelper.Encrypt(WebHelper.ConvertDateTimeToInt(DateTime.Now).ToString()) + "\"}"); } else { con.Response.Write("{\"s\":0,\"msg\":\"页面己过期,请重新进入\"}"); } } catch (Exception ex) { XLog.SaveLog(0, ex.Message); } return; } con.Response.Write("{\"s\":0,\"msg\":\"填写的信息不完整或无法访问,请稍候再试\"}"); } public void quduba_qcode() { //string userAgent = con.Request.UserAgent; //if (!WebHelper.isWeiXinAgent(userAgent)) //{ // con.Response.Write("0"); // return; //} if (UrlPostParmsCheck("code")) { string code = GetPostString("code"); if (!string.IsNullOrEmpty(code)) { try { //if (con.Session["openid"] == null || con.Session["openid"].ToString() == "") //{ // con.Response.Write("{\"msg\":\"二维码已过期\",\"ncode\":\"\"}"); // return; //} //string openid = con.Session["openid"].ToString(); string openid = WebHelper.getCookie("openid"); if (con.Session["openid"] == null || con.Session["openid"].ToString() == "") { openid = WebHelper.getCookie("openid"); if (openid == "") { con.Response.Write("{\"msg\":\"二维码已过期\",\"ncode\":\"\"}"); return; } } else { openid = con.Session["openid"].ToString(); } string re = redis.RedisHelper.StringGet(openid); if (!string.IsNullOrEmpty(re)) { code = WebHelper.getEncodeCodeByNormal(re); con.Response.Write("{\"msg\":\"\",\"ncode\":\"" + code + "\"}"); return; } } catch(Exception ex) { XLog.SaveLog(0, ex.Message); //Response.Clear(); //con.Response.Write("0"); //Response.End(); } } } con.Response.Write("{\"msg\":\"无法生成二维码\",\"ncode\":\"\"}"); } public void quduba_week() { if (UrlPostParmsCheck("sid,qt")) { string t = GetPostString("qt"); //t = HttpUtility.UrlDecode(t); try { string[] vArr = t.Split('|'); if (vArr.Length >= 7) { int siteid = GetPostInt("sid"); string sql = string.Format("update S_DuSite set opentime='{0}' where id={1}", t, siteid); DbHelper.DbConn.ExecuteNonQuery(sql.ToString()); con.Response.Write("yes"); return; } } catch (Exception ex) { XLog.SaveLog(0, ex.Message); } con.Response.Write("no"); } } public void quduba_door() { if (DoorFrequency.IsTooFrequently(true)) { con.Response.Write("访问太频繁!"); return; } byte[] input = con.Request.BinaryRead(con.Request.TotalBytes); if (input.Length < 1) { con.Response.Write("no"); return; } else { string s = Encoding.UTF8.GetString(input); try { string v = DecryptHelper.Decrypt(s); string[] vArr = v.Split('|'); if (vArr.Length > 3) { //int uid = Convert.ToInt32(vArr[0]); int uid = Convert.ToInt32(SecurityHelper.DecryptSymmetric(vArr[0])); int siteid = Convert.ToInt32(vArr[1]); int inout = Convert.ToInt32(vArr[2]); DateTime dTime = Convert.ToDateTime(vArr[3]); string sTime = dTime.ToString("yyyy-MM-dd HH:mm"); StringBuilder sql = new StringBuilder(); sql.AppendFormat("if (select count(0) from s_duentryexit where userid={0} and siteid={1} and inout={2} and datediff(MINUTE,addtime,'{3}')<=2)<1 begin ", uid, siteid, inout, dTime); sql.AppendFormat("insert into s_duentryexit(userid,siteid,inout,addtime) values({0},{1},{2},'{3}')",uid,siteid,inout,sTime); sql.AppendFormat(" end "); DbHelper.DbConn.ExecuteNonQuery(sql.ToString()); string key = "open_" + uid; duRedis.RedisHelper.StringSet(key, "1|开门成功", TimeSpan.FromSeconds(10)); con.Response.Write("op"); return; } } catch(Exception ex) { XLog.SaveLog(0,"开门访问,"+ s +","+ ex.Message); } con.Response.Write("no"); } } public void quduba_tmpdoor() { byte[] input = con.Request.BinaryRead(con.Request.TotalBytes); if (input.Length < 1) { con.Response.Write("no"); return; } else { string s = Encoding.Unicode.GetString(input); try { string v = DecryptHelper.Decrypt(s); string[] itArr = v.Split('§'); string[] vArr; StringBuilder sql = new StringBuilder(); for (int i = 0; i < itArr.Length; i++) { vArr = itArr[i].Split('|'); int uid= Convert.ToInt32(SecurityHelper.DecryptSymmetric(vArr[0])); //int uid = Convert.ToInt32(vArr[0]); int siteid = Convert.ToInt32(vArr[1]); int inout = Convert.ToInt32(vArr[2]); DateTime dTime = Convert.ToDateTime(vArr[3]); string sTime = dTime.ToString("yyyy-MM-dd HH:mm"); sql.AppendFormat("insert into s_duentryexit(userid,siteid,inout,addtime) values({0},{1},{2},'{3}') ;", uid, siteid, inout, sTime); } if (sql.Length > 0) { DbHelper.DbConn.ExecuteNonQuery(sql.ToString()); con.Response.Write("suc"); return; } } catch (Exception ex) { XLog.SaveLog(0, "tmpdoor_定时发送" + ex.Message); } } con.Response.Write("no"); } public void get_qdbmsg() { if (UrlPostParmsCheck("tmp")) { int qid = GetPostInt("tmp"); string key = "open_" + qid; try { object msg = duRedis.RedisHelper.StringGet(key); if (msg != null && msg.ToString() != "") { if (duRedis.RedisHelper.KeyExists(key)) duRedis.RedisHelper.KeyDelete(key); string[] mArr = msg.ToString().Split('|'); if (mArr[0] == "0") conError(mArr[1]); else conSuccess(mArr[1]); return; //redis.RedisHelper.StringSet(mobile, mo, TimeSpan.FromDays(2)); } } catch { } } conError(""); } public void set_qdbmsg() { if (UrlPostParmsCheck("tmp,msg")) { //int uid = GetPostInt("uid"); try { string tmp = GetPostString("tmp"); tmp = HttpUtility.UrlDecode(tmp); string uid = SecurityHelper.DecryptSymmetric(tmp); string msg2 = GetPostString("msg"); string key = "open_" + uid; duRedis.RedisHelper.StringSet(key, msg2, TimeSpan.FromSeconds(10)); con.Response.Write("1"); } catch { } } } } }