|
@@ -17,9 +17,7 @@ import com.ydtech.utils.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.scheduling.annotation.Async;
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.annotation.PostConstruct;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
@@ -53,9 +51,36 @@ public class UpdateRatioUtils {
|
|
|
public void init() {
|
|
public void init() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public void loginBefore(String userId){
|
|
|
|
|
+ Map<Integer, PartnerUser> allByUserId = getAllByUserId(userId);
|
|
|
|
|
+ allByUserId.forEach((key, value) -> {
|
|
|
|
|
+ BigDecimal latest = calculateCommission(String.valueOf(key),value.getUserId(),allByUserId);
|
|
|
|
|
+ initializeCommissionRatio(value, latest);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void initializeCommissionRatio(PartnerUser value, BigDecimal latest) {
|
|
|
|
|
+ BigDecimal mostRecent = SpringUtil.getBean(PartnerKickbackChangeService.class).mostRecentRecord(value.getUserId());
|
|
|
|
|
+ if (mostRecent == null){
|
|
|
|
|
+ PartnerKickbackChange change = new PartnerKickbackChange();
|
|
|
|
|
+ change.setUserId(value.getUserId());
|
|
|
|
|
+ change.setUserGrade(String.valueOf(value.getGrade()));
|
|
|
|
|
+ change.setOriginalCommission(latest);
|
|
|
|
|
+ change.setAfterChange(null);
|
|
|
|
|
+ change.setDeptId(value.getDeptId());
|
|
|
|
|
+ change.setChangeTime(new Date());
|
|
|
|
|
+ kickbackChangeService.saveKickbackChange(change);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- @Async
|
|
|
|
|
public void loginChange(String userId){
|
|
public void loginChange(String userId){
|
|
|
|
|
+ Map<Integer, PartnerUser> allByUserId = getAllByUserId(userId);
|
|
|
|
|
+ saveChange(allByUserId);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public Map<Integer, PartnerUser> getAllByUserId(String userId) {
|
|
|
Map<Integer, PartnerUser> map = new HashMap<>();
|
|
Map<Integer, PartnerUser> map = new HashMap<>();
|
|
|
List<PartnerUser> userList = partnerUserMapper.queryByUserId(userId);
|
|
List<PartnerUser> userList = partnerUserMapper.queryByUserId(userId);
|
|
|
if (CollectionUtil.isNotEmpty(userList)) {
|
|
if (CollectionUtil.isNotEmpty(userList)) {
|
|
@@ -63,8 +88,7 @@ public class UpdateRatioUtils {
|
|
|
getMap(map, user);
|
|
getMap(map, user);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- saveChange(map);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ return map;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private static void saveChange(Map<Integer, PartnerUser> map) {
|
|
private static void saveChange(Map<Integer, PartnerUser> map) {
|
|
@@ -108,31 +132,16 @@ public class UpdateRatioUtils {
|
|
|
String key = String.valueOf(entry.getKey());
|
|
String key = String.valueOf(entry.getKey());
|
|
|
PartnerUser value = entry.getValue();
|
|
PartnerUser value = entry.getValue();
|
|
|
BigDecimal latest = calculateCommission(key,value.getUserId(),map);
|
|
BigDecimal latest = calculateCommission(key,value.getUserId(),map);
|
|
|
- BigDecimal mostRecent = SpringUtil.getBean(PartnerKickbackChangeService.class).mostRecentRecord(value.getUserId());
|
|
|
|
|
- if (mostRecent == null){
|
|
|
|
|
- PartnerKickbackChange change = new PartnerKickbackChange();
|
|
|
|
|
- change.setUserId(value.getUserId());
|
|
|
|
|
- change.setUserGrade(String.valueOf(value.getGrade()));
|
|
|
|
|
- change.setOriginalCommission(latest);
|
|
|
|
|
- change.setAfterChange(null);
|
|
|
|
|
- change.setDeptId(value.getDeptId());
|
|
|
|
|
- change.setChangeTime(new Date());
|
|
|
|
|
- kickbackChangeService.saveKickbackChange(change);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ initializeCommissionRatio(value, latest);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void addChangeRecord(String referrerId, Integer grade, PartnerUser partnerUser){
|
|
|
|
|
- Map<Integer, PartnerUser> map = new HashMap<>();
|
|
|
|
|
- PartnerUser user = partnerUserMapper.queryUser(referrerId, grade);
|
|
|
|
|
- map.put(partnerUser.getGrade(), partnerUser);
|
|
|
|
|
- if (user != null) {
|
|
|
|
|
- getMap(map, user);
|
|
|
|
|
- }
|
|
|
|
|
- saveChange(map);
|
|
|
|
|
|
|
+ public void addChangeRecord(String userId){
|
|
|
|
|
+ Map<Integer, PartnerUser> allByUserId = getAllByUserId(userId);
|
|
|
|
|
+ saveChange(allByUserId);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -339,13 +348,19 @@ public class UpdateRatioUtils {
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
BigDecimal sumPremium = BigDecimal.ZERO;
|
|
BigDecimal sumPremium = BigDecimal.ZERO;
|
|
|
Set<String> userIdList = new HashSet<>(0);
|
|
Set<String> userIdList = new HashSet<>(0);
|
|
|
- if (StringUtils.equals("3",grade) || StringUtils.equals("2",grade)){
|
|
|
|
|
|
|
+ if (StringUtils.equals("2",grade)){
|
|
|
PartnerUser s = map.get(3);
|
|
PartnerUser s = map.get(3);
|
|
|
if (!Objects.isNull(s)){
|
|
if (!Objects.isNull(s)){
|
|
|
userIdList = CalculateCommissionUtils.getUserIdList(s.getUserId());
|
|
userIdList = CalculateCommissionUtils.getUserIdList(s.getUserId());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ if (StringUtils.equals("3",grade)){
|
|
|
|
|
+ PartnerUser s = map.get(4);
|
|
|
|
|
+ if (!Objects.isNull(s)){
|
|
|
|
|
+ userIdList = CalculateCommissionUtils.getUserIdList(s.getUserId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
if (StringUtils.equals("4",grade)){
|
|
if (StringUtils.equals("4",grade)){
|
|
|
PartnerUser s = map.get(4);
|
|
PartnerUser s = map.get(4);
|
|
|
if (!Objects.isNull(s)){
|
|
if (!Objects.isNull(s)){
|