/// <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)); }
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); }
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); } }
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); }
/// <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()); }
/// <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); }