/// <summary> /// 众筹发消息 /// </summary> /// <param name="msgId"></param> /// <param name="appId"></param> /// <param name="endTime"></param> /// <param name="content"></param> public void SendMessage(Guid msgId, Guid appId, DateTime?endTime, CrowdfundingMessageDTO content) { //给邀请人发送系统消息 //调用消息中心发消息 //定义消息内容 MobileMessageDTO messageDTO = new MobileMessageDTO(); messageDTO.MessageType = JAP.BaseApp.MessageCenter.Deploy.Enum.MessageType.BUSI_MSG; messageDTO.AppId = appId.ToString().ToLower(); messageDTO.BasicContentDTO = new BasicContentDTO(); messageDTO.BasicContentDTO.Code = "CfStateChange";//"BTPShareRedEnvelope"; messageDTO.ProductType = JAP.BaseApp.MessageCenter.Deploy.Enum.ProductType.BTP; //messageDTO.ProductSecondType = 3; DataContractJsonSerializer json = new DataContractJsonSerializer(content.GetType()); string szJson = ""; //序列化 using (MemoryStream stream = new MemoryStream()) { json.WriteObject(stream, content); szJson = Encoding.UTF8.GetString(stream.ToArray()); } messageDTO.BasicContentDTO.Content = szJson.Replace("\"", "\\\""); //messageDTO.Content = szJson.Replace("\"", "\\\""); ; if (endTime != null) { messageDTO.EndTime = (DateTime)endTime; } //接收人邀请人Id messageDTO.UserIds = "[]"; PublishMobileMessageFacade facade = new PublishMobileMessageFacade(); try { facade.AddMessage(messageDTO); //LogHelper.Info("众筹状态改变消息内容:" + messageDTO.AppId + ":" + messageDTO.BasicContentDTO.Content); LogHelper.Info(string.Format("众筹状态改变消息内容。messageDTO:{0}", JsonHelper.JsonSerializer(messageDTO))); } catch (Exception ex) { LogHelper.Error(string.Format("发送众筹状态改变消息异常。messageDTO:{0}", JsonHelper.JsonSerializer(messageDTO)), ex); // JAP.Common.Loging.LogHelper.Error("发送众筹状态改变消息异常", ex); } }
/// <summary> /// 添加众筹 /// </summary> /// <param name="crowdfundingDTO">众筹实体</param> public ResultDTO AddCrowdfundingExt(Jinher.AMP.BTP.Deploy.CrowdfundingDTO crowdfundingDTO) { if (crowdfundingDTO == null) { return new ResultDTO { ResultCode = 2, Message = "入参不能为空" } } ; if (crowdfundingDTO.AppId == Guid.Empty) { return new ResultDTO { ResultCode = 2, Message = "请正确填写应用" } } ; var dividendPercent = crowdfundingDTO.DividendPercent * crowdfundingDTO.ShareCount; if (dividendPercent > CustomConfig.CrowdfundingConfig.MaxDividend) { return new ResultDTO { ResultCode = 2, Message = "您的订单成交额已不足抵扣分红,请重新设置!" } } ; if (crowdfundingDTO.StartTime < DateTime.Now) { return(new ResultDTO { ResultCode = 2, Message = "众筹开始时间必须大于当前时间!" }); } string message = "Success"; try { var tmp = Crowdfunding.ObjectSet().FirstOrDefault(c => c.AppId == crowdfundingDTO.AppId); if (tmp != null) { return new ResultDTO { ResultCode = 3, Message = "该应用已经参加众筹活动,不能重复添加" } } ; Dictionary <Guid, string> list = APPSV.GetAppNameListByIds(new List <Guid> { crowdfundingDTO.AppId }); if (list == null || !list.Any() || !list.ContainsKey(crowdfundingDTO.AppId) || list[crowdfundingDTO.AppId] != crowdfundingDTO.AppName.Trim()) { return new ResultDTO { ResultCode = 2, Message = "应用Id与名称不符" } } ; ContextSession contextSession = ContextFactory.CurrentThreadContext; //保存众筹 Crowdfunding entity = Crowdfunding.CreateCrowdfunding(); entity.AppName = crowdfundingDTO.AppName; entity.AppId = crowdfundingDTO.AppId; entity.PerShareMoney = crowdfundingDTO.PerShareMoney; entity.DividendPercent = crowdfundingDTO.DividendPercent; entity.ShareCount = crowdfundingDTO.ShareCount; entity.StartTime = crowdfundingDTO.StartTime; entity.State = 0; entity.Slogan = crowdfundingDTO.Slogan; entity.Description = crowdfundingDTO.Description; contextSession.SaveObject(entity); //保存众筹计数表 CrowdfundingCount cnt = CrowdfundingCount.CreateCrowdfundingCount(); cnt.AppId = entity.AppId; cnt.CrowdfundingId = entity.Id; cnt.ShareCount = entity.ShareCount; contextSession.SaveObject(cnt); contextSession.SaveChanges(); if (dividendPercent > CustomConfig.CrowdfundingConfig.WarnDividend) { message = string.Format("您的分红支出已超{0:P0},请注意收支平衡!", CustomConfig.CrowdfundingConfig.WarnDividend); } CrowdfundingMessageDTO Message = new CrowdfundingMessageDTO(); Message.Now = DateTime.Now; Message.StartTime = entity.StartTime; Message.State = -1; AddMessage addMessage = new AddMessage(); addMessage.SendMessage(entity.Id, entity.AppId, entity.StartTime, Message); } catch (Exception ex) { LogHelper.Error(string.Format("添加众筹服务异常。crowdfundingDTO:{0}", crowdfundingDTO), ex); return(new ResultDTO { ResultCode = 1, Message = "Error" }); } return(new ResultDTO { ResultCode = 0, Message = message }); }