| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package com.ydtech.modules.partner.utils;
- import com.ydtech.modules.partner.model.PartnerKickbackChange;
- import com.ydtech.modules.partner.model.PartnerPremiumDetails;
- import com.ydtech.modules.partner.service.PartnerKickbackChangeService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- @Component
- public class KickbackChangeUtils {
- private static PartnerKickbackChangeService kickbackChangeService;
- @Autowired
- private void setKickbackChangeService(PartnerKickbackChangeService kickbackChangeService) {
- KickbackChangeUtils.kickbackChangeService = kickbackChangeService;
- }
- public void updatePersonnel(List<PartnerPremiumDetails> list,String userId3,String userId4){
- List<PartnerKickbackChange> kickbackChange = new ArrayList<>();
- for (PartnerPremiumDetails details : list) {
- BigDecimal latest = CalculateCommissionUtils.calculateCommission(String.valueOf(details.getSource()),details.getUserId(),userId3,userId4);
- BigDecimal mostRecent = kickbackChangeService.mostRecentRecord(details.getUserId(),String.valueOf(details.getSource()));
- BigDecimal bigDecimal = mostRecent == null ? new BigDecimal(details.getProportional()) : mostRecent;
- getPartnerKickbackChange(latest, bigDecimal, details, kickbackChange,userId3,userId4);
- }
- for (PartnerKickbackChange change : kickbackChange) {
- kickbackChangeService.saveKickbackChange(change);
- }
- }
- public void before(BigDecimal latest,PartnerPremiumDetails details,String userId3,String userId4){
- BigDecimal mostRecent = kickbackChangeService.mostRecentRecord(details.getUserId(),String.valueOf(details.getSource()));
- if (mostRecent == null){
- PartnerKickbackChange change = getChange(null, latest, details,userId3,userId4);
- kickbackChangeService.saveKickbackChange(change);
- }else {
- if (latest.compareTo(mostRecent) != 0){
- PartnerKickbackChange change = getChange(latest, mostRecent, details,userId3,userId4);
- kickbackChangeService.saveKickbackChange(change);
- }
- }
- }
- public void getPartnerKickbackChange(BigDecimal latest, BigDecimal mostRecent, PartnerPremiumDetails details, List<PartnerKickbackChange> list,String userId3,String userId4){
- if (latest.compareTo(mostRecent) != 0){
- PartnerKickbackChange change = getChange(latest, mostRecent, details, userId3, userId4);
- list.add( change);
- }
- }
- private static PartnerKickbackChange getChange(BigDecimal bigDecimal, BigDecimal mostRecent, PartnerPremiumDetails details,String userId3,String userId4) {
- PartnerKickbackChange change = new PartnerKickbackChange();
- change.setUserId(details.getUserId());
- change.setUserGrade(String.valueOf(details.getSource()));
- change.setOriginalCommission(mostRecent);
- change.setAfterChange(bigDecimal);
- String reason = CalculateCommissionUtils.getReason(String.valueOf(details.getSource()), details.getUserId(),userId3, userId4);
- change.setChangeReason(reason);
- change.setDeptId(details.getDeptId());
- change.setChangeTime(new Date());
- return change;
- }
- }
|