This commit is contained in:
2025-04-24 18:31:27 +08:00
commit 9340f5253e
2796 changed files with 1387124 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Domain.Businesses.Sms
{
/// <summary>
/// 短信发送结果
/// </summary>
public class SmsSendResult
{
/// <summary>
/// 返回码。0:成功,-1:失败
/// </summary>
[JsonProperty("code")]
public string Code { get; set; }
/// <summary>
/// 消息
/// </summary>
[JsonProperty("message")]
public string Message { get; set; }
/// <summary>
/// 错误原因
/// </summary>
[JsonProperty("cause")]
public string Cause { get; set; }
/// <summary>
/// 是否请求成功
/// </summary>
/// <returns></returns>
public bool IsSuccess()
{
return Code == "0";
}
}
//{"code":"107","msgId":"","time":"20230511160907","errorMsg":"手机号码格式错误"}
public class SmsSend253Result
{
/// <summary>
/// 返回码。0:成功,非0都是:失败
/// </summary>
[JsonProperty("code")]
public string Code { get; set; }
/// <summary>
/// 错误消息内容
/// </summary>
public string ErrorMsg { get; set; }
/// <summary>
/// 时间戳
/// </summary>
public string time { get; set; }
/// <summary>
/// 是否请求成功
/// </summary>
/// <returns></returns>
public bool IsSuccess()
{
return Code == "0";
}
}
}

View File

@@ -0,0 +1,89 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Domain.Businesses.Sms
{
/// <summary>
/// 短信模板基类
/// </summary>
public abstract class SmsTemplateBase
{
/// <summary>
/// 参数字典
/// </summary>
protected Dictionary<string, object> ParamDict = new Dictionary<string, object>();
/// <summary>
/// 短信模板
/// </summary>
protected string Template { get; set; }
/// <summary>
/// 接收手机号码
/// </summary>
public string Phone { get; set; }
/// <summary>
/// 初始化一个<see cref="SmsTemplateBase"/>类型的实例
/// </summary>
/// <param name="template">短信模板</param>
protected SmsTemplateBase(string template)
{
Template = template;
}
/// <summary>
/// 设置 短信模板
/// </summary>
/// <param name="template">短信模板</param>
public void SetTemplate(string template)
{
Template = template;
}
/// <summary>
/// 添加参数
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
protected void Add(string key, object value)
{
if (string.IsNullOrEmpty(key))
{
return;
}
if (value ==null || string.IsNullOrEmpty(value.ToString()))
{
return;
}
ParamDict.Add(key, value);
}
/// <summary>
/// 初始化参数值
/// </summary>
protected abstract void InitParamValue();
/// <summary>
/// 格式化模板
/// </summary>
/// <returns></returns>
public string FormatTemplate()
{
InitParamValue();
var tpl = Template;
foreach (var param in ParamDict)
{
var value = param.Value.ToString();
tpl = tpl.Replace(param.Key, value);
}
return tpl;
}
}
}

View File

@@ -0,0 +1,54 @@
using MyCode.Project.Infrastructure.Constant;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static MyCode.Project.Infrastructure.Constant.GlobalConfig;
namespace MyCode.Project.Domain.Businesses.Sms.Templates
{
/// <summary>
/// 短信-消费成功模板
/// </summary>
public class SmsConsumptionSuccessTemplate : SmsTemplateBase
{
/// <summary>
/// 会员
/// </summary>
public string Member { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal Amount { get; set; } = 0;
/// <summary>
/// 积分
/// </summary>
public int Integral { get; set; } = 0;
/// <summary>
/// 微信公众号名
/// </summary>
public string WechatPublic { get; set; } = WechatConfigConst.WechatPublic;
/// <summary>
/// 初始化一个<see cref="SmsConsumptionSuccessTemplate"/>类型的实例
/// </summary>
public SmsConsumptionSuccessTemplate() : base(SmsTemplateConfigConst.ConsumptionSuccess)
{
}
/// <summary>
/// 初始化参数值
/// </summary>
protected override void InitParamValue()
{
Add(LxmConst.SmsTemplate.MEMBER_KEY, Member);
Add(LxmConst.SmsTemplate.AMOUNT_KEY, Amount.ToString("F"));
Add(LxmConst.SmsTemplate.INTEGRAL_KEY, Integral);
Add(LxmConst.SmsTemplate.WECHAT_PUBLIC_KEY, WechatPublic);
}
}
}

View File

@@ -0,0 +1,54 @@
using MyCode.Project.Infrastructure.Constant;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Domain.Businesses.Sms.Templates
{
/// <summary>
/// 短信-预约成功模板
/// </summary>
public class SmsPreOrderSuccessTemplate : SmsTemplateBase
{
/// <summary>
/// 订单时间
/// </summary>
public DateTime OrderTime { get; set; }
/// <summary>
/// 店铺
/// </summary>
public string Shop { get; set; }
/// <summary>
/// 服务
/// </summary>
public string Service { get; set; }
/// <summary>
/// 微信公众号名
/// </summary>
public string WechatPublic { get; set; } = WechatConfigConst.WechatPublic;
/// <summary>
/// 初始化一个<see cref="SmsPreOrderSuccessTemplate"/>类型的实例
/// </summary>
public SmsPreOrderSuccessTemplate() : base(SmsTemplateConfigConst.PreOrderSuccess)
{
}
/// <summary>
/// 初始化参数
/// </summary>
protected override void InitParamValue()
{
Add(LxmConst.SmsTemplate.MONTH_KEY, OrderTime.Month);
Add(LxmConst.SmsTemplate.DAY_KEY, OrderTime.Day);
Add(LxmConst.SmsTemplate.SHOP_KEY, Shop);
Add(LxmConst.SmsTemplate.SERVICE_KEY, Service);
Add(LxmConst.SmsTemplate.WECHAT_PUBLIC_KEY, WechatPublic);
}
}
}

View File

@@ -0,0 +1,47 @@
using MyCode.Project.Infrastructure.Constant;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Domain.Businesses.Sms.Templates
{
/// <summary>
/// 短信-充值成功模板
/// </summary>
public class SmsRechangeSuccessTemplate : SmsTemplateBase
{
/// <summary>
/// 充值金额
/// </summary>
public decimal Amount { get; set; } = 0;
/// <summary>
/// 余额
/// </summary>
public decimal Balance { get; set; } = 0;
/// <summary>
/// 微信公众号名
/// </summary>
public string WechatPublic { get; set; } = WechatConfigConst.WechatPublic;
/// <summary>
/// 初始化一个<see cref="SmsRechangeSuccessTemplate"/>类型的实例
/// </summary>
public SmsRechangeSuccessTemplate() : base(SmsTemplateConfigConst.RechangeSuccess)
{
}
/// <summary>
/// 初始化参数
/// </summary>
protected override void InitParamValue()
{
Add(LxmConst.SmsTemplate.RECHARGE_AMOUNT_KEY, Amount.ToString("F"));
Add(LxmConst.SmsTemplate.BALANCE_KEY, Balance.ToString("F"));
Add(LxmConst.SmsTemplate.WECHAT_PUBLIC_KEY, WechatPublic);
}
}
}

View File

@@ -0,0 +1,51 @@
using MyCode.Project.Infrastructure.Constant;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Domain.Businesses.Sms.Templates
{
/// <summary>
/// 短信-服务完成模板 亲爱的顾客,您在本店享受了【{s100}】服务,剩余服务【{s100}】,详情请打开小程序查看;小程序链接 {s50}
/// </summary>
public class SmsServiceFinishTemplate : SmsTemplateBase
{
public string CouponName { get; set; }
/// <summary>
/// 享受了【{s100}】服务
/// </summary>
public string ServiceString { get; set; }
/// <summary>
/// 剩余服务【{s100}】
/// </summary>
public string RemainingService { get; set; }
/// <summary>
/// 小程序链接 {s50}
/// </summary>
public string AppHtml { get; set; } = WechatConfigConst.AppHtml;//"【BINF流行美】"
/// <summary>
/// 初始化一个<see cref="SmsServiceFinishTemplate"/>类型的实例
/// </summary>
public SmsServiceFinishTemplate() : base(SmsTemplateConfigConst.ServiceFinish)
{
}
/// <summary>
/// 初始化参数值
/// </summary>
protected override void InitParamValue()
{
Add(LxmConst.SmsTemplate.ServiceString, ServiceString);
Add(LxmConst.SmsTemplate.RemainingService, RemainingService);
Add(LxmConst.SmsTemplate.AppHtml, AppHtml);
}
}
}