调整表单提交

This commit is contained in:
Github_lizhw 2026-01-26 23:27:19 +08:00
parent 84e189a831
commit 201a370180
5 changed files with 73 additions and 34 deletions

View File

@ -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);
}

View File

@ -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;
}
}
}

View File

@ -27,4 +27,4 @@ public interface FormSubmissionDao extends BaseMapper<FormSubmission> {
IPage<FormSubmission> page,
@Param("projectId") Long projectId,
@Param("fieldFilters") Map<String, Object> fieldFilters);
}
}

View File

@ -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<String, Object> formData;
/**
* IP地址
*/
@Schema(title = "IP地址")
private String ipAddress;
/**
* 用户代理
*/
@Schema(title = "用户代理")
private String userAgent;
/**
* 表单数据JSON格式存储
*/
private String formData;
/**
* 创建时间戳
*/
private LocalDateTime createTime;
/**
* 更新时间戳
*/
private LocalDateTime updateTime;
}

View File

@ -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;
}
}