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); }
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); }
/// <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 <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); }
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 Tuple <bool, string> UpdateBeautyServicePackageDetail(BeautyServicePackageDetail packageDetail) { bool result = false; var msg = string.Empty; var writeStr = BeautyServicePackageDal.GetTuhuGrouponWriteConnstr(); using (var dbhelper = new SqlDbHelper(writeStr)) { try { var oldValue = GetBeautyServicePackageDetail(packageDetail.PKID); dbhelper.BeginTransaction(); var updatePackageDetailResult = BeautyServicePackageDal.UpdateBeautyServicePackageDetail(dbhelper, packageDetail); if (!updatePackageDetailResult) { throw new Exception("更新服务码配置失败"); } if (packageDetail.IsServiceCodeGenerated && (oldValue.ServiceCodeStartTime != packageDetail.ServiceCodeStartTime || oldValue.ServiceCodeEndTime != packageDetail.ServiceCodeEndTime)) { if (oldValue.ServiceCodeNum > 10000) { throw new Exception("大于10000暂时不支持修改"); } var updateServiceCodeTimeResult = BeautyServicePackageDal.UpdateServiceCodeTime(dbhelper, packageDetail.PKID, packageDetail.ServiceCodeStartTime, packageDetail.ServiceCodeEndTime); if (!updateServiceCodeTimeResult) { throw new Exception("更新服务码时间失败"); } if (oldValue.ServiceCodeEndTime != packageDetail.ServiceCodeEndTime && packageDetail.ServiceCodeEndTime != null) { var serviceCodes = (GetBeautyServicePackageDetailCodesByPackageDetailId(packageDetail.PKID))?.Select(t => t.ServiceCode)?.ToList(); if (serviceCodes != null && serviceCodes.Any()) { 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 = Convert.ToDateTime(packageDetail.ServiceCodeEndTime) }; 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 = $"{packageDetail.PKID}", OldValue = null, NewValue = JsonConvert.SerializeObject(kxChangeResult.Result.FailServiceCode), Remarks = $"修改服务码过期时间失败", OperateUser = packageDetail.UpdateUser, }; LoggerManager.InsertLog("BeautyOprLog", serviceCodeFailedLog); } index += batchSize; } } } } } dbhelper.Commit(); result = true; var log = new BeautyOprLog { LogType = "UpdateBeautyServicePackageDetail", IdentityID = $"{packageDetail.PKID}", OldValue = JsonConvert.SerializeObject(oldValue), NewValue = JsonConvert.SerializeObject(packageDetail), Remarks = $"修改集团客户礼包详情,详情ID为{packageDetail.PKID}", OperateUser = packageDetail.UpdateUser, }; LoggerManager.InsertLog("BeautyOprLog", log); } catch (Exception ex) { msg = ex.Message; dbhelper.Rollback(); Logger.Error(ex.Message, ex); }; } return(new Tuple <bool, string>(result, msg)); }