/// <summary> /// 同步门店平台数据 /// </summary> /// <param name="shopId"></param> /// <param name="appAuthToken"></param> /// <param name="expiresIn"></param> /// <param name="refreshToken"></param> /// <param name="paltformType"></param> /// <param name="authType"></param> /// <param name="businessType"></param> /// <returns></returns> public int SyncShopPlatformData(string shopId, string appAuthToken, long expiresIn, string refreshToken, PlatformType paltformType, AuthBussinessType authType, BusinessType businessType, string pShopId = "", string source = "", string secret = "", string remark = "") { //同步平台数据 LogUtil.Info(string.Format("开始同步门店授权【{0}】平台数据", paltformType.GetRemark())); var cnt = 0; var platformId = paltformType.GetHashCode(); var shop = GetPlatformShopModel(platformId, appAuthToken, shopId, pShopId, source, secret); var db = new RepositoryFactory().BaseRepository().BeginTrans(); try { var dbNow = TimeUtil.Now; var authPlatform = GetShopPlatformInfo(shopId.ToInt(), platformId, businessType.GetHashCode(), authType); if (authPlatform != null) { authPlatform.AuthToken = appAuthToken; authPlatform.ExpiresIn = expiresIn; authPlatform.IsAutoConfirm = 1; if (paltformType == PlatformType.Meituan) { //美团外卖 authPlatform.PlatformShopName = shop != null ? shop.name : string.Empty; authPlatform.Mobile = shop != null ? shop.phone : string.Empty; authPlatform.ShopAddress = shop != null ? shop.address : string.Empty; authPlatform.BusinessScope = shop != null ? shop.tagName : string.Empty; authPlatform.Latitude = shop != null ? shop.latitude : string.Empty; authPlatform.Longitude = shop != null ? shop.longitude : string.Empty; authPlatform.PictureUrl = shop != null ? shop.pictureUrl : string.Empty; authPlatform.OpenTime = shop != null ? shop.openTime : string.Empty; authPlatform.ShippingFee = shop != null ? shop.shippingFee : 0.00f; authPlatform.PreBook = shop != null ? shop.preBook : 0; authPlatform.TimeSelect = shop != null ? shop.timeSelect : 0; } else if (paltformType == PlatformType.Eleme) { //饿了么 if (shop != null && shop.error != null) { LogUtil.Error(shop.error.ToString()); } var eShop = Yme.Util.JsonUtil.ToObject <Dictionary <string, object> >((shop != null && shop.result != null) ? shop.result.ToString() : string.Empty); authPlatform.PlatformShopName = (eShop != null && eShop["name"] != null) ? eShop["name"].ToString() : string.Empty; authPlatform.PlatformShopId = (eShop != null && eShop["id"] != null) ? eShop["id"].ToString() : string.Empty; authPlatform.Mobile = (eShop != null && eShop["mobile"] != null) ? eShop["mobile"].ToString() : string.Empty; authPlatform.ShopAddress = (eShop != null && eShop["addressText"] != null) ? eShop["addressText"].ToString() : string.Empty; authPlatform.Latitude = (eShop != null && eShop["latitude"] != null) ? eShop["latitude"].ToString() : string.Empty; authPlatform.Longitude = (eShop != null && eShop["longitude"] != null) ? eShop["longitude"].ToString() : string.Empty; authPlatform.PictureUrl = (eShop != null && eShop["imageUrl"] != null) ? eShop["imageUrl"].ToString() : string.Empty; authPlatform.OpenTime = (eShop != null && eShop["servingTime"] != null) ? eShop["servingTime"].ToString() : string.Empty; authPlatform.RefreshToken = refreshToken; authPlatform.RefreshExpireTime = TimeUtil.Now.AddDays(ConfigUtil.EleReTokenExpiresDays); } else if (paltformType == PlatformType.Baidu) { //百度外卖 if (shop != null && shop.error != null) { LogUtil.Error(shop.error.ToString()); } var category = string.Empty; var bShop = Yme.Util.JsonUtil.ToObject <Dictionary <string, object> >((shop != null && shop.data != null) ? shop.data.ToString() : string.Empty); if (bShop != null) { if (!string.IsNullOrWhiteSpace(bShop["category1"])) { category = bShop["category1"].ToString(); } if (!string.IsNullOrWhiteSpace(bShop["category2"])) { category += string.Format("-{0}", bShop["category2"].ToString()); } if (!string.IsNullOrWhiteSpace(bShop["category3"])) { category += string.Format("-{0}", bShop["category3"].ToString()); } } authPlatform.PlatformShopName = (bShop != null && bShop["name"] != null) ? bShop["name"].ToString() : string.Empty; authPlatform.PlatformShopId = (bShop != null && bShop["baidu_shop_id"] != null) ? bShop["baidu_shop_id"].ToString() : string.Empty; authPlatform.Mobile = (bShop != null && bShop["service_phone"] != null) ? bShop["service_phone"].ToString() : string.Empty; authPlatform.ShopAddress = (bShop != null && bShop["address"] != null) ? bShop["address"].ToString() : string.Empty; authPlatform.BusinessScope = category; authPlatform.Latitude = (bShop != null && bShop["latitude"] != null) ? bShop["latitude"].ToString() : string.Empty; authPlatform.Longitude = (bShop != null && bShop["longitude"] != null) ? bShop["longitude"].ToString() : string.Empty; authPlatform.PictureUrl = (bShop != null && bShop["shop_logo"] != null) ? bShop["shop_logo"].ToString() : string.Empty; authPlatform.OpenTime = (bShop != null && bShop["business_time"] != null) ? bShop["business_time"].ToString() : string.Empty; authPlatform.RefreshToken = refreshToken; authPlatform.Description = remark; } authPlatform.ModifyUserId = paltformType.GetRemark(); authPlatform.ModifyDate = dbNow; db.Update(authPlatform); } else { authPlatform = new ShopPlatformEntity(); authPlatform.ShopId = shopId.ToInt(); authPlatform.PlatformId = platformId; authPlatform.PlatformName = paltformType.GetRemark(); authPlatform.BusinessType = businessType.GetHashCode(); authPlatform.AuthBussiness = authType.GetHashCode(); authPlatform.AuthToken = appAuthToken; authPlatform.ExpiresIn = expiresIn; authPlatform.IsAutoConfirm = 1; if (paltformType == PlatformType.Meituan) { //美团外卖 authPlatform.PlatformShopName = shop != null ? shop.name : string.Empty; authPlatform.Mobile = shop != null ? shop.phone : string.Empty; authPlatform.ShopAddress = shop != null ? shop.address : string.Empty; authPlatform.BusinessScope = shop != null ? shop.tagName : string.Empty; authPlatform.Latitude = shop != null ? shop.latitude : string.Empty; authPlatform.Longitude = shop != null ? shop.longitude : string.Empty; authPlatform.PictureUrl = shop != null ? shop.pictureUrl : string.Empty; authPlatform.OpenTime = shop != null ? shop.openTime : string.Empty; authPlatform.ShippingFee = shop != null ? shop.shippingFee : 0.00f; authPlatform.PreBook = shop != null ? shop.preBook : 0; authPlatform.TimeSelect = shop != null ? shop.timeSelect : 0; } else if (paltformType == PlatformType.Eleme) { //饿了么 if (shop != null && shop.error != null) { LogUtil.Error(shop.error.ToString()); } var eShop = Yme.Util.JsonUtil.ToObject <Dictionary <string, object> >((shop != null && shop.result != null) ? shop.result.ToString() : string.Empty); authPlatform.PlatformShopName = (eShop != null && eShop["name"] != null) ? eShop["name"].ToString() : string.Empty; authPlatform.PlatformShopId = (eShop != null && eShop["id"] != null) ? eShop["id"].ToString() : appAuthToken; authPlatform.Mobile = (eShop != null && eShop["mobile"] != null) ? eShop["mobile"].ToString() : string.Empty; authPlatform.ShopAddress = (eShop != null && eShop["addressText"] != null) ? eShop["addressText"].ToString() : string.Empty; authPlatform.Latitude = (eShop != null && eShop["latitude"] != null) ? eShop["latitude"].ToString() : string.Empty; authPlatform.Longitude = (eShop != null && eShop["longitude"] != null) ? eShop["longitude"].ToString() : string.Empty; authPlatform.PictureUrl = (eShop != null && eShop["imageUrl"] != null) ? eShop["imageUrl"].ToString() : string.Empty; authPlatform.OpenTime = (eShop != null && eShop["servingTime"] != null) ? eShop["servingTime"].ToString() : string.Empty; authPlatform.RefreshToken = refreshToken; authPlatform.RefreshExpireTime = TimeUtil.Now.AddDays(ConfigUtil.EleReTokenExpiresDays); authPlatform.ModifyDate = dbNow; } else if (paltformType == PlatformType.Baidu) { //百度外卖 if (shop != null && shop.errno != 0) { LogUtil.Error(shop.error.ToString()); } var category = string.Empty; var bShop = Yme.Util.JsonUtil.ToObject <Dictionary <string, object> >((shop != null && shop.data != null) ? shop.data.ToString() : string.Empty); if (bShop != null) { if (!string.IsNullOrWhiteSpace(bShop["category1"])) { category = bShop["category1"].ToString(); } if (!string.IsNullOrWhiteSpace(bShop["category2"])) { category += string.Format("-{0}", bShop["category2"].ToString()); } if (!string.IsNullOrWhiteSpace(bShop["category3"])) { category += string.Format("-{0}", bShop["category3"].ToString()); } } authPlatform.PlatformShopName = (bShop != null && bShop["name"] != null) ? bShop["name"].ToString() : string.Empty; authPlatform.PlatformShopId = (bShop != null && bShop["baidu_shop_id"] != null) ? bShop["baidu_shop_id"].ToString() : string.Empty; authPlatform.Mobile = (bShop != null && bShop["service_phone"] != null) ? bShop["service_phone"].ToString() : string.Empty; authPlatform.ShopAddress = (bShop != null && bShop["address"] != null) ? bShop["address"].ToString() : string.Empty; authPlatform.BusinessScope = category; authPlatform.Latitude = (bShop != null && bShop["latitude"] != null) ? bShop["latitude"].ToString() : string.Empty; authPlatform.Longitude = (bShop != null && bShop["longitude"] != null) ? bShop["longitude"].ToString() : string.Empty; authPlatform.PictureUrl = (bShop != null && bShop["shop_logo"] != null) ? bShop["shop_logo"].ToString() : string.Empty; authPlatform.OpenTime = (bShop != null && bShop["business_time"] != null) ? bShop["business_time"].ToString() : string.Empty; authPlatform.RefreshToken = refreshToken; authPlatform.Description = remark; } authPlatform.EnabledFlag = EnabledFlagType.Valid.GetHashCode(); authPlatform.DeleteFlag = DeleteFlagType.Valid.GetHashCode(); authPlatform.CreateUserId = paltformType.GetRemark(); authPlatform.CreateDate = dbNow; db.Insert(authPlatform); } //同步门店数据 var platformList = GetShopPlatformList(shopId.ToInt(), businessType); if (platformList != null && platformList.Count > 0) { var isFirstAuth = platformList.Count(d => d.AuthStasus == 1) == 0; if (isFirstAuth) { var shopEntity = SingleInstance <ShopBLL> .Instance.GetShopById(shopId.ToInt()); if (shopEntity != null) { shopEntity.ShopName = authPlatform.PlatformShopName; shopEntity.ShopAddress = authPlatform.ShopAddress; shopEntity.BusinessScope = authPlatform.BusinessScope; shopEntity.ModifyUserId = paltformType.GetRemark(); shopEntity.ModifyDate = dbNow; db.Update(shopEntity); } } } db.Commit(); cnt = 1; } catch (Exception ex) { db.Rollback(); var msg = string.Format("同步门店平台数据失败,参考消息:{0}", ex.Message); LogUtil.Error(msg); throw new BusinessException(msg); } return(cnt); }