|
|
@@ -37,8 +37,8 @@ class ClearController extends Controller
|
|
|
/** @var int 每处理多少条输出一次进度,0=仅每批汇总 */
|
|
|
public $logEvery = 500;
|
|
|
|
|
|
- /** @var int 每种 clearStyle 抽样条数(check-order-cg-clear-sample 默认 5000) */
|
|
|
- public $samplePerStyle = 5000;
|
|
|
+ /** @var int 每种 clearStyle 抽样条数(check-order-cg-clear-sample 默认 50000) */
|
|
|
+ public $samplePerStyle = 50000;
|
|
|
|
|
|
/** @var int 抽样检查最多打印的问题明细条数 */
|
|
|
public $showIssues = 30;
|
|
|
@@ -92,11 +92,13 @@ class ClearController extends Controller
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 抽样检查 xhOrderCgClear:clearStyle 1/2/3 各抽 N 条(默认 5000),检查是否有漏补问题
|
|
|
+ * 抽样检查 xhOrderCgClear:clearStyle 1/2/3 各抽 N 条(默认 50000)
|
|
|
+ *
|
|
|
+ * 检查漏补、旧格式等问题;不检 amount=0(由 patch-order-cg-clear-amount 处理)
|
|
|
*
|
|
|
* 用法:
|
|
|
* php yii clear/check-order-cg-clear-sample
|
|
|
- * php yii clear/check-order-cg-clear-sample --samplePerStyle=5000
|
|
|
+ * php yii clear/check-order-cg-clear-sample --samplePerStyle=50000
|
|
|
* php yii clear/check-order-cg-clear-sample --dryRun=0 # 发现问题顺带漏补
|
|
|
*/
|
|
|
public function actionCheckOrderCgClearSample()
|
|
|
@@ -327,7 +329,7 @@ class ClearController extends Controller
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * clearStyle 1/2/3 各抽样 samplePerStyle 条,检查关系表是否有漏补问题
|
|
|
+ * clearStyle 1/2/3 各抽样 samplePerStyle 条,检查关系表漏补等问题(不含 amount=0)
|
|
|
*/
|
|
|
private function runSampleCheckOrderCgClear()
|
|
|
{
|
|
|
@@ -347,7 +349,7 @@ class ClearController extends Controller
|
|
|
];
|
|
|
|
|
|
$this->stdout(sprintf(
|
|
|
- "抽样检查 xhOrderCgClear | 各 clearStyle 抽 %d 条(id DESC) | dryRun=%d | 最多展示 %d 条问题明细\n",
|
|
|
+ "抽样检查 xhOrderCgClear | 各 clearStyle 抽 %d 条(id DESC) | 不检 amount=0 | dryRun=%d | 最多展示 %d 条问题明细\n",
|
|
|
$sampleSize,
|
|
|
(int)$this->dryRun,
|
|
|
(int)$this->showIssues
|
|
|
@@ -370,9 +372,16 @@ class ClearController extends Controller
|
|
|
}
|
|
|
|
|
|
$clearIds = array_map('intval', array_column($list, 'id'));
|
|
|
- $emptyAmountClearIds = OrderCgClearClass::getClearIdsWithEmptyAmount($clearIds);
|
|
|
- $legacyGys2KmGysClearIds = OrderCgClearClass::getClearIdsWithLegacyGys2KmGysRows($clearIds);
|
|
|
- $relationCountMap = OrderCgClearClass::getRelationCountMap($clearIds);
|
|
|
+ $relationCountMap = [];
|
|
|
+ $legacyGys2KmGysClearIds = [];
|
|
|
+ foreach (array_chunk($clearIds, 2000) as $clearIdChunk) {
|
|
|
+ $relationCountMap += OrderCgClearClass::getRelationCountMap($clearIdChunk);
|
|
|
+ $legacyGys2KmGysClearIds = array_merge(
|
|
|
+ $legacyGys2KmGysClearIds,
|
|
|
+ OrderCgClearClass::getClearIdsWithLegacyGys2KmGysRows($clearIdChunk)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ $legacyGys2KmGysClearIds = array_values(array_unique(array_map('intval', $legacyGys2KmGysClearIds)));
|
|
|
|
|
|
$styleIssues = 0;
|
|
|
$styleFixed = 0;
|
|
|
@@ -383,8 +392,9 @@ class ClearController extends Controller
|
|
|
$issue = OrderCgClearClass::detectBackfillIssue(
|
|
|
$clear,
|
|
|
$relationCount,
|
|
|
- $emptyAmountClearIds,
|
|
|
- $legacyGys2KmGysClearIds
|
|
|
+ [],
|
|
|
+ $legacyGys2KmGysClearIds,
|
|
|
+ false
|
|
|
);
|
|
|
if ($issue === null) {
|
|
|
continue;
|
|
|
@@ -459,6 +469,9 @@ class ClearController extends Controller
|
|
|
if ($this->dryRun && $totalIssues > 0) {
|
|
|
$this->stdout("请加 --dryRun=0 执行漏补,或运行 backfill-order-cg-clear --reset=1 全量漏补\n");
|
|
|
}
|
|
|
+ if ($totalIssues === 0) {
|
|
|
+ $this->stdout("amount=0 请单独跑: php yii clear/patch-order-cg-clear-amount\n");
|
|
|
+ }
|
|
|
|
|
|
return $totalIssues > 0 ? ExitCode::UNSPECIFIED_ERROR : ExitCode::OK;
|
|
|
}
|