diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 698c2f34..87014d34 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -1,6 +1,10 @@ package com.hzs.bonus.bonus.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.base.service.ICuMemberService; @@ -31,6 +35,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.temporal.ChronoUnit; @@ -968,7 +974,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { for (CuMemberRetailDetail cuMemberRetailDetail : parentDetailList) { if (EBonusStageStatus.NO.getValue() == cuMemberRetailDetail.getStageStatus()) { // 推荐人子点位未完成,则进行填充 - this.fillChildNode(cuMemberRetailDetail); +// this.fillChildNode(cuMemberRetailDetail); } } @@ -979,9 +985,42 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { /** * 填充子点位 */ - private void fillChildNode(CuMemberRetailDetail cuMemberRetailDetail) { - cuMemberRetailDetail.getPointMember11(); - + private static final List fieldList = Arrays.asList("11", "12", "21", "22", "23", "24", "31", "32", "33", "34", "35", "36", "37", "38"); + private static Map fieldMap = null; + private static final String pointFieldName = "point"; + private static final String pointMemberFieldName = "pointMember"; + private String fillChildNode(CuMemberRetailDetail cuMemberRetailDetail, Long pointValue, Long pointMemberValue) { + if(ObjectUtil.isEmpty(fieldMap)){ + initFieldMap(); + } + for (String suffix : fieldList) { + Field pointField = fieldMap.get(pointFieldName + suffix); + Field pointMemberField = fieldMap.get(pointMemberFieldName + suffix); + Object pointFieldValue = ReflectUtil.getFieldValue(cuMemberRetailDetail, pointField); + if(ObjectUtil.isEmpty(pointFieldValue)){ + ReflectUtil.setFieldValue(cuMemberRetailDetail, pointField, pointValue); + ReflectUtil.setFieldValue(cuMemberRetailDetail, pointMemberField, pointMemberValue); + return suffix; + } + } + return null; + } + private void initFieldMap(){ + fieldMap = new HashMap<>(); + for (String suffix : fieldList) { + fieldMap.put(pointFieldName + suffix, ReflectUtil.getField(CuMemberRetailDetail.class, pointFieldName + suffix)); + fieldMap.put(pointMemberFieldName + suffix, ReflectUtil.getField(CuMemberRetailDetail.class, pointMemberFieldName + suffix)); + } } +// public static void main(String[] args) { +// BonusSettleRangeHandle test = new BonusSettleRangeHandle(); +// CuMemberRetailDetail cuMemberRetailDetail = new CuMemberRetailDetail(); +// for (int i = 0; i < 14; i++) { +// String suffix = test.fillChildNode(cuMemberRetailDetail, (long) i, (long) (i + 1)); +// System.out.println(suffix); +// System.out.println(JSONUtil.toJsonPrettyStr(cuMemberRetailDetail)); +// } +// } + }