From 3ef44331e3bd3e8b61513c88b7439631f49f05c7 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期二, 14 五月 2024 17:00:07 +0800 Subject: [PATCH] zjh 2024/05/14-1 --- ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java | 2 ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java | 218 ++-- /dev/null | 57 - ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java | 284 +++--- ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java | 620 ++++++------ ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java | 122 +- ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java | 388 ++++---- ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java | 266 ++-- ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java | 312 +++--- ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java | 460 +++++----- ltkj-admin/src/main/resources/application.yml | 20 11 files changed, 1,347 insertions(+), 1,402 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java b/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java index 37c6a91..32ea5ec 100644 --- a/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java +++ b/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java @@ -3,6 +3,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.ComponentScan; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -15,6 +16,7 @@ @EnableTransactionManagement @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class},scanBasePackages = {"org.jeecg.modules.jmreport","com.ltkj"}) @EnableAsync +//@EnableCaching public class LtkjApplication { public static void main(String[] args) { //spring-boot-devtools鐨勬ā鍧椾娇Spring Boot搴旂敤鏀寔鐑儴缃诧紝鏃犻渶鎵嬪姩閲嶅惎Spring Boot搴旂敤銆� 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 18487d7..ffda232 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,311 @@ -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) { +//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); - 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); - } - -} +//// 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); +// } +// +//} diff --git a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java index 7f1fca1..2ed03de 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java @@ -1,254 +1,254 @@ -package com.ltkj.web.tduck; - -import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.ltkj.common.core.domain.AjaxResult; -import com.ltkj.common.utils.SecurityUtils; -import com.ltkj.common.utils.http.HttpUtils; -import com.ltkj.tduck.domain.UserFormDataEntity; -import com.ltkj.tduck.domain.UserFormViewCountEntity; -import com.ltkj.tduck.request.QueryFormResultRequest; -import com.ltkj.tduck.service.UserFormDataService; -import com.ltkj.tduck.service.UserFormViewCountService; -import com.ltkj.tduck.utils.Result; -import com.ltkj.tduck.utils.ValidatorUtils; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.security.PermitAll; -import javax.servlet.http.HttpServletRequest; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - - -/** - * 琛ㄥ崟鏁版嵁 - * - * @author : smalljop - * @description : 琛ㄥ崟鏁版嵁椤� 褰撳墠鐢ㄦ埛鑷繁浣跨敤鎺ュ彛 - * @create : 2020-11-18 18:17 - **/ - -@Slf4j -@RestController -@RequiredArgsConstructor -@RequestMapping("/user/form/data") -public class UserFormResultController { - private final UserFormDataService formResultService; -// private final UserFormSettingService userFormSettingService; -// private final FormDataImportUtils formDataImportUtils; -// private final FormDataExportUtils formDataExportUtils; -// private final UserFormService userFormService; - private final UserFormViewCountService userFormViewCountService; -// private final MailService mailService; -// private final WxMpUserMsgService userMsgService; - private final ConcurrentMap<String, Integer> viewFormMap = new ConcurrentHashMap<>(); - - - - /** - * 鏍规嵁浣撴鍙疯幏鍙栭棶鍗疯褰� - */ - @GetMapping("getRecordByTjNumber") - public AjaxResult getRecordByTjNumber(String tjNumber) { - LambdaQueryWrapper<UserFormDataEntity> wq=new LambdaQueryWrapper<>(); - wq.eq(UserFormDataEntity::getTjNumber,tjNumber); - final List<UserFormDataEntity> list = formResultService.list(wq); - AjaxResult ajaxResult = new AjaxResult(); - ajaxResult.put("code", 200); - ajaxResult.put("data", list); - ajaxResult.put("msg", null); - return ajaxResult; - } - - - /*** - * 鏌ョ湅琛ㄥ崟 - * 璁板綍鏌ョ湅鐨処P 缁熻鏌ョ湅鐢ㄦ埛鏁� - */ - @GetMapping("view/{formKey}") - @PermitAll - public Result<Void> viewForm(HttpServletRequest request, @PathVariable("formKey") String formKey) { - if (viewFormMap.containsKey(formKey)) { - userFormViewCountService.increment(formKey); - } else { - // 涓嶅瓨鍦ㄥ垯娣诲姞 - Long count = userFormViewCountService.count(formKey); - if (count == 0) { - UserFormViewCountEntity entity = new UserFormViewCountEntity(); - entity.setFormKey(formKey); - entity.setCount(1L); - userFormViewCountService.save(entity); - } - viewFormMap.put(formKey, 1); - } - return Result.success(); - } - - /** - * 鏌ヨ鏁版嵁 - * - * @param request 鏌ヨ鏉′欢 - * @return 鏁版嵁 - */ - @PostMapping("query") - public Result queryFormDataTable(@RequestBody QueryFormResultRequest request) { -// FormAuthUtils.hasPermission(request.getFormKey()); - return Result.success(formResultService.listFormDataTable(request)); - } - - /** - * 鑾峰彇鏌愭潯鏁版嵁璇︽儏 - * - * @param dataId 鏁版嵁ID - * @return 鏁版嵁璇︽儏 - */ - @GetMapping("details/{dataId}") - @PermitAll - public Result getFormDataDetails(@PathVariable("dataId") String dataId) { - return formResultService.getFormDataDetails(dataId); - } +//package com.ltkj.web.tduck; +// +//import cn.hutool.core.date.DateUtil; +//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +//import com.ltkj.common.core.domain.AjaxResult; +//import com.ltkj.common.utils.SecurityUtils; +//import com.ltkj.common.utils.http.HttpUtils; +//import com.ltkj.tduck.domain.UserFormDataEntity; +//import com.ltkj.tduck.domain.UserFormViewCountEntity; +//import com.ltkj.tduck.request.QueryFormResultRequest; +//import com.ltkj.tduck.service.UserFormDataService; +//import com.ltkj.tduck.service.UserFormViewCountService; +//import com.ltkj.tduck.utils.Result; +//import com.ltkj.tduck.utils.ValidatorUtils; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.web.bind.annotation.*; +// +//import javax.annotation.security.PermitAll; +//import javax.servlet.http.HttpServletRequest; +//import java.util.List; +//import java.util.Map; +//import java.util.concurrent.ConcurrentHashMap; +//import java.util.concurrent.ConcurrentMap; +// +// +///** +// * 琛ㄥ崟鏁版嵁 +// * +// * @author : smalljop +// * @description : 琛ㄥ崟鏁版嵁椤� 褰撳墠鐢ㄦ埛鑷繁浣跨敤鎺ュ彛 +// * @create : 2020-11-18 18:17 +// **/ +// +//@Slf4j +//@RestController +//@RequiredArgsConstructor +//@RequestMapping("/user/form/data") +//public class UserFormResultController { +// private final UserFormDataService formResultService; +//// private final UserFormSettingService userFormSettingService; +//// private final FormDataImportUtils formDataImportUtils; +//// private final FormDataExportUtils formDataExportUtils; +//// private final UserFormService userFormService; +// private final UserFormViewCountService userFormViewCountService; +//// private final MailService mailService; +//// private final WxMpUserMsgService userMsgService; +// private final ConcurrentMap<String, Integer> viewFormMap = new ConcurrentHashMap<>(); +// // // // /** -// * 濉啓闄勪欢瀵煎嚭 -// * -// * @param request 璇锋眰 -// * @return 鏂囦欢 +// * 鏍规嵁浣撴鍙疯幏鍙栭棶鍗疯褰� // */ -// @PostMapping("/download/file") -// public Result downloadFormResultFile(@RequestBody QueryFormResultRequest request) { -// return formResultService.downloadFormResultFile(request); +// @GetMapping("getRecordByTjNumber") +// public AjaxResult getRecordByTjNumber(String tjNumber) { +// LambdaQueryWrapper<UserFormDataEntity> wq=new LambdaQueryWrapper<>(); +// wq.eq(UserFormDataEntity::getTjNumber,tjNumber); +// final List<UserFormDataEntity> list = formResultService.list(wq); +// AjaxResult ajaxResult = new AjaxResult(); +// ajaxResult.put("code", 200); +// ajaxResult.put("data", list); +// ajaxResult.put("msg", null); +// return ajaxResult; // } - - /** - * 濉啓 - * - * @param entity 濉啓鏁版嵁 - * @param request 璇锋眰 - * @return - */ - @PostMapping("/create") - public AjaxResult createFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) { - ValidatorUtils.validateEntity(entity); - entity.setSubmitRequestIp(HttpUtils.getIpAddr(request)); - // 濡傛灉宸茬粡鐧婚檰浜嗕篃璁板綍鐢ㄦ埛淇℃伅 try catch 閬垮厤鎶涘嚭寮傚父 - entity.setCreateBy(SecurityUtils.getUserId() != null ? String.valueOf(SecurityUtils.getUserId()) : null); - Map<String, Object> result = formResultService.saveFormResult(entity); - return AjaxResult.success(result); - } - - - /** - * 鍏紑濉啓 - * - * @param entity 濉啓鏁版嵁 - * @param request 璇锋眰 - */ - @PostMapping("/public/create") - @PermitAll - public Result<Map<String, Object>> createPublicFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) { - - ValidatorUtils.validateEntity(entity); - entity.setSubmitRequestIp(HttpUtils.getIpAddr(request)); -// Result<Boolean> userFormSettingStatus = userFormSettingService.getUserFormWriteSettingStatus(entity.getFormKey(), entity.getSubmitRequestIp(), entity.getWxOpenId(), CommonConstants.ConstantNumber.ONE); -// if (StrUtil.isNotBlank(userFormSettingStatus.getMsg())) { -// return Result.failed(userFormSettingStatus.getMsg()); +// +// +// /*** +// * 鏌ョ湅琛ㄥ崟 +// * 璁板綍鏌ョ湅鐨処P 缁熻鏌ョ湅鐢ㄦ埛鏁� +// */ +// @GetMapping("view/{formKey}") +// @PermitAll +// public Result<Void> viewForm(HttpServletRequest request, @PathVariable("formKey") String formKey) { +// if (viewFormMap.containsKey(formKey)) { +// userFormViewCountService.increment(formKey); +// } else { +// // 涓嶅瓨鍦ㄥ垯娣诲姞 +// Long count = userFormViewCountService.count(formKey); +// if (count == 0) { +// UserFormViewCountEntity entity = new UserFormViewCountEntity(); +// entity.setFormKey(formKey); +// entity.setCount(1L); +// userFormViewCountService.save(entity); +// } +// viewFormMap.put(formKey, 1); // } - // 濡傛灉宸茬粡鐧婚檰浜嗕篃璁板綍鐢ㄦ埛淇℃伅 try catch 閬垮厤鎶涘嚭寮傚父 - entity.setCreateBy(SecurityUtils.getUserId() != null ? String.valueOf(SecurityUtils.getUserId()) : null); - Map<String, Object> result = formResultService.saveFormResult(entity); -// ThreadUtil.execAsync(() -> { -// sendWriteResultNotify(entity.getFormKey()); -// }); - return Result.success(result); -// return Result.success(); - } - -// -// /** -// * 鎵归噺鍒犻櫎 -// * -// * @param formKey 琛ㄥ崟key -// * @param dataIdList 鏁版嵁ID -// * @return Result -// */ -// @PostMapping("/delete/{formKey}") -// public Result deleteFormData(@RequestBody List<String> dataIdList, @PathVariable("formKey") String formKey) { -// formResultService.deleteByIds(dataIdList, formKey); // return Result.success(); // } - - +// // /** -// * 鏇存柊 +// * 鏌ヨ鏁版嵁 +// * +// * @param request 鏌ヨ鏉′欢 +// * @return 鏁版嵁 +// */ +// @PostMapping("query") +// public Result queryFormDataTable(@RequestBody QueryFormResultRequest request) { +//// FormAuthUtils.hasPermission(request.getFormKey()); +// return Result.success(formResultService.listFormDataTable(request)); +// } +// +// /** +// * 鑾峰彇鏌愭潯鏁版嵁璇︽儏 +// * +// * @param dataId 鏁版嵁ID +// * @return 鏁版嵁璇︽儏 +// */ +// @GetMapping("details/{dataId}") +// @PermitAll +// public Result getFormDataDetails(@PathVariable("dataId") String dataId) { +// return formResultService.getFormDataDetails(dataId); +// } +//// +//// +//// /** +//// * 濉啓闄勪欢瀵煎嚭 +//// * +//// * @param request 璇锋眰 +//// * @return 鏂囦欢 +//// */ +//// @PostMapping("/download/file") +//// public Result downloadFormResultFile(@RequestBody QueryFormResultRequest request) { +//// return formResultService.downloadFormResultFile(request); +//// } +// +// /** +// * 濉啓 // * // * @param entity 濉啓鏁版嵁 // * @param request 璇锋眰 -// * @return Result +// * @return // */ -// @PostMapping("/update") -// @PermitAll -// public Result<Void> updateFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) { +// @PostMapping("/create") +// public AjaxResult createFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) { // ValidatorUtils.validateEntity(entity); -// try { -// entity.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); -// } catch (Exception ignored) { -// } -// formResultService.updateFormResult(entity); -// return Result.success(); +// entity.setSubmitRequestIp(HttpUtils.getIpAddr(request)); +// // 濡傛灉宸茬粡鐧婚檰浜嗕篃璁板綍鐢ㄦ埛淇℃伅 try catch 閬垮厤鎶涘嚭寮傚父 +// entity.setCreateBy(SecurityUtils.getUserId() != null ? String.valueOf(SecurityUtils.getUserId()) : null); +// Map<String, Object> result = formResultService.saveFormResult(entity); +// return AjaxResult.success(result); // } // +// // /** -// * 涓嬭浇瀵煎叆妯℃澘 +// * 鍏紑濉啓 // * -// * @param response 鍝嶅簲 -// * @param formKey 琛ㄥ崟key +// * @param entity 濉啓鏁版嵁 +// * @param request 璇锋眰 // */ -// @GetMapping("/import/template") -// public void downloadImportTemplate(HttpServletResponse response, String formKey) { -// formDataImportUtils.importTemplateExcel(response, formKey); +// @PostMapping("/public/create") +// @PermitAll +// public Result<Map<String, Object>> createPublicFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) { +// +// ValidatorUtils.validateEntity(entity); +// entity.setSubmitRequestIp(HttpUtils.getIpAddr(request)); +//// Result<Boolean> userFormSettingStatus = userFormSettingService.getUserFormWriteSettingStatus(entity.getFormKey(), entity.getSubmitRequestIp(), entity.getWxOpenId(), CommonConstants.ConstantNumber.ONE); +//// if (StrUtil.isNotBlank(userFormSettingStatus.getMsg())) { +//// return Result.failed(userFormSettingStatus.getMsg()); +//// } +// // 濡傛灉宸茬粡鐧婚檰浜嗕篃璁板綍鐢ㄦ埛淇℃伅 try catch 閬垮厤鎶涘嚭寮傚父 +// entity.setCreateBy(SecurityUtils.getUserId() != null ? String.valueOf(SecurityUtils.getUserId()) : null); +// Map<String, Object> result = formResultService.saveFormResult(entity); +//// ThreadUtil.execAsync(() -> { +//// sendWriteResultNotify(entity.getFormKey()); +//// }); +// return Result.success(result); +//// return Result.success(); // } // -// /** -// * 瀵煎嚭琛ㄥ崟鏁版嵁 -// */ -// @PostMapping("export") -// public void exportFormData(@RequestBody ExportRequest.FormData exportRequest) { -// formDataExportUtils.exportData(exportRequest); -// } -// -// /** -// * 瀵煎叆琛ㄥ崟鏁版嵁 -// * -// * @param file 鏂囦欢 -// * @return Result -// */ -// @PostMapping("import") -// public Result importFormData(@RequestParam("file") MultipartFile file, UserFormDataEntity dataEntity) throws IOException { -// return Result.success(formDataImportUtils.importFile(file.getInputStream(), dataEntity.getFormKey())); -// } +//// +//// /** +//// * 鎵归噺鍒犻櫎 +//// * +//// * @param formKey 琛ㄥ崟key +//// * @param dataIdList 鏁版嵁ID +//// * @return Result +//// */ +//// @PostMapping("/delete/{formKey}") +//// public Result deleteFormData(@RequestBody List<String> dataIdList, @PathVariable("formKey") String formKey) { +//// formResultService.deleteByIds(dataIdList, formKey); +//// return Result.success(); +//// } // // -// private void sendWriteResultNotify(String formKey) { -// FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(formKey); -// if (ObjectUtil.isNull(formSettingSchema)) { -// return; -// } -// UserFormEntity form = userFormService.getByKey(formKey); -// if (StrUtil.isNotBlank(formSettingSchema.getNewWriteNotifyEmail())) { -// mailService.sendTemplateHtmlMail(formSettingSchema.getNewWriteNotifyEmail(), "鏂板洖澶嶉�氱煡", "mail/form-write-notify", MapUtil.of("projectName", form.getName())); -// } +//// /** +//// * 鏇存柊 +//// * +//// * @param entity 濉啓鏁版嵁 +//// * @param request 璇锋眰 +//// * @return Result +//// */ +//// @PostMapping("/update") +//// @PermitAll +//// public Result<Void> updateFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) { +//// ValidatorUtils.validateEntity(entity); +//// try { +//// entity.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); +//// } catch (Exception ignored) { +//// } +//// formResultService.updateFormResult(entity); +//// return Result.success(); +//// } +//// +//// /** +//// * 涓嬭浇瀵煎叆妯℃澘 +//// * +//// * @param response 鍝嶅簲 +//// * @param formKey 琛ㄥ崟key +//// */ +//// @GetMapping("/import/template") +//// public void downloadImportTemplate(HttpServletResponse response, String formKey) { +//// formDataImportUtils.importTemplateExcel(response, formKey); +//// } +//// +//// /** +//// * 瀵煎嚭琛ㄥ崟鏁版嵁 +//// */ +//// @PostMapping("export") +//// public void exportFormData(@RequestBody ExportRequest.FormData exportRequest) { +//// formDataExportUtils.exportData(exportRequest); +//// } +//// +//// /** +//// * 瀵煎叆琛ㄥ崟鏁版嵁 +//// * +//// * @param file 鏂囦欢 +//// * @return Result +//// */ +//// @PostMapping("import") +//// public Result importFormData(@RequestParam("file") MultipartFile file, UserFormDataEntity dataEntity) throws IOException { +//// return Result.success(formDataImportUtils.importFile(file.getInputStream(), dataEntity.getFormKey())); +//// } +//// +//// +//// private void sendWriteResultNotify(String formKey) { +//// FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(formKey); +//// if (ObjectUtil.isNull(formSettingSchema)) { +//// return; +//// } +//// UserFormEntity form = userFormService.getByKey(formKey); +//// if (StrUtil.isNotBlank(formSettingSchema.getNewWriteNotifyEmail())) { +//// mailService.sendTemplateHtmlMail(formSettingSchema.getNewWriteNotifyEmail(), "鏂板洖澶嶉�氱煡", "mail/form-write-notify", MapUtil.of("projectName", form.getName())); +//// } +//// +//// if (StrUtil.isNotBlank(formSettingSchema.getNewWriteNotifyWx())) { +//// List<String> openIdList = StrUtil.splitTrim(formSettingSchema.getNewWriteNotifyWx(), ";"); +//// openIdList.stream().forEach(openId -> { +//// userMsgService.sendKfTextMsg("", openId, "鏀跺埌鏂扮殑鍙嶉锛岃鍘籔c绔煡鐪�"); +//// }); +//// } +//// } // -// if (StrUtil.isNotBlank(formSettingSchema.getNewWriteNotifyWx())) { -// List<String> openIdList = StrUtil.splitTrim(formSettingSchema.getNewWriteNotifyWx(), ";"); -// openIdList.stream().forEach(openId -> { -// userMsgService.sendKfTextMsg("", openId, "鏀跺埌鏂扮殑鍙嶉锛岃鍘籔c绔煡鐪�"); -// }); -// } -// } - -} +//} diff --git a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java index f30af9b..220de5d 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java @@ -1,143 +1,143 @@ -package com.ltkj.web.tduck; - -import cn.hutool.core.util.ObjectUtil; -import com.ltkj.common.utils.http.HttpUtils; -import com.ltkj.tduck.domain.UserFormSettingEntity; -import com.ltkj.tduck.request.CheckWritePwdRequest; -import com.ltkj.tduck.service.UserFormSettingService; -import com.ltkj.tduck.utils.CacheUtils; -import com.ltkj.tduck.utils.Result; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.security.PermitAll; -import javax.servlet.http.HttpServletRequest; -import java.util.Map; - -/** - * 琛ㄥ崟璁剧疆 - * - * @author : smalljop - * @description : 琛ㄥ崟璁剧疆 - * @create : 2020-11-18 18:17 - **/ -@Slf4j -@RestController -@RequiredArgsConstructor -public class UserFormSettingController { - - private final UserFormSettingService userFormSettingService; -// private final WxMpUserService wxMpUserService; - private final CacheUtils cacheUtils; -// private final WxMpService wxMpService; - - - /** - * 淇濆瓨琛ㄥ崟璁剧疆 - */ - @PostMapping("/user/form/setting/save") - public Result<Boolean> saveFormSetting(@RequestBody Map<String, Object> setting) { - String formKey = setting.get("formKey").toString(); -// FormAuthUtils.hasPermission(formKey); - return Result.success(userFormSettingService.saveFormSetting(setting)); - } - - /** - * 琛ㄥ崟鎻愪氦璁剧疆鏌ヨ - */ - @GetMapping("/user/form/setting/{key}") - public Result<Map<String, Object>> queryFormSettingByKey(@PathVariable("key") String formKey) { - UserFormSettingEntity setting = userFormSettingService.getFormSettingByKey(formKey); - if (ObjectUtil.isNull(setting)) { - return Result.success(); - } - Map<String, Object> settings = setting.getSettings(); - settings.put(UserFormSettingEntity.Fields.formKey, formKey); - return Result.success(settings); - } - - - /** - * 褰撳墠濉啓璁剧疆鐨勭姸鎬� - * - * @param formKey 琛ㄥ崟key - * @param wxOpenId 寰俊openid - * @param type 绫诲瀷 1鍏紑濉啓 2.鎸囧畾濉啓 - */ - @GetMapping("/user/form/setting-status") - @PermitAll - public Result<Boolean> querySettingStatus(@RequestParam String formKey, @RequestParam(required = false) String wxOpenId, @RequestParam(required = false) Integer type, HttpServletRequest request) { - return userFormSettingService.getUserFormWriteSettingStatus(formKey, HttpUtils.getIpAddr(request), wxOpenId, type); - } - - - /** - * 濉啓寰俊閫氱煡浜岀淮鐮� - */ - @GetMapping("/user/form/wx/notify-qrcode") - public Result<String> getWxNotifyQrCode(@RequestParam("key") String formKey) throws Exception { -// String loginSceneStr = JsonUtils.objToJson(new WxMpQrCodeGenRequest(WxMpQrCodeGenRequest.QrCodeType.SUB_NOTIFY, formKey)); -// //5鍒嗛挓鏈夋晥 -// WxMpQrCodeTicket ticket = wxMpService.getQrcodeService().qrCodeCreateTmpTicket(loginSceneStr, 10 * 60); -// String subNotifyQrcodeUrl = wxMpService.getQrcodeService().qrCodePictureUrl(ticket.getTicket()); -// return Result.success(subNotifyQrcodeUrl); - return Result.success(); - } - - - /** - * 濉啓寰俊閫氱煡浜岀淮鐮� - */ - @PostMapping("/user/form/wx/delete/notify-user") - public Result<Boolean> deleteWxNotifyQrCode(@RequestParam("key") String key, @RequestParam("openId") String openId) { -// cacheUtils.removeList(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, key), openId); - return Result.success(true); - } - - /** - * 鑾峰彇琛ㄥ崟寰俊閫氱煡鐢ㄦ埛 - */ - @GetMapping("/user/form/wx/notify-user") - public Result getWxNotifyUser(@RequestParam("key") String formKey, @RequestParam(required = false) String openIdStr) { -// Set<Object> subNotifyUsers = null; -// if (StrUtil.isNotBlank(openIdStr)) { -// subNotifyUsers = Sets.newHashSet(StrUtil.splitTrim(openIdStr, ";")); -// } else { -// List coll = cacheUtils.getList(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, formKey), String.class); -// subNotifyUsers = Collections.singleton(coll.stream().collect(Collectors.toSet())); +//package com.ltkj.web.tduck; +// +//import cn.hutool.core.util.ObjectUtil; +//import com.ltkj.common.utils.http.HttpUtils; +//import com.ltkj.tduck.domain.UserFormSettingEntity; +//import com.ltkj.tduck.request.CheckWritePwdRequest; +//import com.ltkj.tduck.service.UserFormSettingService; +//import com.ltkj.tduck.utils.CacheUtils; +//import com.ltkj.tduck.utils.Result; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.*; +// +//import javax.annotation.security.PermitAll; +//import javax.servlet.http.HttpServletRequest; +//import java.util.Map; +// +///** +// * 琛ㄥ崟璁剧疆 +// * +// * @author : smalljop +// * @description : 琛ㄥ崟璁剧疆 +// * @create : 2020-11-18 18:17 +// **/ +//@Slf4j +//@RestController +//@RequiredArgsConstructor +//public class UserFormSettingController { +// +// private final UserFormSettingService userFormSettingService; +//// private final WxMpUserService wxMpUserService; +// private final CacheUtils cacheUtils; +//// private final WxMpService wxMpService; +// +// +// /** +// * 淇濆瓨琛ㄥ崟璁剧疆 +// */ +// @PostMapping("/user/form/setting/save") +// public Result<Boolean> saveFormSetting(@RequestBody Map<String, Object> setting) { +// String formKey = setting.get("formKey").toString(); +//// FormAuthUtils.hasPermission(formKey); +// return Result.success(userFormSettingService.saveFormSetting(setting)); +// } +// +// /** +// * 琛ㄥ崟鎻愪氦璁剧疆鏌ヨ +// */ +// @GetMapping("/user/form/setting/{key}") +// public Result<Map<String, Object>> queryFormSettingByKey(@PathVariable("key") String formKey) { +// UserFormSettingEntity setting = userFormSettingService.getFormSettingByKey(formKey); +// if (ObjectUtil.isNull(setting)) { +// return Result.success(); // } -// return Result.success(wxMpUserService.listWxMpUserByOpenId(subNotifyUsers).stream().map(item -> new WxMpUserVO(item.getNickname(), item.getHeadImgUrl(), item.getOpenId())).collect(Collectors.toList())); - return Result.success(); - } - - - /** - * 鍏紑鎺ュ彛 - * 琛ㄥ崟濉啓鏃堕渶瑕佺殑璁剧疆 - */ - @GetMapping("/user/form/public/settings/{key}") - @PermitAll - public Result queryPublicFormSettingByKey(@PathVariable("key") String formKey) { -// FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(formKey); - return Result.success(); - } - - /** - * 鍏紑鎺ュ彛 - * 妫�鏌ュ~鍐欏瘑鐮佹槸鍚︽纭� - */ - @PostMapping("/user/form/public/checkWritePwd") - @PermitAll - public Result<Boolean> checkWritePwd(@RequestBody @Validated CheckWritePwdRequest request) { -// FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(request.getFormKey()); -// if (formSettingSchema.getWritePassword().equals(request.getPassword())) { -// return Result.success(true); -// } -// return Result.failed("瀵嗙爜杈撳叆閿欒"); - return Result.success(true); - } - - -} +// Map<String, Object> settings = setting.getSettings(); +// settings.put(UserFormSettingEntity.Fields.formKey, formKey); +// return Result.success(settings); +// } +// +// +// /** +// * 褰撳墠濉啓璁剧疆鐨勭姸鎬� +// * +// * @param formKey 琛ㄥ崟key +// * @param wxOpenId 寰俊openid +// * @param type 绫诲瀷 1鍏紑濉啓 2.鎸囧畾濉啓 +// */ +// @GetMapping("/user/form/setting-status") +// @PermitAll +// public Result<Boolean> querySettingStatus(@RequestParam String formKey, @RequestParam(required = false) String wxOpenId, @RequestParam(required = false) Integer type, HttpServletRequest request) { +// return userFormSettingService.getUserFormWriteSettingStatus(formKey, HttpUtils.getIpAddr(request), wxOpenId, type); +// } +// +// +// /** +// * 濉啓寰俊閫氱煡浜岀淮鐮� +// */ +// @GetMapping("/user/form/wx/notify-qrcode") +// public Result<String> getWxNotifyQrCode(@RequestParam("key") String formKey) throws Exception { +//// String loginSceneStr = JsonUtils.objToJson(new WxMpQrCodeGenRequest(WxMpQrCodeGenRequest.QrCodeType.SUB_NOTIFY, formKey)); +//// //5鍒嗛挓鏈夋晥 +//// WxMpQrCodeTicket ticket = wxMpService.getQrcodeService().qrCodeCreateTmpTicket(loginSceneStr, 10 * 60); +//// String subNotifyQrcodeUrl = wxMpService.getQrcodeService().qrCodePictureUrl(ticket.getTicket()); +//// return Result.success(subNotifyQrcodeUrl); +// return Result.success(); +// } +// +// +// /** +// * 濉啓寰俊閫氱煡浜岀淮鐮� +// */ +// @PostMapping("/user/form/wx/delete/notify-user") +// public Result<Boolean> deleteWxNotifyQrCode(@RequestParam("key") String key, @RequestParam("openId") String openId) { +//// cacheUtils.removeList(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, key), openId); +// return Result.success(true); +// } +// +// /** +// * 鑾峰彇琛ㄥ崟寰俊閫氱煡鐢ㄦ埛 +// */ +// @GetMapping("/user/form/wx/notify-user") +// public Result getWxNotifyUser(@RequestParam("key") String formKey, @RequestParam(required = false) String openIdStr) { +//// Set<Object> subNotifyUsers = null; +//// if (StrUtil.isNotBlank(openIdStr)) { +//// subNotifyUsers = Sets.newHashSet(StrUtil.splitTrim(openIdStr, ";")); +//// } else { +//// List coll = cacheUtils.getList(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, formKey), String.class); +//// subNotifyUsers = Collections.singleton(coll.stream().collect(Collectors.toSet())); +//// } +//// return Result.success(wxMpUserService.listWxMpUserByOpenId(subNotifyUsers).stream().map(item -> new WxMpUserVO(item.getNickname(), item.getHeadImgUrl(), item.getOpenId())).collect(Collectors.toList())); +// return Result.success(); +// } +// +// +// /** +// * 鍏紑鎺ュ彛 +// * 琛ㄥ崟濉啓鏃堕渶瑕佺殑璁剧疆 +// */ +// @GetMapping("/user/form/public/settings/{key}") +// @PermitAll +// public Result queryPublicFormSettingByKey(@PathVariable("key") String formKey) { +//// FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(formKey); +// return Result.success(); +// } +// +// /** +// * 鍏紑鎺ュ彛 +// * 妫�鏌ュ~鍐欏瘑鐮佹槸鍚︽纭� +// */ +// @PostMapping("/user/form/public/checkWritePwd") +// @PermitAll +// public Result<Boolean> checkWritePwd(@RequestBody @Validated CheckWritePwdRequest request) { +//// FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(request.getFormKey()); +//// if (formSettingSchema.getWritePassword().equals(request.getPassword())) { +//// return Result.success(true); +//// } +//// return Result.failed("瀵嗙爜杈撳叆閿欒"); +// return Result.success(true); +// } +// +// +//} diff --git a/ltkj-admin/src/main/resources/application.yml b/ltkj-admin/src/main/resources/application.yml index 9dd66dd..02875c5 100644 --- a/ltkj-admin/src/main/resources/application.yml +++ b/ltkj-admin/src/main/resources/application.yml @@ -70,22 +70,22 @@ restart: # 鐑儴缃插紑鍏� enabled: true - cache: - type: ehcache - ehcache: - config: classpath:config/ehcache.xml +# cache: +# type: ehcache +# ehcache: +# config: classpath:config/ehcache.xml # redis 閰嶇疆 # redis: # # 鍦板潃 -# host: 101.42.27.146 -## host: localhost +## host: 101.42.27.146 +# host: localhost # # 绔彛锛岄粯璁や负6379 # port: 6379 # # 鏁版嵁搴撶储寮� # database: 0 # # 瀵嗙爜 -# password: 654321 -## password: 123456 +## password: 654321 +# password: 123456 # # 杩炴帴瓒呮椂鏃堕棿 # timeout: 120s # lettuce: @@ -220,11 +220,11 @@ #绉湪鎶ヨ〃璁块棶鍦板潃 jimu: # path: https://ltpeis.xaltjdkj.cn:5011/ltkj-admin - path: https://ltpeis.xaltjdkj.cn:5021/ltkj-admin +# path: https://ltpeis.xaltjdkj.cn:5021/ltkj-admin # path: http://192.168.0.5:5000/ltkj-admin # path: http://10.168.0.9:5011 # path: http://192.168.0.105:5011 -# path: http://192.168.0.112:5011 + path: http://192.168.1.113:5011 jeecg : diff --git a/ltkj-admin/src/main/resources/config/ehcache.xml b/ltkj-admin/src/main/resources/config/ehcache.xml deleted file mode 100644 index d352174..0000000 --- a/ltkj-admin/src/main/resources/config/ehcache.xml +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="ehcache.xsd"> - <!--timeToIdleSeconds 褰撶紦瀛橀棽缃畁绉掑悗閿�姣� --> - <!--timeToLiveSeconds 褰撶紦瀛樺瓨娲籲绉掑悗閿�姣� --> - <!-- 缂撳瓨閰嶇疆 - name:缂撳瓨鍚嶇О銆� - maxElementsInMemory锛氱紦瀛樻渶澶т釜鏁般�� - eternal:瀵硅薄鏄惁姘镐箙鏈夋晥锛屼竴浣嗚缃簡锛宼imeout灏嗕笉璧蜂綔鐢ㄣ�� - timeToIdleSeconds锛氳缃璞″湪澶辨晥鍓嶇殑鍏佽闂茬疆鏃堕棿锛堝崟浣嶏細绉掞級銆備粎褰揺ternal=false瀵硅薄涓嶆槸姘镐箙鏈夋晥鏃朵娇鐢紝鍙�夊睘鎬э紝榛樿鍊兼槸0锛屼篃灏辨槸鍙棽缃椂闂存棤绌峰ぇ銆� - timeToLiveSeconds锛氳缃璞″湪澶辨晥鍓嶅厑璁稿瓨娲绘椂闂达紙鍗曚綅锛氱锛夈�傛渶澶ф椂闂翠粙浜庡垱寤烘椂闂村拰澶辨晥鏃堕棿涔嬮棿銆備粎褰揺ternal=false瀵硅薄涓嶆槸姘镐箙鏈夋晥鏃朵娇鐢紝榛樿鏄�0.锛屼篃灏辨槸瀵硅薄瀛樻椿鏃堕棿鏃犵┓澶с�� - overflowToDisk锛氬綋鍐呭瓨涓璞℃暟閲忚揪鍒癿axElementsInMemory鏃讹紝Ehcache灏嗕細瀵硅薄鍐欏埌纾佺洏涓�� diskSpoolBufferSizeMB锛氳繖涓弬鏁拌缃瓺iskStore锛堢鐩樼紦瀛橈級鐨勭紦瀛樺尯澶у皬銆傞粯璁ゆ槸30MB銆傛瘡涓狢ache閮藉簲璇ユ湁鑷繁鐨勪竴涓紦鍐插尯銆� - maxElementsOnDisk锛氱‖鐩樻渶澶х紦瀛樹釜鏁般�� - diskPersistent锛氭槸鍚︾紦瀛樿櫄鎷熸満閲嶅惎鏈熸暟鎹� Whether the disk - store persists between restarts of the Virtual Machine. The default value - is false. - diskExpiryThreadIntervalSeconds锛氱鐩樺け鏁堢嚎绋嬭繍琛屾椂闂撮棿闅旓紝榛樿鏄�120绉掋�� memoryStoreEvictionPolicy锛氬綋杈惧埌maxElementsInMemory闄愬埗鏃讹紝Ehcache灏嗕細鏍规嵁鎸囧畾鐨勭瓥鐣ュ幓娓呯悊鍐呭瓨銆傞粯璁ょ瓥鐣ユ槸 -LRU锛堟渶杩戞渶灏戜娇鐢級銆備綘鍙互璁剧疆涓篎IFO锛堝厛杩涘厛鍑猴級鎴栨槸LFU锛堣緝灏戜娇鐢級銆� - clearOnFlush锛氬唴瀛樻暟閲忔渶澶ф椂鏄惁娓呴櫎銆� --> - <!-- 纾佺洏缂撳瓨浣嶇疆 --> - <diskStore path="java.io.tmpdir"/> - <!-- 榛樿缂撳瓨 --> - <defaultCache - maxElementsInMemory="10000" - eternal="false" - timeToIdleSeconds="120" - timeToLiveSeconds="120" - maxElementsOnDisk="10000000" - diskExpiryThreadIntervalSeconds="120" - memoryStoreEvictionPolicy="LRU"> - - <persistence strategy="localTempSwap"/> - </defaultCache> - - <!-- 鎸佷箙鍖朿ache--> - <cache name="eternal_cache" - maxElementsInMemory="10000" - eternal="true" - timeToIdleSeconds="120" - timeToLiveSeconds="120" - overflowToDisk="true" - diskPersistent="true" - diskExpiryThreadIntervalSeconds="10"/> - - <!-- 涓存椂cache --> - <cache name="temp_cache" - maxElementsInMemory="10000" - eternal="false" - timeToIdleSeconds="300" - timeToLiveSeconds="300" - maxElementsOnDisk="10000000" - diskExpiryThreadIntervalSeconds="120" - memoryStoreEvictionPolicy="LRU"> - <persistence strategy="localTempSwap"/> - </cache> - -</ehcache> \ No newline at end of file diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java b/ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java index 978225f..fd0432f 100644 --- a/ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java +++ b/ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java @@ -1,61 +1,61 @@ -package com.ltkj.tduck.service; - - - -import com.baomidou.mybatisplus.extension.service.IService; -import com.ltkj.tduck.domain.UserFormSettingEntity; -import com.ltkj.tduck.struct.FormSettingSchemaStruct; -import com.ltkj.tduck.utils.Result; - -import java.util.Map; - -/** - * 琛ㄥ崟璁剧疆 - * - * @author smalljop - * @since 2020-11-30 14:00:52 - */ -public interface UserFormSettingService extends IService<UserFormSettingEntity> { - /** - * 淇濆瓨琛ㄥ崟璁剧疆 - */ - Boolean saveFormSetting(Map<String, Object> params); - - - /** - * 琛ㄥ崟璁剧疆 - * - * @param formKey 琛ㄥ崟key - * @return 璁剧疆椤� - */ - UserFormSettingEntity getFormSettingByKey(String formKey); - - /** - * 璁剧疆鍏蜂綋瀹氫箟璁剧疆椤� - * - * @param formKey 琛ㄥ崟key - * @return 璁剧疆椤� - */ - FormSettingSchemaStruct getFormSettingSchema(String formKey); - - /** - * 鑾峰彇褰撳墠椤圭洰璁剧疆鐨勭姸鎬� - * 鏄惁鍙互濉啓绛� - * - * @param formKey 琛ㄥ崟key - * @param requestIp 璇锋眰ip - * @param wxOpenId 寰俊openid - * @param type 绫诲瀷 1鍏紑濉啓 2.鎸囧畾濉啓 - * @return 鏄惁鍙互濉啓 - */ - Result<Boolean> getUserFormWriteSettingStatus(String formKey, String requestIp, String wxOpenId, Integer type); - - - /** - * 鍒犻櫎琛ㄥ崟鎵�鏈夎缃� - * - * @param key 琛ㄥ崟key - * @return 鏄惁鍒犻櫎鎴愬姛 - */ - Boolean deleteAllSetting(String key); -} +//package com.ltkj.tduck.service; +// +// +// +//import com.baomidou.mybatisplus.extension.service.IService; +//import com.ltkj.tduck.domain.UserFormSettingEntity; +//import com.ltkj.tduck.struct.FormSettingSchemaStruct; +//import com.ltkj.tduck.utils.Result; +// +//import java.util.Map; +// +///** +// * 琛ㄥ崟璁剧疆 +// * +// * @author smalljop +// * @since 2020-11-30 14:00:52 +// */ +//public interface UserFormSettingService extends IService<UserFormSettingEntity> { +// /** +// * 淇濆瓨琛ㄥ崟璁剧疆 +// */ +// Boolean saveFormSetting(Map<String, Object> params); +// +// +// /** +// * 琛ㄥ崟璁剧疆 +// * +// * @param formKey 琛ㄥ崟key +// * @return 璁剧疆椤� +// */ +// UserFormSettingEntity getFormSettingByKey(String formKey); +// +// /** +// * 璁剧疆鍏蜂綋瀹氫箟璁剧疆椤� +// * +// * @param formKey 琛ㄥ崟key +// * @return 璁剧疆椤� +// */ +// FormSettingSchemaStruct getFormSettingSchema(String formKey); +// +// /** +// * 鑾峰彇褰撳墠椤圭洰璁剧疆鐨勭姸鎬� +// * 鏄惁鍙互濉啓绛� +// * +// * @param formKey 琛ㄥ崟key +// * @param requestIp 璇锋眰ip +// * @param wxOpenId 寰俊openid +// * @param type 绫诲瀷 1鍏紑濉啓 2.鎸囧畾濉啓 +// * @return 鏄惁鍙互濉啓 +// */ +// Result<Boolean> getUserFormWriteSettingStatus(String formKey, String requestIp, String wxOpenId, Integer type); +// +// +// /** +// * 鍒犻櫎琛ㄥ崟鎵�鏈夎缃� +// * +// * @param key 琛ㄥ崟key +// * @return 鏄惁鍒犻櫎鎴愬姛 +// */ +// Boolean deleteAllSetting(String key); +//} diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java b/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java index 6cb5bdd..3aedf94 100644 --- a/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java +++ b/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java @@ -1,159 +1,159 @@ -package com.ltkj.tduck.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ltkj.common.utils.ip.AddressUtils; -import com.ltkj.tduck.constant.CommonConstants; -import com.ltkj.tduck.domain.UserFormDataEntity; -import com.ltkj.tduck.mapper.UserFormDataMapper; -import com.ltkj.tduck.request.QueryFormResultRequest; -import com.ltkj.tduck.service.UserFormDataService; -import com.ltkj.tduck.service.UserFormItemService; -import com.ltkj.tduck.utils.CacheUtils; -import com.ltkj.tduck.utils.FormDataUtils; -import com.ltkj.tduck.utils.Result; -import com.ltkj.tduck.vo.FormDataTableVO; -import com.ltkj.tduck.vo.FormFieldVO; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static com.ltkj.tduck.constant.FormRedisKeyConstants.FORM_RESULT_NUMBER; - - -/** - * 琛ㄥ崟琛ㄥ崟椤�(FormResult)琛ㄦ湇鍔″疄鐜扮被 - * - * @author smalljop - * @since 2020-11-23 14:09:22 - */ -@Service -@Slf4j -@RequiredArgsConstructor -public class UserFormDataServiceImpl extends ServiceImpl<UserFormDataMapper, UserFormDataEntity> implements UserFormDataService { - - private final UserFormItemService userFormItemService; - private final CacheUtils redisUtils; - private final FormDataUtils formDataUtils; - - - @Override - @Transactional(rollbackFor = Exception.class) - public Map<String, Object> saveFormResult(UserFormDataEntity entity) { - HashMap<String, Object> result = MapUtil.newHashMap(); - String formKey = entity.getFormKey(); - entity.setSubmitAddress(AddressUtils.getRealAddressByIP(entity.getSubmitRequestIp())); - entity.setSerialNumber(redisUtils.incr(StrUtil.format(FORM_RESULT_NUMBER, formKey), CommonConstants.ConstantNumber.ONE)); - this.save(entity); -// formDataUtils.syncSaveFormData(entity); - result.put("id", entity.getId()); - return result; - } - - - /** - * 涓嬭浇琛ㄥ崟缁撴灉涓殑闄勪欢 - * - * @param request - * @return - */ +//package com.ltkj.tduck.service.impl; +// +//import cn.hutool.core.bean.BeanUtil; +//import cn.hutool.core.map.MapUtil; +//import cn.hutool.core.util.ObjectUtil; +//import cn.hutool.core.util.StrUtil; +//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +//import com.ltkj.common.utils.ip.AddressUtils; +//import com.ltkj.tduck.constant.CommonConstants; +//import com.ltkj.tduck.domain.UserFormDataEntity; +//import com.ltkj.tduck.mapper.UserFormDataMapper; +//import com.ltkj.tduck.request.QueryFormResultRequest; +//import com.ltkj.tduck.service.UserFormDataService; +//import com.ltkj.tduck.service.UserFormItemService; +//import com.ltkj.tduck.utils.CacheUtils; +//import com.ltkj.tduck.utils.FormDataUtils; +//import com.ltkj.tduck.utils.Result; +//import com.ltkj.tduck.vo.FormDataTableVO; +//import com.ltkj.tduck.vo.FormFieldVO; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +// +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +//import static com.ltkj.tduck.constant.FormRedisKeyConstants.FORM_RESULT_NUMBER; +// +// +///** +// * 琛ㄥ崟琛ㄥ崟椤�(FormResult)琛ㄦ湇鍔″疄鐜扮被 +// * +// * @author smalljop +// * @since 2020-11-23 14:09:22 +// */ +//@Service +//@Slf4j +//@RequiredArgsConstructor +//public class UserFormDataServiceImpl extends ServiceImpl<UserFormDataMapper, UserFormDataEntity> implements UserFormDataService { +// +// private final UserFormItemService userFormItemService; +// private final CacheUtils redisUtils; +// private final FormDataUtils formDataUtils; +// +// // @Override -// public Result downloadFormResultFile(QueryFormResultRequest request) { -// String uuid = IdUtil.simpleUUID(); -// List<UserFormItemEntity> userFormItemEntityList = userFormItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).in(UserFormItemEntity::getType, CollUtil.newArrayList(FormItemTypeEnum.UPLOAD.toString(), FormItemTypeEnum.IMAGE_UPLOAD.toString()))); -// //缁撴灉 -// List<Map> rows = null; -// if (ObjectUtil.isNull(request.getCurrent()) && ObjectUtil.isNull(request.getSize())) { -// rows = formDataUtils.searchAll(request); -// } else { -// FormDataTableVO formDataTableVO = this.listFormDataTable(request); -// rows = formDataTableVO.getRows(); +// @Transactional(rollbackFor = Exception.class) +// public Map<String, Object> saveFormResult(UserFormDataEntity entity) { +// HashMap<String, Object> result = MapUtil.newHashMap(); +// String formKey = entity.getFormKey(); +// entity.setSubmitAddress(AddressUtils.getRealAddressByIP(entity.getSubmitRequestIp())); +// entity.setSerialNumber(redisUtils.incr(StrUtil.format(FORM_RESULT_NUMBER, formKey), CommonConstants.ConstantNumber.ONE)); +// this.save(entity); +//// formDataUtils.syncSaveFormData(entity); +// result.put("id", entity.getId()); +// return result; +// } +// +// +// /** +// * 涓嬭浇琛ㄥ崟缁撴灉涓殑闄勪欢 +// * +// * @param request +// * @return +// */ +//// @Override +//// public Result downloadFormResultFile(QueryFormResultRequest request) { +//// String uuid = IdUtil.simpleUUID(); +//// List<UserFormItemEntity> userFormItemEntityList = userFormItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).in(UserFormItemEntity::getType, CollUtil.newArrayList(FormItemTypeEnum.UPLOAD.toString(), FormItemTypeEnum.IMAGE_UPLOAD.toString()))); +//// //缁撴灉 +//// List<Map> rows = null; +//// if (ObjectUtil.isNull(request.getCurrent()) && ObjectUtil.isNull(request.getSize())) { +//// rows = formDataUtils.searchAll(request); +//// } else { +//// FormDataTableVO formDataTableVO = this.listFormDataTable(request); +//// rows = formDataTableVO.getRows(); +//// } +//// if (CollectionUtil.isEmpty(rows) || CollectionUtil.isEmpty(userFormItemEntityList)) { +//// return Result.failed("鏆傛棤鏀堕泦闄勪欢锛屾棤娉曚笅杞�"); +//// } +//// List<Map> finalRows = rows; +//// ThreadUtil.execAsync(() -> { +//// TimeInterval timer = DateUtil.timer(); +//// List<String> paths = new ArrayList<>(); +//// List<InputStream> ins = new ArrayList<>(); +//// try { +//// finalRows.forEach(result -> { +//// int index = 0; +//// userFormItemEntityList.forEach(item -> { +//// List<UploadResultStruct> uploadResults = JsonUtils.jsonToList(JsonUtils.objToJson(MapUtil.get(result, item.getFormItemId(), List.class)), UploadResultStruct.class); +//// if (CollectionUtil.isNotEmpty(uploadResults)) { +//// uploadResults.forEach(uFile -> { +//// if (StrUtil.isNotBlank(uFile.getUrl())) { +//// paths.add(FileNameUtil.getName(uFile.getUrl())); +//// byte[] bytes = HttpUtil.downloadBytes(uFile.getUrl()); +//// ins.add(IoUtil.toStream(bytes)); +//// } +//// }); +//// } +//// }); +//// AsyncProcessUtils.setProcess(uuid, ++index / finalRows.size()); +//// }); +//// // 鍘嬬缉涓婁紶oss +//// ByteArrayOutputStream zipOutputStream = new ByteArrayOutputStream(); +//// ZipUtil.zip(zipOutputStream, paths.toArray(new String[]{}), ins.toArray(new InputStream[]{})); +//// String downloadUrl = OssStorageFactory.getStorageService().upload(zipOutputStream.toByteArray(), StorageUtils.generateFileName("download", ".zip")); +//// AsyncProcessUtils.setProcess(uuid, downloadUrl); +//// log.info("export file cost time: {}", timer.interval()); +//// } catch (Exception e) { +//// log.error("download file", e); +//// } +//// }); +//// return Result.success(uuid); +//// } +//// +//// +// @Override +// public FormDataTableVO listFormDataTable(QueryFormResultRequest request) { +// return formDataUtils.search(request); +// } +//// +//// +//// @Override +//// public Boolean deleteByIds(List<String> dataIdList, String formKey) { +//// baseMapper.deleteBatchIds(dataIdList); +//// formDataUtils.asyncDeleteEsDocument(dataIdList, formKey); +//// return true; +//// } +//// +//// @Override +//// public Boolean updateFormResult(UserFormDataEntity entity) { +//// UserFormDataEntity dataEntity = this.getById(entity.getId()); +//// dataEntity.setOriginalData(entity.getOriginalData()); +//// dataEntity.setUpdateBy(entity.getUpdateBy()); +//// boolean update = this.updateById(dataEntity); +//// // 鏌ヨ鏁版嵁 鍚屾鍒癳s 閬垮厤鏁版嵁鍙樼┖琚鐩� +//// formDataUtils.asyncUpdateEsDocument(dataEntity); +//// return update; +//// } +// +// @Override +// public Result getFormDataDetails(String dataId) { +// Map<String, Object> result =new HashMap<>(); +// UserFormDataEntity dataEntity = this.getById(dataId); +// List<FormFieldVO> formFields = userFormItemService.listFormFields(dataEntity.getFormKey()); +// // 琛ㄥ崟瀛楁 +// result.put("formFields", formFields); +// // 琛ㄥ崟濉啓鏁版嵁 +// if (ObjectUtil.isNotNull(dataEntity)) { +// Map<String, Object> originalData = dataEntity.getOriginalData(); +// dataEntity.setOriginalData(null); +// originalData.putAll(BeanUtil.beanToMap(dataEntity, false, true)); +// result.put("formData", originalData); // } -// if (CollectionUtil.isEmpty(rows) || CollectionUtil.isEmpty(userFormItemEntityList)) { -// return Result.failed("鏆傛棤鏀堕泦闄勪欢锛屾棤娉曚笅杞�"); -// } -// List<Map> finalRows = rows; -// ThreadUtil.execAsync(() -> { -// TimeInterval timer = DateUtil.timer(); -// List<String> paths = new ArrayList<>(); -// List<InputStream> ins = new ArrayList<>(); -// try { -// finalRows.forEach(result -> { -// int index = 0; -// userFormItemEntityList.forEach(item -> { -// List<UploadResultStruct> uploadResults = JsonUtils.jsonToList(JsonUtils.objToJson(MapUtil.get(result, item.getFormItemId(), List.class)), UploadResultStruct.class); -// if (CollectionUtil.isNotEmpty(uploadResults)) { -// uploadResults.forEach(uFile -> { -// if (StrUtil.isNotBlank(uFile.getUrl())) { -// paths.add(FileNameUtil.getName(uFile.getUrl())); -// byte[] bytes = HttpUtil.downloadBytes(uFile.getUrl()); -// ins.add(IoUtil.toStream(bytes)); -// } -// }); -// } -// }); -// AsyncProcessUtils.setProcess(uuid, ++index / finalRows.size()); -// }); -// // 鍘嬬缉涓婁紶oss -// ByteArrayOutputStream zipOutputStream = new ByteArrayOutputStream(); -// ZipUtil.zip(zipOutputStream, paths.toArray(new String[]{}), ins.toArray(new InputStream[]{})); -// String downloadUrl = OssStorageFactory.getStorageService().upload(zipOutputStream.toByteArray(), StorageUtils.generateFileName("download", ".zip")); -// AsyncProcessUtils.setProcess(uuid, downloadUrl); -// log.info("export file cost time: {}", timer.interval()); -// } catch (Exception e) { -// log.error("download file", e); -// } -// }); -// return Result.success(uuid); +// return Result.success(result); // } -// -// - @Override - public FormDataTableVO listFormDataTable(QueryFormResultRequest request) { - return formDataUtils.search(request); - } -// -// -// @Override -// public Boolean deleteByIds(List<String> dataIdList, String formKey) { -// baseMapper.deleteBatchIds(dataIdList); -// formDataUtils.asyncDeleteEsDocument(dataIdList, formKey); -// return true; -// } -// -// @Override -// public Boolean updateFormResult(UserFormDataEntity entity) { -// UserFormDataEntity dataEntity = this.getById(entity.getId()); -// dataEntity.setOriginalData(entity.getOriginalData()); -// dataEntity.setUpdateBy(entity.getUpdateBy()); -// boolean update = this.updateById(dataEntity); -// // 鏌ヨ鏁版嵁 鍚屾鍒癳s 閬垮厤鏁版嵁鍙樼┖琚鐩� -// formDataUtils.asyncUpdateEsDocument(dataEntity); -// return update; -// } - - @Override - public Result getFormDataDetails(String dataId) { - Map<String, Object> result =new HashMap<>(); - UserFormDataEntity dataEntity = this.getById(dataId); - List<FormFieldVO> formFields = userFormItemService.listFormFields(dataEntity.getFormKey()); - // 琛ㄥ崟瀛楁 - result.put("formFields", formFields); - // 琛ㄥ崟濉啓鏁版嵁 - if (ObjectUtil.isNotNull(dataEntity)) { - Map<String, Object> originalData = dataEntity.getOriginalData(); - dataEntity.setOriginalData(null); - originalData.putAll(BeanUtil.beanToMap(dataEntity, false, true)); - result.put("formData", originalData); - } - return Result.success(result); - } -} +//} diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java b/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java index cf23b5b..36f24c1 100644 --- a/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java +++ b/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java @@ -1,194 +1,194 @@ -package com.ltkj.tduck.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ltkj.common.utils.SecurityUtils; -import com.ltkj.tduck.constant.CommonConstants; -import com.ltkj.tduck.domain.UserFormDataEntity; -import com.ltkj.tduck.domain.UserFormEntity; -import com.ltkj.tduck.domain.UserFormSettingEntity; -import com.ltkj.tduck.enums.FormStatusEnum; -import com.ltkj.tduck.mapper.UserFormSettingMapper; -import com.ltkj.tduck.service.UserFormDataService; -import com.ltkj.tduck.service.UserFormService; -import com.ltkj.tduck.service.UserFormSettingService; -import com.ltkj.tduck.struct.FormSettingSchemaStruct; -import com.ltkj.tduck.utils.Result; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.time.LocalTime; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * 琛ㄥ崟琛ㄥ崟椤�(UserFormSetting)琛ㄦ湇鍔″疄鐜扮被 - * - * @author smalljop - * @since 2020-11-30 14:00:53 - */ -@Service -@RequiredArgsConstructor -public class UserFormSettingServiceImpl extends ServiceImpl<UserFormSettingMapper, UserFormSettingEntity> implements UserFormSettingService { - private final UserFormService userFormService; - private final UserFormDataService userFormDataService; - - @Override - public Boolean saveFormSetting(Map<String, Object> params) { - String formKey = params.get("formKey").toString(); - UserFormSettingEntity entity = this.getOne(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey)); - if (ObjectUtil.isNull(entity)) { - UserFormSettingEntity setting = new UserFormSettingEntity(); - setting.setFormKey(formKey); - setting.setSettings(params); - return this.save(setting); - } - Map<String, Object> settings = entity.getSettings(); - settings.putAll(params); - entity.setSettings(settings); - return this.updateById(entity); - } - - - @Override - public UserFormSettingEntity getFormSettingByKey(String formKey) { - return this.getOne(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey)); - } - - @Override - public FormSettingSchemaStruct getFormSettingSchema(String formKey) { - UserFormSettingEntity settingEntity = getFormSettingByKey(formKey); - if (ObjectUtil.isNull(settingEntity)) { - return null; - } - return BeanUtil.toBean(settingEntity.getSettings(), FormSettingSchemaStruct.class); - } - - - @Override - public Result<Boolean> getUserFormWriteSettingStatus(String formKey, String requestIp, String wxOpenId, Integer type) { - UserFormEntity userFormEntity = userFormService.getByKey(formKey); - boolean checkPublish = Objects.equals(type, CommonConstants.ConstantNumber.ONE) && - (ObjectUtil.isNull(userFormEntity) || userFormEntity.getStatus() != 2); - // 闈炲叕寮�濉啓 涓嶆牎楠屽彂甯冪姸鎬� - if (checkPublish) { - return Result.success(null, "琛ㄥ崟鏆傛椂鏃犳硶濉啓"); - } - UserFormSettingEntity settingEntity = getFormSettingByKey(formKey); - if (ObjectUtil.isNull(settingEntity)) { - return Result.success(true); - } - FormSettingSchemaStruct settingSchemaStruct = BeanUtil.toBean(settingEntity.getSettings(), FormSettingSchemaStruct.class); - // 濉啓鏃堕棿闄愬埗 - boolean writeInterviewTime = isWriteInterviewTime(settingSchemaStruct); - if (!writeInterviewTime) { - return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getWriteInterviewTimeText(), "涓嶅湪绛旈鏃堕棿鑼冨洿鍐咃紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�")); - } - // 姣忎釜寰俊绛旈娆℃暟闄愬埗 - if (settingSchemaStruct.isWxWriteCountLimitStatus()) { - LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey).eq(UserFormDataEntity::getWxOpenId, wxOpenId); - String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getWxWriteCountLimitDateType()); - wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql); - long writeCount = userFormDataService.count(wrapper); - if (writeCount >= settingSchemaStruct.getWxWriteCountLimit()) { - return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getWxWriteCountLimitText(), "璇ュ井淇″凡缁忔彁浜よ繃鏁版嵁锛屼笉鍙噸澶嶆彁浜わ紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�")); - } - } - // 姣忎釜IP绛旈娆℃暟闄愬埗 - if (settingSchemaStruct.isIpWriteCountLimitStatus()) { - LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey).eq(UserFormDataEntity::getSubmitRequestIp, requestIp); - String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getIpWriteCountLimitDateType()); - wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql); - long writeCount = userFormDataService.count(wrapper); - if (writeCount >= settingSchemaStruct.getIpWriteCountLimit()) { - return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getIpWriteCountLimitText(), "璇P宸茬粡鎻愪氦杩囨暟鎹紝涓嶅彲閲嶅鎻愪氦锛屾湁闂璇蜂笌琛ㄥ崟鍙戝竷鑰呰仈绯�")); - } - } - // 鎬荤瓟棰樻鏁伴檺鍒� - if (settingSchemaStruct.isTotalWriteCountLimitStatus()) { - LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey); - String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getTotalWriteCountLimitDateType()); - wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql); - long writeCount = userFormDataService.count(wrapper); - if (writeCount >= settingSchemaStruct.getTotalWriteCountLimit()) { - return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getTotalWriteCountLimitText(), "璇ヨ〃鍗曟敹闆嗘暟鎹凡缁忚揪鍒颁笂闄愶紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�")); - } - } - // 姣忎釜璐﹀彿绛旈娆℃暟闄愬埗 - if (settingSchemaStruct.isAccountWriteCountLimitStatus()) { - LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey) - .eq(UserFormDataEntity::getCreateBy, SecurityUtils.getUserId()); - String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getAccountWriteCountLimitDateType()); - wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql); - long writeCount = userFormDataService.count(wrapper); - if (writeCount >= settingSchemaStruct.getAccountWriteCountLimit()) { - return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getAccountWriteCountLimitText(), "璇ヨ处鍙峰凡缁忔彁浜よ繃鏁版嵁锛屼笉鍙噸澶嶆彁浜わ紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�")); - } - } - return Result.success(true); - } - - /** - * 鏄惁鍦ㄨ缃殑绛旈鏃堕棿鍐� - * - * @return true 鍦ㄧ瓟棰樻椂闂村唴 - */ - private boolean isWriteInterviewTime(FormSettingSchemaStruct settingSchemaStruct) { - // 绛旈鏃堕棿闄愬埗 - if (settingSchemaStruct.isWriteInterviewTimeStatus()) { - // 鏄惁姣忓ぉ鏃堕棿鑼冨洿闄愬埗 - if (settingSchemaStruct.isWriteInterviewDayTimeStatus()) { - // 鏄惁鍦ㄥ厑璁歌闂殑澶╁唴 - List<String> writeInterviewDateRange = settingSchemaStruct.getWriteInterviewDateRange(); - if (CollUtil.isEmpty(writeInterviewDateRange) || DateUtil.isIn(DateUtil.date(), DateUtil.parse(writeInterviewDateRange.get(0)), DateUtil.parse(writeInterviewDateRange.get(1)))) { - // 鏄惁鍦ㄥ厑璁歌闂殑灏忔椂鍐� - List<String> writeInterviewTimeRange = settingSchemaStruct.getWriteInterviewTimeRange(); - LocalTime now = LocalTime.now(); - boolean isRange = CollUtil.isNotEmpty(writeInterviewDateRange) && now.isBefore(LocalTime.parse(writeInterviewTimeRange.get(0))) || now.isAfter(LocalTime.parse(writeInterviewTimeRange.get(1))); - if (isRange) { - return false; - } - } else { - return false; - } - } else { - // 鏄惁鍦ㄥ厑璁歌闂殑澶╁唴 - List<String> writeInterviewDateTimeRange = settingSchemaStruct.getWriteInterviewDateTimeRange(); - if (CollUtil.isNotEmpty(writeInterviewDateTimeRange) && !DateUtil.isIn(DateUtil.date(), DateUtil.parse(writeInterviewDateTimeRange.get(0)), DateUtil.parse(writeInterviewDateTimeRange.get(1)))) { - return false; - } - } - // 鏄惁鏄瘡鍛ㄥ厑璁歌闂殑鍛ㄥ嚑 - List<String> writeInterviewTimeWhichDays = settingSchemaStruct.getWriteInterviewTimeWhichDays(); - if (CollUtil.isNotEmpty(writeInterviewTimeWhichDays)) { - // 鑾峰彇浠婂ぉ鏄瘡鍛ㄧ殑绗嚑澶� - int day = DateUtil.dayOfWeek(DateUtil.date()); - return writeInterviewTimeWhichDays.contains(String.valueOf(day)); - } - } - return true; - } - - - /** - * 鍒犻櫎鍏ㄩ儴鐨勮〃鍗曟暟鎹� - * - * @param formKey 琛ㄥ崟key - * @return 鍒犻櫎缁撴灉 - */ - @Override - @Transactional(rollbackFor = {Exception.class}) - public Boolean deleteAllSetting(String formKey) { - this.remove(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey)); - return true; - } - -} +//package com.ltkj.tduck.service.impl; +// +//import cn.hutool.core.bean.BeanUtil; +//import cn.hutool.core.collection.CollUtil; +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.util.ObjectUtil; +//import cn.hutool.core.util.StrUtil; +//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +//import com.baomidou.mybatisplus.core.toolkit.Wrappers; +//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +//import com.ltkj.common.utils.SecurityUtils; +//import com.ltkj.tduck.constant.CommonConstants; +//import com.ltkj.tduck.domain.UserFormDataEntity; +//import com.ltkj.tduck.domain.UserFormEntity; +//import com.ltkj.tduck.domain.UserFormSettingEntity; +//import com.ltkj.tduck.enums.FormStatusEnum; +//import com.ltkj.tduck.mapper.UserFormSettingMapper; +//import com.ltkj.tduck.service.UserFormDataService; +//import com.ltkj.tduck.service.UserFormService; +//import com.ltkj.tduck.service.UserFormSettingService; +//import com.ltkj.tduck.struct.FormSettingSchemaStruct; +//import com.ltkj.tduck.utils.Result; +//import lombok.RequiredArgsConstructor; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +// +//import java.time.LocalTime; +//import java.util.List; +//import java.util.Map; +//import java.util.Objects; +// +///** +// * 琛ㄥ崟琛ㄥ崟椤�(UserFormSetting)琛ㄦ湇鍔″疄鐜扮被 +// * +// * @author smalljop +// * @since 2020-11-30 14:00:53 +// */ +//@Service +//@RequiredArgsConstructor +//public class UserFormSettingServiceImpl extends ServiceImpl<UserFormSettingMapper, UserFormSettingEntity> implements UserFormSettingService { +// private final UserFormService userFormService; +// private final UserFormDataService userFormDataService; +// +// @Override +// public Boolean saveFormSetting(Map<String, Object> params) { +// String formKey = params.get("formKey").toString(); +// UserFormSettingEntity entity = this.getOne(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey)); +// if (ObjectUtil.isNull(entity)) { +// UserFormSettingEntity setting = new UserFormSettingEntity(); +// setting.setFormKey(formKey); +// setting.setSettings(params); +// return this.save(setting); +// } +// Map<String, Object> settings = entity.getSettings(); +// settings.putAll(params); +// entity.setSettings(settings); +// return this.updateById(entity); +// } +// +// +// @Override +// public UserFormSettingEntity getFormSettingByKey(String formKey) { +// return this.getOne(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey)); +// } +// +// @Override +// public FormSettingSchemaStruct getFormSettingSchema(String formKey) { +// UserFormSettingEntity settingEntity = getFormSettingByKey(formKey); +// if (ObjectUtil.isNull(settingEntity)) { +// return null; +// } +// return BeanUtil.toBean(settingEntity.getSettings(), FormSettingSchemaStruct.class); +// } +// +// +// @Override +// public Result<Boolean> getUserFormWriteSettingStatus(String formKey, String requestIp, String wxOpenId, Integer type) { +// UserFormEntity userFormEntity = userFormService.getByKey(formKey); +// boolean checkPublish = Objects.equals(type, CommonConstants.ConstantNumber.ONE) && +// (ObjectUtil.isNull(userFormEntity) || userFormEntity.getStatus() != 2); +// // 闈炲叕寮�濉啓 涓嶆牎楠屽彂甯冪姸鎬� +// if (checkPublish) { +// return Result.success(null, "琛ㄥ崟鏆傛椂鏃犳硶濉啓"); +// } +// UserFormSettingEntity settingEntity = getFormSettingByKey(formKey); +// if (ObjectUtil.isNull(settingEntity)) { +// return Result.success(true); +// } +// FormSettingSchemaStruct settingSchemaStruct = BeanUtil.toBean(settingEntity.getSettings(), FormSettingSchemaStruct.class); +// // 濉啓鏃堕棿闄愬埗 +// boolean writeInterviewTime = isWriteInterviewTime(settingSchemaStruct); +// if (!writeInterviewTime) { +// return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getWriteInterviewTimeText(), "涓嶅湪绛旈鏃堕棿鑼冨洿鍐咃紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�")); +// } +// // 姣忎釜寰俊绛旈娆℃暟闄愬埗 +// if (settingSchemaStruct.isWxWriteCountLimitStatus()) { +// LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey).eq(UserFormDataEntity::getWxOpenId, wxOpenId); +// String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getWxWriteCountLimitDateType()); +// wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql); +// long writeCount = userFormDataService.count(wrapper); +// if (writeCount >= settingSchemaStruct.getWxWriteCountLimit()) { +// return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getWxWriteCountLimitText(), "璇ュ井淇″凡缁忔彁浜よ繃鏁版嵁锛屼笉鍙噸澶嶆彁浜わ紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�")); +// } +// } +// // 姣忎釜IP绛旈娆℃暟闄愬埗 +// if (settingSchemaStruct.isIpWriteCountLimitStatus()) { +// LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey).eq(UserFormDataEntity::getSubmitRequestIp, requestIp); +// String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getIpWriteCountLimitDateType()); +// wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql); +// long writeCount = userFormDataService.count(wrapper); +// if (writeCount >= settingSchemaStruct.getIpWriteCountLimit()) { +// return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getIpWriteCountLimitText(), "璇P宸茬粡鎻愪氦杩囨暟鎹紝涓嶅彲閲嶅鎻愪氦锛屾湁闂璇蜂笌琛ㄥ崟鍙戝竷鑰呰仈绯�")); +// } +// } +// // 鎬荤瓟棰樻鏁伴檺鍒� +// if (settingSchemaStruct.isTotalWriteCountLimitStatus()) { +// LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey); +// String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getTotalWriteCountLimitDateType()); +// wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql); +// long writeCount = userFormDataService.count(wrapper); +// if (writeCount >= settingSchemaStruct.getTotalWriteCountLimit()) { +// return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getTotalWriteCountLimitText(), "璇ヨ〃鍗曟敹闆嗘暟鎹凡缁忚揪鍒颁笂闄愶紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�")); +// } +// } +// // 姣忎釜璐﹀彿绛旈娆℃暟闄愬埗 +// if (settingSchemaStruct.isAccountWriteCountLimitStatus()) { +// LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey) +// .eq(UserFormDataEntity::getCreateBy, SecurityUtils.getUserId()); +// String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getAccountWriteCountLimitDateType()); +// wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql); +// long writeCount = userFormDataService.count(wrapper); +// if (writeCount >= settingSchemaStruct.getAccountWriteCountLimit()) { +// return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getAccountWriteCountLimitText(), "璇ヨ处鍙峰凡缁忔彁浜よ繃鏁版嵁锛屼笉鍙噸澶嶆彁浜わ紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�")); +// } +// } +// return Result.success(true); +// } +// +// /** +// * 鏄惁鍦ㄨ缃殑绛旈鏃堕棿鍐� +// * +// * @return true 鍦ㄧ瓟棰樻椂闂村唴 +// */ +// private boolean isWriteInterviewTime(FormSettingSchemaStruct settingSchemaStruct) { +// // 绛旈鏃堕棿闄愬埗 +// if (settingSchemaStruct.isWriteInterviewTimeStatus()) { +// // 鏄惁姣忓ぉ鏃堕棿鑼冨洿闄愬埗 +// if (settingSchemaStruct.isWriteInterviewDayTimeStatus()) { +// // 鏄惁鍦ㄥ厑璁歌闂殑澶╁唴 +// List<String> writeInterviewDateRange = settingSchemaStruct.getWriteInterviewDateRange(); +// if (CollUtil.isEmpty(writeInterviewDateRange) || DateUtil.isIn(DateUtil.date(), DateUtil.parse(writeInterviewDateRange.get(0)), DateUtil.parse(writeInterviewDateRange.get(1)))) { +// // 鏄惁鍦ㄥ厑璁歌闂殑灏忔椂鍐� +// List<String> writeInterviewTimeRange = settingSchemaStruct.getWriteInterviewTimeRange(); +// LocalTime now = LocalTime.now(); +// boolean isRange = CollUtil.isNotEmpty(writeInterviewDateRange) && now.isBefore(LocalTime.parse(writeInterviewTimeRange.get(0))) || now.isAfter(LocalTime.parse(writeInterviewTimeRange.get(1))); +// if (isRange) { +// return false; +// } +// } else { +// return false; +// } +// } else { +// // 鏄惁鍦ㄥ厑璁歌闂殑澶╁唴 +// List<String> writeInterviewDateTimeRange = settingSchemaStruct.getWriteInterviewDateTimeRange(); +// if (CollUtil.isNotEmpty(writeInterviewDateTimeRange) && !DateUtil.isIn(DateUtil.date(), DateUtil.parse(writeInterviewDateTimeRange.get(0)), DateUtil.parse(writeInterviewDateTimeRange.get(1)))) { +// return false; +// } +// } +// // 鏄惁鏄瘡鍛ㄥ厑璁歌闂殑鍛ㄥ嚑 +// List<String> writeInterviewTimeWhichDays = settingSchemaStruct.getWriteInterviewTimeWhichDays(); +// if (CollUtil.isNotEmpty(writeInterviewTimeWhichDays)) { +// // 鑾峰彇浠婂ぉ鏄瘡鍛ㄧ殑绗嚑澶� +// int day = DateUtil.dayOfWeek(DateUtil.date()); +// return writeInterviewTimeWhichDays.contains(String.valueOf(day)); +// } +// } +// return true; +// } +// +// +// /** +// * 鍒犻櫎鍏ㄩ儴鐨勮〃鍗曟暟鎹� +// * +// * @param formKey 琛ㄥ崟key +// * @return 鍒犻櫎缁撴灉 +// */ +// @Override +// @Transactional(rollbackFor = {Exception.class}) +// public Boolean deleteAllSetting(String formKey) { +// this.remove(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey)); +// return true; +// } +// +//} diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java b/ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java index 7f5c037..88470c7 100644 --- a/ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java +++ b/ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java @@ -1,133 +1,133 @@ -package com.ltkj.tduck.utils; - -import cn.hutool.core.convert.Convert; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.compress.utils.Lists; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.Cache; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.cache.ehcache.EhCacheCacheManager; -import org.springframework.stereotype.Component; - -import java.util.List; - -/** - * @author : tduck - * @description : 鍩轰簬ehcache瀹炵幇 - * @create : 2022/01/06 10:40 - **/ -@Component -@Slf4j -@EnableCaching -public class CacheUtils { - private final String ETERNAL_CACHE_NAME = "eternal_cache"; - private final String TEMP_CACHE_NAME = "temp_cache"; - @Autowired - private EhCacheCacheManager cacheManager; - - /** - * 淇濆瓨鍒癈ache - */ - public void save(String key, String value) { - cacheManager.getCache(ETERNAL_CACHE_NAME).put(key, value); - } - - /** - * 鑾峰彇 - * - * @param key - */ - public String get(String key) { - Cache.ValueWrapper valueWrapper = cacheManager.getCache(ETERNAL_CACHE_NAME).get(key); - if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) { - return valueWrapper.get().toString(); - } - return null; - } - - - /** - * 鑷 - * - * @param key - * @param number - * @return - */ - public Long incr(String key, Integer number) { - String v = get(key); - if (StrUtil.isBlank(v)) { - v = "0"; - } - long finalValue = Convert.toLong(v) + number; - save(key, String.valueOf(finalValue)); - return finalValue; - } - - - /** - * 娣诲姞鍒伴泦鍚堢紦瀛� - * - * @param key - * @param value - */ - public void addList(String key, Object value) { - List coll = this.getList(key, Object.class); - coll.add(value); - cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll)); - } - - - /** - * 浠庨泦鍚堜腑绉婚櫎 - * - * @param key - * @param value - */ - public void removeList(String key, Object value) { - List coll = this.getList(key, Object.class); - coll.remove(value); - cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll)); - } - - /** - * 鑾峰彇闆嗗悎 - * - * @param key - */ - public List getList(String key, Class classz) { - String v = get(key); - if (ObjectUtil.isNotNull(v)) { - return JsonUtils.jsonToList(v, classz.getClass()); - } - return Lists.newArrayList(); - } - - - /** - * 涓存椂淇濆瓨 榛樿5min - */ - public void tempSave(String key, String value) { - cacheManager.getCache(TEMP_CACHE_NAME).put(key, value); - } - - /** - * 鑾峰彇涓存椂瀛樺偍鍙橀噺 - * - * @param key - */ - public String getTemp(String key) { - Cache.ValueWrapper valueWrapper = cacheManager.getCache(TEMP_CACHE_NAME).get(key); - if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) { - return valueWrapper.get().toString(); - } - return null; - } - - public void removeTemp(String key) { - cacheManager.getCache(TEMP_CACHE_NAME).evict(key); - } - - -} +//package com.ltkj.tduck.utils; +// +//import cn.hutool.core.convert.Convert; +//import cn.hutool.core.util.ObjectUtil; +//import cn.hutool.core.util.StrUtil; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.commons.compress.utils.Lists; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.cache.Cache; +//import org.springframework.cache.annotation.EnableCaching; +//import org.springframework.cache.ehcache.EhCacheCacheManager; +//import org.springframework.stereotype.Component; +// +//import java.util.List; +// +///** +// * @author : tduck +// * @description : 鍩轰簬ehcache瀹炵幇 +// * @create : 2022/01/06 10:40 +// **/ +//@Component +//@Slf4j +//@EnableCaching +//public class CacheUtils { +// private final String ETERNAL_CACHE_NAME = "eternal_cache"; +// private final String TEMP_CACHE_NAME = "temp_cache"; +// @Autowired +// private EhCacheCacheManager cacheManager; +// +// /** +// * 淇濆瓨鍒癈ache +// */ +// public void save(String key, String value) { +// cacheManager.getCache(ETERNAL_CACHE_NAME).put(key, value); +// } +// +// /** +// * 鑾峰彇 +// * +// * @param key +// */ +// public String get(String key) { +// Cache.ValueWrapper valueWrapper = cacheManager.getCache(ETERNAL_CACHE_NAME).get(key); +// if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) { +// return valueWrapper.get().toString(); +// } +// return null; +// } +// +// +// /** +// * 鑷 +// * +// * @param key +// * @param number +// * @return +// */ +// public Long incr(String key, Integer number) { +// String v = get(key); +// if (StrUtil.isBlank(v)) { +// v = "0"; +// } +// long finalValue = Convert.toLong(v) + number; +// save(key, String.valueOf(finalValue)); +// return finalValue; +// } +// +// +// /** +// * 娣诲姞鍒伴泦鍚堢紦瀛� +// * +// * @param key +// * @param value +// */ +// public void addList(String key, Object value) { +// List coll = this.getList(key, Object.class); +// coll.add(value); +// cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll)); +// } +// +// +// /** +// * 浠庨泦鍚堜腑绉婚櫎 +// * +// * @param key +// * @param value +// */ +// public void removeList(String key, Object value) { +// List coll = this.getList(key, Object.class); +// coll.remove(value); +// cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll)); +// } +// +// /** +// * 鑾峰彇闆嗗悎 +// * +// * @param key +// */ +// public List getList(String key, Class classz) { +// String v = get(key); +// if (ObjectUtil.isNotNull(v)) { +// return JsonUtils.jsonToList(v, classz.getClass()); +// } +// return Lists.newArrayList(); +// } +// +// +// /** +// * 涓存椂淇濆瓨 榛樿5min +// */ +// public void tempSave(String key, String value) { +// cacheManager.getCache(TEMP_CACHE_NAME).put(key, value); +// } +// +// /** +// * 鑾峰彇涓存椂瀛樺偍鍙橀噺 +// * +// * @param key +// */ +// public String getTemp(String key) { +// Cache.ValueWrapper valueWrapper = cacheManager.getCache(TEMP_CACHE_NAME).get(key); +// if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) { +// return valueWrapper.get().toString(); +// } +// return null; +// } +// +// public void removeTemp(String key) { +// cacheManager.getCache(TEMP_CACHE_NAME).evict(key); +// } +// +// +//} diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java b/ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java index c59f3ce..56e135a 100644 --- a/ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java +++ b/ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java @@ -1,109 +1,109 @@ -package com.ltkj.tduck.utils; - - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ltkj.tduck.constant.FormRedisKeyConstants; -import com.ltkj.tduck.domain.UserFormItemEntity; -import com.ltkj.tduck.service.UserFormItemService; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Component; - -import java.util.Comparator; -import java.util.List; - -/** - * 涓や釜鍓嶆彁:浣嶇疆鐨勪俊鎭褰曞湪浠诲姟鐨勬ā鍨嬩笂(pos瀛楁);涓�鑸袱涓换鍔$殑pos鍊肩浉宸緢澶�(榛樿鏄�65536);鐜板湪鍋囪鏈変换鍔� A, B, C. - * 鍒椾妇鍑犱釜甯歌鐨勫満鏅�:濡傛灉C瑕佺Щ鍒癆鐨勫墠闈�, 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 A.pos/2;鑻ユ灉C瑕佺Щ鍒癆鍜孊涔嬮棿, - * 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 (A.pos + B.pos)/2;濡傛灉B瑕佺Щ鍒癈鐨勫悗闈�, 閭d箞鍚庣浼氭妸 B.pos 鏀逛负 C.pos + 65536; - * 褰撶劧杩欓噷浼氭湁涓瀬绔儏鍐甸渶瑕佸鐞�(鍋囪pos鏄暣鏁�):濡傛灉 A.pos 鏄� 1, B.pos 鏄� 2, C鎯崇Щ鍒癆鍜孊涔嬮棿, 鍏跺疄鏄病鏈変竴涓暣鏁板彲浠ョ敤鐨�, - * 閽堝杩欑鎯呭喌, 鍚庣浼氶噸鏂扮粰鏁翠釜鍒楄〃鐨勪换鍔¢噸鏂板埛涓�閬峱os鍊�. - * <p> - * 鎷栧姩鎺掑簭宸ュ叿绫� - * 绠楁硶鍙傝�� @link https://www.zhihu.com/question/55789722 - * - * @author smalljop - */ -@RequiredArgsConstructor -@Component -public class SortUtils { - - private final CacheUtils cacheUtils; - - /** - * 鎺掑簭榛樿鑷鍥犲瓙 - */ - private final Long SORT_DEFAULT_INCR_FACT = 65536L; - - private final UserFormItemService formItemService; - - - /** - * 鑾峰彇鎺掑簭鏁板�� - * - * @param formKey 琛ㄥ崟key - * @return 鍒濆鎺掑簭鏁板�� - */ - public Long getInitialSortPosition(String formKey) { - String redisKey = StrUtil.format(FormRedisKeyConstants.FORM_ITEM_POS_DELTA, formKey); - // 妯℃澘鍒涘缓鏃� 鍒濆鎺掑簭鏁板�� - if (StrUtil.isBlank(cacheUtils.get(redisKey))) { - Long sort = formItemService.getLastItemSort(formKey); - cacheUtils.save(redisKey, String.valueOf(sort == null ? 1 : sort)); - } - return cacheUtils.incr(redisKey, SORT_DEFAULT_INCR_FACT.intValue()); - } - - - /** - * * 涓や釜鍓嶆彁:浣嶇疆鐨勪俊鎭褰曞湪浠诲姟鐨勬ā鍨嬩笂(pos瀛楁);涓�鑸袱涓换鍔$殑pos鍊肩浉宸緢澶�(榛樿鏄�65536);鐜板湪鍋囪鏈変换鍔� A, B, C. - * * 鍒椾妇鍑犱釜甯歌鐨勫満鏅�:濡傛灉C瑕佺Щ鍒癆鐨勫墠闈�, 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 A.pos/2;鑻ユ灉C瑕佺Щ鍒癆鍜孊涔嬮棿, - * * 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 (A.pos + B.pos)/2;濡傛灉B瑕佺Щ鍒癈鐨勫悗闈�, 閭d箞鍚庣浼氭妸 B.pos 鏀逛负 C.pos + 65536; - * * 褰撶劧杩欓噷浼氭湁涓瀬绔儏鍐甸渶瑕佸鐞�(鍋囪pos鏄暣鏁�):濡傛灉 A.pos 鏄� 1, B.pos 鏄� 2, C鎯崇Щ鍒癆鍜孊涔嬮棿, 鍏跺疄鏄病鏈変竴涓暣鏁板彲浠ョ敤鐨�, - * * 閽堝杩欑鎯呭喌, 鍚庣浼氶噸鏂扮粰鏁翠釜鍒楄〃鐨勪换鍔¢噸鏂板埛涓�閬峱os鍊�. - * 鎺掑簭涔嬪悗閲嶆柊璁$畻 - * - * @param beforePosition 涔嬪墠鐨勪綅缃� - * @param afterPosition 涔嬪悗鐨勪綅缃� - * @param formKey 琛ㄥ崟key - * @return 鏈�缁堜綅缃� - */ - public Long calcSortPosition(Long beforePosition, Long afterPosition, String formKey) { - String redisKey = StrUtil.format(FormRedisKeyConstants.FORM_ITEM_POS_DELTA, formKey); - boolean isCenter = (ObjectUtil.isNotNull(beforePosition) && 0L != beforePosition) && (ObjectUtil.isNotNull(afterPosition) && 0L != afterPosition); - if (isCenter) { // 鏀惧埌涓棿 - return (beforePosition + afterPosition) / 2; - } - if (ObjectUtil.isNull(beforePosition) || 0L == beforePosition) { // 鏀惧埌鏈�鍓嶉潰 - return afterPosition / 2; - } else { // 鏀惧埌鏈�鍚庨潰 - return cacheUtils.incr(redisKey, SORT_DEFAULT_INCR_FACT.intValue()); - } - } - - - /** - * 鏋佺鎯呭喌鍒锋柊鏁翠釜鍒楄〃 - * - * @param beforePosition 涔嬪墠鐨勪綅缃� - * @param afterPosition 涔嬪悗鐨勪綅缃� - * @param formKey 琛ㄥ崟key - * @param sort 鎺掑簭鏁板�� - */ - public Boolean sortAllList(Long beforePosition, Long afterPosition, String formKey, Long sort) { - // 鍗冲皢娌℃湁鏁存暟锛屽埛鏂板叏閮ㄥ垪琛ㄦ帓搴忓�� - if ((ObjectUtil.isNotNull(beforePosition) && 0L != beforePosition && ObjectUtil.equal(sort, beforePosition + 1)) - || (ObjectUtil.isNotNull(afterPosition) && 0L != afterPosition && ObjectUtil.equal(sort, 1L))) { - List<UserFormItemEntity> itemEntityList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, formKey)); - itemEntityList.sort(Comparator.comparing(UserFormItemEntity::getSort)); - for (int i = 0; i < itemEntityList.size(); i++) { - itemEntityList.get(i).setSort(SORT_DEFAULT_INCR_FACT * (i + 1)); - } - formItemService.updateBatchById(itemEntityList); - return true; - } - return false; - } - -} +//package com.ltkj.tduck.utils; +// +// +//import cn.hutool.core.util.ObjectUtil; +//import cn.hutool.core.util.StrUtil; +//import com.baomidou.mybatisplus.core.toolkit.Wrappers; +//import com.ltkj.tduck.constant.FormRedisKeyConstants; +//import com.ltkj.tduck.domain.UserFormItemEntity; +//import com.ltkj.tduck.service.UserFormItemService; +//import lombok.RequiredArgsConstructor; +//import org.springframework.stereotype.Component; +// +//import java.util.Comparator; +//import java.util.List; +// +///** +// * 涓や釜鍓嶆彁:浣嶇疆鐨勪俊鎭褰曞湪浠诲姟鐨勬ā鍨嬩笂(pos瀛楁);涓�鑸袱涓换鍔$殑pos鍊肩浉宸緢澶�(榛樿鏄�65536);鐜板湪鍋囪鏈変换鍔� A, B, C. +// * 鍒椾妇鍑犱釜甯歌鐨勫満鏅�:濡傛灉C瑕佺Щ鍒癆鐨勫墠闈�, 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 A.pos/2;鑻ユ灉C瑕佺Щ鍒癆鍜孊涔嬮棿, +// * 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 (A.pos + B.pos)/2;濡傛灉B瑕佺Щ鍒癈鐨勫悗闈�, 閭d箞鍚庣浼氭妸 B.pos 鏀逛负 C.pos + 65536; +// * 褰撶劧杩欓噷浼氭湁涓瀬绔儏鍐甸渶瑕佸鐞�(鍋囪pos鏄暣鏁�):濡傛灉 A.pos 鏄� 1, B.pos 鏄� 2, C鎯崇Щ鍒癆鍜孊涔嬮棿, 鍏跺疄鏄病鏈変竴涓暣鏁板彲浠ョ敤鐨�, +// * 閽堝杩欑鎯呭喌, 鍚庣浼氶噸鏂扮粰鏁翠釜鍒楄〃鐨勪换鍔¢噸鏂板埛涓�閬峱os鍊�. +// * <p> +// * 鎷栧姩鎺掑簭宸ュ叿绫� +// * 绠楁硶鍙傝�� @link https://www.zhihu.com/question/55789722 +// * +// * @author smalljop +// */ +//@RequiredArgsConstructor +//@Component +//public class SortUtils { +// +// private final CacheUtils cacheUtils; +// +// /** +// * 鎺掑簭榛樿鑷鍥犲瓙 +// */ +// private final Long SORT_DEFAULT_INCR_FACT = 65536L; +// +// private final UserFormItemService formItemService; +// +// +// /** +// * 鑾峰彇鎺掑簭鏁板�� +// * +// * @param formKey 琛ㄥ崟key +// * @return 鍒濆鎺掑簭鏁板�� +// */ +// public Long getInitialSortPosition(String formKey) { +// String redisKey = StrUtil.format(FormRedisKeyConstants.FORM_ITEM_POS_DELTA, formKey); +// // 妯℃澘鍒涘缓鏃� 鍒濆鎺掑簭鏁板�� +// if (StrUtil.isBlank(cacheUtils.get(redisKey))) { +// Long sort = formItemService.getLastItemSort(formKey); +// cacheUtils.save(redisKey, String.valueOf(sort == null ? 1 : sort)); +// } +// return cacheUtils.incr(redisKey, SORT_DEFAULT_INCR_FACT.intValue()); +// } +// +// +// /** +// * * 涓や釜鍓嶆彁:浣嶇疆鐨勪俊鎭褰曞湪浠诲姟鐨勬ā鍨嬩笂(pos瀛楁);涓�鑸袱涓换鍔$殑pos鍊肩浉宸緢澶�(榛樿鏄�65536);鐜板湪鍋囪鏈変换鍔� A, B, C. +// * * 鍒椾妇鍑犱釜甯歌鐨勫満鏅�:濡傛灉C瑕佺Щ鍒癆鐨勫墠闈�, 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 A.pos/2;鑻ユ灉C瑕佺Щ鍒癆鍜孊涔嬮棿, +// * * 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 (A.pos + B.pos)/2;濡傛灉B瑕佺Щ鍒癈鐨勫悗闈�, 閭d箞鍚庣浼氭妸 B.pos 鏀逛负 C.pos + 65536; +// * * 褰撶劧杩欓噷浼氭湁涓瀬绔儏鍐甸渶瑕佸鐞�(鍋囪pos鏄暣鏁�):濡傛灉 A.pos 鏄� 1, B.pos 鏄� 2, C鎯崇Щ鍒癆鍜孊涔嬮棿, 鍏跺疄鏄病鏈変竴涓暣鏁板彲浠ョ敤鐨�, +// * * 閽堝杩欑鎯呭喌, 鍚庣浼氶噸鏂扮粰鏁翠釜鍒楄〃鐨勪换鍔¢噸鏂板埛涓�閬峱os鍊�. +// * 鎺掑簭涔嬪悗閲嶆柊璁$畻 +// * +// * @param beforePosition 涔嬪墠鐨勪綅缃� +// * @param afterPosition 涔嬪悗鐨勪綅缃� +// * @param formKey 琛ㄥ崟key +// * @return 鏈�缁堜綅缃� +// */ +// public Long calcSortPosition(Long beforePosition, Long afterPosition, String formKey) { +// String redisKey = StrUtil.format(FormRedisKeyConstants.FORM_ITEM_POS_DELTA, formKey); +// boolean isCenter = (ObjectUtil.isNotNull(beforePosition) && 0L != beforePosition) && (ObjectUtil.isNotNull(afterPosition) && 0L != afterPosition); +// if (isCenter) { // 鏀惧埌涓棿 +// return (beforePosition + afterPosition) / 2; +// } +// if (ObjectUtil.isNull(beforePosition) || 0L == beforePosition) { // 鏀惧埌鏈�鍓嶉潰 +// return afterPosition / 2; +// } else { // 鏀惧埌鏈�鍚庨潰 +// return cacheUtils.incr(redisKey, SORT_DEFAULT_INCR_FACT.intValue()); +// } +// } +// +// +// /** +// * 鏋佺鎯呭喌鍒锋柊鏁翠釜鍒楄〃 +// * +// * @param beforePosition 涔嬪墠鐨勪綅缃� +// * @param afterPosition 涔嬪悗鐨勪綅缃� +// * @param formKey 琛ㄥ崟key +// * @param sort 鎺掑簭鏁板�� +// */ +// public Boolean sortAllList(Long beforePosition, Long afterPosition, String formKey, Long sort) { +// // 鍗冲皢娌℃湁鏁存暟锛屽埛鏂板叏閮ㄥ垪琛ㄦ帓搴忓�� +// if ((ObjectUtil.isNotNull(beforePosition) && 0L != beforePosition && ObjectUtil.equal(sort, beforePosition + 1)) +// || (ObjectUtil.isNotNull(afterPosition) && 0L != afterPosition && ObjectUtil.equal(sort, 1L))) { +// List<UserFormItemEntity> itemEntityList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, formKey)); +// itemEntityList.sort(Comparator.comparing(UserFormItemEntity::getSort)); +// for (int i = 0; i < itemEntityList.size(); i++) { +// itemEntityList.get(i).setSort(SORT_DEFAULT_INCR_FACT * (i + 1)); +// } +// formItemService.updateBatchById(itemEntityList); +// return true; +// } +// return false; +// } +// +//} -- Gitblit v1.8.0