diff --git a/backend/services/authorization-service/src/application/services/authorization-application.service.ts b/backend/services/authorization-service/src/application/services/authorization-application.service.ts index 585650fa..c6ea2222 100644 --- a/backend/services/authorization-service/src/application/services/authorization-application.service.ts +++ b/backend/services/authorization-service/src/application/services/authorization-application.service.ts @@ -1040,7 +1040,9 @@ export class AuthorizationApplicationService { await this.tryActivateBenefit(nearestCommunity) } else { // 未达标,需要拆分 - const remaining = initialTarget - currentTeamCount // 还差多少棵达标 + // remaining: 还差多少棵达标(不包括达标那一棵本身) + // 例如:目标10棵,当前0棵 -> remaining = 9(前9棵给上级,第10棵给自己) + const remaining = Math.max(0, initialTarget - currentTeamCount - 1) const afterPlantingCount = currentTeamCount + treeCount // 本次认种后的总数 if (afterPlantingCount < initialTarget) { @@ -1057,10 +1059,10 @@ export class AuthorizationApplicationService { distributions.push({ accountSequence: parentCommunityAccountSequence, treeCount: remaining, - reason: `初始考核(${currentTeamCount}+${remaining}=${initialTarget}),${parentCommunityReason}`, + reason: `初始考核(${currentTeamCount}+${remaining}=${currentTeamCount + remaining}/${initialTarget}),${parentCommunityReason}`, }) } - // 考核后的部分(达标后多出来的)给该社区 + // 达标的那一棵 + 之后多出来的,全部给该社区 const afterTargetCount = treeCount - remaining if (afterTargetCount > 0) { distributions.push({ @@ -1208,7 +1210,8 @@ export class AuthorizationApplicationService { // 自动激活权益 await this.tryActivateBenefit(nearestAuthProvince) } else { - const remaining = initialTarget - currentTeamCount + // remaining: 还差多少棵达标(不包括达标那一棵本身) + const remaining = Math.max(0, initialTarget - currentTeamCount - 1) const afterPlantingCount = currentTeamCount + treeCount if (afterPlantingCount < initialTarget) { @@ -1225,10 +1228,10 @@ export class AuthorizationApplicationService { distributions.push({ accountSequence: parentAccountSequence, treeCount: remaining, - reason: `初始考核(${currentTeamCount}+${remaining}=${initialTarget}),${parentReason}`, + reason: `初始考核(${currentTeamCount}+${remaining}=${currentTeamCount + remaining}/${initialTarget}),${parentReason}`, }) } - // 考核后的部分(达标后多出来的)给该省团队 + // 达标的那一棵 + 之后多出来的,全部给该省团队 const afterTargetCount = treeCount - remaining if (afterTargetCount > 0) { distributions.push({ @@ -1336,7 +1339,8 @@ export class AuthorizationApplicationService { // 自动激活权益 await this.tryActivateBenefit(provinceCompany) } else { - const remaining = initialTarget - currentTeamCount + // remaining: 还差多少棵达标(不包括达标那一棵本身) + const remaining = Math.max(0, initialTarget - currentTeamCount - 1) const afterPlantingCount = currentTeamCount + treeCount if (afterPlantingCount < initialTarget) { @@ -1354,11 +1358,11 @@ export class AuthorizationApplicationService { distributions.push({ accountSequence: systemProvinceAccountId, treeCount: remaining, - reason: `初始考核(${currentTeamCount}+${remaining}=${initialTarget}),进系统省账户`, + reason: `初始考核(${currentTeamCount}+${remaining}=${currentTeamCount + remaining}/${initialTarget}),进系统省账户`, isSystemAccount: true, }) } - // 考核后的部分(达标后多出来的)给该省公司 + // 达标的那一棵 + 之后多出来的,全部给该省公司 const afterTargetCount = treeCount - remaining if (afterTargetCount > 0) { distributions.push({ @@ -1503,7 +1507,8 @@ export class AuthorizationApplicationService { // 自动激活权益 await this.tryActivateBenefit(nearestAuthCity) } else { - const remaining = initialTarget - currentTeamCount + // remaining: 还差多少棵达标(不包括达标那一棵本身) + const remaining = Math.max(0, initialTarget - currentTeamCount - 1) const afterPlantingCount = currentTeamCount + treeCount if (afterPlantingCount < initialTarget) { @@ -1520,10 +1525,10 @@ export class AuthorizationApplicationService { distributions.push({ accountSequence: parentAccountSequence, treeCount: remaining, - reason: `初始考核(${currentTeamCount}+${remaining}=${initialTarget}),${parentReason}`, + reason: `初始考核(${currentTeamCount}+${remaining}=${currentTeamCount + remaining}/${initialTarget}),${parentReason}`, }) } - // 考核后的部分(达标后多出来的)给该市团队 + // 达标的那一棵 + 之后多出来的,全部给该市团队 const afterTargetCount = treeCount - remaining if (afterTargetCount > 0) { distributions.push({ @@ -1631,7 +1636,8 @@ export class AuthorizationApplicationService { // 自动激活权益 await this.tryActivateBenefit(cityCompany) } else { - const remaining = initialTarget - currentTeamCount + // remaining: 还差多少棵达标(不包括达标那一棵本身) + const remaining = Math.max(0, initialTarget - currentTeamCount - 1) const afterPlantingCount = currentTeamCount + treeCount if (afterPlantingCount < initialTarget) { @@ -1649,11 +1655,11 @@ export class AuthorizationApplicationService { distributions.push({ accountSequence: systemCityAccountId, treeCount: remaining, - reason: `初始考核(${currentTeamCount}+${remaining}=${initialTarget}),进系统市账户`, + reason: `初始考核(${currentTeamCount}+${remaining}=${currentTeamCount + remaining}/${initialTarget}),进系统市账户`, isSystemAccount: true, }) } - // 考核后的部分(达标后多出来的)给该市公司 + // 达标的那一棵 + 之后多出来的,全部给该市公司 const afterTargetCount = treeCount - remaining if (afterTargetCount > 0) { distributions.push({