|
@@ -36,14 +36,14 @@ import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
-* @author snows
|
|
|
-* @description 针对表【sys_dept_recharge(积分充值表)】的数据库操作Service实现
|
|
|
-* @createDate 2023-06-12 10:47:24
|
|
|
-*/
|
|
|
+ * @author snows
|
|
|
+ * @description 针对表【sys_dept_recharge(积分充值表)】的数据库操作Service实现
|
|
|
+ * @createDate 2023-06-12 10:47:24
|
|
|
+ */
|
|
|
@Service
|
|
|
@AllArgsConstructor
|
|
|
public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMapper, SysDeptRecharge>
|
|
|
- implements SysDeptRechargeService {
|
|
|
+ implements SysDeptRechargeService {
|
|
|
|
|
|
private final SysDeptService deptService;
|
|
|
private final SysDeptRechargeRecordService deptRechargeRecordService;
|
|
@@ -51,7 +51,7 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
|
|
|
/**
|
|
|
* 分页查询
|
|
|
*
|
|
|
- * @param page 分页参数
|
|
|
+ * @param page 分页参数
|
|
|
* @param toPage 条件参数
|
|
|
* @return 分页结果
|
|
|
*/
|
|
@@ -86,14 +86,14 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
|
|
|
List<SysDeptRechargeRecord> usedRecords = deptRechargeRecordService.list(Wrappers.<SysDeptRechargeRecord>lambdaQuery()
|
|
|
.eq(SysDeptRechargeRecord::getType, RechargeRecordType.RECHARGE)
|
|
|
.eq(SysDeptRechargeRecord::getDelFlag, DelEnum.NOT_DEL.getVal()));
|
|
|
- Map<Integer, Integer> usedRecordsMap = new HashMap<>();
|
|
|
+ Map<Integer, Long> usedRecordsMap = new HashMap<>();
|
|
|
if (CollUtil.isNotEmpty(usedRecords)) {
|
|
|
usedRecordsMap = usedRecords.stream()
|
|
|
- .collect(Collectors.groupingBy(SysDeptRechargeRecord::getDeptId, Collectors.summingInt(SysDeptRechargeRecord::getChangeScore)));
|
|
|
+ .collect(Collectors.groupingBy(SysDeptRechargeRecord::getDeptId, Collectors.summingLong(SysDeptRechargeRecord::getChangeScore)));
|
|
|
}
|
|
|
|
|
|
Map<Integer, SysDeptRecharge> finalDeptRechargeMap = deptRechargeMap;
|
|
|
- Map<Integer, Integer> finalUsedRecordsMap = usedRecordsMap;
|
|
|
+ Map<Integer, Long> finalUsedRecordsMap = usedRecordsMap;
|
|
|
deptPage.getRecords().forEach(sysDept -> {
|
|
|
SysDeptRechargeVO deptRechargeVO = new SysDeptRechargeVO();
|
|
|
deptRechargeVO.setDeptName(sysDept.getName());
|
|
@@ -118,9 +118,9 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
|
|
|
deptRechargeVO.setOverdrawScore(deptRecharge.getOverdrawScore());
|
|
|
deptRechargeVO.setPermissions(deptRecharge.getPermissions());
|
|
|
// 根据充值记录计算
|
|
|
- Integer totalRechargeScore = finalUsedRecordsMap.getOrDefault(sysDept.getDeptId(), 0);
|
|
|
+ Long totalRechargeScore = finalUsedRecordsMap.getOrDefault(sysDept.getDeptId(), 0L);
|
|
|
deptRechargeVO.setTotalRechargeScore(totalRechargeScore);
|
|
|
- deptRechargeVO.setTotalInvoiceScore(0);
|
|
|
+ deptRechargeVO.setTotalInvoiceScore(0L);
|
|
|
deptRechargeVO.setTotalInvoiceAmount(BigDecimal.ZERO);
|
|
|
}
|
|
|
rechargeVOList.add(deptRechargeVO);
|
|
@@ -150,23 +150,24 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
|
|
|
SysDeptRecharge deptRecharge = this.getOne(Wrappers.<SysDeptRecharge>lambdaQuery()
|
|
|
.eq(SysDeptRecharge::getDeptId, toRecharge.getDeptId())
|
|
|
.eq(SysDeptRecharge::getDelFlag, DelEnum.NOT_DEL.getVal()));
|
|
|
- BigDecimal currentBalance = null;
|
|
|
- int currentScore = 0;
|
|
|
+ long currentScore;
|
|
|
if (deptRecharge == null) {
|
|
|
throw new RuntimeException("费率不存在");
|
|
|
} else {
|
|
|
// 基于 充值金额 计算
|
|
|
// 充值积分 = 充值金额 / (服务费率/100)
|
|
|
- BigDecimal rechargeScore = toRecharge.getRechargeAmount().divide(deptRecharge.getServiceCharge()
|
|
|
- .divide(new BigDecimal("100.00")), RoundingMode.HALF_EVEN)
|
|
|
- .setScale(0, RoundingMode.UP);
|
|
|
+ BigDecimal rechargeScore =
|
|
|
+ toRecharge.getRechargeAmount()
|
|
|
+ .divide(deptRecharge.getServiceCharge().divide(new BigDecimal("100.00")), RoundingMode.HALF_EVEN)
|
|
|
+ .setScale(0, RoundingMode.UP);
|
|
|
|
|
|
- if (!toRecharge.getRechargeScore().equals(rechargeScore.intValue())) {
|
|
|
+
|
|
|
+ if (!toRecharge.getRechargeScore().equals(rechargeScore.longValue())) {
|
|
|
throw new RuntimeException("充值积分不正确");
|
|
|
}
|
|
|
// 计算更新金额
|
|
|
// currentBalance = toRecharge.getRechargeAmount().add(deptRecharge.getBalance());
|
|
|
- currentScore = rechargeScore.intValue() + deptRecharge.getScore();
|
|
|
+ currentScore = rechargeScore.longValue() + deptRecharge.getScore();
|
|
|
// 更新
|
|
|
boolean update = this.update(Wrappers.<SysDeptRecharge>lambdaUpdate()
|
|
|
.eq(SysDeptRecharge::getId, deptRecharge.getId())
|
|
@@ -217,8 +218,7 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
|
|
|
overdrawAmount = BigDecimal.valueOf(toConfig.getOverdrawScore()).multiply(toConfig.getServiceCharge().divide(new BigDecimal("100.00")))
|
|
|
.setScale(2, RoundingMode.HALF_EVEN);
|
|
|
} else {
|
|
|
- overdrawAmount = BigDecimal.ZERO;
|
|
|
- toConfig.setOverdrawScore(0);
|
|
|
+ toConfig.setOverdrawScore(0L);
|
|
|
}
|
|
|
|
|
|
if (deptRecharge == null) {
|
|
@@ -229,7 +229,7 @@ public class SysDeptRechargeServiceImpl extends ServiceImpl<SysDeptRechargeMappe
|
|
|
deptRecharge.setOverdrawScore(toConfig.getOverdrawScore());
|
|
|
// deptRecharge.setOverdrawAmount(overdrawAmount);
|
|
|
deptRecharge.setPermissions(toConfig.getPermissions());
|
|
|
- deptRecharge.setScore(0);
|
|
|
+ deptRecharge.setScore(0L);
|
|
|
// deptRecharge.setBalance(BigDecimal.ZERO);
|
|
|
deptRecharge.setCreateUser(operator);
|
|
|
this.save(deptRecharge);
|