package com.ruoyi.szxc.service.impl;

import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.szxc.domain.SzxcBankcardInfo;
import com.ruoyi.szxc.mapper.SzxcBankcardInfoMapper;
import com.ruoyi.szxc.service.ISzxcBankcardInfoService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * 银行卡信息Service业务层处理
 * 
 * @author hs
 * @date 2024-03-15
 */
@Service
public class SzxcBankcardInfoServiceImpl implements ISzxcBankcardInfoService 
{
    @Resource
    private SzxcBankcardInfoMapper szxcBankcardInfoMapper;

    /**
     * 查询银行卡信息
     * 
     * @param id 银行卡信息主键
     * @return 银行卡信息
     */
    @Override
    public SzxcBankcardInfo selectSzxcBankcardInfoById(Long id)
    {
        return szxcBankcardInfoMapper.selectSzxcBankcardInfoById(id);
    }

    /**
     * 查询银行卡信息列表
     * 
     * @param szxcBankcardInfo 银行卡信息
     * @return 银行卡信息
     */
    @Override
    @DataScope(deptAlias = "b")
    public List<SzxcBankcardInfo> selectSzxcBankcardInfoList(SzxcBankcardInfo szxcBankcardInfo)
    {
        return szxcBankcardInfoMapper.selectSzxcBankcardInfoList(szxcBankcardInfo);
    }

    /**
     * 新增银行卡信息
     * 
     * @param szxcBankcardInfo 银行卡信息
     * @return 结果
     */
    @Override
    public int insertSzxcBankcardInfo(SzxcBankcardInfo szxcBankcardInfo)
    {
        szxcBankcardInfo.setCreateTime(DateUtils.getNowDate());
        return szxcBankcardInfoMapper.insertSzxcBankcardInfo(szxcBankcardInfo);
    }

    /**
     * 修改银行卡信息
     * 
     * @param szxcBankcardInfo 银行卡信息
     * @return 结果
     */
    @Override
    public int updateSzxcBankcardInfo(SzxcBankcardInfo szxcBankcardInfo)
    {
        szxcBankcardInfo.setUpdateTime(DateUtils.getNowDate());
        return szxcBankcardInfoMapper.updateSzxcBankcardInfo(szxcBankcardInfo);
    }

    /**
     * 修改默认银行卡
     * @param szxcBankcardInfo
     * @return
     */
    @Override
    @Transactional
    public int updateSzxcBankcardInfo2(SzxcBankcardInfo szxcBankcardInfo) {
        szxcBankcardInfo.setUpdateTime(DateUtils.getNowDate());
        //修改所有ownerid=jmid的银行卡  修改银行卡默认为否
        if(szxcBankcardInfo.getDefaultCard()!=null&&szxcBankcardInfo.getDefaultCard().equals("0")){
            SzxcBankcardInfo param=new SzxcBankcardInfo();
            param.setOwnerId(szxcBankcardInfo.getOwnerId());
            param.setDefaultCard("1");//1代表设置为非默认卡
            try {
                szxcBankcardInfoMapper.updateSzxcBankcardInfo2(param);
            } catch (Exception e) {
                e.printStackTrace();
                return 0;
            }
        }
        return szxcBankcardInfoMapper.updateSzxcBankcardInfo(szxcBankcardInfo);
    }
    /**
     * 批量删除银行卡信息
     * 
     * @param ids 需要删除的银行卡信息主键
     * @return 结果
     */
    @Override
    public int deleteSzxcBankcardInfoByIds(Long[] ids)
    {
        return szxcBankcardInfoMapper.deleteSzxcBankcardInfoByIds(ids);
    }

    /**
     * 删除银行卡信息信息
     * 
     * @param id 银行卡信息主键
     * @return 结果
     */
    @Override
    public int deleteSzxcBankcardInfoById(Long id)
    {
        return szxcBankcardInfoMapper.deleteSzxcBankcardInfoById(id);
    }

}
