diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml index ebf7e489..4620375d 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml @@ -594,22 +594,31 @@ - UPDATE ${retailsTableName} - SET ENABLE_STATUS = 0, TEAM_NEW_BOX_NUM = ( - SELECT SUM(boxNum) - FROM ( - SELECT b.PK_ID, NVL(s.NEW_BOX_NUM, 0) AS boxNum - FROM ${retailsTableName} s - RIGHT JOIN ( - SELECT cm.PK_ID - FROM cu_member cm - WHERE cm.PK_ID != #{pkId} - START WITH cm.PK_ID = #{pkId} - CONNECT BY PRIOR cm.pk_id = cm.pk_parent - ORDER BY LEVEL - ) b ON s.PK_MEMBER = b.PK_ID - ) c - ) - WHERE PK_MEMBER = #{pkId} + MERGE INTO ${retailsTableName} s + USING ( + SELECT SUM(boxNum) AS boxNum, SUM(pv) AS pv, pk_id + FROM ( + SELECT b.PK_ID, + NVL(s.NEW_BOX_NUM, 0) AS boxNum, + NVL(s.NEW_CONSUME_PV, 0) AS pv + FROM ${retailsTableName} s + RIGHT JOIN ( + SELECT cm.PK_ID + FROM cu_member cm + WHERE cm.PK_ID != #{pkId} + START WITH cm.PK_ID = #{pkId} + CONNECT BY PRIOR cm.pk_id = cm.pk_parent + ORDER BY LEVEL + ) b ON s.PK_MEMBER = b.PK_ID + ) c + GROUP BY pk_id + ) result + ON (s.PK_MEMBER = result.PK_ID) + WHEN MATCHED THEN + UPDATE SET + s.ENABLE_STATUS = 0, + s.TEAM_NEW_BOX_NUM = result.boxNum, + s.TEAM_NEW_PV = result.pv + WHERE s.PK_MEMBER = #{pkId}