[关闭]
@yiranblade 2019-11-11T09:37:44.000000Z 字数 7581 阅读 294

梅沙表单收集系统1.0

工作


阅读索引

需求背景概述

应对公司各个业务系统的收集需求

整体架构流程图

image.png-224.8kB

使用常量定义

标示 数字码 中文解释
STUDENT_INFO 1 学生信息
USER_INFO 2 客户信息
EVALUATE 3 能力测评
OPTION 1 选择题
MULTIPLE_OPTION 2 多选题
SCALE 3 量表
FILL_BLANK 4 填空题
FILE 5 附件题
NO_LIMIT 0 无限制
ZH_LIMIT 1 中文限制
EN_LIMIT 2 英文限制
DATE_LIMIT 3 数字限制
MAIL_LIMIT 4 电子邮箱限制
ID_LIMIT 5 居民身份证限制
PHONE_LIMIT 6 手机号码限制
TELPHONE_LIMIT 7 电话号码限制
MINUTE_SECOND 8 分秒限制
SECOND 9 秒限制
METER 10 米限制
CENTIMETER 11 米限制
KILOGRAM 12 千克限制
MILLILITER 13 毫升限制
TIME 14 次限制
NO_UPLOAD_LIMIT 0 无上传限制
IMAGE_LIMIT 1 仅可以上传图片
PDF_LIMIT 2 仅可以上传PDF
VIDEO_LIMIT 3 仅可以视频上传

数据表设计

数据库整体设计e-r图

image.png-174.8kB

表字段设计

表单表 tb_form

字段名 数据类型 中文解释
id string 表单标识
template_id string 模版id
name string 表单名称
status integer 1启用,0不启用
source integer 表单来源,看具体需求
type integer 表单类型,1.学生信息2.客户信息.3.能力测评
instruction string 表单说明
any_one integer 0设置任何人可填写,1特定人群
re_user integer 注册用户,1设置,0不设置
sys_user integer 系统学员,1设置,0不设置
is_show_ques_number integer 是否展示题号
end_time string 结束时间
create_user_id string 创建用户id
update_user_id string 更新用户id
create_company_id string 创建团队Id
update_company_id string 更新团队Id
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

表单统计数据中间表 tb_form_statistical

字段名 数据类型 中文解释
id string 表单id
click_number integer 点击次数
re_number integer 回收数目
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

模版表 tb_template

字段名 数据类型 中文解释
id string 表单标识
name string 表单名称
source integer 表单来源,看具体需求
type integer 表单类型,1.学生信息2.客户信息.3.能力测评
form_instruction string 表单说明
instruction string 模版说明
any_one integer 0设置任何人可填写,1特定人群
re_user integer 注册用户,1设置,0不设置
sys_user integer 系统学员,1设置,0不设置
is_show_ques_number integer 是否展示题号
end_time string 结束时间
create_user_id string 创建用户id
update_user_id string 更新用户id
create_company_id string 创建团队Id
update_company_id string 更新团队Id
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

tb_question 自定义问题

字段名 数据类型 中文解释
id string 题目id
type integer 题目类型
name string 题目名称
note string 题目备注
config string 题目配置
content string 内容
create_user_id string 创建用户id
update_user_id string 更新用户id
create_company_id string 创建团队Id
update_company_id string 更新团队Id
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

tb_public_question

字段名 数据类型 中文解释
id string 题目id
type integer 题目类型
name string 题目名称
note string 题目备注
config string 题目配置
content string 内容
create_user_id string 创建用户id
update_user_id string 更新用户id
create_company_id string 创建团队Id
update_company_id string 更新团队Id
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

tb_aggregation_public_question 公共题目聚合表

字段名 数据类型 中文解释
id string 标记id
level integer 聚合层级
type integer 聚合类型
question_id string 聚合id
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

tb_form_question_relation 关联题目表

字段名 数据类型 中文解释
id string 题目id
question_id string 题目id
form_id string 表单id
order integer 题目顺序
is_remove integer 是否可被删除
is_write integer 是否可必填
is_modify integer 是否可被修改
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

tb_paper 收集的答卷

字段名 数据类型 中文解释
id string 答卷id
serial_number integer 编号
form_id string 表单id
source integer 提交来源
objected_id string 对象id
objected_type integer 对象类型
submit_user_id string 提交人id
create_user_id string 创建用户id
update_user_id string 更新用户id
create_company_id string 创建团队Id
update_company_id string 更新团队Id
submit_time 提交时间
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

tb_paper_detail收集答卷详情

字段名 数据类型 中文解释
id string string
question_id string 问题id
paper_id string 答卷id
content 用户原始数据 消息内容
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

tb_paper_draft 草稿表

字段名 数据类型 中文解释
id string id
paper_id string 答卷id
form_id string 表单id
submit_user_id string 提交用户id
objected_id string 对象id
content text 草稿数据
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

tb_admin_operation_log

字段名 数据类型 中文解释
id string 标示id
type integer 操作对象类型
company_id string 操作者团队id
company_name string 操作者名称
merchant_id string 操作者商户
group_id string 操作者集团
operation_group_id string 筛选的集团id
operation_merchant_id string 筛选的商户id
operator_id string 操作者id
operatior_name string 操作者名称
phone_code string 手机前缀码
phone_no string 电话号码
object_id string 被操作对象id
explain string 操作,例如编辑
description string 被操作对象简介
remark TEXT 操作具体内容
create_user_id string 创建用户id
update_user_id string 更新用户id
create_time string 创建时间
update_time string 更新时间
deleted_at string 删除时间

复杂逻辑字段定义说明

问题

问题统一字段定义如下:

  1. {
  2. "name":"名称",
  3. "note":"备注",
  4. "type":"题目类型,1单选题。2多选题。3填空题。4量表题。5附件题",
  5. "isWrite":"是否必填",
  6. "config":"问题配置",
  7. "content":"问题详细内容"
  8. }

分题型设置config与content字段

  1. {
  2. "config":{
  3. "stepSize":"步长"
  4. },
  5. "content":{
  6. "startDesc":"起始描述",
  7. "startNmber":"起始数值",
  8. "endDesc":"结尾描述",
  9. "endNumber":"结尾数值"
  10. }
  11. }
  1. "config":{
  2. "uploadType":""
  3. },
  4. "content":"url"

问题内部实现结构

image.png-167.1kB

功能实现

商户筛选

表单配置筛选

表单列表

创建表单

公共题目获取

编辑表单

获取表单详情

题目相关操作

表单填写

回收统计

导入表单

辅助功能实现

正则校验

针对填空题中对于电话,邮箱,等校验逻辑。统一使用util类,写正则表达式进行校验。

登录

后端登录分为,普通登录与微信中分享登录。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注