diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/FormController.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/FormController.java index 6c50998d1..f622c8859 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/FormController.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/FormController.java @@ -36,6 +36,19 @@ public class FormController { @Autowired private JSON json; + + /** + * save表单版本+1 + * + */ + @Operation(summary = "save表单版本+1") + @PostMapping("/saveForm") + public Boolean saveForm(@RequestBody SubmitFormRequest request, HttpServletRequest httpRequest) { + //TODO待完成 + return null; + } + + /** * 提交表单数据 * @@ -52,8 +65,10 @@ public class FormController { H5FormSubmissionDTO dto = new H5FormSubmissionDTO(); dto.setProjectId(request.getProjectId()); - dto.setFormData(json.toJSON(request.getFormData())); - dto.setIpAddress(JSON.ipToLong(ipAddress)); + //TODO TODO待完成 formId + dto.setFormId(null); + dto.setFormData(request.getFormData()); + dto.setIpAddress(ipAddress); dto.setUserAgent(userAgent); return formService.submitFormData(dto); } diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/convert/FormSubmissionConvert.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/convert/FormSubmissionConvert.java index 324ae8ec0..573cf4396 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/convert/FormSubmissionConvert.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/convert/FormSubmissionConvert.java @@ -1,5 +1,6 @@ package com.luban.api.convert; +import cn.hutool.json.JSONUtil; import com.luban.api.dto.H5FormSubmissionDTO; import com.luban.api.entity.FormSubmission; import org.springframework.beans.BeanUtils; @@ -27,7 +28,11 @@ public class FormSubmissionConvert { H5FormSubmissionDTO dto = new H5FormSubmissionDTO(); BeanUtils.copyProperties(entity, dto); - // 将数字形式的IP地址转换为字符串 + // 将JSON格式的formData转换为Map + if (entity.getFormData() != null) { + dto.setFormData(JSONUtil.toBean(entity.getFormData(), java.util.Map.class)); + } + // 将IP地址转换为字符串 dto.setIpAddress(entity.getIpAddress()); return dto; } @@ -62,6 +67,10 @@ public class FormSubmissionConvert { } FormSubmission entity = new FormSubmission(); BeanUtils.copyProperties(dto, entity); + // 将formData Map转换为JSON字符串 + if (dto.getFormData() != null) { + entity.setFormData(JSONUtil.toJsonStr(dto.getFormData())); + } return entity; } -} +} \ No newline at end of file diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dao/FormSubmissionDao.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dao/FormSubmissionDao.java index c8df5edc8..f5c97fa70 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dao/FormSubmissionDao.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dao/FormSubmissionDao.java @@ -27,4 +27,4 @@ public interface FormSubmissionDao extends BaseMapper { IPage page, @Param("projectId") Long projectId, @Param("fieldFilters") Map fieldFilters); -} \ No newline at end of file +} diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/H5FormSubmissionDTO.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/H5FormSubmissionDTO.java index aa5733b3f..3df01320b 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/H5FormSubmissionDTO.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/dto/H5FormSubmissionDTO.java @@ -1,49 +1,52 @@ package com.luban.api.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.time.LocalDateTime; +import java.util.Map; /** - * 表单数据传输对象 + * H5表单提交数据传输对象 * * @author your-name */ @Data +@Schema(title = "H5表单提交对象") public class H5FormSubmissionDTO { - /** - * 主键ID - */ - private Long id; - - /** - * H5Project的ID + * 项目ID */ + @Schema(title = "项目ID") private Long projectId; + /** + * 模板表单ID + */ + @Schema(title = "模板表单ID") + private Long templetFormId; /** - * 提交者IP地址(IPv4为数字存储) + * 表单ID */ - private Long ipAddress; + @Schema(title = "表单ID") + private String formId; /** - * 用户代理信息 + * 表单数据 */ + @Schema(title = "表单数据") + private Map formData; + + + + /** + * IP地址 + */ + @Schema(title = "IP地址") + private String ipAddress; + + /** + * 用户代理 + */ + @Schema(title = "用户代理") private String userAgent; - - /** - * 表单数据(JSON格式存储) - */ - private String formData; - - /** - * 创建时间戳 - */ - private LocalDateTime createTime; - - /** - * 更新时间戳 - */ - private LocalDateTime updateTime; } diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/entity/FormSubmission.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/entity/FormSubmission.java index c7483a743..647abfcd6 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/entity/FormSubmission.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/entity/FormSubmission.java @@ -37,11 +37,23 @@ public class FormSubmission implements Serializable { @TableField("project_id") private Long projectId; + /** + * 模板表单ID + */ + @TableField("templet_form_id") + private Long templetFormId; + + /** + * 表单ID + */ + @TableField("form_id") + private String formId; + /** * 提交者IP地址 */ @TableField("ip_address") - private Long ipAddress; + private String ipAddress; /** * 用户代理信息 @@ -66,4 +78,4 @@ public class FormSubmission implements Serializable { */ @TableField("update_time") private LocalDateTime updateTime; -} +} \ No newline at end of file