package com.jsowell.pile.service.impl;

import java.util.List;

import com.jsowell.common.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.jsowell.pile.mapper.ThirdPartySettingInfoMapper;
import com.jsowell.pile.domain.ThirdPartySettingInfo;
import com.jsowell.pile.service.IThirdPartySettingInfoService;

/**
 * 第三方平台配置Service业务层处理
 *
 * @author jsowell
 * @date 2023-05-24
 */
@Service
public class ThirdPartySettingInfoServiceImpl implements IThirdPartySettingInfoService {
    @Autowired
    private ThirdPartySettingInfoMapper thirdPartySettingInfoMapper;

    /**
     * 查询第三方平台配置
     *
     * @param id 第三方平台配置主键
     * @return 第三方平台配置
     */
    @Override
    public ThirdPartySettingInfo selectThirdPartySettingInfoById(Long id) {
        return thirdPartySettingInfoMapper.selectThirdPartySettingInfoById(id);
    }

    /**
     * 查询第三方平台配置列表
     *
     * @param thirdPartySettingInfo 第三方平台配置
     * @return 第三方平台配置
     */
    @Override
    public List<ThirdPartySettingInfo> selectThirdPartySettingInfoList(ThirdPartySettingInfo thirdPartySettingInfo) {
        return thirdPartySettingInfoMapper.selectThirdPartySettingInfoList(thirdPartySettingInfo);
    }

    /**
     * 查询第三方平台配置信息
     * @param thirdPartySettingInfo
     * @return
     */
    @Override
    public ThirdPartySettingInfo selectSettingInfo(ThirdPartySettingInfo thirdPartySettingInfo) {
        return thirdPartySettingInfoMapper.selectThirdInfo(thirdPartySettingInfo);
    }

    /**
     * 新增第三方平台配置
     *
     * @param thirdPartySettingInfo 第三方平台配置
     * @return 结果
     */
    @Override
    public int insertThirdPartySettingInfo(ThirdPartySettingInfo thirdPartySettingInfo) {
        thirdPartySettingInfo.setCreateTime(DateUtils.getNowDate());
        return thirdPartySettingInfoMapper.insertThirdPartySettingInfo(thirdPartySettingInfo);
    }

    /**
     * 修改第三方平台配置
     *
     * @param thirdPartySettingInfo 第三方平台配置
     * @return 结果
     */
    @Override
    public int updateThirdPartySettingInfo(ThirdPartySettingInfo thirdPartySettingInfo) {
        thirdPartySettingInfo.setUpdateTime(DateUtils.getNowDate());
        return thirdPartySettingInfoMapper.updateThirdPartySettingInfo(thirdPartySettingInfo);
    }

    /**
     * 批量删除第三方平台配置
     *
     * @param ids 需要删除的第三方平台配置主键
     * @return 结果
     */
    @Override
    public int deleteThirdPartySettingInfoByIds(Long[] ids) {
        return thirdPartySettingInfoMapper.deleteThirdPartySettingInfoByIds(ids);
    }

    /**
     * 删除第三方平台配置信息
     *
     * @param id 第三方平台配置主键
     * @return 结果
     */
    @Override
    public int deleteThirdPartySettingInfoById(Long id) {
        return thirdPartySettingInfoMapper.deleteThirdPartySettingInfoById(id);
    }

    /**
     * 根据站点id 查询配置列表
     *
     * @param stationId
     * @return
     */
    @Override
    public ThirdPartySettingInfo getInfoByStationId(Long stationId) {
        return thirdPartySettingInfoMapper.getInfoByStationId(stationId);
    }

    /**
     * 修改站点互联互通配置
     * @param info
     * @return
     */
    @Override
    public int updateStationSettingInfo(ThirdPartySettingInfo info) {
        Long stationId = info.getStationId();
        ThirdPartySettingInfo infoByStationId = getInfoByStationId(stationId);
        if (infoByStationId == null) {
            // 新增
            return insertThirdPartySettingInfo(info);
        }else {
            // 修改
            info.setId(infoByStationId.getId());
            return updateThirdPartySettingInfo(info);
        }
    }
}
