Compare commits
3 Commits
8eebb3fdfa
...
b9eb35f130
| Author | SHA1 | Date |
|---|---|---|
|
|
b9eb35f130 | |
|
|
147e28fbf6 | |
|
|
dc4681cd3b |
|
|
@ -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);
|
||||||
// 平级等级代数等级
|
// 平级等级代数等级
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue