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

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.example.his.api.common.result.R;
import com.example.his.api.mis.service.PermissionService;
import com.example.his.api.req.MisLogin.PermissionDeleteReq;
import com.example.his.api.req.MisLogin.PermissionEditReq;
import com.example.his.api.resp.PermissionAllResp;
import com.example.his.api.resp.PermissionMenuResp;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.Map;

@RestController
@RequestMapping("/mis/admin")
public class PermissionController {
    @Resource
    private PermissionService permissionService;

    //权限管理-查询全部
    @GetMapping("/permissions/searchAllPermissions")
    public R searchAllPermissions() {
        ArrayList<PermissionAllResp> permissions = permissionService.searchAllPermissions();
        return  R.success(permissions);
    }

    //权限管理-递归菜单
    @GetMapping("/permissions/searchPermissions")
    public R searchPermissions() {
        ArrayList<PermissionMenuResp> permissions = permissionService.searchPermissions();
        return  R.success(permissions);
    }


    // 权限管理-编辑
    @PostMapping("/permissions/editPermissions")
    public R editPermissions(@Valid @RequestBody PermissionEditReq permissionEditReq) {
        Map param = BeanUtil.beanToMap(permissionEditReq);
        if(ObjectUtil.isEmpty(permissionEditReq.getId())) {
            permissionService.insertPermission(param);
        }else {
            permissionService.updatePermission(param);
        }
        return  R.success();
    }

    // 权限管理-批量删除
    @PostMapping("/permissions/deleteBatchPermission")
    public R deleteBatchPermission(@Valid @RequestBody PermissionDeleteReq permissionDeleteReq) {
        Map param = BeanUtil.beanToMap(permissionDeleteReq);
        Integer rows = permissionService.deleteBatchPermission(param);
        return R.success(rows);
    }
}
