package com.mosty.base.manager.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mosty.base.manager.mapper.TbSbGzjrMapper;
import com.mosty.base.manager.service.TbSbGzjrService;
import com.mosty.base.model.entity.jcgl.TbSbGzjr;
import com.mosty.base.utils.UUIDGenerator;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import java.util.List;

@AllArgsConstructor
@Service
public class TbSbGzjrServiceImpl extends ServiceImpl<TbSbGzjrMapper, TbSbGzjr>
        implements TbSbGzjrService {

    @Override
    public String addEntity(TbSbGzjr gzjr) {
        gzjr.setSfjr("1");
        gzjr.setXtSjly("1");
        gzjr.setXtSjzt("0");
        gzjr.setId(UUIDGenerator.getUUID());
        this.baseMapper.insert(gzjr);
        return gzjr.getId();
    }

    @Override
    public int editEntity(TbSbGzjr gzjr) {
        return this.baseMapper.updateById(gzjr);
    }

    @Override
    public void deleteEntity(List<String> ids) {
        this.baseMapper.deleteBatchIds(ids);
    }

    @Override
    public List<TbSbGzjr> getList(TbSbGzjr gzjr) {
        List<TbSbGzjr> tbSbGzjrs = this.baseMapper.selectList(new LambdaQueryWrapper<TbSbGzjr>()
                .eq(StringUtils.isNotBlank(gzjr.getGlid()), TbSbGzjr::getGlid, gzjr.getGlid())
                .eq(StringUtils.isNotBlank(gzjr.getSbbm()), TbSbGzjr::getSbbm, gzjr.getSbbm())
                .eq(StringUtils.isNotBlank(gzjr.getJrlx()), TbSbGzjr::getJrlx, gzjr.getJrlx())
                .eq(StringUtils.isNotBlank(gzjr.getSfjr()), TbSbGzjr::getSfjr, gzjr.getSfjr())
        );
        return tbSbGzjrs;
    }

    @Override
    public TbSbGzjr getInfo(String id) {
        return this.baseMapper.selectById(id);
    }

    @Override
    public int qxjr(TbSbGzjr dto) {
        if (StringUtils.isNotBlank(dto.getId())) {
            TbSbGzjr tbSbGzjr = this.baseMapper.selectById(dto.getId());
            tbSbGzjr.setSfjr("0");
            return this.baseMapper.updateById(tbSbGzjr);
        } else {
            TbSbGzjr tbSbGzjr = this.baseMapper.selectOne(new LambdaQueryWrapper<TbSbGzjr>()
                    .eq(StringUtils.isNotBlank(dto.getGlid()), TbSbGzjr::getGlid, dto.getGlid())
                    .eq(StringUtils.isNotBlank(dto.getSbbm()), TbSbGzjr::getSbbm, dto.getSbbm())
                    .eq(StringUtils.isNotBlank(dto.getJrlx()), TbSbGzjr::getJrlx, dto.getJrlx())
                    .eq( TbSbGzjr::getSfjr, "1")
            );
            if (tbSbGzjr != null) {
                tbSbGzjr.setSfjr("0");
                return this.baseMapper.updateById(tbSbGzjr);
            }
        }

        return 0;
    }


}
