Ignore:
Timestamp:
01/05/22 21:51:57 (2 years ago)
Author:
NikolaCenevski <cenevskinikola@…>
Branches:
master
Children:
a64f926
Parents:
b8dc761
Message:

part 3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/it/finki/charitable/controller/UserProfileController.java

    rb8dc761 r6fa3d09  
    1414import org.springframework.web.bind.annotation.RequestParam;
    1515
     16import java.time.Duration;
     17import java.time.LocalDate;
     18import java.time.LocalDateTime;
    1619import java.util.List;
    1720
     
    116119            post.getFundsCollected().add(funds);
    117120            post.setTotalFundsCollected(post.getTotalFundsCollected() + amount);
     121            post.setRiskFactor(getRisk(post));
    118122            donationPostService.save(post);
    119123        }
     
    130134        return null;
    131135    }
     136    private Integer getRisk(DonationPost post) {
     137        int risk;
     138        if(post.getFundsNeeded() <= post.getTotalFundsCollected()) {
     139            risk = 102;
     140        }
     141        else
     142        {
     143            if (LocalDate.now().isAfter(post.getDateDue()))
     144            {
     145                risk=0;
     146            }
     147            else
     148            {
     149                float dailyAverage = post.getTotalFundsCollected() / (Duration.between(post.getCreatedAt().atTime(0, 0, 0), LocalDate.now().atTime(0, 0, 0)).toDays()+1);
     150                float neededAverage = (post.getFundsNeeded() - post.getTotalFundsCollected()) / (Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays()+1);
     151
     152                if(Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays() == 0) {
     153                    float hour=(float) LocalDateTime.now().getHour();
     154                    float mins=(float) LocalDateTime.now().getMinute();
     155                    hour=hour+(mins/(float)60);
     156                    float hourlyAverage=(dailyAverage/(float)24);
     157                    float neededhourlyAverage=(post.getFundsNeeded() - post.getTotalFundsCollected())/((float)24-hour);
     158                    risk = (int) (hourlyAverage/neededhourlyAverage*100);
     159                    if (risk>100)
     160                    {
     161                        risk=100;
     162                    }
     163
     164                }
     165                else
     166                {
     167                    System.out.println(dailyAverage + " " + neededAverage);
     168                    risk = (int) (dailyAverage / neededAverage * 100);
     169
     170                    if(risk > 100) {
     171                        risk = 100;
     172                    }
     173                }
     174            }
     175        }
     176        return risk;
     177    }
    132178}
     179
Note: See TracChangeset for help on using the changeset viewer.