package cn.pluss.platform.level;

import cn.pluss.platform.entity.LevelOperateRecord;
import cn.pluss.platform.entity.UserApp;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

/**
 * <p>
 * 等级变更记录表 服务类
 * </p>
 *
 * @author Djh
 * @since 2022-02-08
 */
public interface LevelOperateRecordService extends IService<LevelOperateRecord> {

    /**
     * 获取等级调整边界
     * @param userId 用户id
     * @return  maxLevel, minLevel
     */
    Map<String, Object> apiLevelBound(String userId);

    /**
     * 用户操作下级等级权益的数据
     */
    Map<String, Object> apiLevelBenefitData();

    /**
     * 用户操作下级等级权益的数据
     * @param ua    用户id
     */
    Map<String, Object> levelData(UserApp ua);

    /**
     * 设置
     * @param userId    被修改的用户id
     * @param level     设置等级
     */
    void apiChangeLevel(long userId, String level);

    /**
     * 设置等级
     * @param operator  操作人用户id
     * @param userId    被修改的用户id
     * @param level     设置等级
     * @param flag      消耗名额标识
     */
    void changeLevel(long operator, long userId, String level, String flag);
}
