Browse Source

表单测试完成

recovery
zy_Java 5 years ago
parent
commit
4580fbcdeb
  1. 4
      cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java
  2. 11
      form/src/main/java/com/ccsens/form/bean/dto/FormDto.java
  3. 12
      form/src/main/java/com/ccsens/form/bean/dto/ModuleDto.java
  4. 12
      form/src/main/java/com/ccsens/form/bean/vo/FormVo.java
  5. 10
      form/src/main/java/com/ccsens/form/bean/vo/ModuleVo.java
  6. 2
      form/src/main/java/com/ccsens/form/persist/dao/FormBasicDao.java
  7. 2
      form/src/main/java/com/ccsens/form/persist/dao/ModuleDao.java
  8. 64
      form/src/main/java/com/ccsens/form/service/FormService.java
  9. 84
      form/src/main/java/com/ccsens/form/service/ModuleService.java
  10. 2
      form/src/main/resources/application-dev.yml
  11. 4
      form/src/main/resources/mapper_dao/FormBasicDao.xml
  12. 3
      form/src/main/resources/mapper_dao/ModuleDao.xml
  13. 5
      util/src/main/java/com/ccsens/util/QrCodeUtil.java

4
cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java

@ -91,12 +91,16 @@ public class MustLoginAspect {
} }
JSONObject json = JSONObject.parseObject(JSON.toJSONString(response.getData())); JSONObject json = JSONObject.parseObject(JSON.toJSONString(response.getData()));
Long userId = json.getLong("id"); Long userId = json.getLong("id");
String userName = json.getString("userName");
String avatarUrl = json.getString("avatarUrl");
if (userId == null || userId == 0) { if (userId == null || userId == 0) {
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN); return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
} }
if (dto != null) { if (dto != null) {
dto.setUserId(userId); dto.setUserId(userId);
dto.setUserName(userName);
dto.setAvatarUrl(avatarUrl);
} }
Object result = pjp.proceed(); Object result = pjp.proceed();

11
form/src/main/java/com/ccsens/form/bean/dto/FormDto.java

@ -6,6 +6,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/** /**
* @author * @author
@ -15,7 +16,7 @@ public class FormDto {
@Data @Data
@ApiModel("表单id") @ApiModel("表单id")
public static class GetFormInfo{ public static class GetFormInfo{
@NotNull @NotNull(message = "表单id不能为空")
@ApiModelProperty("表单id") @ApiModelProperty("表单id")
private Long formId; private Long formId;
} }
@ -24,7 +25,7 @@ public class FormDto {
@Data @Data
@ApiModel("用户填写表单信息的Id") @ApiModel("用户填写表单信息的Id")
public static class FormUser{ public static class FormUser{
@NotNull @NotNull(message = "用户表单关联信息的id不能为空")
@ApiModelProperty("用户填写表单信息的id") @ApiModelProperty("用户填写表单信息的id")
private Long formUserId; private Long formUserId;
} }
@ -33,9 +34,11 @@ public class FormDto {
@ApiModel("添加表单") @ApiModel("添加表单")
public static class SaveForm{ public static class SaveForm{
@NotBlank(message = "标题不能为空") @NotBlank(message = "标题不能为空")
@Size(max = 50,message = "标题不能超过50字")
@ApiModelProperty("标题") @ApiModelProperty("标题")
private String title; private String title;
@ApiModelProperty("详情") @ApiModelProperty("详情")
@Size(max = 500,message = "标题不能超过50字")
private String description; private String description;
@ApiModelProperty("封面图片文件的id") @ApiModelProperty("封面图片文件的id")
private Long coverImageId; private Long coverImageId;
@ -45,12 +48,14 @@ public class FormDto {
@Data @Data
@ApiModel("修改表单") @ApiModel("修改表单")
public static class UpdateForm{ public static class UpdateForm{
@NotNull @NotNull(message = "表单id不能为空")
@ApiModelProperty("表单id") @ApiModelProperty("表单id")
private Long formId; private Long formId;
@ApiModelProperty("标题") @ApiModelProperty("标题")
@Size(max = 50,message = "标题不能超过50字")
private String title; private String title;
@ApiModelProperty("详情") @ApiModelProperty("详情")
@Size(max = 500,message = "标题不能超过50字")
private String description; private String description;
@ApiModelProperty("封面图片文件的id") @ApiModelProperty("封面图片文件的id")
private Long coverImageId; private Long coverImageId;

12
form/src/main/java/com/ccsens/form/bean/dto/ModuleDto.java

@ -16,7 +16,7 @@ public class ModuleDto {
@Data @Data
@ApiModel("表单内的组件id") @ApiModel("表单内的组件id")
public static class GetFormModule{ public static class GetFormModule{
@NotNull @NotNull(message = "表单内组件id不能为空")
@ApiModelProperty("表单组件关联id") @ApiModelProperty("表单组件关联id")
private Long formModuleId; private Long formModuleId;
@ -45,10 +45,8 @@ public class ModuleDto {
public static class ModuleConfig{ public static class ModuleConfig{
@ApiModelProperty("类型 0显示 1校验 2统计 默认0") @ApiModelProperty("类型 0显示 1校验 2统计 默认0")
private Byte type; private Byte type;
@NotBlank
@ApiModelProperty("组件配置code") @ApiModelProperty("组件配置code")
private String configKey; private String configKey;
@NotBlank
@ApiModelProperty("配置的内容") @ApiModelProperty("配置的内容")
private String configValue; private String configValue;
} }
@ -56,10 +54,8 @@ public class ModuleDto {
@Data @Data
@ApiModel("修改组件配置") @ApiModel("修改组件配置")
public static class ModuleOption{ public static class ModuleOption{
@NotBlank
@ApiModelProperty("选项配置code") @ApiModelProperty("选项配置code")
private String optionKey; private String optionKey;
@NotBlank
@ApiModelProperty("选项内容") @ApiModelProperty("选项内容")
private String optionValue; private String optionValue;
@ApiModelProperty("子选项") @ApiModelProperty("子选项")
@ -69,10 +65,10 @@ public class ModuleDto {
@Data @Data
@ApiModel("给表单添加组件") @ApiModel("给表单添加组件")
public static class SaveModule{ public static class SaveModule{
@NotNull @NotNull(message = "表单id不能为空")
@ApiModelProperty("表单id") @ApiModelProperty("表单id")
private Long formId; private Long formId;
@NotNull @NotNull(message = "组件id不能为空")
@ApiModelProperty("组件id") @ApiModelProperty("组件id")
private Long moduleId; private Long moduleId;
} }
@ -81,7 +77,7 @@ public class ModuleDto {
@Data @Data
@ApiModel("添加多个组件") @ApiModel("添加多个组件")
public static class SaveMoreModule{ public static class SaveMoreModule{
@NotNull @NotNull(message = "表单id不能为空")
@ApiModelProperty("表单id") @ApiModelProperty("表单id")
private Long formId; private Long formId;
@ApiModelProperty("组件id") @ApiModelProperty("组件id")

12
form/src/main/java/com/ccsens/form/bean/vo/FormVo.java

@ -40,15 +40,15 @@ public class FormVo {
@ApiModelProperty("表单内的组件id") @ApiModelProperty("表单内的组件id")
private Long formModuleId; private Long formModuleId;
@ApiModelProperty("组件类型 (单选:radio)(多选:CheckBox)(下拉菜单:pullDown)(文本:text)(多行文本:textarea)(富文本:richText)(日期:date)") @ApiModelProperty("组件类型 (单选:radio)(多选:CheckBox)(下拉菜单:pullDown)(文本:text)(多行文本:textarea)(富文本:richText)(日期:date)")
private byte type; private String type;
@ApiModelProperty("图标") @ApiModelProperty("图标")
private String logo; private String logo;
@ApiModelProperty("名称") @ApiModelProperty("名称")
private String name; private String name;
@ApiModelProperty("是否有选项 0否 1是") @ApiModelProperty("是否有选项 0否 1是")
private byte option; private Byte option;
@ApiModelProperty("关联层级数") @ApiModelProperty("关联层级数")
private byte hierarchy; private Byte hierarchy;
@ApiModelProperty("当前用户已填写的答案") @ApiModelProperty("当前用户已填写的答案")
private String answer; private String answer;
@ApiModelProperty("组件配置") @ApiModelProperty("组件配置")
@ -63,7 +63,7 @@ public class FormVo {
@ApiModelProperty("组件配置的id") @ApiModelProperty("组件配置的id")
private Long configId; private Long configId;
@ApiModelProperty("类型 0显示 1校验") @ApiModelProperty("类型 0显示 1校验")
private byte type; private Byte type;
@ApiModelProperty("配置类型code") @ApiModelProperty("配置类型code")
private String configKey; private String configKey;
@ApiModelProperty("内容") @ApiModelProperty("内容")
@ -80,9 +80,9 @@ public class FormVo {
@ApiModelProperty("选项value") @ApiModelProperty("选项value")
private String optionValue; private String optionValue;
@ApiModelProperty("排序") @ApiModelProperty("排序")
private int sequence; private Integer sequence;
@ApiModelProperty("是否被选中 0否 1是") @ApiModelProperty("是否被选中 0否 1是")
private byte choose; private Byte choose;
@ApiModelProperty("子选项") @ApiModelProperty("子选项")
private List<FormOptionVo> subOption; private List<FormOptionVo> subOption;
} }

10
form/src/main/java/com/ccsens/form/bean/vo/ModuleVo.java

@ -39,15 +39,15 @@ public class ModuleVo {
@ApiModelProperty("组件id") @ApiModelProperty("组件id")
private Long id; private Long id;
@ApiModelProperty("组件类型 (单选:radio)(多选:CheckBox)(下拉菜单:pullDown)(文本:text)(多行文本:textarea)(富文本:richText)(日期:date)") @ApiModelProperty("组件类型 (单选:radio)(多选:CheckBox)(下拉菜单:pullDown)(文本:text)(多行文本:textarea)(富文本:richText)(日期:date)")
private byte type; private String type;
@ApiModelProperty("图标") @ApiModelProperty("图标")
private String logo; private String logo;
@ApiModelProperty("名称") @ApiModelProperty("名称")
private String name; private String name;
@ApiModelProperty("是否有选项 0否 1是") @ApiModelProperty("是否有选项 0否 1是")
private byte option; private Byte option;
@ApiModelProperty("关联层级数") @ApiModelProperty("关联层级数")
private byte hierarchy; private Byte hierarchy;
@ApiModelProperty("组件配置") @ApiModelProperty("组件配置")
private List<ModuleConfig> moduleConfigList; private List<ModuleConfig> moduleConfigList;
@ApiModelProperty("选项信息") @ApiModelProperty("选项信息")
@ -60,7 +60,7 @@ public class ModuleVo {
@ApiModelProperty("组件配置的id") @ApiModelProperty("组件配置的id")
private Long configId; private Long configId;
@ApiModelProperty("类型 0显示 1校验") @ApiModelProperty("类型 0显示 1校验")
private byte type; private Byte type;
@ApiModelProperty("配置类型code") @ApiModelProperty("配置类型code")
private String configKey; private String configKey;
@ApiModelProperty("内容") @ApiModelProperty("内容")
@ -77,7 +77,7 @@ public class ModuleVo {
@ApiModelProperty("选项value") @ApiModelProperty("选项value")
private String optionValue; private String optionValue;
@ApiModelProperty("排序") @ApiModelProperty("排序")
private int sequence; private Integer sequence;
@ApiModelProperty("子选项") @ApiModelProperty("子选项")
private List<Option> subOption; private List<Option> subOption;
} }

2
form/src/main/java/com/ccsens/form/persist/dao/FormBasicDao.java

@ -44,5 +44,5 @@ public interface FormBasicDao extends FormBasicMapper {
* @param formModuleId 表单id * @param formModuleId 表单id
* @param userId userId 操作人id * @param userId userId 操作人id
*/ */
void deleteModule(@Param("formModuleId")Long formModuleId, @Param("formId")Long userId); void deleteModule(@Param("formModuleId")Long formModuleId, @Param("userId")Long userId);
} }

2
form/src/main/java/com/ccsens/form/persist/dao/ModuleDao.java

@ -61,5 +61,5 @@ public interface ModuleDao extends ModuleMapper {
* @param formId * @param formId
* @return * @return
*/ */
int getMaxSequence(@Param("formId")Long formId); Integer getMaxSequence(@Param("formId")Long formId);
} }

64
form/src/main/java/com/ccsens/form/service/FormService.java

@ -36,7 +36,7 @@ import java.util.List;
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class FormService implements IFormService{ public class FormService implements IFormService {
@Resource @Resource
private FormBasicDao formBasicDao; private FormBasicDao formBasicDao;
@Resource @Resource
@ -84,24 +84,25 @@ public class FormService implements IFormService{
//查找表单信息 //查找表单信息
FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId()); FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId());
if(ObjectUtil.isNotNull(formBasic)){ if (ObjectUtil.isNull(formBasic)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//验证是否是创建表单的用户 //验证是否是创建表单的用户
if(!formBasic.getUserId().equals(userId)){ if (!formBasic.getUserId().equals(userId)) {
throw new BaseException(CodeEnum.NOT_POWER); throw new BaseException(CodeEnum.NOT_POWER);
} }
if(StrUtil.isNotEmpty(param.getTitle())){ if (StrUtil.isNotEmpty(param.getTitle())) {
formBasic.setTitle(param.getTitle()); formBasic.setTitle(param.getTitle());
} }
if(StrUtil.isNotEmpty(param.getDescription())){ if (StrUtil.isNotEmpty(param.getDescription())) {
formBasic.setDescription(param.getDescription()); formBasic.setDescription(param.getDescription());
} }
if(ObjectUtil.isNotNull(param.getCoverImageId())){ if (ObjectUtil.isNotNull(param.getCoverImageId())) {
formBasic.setCoverImage(param.getCoverImageId()); formBasic.setCoverImage(param.getCoverImageId());
} }
formBasic.setOperator(userId); formBasic.setOperator(userId);
formBasicDao.updateByPrimaryKeySelective(formBasic); formBasicDao.updateByPrimaryKeySelective(formBasic);
} }
}
/** /**
* 删除表单同时删除表单内的组件组件的配置组件的选项用户表单的信息用户填写的信息 * 删除表单同时删除表单内的组件组件的配置组件的选项用户表单的信息用户填写的信息
@ -110,14 +111,16 @@ public class FormService implements IFormService{
public void deleteFormInfo(FormDto.GetFormInfo param, Long userId) { public void deleteFormInfo(FormDto.GetFormInfo param, Long userId) {
//查找表信息 //查找表信息
FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId()); FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId());
if(ObjectUtil.isNotNull(formBasic)) { if (ObjectUtil.isNull(formBasic)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//验证是否是创建表单的用户 //验证是否是创建表单的用户
if (!formBasic.getUserId().equals(userId)) { if (!formBasic.getUserId().equals(userId)) {
throw new BaseException(CodeEnum.NOT_POWER); throw new BaseException(CodeEnum.NOT_POWER);
} }
//删除表单和关联的信息 //删除表单和关联的信息
formBasicDao.deleteForm(param.getFormId(),userId); formBasicDao.deleteForm(param.getFormId(), userId);
}
} }
/** /**
@ -129,7 +132,7 @@ public class FormService implements IFormService{
//查询该用户是否有表单的记录信息 //查询该用户是否有表单的记录信息
FormUserExample formUserExample = new FormUserExample(); FormUserExample formUserExample = new FormUserExample();
formUserExample.createCriteria().andFormIdEqualTo(formInfo.getFormId()).andUserIdEqualTo(params.getUserId()); formUserExample.createCriteria().andFormIdEqualTo(formInfo.getFormId()).andUserIdEqualTo(params.getUserId());
if(formUserMapper.countByExample(formUserExample) > 0){ if (formUserMapper.countByExample(formUserExample) < 0) {
//没有则添加一条 状态为0未提交 //没有则添加一条 状态为0未提交
FormUser formUser = new FormUser(); FormUser formUser = new FormUser();
formUser.setId(snowflake.nextId()); formUser.setId(snowflake.nextId());
@ -142,39 +145,39 @@ public class FormService implements IFormService{
formUserMapper.insertSelective(formUser); formUserMapper.insertSelective(formUser);
} }
//查询表单信息和此用户填写的信息 //查询表单信息和此用户填写的信息
return getFormInfoByFormIdAndUserId(formInfo.getFormId(),params.getUserId()); return getFormInfoByFormIdAndUserId(formInfo.getFormId(), params.getUserId());
} }
@Override @Override
public FormVo.GetFormInfo getFormByFormUserId(FormDto.FormUser param) { public FormVo.GetFormInfo getFormByFormUserId(FormDto.FormUser param) {
FormUser formUser = formUserMapper.selectByPrimaryKey(param.getFormUserId()); FormUser formUser = formUserMapper.selectByPrimaryKey(param.getFormUserId());
if(ObjectUtil.isNull(formUser)) { if (ObjectUtil.isNull(formUser)) {
return null; return null;
} }
return getFormInfoByFormIdAndUserId(formUser.getFormId(),formUser.getUserId()); return getFormInfoByFormIdAndUserId(formUser.getFormId(), formUser.getUserId());
} }
private FormVo.GetFormInfo getFormInfoByFormIdAndUserId(Long formId,Long userId){ private FormVo.GetFormInfo getFormInfoByFormIdAndUserId(Long formId, Long userId) {
//获取表单基本信息 //获取表单基本信息
FormVo.GetFormInfo formInfo = new FormVo.GetFormInfo(); FormVo.GetFormInfo formInfo = new FormVo.GetFormInfo();
FormBasic formBasic = formBasicDao.selectByPrimaryKey(formId); FormBasic formBasic = formBasicDao.selectByPrimaryKey(formId);
if(ObjectUtil.isNotNull(formBasic)){ if (ObjectUtil.isNull(formBasic)) {
return formInfo; return formInfo;
} }
BeanUtil.copyProperties(formBasic,formInfo); BeanUtil.copyProperties(formBasic, formInfo);
//查找封面图片路径 //查找封面图片路径
CommonFile commonFile = commonFileMapper.selectByPrimaryKey(formBasic.getCoverImage()); CommonFile commonFile = commonFileMapper.selectByPrimaryKey(formBasic.getCoverImage());
if(ObjectUtil.isNotNull(commonFile)){ if (ObjectUtil.isNotNull(commonFile)) {
formInfo.setCoverImagePath(commonFile.getVisitLocation()); formInfo.setCoverImagePath(commonFile.getVisitLocation());
} }
//获取组件信息及除了选择题以外的答案 //获取组件信息及除了选择题以外的答案
List<FormVo.FormModuleVo> formModuleVo = formBasicDao.getFormModuleByFormId(formId, userId); List<FormVo.FormModuleVo> formModuleVo = formBasicDao.getFormModuleByFormId(formId, userId);
if(CollectionUtil.isNotEmpty(formModuleVo)){ if (CollectionUtil.isNotEmpty(formModuleVo)) {
formModuleVo.forEach(formModule -> { formModuleVo.forEach(formModule -> {
//获取组件配置信息 //获取组件配置信息
List<ModuleVo.ModuleConfig> moduleConfigList = moduleDao.getConfigByFormModuleId(formModule.getFormModuleId()); List<ModuleVo.ModuleConfig> moduleConfigList = moduleDao.getConfigByFormModuleId(formModule.getFormModuleId());
//没有配置信息则查询默认配置 //没有配置信息则查询默认配置
if(CollectionUtil.isEmpty(moduleConfigList)){ if (CollectionUtil.isEmpty(moduleConfigList)) {
moduleConfigList = moduleDao.getConfigByModuleId(formModule.getId()); moduleConfigList = moduleDao.getConfigByModuleId(formModule.getId());
} }
formModule.setModuleConfigList(moduleConfigList); formModule.setModuleConfigList(moduleConfigList);
@ -186,15 +189,16 @@ public class FormService implements IFormService{
formInfo.setModuleList(formModuleVo); formInfo.setModuleList(formModuleVo);
return formInfo; return formInfo;
} }
/** /**
* 通过表单内的组价id和上级id查看选项信息 * 通过表单内的组价id和上级id查看选项信息
*/ */
private List<FormVo.FormOptionVo> queryOption(Long formModuleId, Long parentId, Long userId){ private List<FormVo.FormOptionVo> queryOption(Long formModuleId, Long parentId, Long userId) {
List<FormVo.FormOptionVo> optionList = moduleDao.queryOption(formModuleId,parentId,userId); List<FormVo.FormOptionVo> optionList = moduleDao.queryOption(formModuleId, parentId, userId);
if(CollectionUtil.isNotEmpty(optionList)){ if (CollectionUtil.isNotEmpty(optionList)) {
optionList.forEach(option -> { optionList.forEach(option -> {
List<FormVo.FormOptionVo> subOptionList = queryOption(formModuleId,option.getId(),userId); List<FormVo.FormOptionVo> subOptionList = queryOption(formModuleId, option.getId(), userId);
if(CollectionUtil.isNotEmpty(subOptionList)) { if (CollectionUtil.isNotEmpty(subOptionList)) {
option.setSubOption(subOptionList); option.setSubOption(subOptionList);
} }
}); });
@ -236,26 +240,26 @@ public class FormService implements IFormService{
//表单的基本信息 //表单的基本信息
ModuleVo.FormInfo formInfo = new ModuleVo.FormInfo(); ModuleVo.FormInfo formInfo = new ModuleVo.FormInfo();
FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId()); FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId());
if(ObjectUtil.isNull(formBasic)){ if (ObjectUtil.isNull(formBasic)) {
return formInfo; return formInfo;
} }
BeanUtil.copyProperties(formBasic,formInfo); BeanUtil.copyProperties(formBasic, formInfo);
//查找封面图片路径 //查找封面图片路径
CommonFile commonFile = commonFileMapper.selectByPrimaryKey(formBasic.getCoverImage()); CommonFile commonFile = commonFileMapper.selectByPrimaryKey(formBasic.getCoverImage());
if(ObjectUtil.isNotNull(commonFile)){ if (ObjectUtil.isNotNull(commonFile)) {
formInfo.setCoverImagePath(commonFile.getVisitLocation()); formInfo.setCoverImagePath(commonFile.getVisitLocation());
} }
//查找关联的组件 //查找关联的组件
FormModuleExample formModuleExample = new FormModuleExample(); FormModuleExample formModuleExample = new FormModuleExample();
formModuleExample.createCriteria().andFormIdEqualTo(param.getFormId()); formModuleExample.createCriteria().andFormIdEqualTo(param.getFormId());
List<FormModule> formModuleList = formModuleMapper.selectByExample(formModuleExample); List<FormModule> formModuleList = formModuleMapper.selectByExample(formModuleExample);
if(CollectionUtil.isEmpty(formModuleList)){ if (CollectionUtil.isEmpty(formModuleList)) {
return formInfo; return formInfo;
} }
List<ModuleVo.ModuleInfo> moduleInfoList = new ArrayList<>(); List<ModuleVo.ModuleInfo> moduleInfoList = new ArrayList<>();
formModuleList.forEach(formModule -> { formModuleList.forEach(formModule -> {
ModuleVo.ModuleInfo moduleInfo = moduleService.getFormModule(new ModuleDto.GetFormModule(formModule.getId())); ModuleVo.ModuleInfo moduleInfo = moduleService.getFormModule(new ModuleDto.GetFormModule(formModule.getId()));
if(ObjectUtil.isNotNull(moduleInfo)) { if (ObjectUtil.isNotNull(moduleInfo)) {
moduleInfoList.add(moduleInfo); moduleInfoList.add(moduleInfo);
} }
}); });

84
form/src/main/java/com/ccsens/form/service/ModuleService.java

@ -27,7 +27,7 @@ import java.util.List;
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ModuleService implements IModuleService{ public class ModuleService implements IModuleService {
@Resource @Resource
private ModuleDao moduleDao; private ModuleDao moduleDao;
@Resource @Resource
@ -56,31 +56,32 @@ public class ModuleService implements IModuleService{
public ModuleVo.ModuleInfo getFormModule(ModuleDto.GetFormModule param) { public ModuleVo.ModuleInfo getFormModule(ModuleDto.GetFormModule param) {
//查找组件基本信息 //查找组件基本信息
ModuleVo.ModuleInfo moduleInfo = moduleDao.getModuleByFormModuleId(param.getFormModuleId()); ModuleVo.ModuleInfo moduleInfo = moduleDao.getModuleByFormModuleId(param.getFormModuleId());
if(ObjectUtil.isNotNull(moduleInfo)){ if (ObjectUtil.isNull(moduleInfo)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//查找当前组件的配置 //查找当前组件的配置
List<ModuleVo.ModuleConfig> moduleConfigList = moduleDao.getConfigByFormModuleId(param.getFormModuleId()); List<ModuleVo.ModuleConfig> moduleConfigList = moduleDao.getConfigByFormModuleId(param.getFormModuleId());
//没有配置信息则查询默认配置 //没有配置信息则查询默认配置
if(CollectionUtil.isEmpty(moduleConfigList)){ if (CollectionUtil.isEmpty(moduleConfigList)) {
moduleConfigList = moduleDao.getConfigByModuleId(moduleInfo.getId()); moduleConfigList = moduleDao.getConfigByModuleId(moduleInfo.getId());
} }
moduleInfo.setModuleConfigList(moduleConfigList); moduleInfo.setModuleConfigList(moduleConfigList);
//查找选项信息 //查找选项信息
List<ModuleVo.Option> optionList = getOptionByFormModuleId(param.getFormModuleId(),0L); List<ModuleVo.Option> optionList = getOptionByFormModuleId(param.getFormModuleId(), 0L);
moduleInfo.setOptionList(optionList); moduleInfo.setOptionList(optionList);
}
return moduleInfo; return moduleInfo;
} }
/** /**
* 通过表单内的组价id和上级id查看选项信息 * 通过表单内的组价id和上级id查看选项信息
*/ */
private List<ModuleVo.Option> getOptionByFormModuleId(Long formModuleId,Long parentId){ private List<ModuleVo.Option> getOptionByFormModuleId(Long formModuleId, Long parentId) {
List<ModuleVo.Option> optionList = moduleDao.getOptionByFormModuleId(formModuleId,parentId); List<ModuleVo.Option> optionList = moduleDao.getOptionByFormModuleId(formModuleId, parentId);
if(CollectionUtil.isNotEmpty(optionList)){ if (CollectionUtil.isNotEmpty(optionList)) {
optionList.forEach(option -> { optionList.forEach(option -> {
List<ModuleVo.Option> subOptionList = getOptionByFormModuleId(formModuleId,option.getId()); List<ModuleVo.Option> subOptionList = getOptionByFormModuleId(formModuleId, option.getId());
if(CollectionUtil.isNotEmpty(subOptionList)) { if (CollectionUtil.isNotEmpty(subOptionList)) {
option.setSubOption(subOptionList); option.setSubOption(subOptionList);
} }
}); });
@ -93,12 +94,12 @@ public class ModuleService implements IModuleService{
* 修改组件的配置和选项 * 修改组件的配置和选项
*/ */
@Override @Override
public void updateFormModule(ModuleDto.UpdateFormModule param,Long userId) { public void updateFormModule(ModuleDto.UpdateFormModule param, Long userId) {
//查询以前的配置,删除 //查询以前的配置,删除
FormModuleConfigExample moduleConfigExample = new FormModuleConfigExample(); FormModuleConfigExample moduleConfigExample = new FormModuleConfigExample();
moduleConfigExample.createCriteria().andFormModuleIdEqualTo(param.getFormModuleId()); moduleConfigExample.createCriteria().andFormModuleIdEqualTo(param.getFormModuleId());
List<FormModuleConfig> formModuleConfigList = formModuleConfigMapper.selectByExample(moduleConfigExample); List<FormModuleConfig> formModuleConfigList = formModuleConfigMapper.selectByExample(moduleConfigExample);
if(CollectionUtil.isNotEmpty(formModuleConfigList)){ if (CollectionUtil.isNotEmpty(formModuleConfigList)) {
formModuleConfigList.forEach(formModuleConfig -> { formModuleConfigList.forEach(formModuleConfig -> {
formModuleConfig.setRecStatus((byte) 2); formModuleConfig.setRecStatus((byte) 2);
formModuleConfig.setOperator(userId); formModuleConfig.setOperator(userId);
@ -109,7 +110,7 @@ public class ModuleService implements IModuleService{
FormModuleOptionExample moduleOptionExample = new FormModuleOptionExample(); FormModuleOptionExample moduleOptionExample = new FormModuleOptionExample();
moduleOptionExample.createCriteria().andFormModuleIdEqualTo(param.getFormModuleId()); moduleOptionExample.createCriteria().andFormModuleIdEqualTo(param.getFormModuleId());
List<FormModuleOption> formModuleOptionList = formModuleOptionMapper.selectByExample(moduleOptionExample); List<FormModuleOption> formModuleOptionList = formModuleOptionMapper.selectByExample(moduleOptionExample);
if(CollectionUtil.isNotEmpty(formModuleOptionList)){ if (CollectionUtil.isNotEmpty(formModuleOptionList)) {
formModuleOptionList.forEach(formModuleOption -> { formModuleOptionList.forEach(formModuleOption -> {
formModuleOption.setRecStatus((byte) 2); formModuleOption.setRecStatus((byte) 2);
formModuleOption.setOperator(userId); formModuleOption.setOperator(userId);
@ -117,7 +118,7 @@ public class ModuleService implements IModuleService{
}); });
} }
//添加新配置 //添加新配置
if(CollectionUtil.isNotEmpty(param.getConfigList())){ if (CollectionUtil.isNotEmpty(param.getConfigList())) {
param.getConfigList().forEach(config -> { param.getConfigList().forEach(config -> {
FormModuleConfig formModuleConfig = new FormModuleConfig(); FormModuleConfig formModuleConfig = new FormModuleConfig();
formModuleConfig.setId(snowflake.nextId()); formModuleConfig.setId(snowflake.nextId());
@ -130,13 +131,13 @@ public class ModuleService implements IModuleService{
}); });
} }
//添加新选项 //添加新选项
saveOption(param.getOptionList(),param.getFormModuleId(),userId,0L); saveOption(param.getOptionList(), param.getFormModuleId(), userId, 0L);
} }
private void saveOption(List<ModuleDto.ModuleOption> moduleOptionList, Long formModuleId, Long userId, Long parentId){ private void saveOption(List<ModuleDto.ModuleOption> moduleOptionList, Long formModuleId, Long userId, Long parentId) {
if(CollectionUtil.isNotEmpty(moduleOptionList)){ if (CollectionUtil.isNotEmpty(moduleOptionList)) {
int sequence = 1; int sequence = 1;
for (ModuleDto.ModuleOption moduleOption : moduleOptionList){ for (ModuleDto.ModuleOption moduleOption : moduleOptionList) {
FormModuleOption formModuleOption = new FormModuleOption(); FormModuleOption formModuleOption = new FormModuleOption();
formModuleOption.setId(snowflake.nextId()); formModuleOption.setId(snowflake.nextId());
formModuleOption.setFormModuleId(formModuleId); formModuleOption.setFormModuleId(formModuleId);
@ -146,8 +147,8 @@ public class ModuleService implements IModuleService{
formModuleOption.setOptionKey(moduleOption.getOptionKey()); formModuleOption.setOptionKey(moduleOption.getOptionKey());
formModuleOption.setOptionValue(moduleOption.getOptionValue()); formModuleOption.setOptionValue(moduleOption.getOptionValue());
formModuleOptionMapper.insertSelective(formModuleOption); formModuleOptionMapper.insertSelective(formModuleOption);
if(CollectionUtil.isNotEmpty(moduleOption.getSubOptionList())){ if (CollectionUtil.isNotEmpty(moduleOption.getSubOptionList())) {
saveOption(moduleOption.getSubOptionList(),formModuleId,userId,formModuleOption.getId()); saveOption(moduleOption.getSubOptionList(), formModuleId, userId, formModuleOption.getId());
} }
sequence++; sequence++;
} }
@ -156,6 +157,7 @@ public class ModuleService implements IModuleService{
/** /**
* 添加组件 * 添加组件
*
* @param param 表单id 和组件id * @param param 表单id 和组件id
* @param userId 组件id * @param userId 组件id
*/ */
@ -163,13 +165,20 @@ public class ModuleService implements IModuleService{
public void saveModule(ModuleDto.SaveModule param, Long userId) { public void saveModule(ModuleDto.SaveModule param, Long userId) {
//查找表单信息 //查找表单信息
FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId()); FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId());
if(ObjectUtil.isNotNull(formBasic)) { if (ObjectUtil.isNull(formBasic)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//验证是否是创建表单的用户 //验证是否是创建表单的用户
if (!formBasic.getUserId().equals(userId)) { if (!formBasic.getUserId().equals(userId)) {
throw new BaseException(CodeEnum.NOT_POWER); throw new BaseException(CodeEnum.NOT_POWER);
} }
Module module = moduleDao.selectByPrimaryKey(param.getModuleId());
if (ObjectUtil.isNull(module)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//查找该表单内组件当前的最大排序 //查找该表单内组件当前的最大排序
int sequence = moduleDao.getMaxSequence(param.getFormId()); Integer sequence = moduleDao.getMaxSequence(param.getFormId());
sequence = sequence == null ? 0 : sequence;
//添加数据 //添加数据
FormModule formModule = new FormModule(); FormModule formModule = new FormModule();
formModule.setId(snowflake.nextId()); formModule.setId(snowflake.nextId());
@ -178,11 +187,12 @@ public class ModuleService implements IModuleService{
formModule.setSequence(sequence + 1); formModule.setSequence(sequence + 1);
formModule.setOperator(userId); formModule.setOperator(userId);
formModuleMapper.insertSelective(formModule); formModuleMapper.insertSelective(formModule);
}
} }
/** /**
* 同时添加多个组件 * 同时添加多个组件
*
* @param param 表单id和组件id * @param param 表单id和组件id
* @param userId userId * @param userId userId
*/ */
@ -190,15 +200,22 @@ public class ModuleService implements IModuleService{
public void saveMoreModule(ModuleDto.SaveMoreModule param, Long userId) { public void saveMoreModule(ModuleDto.SaveMoreModule param, Long userId) {
//查找表单信息 //查找表单信息
FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId()); FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId());
if(ObjectUtil.isNotNull(formBasic)) { if (ObjectUtil.isNull(formBasic)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//验证是否是创建表单的用户 //验证是否是创建表单的用户
if (!formBasic.getUserId().equals(userId)) { if (!formBasic.getUserId().equals(userId)) {
throw new BaseException(CodeEnum.NOT_POWER); throw new BaseException(CodeEnum.NOT_POWER);
} }
if(CollectionUtil.isNotEmpty(param.getModuleIdList())){ if (CollectionUtil.isNotEmpty(param.getModuleIdList())) {
//查找该表单内组件当前的最大排序 //查找该表单内组件当前的最大排序
int sequence = moduleDao.getMaxSequence(param.getFormId()); Integer sequence = moduleDao.getMaxSequence(param.getFormId());
for(Long moduleId : param.getModuleIdList()){ sequence = sequence == null ? 0 : sequence;
for (Long moduleId : param.getModuleIdList()) {
Module module = moduleDao.selectByPrimaryKey(moduleId);
if (ObjectUtil.isNull(module)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
sequence++; sequence++;
//添加数据 //添加数据
FormModule formModule = new FormModule(); FormModule formModule = new FormModule();
@ -211,10 +228,10 @@ public class ModuleService implements IModuleService{
} }
} }
} }
}
/** /**
* 删除表单内的组件 * 删除表单内的组件
*
* @param param 表单内的组件id * @param param 表单内的组件id
* @param userId userId * @param userId userId
*/ */
@ -222,15 +239,20 @@ public class ModuleService implements IModuleService{
public void deleteFormModule(ModuleDto.GetFormModule param, Long userId) { public void deleteFormModule(ModuleDto.GetFormModule param, Long userId) {
//查找表单内的组件的信息信息 //查找表单内的组件的信息信息
FormModule formModule = formModuleMapper.selectByPrimaryKey(param.getFormModuleId()); FormModule formModule = formModuleMapper.selectByPrimaryKey(param.getFormModuleId());
if(ObjectUtil.isNotNull(formModule)) { if (ObjectUtil.isNull(formModule)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//查找表单信息 //查找表单信息
FormBasic formBasic = formBasicDao.selectByPrimaryKey(formModule.getFormId()); FormBasic formBasic = formBasicDao.selectByPrimaryKey(formModule.getFormId());
if (ObjectUtil.isNull(formBasic)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//验证是否是创建表单的用户 //验证是否是创建表单的用户
if (!formBasic.getUserId().equals(userId)) { if (!formBasic.getUserId().equals(userId)) {
throw new BaseException(CodeEnum.NOT_POWER); throw new BaseException(CodeEnum.NOT_POWER);
} }
//删除组件和关联的信息 //删除组件和关联的信息
formBasicDao.deleteModule(param.getFormModuleId(),userId); formBasicDao.deleteModule(param.getFormModuleId(), userId);
}
} }
} }

2
form/src/main/resources/application-dev.yml

@ -4,7 +4,7 @@ server:
context-path: context-path:
spring: spring:
application: application:
name: wisdomcar name: form
datasource: datasource:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
rabbitmq: rabbitmq:

4
form/src/main/resources/mapper_dao/FormBasicDao.xml

@ -40,7 +40,7 @@
t_form_module fm t_form_module fm
LEFT JOIN t_form_module_config mc on mc.form_module_id = fm.id and mc.rec_status = 0 LEFT JOIN t_form_module_config mc on mc.form_module_id = fm.id and mc.rec_status = 0
LEFT JOIN t_form_module_option o on o.form_module_id = fm.id and o.rec_status = 0 LEFT JOIN t_form_module_option o on o.form_module_id = fm.id and o.rec_status = 0
LEFT JOIN t_form_write w on w.form_module_id = u.id and w.rec_status = 0 LEFT JOIN t_form_write w on w.form_module_id = fm.id and w.rec_status = 0
SET SET
fm.rec_status = 2, fm.rec_status = 2,
fm.operator = #{userId}, fm.operator = #{userId},
@ -52,7 +52,7 @@
w.operator = #{userId} w.operator = #{userId}
WHERE WHERE
fm.id = #{formModuleId} fm.id = #{formModuleId}
and fb.rec_status = 0 and fm.rec_status = 0
</update> </update>
<select id="getFormList" resultType="com.ccsens.form.bean.vo.FormVo$FormList"> <select id="getFormList" resultType="com.ccsens.form.bean.vo.FormVo$FormList">

3
form/src/main/resources/mapper_dao/ModuleDao.xml

@ -120,7 +120,8 @@
LEFT JOIN LEFT JOIN
( (
SELECT SELECT
w.answer w.answer,
w.option_id
FROM FROM
t_form_write w, t_form_write w,
t_form_user u t_form_user u

5
util/src/main/java/com/ccsens/util/QrCodeUtil.java

@ -104,7 +104,10 @@ public class QrCodeUtil {
HashMap<EncodeHintType, Object> hints = new HashMap<>(); HashMap<EncodeHintType, Object> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bitMatrix =qrCodeWriter.encode(value, BarcodeFormat.QR_CODE, 1000, 1000,hints); BitMatrix bitMatrix =qrCodeWriter.encode(value, BarcodeFormat.QR_CODE, 1000, 1000,hints);
File file = new File(filePath, fileName);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
Path path = FileSystems.getDefault().getPath(filePath + fileName); Path path = FileSystems.getDefault().getPath(filePath + fileName);
MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);

Loading…
Cancel
Save