Example #1
0
        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));
        }
Example #4
0
        /// <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));
        }
Example #5
0
        /// <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));
        }
Example #23
0
        /// <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));
        }
Example #27
0
        /// <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
            }));
        }