小程序项目业务逻辑回忆5

总体数据库设计思路

按业务流程及UI界面来顺

1.首先是微信手机号授权注册----基础数据表格users用户信息表,记录用户姓名、手机号、性别、证件类型及号码、公司及其职务、邮箱等常规信息。
2.进入到首页,首页最上方有活动宣传轮播图与展会总体活动滚动字幕----轮播图homecarousel轮播图+events总体活动表

轮播图应存储轮播图图片url路径,总体活动表中存储滚动消息内容,皆为举办商上传

3.首页中间为各个功能模块功能

活动概况----event_overview_images活动概况图表存储概况总览介绍图片,用以用户查询活动概况页了解活动

平面导览----events_venue_images用以存储场馆平面图url,展示现场分布情况参加展商与规模等情况

展商名录----exhibitors展商信息表,用以用户查询展商列表,展商可关键词分类检索,点开展商列表中的某一展商可显示展商详情,详情页可记录点赞likes_number、收藏collections_numbers、view_number浏览.展商的图表logo、展商名称、展位号、文字介绍、展示图片、联系方式等常规信息都应记录,下方有生成海报按钮,海报上展现出展商名称展位号与活动分享url图片二维码poster_url记录在events总体活动表中,目前events主键固定值为1,后续活动程序复用陆续主键为2、3等等。

并且展商详情下面可以预约展商----appointment预约信息表,记录用户id、预约类型appointment_type(可为会议\workshop\展商)、target预约目标id为展商exhibitors的id,预约开始时间结束时间与预约创建时间

并且可以查询嘉宾信息----guests嘉宾表,记录着嘉宾的名称职位公司头像联系方式及详情介绍等信息

展会动态----expo_news展会动态表用以用户查询展会动态,列表按时间排序,点开可看详情.包含标题title主图main_image_url、发布时间publishtime,详情内容长图content_images_url,summary内容摘要等、status状态等

会议日程----用以用户查询会议展示,上半页展示活动概况文本overview与活动议程图片agenda_image_url,下半页为会议主题分类查询,涉及表meeting_categories、meetings、meeting_guests、guests

workshop---模块与会议日程功能相似,用户均可以添加预约会议和workshop,预约信息表appointment,其中user_id、appointment_type、target_id去定位是谁预约了会议/workshop/展商中的具体哪个会议

嘉宾信息---用户查询嘉宾信息

我的预约----meetings/workshop预约前端标蓝、exhibitors展商预约前端标红。同样meetings、workshop、exhibitors中的表格信息按appointment表格中appointment_type和target_id去定位

4.首页下方展示会议动态文字与文字介绍,接口复用展会动态模块即可

5.首页最下方还有模块选择,用以切换首页页面

我的票劵----可展示会议门票已激活数量及详情列表、未激活数量及详情列表、赠送记录数及详情列表,及展览门票

用户未购买会议门票,会有前端按钮来进行会议购票进入会议购票,先进入购买须知界面,可以前段写死也可以设计数据库进行记录,购票界面可以购买普通票、学生票、贵宾票、指定日期票,在tickets数据表中通过name和price字段去记录.展览门票一样没有预约,点击注册展览门票按钮直接注册生成记录到signin_record签到信息表记录生效,而会议门票需激活后才会记录到signin_records表中记录生效

注册展览门票首先要核验个人信息,个人信息核验无误后进入问卷调查,问卷调查通过surveyquestions问卷问题表和questionsoptions问题选项表去记录复选问题的记录数据,方便举办商通过后台程序查看数据统计情况,questionoptions外键surveyquestions的主键id即可,questionoptions中的sum字段统计选项被选次数,每次记录次数+1即可,毕竟最终只要一份统计数据,signin_record中还应记录code_url用以现场校验到参观服务处换取参观证件,用户勾选买票订单各个票据的数量后下单即可.拥有会议门票,可凭借会议门票证件参观所有会场及展厅,即展览门票就无需注册了,前端页面处理即可

用户转增接收票劵、用户接收票劵业务 当且仅当order_items门票-订单关联表中票劵状态code_status为未激活状态门票才能转赠,转赠后更改当前拥有者的用户ID即current_owner_id.查询用户赠送记录,即原始购买人是本用户用户但当前拥有者不是本用户在数据库中查询的记录即为赠送记录,查询用户接受记录即查询原始购买人不是本用户但当前拥有者是本用户得记录.

同期活动----用户查询同期活动和用户预约同期活动,concurrent_events同期活动表,concurrent_event_user用户预约同期活动表,同期活动ID即concurrent_events_id记录在用户预约同期活动表中,当用户进行同期活动预约时,更改user_id为登录用户ID,同期活动concurrent_events除了记录标题、副标题、主图、活动时间、地点、概况、详情介绍等常规信息外还应记录最大预约数量max_reservation_number、已预约数量already_reservation_number、当前可预约状态status,并展示给前端,当预约人数已满时用户不可再预约。

我的邀请----用户点击我要邀请即可邀请其他用户,将请求地址+邀请码invitationCode返回给前端,由前段完成微信朋友转发页面交互,其他用户点开邀请链接,首先判断用户是否为新用户,如果为老用户则直接跳转到首页,新用户跳转到新用户注册页面完成个人注册并将邀请人邀请码invitation记录在user表中

用户还可以生成邀请海报,海报图片为存储在events中的poster_url字段,二维码为邀请码经加密计算生成字符串后通过Zxing开源库生成的二维码

用户申请退票----用户只能退原始购买和当前拥有者均为本人的票,且票状态为未激活、未退款的票。点击退票按键时,先通过userid查询能退的票,用户点击后变更状态为退款中,通过订单id即order表中的id,去order_items表中order_id去查询当前订单,并调用微信退款接口,当回调通知退款成功后,当前未退款金额curernt_mount字段应减去退票金额,并将order_items订单信息关联表中的票劵状态code_status改为已作废

申请开具发票----发票信息表invocies

展商报名----exhibitor_application

等等功能就不一一叙述了

<think>好的,我需要回答用户关于微信小程序开发逻辑、架构和设计的问题。首先,根据用户提供的系统级指令,我需要确保使用正确的中文回答,并且按照格式要求处理数学表达式和独立公式。不过这个问题主要涉及技术架构,可能数学公式用的不多,但要注意其他格式要求,比如代码块和引用。 用户之前的问题是关于微信小程序的开发逻辑和架构,所以需要结合已有的引用内容,比如引用[1]提到的逻辑层和视图层的双线程架构。但用户给的引用可能不够详细,我需要回忆更多相关知识来补充。 首先,我应该解释微信小程序的基本架构,分为逻辑层和视图层,这两个部分如何通过微信客户端进行通信。然后,详细说明每个层的作用,比如逻辑层处理业务逻辑和数据,视图层负责渲染界面。接着,可以介绍通信机制,比如数据绑定和事件系统,以及如何通过Native层中转数据。 然后,可能需要讨论设计原则,比如轻量高效、数据驱动、安全隔离等。这部分需要结合微信小程序设计理念,解释为什么采用双线程模型,比如为了性能和安全考虑,防止恶意脚本操作DOM。 接下来,关于开发流程,用户可能想知道如何实际开发一个小程序,包括配置、页面结构、逻辑处理、数据绑定和调试发布。这部分需要简明扼要地列出步骤,并给出示例代码,比如app.json和页面wxml、js的代码示例。 在生成相关问题部分,需要提出一些用户可能进一步关心的问题,比如双线程模型的优缺点,如何优化性能,数据绑定的限制,跨平台开发等。 需要注意的是,引用标识要正确添加,但用户提供的引用[1]是关于小程序框架的概述,可能不足以覆盖所有内容,所以可能需要补充其他知识点,并确保引用的正确性。不过根据用户的要求,尽量参考用户提供的引用,所以需要确保引用[1]在适当的位置被引用,比如在讨论逻辑层和视图层时。 最后,检查回答是否符合结构要求,是否有代码块正确使用,是否生成了相关问题,并且引用的位置是否自然。同时,避免使用Markdown格式,除了代码块和引用标识外。</think>微信小程序的开发逻辑与架构设计采用独特的双线程模型,通过分离逻辑层与视图层实现高效运行和安全控制。以下是核心架构解析: ### 一、基础架构设计 采用**逻辑层(App Service)与视图层(View)分离架构**,两者通过微信客户端(Native)进行通信[^1] $$ \text{逻辑层} \xleftrightarrow[JSBridge]{数据/事件} \text{Native} \xleftrightarrow[组件系统]{渲染} \text{视图层} $$ 1. **逻辑层** - 基于JavaScript引擎(iOS:JavaScriptCore,Android:V8) - 处理业务逻辑、数据存取、接口调用 - 通过setData方法更新视图 2. **视图层** - 基于WebView渲染(每个页面独立WebView) - 使用WXML/WXSS进行界面描述 - 通过虚拟DOM实现高效渲染 ```javascript // 逻辑层代码示例 Page({ data: { message: 'Hello' }, onTap() { this.setData({ message: 'Clicked!' }) } }) ``` ### 二、通信机制 1. **数据传输通道** - 序列化JSON数据通过Native中转 - 单次数据量限制256KB - 数据更新采用差异比对算法 2. **事件处理机制** - 用户操作产生事件对象 - 事件通过Native转发到逻辑层 - 支持冒泡/非冒泡事件传递 ### 三、设计原则 1. **轻量高效原则** - 分包加载机制 - 预加载策略 - 组件化开发模式 2. **安全隔离机制** - 逻辑层无DOM/BOM访问权限 - 禁止动态执行代码 - 网络请求白名单控制 ### 四、开发流程 1. 项目配置 ```json // app.json { "pages": ["pages/index"], "window": { "navigationBarTitleText": "Demo" } } ``` 2. 页面结构 ```html <!-- index.wxml --> <view class="container">{{message}}</view> <button bindtap="onTap">点击</button> ``` 3. 样式定义 ```css /* index.wxss */ .container { padding: 20rpx; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值