package com.ruoyi.bgt.service;

import com.ruoyi.bgt.bo.BgtUserQueryBo;
import com.ruoyi.bgt.domain.dto.UserRealNameAuthenticationDTO;
import com.ruoyi.common.core.domain.entity.BgtUser;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Collection;
import java.util.List;

/**
 * APP包工头Service接口
 *
 * @author ruoyi
 * @date 2025-02-14
 */
public interface IBgtUserService extends IServicePlus<BgtUser> {
    /**
     * 查询单个
     * @return
     */
    BgtUser queryById(String id);

    /**
     * 查询列表
     */
    TableDataInfo<BgtUser> queryPageList(BgtUserQueryBo bo);

    /**
     * 查询列表
     */
    List<BgtUser> queryList(BgtUserQueryBo bo);

    /**
     * 根据新增业务对象插入APP包工头
     * @param bo APP包工头新增业务对象
     * @return
     */
    Boolean insert(BgtUser bo);

    /**
     * 根据编辑业务对象修改APP包工头
     * @param bo APP包工头编辑业务对象
     * @return
     */
    Boolean update(BgtUser bo);

    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

	/**
	 * 通过电话查询用户
	 */
	BgtUser selectUserByPhone(String phone);


	/**
	 * 实名认证
	 */
	Boolean realNameAuthentication(@Validated @RequestBody UserRealNameAuthenticationDTO dto);


	/**
	 * 通过唯一标识查询用户
	 */
	BgtUser selectUserByUserId(Long userId);

}
