From e2bbf8d1424030d402f1974c8ae02a6eaf4fd6a5 Mon Sep 17 00:00:00 2001 From: lishuai Date: Mon, 12 Aug 2024 17:21:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E6=A8=A1=E5=9E=8B=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BF=A1=E6=81=AF2=202024=E5=B9=B48=E6=9C=8812=E6=97=A510:40:5?= =?UTF-8?q?6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IotThingDictController.java | 7 +++ .../dict/service/IotThingDictService.java | 2 + .../service/impl/IotThingDictServiceImpl.java | 62 +++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/modules/thing/src/main/java/com/thing/thing/dict/controller/IotThingDictController.java b/modules/thing/src/main/java/com/thing/thing/dict/controller/IotThingDictController.java index 836bb32..19fa3b1 100644 --- a/modules/thing/src/main/java/com/thing/thing/dict/controller/IotThingDictController.java +++ b/modules/thing/src/main/java/com/thing/thing/dict/controller/IotThingDictController.java @@ -168,5 +168,12 @@ public class IotThingDictController { } + @GetMapping("dragAndDrop/{id}/{toId}/{sort}") + @Operation(summary="字典类型集合") + public Result dragAndDrop(@PathVariable("id") Long id,@PathVariable("toId") Long toId,@PathVariable("sort")Long sort) { + service.dragAndDrop(id, toId, sort); + return new Result<>(); + } + } \ No newline at end of file diff --git a/modules/thing/src/main/java/com/thing/thing/dict/service/IotThingDictService.java b/modules/thing/src/main/java/com/thing/thing/dict/service/IotThingDictService.java index 059833e..34ecf94 100644 --- a/modules/thing/src/main/java/com/thing/thing/dict/service/IotThingDictService.java +++ b/modules/thing/src/main/java/com/thing/thing/dict/service/IotThingDictService.java @@ -57,4 +57,6 @@ public interface IotThingDictService extends IBaseService { List> type(); + void dragAndDrop(Long id,Long toId,Long sort); + } \ No newline at end of file diff --git a/modules/thing/src/main/java/com/thing/thing/dict/service/impl/IotThingDictServiceImpl.java b/modules/thing/src/main/java/com/thing/thing/dict/service/impl/IotThingDictServiceImpl.java index cc1f2b7..0e0355e 100644 --- a/modules/thing/src/main/java/com/thing/thing/dict/service/impl/IotThingDictServiceImpl.java +++ b/modules/thing/src/main/java/com/thing/thing/dict/service/impl/IotThingDictServiceImpl.java @@ -3,11 +3,14 @@ package com.thing.thing.dict.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.mybatisflex.core.constant.SqlConsts; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryCondition; import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.core.row.Db; +import com.mybatisflex.core.update.UpdateChain; import com.thing.common.core.enumeration.DictTypeEnum; import com.thing.common.core.enumeration.IsDefaultEnum; import com.thing.common.core.exception.SysException; @@ -384,4 +387,63 @@ public class IotThingDictServiceImpl extends BaseServiceImpl noDefaultList = mapper.selectListByQuery(QueryWrapper.create().eq(IotThingDictEntity::getTenantCode, UserContext.getRealTenantCode()) + .eq(IotThingDictEntity::getIsDefault, 1)); + + //自定义字典列表 + List defaultList = mapper.selectListByQuery(QueryWrapper.create() + .eq(IotThingDictEntity::getIsDefault, 0)); + List iotThingDictEntities = Lists.newArrayList(); + iotThingDictEntities.addAll(noDefaultList); + iotThingDictEntities.addAll(defaultList); + //若是大于当前目前序号,则更新当前序号之前的排序 + AtomicLong aLong = new AtomicLong(0); + if(toDictEntity.getSort()<=sort){ + iotThingDictEntities.stream().filter(s -> s.getSort() < sort) + .sorted(Comparator.comparing(IotThingDictEntity::getSort)) + .forEach(s -> { + s.setSort(aLong.incrementAndGet()); + mapper.update(s); + }); + iotThingDictEntity.setSort(aLong.incrementAndGet()); + mapper.update(iotThingDictEntity); + iotThingDictEntities.stream() + .sorted(Comparator.comparing(IotThingDictEntity::getSort)) + .filter(s -> s.getSort() >= sort).forEach(s -> { + s.setSort(aLong.incrementAndGet()); + mapper.update(s); + }); + }else{ + iotThingDictEntities.stream().filter(s -> s.getSort() >= sort) + .sorted(Comparator.comparing(IotThingDictEntity::getSort)) + .forEach(s -> { + s.setSort(aLong.incrementAndGet()); + mapper.update(s); + }); + iotThingDictEntity.setSort(aLong.incrementAndGet()); + iotThingDictEntities.stream().filter(s -> s.getSort() > sort) + .sorted(Comparator.comparing(IotThingDictEntity::getSort)) + .forEach(s -> { + s.setSort(aLong.incrementAndGet()); + mapper.update(s); + }); + } + +// Db.executeBatch(iotThingDictEntities.size(), 1000, IotThingDictMapper.class, (mapper, index) -> { +// IotThingDictEntity account = iotThingDictEntities.get(index); +// UpdateChain.of(account).update(); +// }); + + // iotThingDictEntities.forEach(s -> mapper.update(s)); +// +// int i = Db.updateEntitiesBatch(iotThingDictEntities, 1000); +// System.out.println(i); + } + } \ No newline at end of file