|
|
@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
@ -70,23 +71,23 @@ public class ConsumeServiceImpl implements ConsumeService { |
|
|
|
List<ConsumeUser> consumeUsers = consumeMapper.selectBy(consumeUser); |
|
|
|
|
|
|
|
// 初始化累加器 |
|
|
|
int permanentGoldSum = 0; |
|
|
|
int freeGoldSum = 0; |
|
|
|
int taskGoldSum = 0; |
|
|
|
BigDecimal permanentGoldSum = BigDecimal.valueOf(0); |
|
|
|
BigDecimal freeGoldSum = BigDecimal.valueOf(0); |
|
|
|
BigDecimal taskGoldSum = BigDecimal.valueOf(0); |
|
|
|
|
|
|
|
// 遍历消费记录并累加金币 |
|
|
|
for (ConsumeUser user : consumeUsers) { |
|
|
|
// 累加永久金币 |
|
|
|
if (user.getPermanentGold() != null) { |
|
|
|
permanentGoldSum += user.getPermanentGold(); |
|
|
|
permanentGoldSum = permanentGoldSum.add(user.getPermanentGold()); |
|
|
|
} |
|
|
|
// 累加免费金币 |
|
|
|
if (user.getFreeGold() != null) { |
|
|
|
freeGoldSum += user.getFreeGold(); |
|
|
|
freeGoldSum = freeGoldSum.add(user.getFreeGold()); |
|
|
|
} |
|
|
|
// 累加任务金币 |
|
|
|
if (user.getTaskGold() != null) { |
|
|
|
taskGoldSum += user.getTaskGold(); |
|
|
|
taskGoldSum = taskGoldSum.add(user.getTaskGold()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -119,7 +120,7 @@ public class ConsumeServiceImpl implements ConsumeService { |
|
|
|
if (consumeUser.getTaskGold() == null || consumeUser.getFreeGold() == null || consumeUser.getPermanentGold() == null) { |
|
|
|
return Result.error("金币数量不能为空"); |
|
|
|
} |
|
|
|
if (consumeUser.getTaskGold() < 0 || consumeUser.getFreeGold() < 0 || consumeUser.getPermanentGold() < 0) { |
|
|
|
if (consumeUser.getTaskGold().compareTo(BigDecimal.ZERO) < 0 || consumeUser.getFreeGold().compareTo(BigDecimal.ZERO) < 0 || consumeUser.getPermanentGold().compareTo(BigDecimal.ZERO) < 0) { |
|
|
|
return Result.error("金币不能为负数"); |
|
|
|
} |
|
|
|
if(consumeUser.getJwcode()<10000000||consumeUser.getJwcode()>99999999) |
|
|
@ -141,37 +142,38 @@ public class ConsumeServiceImpl implements ConsumeService { |
|
|
|
userGoldRecord.setOrderCode("XF" + timestampPart + randomNumber); |
|
|
|
userGoldRecord.setJwcode(consumeUser.getJwcode()); |
|
|
|
userGoldRecord.setGoodsName(consumeUser.getGoodsName()); |
|
|
|
userGoldRecord.setSumGold(-consumeUser.getSumGold()); |
|
|
|
userGoldRecord.setPermanentGold(-consumeUser.getPermanentGold()); |
|
|
|
userGoldRecord.setSumGold(-consumeUser.getSumGold().intValue()); |
|
|
|
userGoldRecord.setPermanentGold(-consumeUser.getPermanentGold().intValue()); |
|
|
|
// 获取当前月份(1-12) |
|
|
|
int currentMonth = LocalDate.now().getMonthValue(); |
|
|
|
GoldUser gold = userMapper.selectGold(consumeUser.getJwcode().toString()); |
|
|
|
if (consumeUser.getFreeGold() > (gold.getNowFreeDecember() + gold.getNowFreeJune()) || consumeUser.getPermanentGold() > gold.getNowPermanentGold() |
|
|
|
|| consumeUser.getTaskGold() > gold.getNowTaskGold()) { |
|
|
|
if (consumeUser.getFreeGold().compareTo(gold.getNowFreeDecember().add(gold.getNowFreeJune())) > 0 |
|
|
|
|| consumeUser.getPermanentGold().compareTo(gold.getNowPermanentGold()) > 0 |
|
|
|
|| consumeUser.getTaskGold().compareTo(gold.getNowTaskGold()) > 0) { |
|
|
|
return Result.error("金币数量不足"); |
|
|
|
} |
|
|
|
// 根据当前月份设置对应字段 |
|
|
|
if (currentMonth >= 1 && currentMonth <= 6) { |
|
|
|
// 1-6月:设置6月额度,12月保持默认值 |
|
|
|
if (consumeUser.getFreeGold() > gold.getNowFreeJune()) { |
|
|
|
userGoldRecord.setFreeJune(-gold.getNowFreeJune()); |
|
|
|
userGoldRecord.setFreeDecember(-(consumeUser.getFreeGold() - gold.getNowFreeJune())); |
|
|
|
if (consumeUser.getFreeGold().compareTo(gold.getNowFreeJune()) > 0) { |
|
|
|
userGoldRecord.setFreeJune(-gold.getNowFreeJune().intValue()); |
|
|
|
userGoldRecord.setFreeDecember(-(consumeUser.getFreeGold().subtract(gold.getNowFreeJune())).intValue()); |
|
|
|
} else { |
|
|
|
userGoldRecord.setFreeJune(-consumeUser.getFreeGold()); |
|
|
|
userGoldRecord.setFreeJune(-consumeUser.getFreeGold().intValue()); |
|
|
|
userGoldRecord.setFreeDecember(0); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 7-12月:设置12月额度,6月保持默认值 |
|
|
|
if (consumeUser.getFreeGold() > gold.getNowFreeDecember()) { |
|
|
|
userGoldRecord.setFreeDecember(-gold.getNowFreeDecember()); |
|
|
|
userGoldRecord.setFreeJune(-(consumeUser.getFreeGold() - gold.getNowFreeDecember())); |
|
|
|
if (consumeUser.getFreeGold().compareTo(gold.getNowFreeDecember()) > 0) { |
|
|
|
userGoldRecord.setFreeDecember(-gold.getNowFreeDecember().intValue()); |
|
|
|
userGoldRecord.setFreeJune(-(consumeUser.getFreeGold().subtract(gold.getNowFreeDecember())).intValue()); |
|
|
|
} else { |
|
|
|
userGoldRecord.setFreeDecember(-consumeUser.getFreeGold()); |
|
|
|
userGoldRecord.setFreeDecember(-consumeUser.getFreeGold().intValue()); |
|
|
|
userGoldRecord.setFreeJune(0); |
|
|
|
} |
|
|
|
} |
|
|
|
//信息输入 |
|
|
|
userGoldRecord.setTaskGold(-consumeUser.getTaskGold()); |
|
|
|
userGoldRecord.setTaskGold(-consumeUser.getTaskGold().intValue()); |
|
|
|
userGoldRecord.setRemark(consumeUser.getRemark()); |
|
|
|
userGoldRecord.setType((byte) 1); |
|
|
|
userGoldRecord.setIsRefund((byte) 0); |
|
|
@ -184,12 +186,12 @@ public class ConsumeServiceImpl implements ConsumeService { |
|
|
|
consumeMapper.updateUserGold(userGoldRecord); |
|
|
|
User user = new User(); |
|
|
|
user.setJwcode(userGoldRecord.getJwcode()); |
|
|
|
user.setCurrentPermanentGold(gold.getNowPermanentGold() - consumeUser.getPermanentGold()); |
|
|
|
user.setCurrentFreeJune(gold.getNowFreeJune() + userGoldRecord.getFreeJune()); |
|
|
|
user.setCurrentFreeDecember(gold.getNowFreeDecember() + userGoldRecord.getFreeDecember()); |
|
|
|
user.setCurrentTaskGold(gold.getNowTaskGold() - consumeUser.getTaskGold()); |
|
|
|
user.setConsumeNum(gold.getConsumeNum() + 1); |
|
|
|
user.setSumConsume(-(consumeUser.getPermanentGold() + consumeUser.getFreeGold() + consumeUser.getTaskGold())); |
|
|
|
user.setCurrentPermanentGold(gold.getNowPermanentGold().intValue() - consumeUser.getPermanentGold().intValue()); |
|
|
|
user.setCurrentFreeJune(gold.getNowFreeJune().intValue() + userGoldRecord.getFreeJune()); |
|
|
|
user.setCurrentFreeDecember(gold.getNowFreeDecember().intValue() + userGoldRecord.getFreeDecember()); |
|
|
|
user.setCurrentTaskGold(gold.getNowTaskGold().intValue() - consumeUser.getTaskGold().intValue()); |
|
|
|
user.setConsumeNum(gold.getConsumeNum().intValue() + 1); |
|
|
|
user.setSumConsume(-(consumeUser.getPermanentGold().intValue() + consumeUser.getFreeGold().intValue() + consumeUser.getTaskGold().intValue())); |
|
|
|
userMapper.updateGold(user); |
|
|
|
// if(consumeUser.getJwcode().equals(94226013)){ |
|
|
|
GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 65, |
|
|
|