| Line 96... |
Line 96... |
| 96 |
|
96 |
|
| 97 |
Map<Integer, CustomRetailer> customRetailerMap = retailerService.getFofoRetailers(true);
|
97 |
Map<Integer, CustomRetailer> customRetailerMap = retailerService.getFofoRetailers(true);
|
| 98 |
|
98 |
|
| 99 |
Map<Integer, SDCreditRequirement> sdCreditRequirementMap = sdCreditRequirementRepository.selectAll().stream()
|
99 |
Map<Integer, SDCreditRequirement> sdCreditRequirementMap = sdCreditRequirementRepository.selectAll().stream()
|
| 100 |
.collect(Collectors.toMap(x -> x.getFofoId(), x -> x));
|
100 |
.collect(Collectors.toMap(x -> x.getFofoId(), x -> x));
|
| 101 |
Map<Integer, CurrentPartnerDailyInvestment> currentPartnerDailyInvestmentMap = currentPartnerDailyInvestmentRepository
|
- |
|
| 102 |
.selectAll().stream().collect(Collectors.toMap(x -> x.getFofoId(), x -> x));
|
- |
|
| 103 |
|
- |
|
| 104 |
for (Entry<Integer, CustomRetailer> customRetailerEntry : customRetailerMap.entrySet()) {
|
101 |
for (Entry<Integer, CustomRetailer> customRetailerEntry : customRetailerMap.entrySet()) {
|
| 105 |
int fofoId = customRetailerEntry.getKey();
|
102 |
int fofoId = customRetailerEntry.getKey();
|
| 106 |
|
103 |
|
| 107 |
SDCreditRequirement sdCreditRequirement = sdCreditRequirementMap.get(customRetailerEntry.getKey());
|
104 |
SDCreditRequirement sdCreditRequirement = sdCreditRequirementMap.get(customRetailerEntry.getKey());
|
| 108 |
|
105 |
|
| 109 |
CurrentPartnerDailyInvestment currentPartnerDailyInvestment = currentPartnerDailyInvestmentMap.get(fofoId);
|
- |
|
| 110 |
BigDecimal suggestedAmount = BigDecimal.ZERO;
|
- |
|
| 111 |
if (currentPartnerDailyInvestment != null) {
|
106 |
if (sdCreditRequirement != null) {
|
| 112 |
suggestedAmount = BigDecimal.valueOf(currentPartnerDailyInvestment.getTotalInvestment() * 0.1);
|
- |
|
| 113 |
}
|
- |
|
| 114 |
|
107 |
|
| 115 |
if (suggestedAmount.doubleValue() > 200000) {
|
108 |
BigDecimal utilizedLimit = new BigDecimal(sdCreditService.getUtilizationAmount(fofoId));
|
| 116 |
|
109 |
|
| 117 |
suggestedAmount = BigDecimal.valueOf(200000);
|
110 |
BigDecimal availableLimit = sdCreditRequirement.getLimit().subtract(utilizedLimit);
|
| 118 |
|
111 |
|
| 119 |
}
|
- |
|
| - |
|
112 |
LOGGER.info("utilizedLimit {} ", utilizedLimit);
|
| 120 |
|
113 |
|
| 121 |
if (suggestedAmount.doubleValue() < 0) {
|
114 |
LOGGER.info("availableLimit {} ", availableLimit);
|
| 122 |
suggestedAmount = BigDecimal.ZERO;
|
- |
|
| 123 |
}
|
- |
|
| 124 |
|
115 |
|
| 125 |
LOGGER.info("suggestedAmount {} ", suggestedAmount);
|
116 |
sdCreditRequirement.setUtilizedAmount(utilizedLimit);
|
| - |
|
117 |
|
| - |
|
118 |
sdCreditRequirement.setAvailableLimit(availableLimit);
|
| 126 |
|
119 |
|
| 127 |
if (sdCreditRequirement == null) {
|
- |
|
| 128 |
sdCreditRequirement = new SDCreditRequirement();
|
- |
|
| 129 |
sdCreditRequirement.setFofoId(fofoId);
|
- |
|
| 130 |
sdCreditRequirement.setCreditDays(15);
|
- |
|
| 131 |
sdCreditRequirement.setRisk(CreditRisk.NO_RISK);
|
- |
|
| 132 |
sdCreditRequirement.setInterestRate(BigDecimal.valueOf(0.05));
|
- |
|
| 133 |
sdCreditRequirement.setSuggestedLimit(suggestedAmount);
|
- |
|
| 134 |
sdCreditRequirement.setLimit(suggestedAmount);
|
- |
|
| 135 |
sdCreditRequirement.setUtilizedAmount(BigDecimal.ZERO);
|
- |
|
| 136 |
sdCreditRequirement.setAvailableLimit(suggestedAmount);
|
- |
|
| 137 |
sdCreditRequirement.setCreateTimestamp(LocalDateTime.now());
|
- |
|
| 138 |
sdCreditRequirement.setUpdateTimestamp(LocalDateTime.now());
|
120 |
sdCreditRequirement.setUpdateTimestamp(LocalDateTime.now());
|
| 139 |
sdCreditRequirementRepository.persist(sdCreditRequirement);
|
- |
|
| 140 |
}
|
121 |
}
|
| 141 |
|
122 |
|
| 142 |
sdCreditRequirement.setSuggestedLimit(suggestedAmount);
|
- |
|
| 143 |
sdCreditRequirement.setLimit(suggestedAmount);
|
- |
|
| 144 |
BigDecimal utilizedLimit = new BigDecimal(sdCreditService.getUtilizationAmount(fofoId));
|
- |
|
| 145 |
|
- |
|
| 146 |
BigDecimal availableLimit = sdCreditRequirement.getLimit().subtract(utilizedLimit);
|
- |
|
| 147 |
|
- |
|
| 148 |
LOGGER.info("utilizedLimit {} ", utilizedLimit);
|
- |
|
| 149 |
|
- |
|
| 150 |
LOGGER.info("availableLimit {} ", availableLimit);
|
- |
|
| 151 |
|
- |
|
| 152 |
sdCreditRequirement.setUtilizedAmount(utilizedLimit);
|
- |
|
| 153 |
|
- |
|
| 154 |
sdCreditRequirement.setAvailableLimit(availableLimit);
|
- |
|
| 155 |
|
- |
|
| 156 |
sdCreditRequirement.setUpdateTimestamp(LocalDateTime.now());
|
- |
|
| 157 |
|
- |
|
| 158 |
}
|
123 |
}
|
| 159 |
|
124 |
|
| 160 |
model.addAttribute("customRetailerMap", customRetailerMap);
|
125 |
model.addAttribute("customRetailerMap", customRetailerMap);
|
| 161 |
model.addAttribute("sdCreditRequirementMap", sdCreditRequirementMap);
|
126 |
model.addAttribute("sdCreditRequirementMap", sdCreditRequirementMap);
|
| 162 |
return "sd-credit";
|
127 |
return "sd-credit";
|
| 163 |
|
- |
|
| 164 |
}
|
128 |
}
|
| 165 |
|
129 |
|
| 166 |
@RequestMapping(value = "/creditRequirement", method = RequestMethod.POST)
|
130 |
@RequestMapping(value = "/creditRequirement", method = RequestMethod.POST)
|
| 167 |
public String sdCredit(HttpServletRequest request, @RequestBody SdCreditRequirementModel sdCreditRequirementModel,
|
131 |
public String sdCredit(HttpServletRequest request, @RequestBody SdCreditRequirementModel sdCreditRequirementModel,
|
| 168 |
Model model) throws Exception {
|
132 |
Model model) throws Exception {
|