package com.ruoyi.frequency.rechargecoin.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.code.PublicCommon;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.frequency.rechargecoin.entity.RechargeCoin;
import com.ruoyi.frequency.rechargecoin.mapper.RechargeCoinMapper;
import com.ruoyi.frequency.rechargecoin.service.RechargeCoinService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 充值包Service业务层处理
 *
 * @author liwenlong
 * @date 2023-10-25
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class RechargeCoinServiceImpl extends ServiceImpl<RechargeCoinMapper, RechargeCoin>  implements RechargeCoinService
{
    @Autowired
    private RechargeCoinMapper rechargeCoinMapper;

    /**
     * 查询充值包
     *
     * @param id 充值包主键
     * @return 充值包
     */
    @Override
    public RechargeCoin selectRechargeCoinById(String id)
    {
        return rechargeCoinMapper.selectRechargeCoinById(id);
    }

    /**
     * 查询充值包列表
     *
     * @param rechargeCoin 充值包
     * @return 充值包
     */
    @Override
    public List<RechargeCoin> selectRechargeCoinList(RechargeCoin rechargeCoin)
    {
        return rechargeCoinMapper.selectRechargeCoinList(rechargeCoin);
    }

    /**
     * 新增充值包
     *
     * @param rechargeCoin 充值包
     * @return 结果
     */
    @Override
    public int insertRechargeCoin(RechargeCoin rechargeCoin)
    {
        rechargeCoin.setCreateTime(DateUtils.getNowDate());
        return rechargeCoinMapper.insert(rechargeCoin);
    }

    /**
     * 修改充值包
     *
     * @param rechargeCoin 充值包
     * @return 结果
     */
    @Override
    public int updateRechargeCoin(RechargeCoin rechargeCoin)
    {
        rechargeCoin.setUpdateTime(DateUtils.getNowDate());
        return rechargeCoinMapper.updateById(rechargeCoin);
    }

    /**
     * 批量删除充值包
     *
     * @param ids 需要删除的充值包主键
     * @return 结果
     */
    @Override
    public int deleteRechargeCoinByIds(String[] ids,Integer delFlag)
    {
        this.lambdaUpdate().set(RechargeCoin::getDelFlag,delFlag).in(RechargeCoin::getId,ids).update();
        return ids.length;
    }

    /**
     * 删除充值包信息
     *
     * @param id 充值包主键
     * @return 结果
     */
    @Override
    public int deleteRechargeCoinById(String id)
    {
        this.lambdaUpdate().set(RechargeCoin::getDelFlag,PublicCommon.删除).eq(RechargeCoin::getId,id).update();
        return 1;
    }
}
