package com.css.txw.mhzc.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.css.ggzc.framework.common.util.gy.GyUtils;
import com.css.ggzc.framework.mybatis.core.mapper.BaseMapperX;
import com.css.txw.mhzc.pojo.domain.TxwMhzcYhxxbDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.css.txw.mhzc.pojo.vo.UserReqVO;

import java.util.Date;
import java.util.List;

/**
* @author AirlH
* @description 针对表【txw_mhzc_yhxxb(用户信息表)】的数据库操作Mapper
* @createDate 2025-09-08 17:08:12
* @Entity com.css.txw.mhzc.pojo.domain.TxwMhzcYhxxb
*/
public interface TxwMhzcYhxxbMapper extends BaseMapperX<TxwMhzcYhxxbDO> {

    default TxwMhzcYhxxbDO getYhxxByYhuuid(String yhuuid){
        QueryWrapper<TxwMhzcYhxxbDO> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(TxwMhzcYhxxbDO::getYhUuid,yhuuid)
                .eq(TxwMhzcYhxxbDO::getYxbz,"Y")
                .eq(TxwMhzcYhxxbDO::getSdbz,"N");
        return selectOne(wrapper);
    }

    default TxwMhzcYhxxbDO getYhxxByDlzh(String dlzh){
        QueryWrapper<TxwMhzcYhxxbDO> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(TxwMhzcYhxxbDO::getDlzh,dlzh)
                .eq(TxwMhzcYhxxbDO::getYxbz,"Y")
                .eq(TxwMhzcYhxxbDO::getSdbz,"N");
        return selectOne(wrapper);
    }

    default TxwMhzcYhxxbDO getYhxxByDlzhNoYxbzNoSdbz(String dlzh){
        QueryWrapper<TxwMhzcYhxxbDO> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(TxwMhzcYhxxbDO::getDlzh,dlzh);
        return selectOne(wrapper);
    }

    default Page<TxwMhzcYhxxbDO> getAllUser(UserReqVO reqVO){
        Page<TxwMhzcYhxxbDO> page = new Page<>(reqVO.getPageNo(),reqVO.getPageSize());
        QueryWrapper<TxwMhzcYhxxbDO> wrapper = new QueryWrapper<>();
        wrapper.lambda().like(TxwMhzcYhxxbDO::getDlzh,reqVO.getDlzh())
                .like(TxwMhzcYhxxbDO::getZsxm1,reqVO.getZsxm1())
                .eq(GyUtils.isNotNull(reqVO.getSdbz()), TxwMhzcYhxxbDO::getSdbz, reqVO.getSdbz())
                .eq(GyUtils.isNotNull(reqVO.getYxbz()), TxwMhzcYhxxbDO::getYxbz, reqVO.getYxbz())
                .orderByDesc(TxwMhzcYhxxbDO::getLrrq);
        return selectPage(page,wrapper);
    }

    default List<TxwMhzcYhxxbDO> getAllUserId(){
        QueryWrapper<TxwMhzcYhxxbDO> wrapper = new QueryWrapper<>();
        wrapper.lambda().select(TxwMhzcYhxxbDO::getYhUuid)
                .eq(TxwMhzcYhxxbDO::getYxbz,"Y");
        return selectList(wrapper);
    }

    default Integer unlock(String yhuuid, Date xgrq,String xgrsfid){
        UpdateWrapper<TxwMhzcYhxxbDO> wrapper = new UpdateWrapper<>();
        wrapper.lambda()
                .set(TxwMhzcYhxxbDO::getSdbz,"N")
                .set(TxwMhzcYhxxbDO::getSdyy,"")
                .set(TxwMhzcYhxxbDO::getSdsj1,null)
                .set(TxwMhzcYhxxbDO::getSdryid,"")
                .set(TxwMhzcYhxxbDO::getXgrq,xgrq)
                .set(TxwMhzcYhxxbDO::getXgrsfid, xgrsfid)
                .eq(TxwMhzcYhxxbDO::getYhUuid, yhuuid);
        return update(wrapper);
    }

   default TxwMhzcYhxxbDO getYhxxByDid(String did){
        QueryWrapper<TxwMhzcYhxxbDO> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(TxwMhzcYhxxbDO::getDid,did)
                .eq(TxwMhzcYhxxbDO::getYxbz,"Y")
                .eq(TxwMhzcYhxxbDO::getSdbz,"N");
        return selectOne(wrapper);
    }

   default TxwMhzcYhxxbDO getYhxxBySfzjhm(String sfzjhm){
       QueryWrapper<TxwMhzcYhxxbDO> wrapper = new QueryWrapper<>();
       wrapper.lambda().eq(TxwMhzcYhxxbDO::getSfzjhm,sfzjhm)
               .eq(TxwMhzcYhxxbDO::getYxbz,"Y")
               .eq(TxwMhzcYhxxbDO::getSdbz,"N");
       return selectOne(wrapper);
   }
}




