2024-11-17 22:07:00 +08:00
|
|
|
package com.isu.gaswellwatch.service.impl;
|
|
|
|
|
2024-11-23 18:49:10 +08:00
|
|
|
import java.util.ArrayList;
|
2024-11-17 22:07:00 +08:00
|
|
|
import java.util.Collection;
|
|
|
|
import java.util.List;
|
2024-11-23 18:49:10 +08:00
|
|
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.isu.gaswellwatch.config.SnowflakeConfig;
|
|
|
|
import com.isu.gaswellwatch.constants.UserConstant;
|
|
|
|
import com.isu.gaswellwatch.entity.*;
|
|
|
|
import com.isu.gaswellwatch.service.BlockDepartmentService;
|
|
|
|
import com.isu.gaswellwatch.service.UserService;
|
|
|
|
import com.isu.gaswellwatch.utils.ConverterUtil;
|
|
|
|
import com.isu.gaswellwatch.vo.UserLoginInfoVO;
|
|
|
|
import com.isu.gaswellwatch.vo.UserVO;
|
|
|
|
import jakarta.annotation.Resource;
|
2024-11-17 22:07:00 +08:00
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.isu.gaswellwatch.dto.BlockCreateRequest;
|
|
|
|
import com.isu.gaswellwatch.dto.BlockEditRequest;
|
|
|
|
import com.isu.gaswellwatch.vo.BlockPageQuery;
|
|
|
|
import com.isu.gaswellwatch.vo.BlockVO;
|
|
|
|
import com.isu.gaswellwatch.dao.BlockDao;
|
|
|
|
import com.isu.gaswellwatch.service.BlockService;
|
|
|
|
import com.isu.gaswellwatch.mapper.BlockMapper;
|
|
|
|
import org.mapstruct.factory.Mappers;
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 区块Service业务层处理
|
|
|
|
*
|
|
|
|
* @author scwsl
|
|
|
|
* @date 2024-11-17
|
|
|
|
*/
|
|
|
|
@Service
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@Transactional(readOnly = true)
|
|
|
|
public class BlockServiceImpl extends ServiceImpl<BlockDao, Block> implements BlockService {
|
|
|
|
|
|
|
|
private final BlockDao blockDao;
|
|
|
|
private final BlockMapper blockMapper = Mappers.getMapper(BlockMapper.class);
|
2024-11-23 18:49:10 +08:00
|
|
|
@Resource
|
|
|
|
private BlockDepartmentService blockDepartmentService;
|
|
|
|
@Resource
|
|
|
|
private UserService userService;
|
|
|
|
@Resource
|
|
|
|
private SnowflakeConfig snowflakeConfig;
|
2024-11-17 22:07:00 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 查询区块
|
|
|
|
*
|
|
|
|
* @param id 区块主键
|
|
|
|
* @return 区块
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public BlockVO selectBlockById(Long id) {
|
2024-11-23 18:49:10 +08:00
|
|
|
return ConverterUtil.convert(blockDao.selectBlockById(id),BlockVO.class);
|
2024-11-17 22:07:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 查询区块列表
|
|
|
|
*
|
|
|
|
* @return 区块
|
|
|
|
*/
|
|
|
|
@Override
|
2024-11-23 18:49:10 +08:00
|
|
|
public List<BlockVO> selectBlockList() {
|
|
|
|
//根据当前用户所属的部门筛选可以看到的区块
|
|
|
|
UserLoginInfoVO userLoginInfoVO = (UserLoginInfoVO) StpUtil.getTokenSession().get(UserConstant.TOKEN_SESSION);
|
|
|
|
UserVO userVO = userService.selectUserInfo(userLoginInfoVO.getUserVO().getUsername());
|
|
|
|
if("admin".equals(userVO.getUsername())){
|
|
|
|
//对admin用户不进行过滤筛选
|
|
|
|
return blockDao.selectBlockList(null);
|
|
|
|
}else{
|
|
|
|
if(userVO.getDepartment()!=null){
|
|
|
|
return blockDao.selectBlockList(userVO.getDepartment().getId());
|
|
|
|
}else{
|
|
|
|
return new ArrayList<>();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-11-17 22:07:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 分页查询区块列表
|
|
|
|
*
|
2024-11-23 18:49:10 +08:00
|
|
|
* @param name 区块名称
|
2024-11-17 22:07:00 +08:00
|
|
|
* @return 区块
|
|
|
|
*/
|
|
|
|
@Override
|
2024-11-23 18:49:10 +08:00
|
|
|
public Page<BlockVO> pageForQuery(Integer currentPage,Integer pageSize,String name){
|
|
|
|
return blockDao.pageForQuery(new Page<>(currentPage, pageSize), name);
|
2024-11-17 22:07:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 新增区块
|
|
|
|
*
|
|
|
|
* @param blockCreateRequest 区块
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
2024-11-23 18:49:10 +08:00
|
|
|
public void insertBlock(BlockCreateRequest blockCreateRequest) {
|
|
|
|
|
|
|
|
blockCreateRequest.setId(snowflakeConfig.snowflakeId());
|
|
|
|
blockDao.insertBlock(blockMapper.create(blockCreateRequest));
|
|
|
|
|
|
|
|
//增加区块部门关联
|
|
|
|
if(blockCreateRequest.getDepartmentId()!=null){
|
|
|
|
blockDepartmentService.remove(new LambdaQueryWrapper<BlockDepartment>().eq(BlockDepartment::getBlockId, blockCreateRequest.getId()));
|
|
|
|
addDepartment(blockCreateRequest.getDepartmentId(), blockCreateRequest.getId());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void addDepartment(Long departmentId, Long blockId) {
|
|
|
|
BlockDepartment.builder().id(snowflakeConfig.snowflakeId()).blockId(blockId).departmentId(departmentId).build().insert();
|
2024-11-17 22:07:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 修改区块
|
|
|
|
*
|
|
|
|
* @param blockEditRequest 区块
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
2024-11-23 18:49:10 +08:00
|
|
|
public void updateBlock(BlockEditRequest blockEditRequest) {
|
|
|
|
updateById(Block.builder().id(blockEditRequest.getId()).name(blockEditRequest.getName()).details(blockEditRequest.getDetails()).build());
|
|
|
|
|
|
|
|
//增加区块部门关联
|
|
|
|
if(blockEditRequest.getDepartmentId()!=null){
|
|
|
|
blockDepartmentService.remove(new LambdaQueryWrapper<BlockDepartment>().eq(BlockDepartment::getBlockId, blockEditRequest.getId()));
|
|
|
|
addDepartment(blockEditRequest.getDepartmentId(), blockEditRequest.getId());
|
|
|
|
}
|
2024-11-17 22:07:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 删除区块信息
|
|
|
|
*
|
|
|
|
* @param id 区块主键
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
2024-11-23 18:49:10 +08:00
|
|
|
public void deleteBlockById(Long id) {
|
|
|
|
blockDao.deleteBlockById(id);
|
|
|
|
blockDepartmentService.remove(new LambdaQueryWrapper<BlockDepartment>().eq(BlockDepartment::getBlockId, id));
|
2024-11-17 22:07:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 批量删除删除区块信息
|
|
|
|
*
|
|
|
|
* @param ids 区块主键
|
|
|
|
* @return 数量
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
|
public int deleteBlockByIds(Collection<Long> ids) {
|
|
|
|
return blockDao.deleteBlockByIds(ids);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|