添加注释,添加“清除默认IpInfo缓存”的功能,并在修改默认代理后调用

This commit is contained in:
2026-06-08 17:40:29 +08:00
parent 10598a51cf
commit ae4599cd9a
6 changed files with 75 additions and 50 deletions
@@ -21,18 +21,15 @@ import java.lang.annotation.Target;
@Target(METHOD)
public @interface ResponseDecodeExtension {
/**
* 指定的 protocolId
* @return
* @return 指定的 protocolId
*/
String protocolId();
/**
* inspect 的排序
* @return
* @return inspect 的排序
*/
int order() default -1;
/**
* 是否在模拟客户端请求和返回时启用, 默认 true
* @return
* @return 是否在模拟客户端请求和返回时启用, 默认 true
*/
boolean client() default true;
}
@@ -50,19 +50,27 @@ public class ProxySettingControllerV1 extends UpdateBoolServiceController<ProxyS
@PostMapping("/save")
@ResponseBody
public R<?> save(@RequestBody ProxySetting proxySetting) {
return super.save(proxySetting);
R<?> result = super.save(proxySetting);
proxySettingService.clearIpInfoCache();
return result;
}
@PostMapping("/delete")
@ResponseBody
public R<?> delete(String id) {
return super.delete(id);
R<?> result = super.delete(id);
proxySettingService.clearIpInfoCache();
return result;
}
@Override
protected
R<?> updateBool(String id, String field, Boolean value) {
return super.updateBool(id, field, value);
R<?> result = super.updateBool(id, field, value);
if ("isDefault".equals(field)) {
proxySettingService.clearIpInfoCache();
}
return result;
}
@PostMapping("/batchOp")
@@ -80,8 +88,10 @@ public class ProxySettingControllerV1 extends UpdateBoolServiceController<ProxyS
throw RException.badRequest("操作类型不能为空");
}
else if (ProxySettingBatchOp.DELETE == op) {
return R.judge(
R<?> result = R.judge(
proxySettingService.removeBatchByIds(idArray));
proxySettingService.clearIpInfoCache();
return result;
}
LambdaUpdateWrapper<ProxySetting> uw = new LambdaUpdateWrapper<>();
@@ -16,6 +16,13 @@ import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import quant.rich.emoney.validator.ProxySettingValid;
/**
* 平台代理配置。
* <p>
* SQLite 表 proxy_setting 使用触发器维护默认代理的一致性:新增或更新 is_default = 1
* 时会把其他记录置为非默认;不允许把最后一条默认代理改为非默认,也不允许删除默认代理。
* 这部分约束不在 Java 代码里重复实现,调整表结构或导入数据时需要同步检查触发器。
*/
@Data
@Accessors(chain = true)
@NoArgsConstructor
@@ -33,6 +33,10 @@ import quant.rich.emoney.validator.RequestInfoValid;
* @see DeviceInfoConfig
* @see AndroidSdkLevelConfig
* @see ChromeVersionsConfig
* <p>
* SQLite 表 request_info 使用触发器维护默认请求配置的一致性:新增或更新 is_default = 1
* 时会把其他记录置为非默认;不允许把最后一条默认请求配置改为非默认,也不允许删除默认请求配置。
* 这部分约束不在 Java 代码里重复实现,调整表结构或导入数据时需要同步检查触发器。
*/
@Data
@EqualsAndHashCode(callSuper=false)
@@ -11,6 +11,9 @@ import lombok.experimental.Accessors;
/**
* 益盟策略和策略池
* <p>
* SQLite 表 strategy_and_pool 对 pool_id 设置了 UNIQUE_POOL_ID 唯一约束,并使用
* ON CONFLICT REPLACE。重复写入同一 pool_id 时会由 SQLite 替换旧记录。
*/
@Data
@Accessors(chain=true)
@@ -41,4 +41,8 @@ public class ProxySettingService extends SqliteServiceImpl<ProxySettingMapper, P
return ipInfo;
}
public void clearIpInfoCache() {
ipInfo = null;
}
}