public static bool DeleteBeautyServicePackageDetail(int pkid, BeautyServicePackageDetail oldValue, string operateUser) { bool result = false; try { result = BeautyServicePackageDal.DeleteBeautyServicePackageDetail(pkid); var log = new BeautyOprLog { LogType = "DeleteBeautyServicePackageDetail", IdentityID = $"{pkid}", OldValue = JsonConvert.SerializeObject(oldValue), NewValue = null, Remarks = $"删除集团客户礼包详情,详情ID:{pkid}", OperateUser = operateUser, }; LoggerManager.InsertLog("BeautyOprLog", log); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
public static bool InsertBeautyServicePackageDetail(BeautyServicePackageDetail packageDetail) { bool result = false; try { var insertResult = BeautyServicePackageDal.InsertBeautyServicePackageDetail(packageDetail); result = insertResult.Item1; var log = new BeautyOprLog { LogType = "InsertBeautyServicePackageDetail", IdentityID = $"{insertResult.Item2}", OldValue = null, NewValue = JsonConvert.SerializeObject(packageDetail), Remarks = $"插入礼包详情,礼包ID:{packageDetail.PackageId}", OperateUser = packageDetail.CreateUser, }; LoggerManager.InsertLog("BeautyOprLog", log); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
public static List <EnterpriseUserViewModel> GetEnterpriseUserConfig(int pageIndex, int pageSize, Guid userId, out int total) { List <EnterpriseUserViewModel> result = null; total = 0; try { var userIdList = BeautyServicePackageDal.GetEnterpriseUserUserId(pageIndex, pageSize, userId, out total); if (userIdList != null && userIdList != null && userIdList.Any()) { var userServiceDetails = BeautyServicePackageDal.GetEnterpriseUserServiceConfig(userIdList); var userModuleConfigs = BeautyServicePackageDal.GetEnterpriseUserModuleConfig(userIdList); if (userServiceDetails != null && userServiceDetails.Any()) { result = new List <EnterpriseUserViewModel>(); foreach (var userService in userServiceDetails) { if (result.Where(x => x.UserId == userService.UserId).Count() <= 0) { //List<CooperateUserConfig> cooperateUserConfig = new List<CooperateUserConfig>(); //var cooperateUserServices = BeautyServicePackageDal.GetCooperateUserServices(userServiceDetails.Where(z => z.UserId == userService.UserId).Select(x => x.PackageDetailsId).ToList()); //if (cooperateUserServices != null && cooperateUserServices.Any()) //{ // foreach (var cooperate in cooperateUserServices) // { // if (cooperateUserConfig.Where(x => x.CooperateId == cooperate.CooperateId).Count() <= 0) // { // CooperateUserConfig config = new CooperateUserConfig() // { // CooperateId = cooperate.CooperateId, // CooperateName = cooperate.CooperateName, // CooperateUserServiceDetails = cooperateUserServices?.Where(z => z.CooperateId == cooperate.CooperateId).ToList() // }; // cooperateUserConfig.Add(config); // } // } //} EnterpriseUserViewModel item = new EnterpriseUserViewModel() { UserId = userService.UserId, Remark = userService.Remark, CooperateUserServiceDeails = BeautyServicePackageDal.GetCooperateUserServices(userServiceDetails.Where(z => z.UserId == userService.UserId).Select(x => x.PackageDetailsId).ToList()), UserModuleDetails = userModuleConfigs?.Where(z => z.UserId == userService.UserId).ToList(), CreateDateTime = userService.CreateDateTime, UpdateDateTime = userService.UpdateDateTime }; result.Add(item); } } } } } catch (Exception ex) { Logger.Error(ex.Message, ex); } return(result); }
public static bool UsertEnterpriseUserConfig(EnterpriseUserViewModel data, string user) { var result = false; try { using (var dbhelper = new SqlDbHelper(BeautyServicePackageDal.GetTuhuGrouponWriteConnstr())) { dbhelper.BeginTransaction(); var userConfig = BeautyServicePackageDal.SelectEnterpriseUserConfigByUserId(dbhelper, data.UserId); var moduleConfig = BeautyServicePackageDal.SelectEnterpriseUserModuleConfigByUserId(dbhelper, data.UserId); if (userConfig != null && userConfig.Any()) { BeautyServicePackageDal.DeleteEnterpriseUserConfigByUserId(dbhelper, data.UserId); } if (moduleConfig != null && moduleConfig.Any()) { BeautyServicePackageDal.DeleteEnterpriseModuleConfigByUserId(dbhelper, data.UserId); } if (data.PackageDetailIds != null && data.PackageDetailIds.Any()) { foreach (var item in data.PackageDetailIds) { BeautyServicePackageDal.InsertEnterpriseUserConfig(dbhelper, data.UserId, item, data.Remark); } } else { BeautyServicePackageDal.InsertEnterpriseUserConfig(dbhelper, data.UserId, 0, data.Remark);//允许不配服务模板 } if (data.UserModuleDetails != null && data.UserModuleDetails.Any()) { foreach (var item in data.UserModuleDetails) { BeautyServicePackageDal.InsertEnterpriseUserModuleConfig(dbhelper, data.UserId, item.ModuleType); } } dbhelper.Commit(); result = true; var log = new BaoYangOprLog { LogType = "EnterpriseUserConfig", IdentityID = data.UserId.ToString(), OldValue = "[]", NewValue = JsonConvert.SerializeObject(data), Remarks = $"发码服务权限修改 {data.UserMobile}", OperateUser = user, }; LoggerManager.InsertLog("BeautyOprLog", log); } } catch (Exception ex) { Logger.Error(ex.Message, ex); } return(result); }
/// <summary> /// 根据兑换码,手机号查询美容兑换码信息 /// </summary> /// <param name="packageCode"></param> /// <param name="mobile"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public static Tuple <IEnumerable <UnivBeautyRedemptionCodeResult>, int> GetBeautyServicePackageCodes(string packageCode, string mobile, int pageIndex, int pageSize) { var result = new List <UnivBeautyRedemptionCodeResult>(); var total = 0; try { if (!string.IsNullOrWhiteSpace(packageCode)) { var beautyServicePackageCode = BeautyServicePackageDal.FetchBeautyServicePackageCodeByPackageCode(packageCode); if (beautyServicePackageCode != null) { if (beautyServicePackageCode.UserId != null) { var user = UserAccountService.GetUserById(beautyServicePackageCode.UserId.Value); beautyServicePackageCode.Mobile = user?.MobileNumber; } if (!string.IsNullOrWhiteSpace(mobile)) { if (beautyServicePackageCode.Mobile == mobile) { result.Add(beautyServicePackageCode); } } else { result.Add(beautyServicePackageCode); } total = result.Count; } } else if (!string.IsNullOrWhiteSpace(mobile)) { var user = UserAccountService.GetUserByMobile(mobile); if (user != null && user.UserId != Guid.Empty) { var beautyServicePackageCodes = BeautyServicePackageDal.SelectBeautyServicePackageCodesByUserId(user.UserId, pageIndex, pageSize); beautyServicePackageCodes.Item1.ForEach(i => { i.Mobile = user.MobileNumber; }); result.AddRange(beautyServicePackageCodes.Item1); total = beautyServicePackageCodes.Item2; } } } catch (Exception ex) { Logger.Error(ex.Message, ex); } return(new Tuple <IEnumerable <UnivBeautyRedemptionCodeResult>, int>(result, total)); }
/// <summary> /// 更新服务码配置 /// </summary> /// <param name="config"></param> /// <returns></returns> public static bool UpdateBeautyServiceCodeTypeConfig(BeautyServiceCodeTypeConfig config) { bool result = false; try { result = BeautyServicePackageDal.UpdateBeautyServiceCodeTypeConfig(config); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
public static IEnumerable <string> GetAllVipUserName() { IEnumerable <string> result = null; try { result = BeautyServicePackageDal.SelectAllVipUserName(); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
public static IEnumerable <BeautyServiceCodeTypeConfig> SelectAllBeautyServiceCodeTypeConfig() { IEnumerable <BeautyServiceCodeTypeConfig> result = null; try { result = BeautyServicePackageDal.SelectAllBeautyServiceCodeTypeConfig(); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
/// <summary> /// 根据美容礼包详情id获取礼包详情 /// </summary> /// <param name="packageDetailIds"></param> /// <returns></returns> public static IEnumerable <BeautyServicePackageDetail> GetBeautyServicePackageDetails(IEnumerable <int> packageDetailIds) { IEnumerable <BeautyServicePackageDetail> result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackageDetails(packageDetailIds); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
/// <summary> /// 获取限购配置 /// </summary> /// <param name="packageDetailId"></param> /// <returns></returns> public BeautyServicePackageLimitConfig GetBeautyServicePackageLimitConfig() { BeautyServicePackageLimitConfig result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackageLimitConfigByPackageDetailId(config.PackageDetailId); } catch (Exception ex) { Logger.Error(ex.Message, ex); } return(result); }
public static BeautyServicePackageDetail GetBeautyServicePackageDetail(int packageDetailId) { BeautyServicePackageDetail result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackageDetail(packageDetailId); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
/// <summary> /// 批量根据服务码获取服务码信息 /// </summary> /// <param name="codes"></param> /// <returns></returns> public static IEnumerable <BeautyServicePackageDetailCode> GetBeautyServicePackageDetailCodesByCodes(IEnumerable <string> codes) { IEnumerable <BeautyServicePackageDetailCode> result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackageDetailCodesByCodes(codes); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
/// <summary> /// 更新限购配置 /// </summary> /// <returns></returns> public bool UpdateBeautyServicePackageLimitConfig() { var result = false; try { result = BeautyServicePackageDal.UpdateBeautyServicePackageLimitConfig(config); } catch (Exception ex) { Logger.Error(ex.Message, ex); } return(result); }
/// <summary> /// 根据用户查询服务码信息 /// </summary> /// <param name="userId"></param> /// <returns></returns> public static Tuple <IEnumerable <BeautyServicePackageDetailCode>, int> GetBeautyServicePackageDetailCodesByUserId(Guid userId, int pageIndex, int pageSize) { Tuple <IEnumerable <BeautyServicePackageDetailCode>, int> result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackageDetailCodesByUserId(userId, pageIndex, pageSize); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
public static IEnumerable <BeautyServicePackageCode> GetBeautyServicePackageCodesByPackageId(int packageId) { IEnumerable <BeautyServicePackageCode> result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackageCodesByPackageId(packageId); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
/// <summary> /// 根据pid获取美容产品信息 /// </summary> /// <param name="pid"></param> /// <returns></returns> public static BeautyProductModel GetBeautyProductByPid(string pid) { using (var client = CacheHelper.CreateCacheClient(CacheClientName)) { string key = $"GetBeautyProductByPid/{pid}"; var result = client.GetOrSet(key, () => BeautyServicePackageDal.SelectBeautyProductByPid(pid), TimeSpan.FromMinutes(20)); if (!result.Success) { return(BeautyServicePackageDal.SelectBeautyProductByPid(pid)); } else { return(result.Value); } } }
/// <summary> /// 获取当前分类的子分类(包含自身) /// </summary> /// <param name="categoryId"></param> /// <returns></returns> public static IEnumerable <int> GetBeautyChildAndSelfCategoryIdsByCategoryId(int categoryId) { using (var client = CacheHelper.CreateCacheClient(CacheClientName)) { string key = $"GetBeautyChildCategoryIdsByCategoryId/{categoryId}"; var result = client.GetOrSet(key, () => BeautyServicePackageDal.SelectBeautyChildAndSelfCategoryIdsByCategoryId(categoryId), TimeSpan.FromMinutes(20)); if (!result.Success) { return(BeautyServicePackageDal.SelectBeautyChildAndSelfCategoryIdsByCategoryId(categoryId)); } else { return(result.Value); } } }
public static bool UpdateBeautyServicePackage(BeautyServicePackage package) { bool result = false; try { var oldValue = GetBeautyServicePackage(package.PKID); var writeStr = BeautyServicePackageDal.GetTuhuGrouponWriteConnstr(); using (var dbhelper = new SqlDbHelper(writeStr)) { dbhelper.BeginTransaction(); var updateBeautyServicePackageResult = BeautyServicePackageDal.UpdateBeautyServicePackage(dbhelper, package); BeautyServicePackageDal.UpdateBeautyServicePackageDetailCooperateIdByPackageId(dbhelper, package.PKID, package.CooperateId); if (!updateBeautyServicePackageResult) { throw new Exception("更新兑换码配置失败"); } if (package.IsPackageCodeGenerated && (package.PackageCodeStartTime != oldValue.PackageCodeStartTime || package.PackageCodeEndTime != oldValue.PackageCodeEndTime)) { var updateBeautyServicePackageCodeTimeResult = BeautyServicePackageDal.UpdateBeautyServicePackageCodeTime(dbhelper, package.PKID, package.PackageCodeStartTime, package.PackageCodeEndTime); if (!updateBeautyServicePackageCodeTimeResult) { throw new Exception("更新兑换码时间失败"); } } dbhelper.Commit(); result = true; var log = new BeautyOprLog { LogType = "UpdateBeautyServicePackage", IdentityID = $"{package.PKID}", OldValue = JsonConvert.SerializeObject(oldValue), NewValue = JsonConvert.SerializeObject(package), Remarks = $"修改集团客户礼包,礼包ID为:{package.PKID}", OperateUser = package.UpdateUser, }; LoggerManager.InsertLog("BeautyOprLog", log); } } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
public static Tuple <IEnumerable <BeautyServicePackage>, int> GetBeautyServicePackage(int pageIndex, int pageSize, string packageType, string packageName, string vipCompanyName, string settlementMethod, int cooperateId) { Tuple <IEnumerable <BeautyServicePackage>, int> result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackage(pageIndex, pageSize, packageType, packageName, vipCompanyName, settlementMethod, cooperateId); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
/// <summary> /// 分页查询服务码配置信息 /// </summary> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="isImportUser"></param> /// <param name="settlementMethod"></param> /// <param name="cooperateId"></param> /// <returns></returns> public static Tuple <IEnumerable <BeautyServicePackageDetail>, int> GetBeautyServicePackageDetails(int pageIndex, int pageSize, bool isImportUser, string settlementMethod, int cooperateId, string serviceId) { Tuple <IEnumerable <BeautyServicePackageDetail>, int> result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackageDetails(pageIndex, pageSize, isImportUser, settlementMethod, cooperateId, serviceId); } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
public static IEnumerable <CooperateUserService> SelectCooperateUserByCompanyId(int companyId) { IEnumerable <CooperateUserService> result = null; try { var userDetails = UserAccountService.GetCompanyUsersByCompanyId(companyId); if (userDetails != null && userDetails.Any()) { result = BeautyServicePackageDal.SelectCooperateUserByUserIdList(userDetails.Select(x => x.UserId).ToList()); } } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
public static IEnumerable <BeautyServicePackageDetail> GetBeautyServicePackageDetails(int packageId) { IEnumerable <BeautyServicePackageDetail> result = null; try { result = BeautyServicePackageDal.SelectBeautyServicePackageDetails(packageId); if (result != null && result.Any()) { var cooperateIds = result.Select(s => s.CooperateId).Where(s => s > 0).Distinct(); var cooperateUsers = cooperateIds.Select(s => new BankMRManager().FetchMrCooperateUserConfigByPKID(s)).Where(s => s != null); result.ForEach(s => s.CooperateName = cooperateUsers.FirstOrDefault(u => u.PKID == s.CooperateId)?.CooperateName); } } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
/// <summary> /// 根据兑换码获取服务码 /// </summary> /// <param name="redemptionCode"></param> /// <returns></returns> public static IEnumerable <RedemptionCodeAndServiceCodeMap> GetServiceCodesByRedemptionCode(string redemptionCode, string codeType) { IEnumerable <RedemptionCodeAndServiceCodeMap> result = new List <RedemptionCodeAndServiceCodeMap>(); try { switch (codeType) { case "BeautyServicePackageCode": result = BeautyServicePackageDal.GetBeautyServicePackageDetailCodeByPackageCode(redemptionCode); break; case "RedemptionCodeRecord": result = BeautyServicePackageDal.GetServiceCodesByRedemptionCode(redemptionCode); break; default: break; } if (result != null && result.Any()) { var codes = CommonServices.KuaiXiuService.GetServiceCodeDetailsByCodes(result.Select(x => x.ServiceCode).ToList()); if (codes != null && codes.Any()) { foreach (var item in result) { var code = codes.Where(y => String.Equals(item.ServiceCode, y.Code))?.FirstOrDefault(); item.CodeStatus = code?.Status.ToString(); item.OverdueTime = code?.OverdueTime; item.VerifyTime = code?.VerifyTime; } } } } catch (Exception ex) { Logger.Error(ex); } return(result); }
/// <summary> /// 获取车牌号 /// </summary> /// <param name="data"></param> /// <returns></returns> private IEnumerable <UnivBeautyRedemptionCodeResult> GetRedemptionCarNumber(IEnumerable <UnivBeautyRedemptionCodeResult> data) { try { if (data != null && data.Any()) { foreach (var item in data) { var promotionConfig = DbTuhuGrouponScopeReadManager.Execute(conn => DALUnivRedemptionCode.SelectRedeemPromotionConfigs(conn, item.ConfigGuid)); if (promotionConfig != null && promotionConfig.Any()) { switch (promotionConfig.FirstOrDefault().BusinessType) { case "BaoYangPackage": var baoyangPromotion = BeautyServicePackageDal.GetVipBaoYangGiftPackCouponDetail(item.RedemptionCode); item.CarNo = baoyangPromotion?.FirstOrDefault()?.CarNo; break; case "PaintPackage": var promotions = BeautyServicePackageDal.GetRedeemPromotionRecordByRedemptionCode(item.RedemptionCode); if (promotions != null && promotions.Any()) { var paintPromotion = BeautyServicePackageDal.GetVipPaintPackagePromotionDetail(promotions.Select(x => x.PromotionId).ToList()); item.CarNo = paintPromotion?.FirstOrDefault()?.CarNo; } break; default: break; } } } } } catch (Exception ex) { Logger.Error(ex); } return(data.ToList()); }
public static IEnumerable <BeautyServiceCodeTypeConfig> SelectAllBeautyServiceCodeTypeConfig(int ServerType = 0) { IEnumerable <BeautyServiceCodeTypeConfig> result = null; try { result = BeautyServicePackageDal.SelectAllBeautyServiceCodeTypeConfig(); if (ServerType == 1) { result = result.Where(w => w.ServerType == 1); } else if (ServerType == 0) { result = result.Where(w => w.ServerType == 0); } } catch (Exception ex) { Logger.Error(ex.Message, ex); }; return(result); }
/// <summary> /// 修改大客户美容服务码 /// </summary> /// <param name="model"></param> /// <param name="pkids"></param> /// <returns></returns> public static bool UpdateBeautyServicePackageDetailCodes(ServiceCodeDetail model, string user, ServiceCodeDetail oldCode) { var result = false; try { if (model.StartTime != null && model.EndTime != null) { using (var dbhelper = new Tuhu.Component.Common.SqlDbHelper(writeConnStr)) { dbhelper.BeginTransaction(); var upResult = true; if (model.PackageDetailCodeId > 0) { var oldValue = BeautyServicePackageDal.GetBeautyServicePackageDetailCodeByPKID(model.PackageDetailCodeId); if (oldValue != null) { #region 只更新服务码起止时间 其余数据保持不变 var newValue = new BeautyServicePackageDetailCode { PKID = model.PackageDetailCodeId, UserId = oldValue.UserId, PackageDetailId = oldValue.PackageDetailId, ServiceCode = oldValue.ServiceCode, IsActive = oldValue.IsActive, StartTime = model.StartTime, EndTime = model.EndTime, PackageCode = oldValue.PackageCode, VipUserId = oldValue.VipUserId }; #endregion upResult = BeautyServicePackageDal.UpdateBeautyServicePackageDetailCodes(dbhelper, newValue); } else { upResult = false; } } if (upResult) { using (var client = new ServiceCodeClient()) { var kxChangeCodeTimeModel = new ChangeCodeTimeRequest { ServiceCodes = new List <string>() { model.ServiceCode }, OverdueTime = model.EndTime }; var kxChangeResult = client.ChangeOverdueTime(kxChangeCodeTimeModel); kxChangeResult.ThrowIfException(true); if (kxChangeResult.Success && kxChangeResult.Result != null && kxChangeResult.Result.SuccessServiceCode.Count() > 0 && string.Equals(kxChangeResult.Result.SuccessServiceCode.FirstOrDefault(), model.ServiceCode)) { result = true; dbhelper.Commit(); var log = new BaoYangOprLog { LogType = "修改大客户美容服务码", IdentityID = oldCode.ServiceCode, OldValue = JsonConvert.SerializeObject(oldCode), NewValue = JsonConvert.SerializeObject(model), Remarks = $"修改服务码有效期:服务码开始时间从{oldCode.StartTime}变更为{model.StartTime},结束时间从{oldCode.EndTime}变更为{model.EndTime}", OperateUser = user, }; LoggerManager.InsertLog("BeautyOprLog", log); } else { throw new Exception($"快修服务修改服务码有效期失败,请求信息:{JsonConvert.SerializeObject(kxChangeCodeTimeModel)},返回信息:{JsonConvert.SerializeObject(kxChangeResult)}"); } } } } } } catch (Exception ex) { Logger.Error(ex.Message, ex); } return(result); }
public static async Task <bool> GenerateServiceCodes(int packageDetailId) { var result = false; var hasGenerateServiceCodes = new List <string>(); var currentProduct = GetBeautyServicePackageDetail(packageDetailId); var package = GetBeautyServicePackage(currentProduct.PackageId); var cooperateUser = new BankMRManager().FetchMrCooperateUserConfigByPKID(currentProduct.CooperateId); if ((string.Equals(package?.PackageType, "serviceCode") || currentProduct.PackageId <= 0) && cooperateUser != null) { var writeStr = BeautyServicePackageDal.GetTuhuGrouponWriteConnstr(); using (var dbhelper = new SqlDbHelper(writeStr)) { dbhelper.BeginTransaction(); var key = $"ServiceCodeGenerateingRate/{packageDetailId}"; try { var waitingGenerateCount = currentProduct.ServiceCodeNum; var betchSize = 100; while (waitingGenerateCount > 0) { var generateCount = waitingGenerateCount > betchSize ? betchSize : waitingGenerateCount; var serviceCodes = await GenerateServiceCode(currentProduct.PID, generateCount, currentProduct.Name, 0, currentProduct.ServiceCodeEndTime); if (serviceCodes != null && serviceCodes.Count() == generateCount) { hasGenerateServiceCodes.AddRange(serviceCodes); var rows = BeautyServicePackageDal.InsertBeautyServicePackageDetailCodes(dbhelper, currentProduct, cooperateUser.VipUserId, serviceCodes); if (rows == generateCount) { waitingGenerateCount -= generateCount; } else { throw new Exception($"服务码插入数据库的没有成功,rows:{rows},generateCount:{generateCount}"); } using (var client = CacheHelper.CreateCacheClient(CacheClientName)) { var process = (currentProduct.ServiceCodeNum - waitingGenerateCount) * 1.0f / currentProduct.ServiceCodeNum; await client.SetAsync(key, process, TimeSpan.FromMinutes(20)); } } else { throw new Exception($"快修服务生成的服务码和请求的数量不相等,PID:{currentProduct.PID},name:{currentProduct.Name}," + $"needCount:{generateCount},realCount:{serviceCodes.Count()}"); } } if (string.Equals(currentProduct.SettlementMethod, "PreSettled")) { var createOrderResult = await OrderManager.CreateServiceCodeOrderForVip(cooperateUser, currentProduct); if (createOrderResult.OrderId <= 0) { throw new Exception($"创建大客户兑换码订单失败,packageDetailId:{packageDetailId},OrderId{createOrderResult.OrderId}"); } else { var setOrderIdResult = BeautyServicePackageDal.SetPackageDetailBuyoutOrderId(dbhelper, packageDetailId, createOrderResult.OrderId); if (!setOrderIdResult) { throw new Exception("设置买断订单Id字段失败"); } } } var setResult = BeautyServicePackageDal.SetServiceCodeIsGenerated(dbhelper, packageDetailId); if (!setResult) { throw new Exception("设置是否生成服务码字段失败"); } dbhelper.Commit(); result = true; } catch (Exception ex) { dbhelper.Rollback(); using (var client = CacheHelper.CreateCacheClient(CacheClientName)) { await client.SetAsync(key, 0, TimeSpan.FromMinutes(20)); } await RevertVOLServiceCode(hasGenerateServiceCodes); Logger.Error("批量生成服务码错误", ex); } } } return(result); }
public static async Task <bool> GeneratePackageCodes(int packageId) { var result = false; var package = GetBeautyServicePackage(packageId); if (package != null && package.PackageCodeNum > 0) { var writeStr = BeautyServicePackageDal.GetTuhuGrouponWriteConnstr(); using (var dbhelper = new SqlDbHelper(writeStr)) { dbhelper.BeginTransaction(); var key = $"PacakgeCodeGenerateingRate/{packageId}"; try { var waitingGenerateCount = package.PackageCodeNum; var batchSize = 1000; while (waitingGenerateCount > 0) { var generateCount = batchSize < waitingGenerateCount ? batchSize : waitingGenerateCount; var rows = BeautyServicePackageDal.InsertBeautyServicePackageCodes(dbhelper, package, generateCount); if (generateCount == rows) { waitingGenerateCount -= generateCount; } else { throw new Exception($"兑换码插入数据库的没有成功,rows:{rows},generateCount:{generateCount}"); } using (var client = CacheHelper.CreateCacheClient(CacheClientName)) { var process = (package.PackageCodeNum - waitingGenerateCount) * 1.0f / package.PackageCodeNum; await client.SetAsync(key, process, TimeSpan.FromMinutes(20)); } } if (string.Equals(package.SettlementMethod, "PreSettled")) { var pacakgeDetails = GetBeautyServicePackageDetails(packageId); var createOrderResult = await OrderManager.CreatePackageCodeOrderForVipUser(package, pacakgeDetails); if (createOrderResult.OrderId <= 0) { throw new Exception($"创建大客户兑换码订单失败,packageId:{packageId},OrderId{createOrderResult.OrderId}"); } else { var setOrderIdResult = BeautyServicePackageDal.SetPackageBuyoutOrderId(dbhelper, packageId, createOrderResult.OrderId); if (!setOrderIdResult) { throw new Exception("设置买断订单Id字段失败"); } } } var setResult = BeautyServicePackageDal.SetPackageCodeIsGenerated(dbhelper, packageId); if (!setResult) { throw new Exception("设置是否兑换字段失败"); } dbhelper.Commit(); result = true; } catch (Exception ex) { dbhelper.Rollback(); using (var client = CacheHelper.CreateCacheClient(CacheClientName)) { await client.SetAsync(key, 0, TimeSpan.FromMinutes(20)); } Logger.Error("批量生成兑换码错误", ex); } } } return(result); }
/// <summary> /// 根据批次号更新服务码起始时间 /// </summary> /// <param name="user"></param> /// <param name="batchCode"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <returns></returns> public static async Task <Tuple <bool, string> > UpdateBeautyServiceCodeTimeByBatchCode(string user, string batchCode, DateTime startTime, DateTime endTime) { var result = false; var msg = string.Empty; try { var writeStr = BeautyServicePackageDal.GetTuhuGrouponWriteConnstr(); using (var dbhelper = new SqlDbHelper(writeStr)) { dbhelper.BeginTransaction(); var updateCodeResult = BeautyServicePackageDal.UpdateBeautyServicePackageDetailCodeTimeByBatchCode(dbhelper, batchCode, startTime, endTime); if (!updateCodeResult) { throw new Exception("根据批次号更新服务码时间失败,方法UpdateBeautyServicePackageDetailCodeTimeByBatchCode"); } var serviceCodes = BeautyServicePackageDal.SelectServiceCodesByBatchCode(batchCode); if (serviceCodes != null && serviceCodes.Any()) { if (serviceCodes.Count() > 10000) { throw new Exception("暂时不支持服务码数量大于10000的修改操作"); } using (var client = new ServiceCodeClient()) { var batchSize = 1000; var index = 0; while (index < serviceCodes.Count()) { var batchCodes = serviceCodes.Skip(index).Take(batchSize).ToList(); var kxChangeCodeTimeModel = new ChangeCodeTimeRequest { ServiceCodes = batchCodes, OverdueTime = endTime }; var kxChangeResult = client.ChangeOverdueTime(kxChangeCodeTimeModel); if (!kxChangeResult.Success) { throw kxChangeResult.Exception; } if (kxChangeResult.Result != null && kxChangeResult.Result.FailServiceCode != null && kxChangeResult.Result.FailServiceCode.Any()) { var serviceCodeFailedLog = new BeautyOprLog { LogType = "ChangeOverdueTimeFailedCodes", IdentityID = $"{batchCode}", OldValue = null, NewValue = JsonConvert.SerializeObject(kxChangeResult.Result.FailServiceCode), Remarks = $"根据批次号修改服务码过期时间失败,批次:{batchCode},OverdueTime应该改为:{endTime}", OperateUser = user, }; LoggerManager.InsertLog("BeautyOprLog", serviceCodeFailedLog); } index += batchSize; } dbhelper.Commit(); result = true; } } } } catch (Exception ex) { msg = ex.Message; Logger.Error(ex.Message, ex); } return(new Tuple <bool, string>(result, msg)); }
public static async Task <IEnumerable <CreateBeautyCodeTaskModel> > SelectCreateBeautyCodeTaskModels(string batchCode) { var result = BeautyServicePackageDal.SelectCreateBeautyCodeTaskModels(batchCode); return(await Task.FromResult(result ?? new List <CreateBeautyCodeTaskModel>())); }