public ActionResult SyncOilConfigData() { var manager = new VipBaoYangPackageManager(); var success = manager.SyncOilConfigData(); return(Json(new { status = success }, JsonRequestBehavior.AllowGet)); }
public JsonResult SelectOperationRecord(string batchCode, string pid, Guid vipUserId, string mobilePhone, int pageIndex, int pageSize) { VipBaoYangPackageManager manager = new VipBaoYangPackageManager(); var result = manager.SelectPromotionOperationRecord(pid, vipUserId, 0, batchCode, mobilePhone, pageIndex, pageSize); return(Json(result, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 获取所有大客户 /// </summary> /// <returns></returns> public JsonResult GetAllPaintPackageUser() { var manager = new VipBaoYangPackageManager(); var result = manager.GetAllBaoYangPackageUser(); return(Json(new { Status = result.Any(), Data = result }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 查看短信配置 /// </summary> /// <param name="model"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public Tuple <List <VipPaintPackageSmsConfig>, int> SelectPackageSmsConfig (VipPaintPackageSmsConfig model, int pageIndex, int pageSize) { var result = null as List <VipPaintPackageSmsConfig>; var totalCount = 0; try { result = dbScopeManagerConfigurationRead.Execute(conn => DalVipPaintPackage.SelectPackageSmsConfig(conn, model, pageIndex, pageSize, out totalCount)); var vipUsers = new VipBaoYangPackageManager().GetAllBaoYangPackageUser(); if (result != null && result.Any() && vipUsers != null && vipUsers.Any()) { result.ForEach(s => { s.VipUserName = vipUsers.FirstOrDefault(v => string.Equals(v.VipUserId, s.VipUserId.ToString()))?.VipUserName; }); } } catch (Exception ex) { Logger.Error("SelectVipPaintPackageSmsConfig", ex); } return(Tuple.Create(result, totalCount)); }
/// <summary> /// 查询塞券记录 /// </summary> /// <param name="batchCode"></param> /// <param name="moileNumber"></param> /// <param name="packagePid"></param> /// <param name="vipUserId"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public Tuple <List <VipPaintPromotionRecordViewModel>, int> SelectPromotionRecord (string batchCode, string moileNumber, string packagePid, Guid vipUserId, int pageIndex, int pageSize) { var result = null as List <VipPaintPromotionRecordViewModel>; var totalCount = 0; try { result = dbScopeManagerConfigurationRead.Execute(conn => DalVipPaintPackage.SelectPromotionRecord (conn, batchCode, moileNumber, packagePid, vipUserId, pageIndex, pageSize, out totalCount)); if (result != null && result.Any()) { var vipUsers = new VipBaoYangPackageManager().GetAllBaoYangPackageUser(); if (vipUsers != null && vipUsers.Any()) { result.ForEach(s => { s.VipUserName = vipUsers.FirstOrDefault(v => string.Equals(v.VipUserId, s.VipUserId.ToString()))?.VipUserName; }); } } } catch (Exception ex) { Logger.Error("SelectPromotionRecord", ex); } return(Tuple.Create(result, totalCount)); }
public JsonResult SelectVipBaoYangPackageByPKID(int pkid) { VipBaoYangPackageManager manager = new VipBaoYangPackageManager(); var result = manager.SelectVipBaoYangPackageByPkid(pkid); return(Json(result, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 根据礼包Id获取优惠券配置 /// </summary> /// <param name="packId"></param> /// <returns></returns> public ActionResult GetGiftPackCouponConfig(long packId) { var manager = new VipBaoYangPackageManager(); var result = manager.GetGiftPackCouponConfig(packId); var list = manager.GetRedemptionCodeSimpleInfo(packId); var existsRedemptionCode = list.Any(); return(Json(new { data = result.Select(x => new { x.RuleID, x.Description, x.GetRuleID, x.Name, x.PackId, x.PromtionName, x.Quantity, x.Term, ValiEndDate = x.ValiEndDate?.ToString("yyyy-MM-dd"), ValiStartDate = x.ValiStartDate?.ToString("yyyy-MM-dd"), }), ExistsRedemptionCode = existsRedemptionCode, }, JsonRequestBehavior.AllowGet)); }
public JsonResult UpdateSendSmsStatus(Guid vipUserId, bool isSendSms) { var manager = new VipBaoYangPackageManager(); var result = manager.UpdateSendSmsStatus(vipUserId, isSendSms, HttpContext.User.Identity.Name); return(Json(result, JsonRequestBehavior.AllowGet)); }
public JsonResult GetBaoYangPackageNameByVipUserId(Guid vipUserId) { var manager = new VipBaoYangPackageManager(); var result = manager.GetBaoYangPackageNameByVipUserId(vipUserId); return(Json(result, JsonRequestBehavior.AllowGet)); }
public JsonResult SelectVipBaoYangPackage(string pid, Guid vipUserId, int pageIndex, int pageSize) { var manager = new VipBaoYangPackageManager(); var result = manager.SelectVipBaoYangPackage(pid, vipUserId, pageIndex, pageSize); return(Json(result, JsonRequestBehavior.AllowGet)); }
public JsonResult InvalidCodes(string codeStr) { bool status = false; string message = string.Empty; List <int> codes = JsonConvert.DeserializeObject <List <int> >(codeStr); if (codes != null && codes.Any()) { var manager = new VipBaoYangPackageManager(); var checkResult = manager.IsAllUnUsed(codes); if (checkResult) { var invalidResult = manager.InvalidCodes(codes, User.Identity.Name); status = invalidResult.All(o => o.Value); message = $"{string.Join(",", invalidResult.Where(o => o.Value).Select(o => o.Key))}成功,{string.Join(",", invalidResult.Where(o => !o.Value).Select(o => o.Key))}失败"; } else { status = false; message = "选中的优惠券中包含已作废的券或者已使用的券,请刷新后重新操作"; } } return(Json(new { status = status, msg = message })); }
/// <summary> /// 生成兑换码 /// </summary> /// <param name="PackId"></param> /// <param name="quantity"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <returns></returns> public ActionResult GenerateRedemptionCode(long PackId, int quantity, string startTime, string endTime) { DateTime startDate, endDate; if (!DateTime.TryParse(startTime, out startDate) || !DateTime.TryParse(endTime, out endDate) || quantity < 1) { return(Json(new { status = false, msg = "参数错误" })); } startDate = startDate.Date; endDate = endDate.Date.AddDays(1).AddSeconds(-1); if (startDate > endDate || endDate < DateTime.Now) { return(Json(new { status = false, msg = "开始时间不能大于结束时间,并且结束时间不能小于当前时间" })); } var manager = new VipBaoYangPackageManager(); var coupons = manager.GetGiftPackCouponConfig(PackId); if (coupons == null || !coupons.Any()) { return(Json(new { status = false, msg = "您还没有给礼包添加优惠券" })); } var result = manager.GenerateRedemptionCode(PackId, quantity, startDate, endDate, User.Identity.Name); return(Json(new { status = result })); }
public JsonResult SelectVipSmsConfig(Guid vipUserId, int pageIndex = 1, int pageSize = 5) { var manager = new VipBaoYangPackageManager(); var result = manager.SelectVipSmsConfig(vipUserId, pageIndex, pageSize); return(Json(result, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 添加礼包优惠券配置 /// </summary> /// <param name="packId"></param> /// <param name="getRuleId"></param> /// <param name="quantity"></param> /// <returns></returns> public ActionResult AddGiftPackCouponConfig(long packId, int quantity, Guid?getRuleId) { if (packId < 0 || getRuleId == null || getRuleId.Value == Guid.Empty || quantity < 0) { return(Json(new { status = false, msg = "礼包、优惠券领取Id、优惠券数量必须填写" })); } var manager = new VipBaoYangPackageManager(); var users = new[] { "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" }; if (!users.Contains(User.Identity.Name)) { var list = manager.GetRedemptionCodeSimpleInfo(packId); if (list.Any()) { return(Json(new { status = false, msg = "已经生成过兑换码不能再添加优惠券" })); } } var validatedResult = manager.ValidateGiftPackCouponConfig(packId, getRuleId.Value); if (!validatedResult.Item1) { return(Json(new { status = false, msg = validatedResult.Item2 })); } var result = manager.AddGiftPackCouponConfig(packId, getRuleId.Value, quantity, User.Identity.Name); return(Json(new { status = result })); }
public JsonResult GetAllBaoYangPackageUser() { var manager = new VipBaoYangPackageManager(); var result = manager.GetAllBaoYangPackageUser(); return(Json(result, JsonRequestBehavior.AllowGet)); }
public JsonResult UploadExcel(int packageId, Guid ruleGUID) { var files = Request.Files; var convertResult = ConvertExcelToList(files); var data = new List <BaoYangPackagePromotionDetail>(); var flag = false; if (!string.IsNullOrEmpty(convertResult.Item2)) { return(Json(new { status = false, msg = convertResult.Item2 })); } var manager = new VipBaoYangPackageManager(); var validated = manager.ValidatedUploadData(ruleGUID, convertResult.Item1); if (!validated.Item1) { return(Json(new { status = false, msg = validated.Item2 })); } var extension = Path.GetExtension(files[0].FileName); var uploadResult = new UploadFileManager().UploadFile(convertResult.Item4, FileType.VipBaoYangPackage, extension, files[0].FileName, HttpContext.User.Identity.Name); if (!string.IsNullOrEmpty(uploadResult.Item1) && !string.IsNullOrEmpty(uploadResult.Item2)) { flag = manager.BatchBaoYangPakckagePromotion(packageId, ruleGUID, convertResult.Item3, uploadResult.Item2, HttpContext.User.Identity.Name); if (flag) { data = convertResult.Item1; } } return(Json(new { status = flag, data = data })); }
private static Tuple <List <BaoYangPackagePromotionDetail>, string, string, byte[]> ConvertExcelToList(HttpFileCollectionBase files) { var message = string.Empty; var result = null as List <BaoYangPackagePromotionDetail>; byte[] outBuffer = null; if (files.Count <= 0) { return(Tuple.Create(result, "请先上传文件", string.Empty, new byte[0])); } var file = files[0]; if (file.ContentType != "application/vnd.ms-excel" && file.ContentType != "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { return(Tuple.Create(result, "请上传Excel文件", string.Empty, new byte[0])); } var stream = file.InputStream; var buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); outBuffer = buffer; var sha1Value = GetSha1Value(buffer); var manager = new VipBaoYangPackageManager(); if (manager.IsUploaded(sha1Value)) { return(Tuple.Create(result, "文件已经上传过,请不要重复上传", string.Empty, new byte[0])); } var workBook = new XSSFWorkbook(new MemoryStream(buffer)); var sheet = workBook.GetSheetAt(0); var temp = ConvertExcelToList(sheet); result = temp.Item1; message = temp.Item2; if (!string.IsNullOrEmpty(message)) { return(Tuple.Create(result, message, string.Empty, new byte[0])); } if (!result.Any()) { return(Tuple.Create(result, "Excel内容为空", sha1Value, new byte[0])); } var repetitionNumber = result.GroupBy(x => x.MobileNumber) .Where(x => x.Count() > 1) .Select(x => x.Key).ToList(); if (repetitionNumber.Any()) { message = $"{string.Join(",", repetitionNumber)}以上手机号重复, 请确认"; } return(Tuple.Create(result, message, sha1Value, outBuffer)); }
public ActionResult GetVipBaoYangConfigSimpleInfo() { var manager = new VipBaoYangPackageManager(); var result = manager.GetVipBaoYangConfigSimpleInfo(); return(Json(new { status = true, data = result.Select(x => new { PackageId = x.Key, PackageName = x.Value }) }, JsonRequestBehavior.AllowGet)); }
public ActionResult UpdatePromotionDetail(long pkid, string mobileNumber) { if (pkid < 0 || !Regex.IsMatch(mobileNumber, "^[0-9]{11}$")) { return(Json(new { status = false, msg = "修改条目有误或者输入的手机号不正确" })); } var manager = new VipBaoYangPackageManager(); var result = manager.UpdatePromotionDetail(pkid, mobileNumber, User.Identity.Name); return(Json(new { status = result })); }
public ActionResult GetPackageConfigSimpleInfo(string batchcode) { var manager = new VipBaoYangPackageManager(); var packageInfo = manager.GetPackageConfigSimpleInfo(batchcode); return(Json(new { status = packageInfo != null, data = packageInfo }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 分页获取礼包配置 /// </summary> /// <param name="index"></param> /// <param name="size"></param> /// <returns></returns> public ActionResult GetVipBaoYangGiftPackConfig(int index, int size) { var manager = new VipBaoYangPackageManager(); var result = manager.GetVipBaoYangGiftPackConfig(index, size); return(Json(new { status = true, total = result.Total, data = result.Data, }, JsonRequestBehavior.AllowGet)); }
public JsonResult GetCouponRules() { VipBaoYangPackageManager manager = new VipBaoYangPackageManager(); var result = manager.GetCouponRules(); return(Json(result.Select(x => new { PKID = x.Item1, RuleGUID = x.Item2, PromotionName = x.Item3, Description = x.Item4 }).ToList(), JsonRequestBehavior.AllowGet)); }
/// <summary> /// 验证优惠券 /// </summary> /// <param name="ruleGuid"></param> /// <param name="models"></param> /// <returns></returns> public Tuple <bool, string> ValidatedUploadData(Guid ruleGuid, List <VipPaintPromotionTemplateModel> models) { if (ruleGuid == Guid.Empty || models == null || !models.Any()) { return(Tuple.Create(false, "验证优惠券相关信息不能为空")); } try { var baoYangManager = new VipBaoYangPackageManager(); var simplePromotion = baoYangManager.GetPromotionSimpleInfoByGetRuleGuid(ruleGuid); if (simplePromotion == null) { return(Tuple.Create(false, "优惠券有误")); } var existsData = GetImportedPromotionDetail(ruleGuid, models.Select(x => x.MobileNumber)); var lsit = (from x in models join y in existsData on x.MobileNumber equals y.MobileNumber into temp from z in temp.DefaultIfEmpty() select new { x.MobileNumber, x.PromotionCount, GetQuantity = z?.PromotionCount ?? 0 }).ToList(); //单个用户领取数量限制验证 var sqValidatedResult = lsit.Where(x => x.PromotionCount + x.GetQuantity > simplePromotion.SingleQuantity); if (sqValidatedResult.Any()) { return(Tuple.Create(false, $"{string.Join("\n", sqValidatedResult.Select(x => x.MobileNumber))}超过单个用户优惠券领取数量{simplePromotion.SingleQuantity}, 请先修改券领取数量再进行塞券")); } //总的数量限制验证 if (simplePromotion.Quantity != null) { var quantity = simplePromotion.Quantity.Value; var totalQuantity = models.Sum(x => x.PromotionCount); if (totalQuantity > quantity - simplePromotion.GetQuantity) { return(Tuple.Create(false, $"领取数量{totalQuantity}超过剩余取数量{quantity - simplePromotion.GetQuantity}限制(其中总数量为{quantity},已经领取数量为{simplePromotion.GetQuantity}), 请先修改券发行量再进行塞券")); } } } catch (Exception ex) { Logger.Error("ValidatedUploadData", ex); return(Tuple.Create(false, "验证优惠券异常")); } return(Tuple.Create(true, string.Empty)); }
/// <summary> /// 获取所有优惠券规则 /// </summary> /// <returns></returns> public ActionResult GetAllCouponRules() { var manager = new VipBaoYangPackageManager(); var result = manager.GetAllCouponRules(); return(Json(new { data = result.Select(x => new { RuleID = x.Key, Name = x.Value }) }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 根据RuleId获取'获取优惠券规则' /// </summary> /// <param name="ruleId"></param> /// <returns></returns> public ActionResult GetCouponGetRules(int ruleId) { var manager = new VipBaoYangPackageManager(); var resut = manager.GetCouponGetRules(ruleId); return(Json(new { data = resut.Select(x => new { GetRuleID = x.Item1, GetRuleGUID = x.Item2, PromtionName = x.Item3, Description = x.Item4, }) }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 更新或者新增礼包配置 /// </summary> /// <param name="config"></param> /// <returns></returns> public ActionResult AddOrUpdateGiftPackConfig(VipBaoYangGiftPackConfig config) { if (config == null || string.IsNullOrWhiteSpace(config.PackName) || config.PackageId < 0) { return(Json(new { status = false, msg = "礼包名称、套餐不能为空" })); } config.PackName = config.PackName.Trim(); var manager = new VipBaoYangPackageManager(); if (manager.IsExisitsVipBaoYangGiftPackName(config)) { return(Json(new { status = false, msg = "礼包名称已存在" })); } var result = config.PackId <= 0 ? manager.AddVipBaoYangGiftPackConfig(config, User.Identity.Name) : manager.EditVipBaoYangGiftPackConfig(config); return(Json(new { status = result }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 获取配置了套餐的喷漆大客户 /// </summary> /// <returns></returns> public List <VipSimpleUser> GetPaintVipUsers() { var result = new List <VipSimpleUser>(); try { var vipUserIds = dbScopeManagerConfiguration.Execute(conn => DalVipPaintPackage.GetPaintVipUsers(conn)); var allVipUsers = new VipBaoYangPackageManager().GetAllBaoYangPackageUser(); if (vipUserIds != null && vipUserIds.Any() && allVipUsers != null && allVipUsers.Any()) { result = allVipUsers.Where(s => vipUserIds.Contains(s.VipUserId)).ToList(); } } catch (Exception ex) { Logger.Error("GetAllPaintVipUsers", ex); result = null; } return(result); }
/// <summary> /// 获取兑换码 /// </summary> /// <param name="batchCode"></param> /// <param name="packId"></param> /// <returns></returns> public ActionResult DownloadRedemptionCode(string batchCode, long packId) { var manager = new VipBaoYangPackageManager(); var result = manager.GetRedemptionCodeDetails(batchCode, packId, User.Identity.Name); var workbook = new XSSFWorkbook(); var sheet = workbook.CreateSheet(); var row = sheet.CreateRow(0); var cell = null as ICell; var cellNum = 0; row.CreateCell(cellNum++).SetCellValue("兑换码"); row.CreateCell(cellNum++).SetCellValue("有效开始时间"); row.CreateCell(cellNum++).SetCellValue("有效截至时间"); cellNum = 0; sheet.SetColumnWidth(cellNum++, 20 * 256); sheet.SetColumnWidth(cellNum++, 28 * 256); sheet.SetColumnWidth(cellNum++, 28 * 256); var rowNumber = 1; result.ForEach(x => { cellNum = 0; row = sheet.CreateRow(rowNumber); row.CreateCell(cellNum++).SetCellValue(x.RedemptionCode); row.CreateCell(cellNum++).SetCellValue(x.StartTime.ToString("yyyy-MM-dd HH:mm:ss")); row.CreateCell(cellNum++).SetCellValue(x.EndTime.ToString("yyyy-MM-dd HH:mm:ss")); rowNumber++; }); var ms = new MemoryStream(); workbook.Write(ms); return(File(ms.ToArray(), "application/x-xls", $"批次{batchCode}兑换码{DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒")}.xlsx")); }
public ActionResult GetPromotionDetails(string batchcode, int index = 1, int size = 10) { var manager = new VipBaoYangPackageManager(); var promotionDetails = manager.GetPromotionDetailsByBatchCode(batchcode, index, size); promotionDetails?.ForEach(f => { if (f.StartTime.HasValue) { f.StartTime = f.StartTime.Value.Date; } if (f.EndTime.HasValue) { f.EndTime = f.EndTime.Value.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } }); return(Json(new { status = promotionDetails != null, data = promotionDetails, total = promotionDetails?.FirstOrDefault()?.Total ?? 0 }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 获取礼包兑换码简要信息 /// </summary> /// <param name="packId"></param> /// <returns></returns> public ActionResult GetRedemptionCodeSimpleInfo(long packId) { if (packId < 1) { return(Json(new { status = false, msg = "参数错误" }, JsonRequestBehavior.AllowGet)); } var simpleInfos = new VipBaoYangPackageManager().GetRedemptionCodeSimpleAndRecord(packId); return(Json(new { data = simpleInfos.Select(x => new { x.BatchCode, CreateDateTime = x.CreateDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff"), x.CreateUser, Records = x.Records.Select(t => new { DownloadUser = t.OperateUser, DownloadTime = t.CreateTime.ToString("yyyy-MM-dd HH:mm:ss.fff") }) }), status = true })); }