| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package com.izouma.awesomeAdmin.service;
- import com.izouma.awesomeAdmin.domain.UserVip;
- import com.izouma.awesomeAdmin.exception.BusinessException;
- import com.izouma.awesomeAdmin.repo.UserVipRepo;
- import com.izouma.awesomeAdmin.utils.Translator;
- import lombok.AllArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Service;
- import java.math.BigDecimal;
- @Service
- @Slf4j
- @AllArgsConstructor
- public class UserVipService {
- private UserVipRepo userVipRepo;
- public void enableAutoTrade(Long userId, BigDecimal minPrice, BigDecimal maxPrice) {
- UserVip userVip = userVipRepo.findByUserId(userId);
- if (userVip == null) {
- throw new BusinessException(Translator.toLocale("record.not_found"));
- }
- userVip.setAutoTradeEnabled(true);
- userVip.setMinPrice(minPrice);
- userVip.setMaxPrice(maxPrice);
- userVipRepo.save(userVip);
- log.info("auto trade enabled for user {}", userId);
- }
- public void disableAutoTrade(Long userId) {
- UserVip userVip = userVipRepo.findByUserId(userId);
- if (userVip == null) {
- throw new BusinessException(Translator.toLocale("record.not_found"));
- }
- userVip.setAutoTradeEnabled(false);
- userVipRepo.save(userVip);
- log.info("auto trade disabled for user {}", userId);
- }
- @Scheduled(cron = "10 0 0 * * ?")
- public void resetUsedLimit() {
- userVipRepo.resetUsedLimit();
- log.info("all vip daily used limit are reset");
- }
- }
|