diff --git a/form/src/main/java/com/ccsens/form/api/FormController.java b/form/src/main/java/com/ccsens/form/api/FormController.java index 0a8eff9f..42764c85 100644 --- a/form/src/main/java/com/ccsens/form/api/FormController.java +++ b/form/src/main/java/com/ccsens/form/api/FormController.java @@ -1,5 +1,63 @@ package com.ccsens.form.api; +import com.ccsens.cloudutil.annotation.MustLogin; +import com.ccsens.form.bean.dto.FormDto; +import com.ccsens.form.bean.vo.FormVo; +import com.ccsens.form.service.IFormService; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.bean.dto.QueryDto; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import java.util.List; + +/** + * @author 逗 + */ +@Slf4j +@Api(tags = "组件相关api" , description = "") +@RestController +@RequestMapping("/form") public class FormController { + @Resource + private IFormService formService; + + @MustLogin + @ApiOperation(value = "查找表单详细信息", notes = "zy:查询表单的基本信息,组件信息,及当前用户填写的信息") + @RequestMapping(value = "/get", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse getFormInfo(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查找表单详细信息:{}",params); + FormVo.GetFormInfo getFormInfo = formService.getFormInfo(params); + log.info("查找表单详细信息"); + return JsonResponse.newInstance().ok(getFormInfo); + } + + + @MustLogin + @ApiOperation(value = "查找表单详细信息", notes = "zy:查询该表单所有填写人的姓名和头像") + @RequestMapping(value = "/list", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> getFormList(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查找表单详细信息:{}",params); + List formLists = formService.getFormList(params.getParam()); + log.info("查找表单详细信息"); + return JsonResponse.newInstance().ok(formLists); + } + + @MustLogin + @ApiOperation(value = "统计提交的信息", notes = "zy:查询该表单填写的人数,和需要统计的组件内的统计信息") + @RequestMapping(value = "/statistics", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse statisticsForm(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("统计提交的信息:{}",params); + FormVo.StatisticsForm formLists = formService.statisticsForm(params.getParam()); + log.info("统计提交的信息"); + return JsonResponse.newInstance().ok(formLists); + } } diff --git a/form/src/main/java/com/ccsens/form/bean/dto/FormDto.java b/form/src/main/java/com/ccsens/form/bean/dto/FormDto.java new file mode 100644 index 00000000..2a59024e --- /dev/null +++ b/form/src/main/java/com/ccsens/form/bean/dto/FormDto.java @@ -0,0 +1,22 @@ +package com.ccsens.form.bean.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author 逗 + */ +@Data +public class FormDto { + @Data + @ApiModel("查找表单的详细信息") + public static class GetFormInfo{ + @NotNull + @ApiModelProperty("表单id") + private Long formId; + } + +} diff --git a/form/src/main/java/com/ccsens/form/bean/vo/FormVo.java b/form/src/main/java/com/ccsens/form/bean/vo/FormVo.java new file mode 100644 index 00000000..71fa0ac3 --- /dev/null +++ b/form/src/main/java/com/ccsens/form/bean/vo/FormVo.java @@ -0,0 +1,122 @@ +package com.ccsens.form.bean.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author 逗 + */ +@Data +public class FormVo { + + @Data + @ApiModel("查找表单的详细信息") + public static class GetFormInfo{ + @ApiModelProperty("表单id") + private Long formId; + @ApiModelProperty("标题") + private Long title; + @ApiModelProperty("描述") + private Long description; + @ApiModelProperty("封面图片") + private Long coverImage; + @ApiModelProperty("组件信息") + private List moduleList; + } + + @Data + @ApiModel("表单内组件的详细信息") + public static class FormModuleVo{ + @ApiModelProperty("组件id") + private Long id; + @ApiModelProperty("组件类型 (单选:radio)(多选:CheckBox)(下拉菜单:pullDown)(文本:text)(多行文本:textarea)(富文本:richText)") + private byte type; + @ApiModelProperty("图标") + private String logo; + @ApiModelProperty("名称") + private String name; + @ApiModelProperty("是否有选项 0否 1是") + private byte option; + @ApiModelProperty("关联层级数") + private byte hierarchy; + @ApiModelProperty("当前用户已填写的答案") + private String answer; + @ApiModelProperty("组件配置") + private List moduleConfigList; + @ApiModelProperty("选项信息") + private List optionList; + } + + @Data + @ApiModel("表单内组件的配置信息") + public static class FormModuleConfigVo{ + @ApiModelProperty("组件配置的id") + private Long configId; + @ApiModelProperty("类型 0显示 1校验") + private byte type; + @ApiModelProperty("配置类型code") + private String configKey; + @ApiModelProperty("内容") + private String configValue; + } + + @Data + @ApiModel("表单内组件的选项信息") + public static class FormOptionVo{ + @ApiModelProperty("选项id") + private Long id; + @ApiModelProperty("选项key") + private String optionKey; + @ApiModelProperty("选项value") + private String optionValue; + @ApiModelProperty("排序") + private int sequence; + @ApiModelProperty("是否被选中 0否 1是") + private byte choose; + @ApiModelProperty("子选项") + private List subOption; + } + + + @Data + @ApiModel("表单提交的列表") + public static class FormList{ + @ApiModelProperty("用户填写表单记录id") + private Long formUserId; + @ApiModelProperty("填写人姓名") + private String name; + @ApiModelProperty("头像") + private String avatarUrl; + } + + @Data + @ApiModel("统计表单填写信息") + public static class StatisticsForm{ + @ApiModelProperty("填写的总人数") + private int nums; + @ApiModelProperty("填写人姓名") + private List moduleList; + } + + @Data + @ApiModel("需要统计的组件") + public static class StatisticsModule{ + @ApiModelProperty("组件名") + private String title; + @ApiModelProperty("填写人姓名") + private List statisticsList; + } + + @Data + @ApiModel("需要统计的组件") + public static class StatisticsVo{ + @ApiModelProperty("统计项") + private String key; + @ApiModelProperty("数量") + private int nums; + } + +} diff --git a/form/src/main/java/com/ccsens/form/bean/vo/ModuleVo.java b/form/src/main/java/com/ccsens/form/bean/vo/ModuleVo.java index 26e7f760..877b4264 100644 --- a/form/src/main/java/com/ccsens/form/bean/vo/ModuleVo.java +++ b/form/src/main/java/com/ccsens/form/bean/vo/ModuleVo.java @@ -57,8 +57,6 @@ public class ModuleVo { private String optionValue; @ApiModelProperty("排序") private int sequence; - @ApiModelProperty("是否选中 0否 1是") - private byte choose; @ApiModelProperty("子选项") private List