Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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
        }
Exemplo n.º 5
0
        public int AddUser(Models.UserInfoModel.UserInfo usfo)
        {
            UserInfoDAL dal = new UserInfoDAL();

            return(dal.AddUser(usfo));
        }