package com.sohu.cache.web.service; import java.util.List; import com.sohu.cache.constant.AppAuditType; import com.sohu.cache.entity.*; import com.sohu.cache.web.enums.SuccessEnum; /** * 应用相关操作 * @author leifu * @Time 2014年10月21日 */ public interface AppService { /** * 查询指定用户下的应用个数 * @param appUser * @return */ int getAppDescCount(AppUser appUser, AppSearch appSearch); /** * 查询指定用户下的所有的应用 * @param appUser * @return */ List<AppDesc> getAppDescList(AppUser appUser, AppSearch appSearch); /** * 按照Appid取应用信息 * @param appId * @return */ AppDesc getByAppId(Long appId); /** * 保存应用 * @param appDesc * @return */ int save(AppDesc appDesc); /** * 更新应用 * @param appDesc * @return */ int update(AppDesc appDesc); /** * 获取应用的实例 * @param appId * @return */ List<InstanceInfo> getAppInstanceInfo(Long appId); List<InstanceStats> getAppInstanceStats(Long appId); /** * 保存用户与应用的关系 * @param appId * @param userId * @return */ boolean saveAppToUser(Long appId, Long userId); /** * 更新审核状态 * @param id 审批id * @param appId * @param status 审批状态 * @param appUser 更新人 */ void updateAppAuditStatus(Long id, Long appId, Integer status, AppUser appUser); /** * 更新用户审核状态 * @param id 审批id * @param status 审批状态 */ void updateUserAuditStatus(Long id, Integer status); /** * 通过应用名获取应用 * @param appName * @return */ AppDesc getAppByName(String appName); /** * 获取应用下的所有用户应用关系列表 * @param appId * @return */ List<AppToUser> getAppToUserList(Long appId); /** * 删除用户应用关系 * @param appId * @param userId */ SuccessEnum deleteAppToUser(Long appId, Long userId); /** * 获取审批列表 * @param status(参考AppAppCheckEnum) * @param type (参考AppAuditType) * @return */ List<AppAudit> getAppAudits(Integer status, Integer type); /** * 保存扩容申请 * @param appDesc * @param appUser * @param applyMemSize 扩容容量 * @param appScaleReason 扩容原因 * @param appScale 申请类型 */ AppAudit saveAppScaleApply(AppDesc appDesc, AppUser appUser, String applyMemSize, String appScaleReason, AppAuditType appScale); /** * 保存应用配置申请 * @param appDesc * @param appUser * @param instanceId 实例id * @param appConfigKey 配置项 * @param appConfigValue 配置值 * @param modifyConfig 申请类型 */ AppAudit saveAppChangeConfig(AppDesc appDesc, AppUser appUser, Long instanceId, String appConfigKey, String appConfigValue,String appConfigReason, AppAuditType modifyConfig); /** * 保存实例配置申请 * @param appDesc * @param appUser * @param instanceId * @param instanceConfigKey * @param instanceConfigValue * @param instanceConfigReason * @param instanceModifyConfig * @return */ AppAudit saveInstanceChangeConfig(AppDesc appDesc, AppUser appUser, Long instanceId, String instanceConfigKey, String instanceConfigValue, String instanceConfigReason, AppAuditType instanceModifyConfig); /** * 获取审批信息 * @param appAuditId * @return */ AppAudit getAppAuditById(Long appAuditId); /** * 驳回理由 * @param appAudit * @param userInfo */ SuccessEnum updateRefuseReason(AppAudit appAudit, AppUser userInfo); /** * 获取用户的应用数量 * @param userId * @return */ int getUserAppCount(Long userId); /** * 获取应用的机器信息 * @param appId * @return */ List<MachineStats> getAppMachineDetail(Long appId); /** * 根据应用id获取审批记录 * @param appId * @return */ List<AppAudit> getAppAuditListByAppId(Long appId); /** * 注册用户申请 * @param appUser * @param registerUserApply * @return */ AppAudit saveRegisterUserApply(AppUser appUser, AppAuditType registerUserApply); /** * 获取所有应用 */ List<AppDesc> getAllAppDesc(); /** * 修改报警配置 * @param appId * @param memAlertValue * @param clientConnAlertValue * @param appUser * @return */ SuccessEnum changeAppAlertConfig(long appId, int memAlertValue, int clientConnAlertValue, AppUser appUser); /** * 更新appKey * @param appId */ void updateAppKey(long appId); }