package com.kidgrow.usercenter.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.kidgrow.common.constant.CommonConstant;
|
import com.kidgrow.common.lock.DistributedLock;
|
import com.kidgrow.common.model.PageResult;
|
import com.kidgrow.common.model.ResultBody;
|
import com.kidgrow.common.model.SysRole;
|
import com.kidgrow.common.service.impl.SuperServiceImpl;
|
import com.kidgrow.usercenter.mapper.SysRoleMapper;
|
import com.kidgrow.usercenter.mapper.SysRoleMenuMapper;
|
import com.kidgrow.usercenter.mapper.SysUserRoleMapper;
|
import com.kidgrow.usercenter.service.ISysRoleService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.MapUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
|
*
|
* @Description: <br>
|
* @Project: <br>
|
* @CreateDate: Created in 2020/2/13 16:33 <br>
|
* @Author: <a href="4345453@kidgrow.com">liuke</a>
|
*/
|
@Slf4j
|
@Service
|
public class SysRoleServiceImpl extends SuperServiceImpl<SysRoleMapper, SysRole> implements ISysRoleService {
|
private final static String LOCK_KEY_ROLECODE = CommonConstant.LOCK_KEY_PREFIX+"rolecode:";
|
|
@Resource
|
private SysUserRoleMapper userRoleMapper;
|
|
@Resource
|
private SysRoleMenuMapper roleMenuMapper;
|
|
@Autowired
|
private DistributedLock lock;
|
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public void saveRole(SysRole sysRole) {
|
String roleCode = sysRole.getCode();
|
super.saveIdempotency(sysRole, lock, LOCK_KEY_ROLECODE+roleCode, new QueryWrapper<SysRole>().eq("code", roleCode), "角色code已存在");
|
}
|
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public void deleteRole(Long id) {
|
baseMapper.deleteById(id);
|
roleMenuMapper.delete(id, null);
|
userRoleMapper.deleteUserRole(null, id);
|
}
|
|
@Override
|
public PageResult<SysRole> findRoles(Map<String, Object> params) {
|
Integer curPage = MapUtils.getInteger(params, "page");
|
Integer limit = MapUtils.getInteger(params, "limit");
|
Page<SysRole> page = new Page<>(curPage == null ? 0 : curPage, limit == null ? -1 : limit);
|
List<SysRole> list = baseMapper.findList(page, params);
|
return PageResult.<SysRole>builder().data(list).code(0).count(page.getTotal()).build();
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public ResultBody saveOrUpdateRole(SysRole sysRole) {
|
if (sysRole.getId() == null) {
|
this.saveRole(sysRole);
|
} else {
|
baseMapper.updateById(sysRole);
|
}
|
return ResultBody.ok().msg("操作成功");
|
}
|
|
@Override
|
public List<SysRole> findAll() {
|
return baseMapper.findAll();
|
}
|
|
@Override
|
public List<SysRole> findByMap(Map<String, Object> params) {
|
params.put("is_del",0);
|
params.put("enabled",1);
|
return baseMapper.selectByMap(params);
|
}
|
|
@Override
|
public ResultBody updateEnabled(Map<String, Object> params) {
|
Long id = MapUtils.getLong(params, "id");
|
Boolean enabled = MapUtils.getBoolean(params, "enabled");
|
|
SysRole sysRole = baseMapper.selectById(id);
|
if (sysRole == null) {
|
return ResultBody.failed("角色不存在");
|
}
|
sysRole.setEnabled(enabled);
|
sysRole.setUpdateTime(new Date());
|
|
int i = baseMapper.updateById(sysRole);
|
log.info("修改角色:{}", sysRole);
|
|
return i > 0 ? ResultBody.ok().data(sysRole).msg("更新成功") : ResultBody.failed("更新失败");
|
}
|
}
|