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

part 3

Location:
src/main/java/it/finki/charitable
Files:
3 edited

Legend:

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

    rb8dc761 r6fa3d09  
    1616import java.time.Duration;
    1717import java.time.LocalDate;
     18import java.time.LocalDateTime;
    1819import java.util.*;
    1920import java.util.stream.Collectors;
     
    6768            return "upload";
    6869        }
     70        if (dateDue.isBefore(LocalDate.now()))
     71        {
     72            model.addAttribute("error", true);
     73            return "upload";
     74        }
    6975
    7076        DonationPost post = new DonationPost();
     
    269275        post.setTotalFundsCollected(post.getTotalFundsCollected() + donatedAmount);
    270276
    271         if(post.getRiskFactor() != 101) {
     277        if(post.getRiskFactor() != 101 && post.getRiskFactor() != 102) {
    272278            post.setRiskFactor(getRisk(post));
    273279        }
     
    317323
    318324    private Integer getRisk(DonationPost post) {
    319         float dailyAverage = post.getTotalFundsCollected() / (Duration.between(post.getCreatedAt().atTime(0, 0, 0), LocalDate.now().atTime(0, 0, 0)).toDays()+1);
    320         float neededAverage = (post.getFundsNeeded() - post.getTotalFundsCollected()) / (Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays()+1);
    321 
    322         System.out.println(dailyAverage + " " + neededAverage);
    323         int risk = (int) (dailyAverage / neededAverage * 100);
    324 
    325         if(risk > 100) {
    326             risk = 100;
    327         }
    328 
    329         if(Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays() == 0) {
    330             risk = 0;
    331         }
    332 
     325        int risk;
    333326        if(post.getFundsNeeded() <= post.getTotalFundsCollected()) {
    334             risk = 101;
    335         }
    336 
     327            risk = 102;
     328        }
     329        else
     330        {
     331            if (LocalDate.now().isAfter(post.getDateDue()))
     332            {
     333                risk=0;
     334            }
     335            else
     336            {
     337                float dailyAverage = post.getTotalFundsCollected() / (Duration.between(post.getCreatedAt().atTime(0, 0, 0), LocalDate.now().atTime(0, 0, 0)).toDays()+1);
     338                float neededAverage = (post.getFundsNeeded() - post.getTotalFundsCollected()) / (Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays()+1);
     339
     340                if(Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays() == 0) {
     341                    float hour=(float) LocalDateTime.now().getHour();
     342                    float mins=(float) LocalDateTime.now().getMinute();
     343                    hour=hour+(mins/(float)60);
     344                    float hourlyAverage=(dailyAverage/(float)24);
     345                    float neededhourlyAverage=(post.getFundsNeeded() - post.getTotalFundsCollected())/((float)24-hour);
     346                    risk = (int) (hourlyAverage/neededhourlyAverage*100);
     347                    if (risk>100)
     348                    {
     349                        risk=100;
     350                    }
     351
     352                }
     353                else
     354                {
     355                    System.out.println(dailyAverage + " " + neededAverage);
     356                    risk = (int) (dailyAverage / neededAverage * 100);
     357
     358                    if(risk > 100) {
     359                        risk = 100;
     360                    }
     361                }
     362            }
     363        }
    337364        return risk;
    338365    }
  • 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
  • src/main/java/it/finki/charitable/util/AutomaticEvents.java

    rb8dc761 r6fa3d09  
    1212import java.time.Duration;
    1313import java.time.LocalDate;
     14import java.time.LocalDateTime;
    1415import java.util.List;
    1516import java.util.stream.Collectors;
     
    6061
    6162        donationPosts.forEach(post -> {
    62             float dailyAverage = post.getTotalFundsCollected() / (Duration.between(post.getCreatedAt().atTime(0, 0, 0), LocalDate.now().atTime(0, 0, 0)).toDays() + 1);
    63             float neededAverage = (post.getFundsNeeded() - post.getTotalFundsCollected()) / (Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays()+1);
     63            int risk;
     64            if(post.getFundsNeeded() <= post.getTotalFundsCollected()) {
     65                risk = 102;
     66            }
     67            else
     68            {
     69                if (LocalDate.now().isAfter(post.getDateDue()))
     70                {
     71                    risk=0;
     72                }
     73                else
     74                {
     75                    float dailyAverage = post.getTotalFundsCollected() / (Duration.between(post.getCreatedAt().atTime(0, 0, 0), LocalDate.now().atTime(0, 0, 0)).toDays() + 1);
     76                    float neededAverage = (post.getFundsNeeded() - post.getTotalFundsCollected()) / (Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays()+1);
    6477
    65             System.out.println(dailyAverage + " " + neededAverage);
    66             int risk = (int) (dailyAverage / neededAverage * 100);
     78                    if(Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays() == 0) {
     79                        float hour=(float) LocalDateTime.now().getHour();
     80                        float mins=(float) LocalDateTime.now().getMinute();
     81                        hour=hour+(mins/(float)60);
     82                        float hourlyAverage=(dailyAverage/(float)24);
     83                        float neededhourlyAverage=(post.getFundsNeeded() - post.getTotalFundsCollected())/((float)24-hour);
     84                        risk = (int) (hourlyAverage/neededhourlyAverage*100);
     85                        if (risk>100)
     86                        {
     87                            risk=100;
     88                        }
     89                    }
     90                    else
     91                    {
     92                    System.out.println(dailyAverage + " " + neededAverage);
     93                    risk = (int) (dailyAverage / neededAverage * 100);
    6794
    68             if(risk > 100) {
    69                 risk = 100;
     95                    if(risk > 100) {
     96                        risk = 100;
     97                    }
     98                    }
    7099            }
    71 
    72             if(Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays() == 0) {
    73                 risk = 0;
    74100            }
    75 
    76             if(post.getFundsNeeded() <= post.getTotalFundsCollected()) {
    77                 risk = 101;
    78             }
    79 
    80101            post.setRiskFactor(risk);
    81102            donationPostService.save(post);
Note: See TracChangeset for help on using the changeset viewer.