Compare commits

...

3 Commits

Author SHA1 Message Date
cabbage b9eb35f130 ## 平级收益价格按单商品处理; 2025-06-13 14:34:14 +08:00
sangelxiu1 147e28fbf6 ## Opt - mq补偿增加业绩 2025-06-13 14:34:13 +08:00
sangelxiu1 dc4681cd3b ## Opt - mq补偿增加业绩 2025-06-13 14:34:12 +08:00
2 changed files with 31 additions and 18 deletions

View File

@ -38,6 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -1287,6 +1288,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
BigDecimal waresPrice = saOrderItems.getWaresPrice(); BigDecimal waresPrice = saOrderItems.getWaresPrice();
// 商品数量 // 商品数量
BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity()); BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity());
// 单个商品价格
BigDecimal waresOnePrice = waresPrice.divide(waresQuantityBig, 6, RoundingMode.FLOOR);
// 前一个会员等级 // 前一个会员等级
int beforeGradeValue = 0; int beforeGradeValue = 0;
// 前一个会员等级的平级收益人数 // 前一个会员等级的平级收益人数
@ -1356,7 +1360,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
continue; continue;
} }
// 平级收益商品价格 * 千分之五 -- 6位小数四舍五入 // 平级收益商品价格 * 千分之五 -- 6位小数四舍五入
sameBonusIncome = waresPrice.multiply(RetailConstants.SAME_RATIO).setScale(6, BigDecimal.ROUND_HALF_UP); sameBonusIncome = waresOnePrice.multiply(RetailConstants.SAME_RATIO).setScale(6, BigDecimal.ROUND_HALF_UP).multiply(waresQuantityBig);
// 平级收益累计 // 平级收益累计
beforeSameBonus = beforeSameBonus.add(sameBonusIncome); beforeSameBonus = beforeSameBonus.add(sameBonusIncome);
// 平级等级代数等级 // 平级等级代数等级

View File

@ -594,22 +594,31 @@
</select> </select>
<update id="recalculateTeamNewBoxNum"> <update id="recalculateTeamNewBoxNum">
UPDATE ${retailsTableName} MERGE INTO ${retailsTableName} s
SET ENABLE_STATUS = 0, TEAM_NEW_BOX_NUM = ( USING (
SELECT SUM(boxNum) SELECT SUM(boxNum) AS boxNum, SUM(pv) AS pv, pk_id
FROM ( FROM (
SELECT b.PK_ID, NVL(s.NEW_BOX_NUM, 0) AS boxNum SELECT b.PK_ID,
FROM ${retailsTableName} s NVL(s.NEW_BOX_NUM, 0) AS boxNum,
RIGHT JOIN ( NVL(s.NEW_CONSUME_PV, 0) AS pv
SELECT cm.PK_ID FROM ${retailsTableName} s
FROM cu_member cm RIGHT JOIN (
WHERE cm.PK_ID != #{pkId} SELECT cm.PK_ID
START WITH cm.PK_ID = #{pkId} FROM cu_member cm
CONNECT BY PRIOR cm.pk_id = cm.pk_parent WHERE cm.PK_ID != #{pkId}
ORDER BY LEVEL START WITH cm.PK_ID = #{pkId}
) b ON s.PK_MEMBER = b.PK_ID CONNECT BY PRIOR cm.pk_id = cm.pk_parent
) c ORDER BY LEVEL
) ) b ON s.PK_MEMBER = b.PK_ID
WHERE PK_MEMBER = #{pkId} ) 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}
</update> </update>
</mapper> </mapper>