package com.qmth.jkserver.service;

import com.qmth.jkserver.model.BasicSchool;
import com.qmth.jkserver.model.SysConfig;
import com.qmth.jkserver.model.User;

/**
 * @Description: 缓存操作service
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2021/3/25
 */
public interface CommonCacheService {

    /**
     * 添加用户缓存
     *
     * @param userId
     * @return
     */
    public User userCache(Long userId);

    /**
     * 修改用户缓存
     *
     * @param userId
     * @return
     */
    public User updateUserCache(Long userId);

    /**
     * 删除用户缓存
     *
     * @param userId
     */
    public void removeUserCache(Long userId);

    /**
     * 添加学校缓存
     *
     * @param schoolId
     * @return
     */
    public BasicSchool schoolCache(Long schoolId);

    /**
     * 添加学校缓存
     *
     * @param code
     * @return
     */
    public BasicSchool schoolCache(String code);

    /**
     * 更新学校缓存
     *
     * @param schoolId
     * @return
     */
    public BasicSchool updateSchoolCache(Long schoolId);

    /**
     * 更新学校缓存
     *
     * @param code
     * @return
     */
    public BasicSchool updateSchoolCache(String code);

    /**
     * 删除学校缓存
     *
     * @param schoolId
     */
    public void removeSchoolCache(Long schoolId);

    /**
     * 删除学校缓存
     */
    public void removeSchoolIdCache();

    /**
     * 删除学校缓存
     *
     * @param code
     */
    public void removeSchoolCache(String code);

    /**
     * 删除学校缓存
     */
    public void removeSchoolCodeCache();

    /**
     * 添加系统参数缓存
     *
     * @param key
     * @return
     */
    public SysConfig addSysConfigCache(String key);

    /**
     * 更新系统参数缓存
     *
     * @param key
     * @return
     */
    public SysConfig updateSysConfigCache(String key);

    /**
     * 删除系统参数缓存
     *
     * @param key
     */
    public void removeSysConfigCache(String key);

    /**
     * 更新系统参数缓存
     *
     * @param key
     * @param sysConfig
     */
    public void updateSysConfigCacheForDb(String key, SysConfig sysConfig);

    /**
     * 添加系统参数缓存
     *
     * @param schoolId
     * @param key
     * @return
     */
    public SysConfig addSysConfigCache(Long schoolId, String key);

    /**
     * 更新系统参数缓存
     *
     * @param schoolId
     * @param key
     * @return
     */
    public SysConfig updateSysConfigCache(Long schoolId, String key);

    /**
     * 删除系统参数缓存
     *
     * @param schoolId
     * @param key
     */
    public void removeSysConfigCache(Long schoolId, String key);
}
