|
@ -1,17 +1,22 @@ |
|
|
package com.example.demo.serviceImpl; |
|
|
package com.example.demo.serviceImpl; |
|
|
|
|
|
|
|
|
|
|
|
import com.example.demo.domain.entity.User; |
|
|
import com.example.demo.domain.entity.UserGoldRecord; |
|
|
import com.example.demo.domain.entity.UserGoldRecord; |
|
|
import com.example.demo.domain.vo.ConsumeUser; |
|
|
import com.example.demo.domain.vo.ConsumeUser; |
|
|
import com.example.demo.domain.vo.Gold; |
|
|
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.ConsumeMapper; |
|
|
|
|
|
import com.example.demo.mapper.UserMapper; |
|
|
import com.example.demo.service.ConsumeService; |
|
|
import com.example.demo.service.ConsumeService; |
|
|
import com.github.pagehelper.PageHelper; |
|
|
import com.github.pagehelper.PageHelper; |
|
|
import com.github.pagehelper.PageInfo; |
|
|
import com.github.pagehelper.PageInfo; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDateTime; |
|
|
import java.time.LocalDateTime; |
|
|
import java.time.format.DateTimeFormatter; |
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
|
|
import java.util.Date; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Random; |
|
|
import java.util.Random; |
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
@ -31,6 +36,9 @@ public class ConsumeServiceImpl implements ConsumeService { |
|
|
@Autowired |
|
|
@Autowired |
|
|
private ConsumeMapper consumeMapper; |
|
|
private ConsumeMapper consumeMapper; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
private UserMapper userMapper; |
|
|
|
|
|
|
|
|
//消耗明细 |
|
|
//消耗明细 |
|
|
@Override |
|
|
@Override |
|
|
public PageInfo<ConsumeUser> selectAll(Integer pageNum, Integer pageSize) { |
|
|
public PageInfo<ConsumeUser> selectAll(Integer pageNum, Integer pageSize) { |
|
@ -84,7 +92,8 @@ public class ConsumeServiceImpl implements ConsumeService { |
|
|
|
|
|
|
|
|
//新增消耗 |
|
|
//新增消耗 |
|
|
@Override |
|
|
@Override |
|
|
public void add(UserGoldRecord userGoldRecord) { |
|
|
|
|
|
|
|
|
public void add(ConsumeUser consumeUser) { |
|
|
|
|
|
UserGoldRecord userGoldRecord = new UserGoldRecord(); |
|
|
|
|
|
|
|
|
// 获取当前时间戳部分 |
|
|
// 获取当前时间戳部分 |
|
|
String timestampPart = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); |
|
|
String timestampPart = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); |
|
@ -101,6 +110,48 @@ public class ConsumeServiceImpl implements ConsumeService { |
|
|
|
|
|
|
|
|
//订单号生成 |
|
|
//订单号生成 |
|
|
userGoldRecord.setOrderCode(timestampPart + counterPart + randomNum); |
|
|
userGoldRecord.setOrderCode(timestampPart + counterPart + randomNum); |
|
|
|
|
|
|
|
|
|
|
|
userGoldRecord.setJwcode(consumeUser.getJwcode()); |
|
|
|
|
|
userGoldRecord.setGoodsName(consumeUser.getGoodsName()); |
|
|
|
|
|
userGoldRecord.setSumGold(consumeUser.getSumGold()); |
|
|
|
|
|
userGoldRecord.setPermanentGold(consumeUser.getPermanentGold()); |
|
|
|
|
|
// 获取当前月份(1-12) |
|
|
|
|
|
int currentMonth = LocalDate.now().getMonthValue(); |
|
|
|
|
|
GoldUser gold = userMapper.selectGold(consumeUser.getJwcode().toString()); |
|
|
|
|
|
// 根据当前月份设置对应字段 |
|
|
|
|
|
if (currentMonth >= 1 && currentMonth <= 6) { |
|
|
|
|
|
// 1-6月:设置6月额度,12月保持默认值 |
|
|
|
|
|
if(consumeUser.getFreeGold()>gold.getNowFreeJune()) { |
|
|
|
|
|
userGoldRecord.setFreeJune(gold.getNowFreeJune()); |
|
|
|
|
|
userGoldRecord.setFreeDecember(consumeUser.getFreeGold()-gold.getNowFreeJune()); |
|
|
|
|
|
}else { |
|
|
|
|
|
userGoldRecord.setFreeJune(consumeUser.getFreeGold()); |
|
|
|
|
|
userGoldRecord.setFreeDecember(0); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
// 7-12月:设置12月额度,6月保持默认值 |
|
|
|
|
|
if(consumeUser.getFreeGold()>gold.getNowFreeDecember()) { |
|
|
|
|
|
userGoldRecord.setFreeDecember(gold.getNowFreeDecember()); |
|
|
|
|
|
userGoldRecord.setFreeJune(consumeUser.getFreeGold()-gold.getNowFreeDecember()); |
|
|
|
|
|
}else { |
|
|
|
|
|
userGoldRecord.setFreeDecember(consumeUser.getFreeGold()); |
|
|
|
|
|
userGoldRecord.setFreeJune(0); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
userGoldRecord.setTaskGold(consumeUser.getTaskGold()); |
|
|
|
|
|
userGoldRecord.setRemark(consumeUser.getRemark()); |
|
|
|
|
|
userGoldRecord.setType((byte) 1); |
|
|
|
|
|
userGoldRecord.setIsRefund((byte) 0); |
|
|
|
|
|
userGoldRecord.setAdminId(consumeUser.getAdminId()); |
|
|
|
|
|
userGoldRecord.setCreateTime(new Date()); |
|
|
|
|
|
userGoldRecord.setPayTime(new Date()); |
|
|
|
|
|
consumeMapper.add(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); |
|
|
|
|
|
userMapper.updateGold(user); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |