fix MI poll: log full response, fix synchroResult=0 mapped to REJECTED not UNDER_REVIEW
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
父节点
f7dbce7268
当前提交
81f04ee432
@ -479,24 +479,30 @@ public class StoreSubmissionService {
|
|||||||
String publicKey = resolveMiPublicKey(creds);
|
String publicKey = resolveMiPublicKey(creds);
|
||||||
String privateKey = require(creds, "privateKey", "MI");
|
String privateKey = require(creds, "privateKey", "MI");
|
||||||
JsonNode root = miGetAppInfo(account, requirePackageName(v), publicKey, privateKey);
|
JsonNode root = miGetAppInfo(account, requirePackageName(v), publicKey, privateKey);
|
||||||
|
// Log full root response so we can verify exact field names from production
|
||||||
|
log.info("MI poll full response for version={}: {}", v.getId(), root);
|
||||||
JsonNode pkg = root.path("packageInfo");
|
JsonNode pkg = root.path("packageInfo");
|
||||||
// Log the full packageInfo so we can tune status-field mapping from production logs.
|
|
||||||
log.info("MI poll packageInfo for version={}: {}", v.getId(), pkg);
|
|
||||||
// Xiaomi /devupload/dev/query response:
|
// Xiaomi /devupload/dev/query response:
|
||||||
// packageInfo.appStatus (or .status): 1=待审核, 2=审核中, 3=已发布/上线, 4=已下线, 5=拒绝
|
// packageInfo.appStatus: 1=待审核, 2=审核中, 3=已发布/上线, 4=已下线, 5=拒绝
|
||||||
// Fallback candidate: .synchroResult (1=成功/已上线, 0=失败/拒绝)
|
// root.updateVersion (bool): true=用户可更新(已上线), false=不可更新(审核中或拒绝)
|
||||||
|
// packageInfo.synchroResult: 1=上线成功, 0=拒绝/失败
|
||||||
int appStatus = pkg.path("appStatus").asInt(pkg.path("status").asInt(-1));
|
int appStatus = pkg.path("appStatus").asInt(pkg.path("status").asInt(-1));
|
||||||
log.info("MI poll appStatus={} for version={}", appStatus, v.getId());
|
boolean updateVersion = root.path("updateVersion").asBoolean(true);
|
||||||
|
log.info("MI poll appStatus={} updateVersion={} for version={}", appStatus, updateVersion, v.getId());
|
||||||
yield switch (appStatus) {
|
yield switch (appStatus) {
|
||||||
case 3 -> AppVersionEntity.StoreReviewState.APPROVED;
|
case 3 -> updateVersion
|
||||||
|
? AppVersionEntity.StoreReviewState.APPROVED
|
||||||
|
: AppVersionEntity.StoreReviewState.UNDER_REVIEW; // published but new version rejected
|
||||||
case 5 -> AppVersionEntity.StoreReviewState.REJECTED;
|
case 5 -> AppVersionEntity.StoreReviewState.REJECTED;
|
||||||
case 1, 2 -> AppVersionEntity.StoreReviewState.UNDER_REVIEW;
|
case 1, 2 -> AppVersionEntity.StoreReviewState.UNDER_REVIEW;
|
||||||
default -> {
|
default -> {
|
||||||
// Fall back to synchroResult: 1=已上线(通过), -1/0=其他
|
// appStatus field absent — fall back to synchroResult and updateVersion
|
||||||
int synchroResult = pkg.path("synchroResult").asInt(-1);
|
int synchroResult = pkg.path("synchroResult").asInt(-1);
|
||||||
log.info("MI poll synchroResult={} for version={}", synchroResult, v.getId());
|
log.info("MI poll synchroResult={} for version={}", synchroResult, v.getId());
|
||||||
yield synchroResult == 1
|
// synchroResult: 1=已上线(通过), 0=拒绝/失败
|
||||||
? AppVersionEntity.StoreReviewState.APPROVED
|
yield synchroResult == 1 ? AppVersionEntity.StoreReviewState.APPROVED
|
||||||
|
: synchroResult == 0 ? AppVersionEntity.StoreReviewState.REJECTED
|
||||||
|
: updateVersion ? AppVersionEntity.StoreReviewState.APPROVED
|
||||||
: AppVersionEntity.StoreReviewState.UNDER_REVIEW;
|
: AppVersionEntity.StoreReviewState.UNDER_REVIEW;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户