package com.ruoyi.ss.storeStaff.service;

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;

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

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

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

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

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

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

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

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

    /**
     * 查询详情
     */
    StoreStaffVO selectOne(StoreStaffQuery query);

    /**
     * 绑定用户为店铺员工
     */
    int bindUser(Long employId, Long userId);

    /**
     * 根据用户查询店铺员工
     */
    List<LongCountVO> selectCountGroupByUserId(StoreStaffQuery query);
}
