/// <summary> /// 获取门店配置信息 /// </summary> /// <param name="shopId"></param> /// <param name="businessType"></param> /// <param name="isContainCancel"></param> /// <returns></returns> public DataTable GetShopPrintConfigList(long shopId, BusinessType businessType, bool isContainCancel = true) { var sql = string.Format(@"SELECT DISTINCT bt.BillId, bt.BillName FROM base_billtemplate AS bt INNER JOIN bll_printer_config AS pc ON pc.BillId = bt.BillId AND pc.ShopId = @shopId AND pc.EnabledFlag = 1 AND pc.DeleteFlag = 0 WHERE bt.IsDisplay = 1 AND bt.BusinessType = @businessType {0}", !isContainCancel ? " AND bt.BillId != " + SmallBillType.Cancel.GetHashCode() : string.Empty); var parms = new List <DbParameter>(); parms.Add(DbParameters.CreateDbParameter("shopId", shopId)); parms.Add(DbParameters.CreateDbParameter("businessType", businessType.GetHashCode())); return(this.BaseRepository().FindTable(sql, parms.ToArray())); }
/// <summary> /// 获取门店已授权平台列表 /// </summary> /// <param name="shopId">门店Id</param> /// <param name="businessType">业务类型</param> /// <returns></returns> public List <ShopPlatformEntity> FindShopAuthPlatformList(long shopId, BusinessType businessType, int platformId = 0) { var fliter = string.Empty; var parms = new List <DbParameter>(); parms.Add(DbParameters.CreateDbParameter("shopId", shopId)); parms.Add(DbParameters.CreateDbParameter("businessType", businessType.GetHashCode())); if (platformId > 0) { parms.Add(DbParameters.CreateDbParameter("platformId", platformId)); fliter = "AND PlatformId = @platformId"; } var sql = string.Format(@"SELECT * FROM bll_shop_platform WHERE shopid = @shopId AND BusinessType = @businessType AND platformshopname != '' AND platformshopname IS NOT NULL AND EnabledFlag = 1 AND DeleteFlag = 0 {0} ORDER BY PlatformId", fliter); return(this.BaseRepository().FindList(sql, parms.ToArray()).ToList <ShopPlatformEntity>()); }
/// <summary> /// 查询门店配置信息 /// </summary> /// <param name="shopId"></param> /// <param name="printerCode"></param> /// <param name="businessType"></param> /// <returns></returns> public string GetShopPrinterConfigStr(long shopId, string printerCode, BusinessType businessType) { var sql = @"SELECT GROUP_CONCAT(bt.BillShortName) AS Configs FROM bll_printer_config AS pc INNER JOIN base_billtemplate AS bt ON pc.BillId = bt.BillId WHERE pc.ShopId = @shopId AND pc.PrinterCode = @printerCode AND pc.EnabledFlag = 1 AND pc.DeleteFlag = 0 GROUP BY pc.PrinterCode"; var parms = new List <DbParameter>(); parms.Add(DbParameters.CreateDbParameter("shopId", shopId)); parms.Add(DbParameters.CreateDbParameter("printerCode", printerCode)); parms.Add(DbParameters.CreateDbParameter("businessType", businessType.GetHashCode())); return(Extensions.ToString(this.BaseRepository().FindObject(sql, parms.ToArray())).Replace(",", "、")); }
/// <summary> /// 查询门店配置信息 /// </summary> /// <param name="shopId"></param> /// <param name="printerCode"></param> /// <param name="businessType"></param> /// <returns></returns> public DataTable GetShopPrinterConfigList(long shopId, string printerCode, BusinessType businessType) { var sql = @"SELECT bt.BillId, bt.BillName, CASE WHEN pc.BillId IS NULL THEN 0 ELSE 1 END AS IsConfig, IFNULL(pc.Copies, 1) AS Copies, bt.BillTemplateUrl FROM base_billtemplate AS bt LEFT JOIN (SELECT * FROM bll_printer_config WHERE ShopId = @shopId AND PrinterCode = @printerCode AND EnabledFlag = 1 AND DeleteFlag = 0) AS pc ON pc.BillId = bt.BillId WHERE bt.IsDisplay = 1 AND bt.BusinessType = @businessType"; var parms = new List <DbParameter>(); parms.Add(DbParameters.CreateDbParameter("shopId", shopId)); parms.Add(DbParameters.CreateDbParameter("printerCode", printerCode)); parms.Add(DbParameters.CreateDbParameter("businessType", businessType.GetHashCode())); return(this.BaseRepository().FindTable(sql, parms.ToArray())); }
/// <summary> /// /// </summary> /// <param name="shopId"></param> /// <param name="businessType"></param> /// <param name="sortBy"></param> /// <param name="isContainCancel"></param> /// <returns></returns> public List <BillPrintQueryModel> GetPriterConfigList(long shopId, BusinessType businessType, bool isContainCancel = true, int sortBy = 0) { var orderBy = (sortBy == 0 ? "bt.PrintSort" : "bt.DisplaySort"); var sql = string.Format(@"SELECT pc.BillId,pc.Copies,GROUP_CONCAT(pc.PrinterCode) AS PrinterCodes FROM bll_printer_config AS pc INNER JOIN base_billtemplate AS bt ON pc.BillId = bt.BillId INNER JOIN bll_shop_printer AS sp ON pc.PrinterCode = sp.PrinterCode WHERE pc.BusinessType = @businessType AND pc.ShopId = @shopId AND sp.EnabledFlag = 1 AND sp.DeleteFlag = 0 AND pc.EnabledFlag = 1 AND pc.DeleteFlag = 0 {0} GROUP BY pc.BillId,pc.Copies ORDER BY {1}, pc.PrinterCode", (!isContainCancel ? " AND bt.BillId != " + SmallBillType.Cancel.GetHashCode() : string.Empty), orderBy); var parms = new List <DbParameter>(); parms.Add(DbParameters.CreateDbParameter("shopId", shopId)); parms.Add(DbParameters.CreateDbParameter("businessType", businessType.GetHashCode())); return(this.BaseRepository().FindTable(sql, parms.ToArray()).ToList <BillPrintQueryModel>()); }
/// <summary> /// 获取门店平台授权 /// </summary> /// <param name="shopId">门店Id</param> /// <param name="businessType">业务类型</param> /// <returns></returns> public List <ShopPlatformQueryModel> FindShopPlatformList(long shopId, BusinessType businessType) { var sql = @"SELECT p.PlatformId, p.PlatformName, IFNULL(sp.IsKaMerchant,0) AS IsKaMerchant, IFNULL(sp.KaMerchantAuthUrl,'') AS KaMerchantAuthUrl, IFNULL(sp.AuthId,0) AS AuthId, CASE WHEN sp.AuthId IS NOT NULL AND PlatformShopName!='' THEN 1 ELSE 0 END AS AuthStasus FROM base_platform AS p LEFT JOIN (SELECT * FROM bll_shop_platform WHERE ShopId = @shopId AND BusinessType = @businessType AND EnabledFlag = 1 AND DeleteFlag = 0) AS sp ON p.PlatformId = sp.PlatformId WHERE p.EnabledFlag = 1 AND p.DeleteFlag = 0 "; var parms = new List <DbParameter>(); parms.Add(DbParameters.CreateDbParameter("shopId", shopId)); parms.Add(DbParameters.CreateDbParameter("businessType", businessType.GetHashCode())); return(this.BaseRepository().FindTable(sql, parms.ToArray()).ToList <ShopPlatformQueryModel>()); }
/// <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); }