package com.jeequan.jeepay.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jeequan.jeepay.core.aop.MethodLog;
import com.jeequan.jeepay.db.entity.IsvUserConnDisabledEntity;
import com.jeequan.jeepay.service.mapper.IsvUserConnDisabledMapper;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * TODO
 *
 * @author deng
 * @since 2024/4/24
 */
@Service
public class IsvUserConnDisabledService extends ServiceImpl<IsvUserConnDisabledMapper, IsvUserConnDisabledEntity> {

    public IsvUserConnDisabledEntity get(String isvNo, String ifCode, String infoType, String infoId) {
        return lambdaQuery().eq(IsvUserConnDisabledEntity::getIsvNo, isvNo)
                .eq(IsvUserConnDisabledEntity::getIfCode, ifCode)
                .eq(IsvUserConnDisabledEntity::getInfoType, infoType)
                .eq(IsvUserConnDisabledEntity::getInfoId, infoId)
                .one();
    }

    @MethodLog(remark = "禁用指定渠道-通道的指定用户关联")
    public void disable(String isvNo, String ifCode, String infoType, String infoId) {
        IsvUserConnDisabledEntity isvUserConnDisabledEntity = new IsvUserConnDisabledEntity();
        isvUserConnDisabledEntity.setIsvNo(isvNo);
        isvUserConnDisabledEntity.setIfCode(ifCode);
        isvUserConnDisabledEntity.setInfoType(infoType);
        isvUserConnDisabledEntity.setInfoId(infoId);

        IsvUserConnDisabledEntity existData = baseMapper.selectOne(new QueryWrapper<>(isvUserConnDisabledEntity));
        if (existData != null) {
            return;
        }

        isvUserConnDisabledEntity.setCreateTime(new Date());

        baseMapper.insert(isvUserConnDisabledEntity);
    }

    @MethodLog(remark = "启用指定渠道-通道的指定用户关联")
    public void enable(String isvNo, String ifCode, String infoType, String infoId) {;
        IsvUserConnDisabledEntity isvUserConnDisabledEntity = new IsvUserConnDisabledEntity();
        isvUserConnDisabledEntity.setIsvNo(isvNo);
        isvUserConnDisabledEntity.setIfCode(ifCode);
        isvUserConnDisabledEntity.setInfoType(infoType);
        isvUserConnDisabledEntity.setInfoId(infoId);

        IsvUserConnDisabledEntity existData = baseMapper.selectOne(new QueryWrapper<>(isvUserConnDisabledEntity));
        if (existData != null) {
            baseMapper.deleteById(existData.getId());
        }
    }
}
