예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        /// <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));
        }
예제 #6
0
        /// <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);
        }
예제 #7
0
        public static IEnumerable <string> GetAllVipUserName()
        {
            IEnumerable <string> result = null;

            try
            {
                result = BeautyServicePackageDal.SelectAllVipUserName();
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
            };

            return(result);
        }
예제 #8
0
        public static IEnumerable <BeautyServiceCodeTypeConfig> SelectAllBeautyServiceCodeTypeConfig()
        {
            IEnumerable <BeautyServiceCodeTypeConfig> result = null;

            try
            {
                result = BeautyServicePackageDal.SelectAllBeautyServiceCodeTypeConfig();
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
            };

            return(result);
        }
예제 #9
0
        /// <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);
        }
예제 #10
0
        /// <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);
        }
예제 #11
0
        public static BeautyServicePackageDetail GetBeautyServicePackageDetail(int packageDetailId)
        {
            BeautyServicePackageDetail result = null;

            try
            {
                result = BeautyServicePackageDal.SelectBeautyServicePackageDetail(packageDetailId);
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
            };

            return(result);
        }
예제 #12
0
        /// <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);
        }
예제 #13
0
        /// <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);
        }
예제 #14
0
        /// <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);
        }
예제 #15
0
        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);
         }
     }
 }
예제 #18
0
        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);
        }
예제 #19
0
        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);
        }
예제 #20
0
        /// <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);
        }
예제 #21
0
        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);
        }
예제 #22
0
        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);
        }
예제 #23
0
        /// <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);
        }
예제 #24
0
        /// <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());
        }
예제 #25
0
        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);
        }
예제 #26
0
        /// <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);
        }
예제 #27
0
        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);
        }
예제 #28
0
        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);
        }
예제 #29
0
        /// <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));
        }
예제 #30
0
        public static async Task <IEnumerable <CreateBeautyCodeTaskModel> > SelectCreateBeautyCodeTaskModels(string batchCode)
        {
            var result = BeautyServicePackageDal.SelectCreateBeautyCodeTaskModels(batchCode);

            return(await Task.FromResult(result ?? new List <CreateBeautyCodeTaskModel>()));
        }