ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简单的消息发送方法

2022-07-15 17:36:59  阅读:175  来源: 互联网

标签:Account return string 发送 static plan 简单 public 消息


using System.Collections.Generic;
using System;
using Newtonsoft.Json;
using MessgaeApi;

namespace MessageApi
{
    public class MessageHelper
    {
        static log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
        /// <summary>
        /// 发送方法传参数
        /// </summary>
        /// <param name="type"></param>
        /// <param name="templateId"></param>
        /// <param name="Account"></param>
        /// <param name="keyPairs"></param>
        /// <returns></returns>
        public static string SendMessage(int type, string templateId, string Account, Dictionary<string, string> keyPairs)
        {
            var plan = new MessagePlan()
            {
                SerialId = "M" + DateTime.Now.ToString("yyyyMMddHHmmssfff"),
                Type = type,
                TemplateId = templateId,
                Account = Account,
                KeyPairs = keyPairs
            };
            return SendMessage(plan);
        }
        /// <summary>
        /// 发送方法传实体
        /// </summary>
        /// <param name="plan"></param>
        /// <returns></returns>
        private static string SendMessage(MessagePlan plan)
        {
            var resMsg = "";
            var finalContent = "";
            try
            {
                if (plan == null) return "对象不能为null,请检查!";
                if (string.IsNullOrEmpty(plan.TemplateId)) return "模板id不能为空!";
                if (string.IsNullOrEmpty(plan.Account)) return "要发送的账户不能为空!";
                //替换信息
                finalContent = ReplaceContent(plan.KeyPairs, plan.TemplateId);
                switch (plan.Type)
                {
                    case 0:
                        resMsg = SendEms(plan.Account, finalContent);
                        break;
                    case 1:
                        resMsg = SendEmail(plan.Account, finalContent);
                        break;
                    case 2:
                        resMsg = SendQyWx(plan.Account, finalContent);
                        break;
                }
            }
            catch (Exception ex)
            {
                resMsg = ex.Message;
            }
            loginfo.Info($"请求对象:{ JsonConvert.SerializeObject(plan)},发送内容:{finalContent},发送结果:{resMsg}");
            return resMsg;
        }
        /// <summary>
        /// 替换内容
        /// </summary>
        /// <param name="keyPair"></param>
        /// <param name="temppateId"></param>
        /// <returns></returns>
        private static string ReplaceContent(Dictionary<string, string> keyPair, string templateId)
        {
            //根据id拿到待替换的内容
            string sourceContent = GetSourceCountById(templateId);
            if (string.IsNullOrEmpty(sourceContent)) return "";
            if (keyPair.Keys.Count == 0) return sourceContent;
            foreach (var item in keyPair)
            {
                sourceContent = sourceContent.Replace("{" + item.Key.Trim() + "}", item.Value.Trim());
            }
            return sourceContent;
        }
        /// <summary>
        /// 根据模板id拿到原始内容
        /// </summary>
        /// <param name="templateId"></param>
        /// <returns></returns>
        private static string GetSourceCountById(string templateId)
        {
            return "【短信】尊敬的:{Name},您的验证码是:{Code}";
        }

        private static string SendEms(string phone, string message)
        {
            return "success";
        }
        private static string SendEmail(string email, string message)
        {
            return "success";
        }
        private static string SendQyWx(string employeeNo, string message)
        {
           return  new QYWeChatHelper().SendMessage(employeeNo.Split(','), message);
        }
    }
    /// <summary>
    /// 消息实体
    /// </summary>
    public class MessagePlan
    {
        /// <summary>
        /// 序列号,建议 
        /// 1: DateTime.Now.ToString("yyyyMMddHHmmssfff");
        /// 2: Guid.NewGuid().ToString();  
        /// </summary>
        public string SerialId { get; set; }
        /// <summary>
        /// 消息类型 0 短信,1邮件,2企业微信
        /// </summary>
        public int Type { get; set; }
        /// <summary>
        /// 手机号或者邮件,或者企业微信员工账号,
        /// 多个用','隔开
        /// </summary>
        public string Account { get; set; }
        /// <summary>
        /// 模板id
        /// </summary>
        public string TemplateId { get; set; }
        /// <summary>
        /// key-value ,待替换的值
        /// </summary>
        public Dictionary<string, string> KeyPairs { get; set; }
        /// <summary>
        /// 附件地址
        /// </summary>
        public string AttachedUrl { get; set; }
    }
}

 

标签:Account,return,string,发送,static,plan,简单,public,消息
来源: https://www.cnblogs.com/request/p/16482188.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有