From f7196dff53805c9d5e6c945e5334ce4e4423d779 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 15 三月 2024 18:02:23 +0800
Subject: [PATCH] 题目导入模板,待完善
---
src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java | 86 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 83 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
index 3e5a138..5383ce2 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -1,25 +1,41 @@
package com.mindskip.xzs.service.impl;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.domain.Department;
+import com.mindskip.xzs.domain.UserDepartment;
+import com.mindskip.xzs.domain.enums.DeptAdminEnum;
+import com.mindskip.xzs.domain.vo.BaseSelect;
+import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
import com.mindskip.xzs.repository.BaseMapper;
import com.mindskip.xzs.repository.DepartmentMapper;
+import com.mindskip.xzs.repository.UserDepartmentMapper;
+import com.mindskip.xzs.repository.UserMapper;
import com.mindskip.xzs.service.DepartmentService;
import com.mindskip.xzs.utility.ModelMapperSingle;
import com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Objects;
+
@Service
public class DepartmentServiceImpl extends BaseServiceImpl<Department> implements DepartmentService {
protected final static ModelMapper modelMapper = ModelMapperSingle.Instance();
private final DepartmentMapper departmentMapper;
+ private final UserDepartmentMapper userDepartmentMapper;
+ private final UserMapper userMapper;
- public DepartmentServiceImpl(BaseMapper<Department> baseMapper, DepartmentMapper departmentMapper) {
+ public DepartmentServiceImpl(BaseMapper<Department> baseMapper, DepartmentMapper departmentMapper, UserDepartmentMapper userDepartmentMapper, UserMapper userMapper) {
super(baseMapper);
this.departmentMapper = departmentMapper;
+ this.userDepartmentMapper = userDepartmentMapper;
+ this.userMapper = userMapper;
}
@Override
@@ -38,13 +54,32 @@
return departmentMapper.update(department);
}
+ @Transactional(rollbackFor = Exception.class)
@Override
public Integer update(Department department) {
- return departmentMapper.update(department);
+// userDepartmentMapper.removeByDepartmentId(department.getId());
+ Department entity = departmentMapper.getById(department.getId());
+ if (Objects.isNull(entity)) {
+ throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
+ }
+ if (Objects.nonNull(department.getAdminId())) {
+ Integer adminNum = departmentMapper.countByAdminId(department.getAdminId(), department.getId());
+ if (adminNum > 0) {
+ throw new RuntimeException("涓�涓敤鎴峰彧鑳芥槸涓�涓崟浣嶇殑绠$悊鍛�");
+ }
+ if (! Objects.equals(entity.getAdminId(), department.getAdminId())) {
+ // 鍙栨秷鍘熷厛鐨勭鐞嗗憳鏍囪瘑
+ userMapper.updateDeptAdmin(entity.getAdminId(), DeptAdminEnum.NO.getValue());
+ }
+ // 鏍囪瘑閮ㄩ棬绠$悊鍛�
+ userMapper.updateDeptAdmin(department.getAdminId(), DeptAdminEnum.YES.getValue());
+ }
+ Integer update = departmentMapper.update(department);
+ return update;
}
@Override
- public PageInfo<Department> gets(DepartmentResponseVM departmentResponseVM) {
+ public PageInfo<DepartmentResponseVM> gets(DepartmentResponseVM departmentResponseVM) {
return PageHelper.startPage(departmentResponseVM.getPageIndex(), departmentResponseVM.getPageSize(), "id desc").doSelectPageInfo(() ->
departmentMapper.page(departmentResponseVM)
);
@@ -54,4 +89,49 @@
public Department getById(Integer id) {
return departmentMapper.getById(id);
}
+
+ @Override
+ public List<Department> gets(Integer deptId) {
+ if (deptId == null || deptId == -1) {
+ deptId = null;
+ }
+ return departmentMapper.gets(deptId);
+ }
+
+ @Override
+ public Department getName(String name) {
+ return departmentMapper.getName(name);
+ }
+
+ /**
+ * 鑾峰彇閮ㄩ棬鐢ㄦ埛涓嬫媺鍒楄〃
+ * @param deptId
+ * @return
+ */
+ @Override
+ public List<BaseSelect> getDeptUserList(Integer deptId) {
+ return userDepartmentMapper.getDeptUserList(deptId);
+ }
+
+ @Override
+ public void updateAdmin(UpdateDeptAdminVO form) {
+ Department entity = departmentMapper.getById(form.getId());
+ if (Objects.isNull(form)) {
+ throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
+ }
+ if (Objects.nonNull(form.getAdminId())) {
+ Integer adminNum = departmentMapper.countByAdminId(form.getAdminId(), form.getId());
+ if (adminNum > 0) {
+ throw new RuntimeException("涓�涓敤鎴峰彧鑳芥槸涓�涓崟浣嶇殑绠$悊鍛�");
+ }
+ if (! Objects.equals(entity.getAdminId(), form.getAdminId())) {
+ // 鍙栨秷鍘熷厛鐨勭鐞嗗憳鏍囪瘑
+ userMapper.updateDeptAdmin(entity.getAdminId(), DeptAdminEnum.NO.getValue());
+ }
+ // 鏍囪瘑閮ㄩ棬绠$悊鍛�
+ userMapper.updateDeptAdmin(form.getAdminId(), DeptAdminEnum.YES.getValue());
+ }
+ entity.setAdminId(form.getAdminId());
+ departmentMapper.update(entity);
+ }
}
--
Gitblit v1.8.0