queryParams = new HashMap<>();
17 | }
18 |
--------------------------------------------------------------------------------
/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/vo/WxMpUserVO.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.wx.mp.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @AllArgsConstructor
10 | public class WxMpUserVO {
11 | /**
12 | * 昵称
13 | */
14 | private String nickname;
15 | /**
16 | * 头像
17 | */
18 | private String headImgUrl;
19 |
20 | private String openId;
21 | }
22 |
--------------------------------------------------------------------------------
/tduck-common/src/main/java/com/tduck/cloud/common/constant/StorageConstants.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.common.constant;
2 |
3 | /**
4 | * @description: 文件路径常量
5 | * @author: smalljop
6 | * @create: 2020-02-19 14:40
7 | **/
8 | public interface StorageConstants {
9 |
10 | /**
11 | * 默认文件上传路径前缀
12 | */
13 | String FILE_UPLOAD_PREFIX = "manage-platform";
14 | /**
15 | * 头像上传地址
16 | */
17 | String AVATAR_UPLOAD_PREFIX = "manage-platform/avatar";
18 | }
19 |
--------------------------------------------------------------------------------
/tduck-api/src/main/java/com/tduck/cloud/api/annotation/LoginUser.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.api.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 登录用户信息
10 | *
11 | * @author Mark sunlightcs@gmail.com
12 | */
13 | @Target(ElementType.PARAMETER)
14 | @Retention(RetentionPolicy.RUNTIME)
15 | public @interface LoginUser {
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/constant/WxMpRedisKeyConstants.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.wx.mp.constant;
2 |
3 | /**
4 | * @description: redis key常量
5 | * @author: smalljop
6 | * @create: 2020-02-12 22:34
7 | **/
8 | public interface WxMpRedisKeyConstants {
9 | /**
10 | * 微信登录二维码Id
11 | */
12 | String WX_MP_LOGIN_QRCODE = "wx:mp:login:{}";
13 |
14 | /**
15 | * 订阅通知
16 | */
17 | String WX_MP_SUB_NOTIFY = "wx:mp:sub:notify:{}";
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/tduck-form/src/main/java/com/tduck/cloud/form/entity/struct/UploadResultStruct.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.form.entity.struct;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author : smalljop
9 | * @description : 上传收集结果
10 | * @create : 2021/06/07 16:37
11 | **/
12 | @Data
13 | @NoArgsConstructor
14 | @AllArgsConstructor
15 | public class UploadResultStruct {
16 |
17 | private String name;
18 | private String url;
19 | }
20 |
--------------------------------------------------------------------------------
/tduck-api/src/main/java/com/tduck/cloud/api/annotation/NoRepeatSubmit.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.api.annotation;
2 |
3 |
4 | import java.lang.annotation.ElementType;
5 | import java.lang.annotation.Retention;
6 | import java.lang.annotation.RetentionPolicy;
7 | import java.lang.annotation.Target;
8 |
9 | /**
10 | * 不允许重复提交注解
11 | *
12 | * @author smalljop
13 | */
14 | @Target({ElementType.METHOD, ElementType.TYPE})
15 | @Retention(RetentionPolicy.RUNTIME)
16 | public @interface NoRepeatSubmit {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/tduck-api/src/main/java/com/tduck/cloud/api/annotation/NotLogin.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.api.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 不需要登录的接口
10 | * @author : tduck
11 | * @since : 2023/03/31 15:32
12 | **/
13 | @Target({ElementType.METHOD, ElementType.TYPE})
14 | @Retention(RetentionPolicy.RUNTIME)
15 | public @interface NotLogin {
16 | }
17 |
--------------------------------------------------------------------------------
/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/WxMpUserMsgService.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.wx.mp.service;
2 |
3 | /**
4 | * 公众号用户消息
5 | *
6 | * @author : smalljop
7 | * @description :
8 | * @create : 2020-12-02 10:34
9 | **/
10 | public interface WxMpUserMsgService {
11 |
12 | /**
13 | * 发送文本客服消息
14 | *
15 | * @param appId
16 | * @param openId
17 | * @param content
18 | */
19 | void sendKfTextMsg(String appId, String openId, String content);
20 |
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/tduck-form/src/main/java/com/tduck/cloud/form/request/CheckPhoneCodeRequest.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.form.request;
2 |
3 | import lombok.Data;
4 |
5 | import javax.validation.constraints.NotBlank;
6 |
7 | /**
8 | * @author : smalljop
9 | * @description : 检查验证码是否正确
10 | * @create : 2020-11-10 18:17
11 | **/
12 | @Data
13 | public class CheckPhoneCodeRequest {
14 | @NotBlank(message = "手机号不能为空")
15 | private String phoneNumber;
16 |
17 | @NotBlank(message = "验证码不能为空")
18 | private String code;
19 | }
--------------------------------------------------------------------------------
/tduck-form/src/main/java/com/tduck/cloud/form/constant/FormSettingConstants.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.form.constant;
2 |
3 | /**
4 | * @author : wangqing
5 | * @description : 表单设置项常量
6 | * @create : 2022/07/07 11:49
7 | **/
8 | public interface FormSettingConstants {
9 |
10 | /**
11 | * 表单提交后显示类型字段名称
12 | */
13 | String SUBMIT_SHOW_TYPE_KEY = "submitShowType";
14 |
15 | /**
16 | * 自定义提示页面内容
17 | */
18 | String SUBMIT_SHOW_CUSTOM_PAGE_KEY = "submitShowCustomPage";
19 |
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/tduck-form/src/main/java/com/tduck/cloud/form/entity/struct/ImageSelectSchemaStruct.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.form.entity.struct;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author : smalljop
9 | * @description : 选项结构
10 | * @create : 2021/06/07 16:37
11 | **/
12 | @Data
13 | @NoArgsConstructor
14 | @AllArgsConstructor
15 | public class ImageSelectSchemaStruct extends OptionSchemaStruct{
16 |
17 | private boolean multiple;
18 |
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/tduck-common/src/main/java/com/tduck/cloud/common/validator/group/Group.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2016-2019 人人开源 All rights reserved.
3 | *
4 | * https://www.renren.io
5 | *
6 | * 版权所有,侵权必究!
7 | */
8 |
9 | package com.tduck.cloud.common.validator.group;
10 |
11 | import javax.validation.GroupSequence;
12 |
13 | /**
14 | * 定义校验顺序,如果AddGroup组失败,则UpdateGroup组不会再校验
15 | *
16 | * @author Mark sunlightcs@gmail.com
17 | */
18 | @GroupSequence({AddGroup.class, UpdateGroup.class})
19 | public interface Group {
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/tduck-common/src/main/java/com/tduck/cloud/common/entity/PageRequest.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.common.entity;
2 |
3 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4 | import lombok.Data;
5 |
6 | /**
7 | * @author : smalljop
8 | * @description : 分页
9 | * @create : 2020-12-09 10:47
10 | **/
11 | @Data
12 | public class PageRequest {
13 |
14 | private long current = 1;
15 | private long size = 50;
16 |
17 |
18 | public Page toMybatisPage() {
19 | return new Page(current, size);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/tduck-storage/src/main/java/com/tduck/cloud/storage/exception/StorageException.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.storage.exception;
2 |
3 | import com.tduck.cloud.common.exception.BaseException;
4 |
5 | /**
6 | * @author : smalljop
7 | * @description : 异常
8 | * @create : 2020-11-10 10:49
9 | **/
10 | public class StorageException extends BaseException {
11 | public StorageException(String msg) {
12 | super(msg);
13 | }
14 |
15 | public StorageException(String msg, Throwable e) {
16 | super(msg, e);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/tduck-form/src/main/java/com/tduck/cloud/form/request/QueryFormItemRequest.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.form.request;
2 |
3 | import lombok.Data;
4 |
5 | import javax.validation.constraints.NotBlank;
6 |
7 | /**
8 | * @author : smalljop
9 | * @description : 查询表单问题
10 | * @create : 2021/06/03 14:45
11 | **/
12 | @Data
13 | public class QueryFormItemRequest {
14 |
15 | /**
16 | * 表单key
17 | */
18 | @NotBlank
19 | private String key;
20 | /**
21 | * 是显示类型
22 | */
23 | private Boolean displayType;
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/tduck-form/src/main/java/com/tduck/cloud/form/vo/UserFormThemeVO.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.form.vo;
2 |
3 | import com.tduck.cloud.form.entity.UserFormThemeEntity;
4 | import lombok.Data;
5 |
6 | /**
7 | * @author : smalljop
8 | * @description : 表单主题
9 | * @create : 2020-11-25 17:33
10 | **/
11 | @Data
12 | public class UserFormThemeVO extends UserFormThemeEntity {
13 |
14 | /**
15 | * 头部图片
16 | */
17 | private String headImgUrl;
18 |
19 |
20 | /**
21 | * 按钮颜色
22 | */
23 | private String btnsColor;
24 |
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**/target/
5 | !**/src/test/**/target/
6 | /logs/
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/ !**/src/main/**/build/
29 | !**/src/test/**/build/
30 |
31 | ### VS Code ###
32 | .vscode/
33 | /tduck-storage/target/
34 |
--------------------------------------------------------------------------------
/tduck-form/src/main/java/com/tduck/cloud/form/mapper/UserFormLinkExtMapper.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.form.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.tduck.cloud.form.entity.UserFormLinkExtEntity;
5 | import org.springframework.stereotype.Component;
6 | import org.springframework.stereotype.Service;
7 |
8 | /**
9 | * 单链接扩展值Mapper接口
10 | *
11 | * @author tduck-gen
12 | * @date 2021-12-14 14:26:38
13 | */
14 | @Component
15 | @Service
16 | public interface UserFormLinkExtMapper extends BaseMapper {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/tduck-form/src/main/java/com/tduck/cloud/form/vo/FormDataTableVO.java:
--------------------------------------------------------------------------------
1 | package com.tduck.cloud.form.vo;
2 |
3 | import lombok.Data;
4 | import lombok.NoArgsConstructor;
5 |
6 | import java.util.List;
7 | import java.util.Map;
8 |
9 | /**
10 | * 表单数据表格
11 | */
12 | @Data
13 | @NoArgsConstructor
14 | public class FormDataTableVO {
15 | /**
16 | * 数据列表
17 | */
18 | private List