wangqing 4 years ago
parent
commit
ac905c57fe
  1. 4
      README.md
  2. 88
      doc/pr_project_template.sql
  3. 6
      docker/.env
  4. 15
      docker/Dockerfile
  5. 76
      docker/docker-compose.yaml
  6. 1180
      docker/init-db/pr_project_template.sql
  7. 295
      docker/init-db/tduck.sql
  8. 38
      docker/nginx/nginx.conf
  9. 7
      docker/readme.md
  10. 3
      tduck-api/pom.xml
  11. 4
      tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java
  12. 14
      tduck-project/src/main/java/com/tduck/cloud/project/entity/struct/CascaderExpandStruct.java

4
README.md

@ -44,14 +44,14 @@ Tduck 填鸭:是基于B/S架构的一款开源的表单在线收集系统,
- 开源不易如果喜欢请给作者 Star 鼓励
### 加入社群
<img alt="logo" src="https://images.gitee.com/uploads/images/2021/0625/000242_95748ea0_1674451.png" style="margin-bottom: 0px;" width="230px">
<img alt="logo" src="https://images.gitee.com/uploads/images/2021/0706/174654_31b12d64_1674451.png" style="margin-bottom: 0px;" width="230px">
#### 项目源码
| 后端源码 | 前端源码 |
|--- | --- |
| https://gitee.com/TDuckApp/tduck-platform | https://gitee.com/TDuckApp/tduck-front |
| https://github.com/TDuckCloud/tduck-platform | https://github.com/TDuckCloud/tduck-platform |
| https://github.com/TDuckCloud/tduck-platform | https://github.com/TDuckCloud/tduck-front |
感谢:<img alt="logo" src="https://images.gitee.com/uploads/images/2021/0624/105039_de3beb64_1495174.png" style="margin-bottom: 0px;" width="230px">
提供云服务器资源!

88
doc/pr_project_template.sql

@ -11,7 +11,7 @@
Target Server Version : 50718
File Encoding : 65001
Date: 24/06/2021 11:06:09
Date: 06/07/2021 13:45:03
*/
SET NAMES utf8mb4;
@ -34,7 +34,7 @@ CREATE TABLE `pr_project_template` (
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code`(`key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 59 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 62 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of pr_project_template
@ -85,18 +85,6 @@ INSERT INTO `pr_project_template` VALUES (43, '7847f6b39e8e41c08f9bb2496fe08387'
INSERT INTO `pr_project_template` VALUES (44, 'ba5bdd3c7fc94ecf9170fe97cd790d1d', 'https://i.niupic.com/images/2021/01/08/99d0.png\r\n', '师生健康问卷', '为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', NULL, 1, 0, '2021-01-11 13:58:41', '2021-01-11 13:58:41');
INSERT INTO `pr_project_template` VALUES (45, '69e2281f0094407f94d8a9b4f3d75508', 'https://i.niupic.com/images/2021/01/08/99d0.png\r\n', '健康状况日常上报', '为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', NULL, 1, 0, '2021-01-11 13:58:42', '2021-01-11 13:58:42');
INSERT INTO `pr_project_template` VALUES (46, '335b69a4bfe44794a62a02de23f27c18', 'https://i.niupic.com/images/2021/01/08/99d0.png\r\n', '学生返校前健康监测上报', '为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', NULL, 1, 0, '2021-01-11 13:58:42', '2021-01-11 13:58:42');
INSERT INTO `pr_project_template` VALUES (47, '92a2b1a171f14b72b2d3d8d4a6b17ed7', NULL, '问卷名称', '<p>为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位 用户的宝贵意见,期待您的参与!现在我们就马上开始吧!</p>', 0, 4, 0, '2021-06-21 22:11:31', '2021-06-21 22:11:31');
INSERT INTO `pr_project_template` VALUES (48, '6f77555308a843cb8fa4fcd9cd28e3e2', NULL, '外卖需求', '为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', 0, 4, 0, '2021-06-23 14:25:03', '2021-06-23 14:25:03');
INSERT INTO `pr_project_template` VALUES (49, 'e4b45798b6ca4a7a91169feafff21b53', NULL, '问卷名称', '<p>为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位 用户的宝贵意见,期待您的参与!现在我们就马上开始吧!</p>', 0, 4, 0, '2021-06-24 10:43:18', '2021-06-24 10:43:18');
INSERT INTO `pr_project_template` VALUES (50, '2e7a9aef97bb4f23a1507c065aa5f142', NULL, '这是模板', '为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位\n用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', 0, 4, 0, '2021-06-24 10:50:02', '2021-06-24 10:50:02');
INSERT INTO `pr_project_template` VALUES (51, '7c3fc4e7ff4347e195b0cdd8013a078c', NULL, '问卷名称', '<p>为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位 用户的宝贵意见,期待您的参与!现在我们就马上开始吧!</p>', 0, 4, 0, '2021-06-24 10:50:15', '2021-06-24 10:50:15');
INSERT INTO `pr_project_template` VALUES (52, '51c8389013c34e639fbc061daac0984f', NULL, '问卷名称', '<p>为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位 用户的宝贵意见,期待您的参与!现在我们就马上开始吧!</p>', 0, 4, 0, '2021-06-24 10:50:37', '2021-06-24 10:50:37');
INSERT INTO `pr_project_template` VALUES (53, '9ed6f231c3494e5bb356ead205be8f1d', NULL, '问卷名称', '为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位\n用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', 0, 4, 0, '2021-06-24 10:50:59', '2021-06-24 10:50:59');
INSERT INTO `pr_project_template` VALUES (54, 'a9562a10a51a41c1a97d224ab4bddb50', NULL, '问卷名称', '为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位\n用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', 0, 4, 0, '2021-06-24 10:52:43', '2021-06-24 10:52:43');
INSERT INTO `pr_project_template` VALUES (55, '517a0400d22f42a394f980b004d0f0f0', NULL, '问卷名称', '<p>为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位 用户的宝贵意见,期待您的参与!现在我们就马上开始吧!</p>', 0, 4, 0, '2021-06-24 10:53:09', '2021-06-24 10:53:09');
INSERT INTO `pr_project_template` VALUES (56, '1bdd35987b9840feb04ee08dae31a410', NULL, '问卷名称', '<p>123123</p>', 0, 4, 0, '2021-06-24 10:55:24', '2021-06-24 10:55:24');
INSERT INTO `pr_project_template` VALUES (57, 'c73b7e4ae09847e4889528554bebf1d8', NULL, '问卷名称', '<p>为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位 用户的宝贵意见,期待您的参与!现在我们就马上开始吧!</p>', 0, 4, 0, '2021-06-24 10:56:31', '2021-06-24 10:56:31');
INSERT INTO `pr_project_template` VALUES (58, '1de8fb943afc44f3a6d45e4c97e069c2', NULL, '问卷名称', '<p>123123</p>', 0, 4, 0, '2021-06-24 10:57:50', '2021-06-24 10:57:50');
-- ----------------------------
-- Table structure for pr_project_template_category
@ -109,7 +97,7 @@ CREATE TABLE `pr_project_template_category` (
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目模板分类' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目模板分类' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of pr_project_template_category
@ -142,7 +130,7 @@ CREATE TABLE `pr_project_template_item` (
`is_display_type` tinyint(1) NOT NULL DEFAULT 0 COMMENT '展示类型组件',
PRIMARY KEY (`id`) USING BTREE,
INDEX `project_key`(`project_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1030 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表单项' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 1048 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表单项' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of pr_project_template_item
@ -1108,73 +1096,5 @@ INSERT INTO `pr_project_template_item` VALUES (958, '335b69a4bfe44794a62a02de23f
INSERT INTO `pr_project_template_item` VALUES (959, '335b69a4bfe44794a62a02de23f27c18', '107', 'RADIO', '学生假期是否离开过本市?\n', 1, NULL, 1, NULL, 524288, 24, '{\"options\": [{\"label\": \"是\\n\", \"value\": 1}, {\"label\": \"否\\n\", \"value\": 2}]}', NULL, '2021-01-11 13:58:42', '2021-01-11 13:58:42', 0);
INSERT INTO `pr_project_template_item` VALUES (960, '335b69a4bfe44794a62a02de23f27c18', '108', 'DATE', '假期去过的地区是?\n', 1, NULL, 1, NULL, 589824, 24, '{}', NULL, '2021-01-11 13:58:42', '2021-01-11 13:58:42', 0);
INSERT INTO `pr_project_template_item` VALUES (961, '335b69a4bfe44794a62a02de23f27c18', '109', 'DATE', '学生从外地返回当前所在地的时间是?\n', 1, NULL, 0, NULL, 655360, 24, '{}', NULL, '2021-01-11 13:58:42', '2021-01-11 13:58:42', 0);
INSERT INTO `pr_project_template_item` VALUES (962, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '101', 'INPUT', '手机号', 1, '{\"json\": false}', 1, '请输入手机号手机号', 65536, 24, '{\"append\": \"\", \"prepend\": \"\", \"maxlength\": 11, \"prefixIcon\": \"el-icon-mobile\", \"showWordLimit\": true}', '[{\"message\": \"手机号格式错误\", \"pattern\": \"/^1(3|4|5|7|8|9)\\\\d{9}$/\"}]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (963, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '102', 'INPUT', '邮箱', 1, '{\"json\": false}', 1, '请输入邮箱邮箱', 131072, 24, '{\"append\": \"\", \"prepend\": \"\", \"maxlength\": 24, \"prefixIcon\": \"el-icon-message\", \"showWordLimit\": true}', '[{\"message\": \"邮箱格式错误\", \"pattern\": \"/^\\\\w+((-\\\\w+)|(\\\\.\\\\w+))*\\\\@[A-Za-z0-9]+((\\\\.|-)[A-Za-z0-9]+)*\\\\.[A-Za-z0-9]+$/\"}]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (964, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '103', 'INPUT', '身份证', 1, '{\"json\": false}', 1, '请输入身份证身份证', 196608, 24, '{\"append\": \"\", \"prepend\": \"\", \"maxlength\": 20, \"prefixIcon\": \"el-icon-postcard\", \"showWordLimit\": true}', '[{\"message\": \"身份证格式错误\", \"pattern\": \"/(^[1-9]\\\\d{5}(18|19|([23]\\\\d))\\\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\\\d{3}[0-9Xx]$)|(^[1-9]\\\\d{5}\\\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\\\d{3}$)/\"}]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (965, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '104', 'PROVINCE_CITY', '省市联动', 1, '{\"json\": false}', 1, '请选择省市县省市联动', 262144, 24, NULL, NULL, '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (966, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '105', 'INPUT_MAP', '地理位置', 1, '{\"json\": false}', 1, '请选择位置地理位置', 327680, 24, NULL, NULL, '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (967, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '106', 'PHONE_VERIFICATION', '手机号验证', 1, '{\"json\": false}', 1, '请验证手机号手机号验证', 393216, 24, NULL, NULL, '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (968, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '107', 'INPUT', '单行文本', 1, '{\"json\": false}', 1, '请输入单行文本', 458752, 24, '{\"append\": \"\", \"prepend\": \"\", \"prefixIcon\": \"\", \"showWordLimit\": false}', '[]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (969, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '108', 'TEXTAREA', '多行文本', 1, '{\"json\": false}', 1, '请输入多行文本', 524288, 24, '{\"maxRows\": 4, \"minRows\": 4}', '[]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (970, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '109', 'NUMBER_INPUT', '计数器', 1, '{\"json\": false}', 1, '计数器', 589824, 24, '{\"step\": 1}', '[]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (971, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '110', 'IMAGE', '图片展示', 0, '{\"json\": false}', 0, NULL, 655360, 24, '{\"alt\": \"\", \"src\": \"https://qiniu.smileyi.top/e2c0be24560d78c5e599c2a9c9d0bbd2/cee3ed56d1764fbca94460853ea638b0.png\"}', '[]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 1);
INSERT INTO `pr_project_template_item` VALUES (972, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '111', 'IMAGE_CAROUSEL', '图片轮播', 0, '{\"json\": false}', 0, NULL, 720896, 24, '{\"options\": [{\"image\": \"https://qiniu.smileyi.top/e2c0be24560d78c5e599c2a9c9d0bbd2/62d7213af78d4a288f80683af93db29d.png\", \"label\": \"文字\"}, {\"image\": \"https://qiniu.smileyi.top/e2c0be24560d78c5e599c2a9c9d0bbd2/ec4e2a242bb141f29bc892b8f75d4e0e.png\", \"label\": \"文字1\"}]}', '[]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 1);
INSERT INTO `pr_project_template_item` VALUES (973, '92a2b1a171f14b72b2d3d8d4a6b17ed7', '112', 'IMAGE_SELECT', '图片选择', 1, '{\"json\": false}', 0, NULL, 786432, 24, '{\"options\": [{\"image\": \"https://qiniu.smileyi.top/e2c0be24560d78c5e599c2a9c9d0bbd2/464300884333472cb8fd89dd43a80887.jpg\", \"label\": \"选项1\", \"value\": 1}, {\"image\": \"https://qiniu.smileyi.top/e2c0be24560d78c5e599c2a9c9d0bbd2/78706ae62b8240b493ade288b4a41387.png\", \"label\": \"选项2\", \"value\": 2}], \"multiple\": false}', '[]', '2021-06-21 22:11:31', '2021-06-21 22:11:31', 0);
INSERT INTO `pr_project_template_item` VALUES (974, '6f77555308a843cb8fa4fcd9cd28e3e2', '100', 'RADIO', '您是否经常困扰中午应该吃什么?', 1, NULL, 1, NULL, 65536, 24, '{\"options\": [{\"label\": \"是\", \"value\": 1}, {\"label\": \"否\", \"value\": 2}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (975, '6f77555308a843cb8fa4fcd9cd28e3e2', '102', 'RADIO', '在工作日时,您午餐的选择是', 1, NULL, 1, NULL, 196608, 24, '{\"options\": [{\"label\": \"公司餐厅\", \"value\": 1}, {\"label\": \"上餐馆\", \"value\": 2}, {\"label\": \"叫外卖\", \"value\": 3}, {\"label\": \"自带\", \"value\": 4}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (976, '6f77555308a843cb8fa4fcd9cd28e3e2', '103', 'RADIO', '最近三个月内,您叫外卖的频率更接近于?', 1, NULL, 1, NULL, 262144, 24, '{\"options\": [{\"label\": \"0次\", \"value\": 1}, {\"label\": \"1次/周\", \"value\": 2}, {\"label\": \"3次/周\", \"value\": 3}, {\"label\": \"5次/周\", \"value\": 4}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (977, '6f77555308a843cb8fa4fcd9cd28e3e2', '104', 'RADIO', '您在什么情况下会选择叫外卖呢?', 1, NULL, 1, NULL, 327680, 24, '{\"options\": [{\"label\": \"不想出门\", \"value\": 1}, {\"label\": \"工作/学习太忙时\", \"value\": 2}, {\"label\": \"想换个口味\", \"value\": 3}, {\"label\": \"没人一起吃饭\", \"value\": 4}, {\"label\": \"朋友们都叫了外卖\", \"value\": 5}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (978, '6f77555308a843cb8fa4fcd9cd28e3e2', '105', 'RADIO', '您午餐花费的时间一般为? ', 1, NULL, 1, NULL, 393216, 24, '{\"options\": [{\"label\": \"30分钟以内\", \"value\": 1}, {\"label\": \"30-60分钟\", \"value\": 2}, {\"label\": \"1小时-1个半小时\", \"value\": 3}, {\"label\": \"一个半小时以上\", \"value\": 4}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (979, '6f77555308a843cb8fa4fcd9cd28e3e2', '106', 'RADIO', '您一般通过什么方式订外卖?', 1, NULL, 1, NULL, 458752, 24, '{\"options\": [{\"label\": \"手机/电话\", \"value\": 1}, {\"label\": \"网上订餐\", \"value\": 2}, {\"label\": \"微信\", \"value\": 3}, {\"label\": \"外卖App\", \"value\": 4}, {\"label\": \"亲自上门打包\", \"value\": 5}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (980, '6f77555308a843cb8fa4fcd9cd28e3e2', '107', 'RADIO', '您一般通过什么途径知道外卖店?', 1, NULL, 1, NULL, 524288, 24, '{\"options\": [{\"label\": \"传单广告\", \"value\": 1}, {\"label\": \"朋友介绍\", \"value\": 2}, {\"label\": \"上网查询\", \"value\": 3}, {\"label\": \"走在路上,发现不错的店就会记下来\", \"value\": 4}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (981, '6f77555308a843cb8fa4fcd9cd28e3e2', '108', 'RADIO', '您喜欢哪类型的外卖餐饮?', 1, NULL, 1, NULL, 589824, 24, '{\"options\": [{\"label\": \"烧烤类\", \"value\": 1}, {\"label\": \"煎炸类\", \"value\": 2}, {\"label\": \"火锅类\", \"value\": 3}, {\"label\": \"蒸煮类\", \"value\": 4}, {\"label\": \"烘焙类\", \"value\": 5}, {\"label\": \"小吃类\", \"value\": 6}, {\"label\": \"快餐类\", \"value\": 7}, {\"label\": \"中餐馆\", \"value\": 8}, {\"label\": \"西餐厅\", \"value\": 9}, {\"label\": \"日韩料理\", \"value\": 10}, {\"label\": \"异国风味类(泰国菜、印度菜等)\", \"value\": 11}, {\"label\": \"其他\", \"value\": 12}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (982, '6f77555308a843cb8fa4fcd9cd28e3e2', '109', 'RADIO', '在您的外卖经历中,您觉得存在的哪些问题是?', 1, NULL, 1, NULL, 655360, 24, '{\"options\": [{\"label\": \"没有遇到过问题\", \"value\": 1}, {\"label\": \"送餐速度慢\", \"value\": 2}, {\"label\": \"菜品与图片不符\", \"value\": 3}, {\"label\": \"味道不好\", \"value\": 4}, {\"label\": \"份量太少\", \"value\": 5}, {\"label\": \"卫生不佳\", \"value\": 6}, {\"label\": \"包装不良(有食物或汁水洒出来)\", \"value\": 7}, {\"label\": \"其他\", \"value\": 8}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (983, '6f77555308a843cb8fa4fcd9cd28e3e2', '110', 'RADIO', '遇到外卖服务不满意的情况,您会怎样处理?', 1, NULL, 1, NULL, 720896, 24, '{\"options\": [{\"label\": \"向送餐员说明\", \"value\": 1}, {\"label\": \"到店/电话与老板沟通\", \"value\": 2}, {\"label\": \"向食品监管部门投诉\", \"value\": 3}, {\"label\": \"放在心里,下次再也不买了\", \"value\": 4}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (984, '6f77555308a843cb8fa4fcd9cd28e3e2', '111', 'RADIO', '您是否希望通过饮食来控制体重?', 1, NULL, 1, NULL, 786432, 24, '{\"options\": [{\"label\": \"是\", \"value\": 1}, {\"label\": \"否\", \"value\": 2}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (985, '6f77555308a843cb8fa4fcd9cd28e3e2', '112', 'RADIO', '一家外卖餐厅能够提供菜品所含的卡路里和营养,您是否会感兴趣?', 1, NULL, 1, NULL, 851968, 24, '{\"options\": [{\"label\": \"是\", \"value\": 1}, {\"label\": \"否\", \"value\": 2}, {\"label\": \"无所谓\", \"value\": 3}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (986, '6f77555308a843cb8fa4fcd9cd28e3e2', '113', 'RADIO', '您对外卖服务最看重的是哪方面?', 1, NULL, 1, NULL, 917504, 24, '{\"options\": [{\"label\": \"健康\", \"value\": 1}, {\"label\": \"口味\", \"value\": 2}, {\"label\": \"速度\", \"value\": 3}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (987, '6f77555308a843cb8fa4fcd9cd28e3e2', '114', 'RADIO', '您希望外卖公司提供的菜品组合?', 1, NULL, 1, NULL, 983040, 24, '{\"options\": [{\"label\": \"一荤两素\", \"value\": 1}, {\"label\": \"两荤两素\", \"value\": 2}, {\"label\": \"盖浇饭\", \"value\": 3}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (988, '6f77555308a843cb8fa4fcd9cd28e3e2', '115', 'RADIO', '您能接受的午餐价格?', 1, NULL, 1, NULL, 1048576, 24, '{\"options\": [{\"label\": \"15元以内\", \"value\": 1}, {\"label\": \"15—20元\", \"value\": 2}, {\"label\": \"21—25元\", \"value\": 3}, {\"label\": \"26—30元\", \"value\": 4}, {\"label\": \"31—50元\", \"value\": 5}, {\"label\": \"50元以上\", \"value\": 6}]}', NULL, '2021-06-23 14:25:03', '2021-06-23 14:25:03', 0);
INSERT INTO `pr_project_template_item` VALUES (989, 'e4b45798b6ca4a7a91169feafff21b53', '101', 'RADIO', '单选框组', 1, '{\"json\": false}', 1, NULL, 65536, 24, '{\"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"optionType\": \"default\"}', '[]', '2021-06-24 10:43:18', '2021-06-24 10:43:18', 0);
INSERT INTO `pr_project_template_item` VALUES (990, 'e4b45798b6ca4a7a91169feafff21b53', '102', 'CHECKBOX', '多选框组', 1, '{\"json\": false, \"value\": []}', 1, NULL, 131072, 24, '{\"size\": \"medium\", \"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"optionType\": \"default\"}', '[]', '2021-06-24 10:43:18', '2021-06-24 10:43:18', 0);
INSERT INTO `pr_project_template_item` VALUES (991, 'e4b45798b6ca4a7a91169feafff21b53', '103', 'SELECT', '下拉选择', 1, '{\"json\": false}', 1, '请选择下拉选择', 196608, 24, '{\"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"multiple\": false, \"filterable\": false}', '[]', '2021-06-24 10:43:18', '2021-06-24 10:43:18', 0);
INSERT INTO `pr_project_template_item` VALUES (992, 'e4b45798b6ca4a7a91169feafff21b53', '104', 'INPUT', '单行文本', 1, '{\"json\": false}', 1, '请输入单行文本', 262144, 24, '{\"append\": \"\", \"prepend\": \"\", \"prefixIcon\": \"\", \"showWordLimit\": false}', '[]', '2021-06-24 10:43:18', '2021-06-24 10:43:18', 0);
INSERT INTO `pr_project_template_item` VALUES (993, 'e4b45798b6ca4a7a91169feafff21b53', '105', 'IMAGE_CAROUSEL', '图片轮播', 0, '{\"json\": false}', 0, NULL, 327680, 24, '{\"options\": [{\"image\": \"\", \"label\": \"文字\"}]}', '[]', '2021-06-24 10:43:18', '2021-06-24 10:43:18', 1);
INSERT INTO `pr_project_template_item` VALUES (994, '2e7a9aef97bb4f23a1507c065aa5f142', '101', 'PROVINCE_CITY', '省市联动', 1, '{\"json\": false}', 1, '请选择省市县省市联动', 65536, 24, NULL, NULL, '2021-06-24 10:50:02', '2021-06-24 10:50:02', 0);
INSERT INTO `pr_project_template_item` VALUES (995, '2e7a9aef97bb4f23a1507c065aa5f142', '102', 'PHONE_VERIFICATION', '手机号验证', 1, '{\"json\": false}', 1, '请验证手机号手机号验证', 131072, 24, NULL, NULL, '2021-06-24 10:50:02', '2021-06-24 10:50:02', 0);
INSERT INTO `pr_project_template_item` VALUES (996, '7c3fc4e7ff4347e195b0cdd8013a078c', '101', 'RADIO', '单选框组', 1, '{\"json\": false}', 1, NULL, 65536, 24, '{\"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"optionType\": \"default\"}', '[]', '2021-06-24 10:50:15', '2021-06-24 10:50:15', 0);
INSERT INTO `pr_project_template_item` VALUES (997, '7c3fc4e7ff4347e195b0cdd8013a078c', '102', 'CHECKBOX', '多选框组', 1, '{\"json\": false, \"value\": []}', 1, NULL, 131072, 24, '{\"size\": \"medium\", \"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"optionType\": \"default\"}', '[]', '2021-06-24 10:50:15', '2021-06-24 10:50:15', 0);
INSERT INTO `pr_project_template_item` VALUES (998, '7c3fc4e7ff4347e195b0cdd8013a078c', '103', 'SELECT', '下拉选择', 1, '{\"json\": false}', 1, '请选择下拉选择', 196608, 24, '{\"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"multiple\": false, \"filterable\": false}', '[]', '2021-06-24 10:50:15', '2021-06-24 10:50:15', 0);
INSERT INTO `pr_project_template_item` VALUES (999, '7c3fc4e7ff4347e195b0cdd8013a078c', '104', 'INPUT', '单行文本', 1, '{\"json\": false}', 1, '请输入单行文本', 262144, 24, '{\"append\": \"\", \"prepend\": \"\", \"prefixIcon\": \"\", \"showWordLimit\": false}', '[]', '2021-06-24 10:50:15', '2021-06-24 10:50:15', 0);
INSERT INTO `pr_project_template_item` VALUES (1000, '7c3fc4e7ff4347e195b0cdd8013a078c', '105', 'IMAGE_CAROUSEL', '图片轮播', 0, '{\"json\": false}', 0, NULL, 327680, 24, '{\"options\": [{\"image\": \"\", \"label\": \"文字\"}]}', '[]', '2021-06-24 10:50:15', '2021-06-24 10:50:15', 1);
INSERT INTO `pr_project_template_item` VALUES (1001, '51c8389013c34e639fbc061daac0984f', '106', 'DIVIDER', '分割线', 0, '{\"json\": false, \"value\": \"分割线\"}', 0, NULL, 4096, 24, NULL, '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 1);
INSERT INTO `pr_project_template_item` VALUES (1002, '51c8389013c34e639fbc061daac0984f', '108', 'SIGN_PAD', '手写签名', 1, '{\"json\": false, \"value\": \"\"}', 1, NULL, 5120, 24, '{\"color\": \"#000000\"}', '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 0);
INSERT INTO `pr_project_template_item` VALUES (1003, '51c8389013c34e639fbc061daac0984f', '107', 'DESC_TEXT', '文字描述', 0, '{\"json\": false, \"value\": \"描述文字\"}', 0, NULL, 6144, 24, '{\"color\": \"\", \"textAlign\": \"left\"}', '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 1);
INSERT INTO `pr_project_template_item` VALUES (1004, '51c8389013c34e639fbc061daac0984f', '105', 'IMAGE_SELECT', '图片选择', 1, '{\"json\": false, \"value\": 1}', 1, NULL, 8192, 24, '{\"options\": [{\"label\": \"选项1\", \"value\": 1}], \"multiple\": false}', '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 0);
INSERT INTO `pr_project_template_item` VALUES (1005, '51c8389013c34e639fbc061daac0984f', '104', 'IMAGE', '图片展示', 0, '{\"json\": false}', 0, NULL, 16384, 24, '{\"alt\": \"\", \"src\": \"\"}', '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 1);
INSERT INTO `pr_project_template_item` VALUES (1006, '51c8389013c34e639fbc061daac0984f', '103', 'DIVIDER', '分割线', 0, '{\"json\": false, \"value\": \"分割线\"}', 0, NULL, 32768, 24, NULL, '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 1);
INSERT INTO `pr_project_template_item` VALUES (1007, '51c8389013c34e639fbc061daac0984f', '101', 'PROVINCE_CITY', '省市联动', 1, '{\"json\": false}', 1, '请选择省市县省市联动', 65536, 24, NULL, NULL, '2021-06-24 10:50:37', '2021-06-24 10:50:37', 0);
INSERT INTO `pr_project_template_item` VALUES (1008, '51c8389013c34e639fbc061daac0984f', '102', 'IMAGE_CAROUSEL', '图片轮播', 0, '{\"json\": false}', 0, NULL, 131072, 24, '{\"options\": [{\"image\": \"\", \"label\": \"文字\"}]}', '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 1);
INSERT INTO `pr_project_template_item` VALUES (1009, '51c8389013c34e639fbc061daac0984f', '102', 'DIVIDER', '分割线', 0, '{\"json\": false, \"value\": \"分割线\"}', 0, NULL, 327680, 24, NULL, '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 1);
INSERT INTO `pr_project_template_item` VALUES (1010, '51c8389013c34e639fbc061daac0984f', '103', 'DIVIDER', '分割线', 0, '{\"json\": false, \"value\": \"分割线\"}', 0, NULL, 458752, 24, NULL, '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 1);
INSERT INTO `pr_project_template_item` VALUES (1011, '51c8389013c34e639fbc061daac0984f', '104', 'IMAGE_SELECT', '图片选择', 1, '{\"json\": false}', 1, NULL, 524288, 24, '{\"options\": [{\"label\": \"选项1\", \"value\": 1}], \"multiple\": false}', '[]', '2021-06-24 10:50:37', '2021-06-24 10:50:37', 0);
INSERT INTO `pr_project_template_item` VALUES (1012, '9ed6f231c3494e5bb356ead205be8f1d', '101', 'INPUT', '手机号', 1, '{\"json\": false}', 1, '请输入手机号手机号', 65536, 24, '{\"append\": \"\", \"prepend\": \"\", \"maxlength\": 11, \"prefixIcon\": \"el-icon-mobile\", \"showWordLimit\": true}', '[{\"message\": \"手机号格式错误\", \"pattern\": \"/^1(3|4|5|7|8|9)\\\\d{9}$/\"}]', '2021-06-24 10:50:59', '2021-06-24 10:50:59', 0);
INSERT INTO `pr_project_template_item` VALUES (1013, 'a9562a10a51a41c1a97d224ab4bddb50', '101', 'INPUT_MAP', '地理位置', 1, '{\"json\": false, \"value\": [114.28563, 30.60534, \"湖北省武汉市江岸区西马街街道建设大道718号浙商大厦\"]}', 1, '请选择位置地理位置', 65536, 24, NULL, NULL, '2021-06-24 10:52:43', '2021-06-24 10:52:43', 0);
INSERT INTO `pr_project_template_item` VALUES (1014, '517a0400d22f42a394f980b004d0f0f0', '101', 'PROVINCE_CITY', '省市联动', 1, '{\"json\": false, \"value\": [\"北京市\", \"东城区\"]}', 1, '请选择省市县省市联动省市联动', 131072, 24, NULL, NULL, '2021-06-24 10:53:09', '2021-06-24 10:53:09', 0);
INSERT INTO `pr_project_template_item` VALUES (1015, '517a0400d22f42a394f980b004d0f0f0', '102', 'INPUT', '身份证', 1, '{\"json\": false}', 1, '请输入身份证身份证', 196608, 24, '{\"append\": \"\", \"prepend\": \"\", \"maxlength\": 18, \"prefixIcon\": \"el-icon-postcard\", \"showWordLimit\": true}', '[{\"message\": \"身份证格式错误\", \"pattern\": \"/(^[1-9]\\\\d{5}(18|19|([23]\\\\d))\\\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\\\d{3}[0-9Xx]$)|(^[1-9]\\\\d{5}\\\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\\\d{3}$)/\"}]', '2021-06-24 10:53:09', '2021-06-24 10:53:09', 0);
INSERT INTO `pr_project_template_item` VALUES (1016, '517a0400d22f42a394f980b004d0f0f0', '103', 'INPUT_MAP', '地理位置', 1, '{\"json\": false}', 1, '请选择位置地理位置', 262144, 24, NULL, NULL, '2021-06-24 10:53:09', '2021-06-24 10:53:09', 0);
INSERT INTO `pr_project_template_item` VALUES (1017, '517a0400d22f42a394f980b004d0f0f0', '105', 'IMAGE_CAROUSEL', '图片轮播', 0, '{\"json\": false}', 0, NULL, 393216, 24, '{\"options\": [{\"image\": \"https://qiniu.smileyi.top/757b505cfd34c64c85ca5b5690ee5293/a70072d9cd4a4e5d9c570206924f0c75.jpg\", \"label\": \"文字\"}]}', '[]', '2021-06-24 10:53:09', '2021-06-24 10:53:09', 1);
INSERT INTO `pr_project_template_item` VALUES (1018, '517a0400d22f42a394f980b004d0f0f0', '106', 'DESC_TEXT', '文字描述', 0, '{\"json\": false, \"value\": \"描述文字\"}', 0, NULL, 458752, 24, '{\"color\": \"\", \"textAlign\": \"left\"}', '[]', '2021-06-24 10:53:09', '2021-06-24 10:53:09', 1);
INSERT INTO `pr_project_template_item` VALUES (1019, '1bdd35987b9840feb04ee08dae31a410', '101', 'CHECKBOX', '多选框组', 1, '{\"json\": false, \"value\": [1, 2]}', 1, NULL, 655360, 24, '{\"size\": \"medium\", \"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"optionType\": \"default\"}', '[]', '2021-06-24 10:55:24', '2021-06-24 10:55:24', 0);
INSERT INTO `pr_project_template_item` VALUES (1020, 'c73b7e4ae09847e4889528554bebf1d8', '109', 'TEXTAREA', '多行文本', 1, '{\"json\": false}', 1, '请输入多行文本', 32768, 24, '{\"maxRows\": 4, \"minRows\": 4}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 0);
INSERT INTO `pr_project_template_item` VALUES (1021, 'c73b7e4ae09847e4889528554bebf1d8', '101', 'RADIO', '单选框组', 1, '{\"json\": false}', 1, NULL, 65536, 24, '{\"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"optionType\": \"default\"}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 0);
INSERT INTO `pr_project_template_item` VALUES (1022, 'c73b7e4ae09847e4889528554bebf1d8', '102', 'CHECKBOX', '多选框组', 1, '{\"json\": false, \"value\": []}', 1, NULL, 131072, 24, '{\"size\": \"medium\", \"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"optionType\": \"default\"}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 0);
INSERT INTO `pr_project_template_item` VALUES (1023, 'c73b7e4ae09847e4889528554bebf1d8', '103', 'SELECT', '下拉选择', 1, '{\"json\": false}', 1, '请选择下拉选择', 196608, 24, '{\"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"multiple\": false, \"filterable\": false}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 0);
INSERT INTO `pr_project_template_item` VALUES (1024, 'c73b7e4ae09847e4889528554bebf1d8', '104', 'INPUT', '单行文本', 1, '{\"json\": false}', 1, '请输入单行文本', 262144, 24, '{\"append\": \"\", \"prepend\": \"\", \"prefixIcon\": \"\", \"showWordLimit\": false}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 0);
INSERT INTO `pr_project_template_item` VALUES (1025, 'c73b7e4ae09847e4889528554bebf1d8', '107', 'IMAGE', '图片展示', 0, '{\"json\": false}', 0, NULL, 278528, 24, '{\"alt\": \"\", \"src\": \"\"}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 1);
INSERT INTO `pr_project_template_item` VALUES (1026, 'c73b7e4ae09847e4889528554bebf1d8', '106', 'IMAGE_SELECT', '图片选择', 1, '{\"json\": false}', 1, NULL, 282624, 24, '{\"options\": [{\"label\": \"选项1\", \"value\": 1}, {\"image\": \"\", \"label\": \"xuanxiang \", \"value\": 2}, {\"image\": \"\", \"label\": \"\", \"value\": 3}, {\"image\": \"\", \"label\": \"\", \"value\": 4}], \"multiple\": false}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 0);
INSERT INTO `pr_project_template_item` VALUES (1027, 'c73b7e4ae09847e4889528554bebf1d8', '108', 'SELECT', '下拉选择', 1, '{\"json\": false}', 1, '请选择下拉选择', 305152, 24, '{\"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}], \"multiple\": false, \"filterable\": false}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 0);
INSERT INTO `pr_project_template_item` VALUES (1028, 'c73b7e4ae09847e4889528554bebf1d8', '105', 'IMAGE_CAROUSEL', '图片轮播', 0, '{\"json\": false}', 0, NULL, 327680, 24, '{\"options\": [{\"image\": \"\", \"label\": \"文字\"}]}', '[]', '2021-06-24 10:56:31', '2021-06-24 10:56:31', 1);
INSERT INTO `pr_project_template_item` VALUES (1029, '1de8fb943afc44f3a6d45e4c97e069c2', '101', 'CHECKBOX', '多选框组', 1, '{\"json\": false, \"value\": [1, 2]}', 1, '此题为必填项目', 655360, 24, '{\"size\": \"medium\", \"options\": [{\"label\": \"选项一\", \"value\": 1}, {\"label\": \"选项二\", \"value\": 2}, {\"label\": \"1\", \"value\": 3}, {\"label\": \"3\", \"value\": 4}, {\"label\": \"2\", \"value\": 5}], \"optionType\": \"default\"}', '[]', '2021-06-24 10:57:50', '2021-06-24 10:57:50', 0);
SET FOREIGN_KEY_CHECKS = 1;

6
docker/.env

@ -0,0 +1,6 @@
MYSQL_DATABASE=tduck
MYSQL_ROOT_PASSWORD=abc123123
SPRING_DATASOURCE_URL=jdbc:mysql://tduck-mysql/tduck?serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_NAME=root
REDIS_HOST=tduck-redis
REDIS_PORT=6379

15
docker/Dockerfile

@ -0,0 +1,15 @@
FROM adoptopenjdk/openjdk11:jdk-11.0.8_10-alpine as builder
WORKDIR application
ARG JAR_FILE=tduck-api.jar
COPY ${JAR_FILE} app.jar
RUN java -Djarmode=layertools -jar app.jar extract
FROM adoptopenjdk/openjdk11:jdk-11.0.8_10-alpine
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
CMD ["java", "org.springframework.boot.loader.JarLauncher"]
#ENTRYPOINT ["java","org.springframework.boot.loader.JarLauncher"]

76
docker/docker-compose.yaml

@ -0,0 +1,76 @@
version: '3.6'
services:
tduck-app:
environment:
# - SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.cj.jdbc.driver
- SPRING_DATASOURCE_URL=$SPRING_DATASOURCE_URL
- SPRING_DATASOURCE_USERNAME=$SPRING_DATASOURCE_NAME
- SPRING_DATASOURCE_PASSWORD=$MYSQL_ROOT_PASSWORD
- SPRING_REDIS_DATABASE=0
- SPRING_REDIS_HOST=$REDIS_HOST
- SPRING_REDIS_PORT=$REDIS_PORT
- AJ_CAPTCHA_ENABLE=false
# - SPRING_REDIS_PASSWORD=
# - WX_MP_CONFIGS_APPID=
# - WX_MP_CONFIGS_SECRET=
# - WX_MP_CONFIGS_TOKEN=
# - WX_MP_CONFIGS_AESKEY=
# - OSS_OSSTYPE=
# - OSS_ENDPOINT=
# - OSS_ACCESSKEYID=
# - OSS_ACCESSKEYSECRET=
# - OSS_BUCKETNAME=
# - OSS_DOMAIN=
image: "tecdo/tduck"
ports:
- 23569:8999
restart: always
tduck-redis:
image: redis:6.2.1
ports:
- 36379:6379
volumes:
- redis_data:/data
redis-commander:
container_name: redis-commander
hostname: redis-commander
image: rediscommander/redis-commander:latest
restart: always
environment:
- REDIS_HOSTS=local:$REDIS_HOST:$REDIS_PORT
ports:
- "28083:8081"
tduck-mysql:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE=$MYSQL_DATABASE
ports:
- 43033:3306
volumes:
- mysql_data3:/var/lib/mysql
- ./init-db:/docker-entrypoint-initdb.d:ro
command: --default-authentication-plugin=mysql_native_password
tduck-front:
image: nginx:1.21.0
restart: always
ports:
- 43039:80
volumes:
- ./front:/usr/share/nginx/html/
- nginx_log:/var/log/nginx
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
volumes:
mysql_data3:
nginx_log:
redis_data:

1180
docker/init-db/pr_project_template.sql

File diff suppressed because one or more lines are too long

295
docker/init-db/tduck.sql

@ -0,0 +1,295 @@
/*
Navicat Premium Data Transfer
Source Server : ivo1
Source Server Type : MySQL
Source Server Version : 50718
Source Host : sh-cynosdbmysql-grp-e911sges.sql.tencentcdb.com:29062
Source Schema : tduck
Target Server Type : MySQL
Target Server Version : 50718
File Encoding : 65001
Date: 24/06/2021 11:05:57
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for ac_user
-- ----------------------------
DROP TABLE IF EXISTS `ac_user`;
CREATE TABLE `ac_user` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '姓名',
`avatar` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '头像',
`gender` tinyint(1) NOT NULL DEFAULT 0 COMMENT '性别0未知 1男2女',
`email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
`phone_number` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
`reg_channel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '注册渠道',
`last_login_channel` tinyint(4) NULL DEFAULT NULL COMMENT '最后登录渠道',
`last_login_time` datetime(0) NULL DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最后登录Ip',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '状态',
`create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
`update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 220 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for ac_user_authorize
-- ----------------------------
DROP TABLE IF EXISTS `ac_user_authorize`;
CREATE TABLE `ac_user_authorize` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`type` tinyint(1) NOT NULL COMMENT '第三方平台类型',
`app_id` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '平台AppId',
`open_id` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '平台OpenId',
`user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '平台用户名',
`user_id` bigint(11) NULL DEFAULT NULL COMMENT '用户Id',
`user_info` json NULL COMMENT '平台用户信息',
`create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
`update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '第三方用户授权信息' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for pr_project_template
-- ----------------------------
DROP TABLE IF EXISTS `pr_project_template`;
CREATE TABLE `pr_project_template` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`key` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '模板唯一标识',
`cover_img` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '封面图',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目名称',
`describe` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '项目描述',
`like_count` int(10) NULL DEFAULT 0 COMMENT '喜欢数',
`category_id` int(2) NOT NULL COMMENT '项目类型',
`status` tinyint(2) NOT NULL DEFAULT 0 COMMENT '状态',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code`(`key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 59 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for pr_project_template_category
-- ----------------------------
DROP TABLE IF EXISTS `pr_project_template_category`;
CREATE TABLE `pr_project_template_category` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主题名称',
`sort` int(11) NULL DEFAULT NULL COMMENT '排序',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目模板分类' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for pr_project_template_item
-- ----------------------------
DROP TABLE IF EXISTS `pr_project_template_item`;
CREATE TABLE `pr_project_template_item` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`project_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目key',
`form_item_id` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '表单项Id',
`type` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '表单项类型 ',
`label` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '表单项标题',
`show_label` tinyint(1) NOT NULL COMMENT '是否显示标签',
`default_value` json NULL COMMENT '表单项默认值',
`required` tinyint(1) NOT NULL COMMENT '是否必填',
`placeholder` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '输入型提示文字',
`sort` bigint(20) NULL DEFAULT 0 COMMENT '排序',
`span` int(10) NOT NULL DEFAULT 24 COMMENT '栅格宽度',
`expand` json NULL COMMENT '扩展字段 表单项独有字段',
`reg_list` json NULL COMMENT '正则表达式 ',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`is_display_type` tinyint(1) NOT NULL DEFAULT 0 COMMENT '展示类型组件',
PRIMARY KEY (`id`) USING BTREE,
INDEX `project_key`(`project_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1030 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表单项' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for pr_project_theme
-- ----------------------------
DROP TABLE IF EXISTS `pr_project_theme`;
CREATE TABLE `pr_project_theme` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主题名称',
`style` json NOT NULL COMMENT '主题风格\r\n',
`head_img_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '头部图片',
`color` json NOT NULL COMMENT '颜色代码',
`btns_color` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '按钮颜色',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 216 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目主题外观模板' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for pr_user_project
-- ----------------------------
DROP TABLE IF EXISTS `pr_user_project`;
CREATE TABLE `pr_user_project` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`key` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目code',
`source_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '来源Id',
`source_type` tinyint(5) NULL DEFAULT NULL COMMENT '来源类型',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目名称',
`describe` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '项目描述',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`type` tinyint(2) NULL DEFAULT NULL COMMENT '项目类型',
`status` tinyint(2) NOT NULL DEFAULT 0 COMMENT '状态',
`is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code`(`key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2429 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for pr_user_project_item
-- ----------------------------
DROP TABLE IF EXISTS `pr_user_project_item`;
CREATE TABLE `pr_user_project_item` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`project_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目key',
`form_item_id` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '表单项Id',
`type` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '表单项类型 ',
`label` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '表单项标题',
`is_display_type` tinyint(1) NOT NULL DEFAULT 0 COMMENT '展示类型组件',
`show_label` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否显示标签',
`default_value` json NULL COMMENT '表单项默认值',
`required` tinyint(1) NOT NULL COMMENT '是否必填',
`placeholder` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '输入型提示文字',
`sort` bigint(20) NULL DEFAULT 0 COMMENT '排序',
`span` int(10) NOT NULL DEFAULT 24 COMMENT '栅格宽度',
`expand` json NULL COMMENT '扩展字段 表单项独有字段',
`reg_list` json NULL COMMENT '正则表达式 ',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `project_key`(`project_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 19989 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表单项' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for pr_user_project_logic
-- ----------------------------
DROP TABLE IF EXISTS `pr_user_project_logic`;
CREATE TABLE `pr_user_project_logic` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '逻辑Id',
`project_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目key',
`form_item_id` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '问题Id',
`expression` tinyint(1) NOT NULL COMMENT '条件选项 ',
`condition_list` json NOT NULL COMMENT '条件列表',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `project_key`(`project_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 104 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目逻辑' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for pr_user_project_result
-- ----------------------------
DROP TABLE IF EXISTS `pr_user_project_result`;
CREATE TABLE `pr_user_project_result` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`project_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目key',
`serial_number` int(11) NULL DEFAULT NULL COMMENT '序号',
`original_data` json NULL COMMENT '填写结果',
`process_data` json NULL COMMENT '填写结果',
`submit_ua` json NULL COMMENT '提交ua',
`submit_os` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提交系统',
`submit_browser` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提交浏览器',
`submit_request_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求ip',
`submit_address` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提交地址',
`complete_time` int(11) NULL DEFAULT NULL COMMENT '完成时间 毫秒',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `project_key`(`project_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1851 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表单项' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for pr_user_project_setting
-- ----------------------------
DROP TABLE IF EXISTS `pr_user_project_setting`;
CREATE TABLE `pr_user_project_setting` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`project_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目key',
`submit_prompt_img` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提交提示图片',
`submit_prompt_text` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提交提示文字',
`submit_jump_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提交跳转连接',
`is_public_result` tinyint(1) NULL DEFAULT NULL COMMENT '公开提交结果',
`is_wx_write` tinyint(1) NULL DEFAULT NULL COMMENT '只在微信填写',
`is_everyone_write_once` tinyint(1) NULL DEFAULT NULL COMMENT '每人只能填写一次',
`is_everyone_day_write_once` tinyint(1) NULL DEFAULT NULL COMMENT '每人每天只能填写一次',
`write_once_prompt_text` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '填写之后提示',
`new_write_notify_email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新反馈通知邮件',
`new_write_notify_wx` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新反馈通知微信',
`is_record_wx_user` tinyint(1) NULL DEFAULT NULL COMMENT '记录微信用户个人信息',
`timed_collection_begin_time` datetime(0) NULL DEFAULT NULL COMMENT '定时收集开始时间',
`timed_collection_end_time` datetime(0) NULL DEFAULT NULL COMMENT '定时收集结束时间',
`timed_not_enabled_prompt_text` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '定时未启动提示文字',
`timed_deactivate_prompt_text` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '定时停用会提示文字',
`timed_quantitative_quantity` int(100) NULL DEFAULT NULL COMMENT '定时定量数量',
`timed_end_prompt_text` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '定时定量完成提示',
`share_img` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分享图片',
`share_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分享标题',
`share_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分享描述',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `project_key`(`project_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 365 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表单项' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for pr_user_project_theme
-- ----------------------------
DROP TABLE IF EXISTS `pr_user_project_theme`;
CREATE TABLE `pr_user_project_theme` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`project_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项目key',
`theme_id` bigint(20) NULL DEFAULT NULL COMMENT '主题Id',
`submit_btn_text` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提交按钮文字',
`logo_img` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'logo图片',
`logo_position` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'logo位置',
`background_color` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '背景颜色',
`background_img` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '背景图片',
`show_title` tinyint(1) NULL DEFAULT 1 COMMENT '是否显示标题',
`show_describe` tinyint(1) NULL DEFAULT 1 COMMENT '是否显示描述语',
`show_number` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '显示序号',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `project_key`(`project_key`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 639 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表单项' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for wx_mp_user
-- ----------------------------
DROP TABLE IF EXISTS `wx_mp_user`;
CREATE TABLE `wx_mp_user` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
`appid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公众号AppId',
`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称',
`sex` tinyint(1) NULL DEFAULT NULL COMMENT '性别',
`head_img_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '头像',
`union_id` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`open_id` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`country` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国家',
`province` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '',
`city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
`is_subscribe` tinyint(1) NULL DEFAULT 1 COMMENT '是否关注',
`user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户Id',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `wx_union_id`(`head_img_url`(191)) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信公众号用户 ' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
INSERT INTO `tduck`.`ac_user`(`id`, `name`, `avatar`, `gender`, `email`, `phone_number`, `password`, `reg_channel`, `last_login_channel`, `last_login_time`, `last_login_ip`, `deleted`, `create_time`, `update_time`) VALUES (201, 'Tduck001', 'https://oss.smileyi.top/757b505cfd34c64c85ca5b5690ee5293/4c415e1c1af04af68d740e667819bece.png', 0, 'test@tduck.com', NULL, 'ef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f', '1', 2, '2021-06-24 11:08:21', '111.30.56.26', 0, '2020-11-12 11:50:50', '2021-06-24 11:08:21');

38
docker/nginx/nginx.conf

@ -0,0 +1,38 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name form.tec-do.com;
root /usr/share/nginx/html;
location / {
# 静态文件地址 root访问路径会把请求的路径带上
root /usr/share/nginx/html;
try_files $uri$args $uri$args/ /index.html;
index index.html index.htm;
}
location /tduck-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tduck-app:8999/tduck-api/;
}
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root html;
#}
}
}

7
docker/readme.md

@ -0,0 +1,7 @@
### docker compose 一键启动
1. 将mvn package 后的`tduck-api.jar`拷贝到`docker`目录
2. 将前端打包后的`dist`里的文件拷贝到`docker/front`目录下
3. 在当前目录构建你的镜像 `docker build -t "你的镜像名称" .`
4. 修改docker-compose.yaml 文件中的镜像名
5. `docker-compose up -d` 一键启动

3
tduck-api/pom.xml

@ -74,6 +74,9 @@
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<layers>
<enabled>true</enabled>
</layers>
<finalName>${project.build.finalName}</finalName>
</configuration>
<executions>

4
tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java

@ -273,7 +273,9 @@ public class UserProjectController {
ValidatorUtils.validateEntity(request);
List<UserProjectItemEntity> itemEntityList = projectItemService.list(Wrappers.<UserProjectItemEntity>lambdaQuery()
.eq(UserProjectItemEntity::getProjectKey, request.getKey())
.eq(ObjectUtil.isNotNull(request.getDisplayType()), UserProjectItemEntity::getDisplayType, request.getDisplayType()));
.eq(ObjectUtil.isNotNull(request.getDisplayType()), UserProjectItemEntity::getDisplayType, request.getDisplayType())
.orderByAsc(UserProjectItemEntity::getSort)
);
return Result.success(itemEntityList);
}

14
tduck-project/src/main/java/com/tduck/cloud/project/entity/struct/CascaderExpandStruct.java

@ -21,6 +21,20 @@ public class CascaderExpandStruct {
*/
private Boolean filterable;
/**
* 多选
*/
private Boolean multiple;
/**
* 分割符
*/
private String separator;
/**
* 显示全路径
*/
private Boolean showAllLevels;
public static class Option {
public Integer id;

Loading…
Cancel
Save