You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.3 KiB

package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.Gold;
import com.example.demo.domain.vo.GoldUser;
import com.example.demo.mapper.ConsumeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @program: gold-java
* @ClassName UserServiceImpl
* @description:
* @author: Double
* @create: 2025−06-25 10:32
* @Version 1.0
**/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public GoldUser selectUser(String jwcode) {
GoldUser user = userMapper.selectUser(jwcode);
return user;
}
@Override
public User selectAllUser(String jwcode) {
User user = userMapper.selectAllUser(jwcode);
return user;
}
@Override
public void updateAllGold(User user) {
userMapper.updateAllGold(user);
}
@Override
public void addUser(User user) {
userMapper.addUser(user);
}
/*
每小时更新用户首充时间
*/
@Override
@Scheduled(cron = "0 0 0 * * ?")
public void updateFirstRecharge() {
List<Integer> jwcodeList = userMapper.getAllJwcode();
for(Integer jwcode : jwcodeList){
Date earliestPayTime = userMapper.getEarliestRecharge(jwcode);
if (earliestPayTime != null){
//获取用户的首充时间
Date currentFirstRecharge = userMapper.selectUserByJwcode(jwcode).getFirstRecharge();
//弱国首充时间为空或与最早支付时间不一致则更新
if (currentFirstRecharge == null || !currentFirstRecharge.after(earliestPayTime)){
userMapper.updateFirstRecharge(jwcode, earliestPayTime);
System.out.println("更新了用户" + jwcode + "的首充时间为"+earliestPayTime);
}
}
}
}
@Override
public GoldUser selectgold(String jwcode) {
GoldUser gold = userMapper.selectGold(jwcode);
return gold;
}
}