package com.ruoyi.ss.storeStaff.mapper;

import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.common.core.domain.vo.LongCountVO;
import com.ruoyi.ss.storeStaff.domain.StoreStaff;
import com.ruoyi.ss.storeStaff.domain.StoreStaffVO;
import com.ruoyi.ss.storeStaff.domain.StoreStaffQuery;
import org.apache.ibatis.annotations.Param;

/**
 * 店铺员工Mapper接口
 *
 * @author ruoyi
 * @date 2024-11-13
 */
public interface StoreStaffMapper
{
    /**
     * 查询店铺员工
     *
     * @param employId 店铺员工主键
     * @return 店铺员工
     */
    public StoreStaffVO selectStoreStaffByEmployId(Long employId);

    /**
     * 查询店铺员工列表
     *
     * @param query 店铺员工
     * @return 店铺员工集合
     */
    public List<StoreStaffVO> selectStoreStaffList(@Param("query")StoreStaffQuery query);

    /**
     * 新增店铺员工
     *
     * @param storeStaff 店铺员工
     * @return 结果
     */
    public int insertStoreStaff(StoreStaff storeStaff);

    /**
     * 修改店铺员工
     *
     * @param storeStaff 店铺员工
     * @return 结果
     */
    public int updateStoreStaff(@Param("data") StoreStaff storeStaff);

    /**
     * 删除店铺员工
     *
     * @param employId 店铺员工主键
     * @return 结果
     */
    public int deleteStoreStaffByEmployId(Long employId);

    /**
     * 批量删除店铺员工
     *
     * @param employIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStoreStaffByEmployIds(@Param("employIds") List<Long> employIds);

    /**
     * 查询分成比例总和
     */
    BigDecimal selectSumOfPoint(@Param("query") StoreStaffQuery query);

    /**
     * 查询数量
     */
    int selectCount(@Param("query") StoreStaffQuery query);

    int bindUser(@Param("employId") Long employId,@Param("userId") Long userId);

    /**
     * 根据用户统计店员数量
     */
    List<LongCountVO> selectCountGroupByUserId(@Param("query") StoreStaffQuery query);
}
