## Opt - 反射按顺序规则填充CuMemberRetailDetail
This commit is contained in:
parent
c37e19f473
commit
f45a4f3e23
|
@ -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<String> fieldList = Arrays.asList("11", "12", "21", "22", "23", "24", "31", "32", "33", "34", "35", "36", "37", "38");
|
||||
private static Map<String, Field> 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));
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue