From cebb05f8d1ddbf5ac415c5471e17d2d94ea1a6de Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期三, 15 五月 2024 18:14:07 +0800 Subject: [PATCH] zjh 2024/05/15-1 --- ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java | 624 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 314 insertions(+), 310 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java index ffda232..1cd982f 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java @@ -1,311 +1,315 @@ -//package com.ltkj.web.tduck; -// -//import cn.hutool.core.util.ObjectUtil; -//import cn.hutool.core.util.StrUtil; -//import cn.hutool.json.JSONObject; -//import cn.hutool.json.JSONUtil; -//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -//import com.baomidou.mybatisplus.core.toolkit.Wrappers; -//import com.ltkj.common.core.domain.AjaxResult; -//import com.ltkj.tduck.constant.CommonConstants; -//import com.ltkj.tduck.domain.*; -//import com.ltkj.tduck.enums.FormStatusEnum; -//import com.ltkj.tduck.enums.FormTypeEnum; -//import com.ltkj.tduck.request.QueryFormItemRequest; -//import com.ltkj.tduck.request.QueryFormRequest; -//import com.ltkj.tduck.request.QueryFormTemplateTypeRequest; -//import com.ltkj.tduck.request.SortFormItemRequest; -//import com.ltkj.tduck.service.*; -//import com.ltkj.tduck.utils.FormDataUtils; -//import com.ltkj.tduck.utils.Result; -//import com.ltkj.tduck.utils.SortUtils; -//import com.ltkj.tduck.utils.ValidatorUtils; -//import com.ltkj.tduck.vo.FormFieldVO; -//import com.ltkj.tduck.vo.OperateFormItemVO; -//import com.ltkj.tduck.vo.UserFormDetailVO; -//import lombok.RequiredArgsConstructor; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.web.bind.annotation.*; -// -//import javax.annotation.Resource; -//import javax.annotation.security.PermitAll; -//import javax.validation.constraints.NotBlank; -//import java.util.ArrayList; -//import java.util.Comparator; -//import java.util.Date; -//import java.util.List; -// -// -///** -// * 鐢ㄦ埛琛ㄥ崟 -// **/ -//@RequiredArgsConstructor -//@RestController -//@Slf4j -////@RequestMapping("/tduck-api") -//public class UserFormController { -// @Resource -// private final UserFormService formService; -// @Resource -// private final UserFormItemService formItemService; -// @Resource -// private final FormTemplateCategoryService formTemplateCategoryService; -// @Resource -// private final SortUtils sortUtils; -// -// private final UserFormThemeService userFormThemeService; -// private final UserFormLogicService userFormLogicService; -// -// -// /** -// * 鏌ヨ琛ㄥ崟 -// */ -// @GetMapping("/user/form/{key}") -// public AjaxResult queryFormByKey(@PathVariable @NotBlank String key) { -// return AjaxResult.success(formService.getByKey(key)); -// } -// -// /** -// * 椤圭洰琛ㄥ崟椤规煡璇� -// */ -// @GetMapping("/user/form/item/list") -// public AjaxResult queryFormItems(QueryFormItemRequest request) { +package com.ltkj.web.tduck; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ltkj.common.core.domain.AjaxResult; +import com.ltkj.tduck.constant.CommonConstants; +import com.ltkj.tduck.domain.*; +import com.ltkj.tduck.enums.FormStatusEnum; +import com.ltkj.tduck.enums.FormTypeEnum; +import com.ltkj.tduck.request.QueryFormItemRequest; +import com.ltkj.tduck.request.QueryFormRequest; +import com.ltkj.tduck.request.QueryFormTemplateTypeRequest; +import com.ltkj.tduck.request.SortFormItemRequest; +import com.ltkj.tduck.service.*; +import com.ltkj.tduck.utils.FormDataUtils; +import com.ltkj.tduck.utils.Result; +import com.ltkj.tduck.utils.SortUtils; +import com.ltkj.tduck.utils.ValidatorUtils; +import com.ltkj.tduck.vo.FormFieldVO; +import com.ltkj.tduck.vo.OperateFormItemVO; +import com.ltkj.tduck.vo.UserFormDetailVO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.validation.constraints.NotBlank; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.Date; +import java.util.List; + + +/** + * 鐢ㄦ埛琛ㄥ崟 + **/ +@RequiredArgsConstructor +@RestController +@Slf4j +//@RequestMapping("/tduck-api") +public class UserFormController { + @Resource + private final UserFormService formService; + @Resource + private final UserFormItemService formItemService; + @Resource + private final FormTemplateCategoryService formTemplateCategoryService; + @Resource + private final SortUtils sortUtils; + + private final UserFormThemeService userFormThemeService; + private final UserFormLogicService userFormLogicService; + + + /** + * 鏌ヨ琛ㄥ崟 + */ + @GetMapping("/user/form/{key}") + public AjaxResult queryFormByKey(@PathVariable @NotBlank String key) { + return AjaxResult.success(formService.getByKey(key)); + } + + /** + * 椤圭洰琛ㄥ崟椤规煡璇� + */ + @GetMapping("/user/form/item/list") + public AjaxResult queryFormItems(QueryFormItemRequest request) { + ValidatorUtils.validateEntity(request); +// FormAuthUtils.hasPermission(request.getKey()); + List<UserFormItemEntity> itemEntityList = formItemService + .list(Wrappers.<UserFormItemEntity>lambdaQuery() + .eq(UserFormItemEntity::getFormKey, request.getKey()) + .eq(ObjectUtil.isNotNull(request.getDisplayType()), + UserFormItemEntity::getDisplayType, request.getDisplayType())); + itemEntityList.sort(Comparator.comparing(UserFormItemEntity::getSort)); + return AjaxResult.success(itemEntityList); + } + + + /** + * 鍒嗛〉鏌ヨ椤圭洰鍒嗙被 + * + * @return + */ + @GetMapping("/form/template/type/list") + public AjaxResult queryFormTemplateTypes(QueryFormTemplateTypeRequest.List request) { + return AjaxResult.success(formTemplateCategoryService.list(Wrappers.<FormTemplateCategoryEntity>lambdaQuery() + .orderByDesc(FormTemplateCategoryEntity::getSort))); + } + + + /** + * 琛ㄥ崟鏇存柊 + * + * @param form + */ + @PostMapping("/user/form/update") + public AjaxResult updateForm(@RequestBody UserFormEntity form) { +// ValidatorUtils.validateEntity(form, AddGroup.class); + UserFormEntity oldForm = formService.getByKey(form.getFormKey()); + if (ObjectUtil.isNotNull(oldForm)) { + form.setId(oldForm.getId()); + formService.updateById(form); + } + return AjaxResult.success(); + } + + + /** + * 椤圭洰琛ㄥ崟椤瑰垱寤� + * + * @param entity + */ + @PostMapping("/user/form/item/create") + public AjaxResult createFormItem(@RequestBody UserFormItemEntity entity) { +// ValidatorUtils.validateEntity(entity, AddGroup.class); + if (ObjectUtil.isNull(entity.getDisplayType())) { + entity.setDisplayType(false); + } + if (ObjectUtil.isNull(entity.getHideType())) { + entity.setHideType(false); + } + //鎺掑簭涓嬫爣璁$畻 + entity.setSort(sortUtils.getInitialSortPosition(entity.getFormKey())); + entity.setSpecialType(formItemService.isSpecialTypeItem(entity)); + entity.setCreateTime(new Date()); + boolean save = formItemService.save(entity); + return AjaxResult.success(new OperateFormItemVO(entity.getSort(), entity.getId(), save, false)); + } + + + /** + * 鎵归噺椤圭洰琛ㄥ崟椤瑰垱寤� + */ + @PostMapping("/user/form/item/batch/create") + public AjaxResult batchCreateFormItem(@RequestBody List<UserFormItemEntity> itemEntityList) { + //鎺掑簭涓嬫爣璁$畻 + itemEntityList.forEach(item -> item.setSort(sortUtils.getInitialSortPosition(item.getFormKey()))); + itemEntityList.forEach(item -> item.setDisplayType(false)); + itemEntityList.forEach(item -> item.setHideType(false)); + itemEntityList.forEach(item -> item.setSpecialType(false)); + boolean save = formItemService.saveBatch(itemEntityList); + AjaxResult ajaxResult = new AjaxResult(); + ajaxResult.put("code", 200); + ajaxResult.put("data", null); + ajaxResult.put("msg", null); + return ajaxResult; + } + + + /** + * 琛ㄥ崟椤瑰垹闄� + */ + @PostMapping("/user/form/item/delete") + public AjaxResult deleteFormItem(@RequestBody UserFormItemEntity request) { +// FormAuthUtils.hasPermission(request.getFormKey()); + boolean delete = formItemService.remove(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId())); + return AjaxResult.success(delete); + } + + + /** + * 琛ㄥ崟椤规洿鏂� + * + * @param request + */ + @PostMapping("/user/form/item/update") + public AjaxResult updateFormItem(@RequestBody UserFormItemEntity request) { +// FormAuthUtils.hasPermission(request.getFormKey()); +// ValidatorUtils.validateEntity(request, UpdateGroup.class); + request.setSpecialType(formItemService.isSpecialTypeItem(request)); + boolean update = formItemService.update(request, Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId())); + return AjaxResult.success(update); + } + + /** + * 琛ㄥ崟椤规帓搴� + * + * @param request + */ + @PostMapping("/user/form/item/sort") + public AjaxResult sortFormItem(@RequestBody SortFormItemRequest request) { // ValidatorUtils.validateEntity(request); -//// FormAuthUtils.hasPermission(request.getKey()); -// List<UserFormItemEntity> itemEntityList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getKey()).eq(ObjectUtil.isNotNull(request.getDisplayType()), UserFormItemEntity::getDisplayType, request.getDisplayType())); -// itemEntityList.sort(Comparator.comparing(UserFormItemEntity::getSort)); -// return AjaxResult.success(itemEntityList); -// } -// -// -// /** -// * 鍒嗛〉鏌ヨ椤圭洰鍒嗙被 -// * -// * @return -// */ -// @GetMapping("/form/template/type/list") -// public AjaxResult queryFormTemplateTypes(QueryFormTemplateTypeRequest.List request) { -// return AjaxResult.success(formTemplateCategoryService.list(Wrappers.<FormTemplateCategoryEntity>lambdaQuery() -// .orderByDesc(FormTemplateCategoryEntity::getSort))); -// } -// -// -// /** -// * 琛ㄥ崟鏇存柊 -// * -// * @param form -// */ -// @PostMapping("/user/form/update") -// public AjaxResult updateForm(@RequestBody UserFormEntity form) { -//// ValidatorUtils.validateEntity(form, AddGroup.class); -// UserFormEntity oldForm = formService.getByKey(form.getFormKey()); -// if (ObjectUtil.isNotNull(oldForm)) { -// form.setId(oldForm.getId()); -// formService.updateById(form); -// } -// return AjaxResult.success(); -// } -// -// -// /** -// * 椤圭洰琛ㄥ崟椤瑰垱寤� -// * -// * @param entity -// */ -// @PostMapping("/user/form/item/create") -// public AjaxResult createFormItem(@RequestBody UserFormItemEntity entity) { -//// ValidatorUtils.validateEntity(entity, AddGroup.class); -// if (ObjectUtil.isNull(entity.getDisplayType())) { -// entity.setDisplayType(false); -// } -// if (ObjectUtil.isNull(entity.getHideType())) { -// entity.setHideType(false); -// } -// //鎺掑簭涓嬫爣璁$畻 -// entity.setSort(sortUtils.getInitialSortPosition(entity.getFormKey())); -// entity.setSpecialType(formItemService.isSpecialTypeItem(entity)); -// entity.setCreateTime(new Date()); -// boolean save = formItemService.save(entity); -// return AjaxResult.success(new OperateFormItemVO(entity.getSort(), entity.getId(), save, false)); -// } -// -// -// /** -// * 鎵归噺椤圭洰琛ㄥ崟椤瑰垱寤� -// */ -// @PostMapping("/user/form/item/batch/create") -// public AjaxResult batchCreateFormItem(@RequestBody List<UserFormItemEntity> itemEntityList) { -// //鎺掑簭涓嬫爣璁$畻 -// itemEntityList.forEach(item -> item.setSort(sortUtils.getInitialSortPosition(item.getFormKey()))); -// itemEntityList.forEach(item -> item.setDisplayType(false)); -// itemEntityList.forEach(item -> item.setHideType(false)); -// itemEntityList.forEach(item -> item.setSpecialType(false)); -// boolean save = formItemService.saveBatch(itemEntityList); -// AjaxResult ajaxResult = new AjaxResult(); -// ajaxResult.put("code", 200); -// ajaxResult.put("data", null); -// ajaxResult.put("msg", null); -// return ajaxResult; -// } -// -// -// /** -// * 琛ㄥ崟椤瑰垹闄� -// */ -// @PostMapping("/user/form/item/delete") -// public AjaxResult deleteFormItem(@RequestBody UserFormItemEntity request) { -//// FormAuthUtils.hasPermission(request.getFormKey()); -// boolean delete = formItemService.remove(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId())); -// return AjaxResult.success(delete); -// } -// -// -// /** -// * 琛ㄥ崟椤规洿鏂� -// * -// * @param request -// */ -// @PostMapping("/user/form/item/update") -// public AjaxResult updateFormItem(@RequestBody UserFormItemEntity request) { -//// FormAuthUtils.hasPermission(request.getFormKey()); -//// ValidatorUtils.validateEntity(request, UpdateGroup.class); -// request.setSpecialType(formItemService.isSpecialTypeItem(request)); -// boolean update = formItemService.update(request, Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId())); -// return AjaxResult.success(update); -// } -// -// /** -// * 琛ㄥ崟椤规帓搴� -// * -// * @param request -// */ -// @PostMapping("/user/form/item/sort") -// public AjaxResult sortFormItem(@RequestBody SortFormItemRequest request) { -//// ValidatorUtils.validateEntity(request); -// if (ObjectUtil.isNull(request.getAfterPosition()) && ObjectUtil.isNull(request.getBeforePosition())) { -// return AjaxResult.success(); -// } -// UserFormItemEntity itemEntity = formItemService.getOne(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId())); -// Long sort = sortUtils.calcSortPosition(request.getBeforePosition(), request.getAfterPosition(), request.getFormKey()); -// if (sortUtils.sortAllList(request.getBeforePosition(), request.getAfterPosition(), request.getFormKey(), sort)) { -// return AjaxResult.success(new OperateFormItemVO(itemEntity.getSort(), itemEntity.getId(), true, true)); -// } -// itemEntity.setSort(sort); -// boolean b = formItemService.updateById(itemEntity); -// return AjaxResult.success(new OperateFormItemVO(itemEntity.getSort(), itemEntity.getId(), b, false)); -// } -// -// -// /** -// * 鏌ヨ琛ㄥ崟璇︽儏 -// * 鍖呭惈琛ㄥ崟淇℃伅 琛ㄥ崟瀛楁淇℃伅 琛ㄥ崟涓婚 -// * -// * @param key -// */ -// @GetMapping("/user/form/details/{key}") -// @PermitAll -// public AjaxResult queryFormDetails(@PathVariable @NotBlank String key) { -// UserFormEntity form = formService.getByKey(key); -// if (ObjectUtil.isNull(form)) { -// return AjaxResult.success(); -// } -// List<UserFormItemEntity> formItemList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().ne(UserFormItemEntity::getHideType, 1).eq(UserFormItemEntity::getFormKey, key)); -// formItemList.sort(Comparator.comparing(UserFormItemEntity::getSort)); -// UserFormThemeEntity theme = userFormThemeService.getByKey(key); -// UserFormLogicEntity formLogic = userFormLogicService.getOne(Wrappers.<UserFormLogicEntity>lambdaQuery().eq(UserFormLogicEntity::getFormKey, key)); -// // 濡傛灉鏄�冭瘯 绉婚櫎姝g‘绛旀 閬垮厤鎶婃纭瓟妗堣繑鍥炲埌鍓嶇 -// if (form.getType() == FormTypeEnum.EXAM.getValue().toString()) { -// formItemList.forEach(item -> { -// JSONObject schemeJson = JSONUtil.parseObj(item.getScheme()); -// if (schemeJson.containsKey("examConfig")) { -// schemeJson.getJSONObject("examConfig").remove("answer"); -// } -// item.setScheme(schemeJson); -// }); -// } -// return AjaxResult.success(new UserFormDetailVO(new UserFormDetailVO.UserForm(form), formItemList, theme, formLogic)); -// } -// -// -// /** -// * 鍙戝竷琛ㄥ崟 -// */ -// @PostMapping("/user/form/publish") -// public AjaxResult publishForm(@RequestBody UserFormEntity request) { -//// FormAuthUtils.hasPermission(request.getFormKey()); -// long count = formItemService.count(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey())); -// if (count == CommonConstants.ConstantNumber.ZERO) { -// return AjaxResult.error("鏃犳湁鏁堣〃鍗曢」锛屾棤娉曞彂甯�"); -// } -// UserFormEntity entity = formService.getByKey(request.getFormKey()); -// entity.setStatus(2); -// return AjaxResult.success(formService.updateById(entity)); -// } -// -// -// /** -// * 鍋滄鏀堕泦 -// * -// * @param request -// */ -// @PostMapping("/user/form/stop") -// public Result stopForm(@RequestBody UserFormEntity request) { -//// FormAuthUtils.hasPermission(request.getFormKey()); -// UserFormEntity entity = formService.getByKey(request.getFormKey()); -// entity.setStatus(3); -// return Result.success(formService.updateById(entity)); -// } -// -// -// /** -// * 鏌ヨ鎴戠殑琛ㄥ崟鍒嗛〉 -// */ -// @GetMapping("/user/form/page") -// public Result queryMyForms(@RequestAttribute Long userId, QueryFormRequest.Page request) { -// LambdaQueryWrapper<UserFormEntity> queryWrapper = Wrappers.<UserFormEntity>lambdaQuery().eq(UserFormEntity::getUserId, userId) -// .eq(ObjectUtil.isNotNull(request.getFolder()), UserFormEntity::getFolder, request.getFolder()) -// .eq(ObjectUtil.isNotNull(request.getType()), UserFormEntity::getType, request.getType()) -// .eq(UserFormEntity::getDeleted, 0).func(i -> { -// // 閫氳繃鏂囦欢鍚嶆悳绱㈡椂 鍙互鎼滅储鍒板瓙鏂囦欢澶逛笅鐨勮〃鍗� -// if (StrUtil.isNotBlank(request.getName()) && request.getFolderId() == 0) { -// } else { -// i.eq(UserFormEntity::getFolderId, request.getFolderId()); -// } -// }).eq(ObjectUtil.isNotNull(request.getStatus()), UserFormEntity::getStatus, request.getStatus()).like(StrUtil.isNotBlank(request.getName()), -// UserFormEntity::getName, request.getName()).le(ObjectUtil.isNotNull(request.getEndDateTime()), UserFormEntity::getUpdateTime, -// request.getEndDateTime()).ge(ObjectUtil.isNotNull(request.getBeginDateTime()), UserFormEntity::getUpdateTime, -// request.getBeginDateTime()).orderByDesc(UserFormEntity::getFolder) -//// .orderByDesc(TBaseEntity::getCreateTime) -// ; -// return Result.success(formService.page(request.toMybatisPage(), queryWrapper)); -// } -// -// -// /** -// * 鑾峰彇琛ㄥ崟瀛楁 鍖呮嫭绯荤粺榛樿瀛楁 -// */ -// @GetMapping("/user/form/fields/{formKey}") -// public Result queryUserFormFields(@PathVariable String formKey) { -// return Result.success(formItemService.listAllFormFields(formKey)); -// } -// -// /** -// * 鑾峰彇琛ㄥ崟鍥哄畾瀛楁 -// * 鎵�鏈夎〃鍗曢兘鍖呭惈 鐢ㄤ簬鏌ョ湅璇︽儏鍙充晶鏄剧ず -// */ -// @GetMapping("/user/form/fixed/fields/{formKey}") -// public Result queryUserFormFixedFields(@PathVariable String formKey) { -// // 鏌ヨ琛ㄥ崟绫诲瀷 -// UserFormEntity userFormEntity = formService.getByKey(formKey); -// List<FormFieldVO> fields = new ArrayList<>(); -// FormDataUtils.addFormBaseDataField(fields); -// fields.add(new FormFieldVO("submitUaOs", "鎿嶄綔绯荤粺")); -// fields.add(new FormFieldVO("submitUaDevice", "璁惧")); -// fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitBrowser, "娴忚鍣�")); -// fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitAddress, "鍦板潃")); -// fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitRequestIp, "IP")); -// fields.add(new FormFieldVO(UserFormDataEntity.Fields.wxUserInfo, "寰俊鐢ㄦ埛")); -// return Result.success(fields); -// } -// -//} + if (ObjectUtil.isNull(request.getAfterPosition()) && ObjectUtil.isNull(request.getBeforePosition())) { + return AjaxResult.success(); + } + UserFormItemEntity itemEntity = formItemService.getOne(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId())); + Long sort = sortUtils.calcSortPosition(request.getBeforePosition(), request.getAfterPosition(), request.getFormKey()); + if (sortUtils.sortAllList(request.getBeforePosition(), request.getAfterPosition(), request.getFormKey(), sort)) { + return AjaxResult.success(new OperateFormItemVO(itemEntity.getSort(), itemEntity.getId(), true, true)); + } + itemEntity.setSort(sort); + boolean b = formItemService.updateById(itemEntity); + return AjaxResult.success(new OperateFormItemVO(itemEntity.getSort(), itemEntity.getId(), b, false)); + } + + + /** + * 鏌ヨ琛ㄥ崟璇︽儏 + * 鍖呭惈琛ㄥ崟淇℃伅 琛ㄥ崟瀛楁淇℃伅 琛ㄥ崟涓婚 + * + * @param key + */ + @GetMapping("/user/form/details/{key}") + @PermitAll + public AjaxResult queryFormDetails(@PathVariable @NotBlank String key) { + UserFormEntity form = formService.getByKey(key); + if (ObjectUtil.isNull(form)) { + return AjaxResult.success(); + } + List<UserFormItemEntity> formItemList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().ne(UserFormItemEntity::getHideType, 1).eq(UserFormItemEntity::getFormKey, key)); + formItemList.sort(Comparator.comparing(UserFormItemEntity::getSort)); + UserFormThemeEntity theme = userFormThemeService.getByKey(key); + UserFormLogicEntity formLogic = userFormLogicService.getOne(Wrappers.<UserFormLogicEntity>lambdaQuery().eq(UserFormLogicEntity::getFormKey, key)); + // 濡傛灉鏄�冭瘯 绉婚櫎姝g‘绛旀 閬垮厤鎶婃纭瓟妗堣繑鍥炲埌鍓嶇 + if (form.getType() == FormTypeEnum.EXAM.getValue().toString()) { + formItemList.forEach(item -> { + JSONObject schemeJson = JSONUtil.parseObj(item.getScheme()); + if (schemeJson.containsKey("examConfig")) { + schemeJson.getJSONObject("examConfig").remove("answer"); + } + item.setScheme(schemeJson); + }); + } + return AjaxResult.success(new UserFormDetailVO(new UserFormDetailVO.UserForm(form), formItemList, theme, formLogic)); + } + + + /** + * 鍙戝竷琛ㄥ崟 + */ + @PostMapping("/user/form/publish") + public AjaxResult publishForm(@RequestBody UserFormEntity request) { +// FormAuthUtils.hasPermission(request.getFormKey()); + long count = formItemService.count(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey())); + if (count == CommonConstants.ConstantNumber.ZERO) { + return AjaxResult.error("鏃犳湁鏁堣〃鍗曢」锛屾棤娉曞彂甯�"); + } + UserFormEntity entity = formService.getByKey(request.getFormKey()); + entity.setStatus(2); + return AjaxResult.success(formService.updateById(entity)); + } + + + /** + * 鍋滄鏀堕泦 + * + * @param request + */ + @PostMapping("/user/form/stop") + public Result stopForm(@RequestBody UserFormEntity request) { +// FormAuthUtils.hasPermission(request.getFormKey()); + UserFormEntity entity = formService.getByKey(request.getFormKey()); + entity.setStatus(3); + return Result.success(formService.updateById(entity)); + } + + + /** + * 鏌ヨ鎴戠殑琛ㄥ崟鍒嗛〉 + */ + @GetMapping("/user/form/page") + public Result queryMyForms(@RequestAttribute Long userId, QueryFormRequest.Page request) { + LambdaQueryWrapper<UserFormEntity> queryWrapper = Wrappers.<UserFormEntity>lambdaQuery().eq(UserFormEntity::getUserId, userId) + .eq(ObjectUtil.isNotNull(request.getFolder()), UserFormEntity::getFolder, request.getFolder()) + .eq(ObjectUtil.isNotNull(request.getType()), UserFormEntity::getType, request.getType()) + .eq(UserFormEntity::getDeleted, 0).func(i -> { + // 閫氳繃鏂囦欢鍚嶆悳绱㈡椂 鍙互鎼滅储鍒板瓙鏂囦欢澶逛笅鐨勮〃鍗� + if (StrUtil.isNotBlank(request.getName()) && request.getFolderId() == 0) { + } else { + i.eq(UserFormEntity::getFolderId, request.getFolderId()); + } + }).eq(ObjectUtil.isNotNull(request.getStatus()), UserFormEntity::getStatus, request.getStatus()).like(StrUtil.isNotBlank(request.getName()), + UserFormEntity::getName, request.getName()).le(ObjectUtil.isNotNull(request.getEndDateTime()), UserFormEntity::getUpdateTime, + request.getEndDateTime()).ge(ObjectUtil.isNotNull(request.getBeginDateTime()), UserFormEntity::getUpdateTime, + request.getBeginDateTime()).orderByDesc(UserFormEntity::getFolder) +// .orderByDesc(TBaseEntity::getCreateTime) + ; + return Result.success(formService.page(request.toMybatisPage(), queryWrapper)); + } + + + /** + * 鑾峰彇琛ㄥ崟瀛楁 鍖呮嫭绯荤粺榛樿瀛楁 + */ + @GetMapping("/user/form/fields/{formKey}") + public Result queryUserFormFields(@PathVariable String formKey) { + return Result.success(formItemService.listAllFormFields(formKey)); + } + + /** + * 鑾峰彇琛ㄥ崟鍥哄畾瀛楁 + * 鎵�鏈夎〃鍗曢兘鍖呭惈 鐢ㄤ簬鏌ョ湅璇︽儏鍙充晶鏄剧ず + */ + @GetMapping("/user/form/fixed/fields/{formKey}") + public Result queryUserFormFixedFields(@PathVariable String formKey) { + // 鏌ヨ琛ㄥ崟绫诲瀷 + UserFormEntity userFormEntity = formService.getByKey(formKey); + List<FormFieldVO> fields = new ArrayList<>(); + FormDataUtils.addFormBaseDataField(fields); + fields.add(new FormFieldVO("submitUaOs", "鎿嶄綔绯荤粺")); + fields.add(new FormFieldVO("submitUaDevice", "璁惧")); + fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitBrowser, "娴忚鍣�")); + fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitAddress, "鍦板潃")); + fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitRequestIp, "IP")); + fields.add(new FormFieldVO(UserFormDataEntity.Fields.wxUserInfo, "寰俊鐢ㄦ埛")); + return Result.success(fields); + } + +} -- Gitblit v1.8.0