Ejemplo n.º 1
0
        /// <summary>
        /// 兑换商品时处理积分,动态
        /// </summary>
        /// <param name="record">兑换申请</param>
        /// <param name="eventArgs"></param>
        public void RecordAcitivityEventModule_After(PointGiftExchangeRecord record, CommonEventArgs eventArgs)
        {
            //生成动态
            ActivityService activityService = new ActivityService();

            if (eventArgs.EventOperationType == EventOperationType.Instance().Approved())
            {
                //初始化Owner为用户的动态
                Activity activity = Activity.New();
                activity.ActivityItemKey       = ActivityItemKeys.Instance().ExchangeGift();
                activity.ApplicationId         = PointMallConfig.Instance().ApplicationId;
                activity.HasImage              = true;
                activity.HasMusic              = false;
                activity.HasVideo              = false;
                activity.IsOriginalThread      = true;
                activity.IsPrivate             = false;
                activity.UserId                = record.PayerUserId;
                activity.ReferenceId           = record.GiftId;
                activity.ReferenceTenantTypeId = TenantTypeIds.Instance().PointGift();
                activity.SourceId              = record.RecordId;
                activity.TenantTypeId          = TenantTypeIds.Instance().PointGiftExchangeRecord();
                activity.OwnerId               = record.PayerUserId;
                activity.OwnerName             = record.Payer;
                activity.OwnerType             = ActivityOwnerTypes.Instance().User();

                activityService.Generate(activity, true);

                //通知
                Notice notice = Notice.New();
                notice.UserId             = record.PayerUserId;
                notice.ApplicationId      = PointMallConfig.Instance().ApplicationId;
                notice.TypeId             = NoticeTypeIds.Instance().Hint();
                notice.LeadingActor       = record.Payer;
                notice.LeadingActorUrl    = SiteUrls.FullUrl(SiteUrls.Instance().SpaceHome(record.PayerUserId));
                notice.RelativeObjectName = record.GiftName;
                notice.RelativeObjectUrl  = SiteUrls.FullUrl(SiteUrls.Instance().GiftDetail(record.GiftId));
                notice.TemplateName       = NoticeTemplateNames.Instance().ApplyRecord();
                noticeService.Create(notice);
            }
            else if (eventArgs.EventOperationType == EventOperationType.Instance().Disapproved())
            {
                //通知
                Notice notice = Notice.New();
                notice.UserId             = record.PayerUserId;
                notice.ApplicationId      = PointMallConfig.Instance().ApplicationId;
                notice.TypeId             = NoticeTypeIds.Instance().Hint();
                notice.LeadingActor       = record.Payer;
                notice.LeadingActorUrl    = SiteUrls.FullUrl(SiteUrls.Instance().SpaceHome(record.PayerUserId));
                notice.RelativeObjectName = record.GiftName;
                notice.RelativeObjectUrl  = SiteUrls.FullUrl(SiteUrls.Instance().GiftDetail(record.GiftId));
                notice.TemplateName       = NoticeTemplateNames.Instance().CancelRecord();
                noticeService.Create(notice);
            }
        }
Ejemplo n.º 2
0
        public ActionResult _Appraise(long recordId)
        {
            PointGiftExchangeRecord record = pointMallService.GetRecord(recordId);

            if (record.PayerUserId != UserContext.CurrentUser.UserId)
            {
                return(Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
                {
                    Body = "没有评价的权限",
                    Title = "没有权限",
                    StatusMessageType = StatusMessageType.Hint
                })));
            }
            return(View(record));
        }
Ejemplo n.º 3
0
        public ActionResult _CancelExchange(long recordId)
        {
            PointGiftExchangeRecord record = pointMallService.GetRecord(recordId);

            if (record.PayerUserId != UserContext.CurrentUser.UserId)
            {
                return(Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
                {
                    Body = "没有取消兑换申请的权限",
                    Title = "没有权限",
                    StatusMessageType = StatusMessageType.Hint
                })));
            }
            pointMallService.CancelRecord(pointMallService.GetRecord(recordId));
            return(Json(new StatusMessageData(StatusMessageType.Success, "取消兑换成功!")));
        }
Ejemplo n.º 4
0
        public ActionResult _Appraise(long recordId, string appraise)
        {
            PointGiftExchangeRecord record = pointMallService.GetRecord(recordId);

            if (record.PayerUserId != UserContext.CurrentUser.UserId)
            {
                return(Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
                {
                    Body = "没有评价的权限",
                    Title = "没有权限",
                    StatusMessageType = StatusMessageType.Hint
                })));
            }
            pointMallService.SetAppraise(recordId, Formatter.FormatMultiLinePlainTextForStorage(appraise, true) ?? string.Empty);
            return(Json(new StatusMessageData(StatusMessageType.Success, "评价成功!")));
        }
Ejemplo n.º 5
0
        public ActionResult _CreateRecord(RecordEditModel recordEditModel)
        {
            PointGiftExchangeRecord record = recordEditModel.AsPointGiftExchangeRecord();

            if (record.PointGift == null)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "找不到商品")));
            }

            if (!record.PointGift.IsEnabled)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "该商品已下架,不允许兑换!")));
            }

            if (record.Number <= 0)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "兑换数量必须为正整数!")));
            }

            var user = DIContainer.Resolve <UserService>().GetUser(recordEditModel.PayerUserId);

            var totalPrice = record.Number * record.PointGift.Price;

            record.Price = totalPrice;
            if (totalPrice > user.TradePoints)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "你没有这么多积分!")));
            }

            pointMallService.CreateRecord(record);

            if (record.RecordId <= 0)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "兑换商品失败!")));
            }

            //兑换数增加
            record.PointGift.ExchangedCount += record.Number;
            pointMallService.UpdateGift(record.PointGift);
            return(Json(new StatusMessageData(StatusMessageType.Success, "兑换商品成功!")));
        }
        public ActionResult _ChangeRecordStatus(IEnumerable <long> recordIds, bool isApprove)
        {
            int count = 0;

            foreach (var recordId in recordIds)
            {
                PointGiftExchangeRecord record = pointMallService.GetRecord(recordId);
                //待批准的才能操作
                if (record.Status == ApproveStatus.Pending)
                {
                    pointMallService.IsApprove(record, isApprove);
                    count++;
                }
            }
            if (count == recordIds.Count())
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, isApprove ? "批准操作成功!" : "拒绝操作成功!")));
            }
            else
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, isApprove ? "共有" + count + "个申请批准成功,共" + (recordIds.Count() - count) + "个已处理的申请无法被批准。" : "共有" + count + "个申请拒绝成功,共" + (recordIds.Count() - count) + "个已处理的申请无法被拒绝。")));
            }
        }