/// <summary> /// 粉丝海报 /// </summary> /// <param name="args"></param> /// <returns></returns> public GetMemberQRCodeImageResult GetMemberQRCodeImage(GetCampaign_MemberQRCodeImageArgs args) { GetMemberQRCodeImageResult result; HttpRequestArgs requestArgs = new HttpRequestArgs(); requestArgs.Method = "POST"; requestArgs.Url = _fileServiceUri + "MemberQRCode/GetMemberQRCodeImage"; requestArgs.Content = JsonConvert.SerializeObject(args); _log.Write("向文件服务器发起 GetMemberQRCodeImage 请求", requestArgs.Content, TraceEventType.Verbose); HttpRequestResult requestResult = _httpService.Request(requestArgs); if (requestResult.Success) { _log.Write("文件服务器 GetMemberQRCodeImage 返回", requestResult.Content, TraceEventType.Verbose); result = JsonConvert.DeserializeObject <GetMemberQRCodeImageResult>(requestResult.Content); } else { result = new GetMemberQRCodeImageResult(); result.Message = requestResult.Exception.Message; } return(result); }
public NormalResult <Campaign_MemberQRCodeItemEntity> CreateMemberQRCodeItem(DomainContext domainContext, Guid campaignId, Guid memberId) { NormalResult <Campaign_MemberQRCodeItemEntity> result = new NormalResult <Campaign_MemberQRCodeItemEntity>(); //判断有没有超过最大参与人数 //if (MemberQRCodeIsFullParticipant(campaignId)) //{ // result.Success = false; // result.Message = "该活动已达最大允许参与人数。"; // return result; //} Campaign_MemberQRCodeEntity campaignMemberQRCode = GetMemberQRCode(campaignId); if (campaignMemberQRCode == null) { result.Success = false; result.Message = "指定的活动不存在。"; return(result); } string landingUrl = String.Format(_campaignManager.SettingsManager.GetClientAddress(domainContext) + "Campaign/MemberQRCodeLanding/{0}?campaignId={1}&memberId={2}", campaignMemberQRCode.Domain, campaignId, memberId); GetCampaign_MemberQRCodeImageArgs args = new GetCampaign_MemberQRCodeImageArgs(); args.BackgroundImageId = campaignMemberQRCode.BackgroundImageId; args.LandingUrl = landingUrl; args.Domain = campaignMemberQRCode.Domain; args.MemberId = memberId; GetMemberQRCodeImageResult getMemberQRCodeImageResult = _campaignManager.FileService.GetMemberQRCodeImage(args); if (getMemberQRCodeImageResult.Success == false) { result.Success = false; result.Message = getMemberQRCodeImageResult.Message; return(result); } Campaign_MemberQRCodeItemEntity item = new Campaign_MemberQRCodeItemEntity(); item.CampaignId = campaignId; item.CreateTime = DateTime.Now; item.Domain = campaignMemberQRCode.Domain; item.Member = memberId; item.QRCodeUrl = _campaignManager.FileService.FileServiceUri + getMemberQRCodeImageResult.FileName; _campaignManager.DataBase.Insert(item); result.Success = true; result.Data = item; return(result); }
public ActionResult GetMemberQRCodeImage() { GetCampaign_MemberQRCodeImageArgs args = RequestArgs <GetCampaign_MemberQRCodeImageArgs>(); GetMemberQRCodeImageResult result = new GetMemberQRCodeImageResult(); if (args == null) { result.Message = "参数无效。"; return(new ContentResult() { Content = JsonConvert.SerializeObject(result) }); } string serverRootDir = Server.MapPath("/"); result = _memberQRCodeManager.GetMemberQRCodeImage(serverRootDir, args); return(new ContentResult() { Content = JsonConvert.SerializeObject(result) }); }
internal GetMemberQRCodeImageResult GetMemberQRCodeImage(string serverRootDir, GetCampaign_MemberQRCodeImageArgs args) { GetMemberQRCodeImageResult result = new GetMemberQRCodeImageResult(); if (args == null || String.IsNullOrEmpty(args.LandingUrl)) { result.Message = "参数不正确"; return(result); } MemberEntity member = _memberManager.GetMember(args.MemberId); if (member == null) { result.Message = "会员信息不存在"; return(result); } FileRecord fileRecord = _fileManager.Get(args.BackgroundImageId); if (fileRecord == null) { result.Message = "背景图信息不存在"; return(result); } string backgroundImageFile = Path.Combine(serverRootDir, String.Format("FileStore/{0}/{1}", args.Domain, fileRecord.StoredFileName)); if (File.Exists(backgroundImageFile) == false) { result.Message = "背景图文件不存在"; return(result); } FileDownloadAgentArgs downloadArgs = new FileDownloadAgentArgs(); downloadArgs.Domain = args.Domain; downloadArgs.Url = member.Headimgurl_96; downloadArgs.ServerRootDir = serverRootDir; FileDownloadAgentResult downloadResult = _fileManager.Download(downloadArgs); if (downloadResult.Success == false) { result.Message = downloadResult.Message; return(result); } string headImageFile = Path.Combine(serverRootDir, downloadResult.OutputFile); Image qrImage = null; Image backgroundImage = null; Image headImage = null; try { qrImage = QRCodeHelper.GetQRCode(args.LandingUrl); if (qrImage == null) { result.Message = "二维码生成失败。"; return(result); } backgroundImage = Image.FromFile(backgroundImageFile); Graphics g = Graphics.FromImage(backgroundImage); //qrImage float x = backgroundImage.Width - qrImage.Width - 20; float y = backgroundImage.Height - qrImage.Height - 20; g.DrawImage(qrImage, x, y); //headImage x = 20; y = backgroundImage.Height - 20 - 96; headImage = Image.FromFile(headImageFile); g.DrawImage(headImage, x, y, 96, 96); ////nickName //Font font = new Font("黑体", 35f); //x = 96 + 40; //y = backgroundImage.Height - font.Size - 50; //g.DrawString(member.NickName, font, Brushes.Black, new PointF(x, y)); g.Save(); string targetDir = Path.Combine(serverRootDir, "FileStore", args.Domain.ToString()); string storeFileName = Guid.NewGuid().ToString() + ".jpg"; string outputFileName = Path.Combine(targetDir, storeFileName); backgroundImage.Save(outputFileName, ImageFormat.Jpeg); result.Success = true; result.FileName = String.Format("FileStore/{0}/{1}", args.Domain, storeFileName); } catch (Exception ex) { result.Message = ex.Message; } finally { if (qrImage != null) { qrImage.Dispose(); } if (backgroundImage != null) { backgroundImage.Dispose(); } if (headImage != null) { headImage.Dispose(); } } return(result); }