UserVipService.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.izouma.awesomeAdmin.service;
  2. import com.izouma.awesomeAdmin.domain.UserVip;
  3. import com.izouma.awesomeAdmin.exception.BusinessException;
  4. import com.izouma.awesomeAdmin.repo.UserVipRepo;
  5. import com.izouma.awesomeAdmin.utils.Translator;
  6. import lombok.AllArgsConstructor;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springframework.scheduling.annotation.Scheduled;
  9. import org.springframework.stereotype.Service;
  10. import java.math.BigDecimal;
  11. @Service
  12. @Slf4j
  13. @AllArgsConstructor
  14. public class UserVipService {
  15. private UserVipRepo userVipRepo;
  16. public void enableAutoTrade(Long userId, BigDecimal minPrice, BigDecimal maxPrice) {
  17. UserVip userVip = userVipRepo.findByUserId(userId);
  18. if (userVip == null) {
  19. throw new BusinessException(Translator.toLocale("record.not_found"));
  20. }
  21. userVip.setAutoTradeEnabled(true);
  22. userVip.setMinPrice(minPrice);
  23. userVip.setMaxPrice(maxPrice);
  24. userVipRepo.save(userVip);
  25. log.info("auto trade enabled for user {}", userId);
  26. }
  27. public void disableAutoTrade(Long userId) {
  28. UserVip userVip = userVipRepo.findByUserId(userId);
  29. if (userVip == null) {
  30. throw new BusinessException(Translator.toLocale("record.not_found"));
  31. }
  32. userVip.setAutoTradeEnabled(false);
  33. userVipRepo.save(userVip);
  34. log.info("auto trade disabled for user {}", userId);
  35. }
  36. @Scheduled(cron = "10 0 0 * * ?")
  37. public void resetUsedLimit() {
  38. userVipRepo.resetUsedLimit();
  39. log.info("all vip daily used limit are reset");
  40. }
  41. }