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-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java |  218 +++++++++++++++++++++++++++---------------------------
 1 files changed, 109 insertions(+), 109 deletions(-)

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