KickbackChangeUtils.java 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.ydtech.modules.partner.utils;
  2. import com.ydtech.modules.partner.model.PartnerKickbackChange;
  3. import com.ydtech.modules.partner.model.PartnerPremiumDetails;
  4. import com.ydtech.modules.partner.service.PartnerKickbackChangeService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Component;
  7. import java.math.BigDecimal;
  8. import java.util.ArrayList;
  9. import java.util.Date;
  10. import java.util.List;
  11. @Component
  12. public class KickbackChangeUtils {
  13. private static PartnerKickbackChangeService kickbackChangeService;
  14. @Autowired
  15. private void setKickbackChangeService(PartnerKickbackChangeService kickbackChangeService) {
  16. KickbackChangeUtils.kickbackChangeService = kickbackChangeService;
  17. }
  18. public void updatePersonnel(List<PartnerPremiumDetails> list,String userId3,String userId4){
  19. List<PartnerKickbackChange> kickbackChange = new ArrayList<>();
  20. for (PartnerPremiumDetails details : list) {
  21. BigDecimal latest = CalculateCommissionUtils.calculateCommission(String.valueOf(details.getSource()),details.getUserId(),userId3,userId4);
  22. BigDecimal mostRecent = kickbackChangeService.mostRecentRecord(details.getUserId(),String.valueOf(details.getSource()));
  23. BigDecimal bigDecimal = mostRecent == null ? new BigDecimal(details.getProportional()) : mostRecent;
  24. getPartnerKickbackChange(latest, bigDecimal, details, kickbackChange,userId3,userId4);
  25. }
  26. for (PartnerKickbackChange change : kickbackChange) {
  27. kickbackChangeService.saveKickbackChange(change);
  28. }
  29. }
  30. public void before(BigDecimal latest,PartnerPremiumDetails details,String userId3,String userId4){
  31. BigDecimal mostRecent = kickbackChangeService.mostRecentRecord(details.getUserId(),String.valueOf(details.getSource()));
  32. if (mostRecent == null){
  33. PartnerKickbackChange change = getChange(null, latest, details,userId3,userId4);
  34. kickbackChangeService.saveKickbackChange(change);
  35. }else {
  36. if (latest.compareTo(mostRecent) != 0){
  37. PartnerKickbackChange change = getChange(latest, mostRecent, details,userId3,userId4);
  38. kickbackChangeService.saveKickbackChange(change);
  39. }
  40. }
  41. }
  42. public void getPartnerKickbackChange(BigDecimal latest, BigDecimal mostRecent, PartnerPremiumDetails details, List<PartnerKickbackChange> list,String userId3,String userId4){
  43. if (latest.compareTo(mostRecent) != 0){
  44. PartnerKickbackChange change = getChange(latest, mostRecent, details, userId3, userId4);
  45. list.add( change);
  46. }
  47. }
  48. private static PartnerKickbackChange getChange(BigDecimal bigDecimal, BigDecimal mostRecent, PartnerPremiumDetails details,String userId3,String userId4) {
  49. PartnerKickbackChange change = new PartnerKickbackChange();
  50. change.setUserId(details.getUserId());
  51. change.setUserGrade(String.valueOf(details.getSource()));
  52. change.setOriginalCommission(mostRecent);
  53. change.setAfterChange(bigDecimal);
  54. String reason = CalculateCommissionUtils.getReason(String.valueOf(details.getSource()), details.getUserId(),userId3, userId4);
  55. change.setChangeReason(reason);
  56. change.setDeptId(details.getDeptId());
  57. change.setChangeTime(new Date());
  58. return change;
  59. }
  60. }