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

import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.example.his.api.db.dao.FlowRegulationDao;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class FlowRegulationService {

    @Resource
    private FlowRegulationDao flowRegulationDao;

    @Resource
    private RedisTemplate redisTemplate;

    public PageInfo<HashMap> searchFlowRegulationByPage(Map param) {
        PageHelper.startPage(MapUtil.getInt(param,"pageNum"),MapUtil.getInt(param,"pageSize"));
        ArrayList<HashMap> list = flowRegulationDao.searchFlowRegulationByPage(param);
        PageInfo<HashMap> pageInfo = new PageInfo<>(list);
        return pageInfo;
    }

    public int insertFlowRegulation(Map param) {
        int rows = flowRegulationDao.insertFlowRegulation(param);
        return rows;
    }

    public int updateFlowRegulation(Map param) {
        int rows = flowRegulationDao.updateFlowRegulation(param);
        return rows;
    }

    public HashMap searchFlowRegulationById(int id) {
        return flowRegulationDao.searchFlowRegulationById(id);
    }

    public ArrayList searchRecommendedPlace() {
        List list = redisTemplate.opsForList().range("flow_regulation", 0, -1);
        ArrayList result = new ArrayList();
        list.forEach(one -> {
            JSONObject json = JSONUtil.parseObj(one.toString());
            result.add(json);
        });
        return result;
    }

    public int deleteFlowRegulationById(int id) {
        return flowRegulationDao.deleteFlowRegulationById(id);
    }
}
