package com.taoke.autopay.service.impl.credit;
|
|
import com.taoke.autopay.dao.credit.CreditSettingMapper;
|
import com.taoke.autopay.entity.credit.CreditSetting;
|
import com.taoke.autopay.service.credit.CreditSettingService;
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.stereotype.Service;
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class CreditSettingServiceImpl implements CreditSettingService {
|
|
@Resource
|
private CreditSettingMapper creditSettingMapper;
|
|
@Override
|
public int addSetting(CreditSetting creditSetting) {
|
return creditSettingMapper.insertSelective(creditSetting);
|
}
|
|
@Override
|
public int updateSetting(CreditSetting creditSetting) {
|
return creditSettingMapper.updateByPrimaryKeySelective(creditSetting);
|
}
|
|
@Override
|
public List<CreditSetting> getSettingByType(CreditSetting.CreditSettingType type) {
|
return creditSettingMapper.selectByType(type);
|
}
|
|
@Override
|
public List<CreditSetting> listAllSettings() {
|
return creditSettingMapper.list(CreditSettingMapper.DaoQuery.builder()
|
.count(Integer.MAX_VALUE)
|
.build());
|
}
|
|
@Cacheable(value = "creditSettingCache", key = "'getCache-'+#type+'-'+#date")
|
@Override
|
public CreditSetting getSettingCacheByType(CreditSetting.CreditSettingType type, Date date) {
|
List<CreditSetting> settings = creditSettingMapper.list(CreditSettingMapper.DaoQuery.builder()
|
.type(type)
|
.maxStartTime(date)
|
.minEndTime(date)
|
.count(Integer.MAX_VALUE)
|
.build());
|
if(settings.isEmpty()){
|
return null;
|
}
|
return settings.get(0);
|
}
|
}
|