package com.huimv.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huimv.admin.common.utils.Result;
import com.huimv.admin.common.utils.ResultCode;
import com.huimv.admin.entity.AccountGroup;
import com.huimv.admin.entity.Group;
import com.huimv.admin.entity.GroupMenu;
import com.huimv.admin.mapper.AccountGroupMapper;
import com.huimv.admin.mapper.GroupMapper;
import com.huimv.admin.mapper.GroupMenuMapper;
import com.huimv.admin.service.IGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author astupidcoder
* @since 2021-09-09
*/
@Service
public class GroupServiceImpl extends ServiceImpl implements IGroupService {
@Autowired
private GroupMapper groupMapper;
@Autowired
private GroupMenuMapper groupMenuMapper;
@Autowired
private AccountGroupMapper accountGroupMapper;
@Override
public Result updateGroup(@RequestBody Group group) {
try {
groupMapper.updateById(group);
return new Result(10000,"修改成功",true);
}catch (Exception e){
return new Result(10001,"修改失败",false);
}
}
@Override
@Transactional
public Result removeGroup(Integer groupId) {
try {
Group group = this.groupMapper.selectById(groupId);
if (group == null) {
return new Result(10002,"请选择数据",false);
}
// 删除权限组
this.groupMapper.deleteById(groupId);
// 删除权限组关联菜单
QueryWrapper groupMenuQueryWrapper = new QueryWrapper<>();
groupMenuQueryWrapper.eq("group_id",groupId);
groupMenuMapper.delete(groupMenuQueryWrapper);
return new Result(10000,"删除成功",true);
}catch (Exception e){
return new Result(10001,"删除失败",false);
}
}
@Override
public Result listGroup(Map map, List allChildId) {
Integer pageNum = (Integer)map.get("pageNum");
Integer pageSize = (Integer)map.get("pageSize");
Page page = this.page(new Page<>(pageNum, pageSize), new QueryWrapper().in("account_id", allChildId).orderByDesc("id"));
return new Result(ResultCode.SUCCESS,page);
}
@Override
public Result addGroup(Group group, Integer userId) {
try {
group.setAccountId(userId);
groupMapper.insert(group);
return new Result(10000,"添加成功",true);
}catch (Exception e){
return new Result(10001,"添加失败",false);
}
}
@Override
public Result getGroupByUserId(Integer userId) {
List accountId = accountGroupMapper.selectList(new QueryWrapper().eq("account_id", userId));
List collect = accountId.stream().map(AccountGroup::getGroupId).collect(Collectors.toList());
return new Result(ResultCode.SUCCESS,collect);
}
}