## Opt - 反射按顺序规则填充CuMemberRetailDetail
This commit is contained in:
parent
c37e19f473
commit
f45a4f3e23
|
@ -1,6 +1,10 @@
|
||||||
package com.hzs.bonus.bonus.service.impl;
|
package com.hzs.bonus.bonus.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
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.ICuMemberRetailDetailService;
|
||||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||||
import com.hzs.bonus.base.service.ICuMemberService;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
|
@ -968,7 +974,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
for (CuMemberRetailDetail cuMemberRetailDetail : parentDetailList) {
|
for (CuMemberRetailDetail cuMemberRetailDetail : parentDetailList) {
|
||||||
if (EBonusStageStatus.NO.getValue() == cuMemberRetailDetail.getStageStatus()) {
|
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) {
|
private static final List<String> fieldList = Arrays.asList("11", "12", "21", "22", "23", "24", "31", "32", "33", "34", "35", "36", "37", "38");
|
||||||
cuMemberRetailDetail.getPointMember11();
|
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