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

import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
import com.example.his.api.common.result.R;
import com.example.his.api.mis.service.DictionaryService;
import com.example.his.api.req.Dictionary.insertForm;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;

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

@RestController
@RequestMapping("/mis/admin")
public class DictionaryController {

    @Resource
    private DictionaryService dictionaryService;

    @RequestMapping("/insertDictionary")
    @SaCheckPermission(value = {"SYSTEM:DICTIONARY","SYSTEM:DICTIONARY:INSERT"}, mode = SaMode.OR)
    public R insertDictionary(@RequestBody @Valid insertForm form) {
        Map param = BeanUtil.beanToMap(form);
        param.replace("detail", JSONUtil.parseArray(form.getDetail()).toString());
        int rows = dictionaryService.insertDictionary(param);
        return R.success(rows);
    }

    @GetMapping("/searchDictionary")
    @SaCheckPermission(value = {"SYSTEM:DICTIONARY","SYSTEM:DICTIONARY:SELECT"}, mode = SaMode.OR)
    public R searchDictionary() {
        PageInfo<HashMap> list = dictionaryService.searchDictionary();
        return R.success(list);
    }

    @GetMapping("/searchDictionaryById")
    @SaCheckPermission(value = {"SYSTEM:DICTIONARY","SYSTEM:DICTIONARY:SELECT"}, mode = SaMode.OR)
    public R searchDictionaryById(@RequestParam Integer id) {
        HashMap dictionary = dictionaryService.searchDictionaryById(id);
        return R.success(dictionary);
    }
}
