【发布时间】:2019-09-02 20:18:04
【问题描述】:
我在下面提供了一个 REST 端点,
@PutMapping("/calculateReward")
public ResponseEntity<String> calculateReward(@RequestParam("userId") Long userId) {
Optional<User> optional = userService.findById(userId);
if (!optional.isPresent()) {
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
}
User user = optional.get();
double reward = user.getCurrentSteps() * Parameters.REWARD_PER_STEPS_EUR;
RewardList list = new RewardList();
list.setUser(user);
list.setReward(reward);
user.setCurrentSteps(0);
user.setRewardLists(list);
userService.save(user);
rewardListService.save(list);
JSONObject json = new JSONObject();
double convertionRateToEuro = currencyMap.get(user.getCurrencyName());
double rewardConverted = reward * convertionRateToEuro;
json.put("name", user.getName());
json.put("currency", user.getCurrencyName());
json.put("reward", rewardConverted);
return ResponseEntity.status(HttpStatus.CREATED).body(json.toString());
}
ATM 我在另一个端点工作,我需要从上面提供的端点获得奖励值。
@PostMapping("/paypal/make/payment")
public ResponseEntity<String> paymentUsingPaypal(@RequestParam("userId") Long userId) {
Optional<User> optional = userService.findById(userId);
if (!optional.isPresent()) {
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
}
User user = optional.get();
// How do I get the "reward" in double here?
}
第二个方法结束时如何从calculateReward方法中获得双倍的“奖励”?
【问题讨论】:
-
你试过添加这一行吗?双倍奖励 = user.getCurrentSteps() * 参数.REWARD_PER_STEPS_EUR;
-
不,我还需要将当前步数设置为零等。那么使用
calculateReward方法在其他方面也有帮助是没有意义的。 -
如果这是一个您不知道如何构建逻辑的设计问题,您需要描述您的需求和面临的挑战,以及您尝试过什么以及为什么会这样没用。
标签: java spring rest spring-boot curl