Răsfoiți Sursa

专家拖拽排序接口

yanghao 11 ore în urmă
părinte
comite
59839d3a8a

+ 4 - 4
randd-server/src/main/resources/application-local.yaml

@@ -47,16 +47,16 @@ spring:
       primary: master
       datasource:
         master:
-          url: jdbc:mysql://127.0.0.1:3308/rqrd?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例
-          username: root
-          password: 123456
+          url: jdbc:mysql://172.21.20.20:3306/rqrd-test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例
+          username: ruiqi
+          password: .N_Mdq!BR1W4
   # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
   redis:
     host: localhost # 地址
     port: 6379 # 端口
   #  username: default
     database: 10  # 数据库索引
-    password: 123456
+#    password: 123456
 
 mybatis-plus:
   configuration:

+ 11 - 0
yudao-module-rd/yudao-module-rd-biz/src/main/java/cn/iocoder/yudao/module/rd/controller/admin/expertpool/ExpertPoolController.java

@@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.EchelonExpertPo
 import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolPageReqVO;
 import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolRespVO;
 import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolSaveReqVO;
+import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolSortReqVO;
 import cn.iocoder.yudao.module.rd.controller.admin.team.vo.TeamPageReqVO;
 import cn.iocoder.yudao.module.rd.controller.admin.team.vo.TeamRespVO;
 import cn.iocoder.yudao.module.rd.dal.dataobject.expertpool.ExpertPoolDO;
@@ -70,6 +71,16 @@ public class ExpertPoolController {
         return success(true);
     }
 
+    //  拖拽排序
+    @PutMapping("/changeSort")
+    @Operation(summary = "专家拖拽排序")
+    @PreAuthorize("@ss.hasPermission('rd:expert-pool:update')")
+    public CommonResult<Boolean> changeSort(@Valid @RequestBody ExpertPoolSortReqVO sortReqVO) {
+        expertPoolService.changeSort(sortReqVO);
+        return success(true);
+    }
+
+
     @DeleteMapping("/delete")
     @Operation(summary = "删除专家库")
     @Parameter(name = "id", description = "编号", required = true)

+ 19 - 0
yudao-module-rd/yudao-module-rd-biz/src/main/java/cn/iocoder/yudao/module/rd/controller/admin/expertpool/vo/ExpertPoolSortReqVO.java

@@ -0,0 +1,19 @@
+package cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 专家拖拽排序 Request VO")
+@Data
+public class ExpertPoolSortReqVO {
+
+    @Schema(description = "被拖拽的专家 ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "源专家 ID 不能为空")
+    private Long sourceId;
+
+    @Schema(description = "目标位置的专家 ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "目标专家 ID 不能为空")
+    private Long targetId;
+}

+ 8 - 0
yudao-module-rd/yudao-module-rd-biz/src/main/java/cn/iocoder/yudao/module/rd/service/expertpool/ExpertPoolService.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.rd.service.expertpool;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolPageReqVO;
 import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolSaveReqVO;
+import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolSortReqVO;
 import cn.iocoder.yudao.module.rd.dal.dataobject.expertpool.ExpertPoolDO;
 
 import javax.validation.Valid;
@@ -30,6 +31,13 @@ public interface ExpertPoolService {
      */
     void updateExpertPool(@Valid ExpertPoolSaveReqVO updateReqVO);
 
+    /**
+     * 专家拖拽排序
+     *
+     * @param sortReqVO 更新信息
+     */
+    void changeSort(@Valid ExpertPoolSortReqVO sortReqVO);
+
     /**
      * 删除专家库
      *

+ 24 - 0
yudao-module-rd/yudao-module-rd-biz/src/main/java/cn/iocoder/yudao/module/rd/service/expertpool/ExpertPoolServiceImpl.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolPageReqVO;
 import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolSaveReqVO;
+import cn.iocoder.yudao.module.rd.controller.admin.expertpool.vo.ExpertPoolSortReqVO;
 import cn.iocoder.yudao.module.rd.dal.dataobject.expertpool.ExpertPoolDO;
 import cn.iocoder.yudao.module.rd.dal.mysql.expertpool.ExpertPoolMapper;
 import org.springframework.stereotype.Service;
@@ -46,6 +47,29 @@ public class ExpertPoolServiceImpl implements ExpertPoolService {
         expertPoolMapper.updateById(updateObj);
     }
 
+
+    @Override
+    public void changeSort(ExpertPoolSortReqVO sortReqVO) {
+        // 校验存在
+        validateExpertPoolExists(sortReqVO.getSourceId());
+        validateExpertPoolExists(sortReqVO.getTargetId());
+
+        // 查出两条记录
+        ExpertPoolDO source = expertPoolMapper.selectById(sortReqVO.getSourceId());
+        ExpertPoolDO target = expertPoolMapper.selectById(sortReqVO.getTargetId());
+
+        // 交换 sort 后分别更新
+        ExpertPoolDO updateSource = BeanUtils.toBean(source, ExpertPoolDO.class);
+        updateSource.setSort(target.getSort());
+        expertPoolMapper.updateById(updateSource);
+
+        ExpertPoolDO updateTarget = BeanUtils.toBean(target, ExpertPoolDO.class);
+        updateTarget.setSort(source.getSort());
+        expertPoolMapper.updateById(updateTarget);
+    }
+
+
+
     @Override
     public void deleteExpertPool(Long id) {
         // 校验存在