package com.taoke.autopay.service.impl;
|
|
import com.taoke.autopay.dao.PayMoneySettingMapper;
|
import com.taoke.autopay.entity.PayMoneySetting;
|
import com.taoke.autopay.exception.PayMoneySettingException;
|
import com.taoke.autopay.service.PayMoneySettingService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.util.Date;
|
import java.util.HashSet;
|
import java.util.List;
|
import java.util.Set;
|
|
/**
|
* @author hxh
|
* @title: PayMoneySettingServiceImpl
|
* @description:
|
* @date 2024/9/15 9:52
|
*/
|
@Service
|
public class PayMoneySettingServiceImpl implements PayMoneySettingService {
|
|
@Resource
|
private PayMoneySettingMapper payMoneySettingMapper;
|
|
@Override
|
public void addSetting(PayMoneySetting setting) throws PayMoneySettingException {
|
if (setting.getMoney() == null) {
|
throw new PayMoneySettingException("金额为空");
|
}
|
|
PayMoneySetting oldSetting = getSettingByMoney(setting.getMoney());
|
if (oldSetting != null) {
|
setting.setId(oldSetting.getId());
|
setting.setUpdateTime(new Date());
|
payMoneySettingMapper.updateByPrimaryKeySelective(setting);
|
} else {
|
if (setting.getCreateTime() == null) {
|
setting.setCreateTime(new Date());
|
}
|
payMoneySettingMapper.insertSelective(setting);
|
}
|
}
|
|
@Override
|
public PayMoneySetting selectByPrimaryKey(Long id) {
|
return payMoneySettingMapper.selectByPrimaryKey(id);
|
}
|
|
@Override
|
public void updateSelective(PayMoneySetting setting) {
|
if (setting.getUpdateTime() == null) {
|
setting.setUpdateTime(new Date());
|
}
|
payMoneySettingMapper.updateByPrimaryKeySelective(setting);
|
}
|
|
@Override
|
public void deleteByPrimaryKey(Long id) {
|
payMoneySettingMapper.deleteByPrimaryKey(id);
|
}
|
|
@Override
|
public List<PayMoneySetting> list(PayMoneySettingMapper.DaoQuery query, int page, int pageSize) {
|
query.start = (page - 1) * pageSize;
|
query.count = pageSize;
|
return payMoneySettingMapper.list(query);
|
}
|
|
@Override
|
public long count(PayMoneySettingMapper.DaoQuery query) {
|
return payMoneySettingMapper.count(query);
|
}
|
|
@Override
|
public PayMoneySetting getSettingByMoney(BigDecimal money) {
|
PayMoneySettingMapper.DaoQuery daoQuery = new PayMoneySettingMapper.DaoQuery();
|
daoQuery.money = money;
|
daoQuery.count = 1;
|
List<PayMoneySetting> list = payMoneySettingMapper.list(daoQuery);
|
if (list.size() > 0) {
|
return list.get(0);
|
}
|
return null;
|
}
|
|
@Override
|
public Set<String> listAllMoneyAsStr() {
|
List<PayMoneySetting> list = list(new PayMoneySettingMapper.DaoQuery(), 1, Integer.MAX_VALUE);
|
Set<String> sets = new HashSet<>();
|
for (PayMoneySetting s : list) {
|
sets.add(s.getMoney().setScale(2, RoundingMode.HALF_UP).toString());
|
}
|
return sets;
|
}
|
}
|