admin
2022-05-19 56364722d3ed70d48ec41f567a4e59e5ccbbb868
src/main/resources/code/service/app/src/main/java/com/ks/app/service/impl/vip/VIPServiceImpl.java
@@ -1,11 +1,12 @@
package com.ks.app.service.impl.vip;
import com.ks.app.dao.vip.UserVIPInfoDao;
import com.ks.app.dao.vip.UserVIPInfoMapper;
import com.ks.app.entity.vip.UserVIPInfo;
import com.ks.app.service.inter.vip.VIPService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
@@ -24,7 +25,7 @@
    Logger logger = LoggerFactory.getLogger(VIPServiceImpl.class);
    @Resource
    private UserVIPInfoDao userVIPInfoDao;
    private UserVIPInfoMapper userVIPInfoDao;
    @Override
    public UserVIPInfo getVIPInfo(Long uid) {
@@ -42,9 +43,40 @@
        }
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void addExpireTime(Long uid, long time) {
        UserVIPInfo userVIPInfo = userVIPInfoDao.selectByPrimaryKeyForUpdate(uid);
        if (userVIPInfo == null) {
            //新增
            UserVIPInfo vip = new UserVIPInfo();
            vip.setUid(uid);
            vip.setCreateTime(new Date());
            vip.setExpireDate(new Date(System.currentTimeMillis() + time));
            userVIPInfoDao.insertSelective(vip);
        } else {
            //修改
            UserVIPInfo update = new UserVIPInfo();
            update.setUid(uid);
            if (userVIPInfo.getExpireDate() != null) {
                //预计到期时间比现在的时间大
                if (userVIPInfo.getExpireDate().getTime() > System.currentTimeMillis()) {
                    update.setExpireDate(new Date(userVIPInfo.getExpireDate().getTime() + time));
                } else {
                    update.setExpireDate(new Date(System.currentTimeMillis() + time));
                }
            } else {
                update.setExpireDate(new Date(System.currentTimeMillis() + time));
            }
            update.setUpdateTime(new Date());
            userVIPInfoDao.updateByPrimaryKeySelective(update);
        }
    }
    @Override
    public List<UserVIPInfo> listVIPUser(Date minVIPExpireDate, Date maxVIPExpireDate, int page, int pageSize) {
        UserVIPInfoDao.DaoQuery daoQuery = new UserVIPInfoDao.DaoQuery();
        UserVIPInfoMapper.DaoQuery daoQuery = new UserVIPInfoMapper.DaoQuery();
        daoQuery.maxExpireDate = maxVIPExpireDate;
        daoQuery.minExpireDate = minVIPExpireDate;
        daoQuery.start = (page - 1) * pageSize;
@@ -55,7 +87,7 @@
    @Override
    public long countVIPUser(Date minVIPExpireDate, Date maxVIPExpireDate) {
        UserVIPInfoDao.DaoQuery daoQuery = new UserVIPInfoDao.DaoQuery();
        UserVIPInfoMapper.DaoQuery daoQuery = new UserVIPInfoMapper.DaoQuery();
        daoQuery.maxExpireDate = maxVIPExpireDate;
        daoQuery.minExpireDate = minVIPExpireDate;
        return userVIPInfoDao.count(daoQuery);