From b82f8f6f82f0d9348997abb77e5d72deac078fa2 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Sun, 23 Apr 2023 15:40:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/mapper/SmsRecordMapper.java | 12 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/mapper/SmsRecordMapper.xml | 5
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/ISmsRecordService.java | 7
skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java | 7
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java | 27 +++
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java | 41 +++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/util/SmsUtils.java | 2
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/vo/SmsRecordVO.java | 12 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsRecordController.java | 98 ++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/impl/SmsRecordServiceImpl.java | 14 +
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java | 8 +
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/DeptUserTreeNode.java | 17 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/entity/SmsRecord.java | 44 +++++
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java | 15 +
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java | 17 ++
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml | 75 +++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java | 41 ++++
17 files changed, 434 insertions(+), 8 deletions(-)
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/DeptUserTreeNode.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/DeptUserTreeNode.java
new file mode 100644
index 0000000..b5bea1e
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/DeptUserTreeNode.java
@@ -0,0 +1,17 @@
+package cn.gistack.common.node;
+
+import lombok.Data;
+
+/**
+ * 部门用户树node
+ * @author zhongrj
+ * @date 2023-04-23
+ */
+@Data
+public class DeptUserTreeNode extends TreeNode{
+
+ /**
+ * 手机号
+ */
+ private String phone;
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java
index 082799b..ca9864a 100644
--- a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java
@@ -1,7 +1,9 @@
package cn.gistack.common.utils;
+import cn.gistack.common.node.DeptUserTreeNode;
import cn.gistack.common.node.TreeNode;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -32,6 +34,45 @@
}
/**
+ * map 转 tree 组织机构(父子id不会重复的情况,数据查询来自同一个表)
+ * @param treeMap
+ * @return
+ */
+ public static List<TreeNode> getDeptAndUserNodeTree(Map<String, DeptUserTreeNode> treeMap){
+ List<TreeNode> tree = new ArrayList<>();
+ if (treeMap.size() > 1) {
+ treeMap.forEach((id, treeNode) -> {
+ if (!treeNode.getHasChildren()){
+ // 判断是否有绑定多个部门
+ List<String> asList = Arrays.asList(treeNode.getParentId().split(","));
+ if (asList.size()>1){
+ for (String parentId : asList) {
+ if (treeMap.containsKey(parentId)) {
+ treeMap.get(parentId).getChildren().add(treeNode);
+ } else {
+ tree.add(treeNode);
+ }
+ }
+ }else {
+ if (treeMap.containsKey(treeNode.getParentId())) {
+ treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
+ } else {
+ tree.add(treeNode);
+ }
+ }
+ }else {
+ if (treeMap.containsKey(treeNode.getParentId())) {
+ treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
+ } else {
+ tree.add(treeNode);
+ }
+ }
+ });
+ }
+ return tree;
+ }
+
+ /**
* list 转 tree 组织机构
* @param parentList
* @param childrenList
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java
index 9c694b9..849d203 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java
@@ -16,10 +16,8 @@
*/
package cn.gistack.system.entity;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
@@ -109,6 +107,7 @@
* 组件路径
*/
@ApiModelProperty(value = "组件路径")
+ @TableField(value = "COMPONENT_PATH",updateStrategy = FieldStrategy.IGNORED)
private String componentPath;
/**
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
index 781717b..9a8347b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
@@ -2,6 +2,8 @@
import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSSendRequest;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
+import cn.gistack.sm.sms.entity.SmsRecord;
+import cn.gistack.sm.sms.service.ISmsRecordService;
import cn.gistack.sm.sms.util.SmsUtils;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -19,9 +21,42 @@
@AllArgsConstructor
public class SmsController {
- @GetMapping("/test")
- public R test(SMSSendRequest request){
- return R.data(SmsUtils.sendMsg(request));
+ private final ISmsRecordService smsRecordService;
+
+ /**
+ * 发送登录验证码
+ * request 必须包含手机号(多个手机号以英文逗号分隔)
+ * @param request
+ * @return
+ */
+ @PostMapping("/sendCode")
+ public R test(@RequestBody SMSSendRequest request){
+ //设置模板相关信息
+ String templateId = "2431012205498";
+ String content = "您的登录验证码是" + SmsUtils.getRandNumber() + ",5分钟内有效,请勿泄漏,如非本人操作,请忽略此信息";
+ request.setMessageContent(content);
+ request.setTemplateId(templateId);
+ // 发送操作
+ String sendMsg = SmsUtils.sendMsg(request);
+ // 记录发送记录操作
+ saveSendRecord(request,sendMsg);
+ // 返回发送信息
+ return R.data(sendMsg);
+ }
+
+ /**
+ * 发送记录保存
+ * @param request 发送信息
+ * @param sendMsg 响应数据
+ */
+ private void saveSendRecord(SMSSendRequest request, String sendMsg) {
+ SmsRecord smsRecord = new SmsRecord();
+ smsRecord.setPhone(request.getUserNumber());
+ smsRecord.setContent(request.getMessageContent());
+ smsRecord.setTemplateId(request.getTemplateId());
+ smsRecord.setResContent(sendMsg);
+ //插入记录
+ smsRecordService.save(smsRecord);
}
@PostMapping("/test1")
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsRecordController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsRecordController.java
new file mode 100644
index 0000000..2715095
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsRecordController.java
@@ -0,0 +1,98 @@
+package cn.gistack.sm.sms.controller;
+
+import cn.gistack.sm.sms.entity.SmsRecord;
+import cn.gistack.sm.sms.service.ISmsRecordService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+import java.util.Arrays;
+
+/**
+ * 短信发送记录控制层
+ * @author zhongrj
+ * @date 2023-04-23
+*/
+@Slf4j
+@Api(tags="短信发送记录")
+@RestController
+@RequestMapping("/smsRecord/smsRecord")
+@AllArgsConstructor
+public class SmsRecordController extends BladeController {
+
+ private ISmsRecordService smsRecordService;
+
+ /**
+ * 分页列表查询
+ * @return
+ */
+ @ApiOperation(value="短信发送记录-分页列表查询", notes="短信发送记录-分页列表查询")
+ @GetMapping(value = "/list")
+ public R queryPageList(SmsRecord smsRecord, Query query) {
+ IPage<SmsRecord> pageList = smsRecordService.page(Condition.getPage(query), Condition.getQueryWrapper(smsRecord));
+ return R.data(pageList);
+ }
+
+ /**
+ * 添加
+ */
+ @ApiOperation(value="短信发送记录-添加", notes="短信发送记录-添加")
+ @PostMapping(value = "/add")
+ public R add(@RequestBody SmsRecord smsRecord) {
+ return R.data(smsRecordService.save(smsRecord));
+ }
+
+ /**
+ * 编辑
+ * @return
+ */
+ @ApiOperation(value="短信发送记录-编辑", notes="短信发送记录-编辑")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public R edit(@RequestBody SmsRecord smsRecord) {
+ return R.data(smsRecordService.updateById(smsRecord));
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="短信发送记录-通过id删除", notes="短信发送记录-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public R delete(@RequestParam(name="id",required=true) String id) {
+ return R.data(smsRecordService.removeById(id));
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @ApiOperation(value="短信发送记录-批量删除", notes="短信发送记录-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ return R.data(smsRecordService.removeByIds(Arrays.asList(ids.split(","))));
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value="短信发送记录-通过id查询", notes="短信发送记录-通过id查询")
+ @GetMapping(value = "/queryById")
+ public R queryById(@RequestParam(name="id",required=true) String id) {
+ SmsRecord SmsRecord = smsRecordService.getById(id);
+ return R.data(SmsRecord);
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/entity/SmsRecord.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/entity/SmsRecord.java
new file mode 100644
index 0000000..66356aa
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/entity/SmsRecord.java
@@ -0,0 +1,44 @@
+package cn.gistack.sm.sms.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 短信发送记录
+ */
+@Data
+@TableName("sm_sms_record")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "sm_sms_record对象", description = "短信发送记录")
+public class SmsRecord extends TenantEntity {
+ /**
+ * 模板id
+ */
+ @ApiModelProperty(value = "模板id")
+ private String templateId;
+
+ /**
+ * 手机号(可能有多个,以英文逗号分隔)
+ */
+ @ApiModelProperty(value = "手机号(可能有多个,以英文逗号分隔)")
+ private String phone;
+
+ /**
+ * 消息内容
+ */
+ @ApiModelProperty(value = "消息内容")
+ private String content;
+
+ /**
+ * 响应内容
+ */
+ @ApiModelProperty(value = "响应内容")
+ private String resContent;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/mapper/SmsRecordMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/mapper/SmsRecordMapper.java
new file mode 100644
index 0000000..0d7226a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/mapper/SmsRecordMapper.java
@@ -0,0 +1,12 @@
+package cn.gistack.sm.sms.mapper;
+
+import cn.gistack.sm.sms.entity.SmsRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 短信发送记录
+ * @author zhongrj
+ */
+public interface SmsRecordMapper extends BaseMapper<SmsRecord> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/mapper/SmsRecordMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/mapper/SmsRecordMapper.xml
new file mode 100644
index 0000000..13bf836
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/mapper/SmsRecordMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.sm.sms.mapper.SmsRecordMapper">
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/ISmsRecordService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/ISmsRecordService.java
new file mode 100644
index 0000000..83229ea
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/ISmsRecordService.java
@@ -0,0 +1,7 @@
+package cn.gistack.sm.sms.service;
+
+import cn.gistack.sm.sms.entity.SmsRecord;
+import org.springblade.core.mp.base.BaseService;
+
+public interface ISmsRecordService extends BaseService<SmsRecord> {
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/impl/SmsRecordServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/impl/SmsRecordServiceImpl.java
new file mode 100644
index 0000000..ac45c1c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/impl/SmsRecordServiceImpl.java
@@ -0,0 +1,14 @@
+package cn.gistack.sm.sms.service.impl;
+
+import cn.gistack.sm.patrol.mapper.PatrolGroupMapper;
+import cn.gistack.sm.sms.entity.SmsRecord;
+import cn.gistack.sm.sms.mapper.SmsRecordMapper;
+import cn.gistack.sm.sms.service.ISmsRecordService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+
+/**
+ * 短信发送记录
+ * @author zhongrj
+ */
+public class SmsRecordServiceImpl extends BaseServiceImpl<SmsRecordMapper, SmsRecord> implements ISmsRecordService {
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/util/SmsUtils.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/util/SmsUtils.java
index 67c6e68..6b0d1d1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/util/SmsUtils.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/util/SmsUtils.java
@@ -63,7 +63,7 @@
* 获取随机字符串
* @return
*/
- private String getRandNumber() {
+ public static String getRandNumber() {
// 计算token
// Date date = new Date();
// String dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/vo/SmsRecordVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/vo/SmsRecordVO.java
new file mode 100644
index 0000000..82d34e1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/vo/SmsRecordVO.java
@@ -0,0 +1,12 @@
+package cn.gistack.sm.sms.vo;
+
+import cn.gistack.sm.sms.entity.SmsRecord;
+import lombok.Data;
+
+/**
+ * 短信发送记录vo
+ * @author zhongrj
+ */
+@Data
+public class SmsRecordVO extends SmsRecord {
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java
index fd8aab6..50a79de 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java
@@ -16,6 +16,9 @@
*/
package cn.gistack.system.controller;
+import cn.gistack.common.node.DeptUserTreeNode;
+import cn.gistack.common.node.TreeNode;
+import cn.gistack.common.utils.NodeTreeUtil;
import cn.gistack.system.vo.DeptVO;
import cn.gistack.system.wrapper.DeptWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -176,4 +179,16 @@
}
+ /**
+ * 查询组织机构树数据(下级包含人员信息)
+ * @param treeNode
+ * @return
+ */
+ @GetMapping("/getDeptAndUserTree")
+ @ApiOperation(value = "查询组织机构树数据(下级包含人员信息)")
+ public R getDeptAndUserTree(DeptUserTreeNode treeNode) {
+ return R.data(deptService.getDeptAndUserTree(treeNode));
+ }
+
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
index 739575b..00d489d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
@@ -16,9 +16,13 @@
*/
package cn.gistack.system.mapper;
+import cn.gistack.common.node.DeptUserTreeNode;
+import cn.gistack.common.node.TreeNode;
import cn.gistack.system.entity.Dept;
import cn.gistack.system.vo.DeptVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.MapKey;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -65,4 +69,27 @@
*/
List<String> getDeptNames(Long[] ids);
+ /**
+ * 查询组织机构树数据(下级包含人员信息)
+ * @param treeNode
+ * @return
+ */
+ @MapKey(value = "id")
+ Map<String, DeptUserTreeNode> getDeptAndUserTree(@Param("treeNode") DeptUserTreeNode treeNode);
+
+ /**
+ * 查询组织机构树
+ * @param treeNode
+ * @return
+ */
+ @MapKey(value = "id")
+ Map<String, DeptUserTreeNode> getDeptMap(@Param("treeNode") DeptUserTreeNode treeNode);
+
+ /**
+ * 查询用户树
+ * @param treeNode
+ * @return
+ */
+ @MapKey(value = "id")
+ Map<String, DeptUserTreeNode> getUserMap(@Param("treeNode") DeptUserTreeNode treeNode);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
index 654eb1d..2d88964 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
@@ -112,4 +112,79 @@
and is_deleted = 0
</select>
+ <!--查询组织机构树数据(下级包含人员信息)-->
+ <select id="getDeptAndUserTree" resultType="cn.gistack.common.node.DeptUserTreeNode">
+ (
+ SELECT
+ dept.id,
+ dept.parent_id parentId,
+ dept.dept_name AS name,
+ 0 AS phone,
+ (
+ SELECT
+ CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+ FROM
+ blade_dept
+ WHERE
+ parent_id = dept.id and is_deleted = 0
+ ) AS hasChildren
+ FROM
+ blade_dept dept WHERE dept.is_deleted = 0
+ <if test="treeNode.id!=null and treeNode.id!=''">
+ and dept.id = #{treeNode.id}
+ </if>
+ )
+ union
+ (
+ select
+ bu.id,
+ bu.dept_id parentId,
+ bu.account AS name,
+ bu.phone,
+ 0 as hasChildren
+ from blade_user bu left join blade_dept bd on bd.id = bu.dept_id
+ where 1=1 and bu.is_deleted = 0 and bu.status = 1
+ <if test="treeNode.id!=null and treeNode.id!=''">
+ and bu.dept_id like concat(concat('%',#{treeNode.id}),'%')
+ </if>
+ )
+ </select>
+
+ <!--查询组织机构树-->
+ <select id="getDeptMap" resultType="cn.gistack.common.node.DeptUserTreeNode">
+ SELECT
+ dept.id,
+ dept.parent_id parentId,
+ dept.dept_name AS name,
+ 0 AS phone,
+ (
+ SELECT
+ CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+ FROM
+ blade_dept
+ WHERE
+ parent_id = dept.id and is_deleted = 0
+ ) AS hasChildren
+ FROM
+ blade_dept dept WHERE dept.is_deleted = 0
+ <if test="treeNode.id!=null and treeNode.id!=''">
+ and dept.id = #{treeNode.id}
+ </if>
+ </select>
+
+ <!--查询组织机构树数据(下级包含人员信息)-->
+ <select id="getUserMap" resultType="cn.gistack.common.node.DeptUserTreeNode">
+ select
+ bu.id,
+ bu.dept_id parentId,
+ bu.account AS name,
+ bu.phone,
+ 0 as hasChildren
+ from blade_user bu left join blade_dept bd on bd.id = bu.dept_id
+ where 1=1 and bu.is_deleted = 0 and bu.status = 1
+ <if test="treeNode.id!=null and treeNode.id!=''">
+ and bu.dept_id like concat(concat('%',#{treeNode.id}),'%')
+ </if>
+ </select>
+
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java
index c2c1312..8a04daf 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java
@@ -16,6 +16,8 @@
*/
package cn.gistack.system.service;
+import cn.gistack.common.node.DeptUserTreeNode;
+import cn.gistack.common.node.TreeNode;
import cn.gistack.system.entity.Dept;
import cn.gistack.system.vo.DeptVO;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -116,4 +118,10 @@
*/
List<DeptVO> search(String deptName, Long parentId);
+ /**
+ * 查询组织机构树数据(下级包含人员信息)
+ * @param treeNode
+ * @return
+ */
+ List<TreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
index e1b62e9..9817c4f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
@@ -16,6 +16,9 @@
*/
package cn.gistack.system.service.impl;
+import cn.gistack.common.node.DeptUserTreeNode;
+import cn.gistack.common.node.TreeNode;
+import cn.gistack.common.utils.NodeTreeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -170,4 +173,18 @@
return DeptWrapper.build().listNodeVO(deptList);
}
+ /**
+ * 查询组织机构树数据(下级包含人员信息)
+ * @param treeNode
+ * @return
+ */
+ @Override
+ public List<TreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode) {
+ // 查询数据
+ Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMap(treeNode);
+ Map<String, DeptUserTreeNode> userMap = baseMapper.getUserMap(treeNode);
+ deptMap.putAll(userMap);
+ // 处理并返回
+ return NodeTreeUtil.getDeptAndUserNodeTree(deptMap);
+ }
}
--
Gitblit v1.9.3