Files
UserBaseService/src/main/java/com/yunhai/userbase/service/IApplicationInfoService.java
T
2026-08-14 09:03:17 +08:00

105 lines
3.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.yunhai.userbase.service;
import com.yunhai.userbase.entity.ApplicationInfo;
import com.yunhai.userbase.model.application.ApplicationInfoQuery;
import com.yunhai.userbase.model.application.ApplicationInfoRequest;
import com.yunhai.userbase.model.application.ApplicationInfoSortVo;
import com.yunhai.userbase.model.application.ApplicationInfoVo;
import com.yunhai.userbase.model.application.PushSettingRequest;
import com.yunhai.userbase.model.application.PushSettingVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* 应用信息业务接口(缓存由 Spring Cache 注解统一管控)。
*/
public interface IApplicationInfoService {
/**
* 根据 id 查询应用信息(带缓存,防击穿)。
*/
ApplicationInfo getById(Integer id);
/**
* 保存/更新应用信息(写后同步更新缓存)。
*/
ApplicationInfo save(ApplicationInfo info);
/**
* 根据 id 删除应用信息(同步清除缓存)。
*/
void deleteById(Integer id);
/**
* 新增应用信息。<br>
* 由入参构造实体并落库;appKey 为整型,从 100000 起按数据库最大值自增,appSecret 为 32 位 UUID。<br>
*
* @param request 应用新增入参
*/
void add(ApplicationInfoRequest request);
/**
* 编辑应用信息。<br>
* 按 id 查找后拷贝入参字段并保存,appKey/appSecret 不随编辑变更。<br>
*
* @param id 应用ID
* @param request 应用编辑入参
*/
void edit(Integer id, ApplicationInfoRequest request);
/**
* 根据 id 删除应用信息。<br>
*
* @param id 应用ID
*/
void delete(Integer id);
/**
* 重设应用密钥(appSecret)。<br>
* 按 id 查找应用并生成新的 32 位 UUID 密钥后保存。<br>
*
* @param id 应用ID
*/
void resetAppSecret(Integer id);
/**
* 根据条件分页查询应用列表。<br>
*
* @param query 查询条件(name 关键词按名称模糊或 appKey 精确匹配,categoryId 按类别精确匹配)
* @param pageable 分页参数(page 从 0 起,size 每页条数)
* @return 分页后的应用视图(含总条数 totalElements)
*/
Page<ApplicationInfoVo> list(ApplicationInfoQuery query, Pageable pageable);
List<ApplicationInfoSortVo> findListByCategoryId(Integer categoryId);
/**
* 同一应用类型内排序。<br>
* 入参为该类型下应用的完整有序 id 列表,按列表顺序写入 sortNo(1 起)。<br>
* 接口会额外校验:所有 id 必须存在且同属一个应用类型,避免跨类型串号导致排序错乱。<br>
*
* @param ids 同一应用类型下的应用ID有序列表
*/
void sort(List<Integer> ids);
/**
* 保存应用推送设置(外部接口地址 / 总开关 / 启用的接口 / 学校范围 / 角色范围 / 推送密钥)。<br>
* 仅更新推送相关字段,写后同步更新 appInfo 缓存。
*
* @param id 应用ID
* @param request 推送设置(各字段可选,null 表示不修改)
*/
ApplicationInfo savePushSetting(Integer id, PushSettingRequest request);
/**
* 获取应用推送设置回显 VO。
*
* @param id 应用ID
* @return 推送设置 VO(仅含推送相关字段)
*/
PushSettingVo getPushSetting(Integer id);
}