package com.diagbot.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.diagbot.entity.ServiceToken;
import com.diagbot.entity.ServiceTokenWithUser;
import com.diagbot.entity.wrapper.ServiceTokenWrapper;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务令牌表 服务类
 * </p>
 *
 * @author zhaops
 * @since 2018-09-17
 */
public interface ServiceTokenService extends IService<ServiceToken> {
    /**
     * 更新令牌
     *
     * @param entity
     * @param updateWrapper
     * @return
     */
    Integer updateRecord(ServiceToken entity, UpdateWrapper<ServiceToken> updateWrapper);

    /**
     * 查找令牌（单记录）
     *
     * @param queryWrapper
     * @return
     */
    ServiceToken selectOneRecord(QueryWrapper<ServiceToken> queryWrapper);


    /**
     * 根据appkey和secret获取ServiceToken信息
     * @param map
     * @return
     */
    public List<ServiceTokenWithUser> getByAppkeyAndSecret(Map map);


    /**
     * 根据appkey、secret、productId获取ServiceToken信息
     * @param map
     * @return
     */
    public List<ServiceTokenWrapper> getByAppkeyAndSecretAndProductId(Map map);

    /**
     * 根据userId和productId获取试用商品的数量
     * @param map
     * @return
     */
    Integer getTryTokenCount(Map map);
    
    /**
     * 根据userId和productId获取试用商品token
     * @param map
     * @return
     */
    ServiceToken getTryTokenByUserIdAndProductId(Map map);
}