Beispiel #1
0
 /// <summary>
 /// 更新用户包括状态
 /// </summary>
 /// <param name="Model"></param>
 /// <returns></returns>
 public WorkJsonResult WX_UpdateUser(JH_Auth_User Model)
 {
     try
     {
         WorkJsonResult Ret = new WorkJsonResult();
         if (Qyinfo.IsUseWX == "Y")
         {
             long[] Branch            = { new JH_Auth_BranchB().GetEntity(d => d.DeptCode == Model.BranchCode).WXBMCode.Value };
             MemberUpdateRequest User = new MemberUpdateRequest();
             User.userid     = Model.UserName;
             User.name       = Model.UserRealName;
             User.mobile     = Model.mobphone;
             User.department = Branch;
             User.gender     = Model.Sex == "男" ? "1" : "2";
             User.enable     = Model.IsUse == "Y" ? 1 : 0;
             Ret             = MailListApi.UpdateMember(GetToken(), User);
         }
         return(Ret);
     }
     catch (Exception ex)
     {
         WorkJsonResult Ret = new WorkJsonResult();
         new QJY.API.JH_Auth_LogB().Insert(new QJY.Data.JH_Auth_Log()
         {
             CRDate = DateTime.Now, LogContent = Model.UserName + "更新错误:" + ex.ToString()
         });
         return(Ret);
     }
 }
Beispiel #2
0
        /// <summary>
        /// 微信授权登录成功后更新本地账号缓存
        /// </summary>
        public static void UpdateCookieAfterSignIn(JH_Auth_User userInfo)
        {
            DateTime expires = DateTime.Now.AddMinutes(120);

            CommonHelp.SetCookie("szhlcode", userInfo.pccode, expires);
            CommonHelp.SetCookie("username", userInfo.UserName, expires);
            CommonHelp.SetCookie("userphonenumber", userInfo.mobphone, expires);
        }
Beispiel #3
0
        /// <summary>
        /// 根据ID查询工资明细
        /// </summary>
        /// <param name="context"></param>
        /// <param name="msg"></param>
        /// <param name="P1"></param>
        /// <param name="P2"></param>
        /// <param name="UserInfo"></param>
        public void GETGZDLIST(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            int          ID;
            JH_Auth_User userInfo = new JH_Auth_User();

            int.TryParse(context.Request["ID"] ?? "-1", out ID);
            msg.Result = new SZHL_XZ_GZDB().GetEntities(d => d.ID == ID).ToList();
            return;
        }
Beispiel #4
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="context"></param>
        /// <param name="msg"></param>
        /// <param name="P1">用户名</param>
        /// <param name="P2">密码(未解码的)</param>
        /// <param name="UserInfo"></param>
        public void LOGIN(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            string password = context.Request["password"] ?? "";
            string username = context.Request["UserName"] ?? "";
            string chkcode  = context.Request["chkcode"] ?? "";

            msg.ErrorMsg = "";
            //取消验证码 Weiler
            //if (context.Session["chkcode"] != null)
            //{

            //    if (!chkcode.ToUpper().Equals(context.Session["chkcode"].ToString()))
            //    {
            //        msg.ErrorMsg = "验证码不正确";
            //        return;
            //    }
            //}
            //else
            //{
            //    msg.ErrorMsg = "验证码已过期";
            //    return;
            //}


            JH_Auth_QY qyModel = new JH_Auth_QYB().GetALLEntities().First();

            password = CommonHelp.GetMD5(password);
            JH_Auth_User userInfo = new JH_Auth_User();

            List <JH_Auth_User> userList = new JH_Auth_UserB().GetEntities(d => (d.UserName == username || d.mobphone == username) && d.UserPass == password).ToList();

            if (userList.Count() == 0)
            {
                msg.ErrorMsg = "用户名或密码不正确";
                return;
            }
            else
            {
                userInfo = userList[0];
                if (userInfo.IsUse != "Y")
                {
                    msg.ErrorMsg = "用户被禁用,请联系管理员";
                    return;
                }
                if (string.IsNullOrEmpty(userInfo.pccode))
                {
                    userInfo.pccode = CommonHelp.CreatePCCode(userInfo);
                }
                userInfo.logindate = DateTime.Now;
                new JH_Auth_UserB().Update(userInfo);
                msg.Result  = userInfo.pccode;
                msg.Result1 = userInfo.UserName;
                msg.Result4 = userInfo;
            }
        }
Beispiel #5
0
        private async void OnProfileUpdated(JH_Auth_User profile)
        {
            Profile = null;

            if (Device.RuntimePlatform == Device.UWP)
            {
                await Task.Delay(2000); // Give UWP enough time (for Photo reload)
            }

            Profile = profile;
        }
        public async Task InitAsync()
        {
            IsBusy = true;
            try
            {
                var profile      = new JH_Auth_User();
                var cacheProfile = await _cacheManager.Get <JH_Auth_User>(GlobalSettings.profilepage_profile_key);

                if (cacheProfile != null)
                {
                    profile = cacheProfile;
                }
                else
                {
                    profile = await _profileService.GetCurrentProfileAsync();

                    await _cacheManager.Set <JH_Auth_User>(GlobalSettings.profilepage_profile_key, profile);
                }

                if (!IsConnected())
                {
                    _dialogService.LongAlert("网络异常,数据获取失败!");
                }


                if (!string.IsNullOrEmpty(profile.tx))
                {
                    //Force photo reload
                    profile.tx += $"?t={DateTime.Now.Ticks}";
                }
                else
                {
                    profile.tx = "profile_generic.png";
                }

                Profile = profile;
                MessagingCenter.Send(Profile, MessengerKeys.ProfileUpdated);
            }
            catch (Exception ex) when(ex is WebException || ex is HttpRequestException)
            {
                //await _dialogService.ShowAlertAsync("Communication error", "Error", "Ok");
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Error fetching profile with exception: {ex}");
            }

            IsBusy = false;
        }
Beispiel #7
0
        public void VALIDATETOMONOLICENSE(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            JH_Auth_User j = JsonConvert.DeserializeObject <JH_Auth_User>(P1);

            if (j == null)
            {
                msg.ErrorMsg = "绑定失败";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.UserRealName.Trim()))
            {
                msg.ErrorMsg = "姓名不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.mobphone.Trim()))
            {
                msg.ErrorMsg = "手机号不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.IDCard.Trim()))
            {
                msg.ErrorMsg = "身份证号不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.ToMonoLicense.Trim()))
            {
                msg.ErrorMsg = "专卖许可证号不能为空";
                return;
            }
            string url = "http://order.lstobacco.com:5222/tabacco/logistic/validateCustInfo";
            Dictionary <String, String> DATA = new Dictionary <String, String>();

            DATA.Add("licenseCode", j.ToMonoLicense.Trim());
            DATA.Add("idCard", j.IDCard.Trim());
            DATA.Add("userName", j.UserRealName.Trim());
            try
            {
                HttpWebResponse ResponseData = CommonHelp.CreatePostHttpResponse(url, DATA, 0, "", null);
                string          Returndata   = CommonHelp.GetResponseString(ResponseData);
                JObject         json         = (JObject)JsonConvert.DeserializeObject(Returndata);
                msg.Result = json;
            }
            catch (Exception e)
            {
                msg.ErrorMsg = "验证失败,请检查您的信息!";
            }
        }
Beispiel #8
0
        public void REGISTERYS(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            string       strXM    = P2;
            string       strPhone = P1;
            JH_Auth_User user1    = new JH_Auth_UserB().GetUserByUserName(10334, P1);

            if (user1 != null)
            {
                msg.ErrorMsg = "用户已存在";
                return;
            }
            JH_Auth_User user = new JH_Auth_User();

            user.UserName     = strPhone;
            user.mobphone     = strPhone;
            user.UserRealName = P2;
            user.UserPass     = CommonHelp.GetMD5("abc123");
            user.ComId        = 10334;
            user.BranchCode   = 1728;
            user.CRDate       = DateTime.Now;
            user.CRUser       = "******";
            user.logindate    = DateTime.Now;
            user.IsUse        = "Y";
            if (!new JH_Auth_UserB().Insert(user))
            {
                msg.ErrorMsg = "添加用户失败";
            }
            else
            {
                JH_Auth_QY QY = new JH_Auth_QYB().GetEntity(d => d.ComId == 10334);
                WXHelp     wx = new WXHelp(QY);
                wx.WX_CreateUser(user);

                //添加默认员工角色
                JH_Auth_UserRole Model = new JH_Auth_UserRole();
                Model.UserName = user.UserName;
                Model.RoleCode = 1219;
                Model.ComId    = user.ComId;
                new JH_Auth_UserRoleB().Insert(Model);
            }
        }
Beispiel #9
0
        public async Task UploadUserImageAsync(JH_Auth_User profile, string imageAsBase64)
        {
            try
            {
                var userId  = _authenticationService.GetCurrentUserId();
                var builder = new UriBuilder(GlobalSettings.AuthenticationEndpoint);
                //http://192.168.1.42:8998/api/profiles/image/6917
                builder.Path = $"api/profiles/image/{userId}";
                var uri        = builder.ToString();
                var imageModel = new ImageModel
                {
                    Data = imageAsBase64
                };
                var result = await _requestProvider.PutAsync <ImageModel, RequestResult>(uri, imageModel);

                await CacheHelper.RemoveFromCache(profile.tx);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Print(ex.Message);
            }
        }
Beispiel #10
0
 public QyJsonResult WX_CreateUser(JH_Auth_User Model)
 {
     try
     {
         QyJsonResult Ret = new QyJsonResult();
         if (Qyinfo.IsUseWX == "Y")
         {
             int[] Branch = { new JH_Auth_BranchB().GetEntity(d => d.DeptCode == Model.BranchCode).WXBMCode.Value };
             Ret = MailListApi.CreateMember(GetToken(), Model.UserName, Model.UserRealName, Branch, Model.zhiwu, Model.mobphone, Model.mailbox, Model.weixinnum);
         }
         return(Ret);
     }
     catch (Exception ex)
     {
         QyJsonResult Ret = new QyJsonResult();
         new QJY.API.JH_Auth_LogB().Insert(new QJY.Data.JH_Auth_Log()
         {
             CRDate = DateTime.Now, LogContent = Model.UserName + "新增错误:" + ex.ToString()
         });
         return(Ret);
     }
 }
Beispiel #11
0
        public ActionResult <string> Login(Object PostData)
        {
            JObject JsonData = JObject.FromObject(PostData);
            string  username = JsonData["UserName"] == null ? "" : JsonData["UserName"].ToString();
            string  password = JsonData["password"] == null ? "" : JsonData["password"].ToString();
            Dictionary <string, string> results3 = JsonConvert.DeserializeObject <Dictionary <string, string> >(PostData.ToString());

            Model.ErrorMsg = "";
            JH_Auth_QY qyModel = new JH_Auth_QYB().GetALLEntities().First();

            password = CommonHelp.GetMD5(password);
            JH_Auth_User        userInfo = new JH_Auth_User();
            List <JH_Auth_User> userList = new JH_Auth_UserB().GetEntities(d => (d.UserName == username || d.mobphone == username) && d.UserPass == password).ToList();

            if (userList.Count() == 0)
            {
                Model.ErrorMsg = "用户名或密码不正确";
            }
            else
            {
                userInfo = userList[0];
                if (userInfo.IsUse != "Y")
                {
                    Model.ErrorMsg = "用户被禁用,请联系管理员";
                }
                if (Model.ErrorMsg == "")
                {
                    Model.Result  = JwtHelper.CreateJWT(username, "Admin");
                    Model.Result1 = userInfo.UserName;
                    Model.Result2 = qyModel.FileServerUrl;
                    Model.Result4 = userInfo;

                    CacheHelp.Remove(userInfo.UserName);
                }
            }


            return(ControHelp.CovJson(Model));;
        }
Beispiel #12
0
        /// <summary>
        /// 从企业微信同步到系统里
        /// </summary>
        /// <param name="context"></param>
        /// <param name="msg"></param>
        /// <param name="P1"></param>
        /// <param name="P2"></param>
        /// <param name="UserInfo"></param>
        public void TBTXL(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            try
            {
                int bmcount = 0;
                int rycount = 0;
                if (P1 == "")
                {
                    msg.ErrorMsg = "请输入初始密码";
                    return;
                }
                WXHelp wx = new WXHelp(UserInfo.QYinfo);
                #region 更新部门
                GetDepartmentListResult bmlist = wx.WX_GetBranchList("");
                foreach (var wxbm in bmlist.department.OrderBy(d => d.parentid))
                {
                    var bm = new JH_Auth_BranchB().GetEntity(p => p.ComId == UserInfo.User.ComId && p.WXBMCode == wxbm.id);
                    if (bm == null)
                    {
                        #region 新增部门
                        JH_Auth_Branch jab = new JH_Auth_Branch();
                        jab.WXBMCode  = int.Parse(wxbm.id.ToString());
                        jab.ComId     = UserInfo.User.ComId;
                        jab.DeptName  = wxbm.name;
                        jab.DeptDesc  = wxbm.name;
                        jab.DeptShort = int.Parse(wxbm.order.ToString());

                        if (wxbm.parentid == 0)//如果是跟部门,设置其跟部门为-1
                        {
                            jab.DeptRoot = -1;
                        }
                        else
                        {
                            var bm1 = new JH_Auth_BranchB().GetEntity(p => p.ComId == UserInfo.User.ComId && p.WXBMCode == wxbm.parentid);
                            jab.DeptRoot = bm1.DeptCode;
                            jab.Remark1  = new JH_Auth_BranchB().GetBranchNo(UserInfo.User.ComId.Value, jab.DeptRoot);
                        }


                        new JH_Auth_BranchB().Insert(jab);
                        jab.Remark1 = new JH_Auth_BranchB().GetBranchNo(UserInfo.User.ComId.Value, jab.DeptRoot) + jab.DeptCode;
                        new JH_Auth_BranchB().Update(jab);


                        bmcount = bmcount + 1;
                        #endregion
                    }
                    else
                    {
                        //同步部门时放弃更新现有部门
                    }
                }
                #endregion

                #region 更新人员
                JH_Auth_Branch branchModel = new JH_Auth_BranchB().GetEntity(d => d.DeptRoot == -1 && d.ComId == UserInfo.User.ComId);

                GetDepartmentMemberInfoResult yg = wx.WX_GetDepartmentMemberInfo(branchModel.WXBMCode.Value);
                foreach (var u in yg.userlist)
                {
                    var user = new JH_Auth_UserB().GetUserByUserName(UserInfo.QYinfo.ComId, u.userid);
                    if (user == null)
                    {
                        #region 新增人员
                        JH_Auth_User jau = new JH_Auth_User();
                        jau.ComId        = UserInfo.User.ComId;
                        jau.UserName     = u.userid;
                        jau.UserPass     = CommonHelp.GetMD5(P1);
                        jau.UserRealName = u.name;
                        jau.Sex          = u.gender == 1 ? "男" : "女";
                        if (u.department.Length > 0)
                        {
                            int id  = int.Parse(u.department[0].ToString());
                            var bm1 = new JH_Auth_BranchB().GetEntity(p => p.ComId == UserInfo.User.ComId && p.WXBMCode == id);
                            jau.BranchCode = bm1.DeptCode;
                            jau.remark     = bm1.Remark1.Split('-')[0];//用户得部门路径
                        }
                        jau.mailbox  = u.email;
                        jau.mobphone = u.mobile;
                        jau.zhiwu    = string.IsNullOrEmpty(u.position) ? "员工" : u.position;
                        jau.IsUse    = "Y";

                        if (u.status == 1 || u.status == 4)
                        {
                            jau.isgz = u.status.ToString();
                        }
                        jau.txurl = u.avatar;

                        new JH_Auth_UserB().Insert(jau);

                        rycount = rycount + 1;
                        #endregion

                        //为所有人增加普通员工的权限
                        JH_Auth_Role rdefault = new JH_Auth_RoleB().GetEntity(p => p.ComId == UserInfo.User.ComId && p.isSysRole == "Y" && p.RoleName == "员工");//找到默认角色
                        if (rdefault != null)
                        {
                            JH_Auth_UserRole jaurdefault = new JH_Auth_UserRole();
                            jaurdefault.ComId    = UserInfo.User.ComId;
                            jaurdefault.RoleCode = rdefault.RoleCode;
                            jaurdefault.UserName = jau.UserName;
                            new JH_Auth_UserRoleB().Insert(jaurdefault);
                        }
                    }
                    else
                    {
                        //同步人员时放弃更新现有人员
                        #region 更新人员
                        user.UserRealName = u.name;
                        if (u.department.Length > 0)
                        {
                            int id  = int.Parse(u.department[0].ToString());
                            var bm1 = new JH_Auth_BranchB().GetEntity(p => p.ComId == UserInfo.User.ComId && p.WXBMCode == id);
                            user.BranchCode = bm1.DeptCode;
                        }
                        user.mailbox  = u.email;
                        user.mobphone = u.mobile;
                        user.zhiwu    = string.IsNullOrEmpty(u.position) ? "员工" : u.position;
                        user.Sex      = u.gender == 1 ? "男" : "女";
                        if (u.status == 1 || u.status == 4)
                        {
                            user.IsUse = "Y";
                            user.isgz  = u.status.ToString();
                        }
                        else if (u.status == 2)
                        {
                            user.IsUse = "N";
                        }
                        user.txurl = u.avatar;

                        new JH_Auth_UserB().Update(user);
                        #endregion
                    }

                    #region 更新角色(职务)
                    if (!string.IsNullOrEmpty(u.position))
                    {
                        var r = new JH_Auth_RoleB().GetEntity(p => p.ComId == UserInfo.User.ComId && p.RoleName == u.position);

                        if (r == null)
                        {
                            JH_Auth_Role jar = new JH_Auth_Role();
                            jar.ComId        = UserInfo.User.ComId;
                            jar.RoleName     = u.position;
                            jar.RoleDec      = u.position;
                            jar.PRoleCode    = 0;
                            jar.isSysRole    = "N";
                            jar.IsUse        = "Y";
                            jar.leve         = 0;
                            jar.DisplayOrder = 0;

                            new JH_Auth_RoleB().Insert(jar);

                            JH_Auth_UserRole jaur = new JH_Auth_UserRole();
                            jaur.ComId    = UserInfo.User.ComId;
                            jaur.RoleCode = jar.RoleCode;
                            jaur.UserName = u.userid;
                            new JH_Auth_UserRoleB().Insert(jaur);
                        }
                        else
                        {
                        }
                    }
                    #endregion
                }
                #endregion



                msg.Result1 = bmcount;
                msg.Result2 = rycount;
            }
            catch (Exception ex)
            {
                msg.ErrorMsg = ex.ToString();
            }
        }
Beispiel #13
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.AddHeader("Access-Control-Allow-Origin", "*");
            context.Response.AddHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE"); //支持的http 动作
            context.Response.AddHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type,authorization");
            context.Response.AddHeader("Access-Control-Allow-Credentials", "true");
            context.Response.AddHeader("pragma", "no-cache");
            context.Response.AddHeader("cache-control", "");
            context.Response.CacheControl = "no-cache";
            string strAction = context.Request["Action"] ?? "";
            string UserName  = context.Request["UserName"] ?? "";
            string strIP     = CommonHelp.getIP(context);

            Msg_Result Model = new Msg_Result()
            {
                Action = strAction.ToUpper(), ErrorMsg = ""
            };

            if (!string.IsNullOrEmpty(strAction))
            {
                #region 企业号应用callback
                if (strAction == "XXJS")
                {
                    String strCorpID = context.Request["corpid"] ?? "";
                    string strCode   = context.Request["Code"] ?? "";
                    try
                    {
                        JH_Auth_QY    jaq = new JH_Auth_QYB().GetALLEntities().FirstOrDefault();
                        JH_Auth_Model jam = new JH_Auth_ModelB().GetEntity(p => p.ModelCode == strCode);
                        //if (jaq != null && jam != null && !string.IsNullOrEmpty(jam.TJId))
                        if (jaq != null && jam != null)
                        {
                            #region POST
                            if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
                            {
                                string signature = HttpContext.Current.Request.QueryString["msg_signature"];//企业号的 msg_signature
                                string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
                                string nonce     = HttpContext.Current.Request.QueryString["nonce"];

                                // 获得客户端RAW HttpRequest
                                StreamReader srResult    = new StreamReader(context.Request.InputStream);
                                string       str         = srResult.ReadToEnd();
                                XmlDocument  XmlDocument = new XmlDocument();
                                XmlDocument.LoadXml(HttpContext.Current.Server.UrlDecode(str));
                                string ToUserName = string.Empty;
                                string strde      = string.Empty;
                                string msgtype    = string.Empty;//微信响应类型
                                foreach (XmlNode xn in XmlDocument.ChildNodes[0].ChildNodes)
                                {
                                    if (xn.Name == "ToUserName")
                                    {
                                        ToUserName = xn.InnerText;
                                    }
                                }
                                var pj = new JH_Auth_WXPJB().GetEntity(p => p.TJID == jam.TJId);
                                //Tencent.WXBizMsgCrypt wxcpt = new Tencent.WXBizMsgCrypt(pj.Token, pj.EncodingAESKey, ToUserName);
                                //int n = wxcpt.DecryptMsg(signature, timestamp, nonce, str, ref strde);
                                XmlDocument XmlDocument1 = new XmlDocument();
                                XmlDocument1.LoadXml(HttpContext.Current.Server.UrlDecode(strde));
                                foreach (XmlNode xn1 in XmlDocument1.ChildNodes[0].ChildNodes)
                                {
                                    if (xn1.Name == "MsgType")
                                    {
                                        msgtype = xn1.InnerText;
                                    }
                                    //CommonHelp.WriteLOG(XmlDocument1.OuterXml);
                                }
                                if (msgtype == "event")//处理事件
                                {
                                    //需要处理进入应用的菜单更改事件
                                    string strEvent    = XmlDocument1.ChildNodes[0]["Event"].InnerText;
                                    string strUserName = XmlDocument1.ChildNodes[0]["FromUserName"].InnerText;
                                    string strAgentID  = XmlDocument1.ChildNodes[0]["AgentID"].InnerText;
                                    string strEventKey = XmlDocument1.ChildNodes[0]["EventKey"].InnerText;

                                    if (strEvent.ToLower() == "enter_agent" || strEvent.ToLower() == "view")
                                    {
                                        //进入应用和点击菜单
                                        //JH_Auth_User jau = new JH_Auth_UserB().GetEntity(p => p.ComId == jaq.ComId && p.UserName == strUserName);
                                        //JH_Auth_QY_Model jhqm = new JH_Auth_QY_ModelB().GetEntity(p => p.ComId == jaq.ComId && p.AgentId == strAgentID);
                                        //if (jau != null && jhqm != null)
                                        //{
                                        //    JH_Auth_YYLog jay = new JH_Auth_YYLog();
                                        //    jay.ComId = jaq.ComId;
                                        //    jay.AgentID = strAgentID;
                                        //    jay.CorpID = strCorpID;
                                        //    jay.CRDate = DateTime.Now;
                                        //    jay.CRUser = strUserName;
                                        //    jay.Event = strEvent;
                                        //    jay.EventKey = strEventKey;
                                        //    jay.ModelCode = strCode;
                                        //    jay.ModelID = jhqm.ModelID;
                                        //    jay.QYName = jaq.QYName;
                                        //    jay.TJID = jam.TJId;
                                        //    jay.Type = msgtype;
                                        //    jay.UserName = strUserName;
                                        //    jay.UserRealName = jau.UserRealName;

                                        //    new JH_Auth_YYLogB().Insert(jay);

                                        //    if (strEvent.ToLower() == "enter_agent")
                                        //    {
                                        //        var jays = new JH_Auth_YYLogB().GetEntities(p => p.ComId == jaq.ComId && p.Event == "enter_agent" && p.AgentID == strAgentID && p.CRUser == strUserName);
                                        //        if (jays.Count() <= 1)
                                        //        {
                                        //        }
                                        //    }
                                        //}
                                    }
                                }
                                if (new List <string> {
                                    "text", "image", "voice", "video", "shortvideo", "link"
                                }.Contains(msgtype))                                                                               //处理消息事件
                                {
                                    if (XmlDocument1.ChildNodes.Count > 0)
                                    {
                                        JH_Auth_WXMSG wxmsgModel = new JH_Auth_WXMSG();
                                        wxmsgModel.AgentID      = int.Parse(XmlDocument1.ChildNodes[0]["AgentID"].InnerText);
                                        wxmsgModel.ComId        = jaq.ComId;
                                        wxmsgModel.ToUserName   = XmlDocument1.ChildNodes[0]["ToUserName"].InnerText;
                                        wxmsgModel.FromUserName = XmlDocument1.ChildNodes[0]["FromUserName"].InnerText;
                                        wxmsgModel.CRDate       = DateTime.Now;
                                        wxmsgModel.CRUser       = XmlDocument1.ChildNodes[0]["FromUserName"].InnerText;
                                        wxmsgModel.MsgId        = XmlDocument1.ChildNodes[0]["MsgId"].InnerText;
                                        wxmsgModel.MsgType      = msgtype;
                                        wxmsgModel.ModeCode     = strCode;
                                        wxmsgModel.Tags         = "微信收藏";

                                        switch (msgtype)
                                        {
                                        case "text":
                                            wxmsgModel.MsgContent = XmlDocument1.ChildNodes[0]["Content"].InnerText;
                                            break;

                                        case "image":
                                            wxmsgModel.PicUrl  = XmlDocument1.ChildNodes[0]["PicUrl"].InnerText;
                                            wxmsgModel.MediaId = XmlDocument1.ChildNodes[0]["MediaId"].InnerText;
                                            break;

                                        case "voice":
                                            wxmsgModel.MediaId = XmlDocument1.ChildNodes[0]["MediaId"].InnerText;
                                            wxmsgModel.Format  = XmlDocument1.ChildNodes[0]["Format"].InnerText;
                                            break;

                                        case "video":
                                            wxmsgModel.MediaId      = XmlDocument1.ChildNodes[0]["MediaId"].InnerText;
                                            wxmsgModel.ThumbMediaId = XmlDocument1.ChildNodes[0]["ThumbMediaId"].InnerText;
                                            break;

                                        case "shortvideo":
                                            wxmsgModel.MediaId      = XmlDocument1.ChildNodes[0]["MediaId"].InnerText;
                                            wxmsgModel.ThumbMediaId = XmlDocument1.ChildNodes[0]["ThumbMediaId"].InnerText;
                                            break;

                                        case "link":
                                            wxmsgModel.Description = XmlDocument1.ChildNodes[0]["Description"].InnerText;
                                            wxmsgModel.Title       = XmlDocument1.ChildNodes[0]["Title"].InnerText;
                                            wxmsgModel.URL         = XmlDocument1.ChildNodes[0]["Url"].InnerText;
                                            wxmsgModel.PicUrl      = XmlDocument1.ChildNodes[0]["PicUrl"].InnerText;
                                            break;
                                        }
                                        if (new List <string>()
                                        {
                                            "link", "text"
                                        }.Contains(msgtype))
                                        {
                                            if (msgtype == "link")
                                            {
                                                var jaw = new JH_Auth_WXMSGB().GetEntity(p => p.ComId == jaq.ComId && p.MsgId == wxmsgModel.MsgId);
                                                if (jaw == null)
                                                {
                                                    string strMedType = ".jpg";
                                                    JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB.UserInfo();
                                                    UserInfo = new JH_Auth_UserB().GetUserInfo(jaq.ComId, wxmsgModel.FromUserName);
                                                    //  string fileID = CommonHelp.ProcessWxIMGUrl(wxmsgModel.PicUrl, UserInfo, strMedType);

                                                    //wxmsgModel.FileId = fileID;
                                                    //new JH_Auth_WXMSGB().Insert(wxmsgModel);

                                                    //if (strCode == "TSSQ")
                                                    //{
                                                    //    SZHL_TXSX tx1 = new SZHL_TXSX();
                                                    //    tx1.ComId = jaq.ComId;
                                                    //    tx1.APIName = "TSSQ";
                                                    //    tx1.MsgID = wxmsgModel.ID.ToString();
                                                    //    tx1.FunName = "SENDWXMSG";
                                                    //    tx1.Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                                    //    tx1.CRUser = wxmsgModel.CRUser;
                                                    //    tx1.CRDate = DateTime.Now;
                                                    //    TXSX.TXSXAPI.AddALERT(tx1); //时间为发送时间
                                                    //}
                                                }
                                            }
                                            else
                                            {
                                                new JH_Auth_WXMSGB().Insert(wxmsgModel);
                                            }
                                        }
                                        if (!string.IsNullOrEmpty(wxmsgModel.MediaId))
                                        {
                                            var jaw = new JH_Auth_WXMSGB().GetEntity(p => p.ComId == jaq.ComId && p.MediaId == wxmsgModel.MediaId);
                                            if (jaw == null)
                                            {
                                                string strMedType = ".jpg";
                                                if (strCode == "QYWD" || strCode == "CRM")             //判断模块
                                                {
                                                    if (msgtype == "shortvideo" || msgtype == "video") //视频,小视频
                                                    {
                                                        strMedType = ".mp4";
                                                    }
                                                    if (new List <string>()
                                                    {
                                                        "image", "shortvideo", "video", "voice"
                                                    }.Contains(msgtype))                                                                 //下载到本地服务器
                                                    {
                                                        JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB.UserInfo();
                                                        UserInfo = new JH_Auth_UserB().GetUserInfo(jaq.ComId, wxmsgModel.FromUserName);
                                                        //  string fileID = CommonHelp.ProcessWxIMG(wxmsgModel.MediaId, strCode, UserInfo, strMedType);
                                                        //  wxmsgModel.FileId = fileID;
                                                        // new JH_Auth_WXMSGB().Insert(wxmsgModel);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            #endregion

                            #region GET
                            if (HttpContext.Current.Request.HttpMethod.ToUpper() == "GET")
                            {
                                Auth(jam.Token, jam.EncodingAESKey, jaq.corpId);
                            }
                            #endregion
                        }
                    }
                    catch (Exception ex)
                    {
                        Model.ErrorMsg = ex.ToString();
                        CommonHelp.WriteLOG(ex.ToString());
                    }
                }
                #endregion



                #region 获取唯一code
                if (strAction.ToUpper() == "GetUserCodeByCode".ToUpper())
                {
                    #region 获取Code
                    Model.ErrorMsg = "获取Code错误,请重试";

                    string strCode      = context.Request["code"] ?? "";
                    string strCorpID    = context.Request["corpid"] ?? "";
                    string strModelCode = context.Request["funcode"] ?? "";

                    if (!string.IsNullOrEmpty(strCode))
                    {
                        var qy = new JH_Auth_QYB().GetEntity(p => p.corpId == strCorpID);
                        if (qy != null)
                        {
                            try
                            {
                                //通过微信接口获取用户名
                                WXHelp wx       = new WXHelp(qy);
                                string username = wx.GetUserDataByCode(strCode, strModelCode);
                                CommonHelp.WriteLOG(username);
                                if (!string.IsNullOrEmpty(username))
                                {
                                    var jau = new JH_Auth_UserB().GetUserByUserName(qy.ComId, username);
                                    CommonHelp.WriteLOG(JsonConvert.SerializeObject(jau));

                                    if (jau != null)
                                    {
                                        //如果PCCode为空或者超过60分钟没操作,统统重新生成PCCode,并更新最新操作时间
                                        if (jau.logindate == null)
                                        {
                                            jau.logindate = DateTime.Now;
                                        }
                                        TimeSpan ts = new TimeSpan(jau.logindate.Value.Ticks).Subtract(new TimeSpan(DateTime.Now.Ticks)).Duration();
                                        if (string.IsNullOrEmpty(jau.pccode) || ts.TotalMinutes > 60)
                                        {
                                            string strGuid = CommonHelp.CreatePCCode(jau);
                                            jau.pccode    = strGuid;
                                            jau.logindate = DateTime.Now;
                                            new JH_Auth_UserB().Update(jau);
                                        }
                                        Model.ErrorMsg = "";
                                        Model.Result   = jau.pccode;
                                        Model.Result1  = jau.UserName;
                                        Model.Result2  = ts.TotalMinutes;
                                        Model.Result3  = qy.FileServerUrl;
                                    }
                                }
                                else
                                {
                                    Model.ErrorMsg = "当前用户不存在";
                                }
                            }
                            catch (Exception ex)
                            {
                                Model.ErrorMsg = ex.ToString();
                            }
                        }
                        else
                        {
                            Model.ErrorMsg = "当前企业号未在电脑端注册";
                        }
                    }
                    else
                    {
                        Model.ErrorMsg = "Code为空";
                    }
                    #endregion
                }
                #endregion
                #region 是否存在
                if (strAction.ToUpper() == "isexist".ToUpper())
                {
                    if (context.Request["szhlcode"] != null)
                    {
                        //通过Cookies获取Code
                        //string szhlcode = "5ab470be-4988-4bb3-9658-050481b98fca";
                        string szhlcode = context.Request["szhlcode"].ToString();
                        //通过Code获取用户名,然后执行接口方法
                        var jau = new JH_Auth_UserB().GetUserByPCCode(szhlcode);
                        if (jau == null)
                        {
                            Model.Result = "NOCODE";
                        }
                    }
                }
                #endregion
                #region 发送提醒
                if (strAction.ToUpper() == "AUTOALERT")
                {
                    TXSX.TXSXAPI.AUTOALERT();
                }
                //阿里云转码通知
                if (strAction.ToUpper() == "ZMNOTICE")
                {
                    #region 转码通知


                    Stream       stream = context.Request.InputStream;
                    StreamReader reader = new StreamReader(stream);
                    string       text   = reader.ReadToEnd();
                    reader.Close();

                    if (!string.IsNullOrEmpty(text))
                    {
                        JObject jo      = JObject.Parse(text);
                        JObject message = JObject.Parse(jo["Message"].ToString());

                        string RunId = message["RunId"].ToString();
                        string State = message["State"].ToString();
                        if (State.ToUpper() == "SUCCESS")
                        {
                            JObject MediaWorkflowExecution = JObject.Parse(message["MediaWorkflowExecution"].ToString());
                            string  InputFileobject        = MediaWorkflowExecution["Input"]["InputFile"]["Object"].ToString();

                            if (MediaWorkflowExecution["State"].ToString().ToUpper() == "COMPLETED")
                            {
                                JArray ActivityList = JArray.Parse(MediaWorkflowExecution["ActivityList"].ToString());
                                foreach (var al in ActivityList)
                                {
                                    string alType = al["Type"].ToString();
                                    CommonHelp.WriteLOG("alType:" + alType);

                                    if (alType.ToUpper() == "TRANSCODE")
                                    {
                                        string alname = al["Name"].ToString();
                                        string md5    = InputFileobject.Substring(0, InputFileobject.LastIndexOf("."));

                                        var files = new FT_FileB().GetEntities(p => p.FileMD5 == md5);
                                        foreach (var v in files)
                                        {
                                            v.YLUrl = string.Format("http://chengyanout.oss-cn-beijing.aliyuncs.com/{0}/{1}/{2}", alname, RunId, InputFileobject);
                                            new FT_FileB().Update(v);
                                        }
                                    }
                                }
                            }
                        }

                        //转码成功则删除原始文件
                        //OssClient client = new OssClient("",);

                        context.Response.Write("HTTP/1.1 204 No Content");
                        //}
                    }
                    context.Response.Write("HTTP/1.1 500 No Content");

                    #endregion
                }
                if (strAction.ToUpper() == "WXAPPSIGNATURE")//上传签名
                {
                    var sign = QJY.API.BusinessCode.Signature.GetUploadSignature();
                    Model.Result = sign;
                }
                if (strAction.ToUpper() == "CHECKBINDYH")//判断是否绑定账号
                {
                    //string code = context.Request["code"] ?? "";
                    //if (string.IsNullOrEmpty(code))
                    //{
                    //    Model.ErrorMsg = "请先获取微信code";
                    //}
                    //else
                    //{
                    //    string openid = WXApp.OnLogin(code);
                    //    if (openid == "")
                    //    {
                    //        Model.ErrorMsg = "获取openid失败,请重试";
                    //    }
                    //    else
                    //    {
                    //        Model.Result = openid;
                    //        //判断是否绑定
                    //        var user = new JH_Auth_UserB().GetEntity(p => p.weixinCard == openid);
                    //        if (user != null)
                    //        {
                    //            Model.Result1 = "Y";
                    //            Model.Result2 = user;
                    //        }
                    //    }

                    //}
                }
                if (strAction.ToUpper() == "BINDYH")//绑定用户
                {
                    string password = context.Request["password"] ?? "";
                    string username = context.Request["UserName"] ?? "";
                    string wxopenid = context.Request["wxopenid"] ?? "";
                    string nickname = context.Request["nickname"] ?? "";
                    string txurl    = context.Request["txurl"] ?? "";


                    JH_Auth_QY qyModel = new JH_Auth_QYB().GetALLEntities().First();
                    password = CommonHelp.GetMD5(password);
                    JH_Auth_User userInfo = new JH_Auth_User();

                    List <JH_Auth_User> userList = new JH_Auth_UserB().GetEntities(d => (d.UserName == username || d.mobphone == username) && d.UserPass == password).ToList();
                    if (userList.Count() == 0)
                    {
                        Model.ErrorMsg = "用户名或密码不正确";
                    }
                    else
                    {
                        userInfo = userList[0];
                        if (userInfo.IsUse != "Y")
                        {
                            Model.ErrorMsg = "用户被禁用,请联系管理员";
                        }
                        if (Model.ErrorMsg == "")
                        {
                            userInfo.weixinCard = wxopenid;
                            userInfo.NickName   = nickname;
                            userInfo.txurl      = txurl;
                            new JH_Auth_UserB().Update(userInfo);
                            Model.Result  = userInfo.pccode;
                            Model.Result1 = userInfo.UserName;
                            Model.Result2 = qyModel.FileServerUrl;
                            Model.Result4 = userInfo;
                        }
                    }
                }

                if (strAction.ToUpper() == "LOGIN")
                {
                    string password = context.Request["password"] ?? "";
                    string username = context.Request["UserName"] ?? "";
                    string chkcode  = context.Request["chkcode"] ?? "";
                    Model.ErrorMsg = "";

                    if (chkcode.ToUpper() != "APP")
                    {
                        if (context.Session["chkcode"] != null)
                        {
                            if (!chkcode.ToUpper().Equals(context.Session["chkcode"].ToString()))
                            {
                                Model.ErrorMsg = "验证码不正确";
                            }
                        }
                        else
                        {
                            Model.ErrorMsg = "验证码已过期";
                        }
                    }



                    JH_Auth_QY qyModel = new JH_Auth_QYB().GetALLEntities().First();
                    password = CommonHelp.GetMD5(password);
                    JH_Auth_User userInfo = new JH_Auth_User();

                    List <JH_Auth_User> userList = new JH_Auth_UserB().GetEntities(d => (d.UserName == username || d.mobphone == username) && d.UserPass == password).ToList();
                    if (userList.Count() == 0)
                    {
                        Model.ErrorMsg = "用户名或密码不正确";
                    }
                    else
                    {
                        userInfo = userList[0];
                        if (userInfo.IsUse != "Y")
                        {
                            Model.ErrorMsg = "用户被禁用,请联系管理员";
                        }
                        if (Model.ErrorMsg == "")
                        {
                            if (string.IsNullOrEmpty(userInfo.pccode))
                            {
                                userInfo.pccode = CommonHelp.CreatePCCode(userInfo);
                            }
                            userInfo.logindate = DateTime.Now;
                            new JH_Auth_UserB().Update(userInfo);
                            CacheHelp.Remove(userInfo.pccode);//登陆时清理缓存

                            Model.Result  = userInfo.pccode;
                            Model.Result1 = userInfo.UserName;
                            Model.Result2 = qyModel.FileServerUrl;
                            Model.Result4 = userInfo;
                        }
                    }
                }

                #endregion
            }
            else
            {
                #region 获取SuiteTicket
                if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
                {
                    string signature = HttpContext.Current.Request.QueryString["msg_signature"];//企业号的 msg_signature
                    string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
                    string nonce     = HttpContext.Current.Request.QueryString["nonce"];

                    // 获得客户端RAW HttpRequest
                    StreamReader srResult = new StreamReader(context.Request.InputStream);
                    string       str      = srResult.ReadToEnd();

                    XmlDocument XmlDocument = new XmlDocument();
                    XmlDocument.LoadXml(HttpContext.Current.Server.UrlDecode(str));

                    string ToUserName = string.Empty;
                    string Encrypt    = string.Empty;

                    string strde       = string.Empty;
                    string strinfotype = string.Empty;


                    foreach (XmlNode xn in XmlDocument.ChildNodes[0].ChildNodes)
                    {
                        if (xn.Name == "ToUserName")
                        {
                            ToUserName = xn.InnerText;
                        }
                        if (xn.Name == "Encrypt")
                        {
                            Encrypt = xn.InnerText;
                        }
                    }

                    var pj = new JH_Auth_WXPJB().GetEntity(p => p.TJID == ToUserName);


                    int    n              = new WXHelp().DecryptMsg(pj.Token, pj.EncodingAESKey, ToUserName, signature, timestamp, nonce, str, ref strde);
                    string strtct         = string.Empty;
                    string strSuiteId     = string.Empty;
                    string strtAuthCorpId = string.Empty;

                    XmlDocument XmlDocument1 = new XmlDocument();
                    XmlDocument1.LoadXml(HttpContext.Current.Server.UrlDecode(strde));

                    foreach (XmlNode xn1 in XmlDocument1.ChildNodes[0].ChildNodes)
                    {
                        if (xn1.Name == "SuiteId")
                        {
                            strSuiteId = xn1.InnerText;
                        }
                        if (xn1.Name == "SuiteTicket")
                        {
                            strtct = xn1.InnerText;
                        }
                        if (xn1.Name == "InfoType")
                        {
                            strinfotype = xn1.InnerText;
                        }
                        if (xn1.Name == "AuthCorpId")
                        {
                            strtAuthCorpId = xn1.InnerText;
                        }
                    }
                    if (strinfotype == "suite_ticket")
                    {
                        pj.Ticket = strtct;

                        new JH_Auth_WXPJB().Update(pj);
                    }


                    HttpContext.Current.Response.Write("success");
                    HttpContext.Current.Response.End();
                }

                #endregion
            }

            IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
            timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
            string Result = JsonConvert.SerializeObject(Model, Newtonsoft.Json.Formatting.Indented, timeConverter).Replace("null", "\"\"");
            context.Response.Write(Result);
        }
Beispiel #14
0
 /// <summary>
 /// 生成PCCode
 /// </summary>
 /// <param name="UserName"></param>
 /// <returns></returns>
 public static string CreatePCCode(JH_Auth_User user)
 {
     string strPCCode = EncrpytHelper.Encrypt(user.UserName + "@" + user.UserPass + "@" + DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
     return strPCCode;
 }
Beispiel #15
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.AddHeader("Access-Control-Allow-Origin", "*");
            context.Response.AddHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE"); //支持的http 动作
            context.Response.AddHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type,authorization");
            context.Response.AddHeader("Access-Control-Allow-Credentials", "true");
            context.Response.AddHeader("pragma", "no-cache");
            context.Response.AddHeader("cache-control", "");
            context.Response.CacheControl = "no-cache";
            string strAction = context.Request["Action"] ?? "";
            string P1        = context.Request["P1"] ?? "";
            string P2        = context.Request["P2"] ?? "";
            string P3        = context.Request["P3"] ?? "";
            string UserName  = context.Request["UserName"] ?? "";
            string szhlcode  = context.Request["szhlcode"] ?? "";
            //string cook = context.Request.Cookies["szhlcode"].Value;

            string authcode = context.Request.Headers["Authorization"] ?? "";

            string     strIP      = CommonHelp.getIP(context); //用户IP
            int        intTimeOut = 60;                        //用户超时间隔时间即szhlcode失效时间
            Msg_Result Model      = new Msg_Result()
            {
                Action = strAction.ToUpper(), ErrorMsg = ""
            };

            if (!string.IsNullOrEmpty(strAction))
            {
                try
                {
                    string strCheckString = new CommonHelp().checkconetst(context);
                    if (strCheckString != "")
                    {
                        Model.ErrorMsg = strAction + "有敏感字符串";
                        new JH_Auth_LogB().InsertLog(strAction, Model.ErrorMsg, strCheckString, UserName, "", 0, strIP);
                    }
                    else
                    {
                        #region 必须登录执行接口
                        Model.ErrorMsg = "";

                        var bl  = true;
                        var acs = Model.Action.Split('_');
                        if (Model.Action.IndexOf("_") > 0)
                        {
                            if (acs[0].ToUpper() == "Commanage".ToUpper())
                            {
                                bl = false;
                                var container = ServiceContainerV.Current().Resolve <IWsService>(acs[0].ToUpper());//
                                Model.Action = acs[1];
                                container.ProcessRequest(context, ref Model, P1.TrimEnd(), P2.TrimEnd(), new JH_Auth_UserB.UserInfo());
                                int    cid = 0;
                                string un  = string.Empty;
                                if (Model.Result4 != null)
                                {
                                    JH_Auth_User UserInfo = Model.Result4;
                                    cid = UserInfo.ComId.Value;
                                    un  = UserInfo.UserRealName;
                                }
                            }
                        }
                        if (bl)
                        {
                            if (szhlcode != "")//如果存在TOKEN,根据TOKEN找到用户信息,并根据权限执行具体ACTION
                            {
                                //通过Code获取用户名,然后执行接口方法
                                var container = ServiceContainerV.Current().Resolve <IWsService>(acs[0].ToUpper());
                                JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB().GetUserInfo(szhlcode);
                                if (UserInfo.User != null)
                                {
                                    if (UserInfo.User.logindate == null)
                                    {
                                        UserInfo.User.logindate = DateTime.Now;
                                    }
                                    TimeSpan ts = new TimeSpan(UserInfo.User.logindate.Value.Ticks).Subtract(new TimeSpan(DateTime.Now.Ticks)).Duration();
                                    if (ts.TotalMinutes > intTimeOut)  // 超过五分钟了,超时了哦;
                                    {
                                        UserInfo.User.pccode = "";
                                        new JH_Auth_UserB().Update(UserInfo.User);//清除PCCode
                                        Model.ErrorMsg = "WXTIMEOUT";
                                    }
                                    else
                                    {
                                        Model.Action = Model.Action.Substring(acs[0].Length + 1);
                                        container.ProcessRequest(context, ref Model, P1.TrimEnd(), P2.TrimEnd(), UserInfo);
                                        new JH_Auth_LogB().InsertLog(Model.Action, "调用接口", context.Request.Url.AbsoluteUri, UserInfo.User.UserName, UserInfo.User.UserRealName, UserInfo.QYinfo.ComId, strIP);
                                        new JH_Auth_UserB().UpdateloginDate(UserInfo.User.ComId.Value, UserInfo.User.UserName);//更新用户最近的操作时间
                                    }
                                }
                                else
                                {
                                    Model.ErrorMsg = "NOSESSIONCODE";
                                }
                            }
                            else
                            {
                                Model.ErrorMsg = "NOSESSIONCODE";
                            }
                        }
                        #endregion
                    }
                }
                catch (Exception ex)
                {
                    Model.ErrorMsg = strAction + "接口调用失败,请检查日志";
                    Model.Result   = ex.ToString();
                    new JH_Auth_LogB().InsertLog(strAction, Model.ErrorMsg + ex.StackTrace.ToString(), ex.ToString(), UserName, "", 0, strIP);
                }
            }
            string jsonpcallback = context.Request["jsonpcallback"] ?? "";
            IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
            timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
            string Result = JsonConvert.SerializeObject(Model, Formatting.Indented, timeConverter).Replace("null", "\"\"");
            if (jsonpcallback != "")
            {
                Result = jsonpcallback + "(" + Result + ")";//支持跨域
            }
            context.Response.Write(Result);
        }
Beispiel #16
0
        public void SAVEIMPORTUSER(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            string    branchMsg = "", branchErrorMsg = "", userMsg = "";
            int       i = 0, j = 0;
            DataTable dt = new DataTable();

            dt = JsonConvert.DeserializeObject <DataTable>(P1);
            dt.Columns.Add("BranchCode");
            JH_Auth_Branch branchroot = new JH_Auth_BranchB().GetEntity(d => d.ComId == UserInfo.User.ComId && d.DeptRoot == -1);


            foreach (DataRow row in dt.Rows)
            {
                int    bRootid    = branchroot.DeptCode;
                string branchName = row[4].ToString();
                if (branchName != "")
                {
                    string[]       branchNames = branchName.Split('/');
                    string         strBranch   = branchNames[0];
                    JH_Auth_Branch branchModel = new JH_Auth_BranchB().GetEntity(d => d.DeptName == strBranch && d.ComId == UserInfo.User.ComId);
                    if (branchModel == null)
                    {
                        branchModel          = new JH_Auth_Branch();
                        branchModel.DeptName = branchNames[0];
                        branchModel.DeptDesc = branchNames[0];
                        branchModel.ComId    = UserInfo.User.ComId;
                        branchModel.DeptRoot = bRootid;
                        branchModel.CRDate   = DateTime.Now;
                        branchModel.CRUser   = UserInfo.User.UserName;
                        new JH_Auth_BranchB().Insert(branchModel);
                        branchModel.Remark1 = new JH_Auth_BranchB().GetBranchNo(UserInfo.User.ComId.Value, branchModel.DeptRoot) + branchModel.DeptCode;
                        new JH_Auth_BranchB().Update(branchModel);
                    }
                }
            }


            int rowIndex = 0;

            foreach (DataRow row in dt.Rows)
            {
                rowIndex++;
                string branchName = row[4].ToString();
                if (branchName != "")
                {
                    string[] branchNames = branchName.Split('/');
                    string   strPBranch  = branchNames[0];

                    JH_Auth_Branch PbranchModel = new JH_Auth_BranchB().GetEntity(d => d.DeptName == strPBranch && d.ComId == UserInfo.User.ComId);
                    int            bRootid      = PbranchModel.DeptCode;
                    for (int l = 1; l < branchNames.Length; l++)
                    {
                        string         strBranch   = branchNames[1];
                        JH_Auth_Branch branchModel = new JH_Auth_BranchB().GetEntity(d => d.DeptName == strBranch && d.DeptRoot == PbranchModel.DeptCode && d.ComId == UserInfo.User.ComId);
                        if (branchModel != null)
                        {
                            bRootid = branchModel.DeptCode;
                            if (l == branchNames.Length - 1)
                            {
                                row["BranchCode"] = branchModel.DeptCode;
                            }
                        }
                        else
                        {
                            branchModel          = new JH_Auth_Branch();
                            branchModel.DeptName = strBranch;
                            branchModel.DeptDesc = strBranch;
                            branchModel.ComId    = UserInfo.User.ComId;
                            branchModel.DeptRoot = bRootid;
                            branchModel.CRDate   = DateTime.Now;
                            branchModel.CRUser   = UserInfo.User.UserName;
                            new JH_Auth_BranchB().Insert(branchModel);
                            branchModel.Remark1 = new JH_Auth_BranchB().GetBranchNo(UserInfo.User.ComId.Value, branchModel.DeptRoot) + branchModel.DeptCode;
                            new JH_Auth_BranchB().Update(branchModel);
                            try
                            {
                                bRootid = branchModel.DeptCode;
                                if (l == branchNames.Length - 1)
                                {
                                    row["BranchCode"] = branchModel.DeptCode;
                                }
                                i++;
                                branchMsg += "新增部门“" + strBranch + "”成功<br/>";
                            }
                            catch (Exception ex)
                            {
                                branchErrorMsg += "部门:" + strBranch + "失败 " + msg.ErrorMsg + "<br/>";
                            }
                        }
                    }
                    string       userName  = row[2].ToString();
                    JH_Auth_User userModel = new JH_Auth_UserB().GetEntity(d => d.UserName == userName && d.ComId == UserInfo.User.ComId);
                    if (userModel == null)
                    {
                        JH_Auth_User userNew = new JH_Auth_User();
                        if (row["BranchCode"].ToString() != "")
                        {
                            int            tempcode   = int.Parse(row["BranchCode"].ToString());
                            JH_Auth_Branch branchTemp = new JH_Auth_BranchB().GetEntity(d => d.DeptCode == tempcode && d.ComId == UserInfo.User.ComId);

                            userNew.BranchCode = branchTemp.DeptCode;
                            userNew.remark     = branchTemp.Remark1.Split('-')[0];
                        }
                        else
                        {
                            userNew.BranchCode = bRootid;
                        }
                        userNew.ComId    = UserInfo.User.ComId;
                        userNew.IsUse    = "Y";
                        userNew.mailbox  = row[3].ToString();
                        userNew.mobphone = row[2].ToString();
                        userNew.RoomCode = row[7].ToString();
                        userNew.Sex      = row[1].ToString();
                        userNew.telphone = row[9].ToString();
                        DateTime result;
                        if (DateTime.TryParse(row[10].ToString(), out result))
                        {
                            userNew.Birthday = result;
                        }

                        userNew.UserGW       = row[6].ToString();
                        userNew.UserName     = row[2].ToString();
                        userNew.UserRealName = row[0].ToString();
                        userNew.zhiwu        = row[5].ToString() == "" ? "员工" : row[5].ToString();
                        userNew.UserPass     = CommonHelp.GetMD5(P2);
                        userNew.CRDate       = DateTime.Now;
                        userNew.CRUser       = UserInfo.User.UserName;

                        if (!string.IsNullOrEmpty(row[8].ToString()))
                        {
                            int orderNum = 0;
                            int.TryParse(row[8].ToString(), out orderNum);
                            userNew.UserOrder = orderNum;
                        }
                        try
                        {
                            msg.ErrorMsg = "";
                            if (string.IsNullOrEmpty(userNew.UserName))
                            {
                                msg.ErrorMsg = "用户名必填";
                            }
                            //Regex regexPhone = new Regex("^0?1[3|4|5|8|7][0-9]\\d{8}$");
                            //if (!regexPhone.IsMatch(userNew.UserName))
                            //{
                            //    msg.ErrorMsg = "用户名必须为手机号";
                            //}
                            if (string.IsNullOrEmpty(userNew.mobphone))
                            {
                                msg.ErrorMsg = "手机号必填";
                            }
                            //if (!regexPhone.IsMatch(userNew.mobphone))
                            //{
                            //    msg.ErrorMsg = "手机号填写不正确";
                            //}
                            Regex regexOrder = new Regex("^[0-9]*$");
                            if (userNew.UserOrder != null && !regexOrder.IsMatch(userNew.UserOrder.ToString()))
                            {
                                msg.ErrorMsg = "序号必须是数字";
                            }
                            if (msg.ErrorMsg != "")
                            {
                                userMsg += "第" + rowIndex + "行" + msg.ErrorMsg + "<br/>";
                            }
                            if (msg.ErrorMsg == "")
                            {
                                new JH_Auth_UserB().Insert(userNew);
                                JH_Auth_Role role = new JH_Auth_RoleB().GetEntity(d => d.RoleName == userNew.zhiwu && d.ComId == UserInfo.User.ComId);
                                if (role == null)
                                {
                                    role              = new JH_Auth_Role();
                                    role.PRoleCode    = 0;
                                    role.RoleName     = userNew.zhiwu;
                                    role.RoleDec      = userNew.zhiwu;
                                    role.IsUse        = "Y";
                                    role.isSysRole    = "N";
                                    role.leve         = 0;
                                    role.ComId        = UserInfo.User.ComId;
                                    role.DisplayOrder = 0;
                                    new JH_Auth_RoleB().Insert(role);
                                }
                                string strSql = string.Format("INSERT into JH_Auth_UserRole (UserName,RoleCode,ComId) Values('{0}',{1},{2})", userNew.UserName, role.RoleCode, UserInfo.User.ComId);
                                new JH_Auth_RoleB().ExsSql(strSql);
                                string isFS = context.Request["issend"] ?? "";
                                if (isFS.ToLower() == "true")
                                {
                                    string content = string.Format("尊敬的" + userNew.UserName + "用户您好:你已被添加到" + UserInfo.QYinfo.QYName + ",账号:" + userNew.mobphone + ",密码" + P2 + ",登录请访问" + UserInfo.QYinfo.WXUrl);
                                    new SZHL_DXGLB().SendSMS(userNew.mobphone, content, userNew.ComId.Value);
                                }
                                j++;
                            }
                        }
                        catch (Exception ex)
                        {
                            userMsg += "第" + rowIndex + "行" + msg.ErrorMsg + "<br/>";
                        }
                    }
                    else
                    {
                        userMsg += "第" + rowIndex + "行" + "用户“" + row[2].ToString() + "”已存在<br/>";
                    }
                }
                else
                {
                    branchErrorMsg += "第" + rowIndex + "行所在部门必填<br/>";
                }
            }
            msg.Result  = branchErrorMsg + "<br/>" + userMsg;
            msg.Result1 = "新增部门" + i + "个,新增用户" + j + "个<br/>" + branchMsg + (branchMsg == "" ? "" : "<br/>");
        }
Beispiel #17
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.AddHeader("pragma", "no-cache");
            context.Response.AddHeader("cache-control", "");
            context.Response.CacheControl = "no-cache";
            string strAction = context.Request["Action"] ?? "";
            string UserName  = context.Request["UserName"] ?? "";
            string strIP     = CommonHelp.getIP(context);

            Msg_Result Model = new Msg_Result()
            {
                Action = strAction.ToUpper(), ErrorMsg = ""
            };

            if (!string.IsNullOrEmpty(strAction))
            {
                #region 企业号应用callback
                if (strAction == "XXJS")
                {
                    String strCorpID = context.Request["corpid"] ?? "";
                    string strCode   = context.Request["Code"] ?? "";
                    try
                    {
                        JH_Auth_QY    jaq = new JH_Auth_QYB().GetALLEntities().FirstOrDefault();
                        JH_Auth_Model jam = new JH_Auth_ModelB().GetEntity(p => p.ModelCode == strCode);
                        //if (jaq != null && jam != null && !string.IsNullOrEmpty(jam.TJId))
                        if (jaq != null && jam != null)
                        {
                            #region POST
                            if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
                            {
                                string signature = HttpContext.Current.Request.QueryString["msg_signature"];//企业号的 msg_signature
                                string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
                                string nonce     = HttpContext.Current.Request.QueryString["nonce"];

                                // 获得客户端RAW HttpRequest
                                StreamReader srResult    = new StreamReader(context.Request.InputStream);
                                string       str         = srResult.ReadToEnd();
                                XmlDocument  XmlDocument = new XmlDocument();
                                XmlDocument.LoadXml(HttpContext.Current.Server.UrlDecode(str));
                                string ToUserName = string.Empty;
                                string strde      = string.Empty;
                                string msgtype    = string.Empty;//微信响应类型
                                foreach (XmlNode xn in XmlDocument.ChildNodes[0].ChildNodes)
                                {
                                    if (xn.Name == "ToUserName")
                                    {
                                        ToUserName = xn.InnerText;
                                    }
                                }
                                var pj = new JH_Auth_WXPJB().GetEntity(p => p.TJID == jam.TJId);
                                Tencent.WXBizMsgCrypt wxcpt = new Tencent.WXBizMsgCrypt(pj.Token, pj.EncodingAESKey, ToUserName);
                                int         n            = wxcpt.DecryptMsg(signature, timestamp, nonce, str, ref strde);
                                XmlDocument XmlDocument1 = new XmlDocument();
                                XmlDocument1.LoadXml(HttpContext.Current.Server.UrlDecode(strde));
                                foreach (XmlNode xn1 in XmlDocument1.ChildNodes[0].ChildNodes)
                                {
                                    if (xn1.Name == "MsgType")
                                    {
                                        msgtype = xn1.InnerText;
                                    }
                                    //CommonHelp.WriteLOG(XmlDocument1.OuterXml);
                                }
                                if (msgtype == "event")//处理事件
                                {
                                    //需要处理进入应用的菜单更改事件
                                    string strEvent    = XmlDocument1.ChildNodes[0]["Event"].InnerText;
                                    string strUserName = XmlDocument1.ChildNodes[0]["FromUserName"].InnerText;
                                    string strAgentID  = XmlDocument1.ChildNodes[0]["AgentID"].InnerText;
                                    string strEventKey = XmlDocument1.ChildNodes[0]["EventKey"].InnerText;

                                    if (strEvent.ToLower() == "enter_agent" || strEvent.ToLower() == "view")
                                    {
                                        //进入应用和点击菜单
                                        //JH_Auth_User jau = new JH_Auth_UserB().GetEntity(p => p.ComId == jaq.ComId && p.UserName == strUserName);
                                        //JH_Auth_QY_Model jhqm = new JH_Auth_QY_ModelB().GetEntity(p => p.ComId == jaq.ComId && p.AgentId == strAgentID);
                                        //if (jau != null && jhqm != null)
                                        //{
                                        //    JH_Auth_YYLog jay = new JH_Auth_YYLog();
                                        //    jay.ComId = jaq.ComId;
                                        //    jay.AgentID = strAgentID;
                                        //    jay.CorpID = strCorpID;
                                        //    jay.CRDate = DateTime.Now;
                                        //    jay.CRUser = strUserName;
                                        //    jay.Event = strEvent;
                                        //    jay.EventKey = strEventKey;
                                        //    jay.ModelCode = strCode;
                                        //    jay.ModelID = jhqm.ModelID;
                                        //    jay.QYName = jaq.QYName;
                                        //    jay.TJID = jam.TJId;
                                        //    jay.Type = msgtype;
                                        //    jay.UserName = strUserName;
                                        //    jay.UserRealName = jau.UserRealName;

                                        //    new JH_Auth_YYLogB().Insert(jay);

                                        //    if (strEvent.ToLower() == "enter_agent")
                                        //    {
                                        //        var jays = new JH_Auth_YYLogB().GetEntities(p => p.ComId == jaq.ComId && p.Event == "enter_agent" && p.AgentID == strAgentID && p.CRUser == strUserName);
                                        //        if (jays.Count() <= 1)
                                        //        {
                                        //        }
                                        //    }
                                        //}
                                    }
                                }
                                if (new List <string> {
                                    "text", "image", "voice", "video", "shortvideo", "link"
                                }.Contains(msgtype))                                                                               //处理消息事件
                                {
                                    if (XmlDocument1.ChildNodes.Count > 0)
                                    {
                                        JH_Auth_WXMSG wxmsgModel = new JH_Auth_WXMSG();
                                        wxmsgModel.AgentID      = int.Parse(XmlDocument1.ChildNodes[0]["AgentID"].InnerText);
                                        wxmsgModel.ComId        = jaq.ComId;
                                        wxmsgModel.ToUserName   = XmlDocument1.ChildNodes[0]["ToUserName"].InnerText;
                                        wxmsgModel.FromUserName = XmlDocument1.ChildNodes[0]["FromUserName"].InnerText;
                                        wxmsgModel.CRDate       = DateTime.Now;
                                        wxmsgModel.CRUser       = XmlDocument1.ChildNodes[0]["FromUserName"].InnerText;
                                        wxmsgModel.MsgId        = XmlDocument1.ChildNodes[0]["MsgId"].InnerText;
                                        wxmsgModel.MsgType      = msgtype;
                                        wxmsgModel.ModeCode     = strCode;
                                        wxmsgModel.Tags         = "微信收藏";

                                        switch (msgtype)
                                        {
                                        case "text":
                                            wxmsgModel.MsgContent = XmlDocument1.ChildNodes[0]["Content"].InnerText;
                                            break;

                                        case "image":
                                            wxmsgModel.PicUrl  = XmlDocument1.ChildNodes[0]["PicUrl"].InnerText;
                                            wxmsgModel.MediaId = XmlDocument1.ChildNodes[0]["MediaId"].InnerText;
                                            break;

                                        case "voice":
                                            wxmsgModel.MediaId = XmlDocument1.ChildNodes[0]["MediaId"].InnerText;
                                            wxmsgModel.Format  = XmlDocument1.ChildNodes[0]["Format"].InnerText;
                                            break;

                                        case "video":
                                            wxmsgModel.MediaId      = XmlDocument1.ChildNodes[0]["MediaId"].InnerText;
                                            wxmsgModel.ThumbMediaId = XmlDocument1.ChildNodes[0]["ThumbMediaId"].InnerText;
                                            break;

                                        case "shortvideo":
                                            wxmsgModel.MediaId      = XmlDocument1.ChildNodes[0]["MediaId"].InnerText;
                                            wxmsgModel.ThumbMediaId = XmlDocument1.ChildNodes[0]["ThumbMediaId"].InnerText;
                                            break;

                                        case "link":
                                            wxmsgModel.Description = XmlDocument1.ChildNodes[0]["Description"].InnerText;
                                            wxmsgModel.Title       = XmlDocument1.ChildNodes[0]["Title"].InnerText;
                                            wxmsgModel.URL         = XmlDocument1.ChildNodes[0]["Url"].InnerText;
                                            wxmsgModel.PicUrl      = XmlDocument1.ChildNodes[0]["PicUrl"].InnerText;
                                            break;
                                        }
                                        if (new List <string>()
                                        {
                                            "link", "text"
                                        }.Contains(msgtype))
                                        {
                                            if (msgtype == "link")
                                            {
                                                var jaw = new JH_Auth_WXMSGB().GetEntity(p => p.ComId == jaq.ComId && p.MsgId == wxmsgModel.MsgId);
                                                if (jaw == null)
                                                {
                                                    string strMedType = ".jpg";
                                                    JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB.UserInfo();
                                                    UserInfo = new JH_Auth_UserB().GetUserInfo(jaq.ComId, wxmsgModel.FromUserName);
                                                    //  string fileID = CommonHelp.ProcessWxIMGUrl(wxmsgModel.PicUrl, UserInfo, strMedType);

                                                    //wxmsgModel.FileId = fileID;
                                                    //new JH_Auth_WXMSGB().Insert(wxmsgModel);

                                                    //if (strCode == "TSSQ")
                                                    //{
                                                    //    SZHL_TXSX tx1 = new SZHL_TXSX();
                                                    //    tx1.ComId = jaq.ComId;
                                                    //    tx1.APIName = "TSSQ";
                                                    //    tx1.MsgID = wxmsgModel.ID.ToString();
                                                    //    tx1.FunName = "SENDWXMSG";
                                                    //    tx1.Date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                                    //    tx1.CRUser = wxmsgModel.CRUser;
                                                    //    tx1.CRDate = DateTime.Now;
                                                    //    TXSX.TXSXAPI.AddALERT(tx1); //时间为发送时间
                                                    //}
                                                }
                                            }
                                            else
                                            {
                                                new JH_Auth_WXMSGB().Insert(wxmsgModel);
                                            }
                                        }
                                        if (!string.IsNullOrEmpty(wxmsgModel.MediaId))
                                        {
                                            var jaw = new JH_Auth_WXMSGB().GetEntity(p => p.ComId == jaq.ComId && p.MediaId == wxmsgModel.MediaId);
                                            if (jaw == null)
                                            {
                                                string strMedType = ".jpg";
                                                if (strCode == "QYWD" || strCode == "CRM")             //判断模块
                                                {
                                                    if (msgtype == "shortvideo" || msgtype == "video") //视频,小视频
                                                    {
                                                        strMedType = ".mp4";
                                                    }
                                                    if (new List <string>()
                                                    {
                                                        "image", "shortvideo", "video", "voice"
                                                    }.Contains(msgtype))                                                                 //下载到本地服务器
                                                    {
                                                        JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB.UserInfo();
                                                        UserInfo = new JH_Auth_UserB().GetUserInfo(jaq.ComId, wxmsgModel.FromUserName);
                                                        //  string fileID = CommonHelp.ProcessWxIMG(wxmsgModel.MediaId, strCode, UserInfo, strMedType);
                                                        //  wxmsgModel.FileId = fileID;
                                                        // new JH_Auth_WXMSGB().Insert(wxmsgModel);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            #endregion

                            #region GET
                            if (HttpContext.Current.Request.HttpMethod.ToUpper() == "GET")
                            {
                                Auth(jam.Token, jam.EncodingAESKey, jaq.corpId);
                            }
                            #endregion
                        }
                    }
                    catch (Exception ex)
                    {
                        Model.ErrorMsg = ex.ToString();
                        CommonHelp.WriteLOG(ex.ToString());
                    }
                }
                #endregion

                #region 企业会话
                if (strAction == "QYIM")
                {
                    if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
                    {
                        string corpId = context.Request["corpid"] ?? "";

                        try
                        {
                            JH_Auth_QY jaq = new JH_Auth_QYB().GetEntity(p => p.corpId == corpId);
                            if (jaq != null)
                            {
                                string signature = HttpContext.Current.Request.QueryString["msg_signature"];//企业号的 msg_signature
                                string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
                                string nonce     = HttpContext.Current.Request.QueryString["nonce"];

                                // 获得客户端RAW HttpRequest
                                StreamReader srResult = new StreamReader(context.Request.InputStream);
                                string       str      = srResult.ReadToEnd();

                                string strde = string.Empty;

                                var pj = new JH_Auth_WXPJB().GetEntity(p => p.TJID == "tj7882b1f8bc56f05f");

                                Tencent.WXBizMsgCrypt wxcpt = new Tencent.WXBizMsgCrypt(pj.Token, pj.EncodingAESKey, corpId);

                                wxcpt.DecryptMsg(signature, timestamp, nonce, str, ref strde);

                                //string strde = HttpContext.Current.Request.QueryString[0];

                                XmlDocument XmlDocument = new XmlDocument();
                                XmlDocument.LoadXml(HttpContext.Current.Server.UrlDecode(strde));

                                string AgentType  = string.Empty;
                                string ToUserName = string.Empty;
                                string ItemCount  = string.Empty;
                                string PackageId  = string.Empty;
                                string Item       = string.Empty;

                                #region XML文档处理
                                foreach (XmlNode xn in XmlDocument.ChildNodes[0].ChildNodes)
                                {
                                    if (xn.Name == "AgentType")
                                    {
                                        AgentType = xn.InnerText;
                                    }
                                    if (xn.Name == "ToUserName")
                                    {
                                        ToUserName = xn.InnerText;
                                    }
                                    if (xn.Name == "ItemCount")
                                    {
                                        ItemCount = xn.InnerText;
                                    }
                                    if (xn.Name == "PackageId")
                                    {
                                        PackageId = xn.InnerText;
                                    }
                                    if (xn.Name == "Item")
                                    {
                                        Item += xn.InnerXml;

                                        string MsgType = xn.ChildNodes[2].InnerText;

                                        if (MsgType == "event")
                                        {
                                        }
                                        else if (new List <string> {
                                            "text", "image", "voice", "file", "link"
                                        }.Contains(MsgType))
                                        {
                                            #region 内容处理


                                            #endregion
                                        }
                                    }
                                }
                                #endregion

                                HttpContext.Current.Response.Write(PackageId);
                                HttpContext.Current.Response.End();
                            }
                        }
                        catch (Exception ex)
                        {
                            CommonHelp.WriteLOG("QYIM:" + ex.ToString() + "\r\n" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        }
                    }
                }
                #endregion

                #region 获取唯一code
                if (strAction.ToUpper() == "GetUserCodeByCode".ToUpper())
                {
                    #region 获取Code
                    Model.ErrorMsg = "获取Code错误,请重试";

                    string strCode      = context.Request["code"] ?? "";
                    string strCorpID    = context.Request["corpid"] ?? "";
                    string strModelCode = context.Request["funcode"] ?? "";

                    if (!string.IsNullOrEmpty(strCode))
                    {
                        var qy = new JH_Auth_QYB().GetEntity(p => p.corpId == strCorpID);
                        if (qy != null)
                        {
                            try
                            {
                                //通过微信接口获取用户名
                                WXHelp wx       = new WXHelp(qy);
                                string username = wx.GetUserDataByCode(strCode, strModelCode);
                                if (!string.IsNullOrEmpty(username))
                                {
                                    var jau = new JH_Auth_UserB().GetUserByUserName(qy.ComId, username);
                                    if (jau != null)
                                    {
                                        //如果PCCode为空或者超过60分钟没操作,统统重新生成PCCode,并更新最新操作时间
                                        if (jau.logindate == null)
                                        {
                                            jau.logindate = DateTime.Now;
                                        }
                                        TimeSpan ts = new TimeSpan(jau.logindate.Value.Ticks).Subtract(new TimeSpan(DateTime.Now.Ticks)).Duration();
                                        if (string.IsNullOrEmpty(jau.pccode) || ts.TotalMinutes > 60)
                                        {
                                            string strGuid = CommonHelp.CreatePCCode(jau);
                                            jau.pccode    = strGuid;
                                            jau.logindate = DateTime.Now;
                                            new JH_Auth_UserB().Update(jau);
                                        }
                                        Model.ErrorMsg = "";
                                        Model.Result   = jau.pccode;
                                        Model.Result1  = jau.UserName;
                                        Model.Result2  = ts.TotalMinutes;
                                        Model.Result3  = qy.FileServerUrl;
                                    }
                                }
                                else
                                {
                                    Model.ErrorMsg = "当前用户不存在";
                                }
                            }
                            catch (Exception ex)
                            {
                                Model.ErrorMsg = ex.ToString();
                            }
                        }
                        else
                        {
                            Model.ErrorMsg = "当前企业号未在电脑端注册";
                        }
                    }
                    else
                    {
                        Model.ErrorMsg = "Code为空";
                    }
                    #endregion
                }
                #endregion
                #region 是否存在
                if (strAction.ToUpper() == "isexist".ToUpper())
                {
                    if (context.Request["szhlcode"] != null)
                    {
                        //通过Cookies获取Code
                        //string szhlcode = "5ab470be-4988-4bb3-9658-050481b98fca";
                        string szhlcode = context.Request["szhlcode"].ToString();
                        //通过Code获取用户名,然后执行接口方法
                        var jau = new JH_Auth_UserB().GetUserByPCCode(szhlcode);
                        if (jau == null)
                        {
                            Model.Result = "NOCODE";
                        }
                    }
                }
                #endregion
                #region 发送提醒
                if (strAction.ToUpper() == "AUTOALERT")
                {
                    TXSX.TXSXAPI.AUTOALERT();
                }
                if (strAction.ToUpper() == "LOGIN")
                {
                    string password = context.Request["password"] ?? "";
                    string username = context.Request["UserName"] ?? "";
                    string chkcode  = context.Request["chkcode"] ?? "";
                    Model.ErrorMsg = "";

                    if (chkcode.ToUpper() != "APP")
                    {
                        if (context.Session["chkcode"] != null)
                        {
                            if (!chkcode.ToUpper().Equals(context.Session["chkcode"].ToString()))
                            {
                                Model.ErrorMsg = "验证码不正确";
                            }
                        }
                        else
                        {
                            Model.ErrorMsg = "验证码已过期";
                        }
                    }



                    JH_Auth_QY qyModel = new JH_Auth_QYB().GetALLEntities().First();
                    password = CommonHelp.GetMD5(password);
                    JH_Auth_User userInfo = new JH_Auth_User();

                    List <JH_Auth_User> userList = new JH_Auth_UserB().GetEntities(d => (d.UserName == username || d.mobphone == username) && d.UserPass == password).ToList();
                    if (userList.Count() == 0)
                    {
                        Model.ErrorMsg = "用户名或密码不正确";
                    }
                    else
                    {
                        userInfo = userList[0];
                        if (userInfo.IsUse != "Y")
                        {
                            Model.ErrorMsg = "用户被禁用,请联系管理员";
                        }
                        if (Model.ErrorMsg == "")
                        {
                            if (string.IsNullOrEmpty(userInfo.pccode))
                            {
                                userInfo.pccode = CommonHelp.CreatePCCode(userInfo);
                            }
                            userInfo.logindate = DateTime.Now;
                            new JH_Auth_UserB().Update(userInfo);
                            Model.Result  = userInfo.pccode;
                            Model.Result1 = userInfo.UserName;
                            Model.Result2 = qyModel.FileServerUrl;
                            Model.Result4 = userInfo;
                        }
                    }
                }

                #endregion
            }
            else
            {
                #region 获取SuiteTicket
                if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
                {
                    string signature = HttpContext.Current.Request.QueryString["msg_signature"];//企业号的 msg_signature
                    string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
                    string nonce     = HttpContext.Current.Request.QueryString["nonce"];

                    // 获得客户端RAW HttpRequest
                    StreamReader srResult = new StreamReader(context.Request.InputStream);
                    string       str      = srResult.ReadToEnd();

                    XmlDocument XmlDocument = new XmlDocument();
                    XmlDocument.LoadXml(HttpContext.Current.Server.UrlDecode(str));

                    string ToUserName = string.Empty;
                    string Encrypt    = string.Empty;

                    string strde       = string.Empty;
                    string strinfotype = string.Empty;


                    foreach (XmlNode xn in XmlDocument.ChildNodes[0].ChildNodes)
                    {
                        if (xn.Name == "ToUserName")
                        {
                            ToUserName = xn.InnerText;
                        }
                        if (xn.Name == "Encrypt")
                        {
                            Encrypt = xn.InnerText;
                        }
                    }

                    var pj = new JH_Auth_WXPJB().GetEntity(p => p.TJID == ToUserName);

                    Tencent.WXBizMsgCrypt wxcpt = new Tencent.WXBizMsgCrypt(pj.Token, pj.EncodingAESKey, ToUserName);
                    int n = wxcpt.DecryptMsg(signature, timestamp, nonce, str, ref strde);

                    string strtct         = string.Empty;
                    string strSuiteId     = string.Empty;
                    string strtAuthCorpId = string.Empty;

                    XmlDocument XmlDocument1 = new XmlDocument();
                    XmlDocument1.LoadXml(HttpContext.Current.Server.UrlDecode(strde));

                    foreach (XmlNode xn1 in XmlDocument1.ChildNodes[0].ChildNodes)
                    {
                        if (xn1.Name == "SuiteId")
                        {
                            strSuiteId = xn1.InnerText;
                        }
                        if (xn1.Name == "SuiteTicket")
                        {
                            strtct = xn1.InnerText;
                        }
                        if (xn1.Name == "InfoType")
                        {
                            strinfotype = xn1.InnerText;
                        }
                        if (xn1.Name == "AuthCorpId")
                        {
                            strtAuthCorpId = xn1.InnerText;
                        }
                    }
                    if (strinfotype == "suite_ticket")
                    {
                        pj.Ticket = strtct;

                        new JH_Auth_WXPJB().Update(pj);
                    }


                    HttpContext.Current.Response.Write("success");
                    HttpContext.Current.Response.End();
                }

                #endregion
            }

            IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
            timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
            string Result = JsonConvert.SerializeObject(Model, Newtonsoft.Json.Formatting.Indented, timeConverter).Replace("null", "\"\"");
            context.Response.Write(Result);
        }
Beispiel #18
0
        /// <summary>
        /// 生成PCCode
        /// </summary>
        /// <param name="UserName"></param>
        /// <returns></returns>
        public static string CreatePCCode(JH_Auth_User user)
        {
            string strPCCode = EncrpytHelper.Encrypt(user.UserName + user.UserPass + DateTime.Now.ToString("yyyy-MM-dd HH:mm")).Replace("+", "").Replace("=", "");

            return(strPCCode);
        }
Beispiel #19
0
        /// <summary>
        /// 绑定手机、姓名、身份证、专卖许可证
        /// </summary>
        public void BINDTOMONOLICENSE(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
        {
            JH_Auth_User j = JsonConvert.DeserializeObject <JH_Auth_User>(P1);

            if (j == null)
            {
                msg.ErrorMsg = "绑定失败";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.UserRealName.Trim()))
            {
                msg.ErrorMsg = "姓名不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.mobphone.Trim()))
            {
                msg.ErrorMsg = "手机号不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.IDCard.Trim()))
            {
                msg.ErrorMsg = "身份证号不能为空";
                return;
            }
            if (string.IsNullOrWhiteSpace(j.ToMonoLicense.Trim()))
            {
                msg.ErrorMsg = "专卖许可证号不能为空";
                return;
            }
            string  _openid = CommonHelp.GetCookieString("openid");
            WX_User u       = new WX_UserB().GetEntity(d => d.Openid == _openid);

            msg.Result = u;
            if (u != null)
            {
                JH_Auth_User localuser = new JH_Auth_UserB().GetEntity(d => d.mobphone == j.mobphone.Trim());
                if (localuser == null)
                {
                    new JH_Auth_UserB().ExsSql("update JH_Auth_User set WXopenid='', IsWX=0, IDCard='',ToMonoLicense='' where WXopenid='" + _openid + "'");//清除以前绑定的用户
                    //新用户,随机生成
                    localuser               = new JH_Auth_User();
                    localuser.UserName      = "******" + Guid.NewGuid().ToString().Replace("-", "").Substring(0, 16);
                    localuser.UserRealName  = j.UserRealName.Trim();
                    localuser.UserPass      = CommonHelp.GetMD5("a123456");
                    localuser.pccode        = EncrpytHelper.Encrypt(localuser.UserName + "@" + localuser.UserPass + "@" + DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
                    localuser.ComId         = 10334;
                    localuser.Sex           = u.Sex;
                    localuser.mobphone      = j.mobphone.Trim();
                    localuser.BranchCode    = 0;
                    localuser.CRDate        = localuser.logindate = DateTime.Now;
                    localuser.CRUser        = "******";
                    localuser.IsUse         = "Y";
                    localuser.IsWX          = 1;
                    localuser.WXopenid      = _openid;
                    localuser.weixinCard    = j.weixinCard.Trim();
                    localuser.IDCard        = j.IDCard.Trim();
                    localuser.ToMonoLicense = j.ToMonoLicense.Trim();

                    new JH_Auth_UserB().Insert(localuser);
                    WXFWHelp.UpdateCookieAfterSignIn(localuser);
                    msg.Result = localuser;
                    //msg.ErrorMsg = "手机号不存在,请联系管理员";
                    return;
                }
                else
                {
                    //老用户
                    if (localuser.UserRealName == j.UserRealName.Trim())
                    {
                        new JH_Auth_UserB().ExsSql("update JH_Auth_User set WXopenid='', IsWX=0, IDCard='',ToMonoLicense='' where WXopenid='" + _openid + "'");//清除以前绑定的用户

                        localuser.WXopenid   = _openid;
                        localuser.IsWX       = 1;
                        localuser.weixinCard = j.weixinCard.Trim();
                        //localuser.pccode = EncrpytHelper.Encrypt(localuser.UserName + "@" + localuser.UserPass + "@" + DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
                        localuser.logindate     = DateTime.Now;
                        localuser.IDCard        = j.IDCard.Trim();
                        localuser.ToMonoLicense = j.ToMonoLicense.Trim();

                        new JH_Auth_UserB().Update(localuser);//更新logindate,pccode不能更新
                        WXFWHelp.UpdateCookieAfterSignIn(localuser);
                        msg.Result = localuser;
                    }
                    else
                    {
                        msg.ErrorMsg = "姓名与手机号不匹配";
                        return;
                    }
                }
            }
            else
            {
                msg.ErrorMsg = "微信登录异常";
                return;
            }
        }