/// <summary> /// 添加用户信息 /// </summary> /// <param name="userinfo"></param> /// <returns></returns> public int AddUser(Models.UserInfoModel.UserInfo userinfo) { int row = 0; string sSQL = "INSERT INTO UserInfo(Phone,MedicareNo,SecretKey,LoginPass,Sex,RealName,BirthDate,IDno,CardType,VerifyFlag,Address,Healthcard) " + " values('" + userinfo.Phone + "'" + ", '" + userinfo.MedicareNo + "' " + ", '" + userinfo.SecretKey + "' " + ", '" + userinfo.LoginPass + "' " + ",'" + userinfo.Sex + "' " + ",'" + userinfo.RealName + "' " + ",'" + userinfo.BirthDate + "' " + ",'" + userinfo.IDno + "' " + "," + userinfo.CardType + " " + "," + userinfo.VerifyFlag + ",'" + userinfo.Address + "','" + userinfo.Healthcard + "')"; try { row = Core.SQLHelper.EXECUTE_NONQUERY(sSQL); } catch (Exception ex) { Core.Logging.LogFile("插入数据失败[AddUser],原因:" + ex.Message); } return(row); }
public int updateJKK(string Healthcard, string IDno) { UserInfoBLL bll = new UserInfoBLL(); Models.UserInfoModel.UserInfo user = new Models.UserInfoModel.UserInfo(); user.Healthcard = Healthcard; user.IDno = IDno; int row = bll.updateJKK(user.Healthcard, user.IDno); return(row); }
public int UserRegister(byte[] bytes, string Phone, string IDno, string RealName, string LoginPass, int VerifyFlag, int CardType, string MedicareNo, string Address, string Healthcard) { UserInfoBLL usbll = new UserInfoBLL(); Models.UserInfoModel.UserInfo user = new Models.UserInfoModel.UserInfo(); user.Phone = Phone; user.IDno = IDno; user.RealName = RealName; user.CardType = CardType; user.MedicareNo = MedicareNo; user.LoginPass = LoginPass; user.VerifyFlag = VerifyFlag; user.Address = Address; user.Healthcard = Healthcard; int Number = 0; try { //密码加密 Random random = new Random(); int random_value = random.Next(10000000, 99999999); //随机一个数字 string SecretKey = PASSWORD_MODIFY.APP_Encode(random_value.ToString()); //生成秘钥 string Pass = PASSWORD_MODIFY.DES_Encode(LoginPass, random_value.ToString()); //根据秘钥生成密码 //说明符合注册条件(验证码和电话号码存在) user.SecretKey = SecretKey; user.LoginPass = Pass; //string birthNumber = user.IDno.Substring(6, 8); //获取出生日期 string birthDate = ""; string strSex = ""; if (user.IDno.Length == 18)//处理18位的身份证号码从号码中得到生日和性别代码 { birthDate = user.IDno.Substring(6, 4) + "-" + user.IDno.Substring(10, 2) + "-" + user.IDno.Substring(12, 2); strSex = user.IDno.Substring(14, 3); } if (user.IDno.Length == 15) { birthDate = "19" + user.IDno.Substring(6, 2) + "-" + user.IDno.Substring(8, 2) + "-" + user.IDno.Substring(10, 2); strSex = user.IDno.Substring(12, 3); } if (int.Parse(strSex) % 2 == 0) //性别代码为偶数是女性奇数为男性 { user.Sex = "F"; //"女"; } else { user.Sex = "M"; //"男"; } user.BirthDate = birthDate; DataTable dt = usbll.GetUserInfo(user.Phone, user.IDno);//检查数据库是否已经存在 电话号码和身份证 if (dt.Rows.Count == 0) { Number = usbll.AddUser(user); } //byte[] bmpData = System.IO.File.ReadAllBytes(System.IO.Path.GetFullPath(".\\") + "temp.jpg"); string group = "usergroup"; //湘潭中心医院 //string group = "xtdygroup"; //湘潭第一医院 string userInfoStr = "{\"UserId\":\"" + user.IDno + "\",\"RealName\":\"" + user.RealName + "\",\"Img\":\"" + user.Img + "\",\"MedicareNo\":\"" + user.MedicareNo + "\",\"BirthDate\":\"" + user.BirthDate + "\",\"Phone\":\"" + user.Phone + "\",\"VerifyFlag\":\"" + user.VerifyFlag + "\",\"FaceImg\":\"" + user.FaceImg + "\",\"Sex\":\"" + user.Sex + "\"}"; string faceReg = BaiDuAuthent.RegUserFace(user.IDno, userInfoStr, group, bytes); } catch (Exception ex) { //PUBLIC_FUNCTION.LogFile("用户注册出现异常[UserRegister],原因:" + ex.Message); } return(Number); }
private void btnOK_Click(object sender, EventArgs e) { #region 检验是否正确 String Mge = ""; //#region 非空验证 //if (String.IsNullOrEmpty(txtOneName.Text)) //{ // MessageBox.Show("请输入姓名"); // return; //} //if (String.IsNullOrEmpty(txtOneIDNum.Text)) //{ // MessageBox.Show("请输入身份证号码"); // return; //} //if (String.IsNullOrEmpty(txtOnePhone.Text)) //{ // MessageBox.Show("请输入手机号码"); // return; //} //if (String.IsNullOrEmpty(textCode.Text)) //{ // MessageBox.Show("请输入验证码"); // return; //} //#endregion #region 验证身份证是否合法 Sidnum = "142727199802101033"; SName = "付玲琪"; string cid = CheckCidInfo18(Sidnum); if (cid != "") { Mge = cid; Ts_Show("2", Mge);//显示提示界面 return; } #endregion //#region 验证手机号码是否合法 //if (!Phone(txtOnePhone.Text.Trim())) //{ // Mge = "手机号码格式错误"; // Ts_Show("2", Mge);//显示提示界面 // return; //} //#endregion //#region 判断手机号与验证码是否合法 //if (!String.IsNullOrEmpty(txtOnePhone.Text)) //{ // if (txtOnePhone.Text != yPhone)//如果接收验证码的手机与文本框的手机不一致 // { // MessageBox.Show("手机号码不一致"); // return; // } // if (String.IsNullOrEmpty(textCode.Text))//如果验证码为空 // { // MessageBox.Show("请输入验证码"); // return; // } // if (textCode.Text.Trim() != yCode)//与发送的验证码不一致 // { // MessageBox.Show("验证码错误"); // return; // } //} //#endregion #region 抓取图片 if (File.Exists(System.IO.Path.GetFullPath(".\\") + "temp.jpg")) { File.Delete(System.IO.Path.GetFullPath(".\\") + "temp.jpg"); } imgFace.Save(System.IO.Path.GetFullPath(".\\") + "temp.jpg"); imgFace.Dispose(); #endregion Test.WSFaces wsf = new Test.WSFaces(); #region 调用公安验证 FileStream jpgStream = new FileStream(System.IO.Path.GetFullPath(".\\") + "temp.jpg", FileMode.Open); byte[] bytes = StreamToBytes(jpgStream); string result = "222";//wsf.AuthenPliceFace(Sidnum, SName, bytes); jpgStream.Close(); jpgStream.Dispose(); #endregion #region 业务逻辑 if (!result.Contains("error_code")) //如果识别通过 { if (Convert.ToDouble(result) >= 0.8) //大于等于0.8表明身份验证通过 { //获取身份证号码和手机号 string cardid = Sidnum; string phone = this.txtOnePhone.Text.Trim(); //两步查询确保用户信息唯一 LiShuiServer ls = new LiShuiServer(); string lsresult = ls.YZinfo(cardid, phone); if (lsresult == "身份证号或手机号已被注册!") { Ts_Show("2", lsresult); Empty(); //timer4.Start(); //string ts1 = txtOneName.Text.Trim(); //if (ts1 != "请将您的身份证放置于读卡区域") //{ // timer4.Stop(); //} return; } #region 获取基本信息 string Sexnum = ""; string strSex = ""; if (cardid.Length == 18) { Sexnum = cardid.Substring(14, 3); } if (cardid.Length == 15) { Sexnum = cardid.Substring(12, 3); } if (int.Parse(Sexnum) % 2 == 0) { strSex = "2";//女2 } else { strSex = "1"; //男1 } //丽水RSA加密的公钥 //String key = "<RSAKeyValue><Modulus>yiOA0woIRt0KIHv1DauhGRMyxMu/sxKz345ilwJbbRk38tPF+sJzB1+N3C0f5izAtO31nXQ2JO6ekKRneEvhiaiIBk3E2iui20hBPLE+z1Y7ycezCwpKqh4Xr7GMbmi+MDMCvBDGcVaS6xp43cE29swxe+N0VipvFVIcKDRil18=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"; string jjk = ls.getJKK(SName, strSex, Sidnum, txtOnePhone.Text.Trim()); // JObject jsonObj = JsonConvert.DeserializeObject<JObject>(dzjkk);//jsonArrayText必须是带[]数组格式字符串 string str = jArray[0]["a"].ToString(); JObject jsonObj = JsonConvert.DeserializeObject <JObject>(jjk); //jsonArrayText必须是带[]数组格式字符串 string str = jArray[0]["a"].ToString(); string error_code = jsonObj["resultCode"].ToString(); //获取错误代码 string dzjkk = jsonObj["entity"].ToString(); //获取健康卡号 #endregion if (lsresult == "更新")//说明是老用户 { #region 老用户健康卡更新 if (ls.updateJKK(dzjkk, Sidnum) > 0) { #region 通过线程启动图片上传功能,解决了图片上传造成的性能慢的问题 Thread t1 = new Thread(new ParameterizedThreadStart(ImgUpdate));//线程 t1.Start(Sidnum); #endregion Empty(); //清空文本框内容 Ts_Show("0", ""); //显示提示注册成功界面 string ts1 = txtOneName.Text.Trim(); if (ts1 != "请将您的身份证放置于读卡区域") { timer4.Stop(); } return; } else { Mge = "用户已经注册!!"; Ts_Show("1", Mge); Empty(); } #endregion } else if (lsresult == "注册") { //用户信息没有注册,进行添加操作 #region 用户注册 if (error_code == "0") { //给Model赋值 Models.UserInfoModel.UserInfo user = new Models.UserInfoModel.UserInfo(); user.Phone = phone; user.RealName = SName; user.IDno = Sidnum; user.VerifyFlag = 2; user.LoginPass = "******"; user.Address = Address; user.Healthcard = dzjkk; //user.InsertDate = DateTime.Now; try { int res = ls.UserRegister(bytes, user.Phone, user.IDno, user.RealName, user.LoginPass, user.VerifyFlag, 1, "", user.Address, user.Healthcard); if (res > 0) { #region 通过线程启动图片上传功能,解决了图片上传造成的性能慢的问题 Thread t1 = new Thread(new ParameterizedThreadStart(ImgUpdate));//线程 t1.Start(Sidnum); #endregion Empty(); //清空文本框内容 Ts_Show("0", ""); //显示提示注册成功界面 string ts1 = txtOneName.Text.Trim(); if (ts1 != "请将您的身份证放置于读卡区域") { timer4.Stop(); } return; } else { Mge = "创建档案失败."; Ts_Show("2", Mge); Empty(); } } catch (Exception ex) { Mge = "创建档案失败."; Ts_Show("2", Mge); Empty(); } } else { JObject jsonObj1 = JsonConvert.DeserializeObject <JObject>(dzjkk); //jsonArrayText必须是带[]数组格式字符串 string str = jArray[0]["a"].ToString(); string error_code1 = jsonObj["entity"].ToString(); //获取错误代码 Ts_Show("2", error_code1); Empty(); } #endregion } } else { Double ImNum = Convert.ToDouble(result); ImNum = ImNum * 100; Mge = "照片与本人的相似度只有" + ImNum.ToString() + "%"; //MessageBox.Show(Mge); Ts_Show("2", Mge);//显示提示界面 Empty(); } } else//如果识别不通过 { JObject jsonObj = JsonConvert.DeserializeObject <JObject>(result);//jsonArrayText必须是带[]数组格式字符串 string str = jArray[0]["a"].ToString(); string error_code = jsonObj["error_code"].ToString();//获取错误代码 #region 错误代码 switch (error_code) { case "4": Mge = "集群超限额"; break; case "6": Mge = "没有接口权限"; break; case "17": Mge = "每天流量超限额"; break; case "18": Mge = "QPS超限额"; break; case "19": Mge = "请求总量超限额"; break; case "100": Mge = "无效的access_token参数"; break; case "110": Mge = "Access Token失效"; break; case "111": Mge = "Access token过期"; break; case "216100": Mge = "参数异常,具体异常原因详见error_msg"; break; case "216101": Mge = "缺少必须的参数,具体异常原因详见error_msg"; break; case "216102": Mge = "请求了不支持的服务"; break; case "216103": Mge = "请求超长"; break; case "216110": Mge = "appid不存在"; break; case "216111": Mge = "userid信息非法"; break; case "216200": Mge = "图片为空或者base64解码错误"; break; case "216201": Mge = "图片格式错误"; break; case "216202": Mge = "图片大小错误"; break; case "216300": Mge = "数据库异常"; break; case "216400": Mge = "后端识别服务异常"; break; case "216402": Mge = "未找到人脸"; break; case "216500": Mge = "未知错误"; break; case "216611": Mge = "用户不存在"; break; case "216613": Mge = "删除用户图片记录失败"; break; case "216614": Mge = "两两比对中图片数少于2张,无法比较"; break; case "216615": Mge = "服务处理该图片失败"; break; case "216616": Mge = "图片已存在"; break; case "216617": Mge = "新增用户图片失败"; break; case "216618": Mge = "组内用户为空"; break; case "216631": Mge = "本次请求添加的用户数量超限"; break; case "216501": Mge = "传入的生活照中没有找到人脸"; break; case "216600": Mge = "身份证格式错误,请检查后重新输入"; break; case "216601": Mge = "身份证号码与姓名不匹配,或无法找到此身份证号码"; break; case "216602": Mge = "输入生活照人脸遮挡,质量检测不通过"; break; case "216603": Mge = "人脸光照不好,质量检测不通过"; break; case "216604": Mge = "人脸不完整,质量检测不通过"; break; case "216605": Mge = "质量检测不通过"; break; case "216606": Mge = "人脸模糊,质量检测不通过"; break; case "216607": Mge = "公安库无此人图片或公安小图质量不佳"; break; case "216608": Mge = "输入的生活照活体校验不通过"; break; case "216609": Mge = "人脸左右角度过大"; break; case "216610": Mge = "人脸俯仰角度过大 "; break; default: break; } #endregion Ts_Show("2", Mge);//显示提示界面 } #endregion #endregion }
public int AddUser(Models.UserInfoModel.UserInfo usfo) { UserInfoDAL dal = new UserInfoDAL(); return(dal.AddUser(usfo)); }