package com.bjtdba.system.service.impl;

import com.bjtdba.entity.system.SystemConfig;
import com.bjtdba.system.dao.SystemConfigDao;
import com.bjtdba.system.dao.SystemConfigValueDao;
import com.bjtdba.system.service.SystemConfigService;
import com.bjtdba.utils.ResponseUtil;
import org.springframework.beans.factory.annotation.Autowired;
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;

/**
 *
 * @author makejava
 * @since 2022-08-23 16:54:21
 */
@Service("systemConfigService")
public class SystemConfigServiceImpl implements SystemConfigService {
    @Resource
    private SystemConfigDao rrxSystemConfigDao;

    @Autowired
    private SystemConfigValueDao systemConfigValueDao;

    /**
     * 通过ID查询单条数据
     *
     * @param configId 主键
     * @return 实例对象
     */
    @Override
    public SystemConfig queryById(String configId) {
        return this.rrxSystemConfigDao.queryById(configId);
    }

    public SystemConfig queryBykey(String key){
        List<SystemConfig> systemConfigList=new ArrayList<SystemConfig>();
        SystemConfig systemConfigQuery=new SystemConfig();
        systemConfigQuery.setConfigKey(key);
        systemConfigList=rrxSystemConfigDao.queryAllByLimit(systemConfigQuery);
        if(systemConfigList!=null&&systemConfigList.size()!=0){
            return  systemConfigList.get(0);
        }else{
            return null;
        }

    }
//    /**
//     * 分页查询
//     *
//     * @param rrxSystemConfig 筛选条件
//     * @param pageRequest      分页对象
//     * @return 查询结果
//     */
//    @Override
//    public Page<SystemConfig> queryByPage(SystemConfig rrxSystemConfig) {
//        long total = this.rrxSystemConfigDao.count(rrxSystemConfig);
//        return new PageImpl<>(this.rrxSystemConfigDao.queryAllByLimit(rrxSystemConfig), total);
//    }

    /**
     * 新增数据
     *
     * @param rrxSystemConfig 实例对象
     * @return 实例对象
     */
    @Override
    public SystemConfig insert(SystemConfig rrxSystemConfig) {
        this.rrxSystemConfigDao.insert(rrxSystemConfig);
        return rrxSystemConfig;
    }

    /**
     * 修改数据
     *
     * @param rrxSystemConfig 实例对象
     * @return 实例对象
     */
    @Override
    public SystemConfig update(SystemConfig rrxSystemConfig) {
        this.rrxSystemConfigDao.update(rrxSystemConfig);
        return this.queryById(rrxSystemConfig.getConfigId());
    }

    /**
     * 通过主键删除数据
     *
     * @param configId 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(String configId) {
        return this.rrxSystemConfigDao.deleteById(configId) > 0;
    }

    @Override
    public Object wxQueryByKey(String key) {
        Map<String,Object> data=new HashMap<String,Object>();
        SystemConfig systemConfigQuery=new SystemConfig();
        systemConfigQuery.setConfigKey(key);
        List<SystemConfig> systemConfigList=rrxSystemConfigDao.queryAllByLimit(systemConfigQuery);
        String status = systemConfigValueDao.selectValueByConfig(key);
        data.put("status",status);
        data.put("configName",systemConfigList.get(0).getConfigName());
        return ResponseUtil.ok(data);
    }

    @Override
    public String configValeByKey(String key){
        return   systemConfigValueDao.selectValueByConfig(key);
    }
}
