package com.example.his.api.mis.service;

import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONUtil;
import com.example.his.api.db.dao.RoleDao;
import com.example.his.api.db.pojo.RoleEntity;
import com.example.his.api.resp.PermissionMenuResp;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class  RoleService {
    @Resource
    private RoleDao roleDao;

    // 角色列表-查询全部
    public ArrayList<HashMap> searchAllRole() {
        ArrayList<HashMap> list = roleDao.searchAllRole();
        return list;
    }

    // 角色列表-查询id
    public HashMap searchRoleById(Integer id) {
        HashMap map = roleDao.searchRoleById(id);
        return map;
    }

    // 角色列表-分页查询
    public PageInfo<HashMap> searchRole(Map param) {
        PageHelper.startPage(MapUtil.getInt(param, "pageNum"), MapUtil.getInt(param, "pageSize"));
        ArrayList<HashMap> list = roleDao.searchRole(param);
        PageInfo<HashMap> pageInfo = new PageInfo<>(list);
        return pageInfo;
    }

    // 角色列表-新增
    public int insertRole(Map param) {
        return roleDao.insertRole(param);
    }

    // 角色列表-更新
    public int updateRole(Map param) {
        return roleDao.updateRole(param);
    }

    // 角色列表-删除
    public int deleteRole(Integer id) {
        return roleDao.deleteRole(id);
    }

    // 角色列表-批量删除
    public int deleteBatchRole(Map param) {
        return roleDao.deleteBatchRole(param);
    }



//    /**
//     * 角色列表-权限转换
//     * @param permissionList
//     * @return
//     */
//    public ArrayList<HashMap> deepPermissionList(ArrayList<HashMap> permissionList) {
//        //创建list集合，用于数据最终封装
//        ArrayList<HashMap> finalNode = new ArrayList<>();
//
//        for (HashMap menus : permissionList) {
//            menus.replace("permissions", JSONUtil.parseArray(menus.get("permissions")));
//            finalNode.add(menus);
//        }
//
//        return finalNode;
//    }
}

