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