public ActionResult PointDecrement()
        {
            PointTrackArgs args = RequestArgs <PointTrackArgs>();

            if (args == null)
            {
                return(RespondResult(false, "参数无效。"));
            }

            args.DomainId     = DomainContext.Domain.Id;
            args.Type         = MemberPointTrackType.UserOperate;
            args.OperatorUser = MemberContext.User.Id;

            PointTrackResult pointTrackResult = _memberManager.PointTrack(args);

            #region 操作日志

            if (pointTrackResult.Success)
            {
                _operatedLogManager.Create(new OperatedLogEntity()
                {
                    Domain      = DomainContext.Domain.Id,
                    AppId       = DomainContext.AppId,
                    User        = MemberContext.User.Id,
                    IP          = Request.UserHostAddress,
                    Module      = EnumModule.Member,
                    Description = "消减用户积分"
                });
            }

            #endregion

            return(RespondDataResult(pointTrackResult));
        }
        //TODO:积分变更记录中没有appid?
        /// <summary>
        /// 修改积分
        /// </summary>
        /// <param name="args"></param>
        public PointTrackResult PointTrack(PointTrackArgs args)
        {
            PointTrackResult result = new PointTrackResult();

            if (args == null)
            {
                return(result);
            }

            if (args.Quantity == 0)
            {
                return(result);
            }

            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@domain", args.DomainId));
            parameterList.Add(new CommandParameter("@memberId", args.MemberId));
            parameterList.Add(new CommandParameter("@quantity", args.Quantity));
            parameterList.Add(new CommandParameter("@type", (int)args.Type));
            parameterList.Add(new CommandParameter("@tagName", args.TagName));
            parameterList.Add(new CommandParameter("@tagId", args.TagId));
            parameterList.Add(new CommandParameter("@operatorUser", args.OperatorUser));
            parameterList.Add(new CommandParameter("@remark", args.Remark));

            DataSet dsResult =
                _dataBase.ExecuteDataSet(CommandType.StoredProcedure, "TrackMemberPoint", parameterList, new string[] { "result" });

            //result.Reason = int.Parse(dsResult.Tables[0].Rows[0]["Result"].ToString());

            result.Success   = true;
            result.LeftPoint = int.Parse(dsResult.Tables[0].Rows[0]["Point"].ToString());

            return(result);
        }
        internal PointTrackResult ShareCampaignToAppMessage(CampaignEntity campaign, Guid?memberId, string openId)
        {
            PointTrackResult result = new PointTrackResult();

            if (campaign == null || campaign.Status != EnumCampaignStatus.Ongoing)
            {
                return(result);
            }

            if (campaign.ShareAppMessagePoint <= 0)
            {
                return(result);
            }

            #region 判断有没有分享过

            ShareLogEntity log = ShareManager.GetShareLog(campaign.Id, openId);
            if (log == null)
            {
                log                 = new ShareLogEntity();
                log.Member          = memberId;
                log.OpenId          = openId;
                log.PageId          = campaign.Id;
                log.ShareAppMessage = true;
                ShareManager.Create(log);
            }
            else
            {
                if (log.ShareAppMessage && log.Member.HasValue)
                {
                    return(result);
                }

                if (log.ShareAppMessage && memberId.HasValue == false)
                {
                    return(result);
                }

                log.Member          = memberId;
                log.ShareAppMessage = true;
                ShareManager.Update(log);
            }

            #endregion

            if (memberId.HasValue)
            {
                PointTrackArgs args = new PointTrackArgs();
                args.DomainId = campaign.Domain;
                args.MemberId = memberId.Value;
                args.Quantity = campaign.ShareAppMessagePoint;
                args.Type     = MemberPointTrackType.Campaign;
                args.TagName  = campaign.Name;
                args.TagId    = campaign.Id;
                result        = MemberManager.PointTrack(args);
            }

            return(result);
        }
示例#4
0
        public Campaign_PictureVoteShareResult PictureVoteShareAppMessage(Guid campaignId, Guid?memberId, string openId)
        {
            Campaign_PictureVoteShareResult result = new Campaign_PictureVoteShareResult();

            CampaignEntity campaign = _campaignManager.GetCampaign(campaignId);

            if (campaign == null || campaign.Status != EnumCampaignStatus.Ongoing)
            {
                return(result);
            }

            //分享活动奖励积分
            PointTrackResult shareTimelineResult = _campaignManager.ShareCampaignToAppMessage(campaign, memberId, openId);

            if (shareTimelineResult.Success == false)
            {
                return(result);
            }

            result.Point = campaign.ShareAppMessagePoint;

            List <Campaign_PictureVoteItemEntity> itemList = GetMemberPictureVoteItemList(campaignId, memberId.Value);

            if (itemList.Count > 0)
            {
                //分享活动奖励票数
                //当前已经发布出来的投票项目全部加指定票数
                Campaign_PictureVoteEntity pictureVote = GetPictureVote(campaignId);
                if (pictureVote == null)
                {
                    return(result);
                }

                List <CommandParameter> parameterList;
                foreach (var item in itemList)
                {
                    parameterList = new List <CommandParameter>();
                    parameterList.Add(new CommandParameter("@itemId", item.Id));
                    parameterList.Add(new CommandParameter("@quantity", pictureVote.ShareAppMessageVote));

                    _campaignManager.DataBase.ExecuteNonQuery("UPDATE [Campaign_PictureVoteItem] SET [VoteQuantity] = [VoteQuantity] + @quantity WHERE [Id] = @itemId",
                                                              parameterList);
                }
                result.Vote = pictureVote.ShareAppMessageVote;
            }

            return(result);
        }
        public ShareResult ShareAppMessage(Guid campaignId, Guid?memberId, string openId)
        {
            ShareResult result = new ShareResult();

            CampaignEntity campaign = GetCampaign(campaignId);

            if (campaign == null || campaign.Status != EnumCampaignStatus.Ongoing)
            {
                return(result);
            }

            PointTrackResult pointTrackResult = ShareCampaignToAppMessage(campaign, memberId, openId);

            if (pointTrackResult.Success == false)
            {
                return(result);
            }

            result.Point = campaign.ShareAppMessagePoint;
            return(result);
        }
        public ShareResult ShareAppMessage(Guid pageId, Guid?memberId, string openId)
        {
            ShareResult result = new ShareResult();

            AdvancedArticleEntity advancedArticle = GetAdvancedArticle(pageId);

            if (advancedArticle == null)
            {
                return(result);
            }

            #region 判断有没有分享过

            ShareLogEntity log = _shareManager.GetShareLog(pageId, openId);
            if (log == null)
            {
                log                 = new ShareLogEntity();
                log.Member          = memberId;
                log.OpenId          = openId;
                log.PageId          = pageId;
                log.ShareAppMessage = true;
                _shareManager.Create(log);
            }
            else
            {
                if (log.ShareAppMessage && log.Member.HasValue)
                {
                    return(result);
                }

                if (log.ShareAppMessage && memberId.HasValue == false)
                {
                    return(result);
                }

                log.Member          = memberId;
                log.ShareAppMessage = true;
                _shareManager.Update(log);
            }

            #endregion

            if (advancedArticle.ShareAppMessagePoint <= 0)
            {
                return(result);
            }

            if (memberId.HasValue)
            {
                PointTrackArgs args = new PointTrackArgs();
                args.DomainId = advancedArticle.Domain;
                args.MemberId = memberId.Value;
                args.Quantity = advancedArticle.ShareAppMessagePoint;
                args.Type     = MemberPointTrackType.Share;
                args.TagName  = advancedArticle.Title;
                args.TagId    = advancedArticle.Id;

                PointTrackResult pointTrackResult = _memberManager.PointTrack(args);
                if (pointTrackResult.Success == false)
                {
                    return(result);
                }

                result.Point = advancedArticle.ShareAppMessagePoint;
            }

            return(result);
        }