提交 c92a1f3c 编写于 作者: Tyl666's avatar Tyl666

删除impl

上级 1e80b668
package cn.ibizlab.core.uaa.service.impl;
import java.io.Serializable;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.util.ObjectUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.context.annotation.Lazy;
import cn.ibizlab.core.uaa.domain.SysRole;
import cn.ibizlab.core.uaa.filter.SysRoleSearchContext;
import cn.ibizlab.core.uaa.service.ISysRoleService;
import cn.ibizlab.util.helper.CachedBeanCopier;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.ibizlab.core.uaa.mapper.SysRoleMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.alibaba.fastjson.JSONObject;
import org.springframework.util.StringUtils;
/**
* 实体[系统角色] 服务对象接口实现
*/
@Slf4j
@Service("SysRoleServiceImpl")
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements ISysRoleService {
@Autowired
@Lazy
protected cn.ibizlab.core.uaa.service.ISysRolePermissionService sysrolepermissionService;
protected cn.ibizlab.core.uaa.service.ISysRoleService sysroleService = this;
@Autowired
@Lazy
protected cn.ibizlab.core.uaa.service.ISysUserRoleService sysuserroleService;
List<SysRole> result = new ArrayList<>();
protected int batchSize = 500;
@Override
@Transactional
public boolean create(SysRole et) {
fillParentData(et);
if(!this.retBool(this.baseMapper.insert(et))) {
return false;
}
CachedBeanCopier.copy(get(et.getRoleid()), et);
return true;
}
@Override
@Transactional
public void createBatch(List<SysRole> list) {
list.forEach(item->fillParentData(item));
this.saveBatch(list, batchSize);
}
@Override
@Transactional
public boolean update(SysRole et) {
fillParentData(et);
if(!update(et, (Wrapper) et.getUpdateWrapper(true).eq("sys_roleid", et.getRoleid()))) {
return false;
}
CachedBeanCopier.copy(get(et.getRoleid()), et);
return true;
}
@Override
@Transactional
public void updateBatch(List<SysRole> list) {
list.forEach(item->fillParentData(item));
updateBatchById(list, batchSize);
}
@Override
@Transactional
public boolean remove(String key) {
sysrolepermissionService.removeByRoleid(key);
sysuserroleService.removeByRoleid(key);
boolean result = removeById(key);
return result ;
}
@Override
@Transactional
public void removeBatch(Collection<String> idList) {
sysrolepermissionService.removeByRoleid(idList);
sysuserroleService.removeByRoleid(idList);
removeByIds(idList);
}
@Override
@Transactional
public SysRole get(String key) {
SysRole et = getById(key);
if(et == null){
et = new SysRole();
et.setRoleid(key);
}
else {
}
return et;
}
@Override
public SysRole getDraft(SysRole et) {
fillParentData(et);
return et;
}
@Override
public boolean checkKey(SysRole et) {
return (!ObjectUtils.isEmpty(et.getRoleid())) && (!Objects.isNull(this.getById(et.getRoleid())));
}
@Override
@Transactional
public boolean save(SysRole et) {
if(!saveOrUpdate(et)) {
return false;
}
return true;
}
@Override
@Transactional
public boolean saveOrUpdate(SysRole et) {
if (null == et) {
return false;
} else {
return checkKey(et) ? this.update(et) : this.create(et);
}
}
@Override
@Transactional
public boolean saveBatch(Collection<SysRole> list) {
list.forEach(item->fillParentData(item));
saveOrUpdateBatch(list,batchSize);
return true;
}
@Override
@Transactional
public void saveBatch(List<SysRole> list) {
list.forEach(item->fillParentData(item));
saveOrUpdateBatch(list,batchSize);
}
@Override
public List<SysRole> selectByProleid(String roleid) {
return baseMapper.selectByProleid(roleid);
}
@Override
public void removeByProleid(String roleid) {
this.remove(new QueryWrapper<SysRole>().eq("proleid",roleid));
}
/**
* 查询集合 DEFAULT
*/
@Override
public Page<SysRole> searchDefault(SysRoleSearchContext context) {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<SysRole> pages=baseMapper.searchDefault(context.getPages(),context,context.getSelectCond());
return new PageImpl<SysRole>(pages.getRecords(), context.getPageable(), pages.getTotal());
}
/**
* 查询集合 数据查询
*/
@Override
public Page<SysRole> searchNoRepeat(SysRoleSearchContext context) {
List<SysRole> newResult = new CopyOnWriteArrayList<>();
String sysRoleid = (String) context.getParams().get("sys_roleid");
com.baomidou.mybatisplus.extension.plugins.pagination.Page<SysRole> pages=baseMapper.searchNoRepeat(context.getPages(),context,context.getSelectCond());
List<SysRole> sysRoles = new ArrayList<>();
SysRole currentSysRole = baseMapper.selectById(sysRoleid);
if(!ObjectUtils.isEmpty(currentSysRole)){
sysRoles.add(currentSysRole);
selectChild(sysRoles);
// 加入父子级关联对象
newResult.addAll(findPRelation(sysRoleid,new ArrayList<SysRole>()));
newResult.addAll(result);
result.clear();
}
for (int i=0;i<newResult.size();i++){
for (int j=0;j<pages.getRecords().size();j++){
if (pages.getRecords().get(j).getRoleid().equals(newResult.get(i).getRoleid())){
pages.getRecords().remove(j);
}
}
}
return new PageImpl<SysRole>(pages.getRecords(), context.getPageable(), pages.getTotal()-newResult.size());
}
/**
*
* @param contextId
* @return
*/
private List<SysRole> findPRelation(String contextId,List<SysRole> pList){
SysRole currentSysRole = baseMapper.selectById(contextId);
// 查出当前id的所有父级别id
if (!ObjectUtils.isEmpty(currentSysRole)){
String proleId = currentSysRole.getProleid();
if(!StringUtils.isEmpty(proleId)){
pList.add(currentSysRole);
return findPRelation(proleId,pList);
}else {
return pList;
}
}
return null;
}
/**
* 获取某个父节点下面的所有子节点
* @return
*/
public void selectChild(List<SysRole> ids){
//用来存取调用自身递归时的参数
List<SysRole> temp= new ArrayList<SysRole>();
//查询数据库中对应id的实体类
List<SysRole> sysEnterpriseOrgList = new ArrayList<SysRole>();
//遍历传递过来的参数ids
for (SysRole sRole :ids) {
//查询子级架构
sysEnterpriseOrgList= selectByProleid(sRole.getRoleid());
//遍历list获取符合条件的对象的id值,一份存到temp中用作递归的参数,并存到全局变量中用来获取所有符合条件的id
for (SysRole s:sysEnterpriseOrgList) {
temp.add(s);
result.add(s);
}
}
if(temp.size()!=0&&temp!=null){
selectChild(temp);
}
}
/**
* 为当前实体填充父数据(外键值文本、外键值附加数据)
* @param et
*/
private void fillParentData(SysRole et){
//实体关系[DER1N_SYS_ROLE_SYS_ROLE_PROLEID]
if(!ObjectUtils.isEmpty(et.getProleid())){
cn.ibizlab.core.uaa.domain.SysRole parent=et.getParent();
if(ObjectUtils.isEmpty(parent)){
cn.ibizlab.core.uaa.domain.SysRole majorEntity=sysroleService.get(et.getProleid());
et.setParent(majorEntity);
parent=majorEntity;
}
et.setProlename(parent.getRolename());
}
}
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
}
@Override
@Transactional
public boolean execute(String sql , Map param){
if (sql == null || sql.isEmpty()) {
return false;
}
if (sql.toLowerCase().trim().startsWith("insert")) {
return this.baseMapper.insertBySQL(sql,param);
}
if (sql.toLowerCase().trim().startsWith("update")) {
return this.baseMapper.updateBySQL(sql,param);
}
if (sql.toLowerCase().trim().startsWith("delete")) {
return this.baseMapper.deleteBySQL(sql,param);
}
log.warn("暂未支持的SQL语法");
return true;
}
@Override
public List<SysRole> getSysroleByIds(List<String> ids) {
return this.listByIds(ids);
}
@Override
public List<SysRole> getSysroleByEntities(List<SysRole> entities) {
List ids =new ArrayList();
for(SysRole entity : entities){
Serializable id=entity.getRoleid();
if(!ObjectUtils.isEmpty(id)){
ids.add(id);
}
}
if(ids.size()>0) {
return this.listByIds(ids);
}
else {
return entities;
}
}
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册