300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理

ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理

时间:2020-05-09 02:17:11

相关推荐

ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理

前言

回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂

你也可以按自己所分析的情形结构来建表

必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较多

思维导图

我这个人比较喜欢用思维导图来分析和表达一些模型:

表结构

根据思维导图,我们可以建立的表可以是3张表:消息表,规则表,类型表

消息表:实际的消息

规则表:文本、图文、语音等

类型表:文本、图文、语音(默认回复,订阅回复)

也可以是两张表:规制表,消息表(+一个类型字段)

我这里只设计一张表:消息表(+一个规则字段+一个类型字段)

设计表结构与个人的平时习惯有关系,我还是喜欢简单的东西,别为了设计而去专门设计,这样只会增加系统的复杂度

CREATE TABLE [dbo].[WC_MessageResponse]([Id] [varchar](50) NOT NULL, --主键 [OfficalAccountId] [varchar](50) NULL, --所属公众号[MessageRule] [int] NULL, --消息规则(枚举)[Category] [int] NULL,--类型(枚举)[MatchKey] [varchar](1000) NULL,--关键字[TextContent] [varchar](max) NULL, --文本内容[ImgTextContext] [varchar](max) NULL,--图文文本内容[ImgTextUrl] [varchar](1000) NULL, --图文图片URL[ImgTextLink] [varchar](1000) NULL, --图文图片超链接[MeidaUrl] [varchar](1000) NULL,--语音URL[MeidaLink] [varchar](1000) NULL, --语音超链接[Enable] [bit] NOT NULL, --是否启用[IsDefault] [bit] NOT NULL,--是否默认[Remark] [varchar](2000) NULL, --说明[Sort] [int] NOT NULL,--排序[CreateTime] [datetime] NOT NULL, --创建时间[CreateBy] [varchar](50) NOT NULL, --创建人[ModifyTime] [datetime] NOT NULL, --修改时间[ModifyBy] [varchar](50) NULL, --修改人CONSTRAINT [PK_WC_MessageResponse] PRIMARY KEY CLUSTERED ([Id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[WC_MessageResponse] WITH CHECK ADD CONSTRAINT [FK_WC_MessageResponse_WC_OfficalAcconts] FOREIGN KEY([OfficalAccountId])REFERENCES [dbo].[WC_OfficalAccounts] ([Id])ON DELETE CASCADEGOALTER TABLE [dbo].[WC_MessageResponse] CHECK CONSTRAINT [FK_WC_MessageResponse_WC_OfficalAcconts]GO

表对应了两个枚举和关联主表公众号管理的主表

公众号管理在70节

对应的枚举

public enum WeChatReplyCategory{//文本Text =1,//图文Image =2,//语音Voice =3,//相等,用于回复关键字Equal=4,//包含,用于回复关键字Contain = 5}public enum WeChatRequestRuleEnum{/// <summary>/// 默认回复,没有处理的/// </summary>Default =0,/// <summary>/// 关注回复/// </summary>Subscriber =1,/// <summary>/// 文本回复/// </summary>Text =2,/// <summary>/// 图片回复/// </summary>Image =3,/// <summary>/// 语音回复/// </summary>Voice =4,/// <summary>/// 视频回复/// </summary>Video =5,/// <summary>/// 超链接回复/// </summary>Link =6,/// <summary>/// LBS位置回复/// </summary>Location =7,}

枚举其实对应就是我省掉的其余两张表

到这里,相信表的设计已经非常清晰

后台代码

增删改查非常普通,主要关注点在前端,前端处理提交的消息中,必须包含规则,类型,来指定消息的最终表达

Controller BLL DAL

DAL层有必要来说明一下

默认回复和关注回复有3种类型:文本,图文,语音(但是只能有一种,所以有IsDefault字段来表明执行哪种回复)所以这两个规则必须另外处理,且看DAL的代码执行的SQL语句便明白。

所以我们尽情的设计前端吧!

前端如何设计?

我们来看一个思维导图:

前端完整代码

View Code

利用前端的思维导图,来快速理解前端代码,和应用于实际

总结

消息的管理是非常有技巧的一件事

1.消息在没有任务回复的情况 下,我们应该启用默认回复,要不用户会得不到回应,丢失体验

2.关键字的设计一般是一环扣一环,是有引导作用的

比如:关键字:(我要) 回复: 按1加入获得礼品一份,按2直接获得50元

关键字:(1) 回复: 按3获得铁观音茶一份,按4获得普洱茶

关键字:(3或4) 回复:请回复您的地址和电话及收件人

这样我们将获得系统与用户之间的完整对话,当然我们也要对用户最后的信息进行处理

参考代码:/cM9ffkutawueD 访问密码 2f0d

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。