提交 4570d4cd authored 作者: hzh's avatar hzh

项目修改

上级 2e985eee
package org.dromara.system.constant;
/**
* @author wenhe
*/
public interface Constant {
/**
* 项目正常状态
*/
String PROJECT_NORMAL = "0";
/**
* 项目封禁状态
*/
String PROJECT_DISABLE = "1";
}
...@@ -6,6 +6,7 @@ import jakarta.validation.constraints.NotEmpty; ...@@ -6,6 +6,7 @@ import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.excel.utils.ExcelUtil;
...@@ -15,6 +16,7 @@ import org.dromara.common.log.enums.BusinessType; ...@@ -15,6 +16,7 @@ import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.system.constant.Constant;
import org.dromara.system.domain.bo.SysProjectBo; import org.dromara.system.domain.bo.SysProjectBo;
import org.dromara.system.domain.vo.SysProjectVo; import org.dromara.system.domain.vo.SysProjectVo;
import org.dromara.system.service.ISysProjectService; import org.dromara.system.service.ISysProjectService;
...@@ -44,6 +46,11 @@ public class SysProjectController extends BaseController { ...@@ -44,6 +46,11 @@ public class SysProjectController extends BaseController {
@SaCheckPermission("system:project:list") @SaCheckPermission("system:project:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<SysProjectVo> list(SysProjectBo bo, PageQuery pageQuery) { public TableDataInfo<SysProjectVo> list(SysProjectBo bo, PageQuery pageQuery) {
if (StringUtils.equals(bo.getStatus(),"ALL")) {
bo.setStatus(null);
} else {
bo.setStatus(Constant.PROJECT_NORMAL);
}
return sysProjectService.queryPageList(bo, pageQuery); return sysProjectService.queryPageList(bo, pageQuery);
} }
......
...@@ -35,6 +35,11 @@ public class SysProject extends TenantEntity { ...@@ -35,6 +35,11 @@ public class SysProject extends TenantEntity {
*/ */
private String projectName; private String projectName;
/**
* 状态
*/
private String status;
/** /**
* 删除标志(0代表存在 2代表删除) * 删除标志(0代表存在 2代表删除)
*/ */
......
package org.dromara.system.domain.bo; package org.dromara.system.domain.bo;
import org.dromara.system.domain.SysProject;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.system.domain.SysProject;
/** /**
* 系统项目业务对象 sys_project * 系统项目业务对象 sys_project
...@@ -23,14 +24,17 @@ public class SysProjectBo extends BaseEntity { ...@@ -23,14 +24,17 @@ public class SysProjectBo extends BaseEntity {
/** /**
* id * id
*/ */
@NotNull(message = "id不能为空", groups = { EditGroup.class }) @NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long projectId; private Long projectId;
/** /**
* 项目名称 * 项目名称
*/ */
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "项目名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String projectName; private String projectName;
/**
* 状态
*/
private String status;
} }
...@@ -5,10 +5,12 @@ import cn.hutool.core.collection.CollectionUtil; ...@@ -5,10 +5,12 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.system.api.RemoteProjectService; import org.dromara.system.api.RemoteProjectService;
import org.dromara.system.api.domain.vo.RemoteProjectVo; import org.dromara.system.api.domain.vo.RemoteProjectVo;
import org.dromara.system.constant.Constant;
import org.dromara.system.domain.SysUser; import org.dromara.system.domain.SysUser;
import org.dromara.system.mapper.SysProjectMapper; import org.dromara.system.mapper.SysProjectMapper;
import org.dromara.system.mapper.SysUserMapper; import org.dromara.system.mapper.SysUserMapper;
...@@ -37,12 +39,13 @@ public class RemoteProjectServiceImpl implements RemoteProjectService { ...@@ -37,12 +39,13 @@ public class RemoteProjectServiceImpl implements RemoteProjectService {
.eq(StringUtils.isNotEmpty(tenantId), SysUser::getTenantId, tenantId) .eq(StringUtils.isNotEmpty(tenantId), SysUser::getTenantId, tenantId)
.eq(StringUtils.isNotEmpty(phone), SysUser::getPhonenumber, phone) .eq(StringUtils.isNotEmpty(phone), SysUser::getPhonenumber, phone)
.likeRight(SysUser::getUserType, SysUser.PROJECT_USER_TYPE) .likeRight(SysUser::getUserType, SysUser.PROJECT_USER_TYPE)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.select(SysUser::getUserType) .select(SysUser::getUserType)
); );
Set<Long> projectIds = StreamUtils.toSet(userList, u -> { Set<Long> projectIds = StreamUtils.toSet(userList, u -> {
String[] split = u.getUserType().split(PROJECT_USER_TYPE_SPLIT); String[] split = u.getUserType().split(PROJECT_USER_TYPE_SPLIT);
return Long.parseLong(split[1]); return Long.parseLong(split[1]);
}); });
return CollectionUtil.isEmpty(projectIds) ? List.of() : BeanUtil.copyToList(sysProjectMapper.selectByIds(projectIds), RemoteProjectVo.class); return CollectionUtil.isEmpty(projectIds) ? List.of() : BeanUtil.copyToList(StreamUtils.filter(sysProjectMapper.selectByIds(projectIds), sp -> StringUtils.equals(sp.getStatus(), Constant.PROJECT_NORMAL)), RemoteProjectVo.class);
} }
} }
...@@ -4,18 +4,24 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,18 +4,24 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.base.Objects; import com.google.common.base.Objects;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.service.AbstractBaseService; import org.dromara.common.mybatis.service.AbstractBaseService;
import org.dromara.system.constant.Constant;
import org.dromara.system.domain.SysProject; import org.dromara.system.domain.SysProject;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.bo.SysProjectBo; import org.dromara.system.domain.bo.SysProjectBo;
import org.dromara.system.domain.vo.SysProjectVo; import org.dromara.system.domain.vo.SysProjectVo;
import org.dromara.system.mapper.SysProjectMapper; import org.dromara.system.mapper.SysProjectMapper;
import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.service.ISysProjectService; import org.dromara.system.service.ISysProjectService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -30,6 +36,7 @@ import java.util.Map; ...@@ -30,6 +36,7 @@ import java.util.Map;
public class SysProjectServiceImpl extends AbstractBaseService<SysProjectVo, SysProjectBo, SysProject> implements ISysProjectService { public class SysProjectServiceImpl extends AbstractBaseService<SysProjectVo, SysProjectBo, SysProject> implements ISysProjectService {
private final SysProjectMapper baseMapper; private final SysProjectMapper baseMapper;
private final SysUserMapper sysUserMapper;
@Override @Override
public BaseMapperPlus<SysProject, SysProjectVo> mapper() { public BaseMapperPlus<SysProject, SysProjectVo> mapper() {
...@@ -41,6 +48,7 @@ public class SysProjectServiceImpl extends AbstractBaseService<SysProjectVo, Sys ...@@ -41,6 +48,7 @@ public class SysProjectServiceImpl extends AbstractBaseService<SysProjectVo, Sys
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysProject> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SysProject> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), SysProject::getProjectName, bo.getProjectName()); lqw.like(StringUtils.isNotBlank(bo.getProjectName()), SysProject::getProjectName, bo.getProjectName());
lqw.eq(StringUtils.isNotEmpty(bo.getStatus()), SysProject::getStatus, bo.getStatus());
return lqw; return lqw;
} }
...@@ -48,9 +56,28 @@ public class SysProjectServiceImpl extends AbstractBaseService<SysProjectVo, Sys ...@@ -48,9 +56,28 @@ public class SysProjectServiceImpl extends AbstractBaseService<SysProjectVo, Sys
public void validEntityBeforeSave(SysProject entity) { public void validEntityBeforeSave(SysProject entity) {
super.validEntityBeforeSave(entity); super.validEntityBeforeSave(entity);
List<SysProject> list = baseMapper.selectList(SysProject::getProjectName, entity.getProjectName()); List<SysProject> list = baseMapper.selectList(SysProject::getProjectName, entity.getProjectName());
SysProject sp = StreamUtils.findFirst(list, p -> !Objects.equal(entity.getProjectId(), p.getProjectId())); SysProject sp = StreamUtils.findFirst(list, p -> StringUtils.equals(Constant.PROJECT_NORMAL, p.getStatus()) && !Objects.equal(entity.getProjectId(), p.getProjectId()));
if (sp != null) { if (sp != null) {
throw new ServiceException("项目:" + entity.getProjectName() + "已存在,不能重复添加"); throw new ServiceException("项目:" + entity.getProjectName() + "已存在,不能重复添加");
} }
} }
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
ids.forEach(id -> {
SysProject sysProject = baseMapper.selectById(id);
if (sysProject != null) {
sysProject.setStatus(Constant.PROJECT_DISABLE);
baseMapper.updateById(sysProject);
//跟新员工状态
List<SysUser> userList = sysUserMapper.selectList(SysUser::getUserType, SysUser.PROJECT_USER_TYPE + SysUser.PROJECT_USER_TYPE_SPLIT + sysProject.getProjectId());
for (SysUser user : userList) {
user.setStatus(UserConstants.USER_DISABLE);
sysUserMapper.updateById(user);
}
}
});
return true;
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论