package com.ruoyi.system.mapper;

import com.ruoyi.common.core.domain.entity.ShopUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;


@Mapper
public interface ShopUserMapper {

    ShopUser selectShopUserByPhone(@Param("phone") String phone);


    ShopUser selectShopUserByUsername(@Param("username") String username);

    ShopUser selectShopUserByUsernameAndPass(@Param("username") String username,@Param("password") String password);

    int insert(ShopUser shopUser);

    /**
     * 查询用户管理
     *
     * @param id 用户管理主键
     * @return 用户管理
     */
    public ShopUser selectShopUserById(String id);

    public ShopUser selectShopUserByUserId(Long userId);

    /**
     * 查询用户管理列表
     *
     * @param shopUser 用户管理
     * @return 用户管理集合
     */
    public List<ShopUser> selectShopUserList(ShopUser shopUser);

    /**
     * 新增用户管理
     *
     * @param shopUser 用户管理
     * @return 结果
     */
    public int insertShopUser(ShopUser shopUser);

    /**
     * 修改用户管理
     *
     * @param shopUser 用户管理
     * @return 结果
     */
    public int updateShopUser(ShopUser shopUser);

    /**
     * 删除用户管理
     *
     * @param id 用户管理主键
     * @return 结果
     */
    public int deleteShopUserById(String id);

    /**
     * 批量删除用户管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteShopUserByIds(String[] ids);
    
    /**
     * 更新用户在线时长
     *
     * @param shopUser 用户信息（包含userId和online字段）
     * @return 结果
     */
    public int updateUserOnlineTime(ShopUser shopUser);
    
    /**
     * 查询用户的音乐标签
     *
     * @param userId 用户ID
     * @return 音乐标签列表
     */
    public List<String> selectUserMusicTags(String userId);

} 