Commit f5788527 authored by tanyang's avatar tanyang

Merge remote-tracking branch 'origin/zuhuduan' into zuhuduan

parents 6dbeaec5 da003db4
......@@ -41,7 +41,8 @@ public class SysDeptController extends BaseController {
List<SysDept> depts = deptService.selectDeptList(dept);
List<SysDeptVo> deptVos = BeanUtil.copyToList(depts, SysDeptVo.class);
deptVos.forEach(sysDeptVo -> {
sysDeptVo.setExistUsers(deptService.hasChildByDeptId(sysDeptVo.getDeptId()));
//查询该部门及其子部门是否存在用户
sysDeptVo.setExistUsers(deptService.checkAllDeptsAndUsers(sysDeptVo.getDeptId()));
});
return R.ok(deptVos);
}
......
package com.dsk.common.constant;
/**
* 租户套餐常量信息
*
* @author Lion Li
*/
public interface TenantPackageConstants {
/**
* 租户套餐正常状态
*/
String NORMAL = "0";
/**
* 租户套餐停用状态
*/
String DISABLE = "1";
}
package com.dsk.common.tenant.helper;
import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.spring.SpringMVCUtil;
import cn.hutool.core.convert.Convert;
import com.alibaba.ttl.TransmittableThreadLocal;
......@@ -9,10 +8,7 @@ import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
import com.dsk.common.constant.GlobalConstants;
import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.redis.RedisUtils;
import com.dsk.common.utils.spring.SpringUtils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
......
<template>
<div id="tags-view-container" class="tags-view-container">
<div class="alltags" v-if="visitedViews.length > 0">
<div class="" @click="closeall"><i class="el-icon-arrow-down" v-if="!showall"></i> <i class="el-icon-arrow-up" v-if="showall"></i></div>
<div class="imgs" @click="closeall">
<img src="@/assets/images/all.png" v-if="!showall"/>
<img src="@/assets/images/all_on.png" v-if="showall"/>
<!--<i class="el-icon-arrow-down" v-if="!showall"></i> <i class="el-icon-arrow-up" v-if="showall"></i>-->
</div>
<div class="tagslist" v-if="showall">
<!--<div v-for="(tag, index) in visitedViews"-->
<!--:key="tag.path"-->
......@@ -340,7 +344,7 @@ export default {
}
}
&:first-of-type {
margin-left: 24px;
margin-left: 64px;
}
&:hover {
.el-icon-close{
......@@ -384,63 +388,78 @@ export default {
}
}
.alltags{
position: fixed;
position: absolute;
align-items: center;
border-radius: 9px;
height: 17px;
justify-content: center;
width: 36px;
right: 10px;
top: 37px;
width: 24px;
height: 24px;
left: 24px;
top: 28px;
cursor: pointer;
text-align: center;
&:hover{
background: #EFEFEF;
z-index: 10;
&::after{
content: ' ';
position: absolute;
border-right: 1px solid #EFEFEF;
height: 18px;
width: 0;
top: 3px;
right: -8px;
}
.imgs>img{
width: 24px;
height: 24px;
}
.tagslist{
position: absolute;
right: 0;
top: 20px;
left: 0;
top: 32px;
background-color: #fcfcfc;
color: #141414;
font-size: 13px;
line-height: 1em;
margin-bottom: 0;
max-height: 450px;
overflow-y: auto;
/*overflow-y: auto;*/
overflow-y: overlay;
padding: 20px 0 10px;
padding: 8px 0 0;
width: 325px;
text-align: left;
border-radius: 4px;
box-shadow: 0 2px 9px 2px rgba(0,0,0,.09), 0 1px 2px -2px rgba(0,0,0,.16);
.tags-view-item{
display: block;
position: relative;
>div{
padding: 8px 24px;
padding: 8px 8px 8px 32px;
line-height: 20px;
}
&:hover{
color: #0081FF;
background: rgba(0, 0, 0, 0.04);
}
.el-icon-check{
display: none;
position: absolute;
left: 5px;
width: 13px;
left: 8px;
width: 16px;
font-size: 16px;
}
&.active{
color: #0081FF;
background: rgba(0, 129, 255, 0.04);
.el-icon-check{
display: block;
color: #0081FF;
}
}
}
.clasall{
border-top: 1px solid #EFEFEF;
padding: 10px 24px 0;
margin-top: 10px;
padding: 10px 32px;
line-height: 20px;
color: #FF3C3C;
&:hover{
color: #0081FF;
background: #FFECE8;
}
}
}
......
......@@ -181,7 +181,6 @@
:key="dict.packageId"
:label="dict.packageName"
:value="dict.packageId"
:disabled="dict.disabled"
/>
</el-select>
</el-form-item>
......@@ -301,13 +300,13 @@
selectTenant().then(res=>{
if(res.code = 200){
this.packageList = res.data
this.packageList.forEach(item=>{
if(item.status == '0'){
item.disabled = false
}else{
item.disabled = true
}
})
// this.packageList.forEach(item=>{
// if(item.status == '0'){
// item.disabled = false
// }else{
// item.disabled = true
// }
// })
}
})
},
......
......@@ -352,16 +352,24 @@
// return false
if (this.form.packageId != undefined) {
saveTenantPackage(this.form).then(response => {
if(response.code == 200){
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}else{
this.$message.error(response.msg)
}
});
} else {
// this.form.menuIds = this.getMenuAllCheckedKeys();
addTenantPackage(this.form).then(response => {
if(response.code == 200){
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}else{
this.$message.error(response.msg)
}
});
}
}
......
This diff is collapsed.
......@@ -364,7 +364,7 @@
</template>
</el-table-column>
<el-table-column
prop="nickname"
prop="nickName"
label="用户昵称">
</el-table-column>
<el-table-column
......@@ -743,6 +743,7 @@ export default {
}
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
......
......@@ -2,8 +2,6 @@ package com.dsk.system.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.dsk.common.annotation.ExcelDictFormat;
import com.dsk.common.convert.ExcelDictConvert;
import com.dsk.system.domain.SysTenantPackage;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
......@@ -34,10 +32,4 @@ public class SysTenantPackageSelectVo implements Serializable {
@ExcelProperty(value = "套餐名称")
private String packageName;
/**
* 状态(0正常 1停用)
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0=正常,1=停用")
private String status;
}
......@@ -71,18 +71,25 @@ public interface ISysDeptService {
* 是否存在部门子节点
*
* @param deptId 部门ID
* @return 结果
* @return 结果 true 存在 false 不存在
*/
boolean hasChildByDeptId(Long deptId);
/**
* 查询部门是否存在用户
* 查询部门是否存在用户
*
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
*/
boolean checkDeptExistUser(Long deptId);
/**
* 查询该部门及其子部门是否存在用户
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
*/
Boolean checkAllDeptsAndUsers(Long deptId);
/**
* 校验部门名称是否唯一
*
......
......@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.common.constant.TenantPackageConstants;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException;
......@@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
......@@ -56,7 +58,9 @@ public class ISysTenantPackageServiceImpl implements ISysTenantPackageService {
*/
@Override
public List<SysTenantPackageSelectVo> selectList() {
List<SysTenantPackageVo> tenantPackageVo = baseMapper.selectVoList(null);
LambdaQueryWrapper<SysTenantPackage> wrapper = new LambdaQueryWrapper<SysTenantPackage>()
.eq(SysTenantPackage::getStatus, TenantPackageConstants.NORMAL);
List<SysTenantPackageVo> tenantPackageVo = baseMapper.selectVoList(wrapper);
return BeanUtil.copyToList(tenantPackageVo, SysTenantPackageSelectVo.class);
}
......@@ -113,6 +117,12 @@ public class ISysTenantPackageServiceImpl implements ISysTenantPackageService {
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(SysTenantPackageBo bo) {
SysTenantPackage update = BeanUtil.toBean(bo, SysTenantPackage.class);
List<Long> packageIds = new ArrayList<>();
packageIds.add(bo.getPackageId());
//校验该套餐是否正在被使用
if (TenantPackageConstants.DISABLE.equals(bo.getStatus())) {
checkPackageIsUsed(packageIds);
}
// 保存菜单id
List<Long> menuIds = Arrays.asList(bo.getMenuIds());
if (CollUtil.isNotEmpty(menuIds)) {
......@@ -123,6 +133,18 @@ public class ISysTenantPackageServiceImpl implements ISysTenantPackageService {
return baseMapper.updateById(update) > 0;
}
/**
* 校验套餐是否正在被租户使用
*
* @param ids 套餐ID数组
*/
private void checkPackageIsUsed(List<Long> ids) {
boolean exists = tenantMapper.exists(new LambdaQueryWrapper<SysTenant>().in(SysTenant::getPackageId, ids));
if (exists) {
throw new ServiceException("租户套餐已被使用");
}
}
// /**
// * 修改套餐状态
// */
......@@ -139,10 +161,7 @@ public class ISysTenantPackageServiceImpl implements ISysTenantPackageService {
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(List<Long> ids, boolean isValid) {
if (isValid) {
boolean exists = tenantMapper.exists(new LambdaQueryWrapper<SysTenant>().in(SysTenant::getPackageId, ids));
if (exists) {
throw new ServiceException("租户套餐已被使用");
}
checkPackageIsUsed(ids);
}
return baseMapper.deleteBatchIds(ids) > 0;
}
......
......@@ -16,7 +16,6 @@ import com.dsk.common.core.domain.entity.SysDictData;
import com.dsk.common.core.domain.entity.SysDictType;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.DingTalkUtil;
import com.dsk.common.utils.PasswordUtils;
import com.dsk.common.utils.StringUtils;
import com.dsk.system.domain.*;
......@@ -36,9 +35,10 @@ import java.util.Collection;
import java.util.List;
/**
* 企业Service业务层处理
*
* @author sxk
* @date 2023.08.22
* @description: 企业Service业务层处理
*/
@RequiredArgsConstructor
@Service
......@@ -233,7 +233,8 @@ public class ISysTenantServiceImpl implements ISysTenantService {
+ "您好,您已经成功注册央企数字经营管理系统,请使用手机号码登录,初始密码为"
+ password
+ "。友情提示:为了您的账号安全,请勿泄露密码。若需要修改密码,请联系管理员。";
DingTalkUtil.sendDingTalkMsg(content);
//DingTalkUtil.sendDingTalkMsg(content);
System.out.println("👉🏻:" + content);
return true;
}
......
......@@ -8,9 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.dsk.common.constant.CacheNames;
import com.dsk.common.constant.UserConstants;
import com.dsk.system.domain.SysDept;
import com.dsk.system.domain.SysRole;
import com.dsk.system.domain.SysUser;
import com.dsk.common.core.service.DeptService;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.helper.DataBaseHelper;
......@@ -19,6 +16,9 @@ import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.TreeBuildUtils;
import com.dsk.common.utils.redis.CacheUtils;
import com.dsk.common.utils.spring.SpringUtils;
import com.dsk.system.domain.SysDept;
import com.dsk.system.domain.SysRole;
import com.dsk.system.domain.SysUser;
import com.dsk.system.mapper.SysDeptMapper;
import com.dsk.system.mapper.SysRoleMapper;
import com.dsk.system.mapper.SysUserMapper;
......@@ -183,7 +183,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
}
/**
* 查询部门是否存在用户
* 查询部门是否存在用户
*
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
......@@ -194,6 +194,26 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
.eq(SysUser::getDeptId, deptId));
}
/**
* 查询该部门及其子部门是否存在用户
*
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
*/
@Override
public Boolean checkAllDeptsAndUsers(Long deptId) {
List<SysDept> childDeptList = baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getParentId, deptId));
if (!childDeptList.isEmpty()) {
for (SysDept sysDept : childDeptList) {
if (checkDeptExistUser(sysDept.getDeptId())) {
return true;
}
}
}
return checkDeptExistUser(deptId);
}
/**
* 校验部门名称是否唯一
*
......
......@@ -149,19 +149,11 @@ public class SysMenuServiceImpl implements ISysMenuService {
*/
@Override
public List<SysMenu> selectMenuTreeByUserId(Long userId) {
List<SysMenu> menus = null;
List<SysMenu> menus;
if (LoginHelper.isSuperAdmin(userId)) {
//Sass超管
menus = baseMapper.selectMenuTreeAll();
}
// else if (LoginHelper.isTenantAdmin()) {
// //租户管理员
// SysTenantVo sysTenantVo = tenantMapper.selectVoOne(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getTenantId, LoginHelper.getTenantId()));
// SysTenantPackageVo sysTenantPackageVo = tenantPackageMapper.selectVoOne(new LambdaQueryWrapper<SysTenantPackage>().eq(SysTenantPackage::getPackageId, sysTenantVo.getPackageId()));
// List<Long> menuIds = StringUtils.splitTo(sysTenantPackageVo.getMenuIds(), Convert::toLong);
// menus = baseMapper.selectBatchIds(menuIds);
// }
else {
}else {
//租户下的员工
menus = baseMapper.selectMenuTreeByUserId(userId);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment