Пример #1
0
        public ActionResult Refresh(Guid id)
        {
            var dto = _service.Get(id);

            EleUserApiService service = new EleUserApiService();

            var res = service.RefreshToken(dto.RefreshToken);

            if (res == "")
            {
                return(Json(Tools.ResultErr()));
            }

            JObject jo = JObject.Parse(res);

            if (jo["error"] != null)
            {
                return(Json(Tools.ResultErr(jo["error_description"].ToString())));
            }

            dto.AccessToken  = jo["access_token"].ToString();
            dto.RefreshToken = jo["refresh_token"].ToString();
            dto.ExpiresDate  = DateTime.Now.AddSeconds(double.Parse(jo["expires_in"].ToString()));

            _service.Update(dto);

            return(Json(new AjaxResult()
            {
                state = "ok"
            }));
        }
Пример #2
0
        private async Task Auth(Ele_AccountDTO dto)
        {
            var service = new EleUserApiService();

            var res = service.RefreshToken(dto.RefreshToken);

            if (res == "")
            {
                _log.DebugFormat("【更新授权异常】:返回结果空");
                return;
            }

            var jo = JObject.Parse(res);

            if (jo["error"] != null)
            {
                _log.DebugFormat($"【更新授权异常】:{jo["error_description"]}");
                return;
            }

            dto.AccessToken  = jo["access_token"]?.ToString();
            dto.RefreshToken = jo["refresh_token"]?.ToString();
            dto.ExpiresDate  = DateTime.Now.AddSeconds(double.Parse(jo["expires_in"]?.ToString() ?? string.Empty));

            _eleAccountService.Update(dto);
        }
Пример #3
0
        public IHttpActionResult Authorize(string code = "", string state = "")
        {
            try
            {
                var userId      = state.Split('@')[0];
                var accountNo   = state.Split('@')[1];
                var accountName = state.Split('@')[2];

                var service = new EleUserApiService();

                var res = service.GetToken(code);

                if (res == "")
                {
                    return(Json(Tools.ResultErr()));
                }

                var jo = JObject.Parse(res);

                if (jo["error"] != null)
                {
                    return(Json(Tools.ResultErr(jo["error_description"].ToString())));
                }

                var dto = new Ele_AccountDTO();

                dto.AccountNo    = accountNo;
                dto.AccountName  = accountName;
                dto.UserId       = userId;
                dto.AccessToken  = jo["access_token"].ToString();
                dto.TokenType    = jo["token_type"].ToString();
                dto.RefreshToken = jo["refresh_token"].ToString();
                dto.Scope        = jo["scope"]?.ToString();
                dto.ExpiresDate  = DateTime.Now.AddSeconds(double.Parse(jo["expires_in"].ToString()));

                _serviceAccount.Add(dto);

                return(Json(new { message = "ok" }));
            }
            catch (Exception e)
            {
                _log.DebugFormat("【信息记录】用户:{0}  类型:Authorize  信息{1}", state, e.Message);
                _log.DebugFormat("【信息记录】用户:{0}  类型:Authorize  信息{1}", state, e.GetOriginalException().Message);
                return(Json(new { message = "ok" }));
            }
        }
Пример #4
0
        public string Tree()
        {
            //获取账户
            var accounts = _serviceAccount.GetAccounts(Global.USER_ID);

            var nodes = new List <ZTreeNode>();

            foreach (var account in accounts)
            {
                nodes.Add(new ZTreeNode
                {
                    id       = account.Id.ToString(),
                    name     = account.AccountName,
                    pId      = "",
                    isParent = true
                });

                var serviceUser = new EleUserApiService();
                var res         = serviceUser.GetUser(account.AccessToken);
                if (res.error != null)
                {
                    continue;
                }

                var jObject = JObject.Parse(res.result.ToString());
                var shops   = JArray.Parse(jObject["authorizedShops"].ToString());

                foreach (var shop in shops)
                {
                    nodes.Add(new ZTreeNode
                    {
                        id    = shop["id"].ToString(),
                        name  = shop["name"].ToString(),
                        pId   = account.Id.ToString(),
                        token = account.AccessToken
                    });
                }
            }

            //将获取的节点集合转换为json格式字符串,并返回
            var json = JsonConvert.SerializeObject(nodes);

            return(json);
        }
Пример #5
0
        public List <ShopMap> GetList(string type = "")
        {
            var list = new List <ShopMap>();

            //获取账户
            var accounts = _serviceAccount.GetAccounts(Global.USER_ID);

            //已经映射过的门店
            var listMapped = _serviceShop.GetByUserId(Global.USER_ID);

            //获取365门店
            var listShop365 = Bak365Service.GetShopList();

            //根据账户获取门店
            foreach (var account in accounts)
            {
                EleUserApiService serviceUser = new EleUserApiService();
                var res = serviceUser.GetUser(account.AccessToken);
                if (res.error != null)
                {
                    continue;
                }

                JObject jObject = JObject.Parse(res.result.ToString());
                JArray  shops   = JArray.Parse(jObject["authorizedShops"].ToString());

                foreach (var shop in shops)
                {
                    ShopMap shopMap = new ShopMap();
                    shopMap.AccountId   = account.Id;
                    shopMap.AccountNo   = account.AccountNo;
                    shopMap.AccountName = account.AccountName;
                    shopMap.AccessToken = account.AccessToken;
                    shopMap.ShopId      = (long)shop["id"];
                    shopMap.ShopNameEle = shop["name"].ToString();

                    if (type.ToUpper() == "MATCH")
                    {
                        foreach (var shop365 in listShop365)
                        {
                            if (shop["name"].ToString().Contains(shop365.Value))
                            {
                                shopMap.ShopNo   = shop365.Key;
                                shopMap.ShopName = shop365.Value;
                                break;
                            }
                        }
                    }
                    else
                    {
                        var dd = listMapped.Find(a => a.ShopId.ToString() == shop["id"].ToString());
                        if (dd != null)
                        {
                            shopMap.ShopNo   = dd.ShopNo;
                            shopMap.ShopName = listShop365[dd.ShopNo];
                        }
                    }

                    list.Add(shopMap);
                }
            }

            return(list);
        }