初始提交
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
|
||||
namespace MsgCenterClient
|
||||
{
|
||||
public class DataBodyAttribute : Attribute
|
||||
{
|
||||
public int Order { get; }
|
||||
|
||||
public DataBodyAttribute(int order)
|
||||
{
|
||||
Order = order;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace MsgCenterClient
|
||||
{
|
||||
public static class IServiceCollectionExtension
|
||||
{
|
||||
public static void AddMsgCenterClient(this IServiceCollection service, string baseUrl)
|
||||
{
|
||||
MsgCenterHttpClient._BaseUrl = baseUrl;
|
||||
|
||||
service.AddSingleton<MsgCenterHttpClient>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Http" Version="2.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Hncore.Infrastructure\Hncore.Infrastructure.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,79 @@
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Hncore.Infrastructure.Common;
|
||||
using Hncore.Infrastructure.Extension;
|
||||
using Hncore.Infrastructure.Serializer;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using MsgCenterClient.WechatMpTplMsg;
|
||||
|
||||
namespace MsgCenterClient
|
||||
{
|
||||
public class MsgCenterHttpClient
|
||||
{
|
||||
private IHttpClientFactory _httpClientFactory;
|
||||
|
||||
internal static string _BaseUrl = "";
|
||||
|
||||
public string BaseUrl => _BaseUrl;
|
||||
|
||||
public MsgCenterHttpClient(IHttpClientFactory httpClientFactory)
|
||||
{
|
||||
_httpClientFactory = httpClientFactory;
|
||||
}
|
||||
|
||||
private HttpClient CreateHttpClient()
|
||||
{
|
||||
return _httpClientFactory.CreateClient();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发送微信公众号模板消息
|
||||
/// </summary>
|
||||
/// <param name="msgBase"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> SendWechatMpTplMsg(MsgBase msgBase)
|
||||
{
|
||||
var body = msgBase.ToRequestObject();
|
||||
|
||||
try
|
||||
{
|
||||
var res = await CreateHttpClient()
|
||||
.PostAsJsonGetString(BaseUrl + "/api/msgcenter/v1/msg/SendMPTplMessage", body);
|
||||
|
||||
return res.FromJsonTo<ApiResult>();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogHelper.Error("发送微信公众号模板消息失败", e + "\n消息内容:\n" + body.ToJson(true));
|
||||
|
||||
return new ApiResult(ResultCode.C_UNKNOWN_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发送微信小程序模板消息
|
||||
/// </summary>
|
||||
/// <param name="msgBase"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> SendMiniAppTplMsg(MiniAppMsgBase msgBase)
|
||||
{
|
||||
var body = msgBase.ToRequestObject();
|
||||
|
||||
try
|
||||
{
|
||||
var res = await CreateHttpClient()
|
||||
.PostAsJsonGetString(BaseUrl + "/api/msgcenter/v1/msg/SendMiniAppTplMessage", body);
|
||||
|
||||
return res.FromJsonTo<ApiResult>();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogHelper.Error("发送小程序模板消息失败", e + "\n消息内容:\n" + body.ToJson(true));
|
||||
|
||||
return new ApiResult(ResultCode.C_UNKNOWN_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 访客审核通知
|
||||
/// 模板编号:ku4vArgTpMOvwBeKQpjj6iE1nhVJyHL9xeQUjkUv5sY
|
||||
/// 公众号模板库模板标题:认证成功通知
|
||||
/// </summary>
|
||||
public class FangKeShenHeMsg : MiniAppMsgBase
|
||||
{
|
||||
public FangKeShenHeMsg(int ownerId, string appId, string openId)
|
||||
: base("ku4vArgTpMOvwBeKQpjj6iE1nhVJyHL9xeQUjkUv5sY", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 审核结果
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem ShenHeJieGuo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 受访单位
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ShouFangDanWei { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 事由
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem ShiYou { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 访客姓名
|
||||
/// </summary>
|
||||
[DataBody(4)]
|
||||
public DataItem FangKeXingMing { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机号
|
||||
/// </summary>
|
||||
[DataBody(5)]
|
||||
public DataItem ShouJi { get; set; }
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
[DataBody(6)]
|
||||
public DataItem BeiZhu { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
public class MiniAppMsgBase
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="templateId">模板Id</param>
|
||||
/// <param name="ownerId">物业Id</param>
|
||||
/// <param name="appId">公众号AppId</param>
|
||||
/// <param name="openId">用户OpenId</param>
|
||||
public MiniAppMsgBase(string templateId, int ownerId, string appId, string openId)
|
||||
{
|
||||
TemplateId = templateId;
|
||||
OwnerId = ownerId;
|
||||
AppId = appId;
|
||||
OpenId = openId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 模板Id
|
||||
/// </summary>
|
||||
public string TemplateId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 物业Id
|
||||
/// </summary>
|
||||
public int OwnerId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 公众号AppId
|
||||
/// </summary>
|
||||
public string AppId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户openId
|
||||
/// </summary>
|
||||
public string OpenId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 跳转的小程序页面
|
||||
/// </summary>
|
||||
public string Page { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表单id
|
||||
/// </summary>
|
||||
public string FormId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 强调的字,可以为空
|
||||
/// </summary>
|
||||
public string EmphasisKeyword { get; set; }
|
||||
|
||||
public object ToRequestObject()
|
||||
{
|
||||
SortedDictionary<int, DataItem> bodyDic = new SortedDictionary<int, DataItem>();
|
||||
|
||||
var type = GetType();
|
||||
var properties = type.GetProperties();
|
||||
|
||||
foreach (var property in properties)
|
||||
{
|
||||
var bodyAttr = property.GetCustomAttributes(typeof(DataBodyAttribute), false);
|
||||
|
||||
if (!bodyAttr.Any())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int order = ((DataBodyAttribute) bodyAttr[0]).Order;
|
||||
|
||||
DataItem value = property.GetValue(this, null) as DataItem;
|
||||
|
||||
if (value == null)
|
||||
{
|
||||
value = new DataItem();
|
||||
}
|
||||
|
||||
bodyDic[order] = value;
|
||||
}
|
||||
|
||||
return new
|
||||
{
|
||||
key = TemplateId,
|
||||
OwnerId = OwnerId,
|
||||
From = AppId,
|
||||
To = OpenId,
|
||||
Content = new
|
||||
{
|
||||
page=this.Page,
|
||||
form_id=this.FormId,
|
||||
emphasis_keyword=this.EmphasisKeyword,
|
||||
items = bodyDic.Values.Select(t => new {value = t.Value, color = t.Color}).ToList()
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 虚拟资产冲抵成功通知
|
||||
/// 模板编号:OPENTM417732701
|
||||
/// </summary>
|
||||
public class AssetDeductSuccessMsg : MsgBase
|
||||
{
|
||||
public AssetDeductSuccessMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM417732701", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 账单应缴总金额
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem Amount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前余额(账单金额冲抵后结存金额)
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem BalanceAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 扣款时间(账单冲抵完成时间)
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem SuccessTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 扣款方式(默认为:余额冲抵)
|
||||
/// </summary>
|
||||
[DataBody(4)]
|
||||
public DataItem PayType { get; set; }=new DataItem(){Value = "余额冲抵"};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 虚拟资产冲抵失败通知
|
||||
/// 模板编号:OPENTM414769357
|
||||
/// </summary>
|
||||
public class AssetDeductFailMsg : MsgBase
|
||||
{
|
||||
public AssetDeductFailMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM414769357", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 扣费时间(所有账单扣费失败时间)
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem FailTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 扣费金额(所有冲抵失败账单的金额总和)
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem Amount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 账户余额(虚拟帐户中剩余金额)
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem BalanceAmount { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 车辆审核不通过通知
|
||||
/// 模板编号:OPENTM408157154
|
||||
/// 公众号模板库模板标题:审核不过通知
|
||||
/// </summary>
|
||||
public class CheLiangShenHeShiBaiMsg: MsgBase
|
||||
{
|
||||
public CheLiangShenHeShiBaiMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM408157154", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 姓名
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem XingMing { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机号
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ShouJiHao { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 车辆审核申请提交成功通知
|
||||
/// 模板编号:OPENTM411517700
|
||||
/// 公众号模板库模板标题:申请提交成功通知
|
||||
/// </summary>
|
||||
public class CheLiangShenHeTiJiaoMsg: MsgBase
|
||||
{
|
||||
public CheLiangShenHeTiJiaoMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM411517700", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 服务类型
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem FuWuLeiXing { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 提交时间
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem TiJiaoShiJian { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 车辆审核通过通知
|
||||
/// 模板编号:OPENTM416664350
|
||||
/// 公众号模板库模板标题:审核通过提醒
|
||||
/// </summary>
|
||||
public class CheLiangShenHeTongGuoMsg: MsgBase
|
||||
{
|
||||
public CheLiangShenHeTongGuoMsg( int ownerId, string appId, string openId)
|
||||
: base("OPENTM416664350", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 姓名
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem XingMing { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机号
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ShouJiHao { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 车牌号
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem ChePaiHao { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核时间
|
||||
/// </summary>
|
||||
[DataBody(4)]
|
||||
public DataItem ShenHeShiJian { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
public class DataItem
|
||||
{
|
||||
public string Value { get; set; } = "";
|
||||
|
||||
//
|
||||
// 摘要:
|
||||
// 16进制颜色代码,如:#FF0000
|
||||
public string Color { get; set; } = "#173177";
|
||||
|
||||
public DataItem()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public DataItem(string value)
|
||||
{
|
||||
Value = value;
|
||||
}
|
||||
|
||||
public DataItem(string value, string color)
|
||||
{
|
||||
Value = value;
|
||||
Color = color;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
public class FangKeDengJiTongZhi : MsgBase
|
||||
{
|
||||
public FangKeDengJiTongZhi(int ownerId, string appId, string openId)
|
||||
: base("OPENTM417110808", ownerId, appId, openId)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem Name { get; set; }
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem Company { get; set; }
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem Reason { get; set; }
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
[DataBody(4)]
|
||||
public DataItem Time { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 房屋认证成功通知
|
||||
/// 模板编号:OPENTM403179452
|
||||
/// 公众号模板库模板标题:认证成功通知
|
||||
/// </summary>
|
||||
public class FangWuRenZhengChengGongMsg : MsgBase
|
||||
{
|
||||
public FangWuRenZhengChengGongMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM403179452", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 认证类型
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem RenZhengLeiXing { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核结果
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ShenHeJieGuo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核时间
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem ShenHeShiJian { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 房屋认证失败通知
|
||||
/// 模板编号:OPENTM403179639
|
||||
/// 公众号模板库模板标题:认证失败通知
|
||||
/// </summary>
|
||||
public class FangWuRenZhengShiBaiMsg: MsgBase
|
||||
{
|
||||
public FangWuRenZhengShiBaiMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM403179639", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 认证类型
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem RenZhengLeiXing { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核结果
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ShenHeJieGuo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核时间
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem ShenHeShiJian { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结果描述
|
||||
/// </summary>
|
||||
[DataBody(4)]
|
||||
public DataItem JieGuoMiaoShu { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 工单处理完结
|
||||
/// 模板编号:OPENTM201820050
|
||||
/// 公众号模板库模板标题:工单进度通知
|
||||
/// </summary>
|
||||
public class GongDanWanJieMsg: MsgBase
|
||||
{
|
||||
public GongDanWanJieMsg( int ownerId, string appId, string openId)
|
||||
: base("OPENTM201820050", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 工单号
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem GongDanHao { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单进度
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem GongDanJinDu { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单处理人
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem GongDanChuLiRen { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 缴费成功通知
|
||||
/// 模板编号:OPENTM412117951
|
||||
/// 公众号模板库模板标题:缴费成功通知
|
||||
/// </summary>
|
||||
public class JiaoFeiChengGongMsg : MsgBase
|
||||
{
|
||||
public JiaoFeiChengGongMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM412117951", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 缴费时间
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem JiaoFeiShiJian { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 缴费方式
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem JiaoFeiFangShi { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 缴费金额
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem JiaoFeiJinE { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 接单通知
|
||||
/// 模板编号:OPENTM201820050
|
||||
/// 公众号模板库模板标题:工单进度通知
|
||||
/// </summary>
|
||||
public class JieDanMsg: MsgBase
|
||||
{
|
||||
public JieDanMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM201820050", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 工单号
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem GongDanHao { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单进度
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem GongDanJinDu { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单处理人
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem GongDanChuLiRen { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 临时到访通知
|
||||
/// 模板编号:5NE7oojOE4jhUpv8bixYqWgfkqcOInVBTjb_lHWPrSw
|
||||
/// 公众号模板库模板标题:物业管理通知
|
||||
/// </summary>
|
||||
public class LinShiDaoFangMsg: MsgBase
|
||||
{
|
||||
public LinShiDaoFangMsg(int ownerId, string appId, string openId)
|
||||
: base("5NE7oojOE4jhUpv8bixYqWgfkqcOInVBTjb_lHWPrSw", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem BiaoTi { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发布时间
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem FaBuShiJian { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 内容
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem NeiRong { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 门禁钥匙授权通知
|
||||
/// 模板编号:OPENTM408634701
|
||||
/// 公众号模板库模板标题:授权成功通知
|
||||
/// </summary>
|
||||
public class MenJinYaoShiShouQuanMsg: MsgBase
|
||||
{
|
||||
public MenJinYaoShiShouQuanMsg( int ownerId, string appId, string openId)
|
||||
: base("OPENTM408634701", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 授权人
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem ShouQunRen { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 被授权人
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem BeiShouQunRen { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 授权状态
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem ShouQuanZhuangTai { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
public class MsgBase
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="templateId">模板Id</param>
|
||||
/// <param name="ownerId">物业Id</param>
|
||||
/// <param name="appId">公众号AppId</param>
|
||||
/// <param name="openId">用户OpenId</param>
|
||||
public MsgBase(string templateId, int ownerId, string appId, string openId)
|
||||
{
|
||||
TemplateId = templateId;
|
||||
OwnerId = ownerId;
|
||||
AppId = appId;
|
||||
OpenId = openId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 头部内容
|
||||
/// </summary>
|
||||
public DataItem Head { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 底部内容
|
||||
/// </summary>
|
||||
public DataItem Foot { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 模板Id
|
||||
/// </summary>
|
||||
public string TemplateId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 物业Id
|
||||
/// </summary>
|
||||
public int OwnerId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 公众号AppId
|
||||
/// </summary>
|
||||
public string AppId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户openId
|
||||
/// </summary>
|
||||
public string OpenId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 跳转的Url
|
||||
/// </summary>
|
||||
public string Url { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 跳转的小程序的Appid,为空的话默认跳转h5指定的url
|
||||
/// </summary>
|
||||
public string MiniAppId { get; set; }
|
||||
|
||||
|
||||
public object ToRequestObject()
|
||||
{
|
||||
SortedDictionary<int, DataItem> bodyDic = new SortedDictionary<int, DataItem>();
|
||||
|
||||
var type = GetType();
|
||||
var properties = type.GetProperties();
|
||||
|
||||
foreach (var property in properties)
|
||||
{
|
||||
var bodyAttr = property.GetCustomAttributes(typeof(DataBodyAttribute), false);
|
||||
|
||||
if (!bodyAttr.Any())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int order = ((DataBodyAttribute) bodyAttr[0]).Order;
|
||||
|
||||
DataItem value = property.GetValue(this, null) as DataItem;
|
||||
|
||||
if (value == null)
|
||||
{
|
||||
value = new DataItem();
|
||||
}
|
||||
|
||||
bodyDic[order] = value;
|
||||
}
|
||||
|
||||
return new
|
||||
{
|
||||
key = TemplateId,
|
||||
Content = new
|
||||
{
|
||||
Url,
|
||||
MiniAppId,
|
||||
first = new
|
||||
{
|
||||
value = Head?.Value,
|
||||
color = Head?.Color
|
||||
},
|
||||
remark = new
|
||||
{
|
||||
value = Foot?.Value,
|
||||
color = Foot?.Color
|
||||
},
|
||||
items = bodyDic.Values.Select(t => new {value = t.Value, color = t.Color}).ToList()
|
||||
},
|
||||
OwnerId = OwnerId,
|
||||
From = AppId,
|
||||
To = OpenId
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 派工通知
|
||||
/// 模板编号:OPENTM201820050
|
||||
/// 公众号模板库模板标题:工单进度通知
|
||||
/// </summary>
|
||||
public class PaiGongMsg: MsgBase
|
||||
{
|
||||
public PaiGongMsg( int ownerId, string appId, string openId)
|
||||
: base("OPENTM201820050", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 工单号
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem GongDanHao { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单进度
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem GongDanJinDu { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单处理人
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem GongDanChuLiRen { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 人脸钥匙认证成功通知
|
||||
/// 模板编号:OPENTM403179452
|
||||
/// 公众号模板库模板标题:认证成功通知
|
||||
/// </summary>
|
||||
public class RenLianRenZhengChengGongMsg: MsgBase
|
||||
{
|
||||
public RenLianRenZhengChengGongMsg( int ownerId, string appId, string openId)
|
||||
: base("OPENTM403179452", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 认证类型
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem RenZhengLeiXing { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核结果
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ShenHeJieGuo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核时间
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem ShenHeShiJian { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 人脸钥匙认证失败通知
|
||||
/// 模板编号:OPENTM403179639
|
||||
/// 公众号模板库模板标题:认证失败通知
|
||||
/// </summary>
|
||||
public class RenLianRenZhengShiBaiMsg: MsgBase
|
||||
{
|
||||
public RenLianRenZhengShiBaiMsg( int ownerId, string appId, string openId)
|
||||
: base("OPENTM403179639", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 认证类型
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem RenZhengLeiXing { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核结果
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ShenHeJieGuo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核时间
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem ShenHeShiJian { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结果描述
|
||||
/// </summary>
|
||||
[DataBody(4)]
|
||||
public DataItem JieGuoMiaoShu { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 催费通知(手动催缴)
|
||||
/// 模板编号:OPENTM411227201
|
||||
/// 公众号模板库模板标题:待付账单通知
|
||||
/// </summary>
|
||||
public class ShouDongCuiJiaoMsg : MsgBase
|
||||
{
|
||||
public ShouDongCuiJiaoMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM411227201", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 账单金额
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem ZhangDanJinE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 账单日期
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ZhangDanRiQi { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 邀请访客到访通知
|
||||
/// 模板编号:rKssp0BPmK-XmGXCbrh3f6e9NVpb75Zqzui8Hcx26dE
|
||||
/// 公众号模板库模板标题:来访通知
|
||||
/// </summary>
|
||||
public class YaoYueDaoFangMsg: MsgBase
|
||||
{
|
||||
public YaoYueDaoFangMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM408101810", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 访客名称
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem FangKeMingCheng { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 访客电话
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem FangKeDianHua { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 来访时间
|
||||
/// </summary>
|
||||
[DataBody(3)]
|
||||
public DataItem LaiFangShiJian { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace MsgCenterClient.WechatMpTplMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// 催费通知(自动催缴)
|
||||
/// 模板编号:OPENTM411227201
|
||||
/// 公众号模板库模板标题:待付账单通知
|
||||
/// </summary>
|
||||
public class ZiDongCuiJiaoMsg : MsgBase
|
||||
{
|
||||
public ZiDongCuiJiaoMsg(int ownerId, string appId, string openId)
|
||||
: base("OPENTM411227201", ownerId, appId, openId)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 账单金额
|
||||
/// </summary>
|
||||
[DataBody(1)]
|
||||
public DataItem ZhangDanJinE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 账单日期
|
||||
/// </summary>
|
||||
[DataBody(2)]
|
||||
public DataItem ZhangDanRiQi { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user