У меня есть мой простой REST для покупок, и последнее, что мне нужно сделать, это метод: сообщить 2019 грн. - эта команда должна взять список курсов обмена валют между http://fixer.io (зарегистрироваться для свободный план), рассчитать общий доход за указанный год, конвертировать и представить его в указанной валюте, где:
2019 - год, за который должен быть рассчитан общий доход
Гривна - валюта, в которой представлен общий доход.
Я даже не представляю, как с этим бороться. Даже не знаю, как лучше всего сохранить мою валюту, какие данные использовать.
@Entity
@Table (name="purchase")
public class Purchase {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@CreationTimestamp
@Temporal(TemporalType.DATE)
@Column(name="createat")
private Date created;
@Column(name="price")
private BigDecimal price;
@Column(name="currency")
private String currency;}
@Repository
public interface PurchaseRepository extends CrudRepository<Purchase, Long
> {
List<Purchase> findById(Long id);
List<Purchase> findAllByOrderByCreatedAsc();
String deleteByCurrency(String currency);
long deleteByCreated(Date date);
}
@Service
public class PurchaseService {
@Autowired
private PurchaseRepository purchaseRepository;
public void addPurchase(Purchase purchase) {
purchaseRepository.save(purchase);
}
public List<Purchase> getAllPurchase(){
List<Purchase> purchase = new ArrayList<>();
purchaseRepository.findAll().forEach(purchase::add);
return purchase;
}
public List<Purchase> findAllSorted(){
List<Purchase> persons = purchaseRepository.findById((long) 2);
return persons;
}
@Transactional
public List<Purchase> findAllByOrderByCreatedAsc() {
List<Purchase> persons =
purchaseRepository.findAllByOrderByCreatedAsc();
return persons;
}
@Transactional
public String deleteByCurrency(String currency) {
return purchaseRepository.deleteByCurrency(currency);
};
@Transactional
public long deleteAllByDate(Date date){
return purchaseRepository.deleteByCreated(date);
}
}
@RestController
public class PurchaseController {
@Autowired
private PurchaseService purchaseService;
@PostMapping("/purchase")
public void addPurchase (@RequestBody Purchase purchase) {
purchaseService.addPurchase(purchase);}
@RequestMapping("/purchase")
public List<Purchase> getAllTopics(){
return purchaseService.getAllPurchase();
}
@RequestMapping("/purchasee")
public List<Purchase> getAllbyName(){
return purchaseService.findAllSorted();
}
@RequestMapping("/purchases")
public List<Purchase> getAllByDate(){
return purchaseService.findAllByOrderByCreatedAsc();
}
@RequestMapping(method=RequestMethod.DELETE,
value="/purchase/{created}")
String deleteByDate(@PathVariable String currency) {
return purchaseService.deleteByCurrency(currency);
Метод отчета 2019 грн. - эта команда должна взять список курсов обмена валют между http://fixer.io (зарегистрироваться для бесплатного плана), рассчитать общий доход за указанный год, конвертировать и представить его в указанной валюте где:
2019 - год, за который должен быть рассчитан общий доход
UAH - валюта, в которой представлен общий доход