Ejemplo n.º 1
0
        /// <summary>
        /// 创建一个被投票项目
        /// </summary>
        /// <param name="item"></param>
        public EnumCampaignCreatePictureVoteItemResult CreatePictureVoteItem(Campaign_PictureVoteItemEntity args)
        {
            if (args == null)
            {
                Debug.Assert(false, "args == null");
                return(EnumCampaignCreatePictureVoteItemResult.Failed);
            }

            //是否允许多发布
            Campaign_PictureVoteEntity campaign_PictureVote = GetPictureVote(args.CampaignId);

            if (campaign_PictureVote == null)
            {
                return(EnumCampaignCreatePictureVoteItemResult.Failed);
            }

            //参与通道是否还打开
            if (campaign_PictureVote.AllowedNewItem == false)
            {
                return(EnumCampaignCreatePictureVoteItemResult.NewItemClosed);
            }

            //如果是会员发布,判断是否发过了及是否可多发布
            if (args.Member.HasValue && args.Member.Value != Guid.Empty)
            {
                List <CommandParameter> parameterList = new List <CommandParameter>();
                parameterList.Add(new CommandParameter("@campaignId", args.CampaignId));
                parameterList.Add(new CommandParameter("@memberId", args.Member.Value));

                int intCount = 0;
                _campaignManager.DataBase.ExecuteScalar <int>(
                    "SELECT Count(1) FROM [Campaign_PictureVoteItem] WHERE [CampaignId] = @campaignId AND [Member] = @memberId",
                    parameterList, (scalarValue) => { intCount = scalarValue; });

                if (intCount >= campaign_PictureVote.MaxPublishTimes)
                {
                    return(EnumCampaignCreatePictureVoteItemResult.AlreadyPublished);
                }
            }

            int?serialNumber = _campaignManager.DomainManager.GetSerialNumber("PictureVote");

            if (serialNumber.HasValue == false)
            {
                return(EnumCampaignCreatePictureVoteItemResult.Failed);
            }

            args.SerialNumber = serialNumber.Value.ToString();

            _campaignManager.DataBase.Insert(args);

            return(EnumCampaignCreatePictureVoteItemResult.Successful);
        }
        public ActionResult PictureVoteUpload()
        {
            string strCampaignId = Request.QueryString["campaignId"];

            if (String.IsNullOrEmpty(strCampaignId))
            {
                return(RespondResult(false, "参数无效。"));
            }

            Guid campaignId = Guid.Parse(strCampaignId);

            CampaignEntity             campaign    = _campaignManager.GetCampaign(campaignId);
            Campaign_PictureVoteEntity pictureVote = _campaignManager.PictureVote.GetPictureVote(campaignId);

            if (campaign == null || pictureVote == null)
            {
                //重定向到错误页面
                return(new RedirectResult(String.Format(
                                              "~/Home/ErrorView/?message={0}", "td8")));
            }

            //判断当前用户上传量是否已达限制,达到限制则直接跳转到查看页面
            List <Campaign_PictureVoteItemEntity> uploadList =
                _campaignManager.PictureVote.GetMemberPictureVoteItemList(campaignId, MemberContext.Member.Id);

            if (uploadList.Count >= pictureVote.MaxPublishTimes)
            {
                return(RedirectToAction("PictureVoteItemDetail",
                                        new { domainId = DomainContext.Domain.Id, itemId = uploadList[0].Id, campaignId = strCampaignId }));

                //return RedirectToRoute(new
                //{
                //    controller = "Campaign",
                //    action = "PictureVoteItemDetail",
                //    domainId = DomainContext.Domain.Id,
                //    id = uploadList[0].Id,
                //    campaignId = strCampaignId
                //});
                //return Redirect(String.Format("~/Campaign/PictureVoteItemDetail/{0}?campaignId={1}&id={2}",
                //    DomainContext.Domain.Id, uploadList[0].Id, strCampaignId));
            }

            PictureVoteUploadViewModel model = new PictureVoteUploadViewModel();

            model.Campaign    = campaign;
            model.JsApiConfig = DomainContext.GetJsApiConfig(HttpContext.Request.Url.ToString());
            model.JsApiConfig.JsApiList.Add("chooseImage");
            model.JsApiConfig.JsApiList.Add("previewImage");
            model.JsApiConfig.JsApiList.Add("uploadImage");
            model.JsApiConfig.JsApiList.Add("downloadImage");
            return(View(model));
        }
Ejemplo n.º 3
0
        public void UpdatePictureVote(CampaignEntity campaign, Campaign_PictureVoteEntity pictureVote)
        {
            if (campaign == null || pictureVote == null)
            {
                Debug.Assert(false, "campaign == null || pictureVote ==null");
                return;
            }

            pictureVote.CampaignId = campaign.Id;
            pictureVote.Domain     = campaign.Domain;

            _campaignManager.DataBase.UpdateList(campaign, pictureVote);
        }
Ejemplo n.º 4
0
        public Campaign_PictureVoteEntity GetPictureVote(Guid campaignId)
        {
            Campaign_PictureVoteEntity campaign = new Campaign_PictureVoteEntity();

            campaign.CampaignId = campaignId;

            if (_campaignManager.DataBase.Fill <Campaign_PictureVoteEntity>(campaign))
            {
                return(campaign);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 5
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);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 修改审核状态 ,通过
        /// </summary>
        /// <param name="args"></param>
        public NormalResult PictureVoteItemApprove(DomainContext domainContext, Campaign_PictureVoteItemApproveArgs args)
        {
            //判断是否达到最大可参与人数
            if (PictureVoteIsFullParticipant(args.CampaignId))
            {
                return(new NormalResult("该活动已达最大允许参与人数,如需调整允许参与的人数,请编辑此活动基本信息。"));
            }

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

            parameterList.Add(new CommandParameter("@id", args.ItemId));
            parameterList.Add(new CommandParameter("@approveStatus", EnumCampaignPictureVoteItemApproveStatus.Approved));

            _campaignManager.DataBase.ExecuteNonQuery("UPDATE [Campaign_PictureVoteItem] SET [ApproveStatus] = @approveStatus WHERE [Id] = @id",
                                                      parameterList);

            //奖励参与者积分
            if (args.MemberId.HasValue)
            {
                Campaign_PictureVoteEntity campaignPictureVote = GetPictureVote(args.CampaignId);
                if (campaignPictureVote.ApprovedPoint > 0)
                {
                    CampaignEntity campaign = _campaignManager.GetCampaign(args.CampaignId);

                    PointTrackArgs pointTrackArgs = new PointTrackArgs();
                    pointTrackArgs.DomainId = campaign.Domain;
                    pointTrackArgs.MemberId = args.MemberId.Value;
                    pointTrackArgs.Quantity = campaignPictureVote.ApprovedPoint;
                    pointTrackArgs.Type     = MemberPointTrackType.Campaign;
                    pointTrackArgs.TagName  = campaign.Name;
                    pointTrackArgs.TagId    = campaign.Id;

                    _campaignManager.MemberManager.PointTrack(pointTrackArgs);
                }
            }

            return(new NormalResult());
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 投票
        /// </summary>
        /// <param name="args"></param>
        public EnumCampaignPictureVoteResult PictureVote(Campaign_PictureVoteArgs args)
        {
            if (args == null)
            {
                Debug.Assert(false, "args == null");
                return(EnumCampaignPictureVoteResult.Failed);
            }

            CampaignEntity campaign = _campaignManager.GetCampaign(args.CampaignId);

            if (campaign == null)
            {
                return(EnumCampaignPictureVoteResult.Failed);
            }

            //状态是否进行中
            switch (campaign.Status)
            {
            case EnumCampaignStatus.Preparatory:
                return(EnumCampaignPictureVoteResult.NotStarted);

            case EnumCampaignStatus.End:
                return(EnumCampaignPictureVoteResult.AlreadyEnded);
            }

            //判断要投的项目是否已被锁定
            Campaign_PictureVoteItemEntity item = GetPictureVoteItem(args.ItemId);

            if (item == null)
            {
                return(EnumCampaignPictureVoteResult.Failed);
            }

            if (item.Lock)
            {
                return(EnumCampaignPictureVoteResult.Lock);
            }

            Campaign_PictureVoteEntity campaign_PictureVote = GetPictureVote(args.CampaignId);

            if (campaign_PictureVote == null)
            {
                return(EnumCampaignPictureVoteResult.Failed);
            }

            //是否允许非会员投票
            if (campaign_PictureVote.AllowedNoAttentionVote == false && args.Member == null)
            {
                return(EnumCampaignPictureVoteResult.OnlyMember);
            }

            //查出当前在此活动下的投票记录
            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@campaignId", args.CampaignId));
            parameterList.Add(new CommandParameter("@openId", args.OpenId));

            //根据投票方式判断是否按天投
            if (campaign_PictureVote.VoteType == EnumCampaignPictureVoteVoteType.Day)
            {
                List <Campaign_PictureVoteLogEntity> logList = _campaignManager.DataBase.Select <Campaign_PictureVoteLogEntity>(
                    @"SELECT * FROM [Campaign_PictureVoteLog] WHERE [CampaignId] = @campaignId AND [OpenId] = @openId 
                        AND Convert(varchar(10),[VoteTime],120) = Convert(varchar(10),CONVERT(datetime,'" + DateTime.Now.ToShortDateString() + "'),120)",
                    parameterList);

                //是否达到最大投票数
                if (logList.Count >= campaign_PictureVote.MaxVoteTimes)
                {
                    return(EnumCampaignPictureVoteResult.OverVoteTimesByDay);
                }

                if (logList.Count > 0)
                {
                    //是否给同一个项目投过票
                    if ((from c in logList where c.ItemId == args.ItemId select c).Count() > 0)
                    {
                        return(EnumCampaignPictureVoteResult.VotedByDay);
                    }
                }
            }
            else //NoRepetition
            {
                List <Campaign_PictureVoteLogEntity> logList = _campaignManager.DataBase.Select <Campaign_PictureVoteLogEntity>(
                    "SELECT * FROM [Campaign_PictureVoteLog] WHERE [CampaignId] = @campaignId AND [OpenId] = @openId",
                    parameterList);

                //是否达到最大投票数
                if (logList.Count >= campaign_PictureVote.MaxVoteTimes)
                {
                    return(EnumCampaignPictureVoteResult.OverVoteTimes);
                }

                if (logList.Count > 0)
                {
                    //是否给同一个项目投过票
                    if ((from c in logList where c.ItemId == args.ItemId select c).Count() > 0)
                    {
                        return(EnumCampaignPictureVoteResult.Voted);
                    }
                }
            }

            //投票
            Campaign_PictureVoteLogEntity log = new Campaign_PictureVoteLogEntity();

            log.CampaignId = args.CampaignId;
            log.Domain     = args.DomainId;
            log.ItemId     = args.ItemId;
            log.OpenId     = args.OpenId;
            log.Member     = args.Member;
            log.VoteTime   = DateTime.Now;

            _campaignManager.DataBase.Insert(log);

            parameterList = new List <CommandParameter>();
            parameterList.Add(new CommandParameter("@itemId", args.ItemId));

            _campaignManager.DataBase.ExecuteNonQuery("UPDATE [Campaign_PictureVoteItem] SET [VoteQuantity] = [VoteQuantity] + 1 WHERE [Id] = @itemId",
                                                      parameterList);

            return(EnumCampaignPictureVoteResult.Successful);
        }