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 java.math.BigDecimal; | ||||
| import java.math.RoundingMode; | ||||
| import java.time.temporal.ChronoUnit; | ||||
| import java.util.*; | ||||
| import java.util.stream.Collectors; | ||||
|  | @ -1287,6 +1288,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|         BigDecimal waresPrice = saOrderItems.getWaresPrice(); | ||||
|         // 商品数量 | ||||
|         BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity()); | ||||
|         // 单个商品价格 | ||||
|         BigDecimal waresOnePrice = waresPrice.divide(waresQuantityBig, 6, RoundingMode.FLOOR); | ||||
| 
 | ||||
|         // 前一个会员等级 | ||||
|         int beforeGradeValue = 0; | ||||
|         // 前一个会员等级的平级收益人数 | ||||
|  | @ -1356,7 +1360,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|                     continue; | ||||
|                 } | ||||
|                 // 平级收益(商品价格 * 千分之五) -- 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); | ||||
|                 // 平级等级代数等级 | ||||
|  |  | |||
|  | @ -594,22 +594,31 @@ | |||
|     </select> | ||||
| 
 | ||||
|     <update id="recalculateTeamNewBoxNum"> | ||||
|         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} | ||||
|     </update> | ||||
| </mapper> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue