package com.jsowell.pile.service.impl;

import java.util.List;
import java.util.Locale;

import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.vo.MemberPlateNumberVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper;
import com.jsowell.pile.domain.MemberPlateNumberRelation;
import com.jsowell.pile.service.IMemberPlateNumberRelationService;

/**
 * 用户车牌对应关系Service业务层处理
 *
 * @author jsowell
 * @date 2023-03-06
 */
@Service
public class MemberPlateNumberRelationServiceImpl implements IMemberPlateNumberRelationService {
    @Autowired
    private MemberPlateNumberRelationMapper memberPlateNumberRelationMapper;

    /**
     * 查询用户车牌对应关系
     *
     * @param id 用户车牌对应关系主键
     * @return 用户车牌对应关系
     */
    @Override
    public MemberPlateNumberRelation selectMemberPlateNumberRelationById(Integer id) {
        return memberPlateNumberRelationMapper.selectMemberPlateNumberRelationById(id);
    }

    /**
     * 查询用户车牌对应关系列表
     *
     * @param memberPlateNumberRelation 用户车牌对应关系
     * @return 用户车牌对应关系
     */
    @Override
    public List<MemberPlateNumberRelation> selectMemberPlateNumberRelationList(MemberPlateNumberRelation memberPlateNumberRelation) {
        return memberPlateNumberRelationMapper.selectMemberPlateNumberRelationList(memberPlateNumberRelation);
    }

    /**
     * 新增用户车牌对应关系
     *
     * @param memberPlateNumberRelation 用户车牌对应关系
     * @return 结果
     */
    @Override
    public int insertMemberPlateNumberRelation(MemberPlateNumberRelation memberPlateNumberRelation) {
        return memberPlateNumberRelationMapper.insertMemberPlateNumberRelation(memberPlateNumberRelation);
    }

    /**
     * 修改用户车牌对应关系
     *
     * @param memberPlateNumberRelation 用户车牌对应关系
     * @return 结果
     */
    @Override
    public int updateMemberPlateNumberRelation(MemberPlateNumberRelation memberPlateNumberRelation) {
        return memberPlateNumberRelationMapper.updateMemberPlateNumberRelation(memberPlateNumberRelation);
    }

    @Override
    public int updatePlateNumber(MemberPlateNumberRelation memberPlateNumberRelation) {
        if (StringUtils.isNotBlank(memberPlateNumberRelation.getLicensePlateNumber())) {
            String plateNumber = memberPlateNumberRelation.getLicensePlateNumber().toUpperCase(Locale.ROOT);
            memberPlateNumberRelation.setLicensePlateNumber(plateNumber);
        }
        return memberPlateNumberRelationMapper.updateMemberPlateNumberRelation(memberPlateNumberRelation);
    }

    // /**
    //  * 批量删除用户车牌对应关系
    //  *
    //  * @param ids 需要删除的用户车牌对应关系主键
    //  * @return 结果
    //  */
    // @Override
    // public int deleteMemberLicensePlateNumberRelationByIds(Integer[] ids) {
    //     return memberLicensePlateNumberRelationMapper.deleteMemberLicensePlateNumberRelationByIds(ids);
    // }
    //
    // /**
    //  * 删除用户车牌对应关系信息
    //  *
    //  * @param id 用户车牌对应关系主键
    //  * @return 结果
    //  */
    // @Override
    // public int deleteMemberLicensePlateNumberRelationById(Integer id) {
    //     return memberLicensePlateNumberRelationMapper.deleteMemberLicensePlateNumberRelationById(id);
    // }

    /**
     * 用户解除绑定车牌号（逻辑删除，将 del_flag 改为 1）
     *
     * @param dto
     * @return
     */
    @Override
    public int deleteCarNoByParams(List<Integer> ids){
        return memberPlateNumberRelationMapper.deleteCarNoByParams(ids);
    }

    @Override
    public int unbindingPlateNumber(String memberId, String plateNumber) {
        return memberPlateNumberRelationMapper.unbindingPlateNumber(memberId, plateNumber);
    }

    /**
     * 通过vin码查询信息
     * @param vinCode
     * @return
     */
    @Override
    public MemberPlateNumberRelation getMemberPlateInfoByVinCode(String vinCode) {
        return memberPlateNumberRelationMapper.getMemberPlateInfoByVinCode(vinCode);
    }
}
