|
|
@@ -46,7 +46,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
* @param userId 用户ID
|
|
|
* @return 可用基础积分
|
|
|
*/
|
|
|
- public int getUserBasicPoints(String userId) {
|
|
|
+ public double getUserBasicPoints(String userId) {
|
|
|
return pointDetailDao.sumUserPointByColumnId(userId, "1");
|
|
|
}
|
|
|
|
|
|
@@ -55,7 +55,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
* @param userId 用户ID
|
|
|
* @return 可用贡献积分
|
|
|
*/
|
|
|
- public int getUserContributionPoints(String userId) {
|
|
|
+ public double getUserContributionPoints(String userId) {
|
|
|
return pointDetailDao.sumUserPointByColumnId(userId, "2");
|
|
|
}
|
|
|
|
|
|
@@ -67,7 +67,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
@Transactional(readOnly = false)
|
|
|
public String executeBasicPointExchange(String userId) {
|
|
|
// 1. 获取用户当前可用基础积分
|
|
|
- int basicPoints = getUserBasicPoints(userId);
|
|
|
+ double basicPoints = getUserBasicPoints(userId);
|
|
|
|
|
|
// 2. 获取用户首次兑换标记
|
|
|
WorkKnowledgeBaseUserExchangeFlag flag = exchangeFlagDao.getByUserId(userId);
|
|
|
@@ -97,7 +97,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
if (stepValue == null) stepValue = 100;
|
|
|
|
|
|
// 4. 判断是否满足兑换条件并计算可兑换额度
|
|
|
- int exchangeablePoints = 0;
|
|
|
+ double exchangeablePoints = 0;
|
|
|
String ruleTypeName = "";
|
|
|
|
|
|
if (isFirstExchange) {
|
|
|
@@ -106,7 +106,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
return "基础积分不足" + firstThreshold + "分,无法进行首次兑换(当前" + basicPoints + "分)";
|
|
|
}
|
|
|
// 可兑换额度 = 向下取整百
|
|
|
- exchangeablePoints = (basicPoints / stepValue) * stepValue;
|
|
|
+ exchangeablePoints = Math.floor(basicPoints / stepValue) * stepValue;
|
|
|
ruleTypeName = "首次兑换";
|
|
|
} else {
|
|
|
// 非首次兑换:需要 >= 100
|
|
|
@@ -114,7 +114,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
return "基础积分不足" + nonFirstThreshold + "分,无法进行兑换(当前" + basicPoints + "分)";
|
|
|
}
|
|
|
// 可兑换额度 = 向下取整百
|
|
|
- exchangeablePoints = (basicPoints / stepValue) * stepValue;
|
|
|
+ exchangeablePoints = Math.floor(basicPoints / stepValue) * stepValue;
|
|
|
ruleTypeName = "非首次兑换";
|
|
|
}
|
|
|
|
|
|
@@ -150,7 +150,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
@Transactional(readOnly = false)
|
|
|
public String executeContributionPointExchange(String userId) {
|
|
|
// 1. 获取用户当前可用贡献积分
|
|
|
- int contributionPoints = getUserContributionPoints(userId);
|
|
|
+ double contributionPoints = getUserContributionPoints(userId);
|
|
|
|
|
|
if (contributionPoints <= 0) {
|
|
|
return "无可用贡献积分,无法兑换";
|
|
|
@@ -276,11 +276,11 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
if (stepValue == null) stepValue = 100;
|
|
|
|
|
|
// 记录每个用户的兑换量
|
|
|
- Map<String, Integer> exchangedBasicMap = new HashMap<>();
|
|
|
- Map<String, Integer> exchangedContribMap = new HashMap<>();
|
|
|
+ Map<String, Double> exchangedBasicMap = new HashMap<>();
|
|
|
+ Map<String, Double> exchangedContribMap = new HashMap<>();
|
|
|
// 记录每个用户的原始积分(兑换前的值,用于显示“可兑换积分”)
|
|
|
- Map<String, Integer> originalBasicMap = new HashMap<>();
|
|
|
- Map<String, Integer> originalContribMap = new HashMap<>();
|
|
|
+ Map<String, Double> originalBasicMap = new HashMap<>();
|
|
|
+ Map<String, Double> originalContribMap = new HashMap<>();
|
|
|
// 记录每个用户是否首次兑换(用于计算兑换金额)
|
|
|
Map<String, Boolean> isFirstExchangeMap = new HashMap<>();
|
|
|
// 记录参与兑换的用户ID(用于过滤导出列表)
|
|
|
@@ -297,7 +297,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
|
|
|
// === 基础积分兑换 ===
|
|
|
if ("basic".equals(exchangeType)) {
|
|
|
- int basicPoints = pointDetailDao.sumUserPointByColumnId(userId, "1");
|
|
|
+ double basicPoints = pointDetailDao.sumUserPointByColumnId(userId, "1");
|
|
|
// 记录原始基础积分(兑换前)
|
|
|
originalBasicMap.put(userId, basicPoints);
|
|
|
|
|
|
@@ -314,9 +314,9 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
boolean isFirstExchange = (flag.getIsFirstExchanged() == 0 || flag.getIsFirstExchanged() == null);
|
|
|
isFirstExchangeMap.put(userId, isFirstExchange);
|
|
|
int threshold = isFirstExchange ? firstThreshold : nonFirstThreshold;
|
|
|
- int basicExchanged = 0;
|
|
|
+ double basicExchanged = 0;
|
|
|
if (basicPoints >= threshold) {
|
|
|
- basicExchanged = (basicPoints / stepValue) * stepValue;
|
|
|
+ basicExchanged = Math.floor(basicPoints / stepValue) * stepValue;
|
|
|
if (basicExchanged > 0) {
|
|
|
WorkKnowledgeBasePointDetail detail = new WorkKnowledgeBasePointDetail();
|
|
|
detail.setId(com.jeeplus.common.utils.IdGen.uuid());
|
|
|
@@ -340,11 +340,11 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
|
|
|
// === 贡献积分兑换(全额清零) ===
|
|
|
if ("contribution".equals(exchangeType)) {
|
|
|
- int contributionPoints = pointDetailDao.sumUserPointByColumnId(userId, "2");
|
|
|
+ double contributionPoints = pointDetailDao.sumUserPointByColumnId(userId, "2");
|
|
|
// 记录原始贡献积分(兑换前)
|
|
|
originalContribMap.put(userId, contributionPoints);
|
|
|
|
|
|
- int contribExchanged = 0;
|
|
|
+ double contribExchanged = 0;
|
|
|
if (contributionPoints > 0) {
|
|
|
contribExchanged = contributionPoints;
|
|
|
WorkKnowledgeBasePointDetail cpDetail = new WorkKnowledgeBasePointDetail();
|
|
|
@@ -383,32 +383,32 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- int exBasic = exchangedBasicMap.containsKey(item.getUserId()) ? exchangedBasicMap.get(item.getUserId()) : 0;
|
|
|
- int exContrib = exchangedContribMap.containsKey(item.getUserId()) ? exchangedContribMap.get(item.getUserId()) : 0;
|
|
|
+ double exBasic = exchangedBasicMap.containsKey(item.getUserId()) ? exchangedBasicMap.get(item.getUserId()) : 0;
|
|
|
+ double exContrib = exchangedContribMap.containsKey(item.getUserId()) ? exchangedContribMap.get(item.getUserId()) : 0;
|
|
|
// basicPoint/contributionPoint 已是兑换后的剩余值(因为兑换记录的category_id已正确归类)
|
|
|
- int remainBasic = item.getBasicPoint() != null ? item.getBasicPoint() : 0;
|
|
|
- int remainContrib = item.getContributionPoint() != null ? item.getContributionPoint() : 0;
|
|
|
+ double remainBasic = item.getBasicPoint() != null ? item.getBasicPoint() : 0;
|
|
|
+ double remainContrib = item.getContributionPoint() != null ? item.getContributionPoint() : 0;
|
|
|
// 兑换前的原始积分(可兑换积分)
|
|
|
- int origBasic = originalBasicMap.containsKey(item.getUserId()) ? originalBasicMap.get(item.getUserId()) : 0;
|
|
|
- int origContrib = originalContribMap.containsKey(item.getUserId()) ? originalContribMap.get(item.getUserId()) : 0;
|
|
|
+ double origBasic = originalBasicMap.containsKey(item.getUserId()) ? originalBasicMap.get(item.getUserId()) : 0;
|
|
|
+ double origContrib = originalContribMap.containsKey(item.getUserId()) ? originalContribMap.get(item.getUserId()) : 0;
|
|
|
|
|
|
- item.setExchangedBasicPoint(exBasic);
|
|
|
- item.setExchangedContributionPoint(exContrib);
|
|
|
+ item.setExchangedBasicPoint((int) exBasic);
|
|
|
+ item.setExchangedContributionPoint((int) exContrib);
|
|
|
item.setRemainingBasicPoint(remainBasic);
|
|
|
- item.setRemainingContributionPoint(remainContrib);
|
|
|
+ item.setRemainingContributionPoint((int) remainContrib);
|
|
|
// 设置原始积分(可兑换积分)到新字段,不覆盖basicPoint/contributionPoint
|
|
|
item.setOriginalBasicPoint(origBasic);
|
|
|
- item.setOriginalContributionPoint(origContrib);
|
|
|
+ item.setOriginalContributionPoint((int) origContrib);
|
|
|
|
|
|
// 计算兑换金额
|
|
|
boolean isFirst = isFirstExchangeMap.containsKey(item.getUserId()) ? isFirstExchangeMap.get(item.getUserId()) : false;
|
|
|
- int exchangeAmt;
|
|
|
+ double exchangeAmt;
|
|
|
if ("basic".equals(exchangeType)) {
|
|
|
exchangeAmt = calculateExchangeAmount("basic", exBasic, isFirst);
|
|
|
} else {
|
|
|
exchangeAmt = calculateExchangeAmount("contribution", exContrib, false);
|
|
|
}
|
|
|
- item.setExchangeAmount(exchangeAmt);
|
|
|
+ item.setExchangeAmount((int) exchangeAmt);
|
|
|
|
|
|
exportList.add(item);
|
|
|
}
|
|
|
@@ -451,10 +451,10 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
if (stepValue == null) stepValue = 100;
|
|
|
|
|
|
// 记录每个用户的兑换量和原始积分
|
|
|
- Map<String, Integer> exchangedBasicMap = new HashMap<>();
|
|
|
- Map<String, Integer> exchangedContribMap = new HashMap<>();
|
|
|
- Map<String, Integer> originalBasicMap = new HashMap<>();
|
|
|
- Map<String, Integer> originalContribMap = new HashMap<>();
|
|
|
+ Map<String, Double> exchangedBasicMap = new HashMap<>();
|
|
|
+ Map<String, Double> exchangedContribMap = new HashMap<>();
|
|
|
+ Map<String, Double> originalBasicMap = new HashMap<>();
|
|
|
+ Map<String, Double> originalContribMap = new HashMap<>();
|
|
|
Map<String, Boolean> isFirstExchangeMap = new HashMap<>();
|
|
|
// 记录参与兑换的用户ID
|
|
|
java.util.Set<String> exchangedUserIds = new java.util.HashSet<>();
|
|
|
@@ -469,7 +469,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
}
|
|
|
|
|
|
// === 基础积分兑换 ===
|
|
|
- int basicPoints = pointDetailDao.sumUserPointByColumnId(userId, "1");
|
|
|
+ double basicPoints = pointDetailDao.sumUserPointByColumnId(userId, "1");
|
|
|
originalBasicMap.put(userId, basicPoints);
|
|
|
|
|
|
WorkKnowledgeBaseUserExchangeFlag flag = exchangeFlagDao.getByUserId(userId);
|
|
|
@@ -485,9 +485,9 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
boolean isFirstExchange = (flag.getIsFirstExchanged() == 0 || flag.getIsFirstExchanged() == null);
|
|
|
isFirstExchangeMap.put(userId, isFirstExchange);
|
|
|
int threshold = isFirstExchange ? firstThreshold : nonFirstThreshold;
|
|
|
- int basicExchanged = 0;
|
|
|
+ double basicExchanged = 0;
|
|
|
if (basicPoints >= threshold) {
|
|
|
- basicExchanged = (basicPoints / stepValue) * stepValue;
|
|
|
+ basicExchanged = Math.floor(basicPoints / stepValue) * stepValue;
|
|
|
if (basicExchanged > 0) {
|
|
|
WorkKnowledgeBasePointDetail detail = new WorkKnowledgeBasePointDetail();
|
|
|
detail.setId(com.jeeplus.common.utils.IdGen.uuid());
|
|
|
@@ -508,10 +508,10 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
exchangedBasicMap.put(userId, basicExchanged);
|
|
|
|
|
|
// === 贡献积分兑换(全额清零) ===
|
|
|
- int contributionPoints = pointDetailDao.sumUserPointByColumnId(userId, "2");
|
|
|
+ double contributionPoints = pointDetailDao.sumUserPointByColumnId(userId, "2");
|
|
|
originalContribMap.put(userId, contributionPoints);
|
|
|
|
|
|
- int contribExchanged = 0;
|
|
|
+ double contribExchanged = 0;
|
|
|
if (contributionPoints > 0) {
|
|
|
contribExchanged = contributionPoints;
|
|
|
WorkKnowledgeBasePointDetail cpDetail = new WorkKnowledgeBasePointDetail();
|
|
|
@@ -544,23 +544,23 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- int exBasic = exchangedBasicMap.containsKey(item.getUserId()) ? exchangedBasicMap.get(item.getUserId()) : 0;
|
|
|
- int exContrib = exchangedContribMap.containsKey(item.getUserId()) ? exchangedContribMap.get(item.getUserId()) : 0;
|
|
|
- int origBasic = originalBasicMap.containsKey(item.getUserId()) ? originalBasicMap.get(item.getUserId()) : 0;
|
|
|
- int origContrib = originalContribMap.containsKey(item.getUserId()) ? originalContribMap.get(item.getUserId()) : 0;
|
|
|
+ double exBasic = exchangedBasicMap.containsKey(item.getUserId()) ? exchangedBasicMap.get(item.getUserId()) : 0;
|
|
|
+ double exContrib = exchangedContribMap.containsKey(item.getUserId()) ? exchangedContribMap.get(item.getUserId()) : 0;
|
|
|
+ double origBasic = originalBasicMap.containsKey(item.getUserId()) ? originalBasicMap.get(item.getUserId()) : 0;
|
|
|
+ double origContrib = originalContribMap.containsKey(item.getUserId()) ? originalContribMap.get(item.getUserId()) : 0;
|
|
|
|
|
|
- item.setExchangedBasicPoint(exBasic);
|
|
|
- item.setExchangedContributionPoint(exContrib);
|
|
|
+ item.setExchangedBasicPoint((int) exBasic);
|
|
|
+ item.setExchangedContributionPoint((int) exContrib);
|
|
|
item.setRemainingBasicPoint(origBasic - exBasic);
|
|
|
- item.setRemainingContributionPoint(origContrib - exContrib);
|
|
|
+ item.setRemainingContributionPoint((int) (origContrib - exContrib));
|
|
|
item.setOriginalBasicPoint(origBasic);
|
|
|
- item.setOriginalContributionPoint(origContrib);
|
|
|
+ item.setOriginalContributionPoint((int) origContrib);
|
|
|
|
|
|
// 兑换金额 = 基础积分兑换金额 + 贡献积分兑换金额
|
|
|
boolean isFirst = isFirstExchangeMap.containsKey(item.getUserId()) ? isFirstExchangeMap.get(item.getUserId()) : false;
|
|
|
- int basicAmt = calculateExchangeAmount("basic", exBasic, isFirst);
|
|
|
- int contribAmt = calculateExchangeAmount("contribution", exContrib, false);
|
|
|
- item.setExchangeAmount(basicAmt + contribAmt);
|
|
|
+ double basicAmt = calculateExchangeAmount("basic", exBasic, isFirst);
|
|
|
+ double contribAmt = calculateExchangeAmount("contribution", exContrib, false);
|
|
|
+ item.setExchangeAmount((int) (basicAmt + contribAmt));
|
|
|
|
|
|
exportList.add(item);
|
|
|
}
|
|
|
@@ -573,9 +573,9 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
if (deptCmp != 0) {
|
|
|
return deptCmp;
|
|
|
}
|
|
|
- int amtA = a.getExchangeAmount() != null ? a.getExchangeAmount() : 0;
|
|
|
- int amtB = b.getExchangeAmount() != null ? b.getExchangeAmount() : 0;
|
|
|
- return Integer.compare(amtB, amtA);
|
|
|
+ double amtA = a.getExchangeAmount() != null ? a.getExchangeAmount() : 0;
|
|
|
+ double amtB = b.getExchangeAmount() != null ? b.getExchangeAmount() : 0;
|
|
|
+ return Double.compare(amtB, amtA);
|
|
|
});
|
|
|
|
|
|
return exportList;
|
|
|
@@ -666,10 +666,10 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
|
|
|
// 记录参与预览的用户ID
|
|
|
java.util.Set<String> previewUserIds = new java.util.HashSet<>();
|
|
|
- Map<String, Integer> previewExchangedBasicMap = new HashMap<>();
|
|
|
- Map<String, Integer> previewExchangedContribMap = new HashMap<>();
|
|
|
- Map<String, Integer> previewOriginalBasicMap = new HashMap<>();
|
|
|
- Map<String, Integer> previewOriginalContribMap = new HashMap<>();
|
|
|
+ Map<String, Double> previewExchangedBasicMap = new HashMap<>();
|
|
|
+ Map<String, Double> previewExchangedContribMap = new HashMap<>();
|
|
|
+ Map<String, Double> previewOriginalBasicMap = new HashMap<>();
|
|
|
+ Map<String, Double> previewOriginalContribMap = new HashMap<>();
|
|
|
// 记录每个用户是否首次兑换(用于计算兑换金额)
|
|
|
Map<String, Boolean> previewIsFirstExchangeMap = new HashMap<>();
|
|
|
|
|
|
@@ -677,16 +677,16 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
for (String userId : userIdList) {
|
|
|
try {
|
|
|
if ("basic".equals(exchangeType)) {
|
|
|
- int basicPoints = pointDetailDao.sumUserPointByColumnId(userId, "1");
|
|
|
+ double basicPoints = pointDetailDao.sumUserPointByColumnId(userId, "1");
|
|
|
previewOriginalBasicMap.put(userId, basicPoints);
|
|
|
|
|
|
WorkKnowledgeBaseUserExchangeFlag flag = exchangeFlagDao.getByUserId(userId);
|
|
|
boolean isFirstExchange = (flag == null || flag.getIsFirstExchanged() == 0 || flag.getIsFirstExchanged() == null);
|
|
|
previewIsFirstExchangeMap.put(userId, isFirstExchange);
|
|
|
int threshold = isFirstExchange ? firstThreshold : nonFirstThreshold;
|
|
|
- int basicExchanged = 0;
|
|
|
+ double basicExchanged = 0;
|
|
|
if (basicPoints >= threshold) {
|
|
|
- basicExchanged = (basicPoints / stepValue) * stepValue;
|
|
|
+ basicExchanged = Math.floor(basicPoints / stepValue) * stepValue;
|
|
|
if (basicExchanged > 0) {
|
|
|
previewUserIds.add(userId);
|
|
|
}
|
|
|
@@ -695,7 +695,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
}
|
|
|
|
|
|
if ("contribution".equals(exchangeType)) {
|
|
|
- int contributionPoints = pointDetailDao.sumUserPointByColumnId(userId, "2");
|
|
|
+ double contributionPoints = pointDetailDao.sumUserPointByColumnId(userId, "2");
|
|
|
previewOriginalContribMap.put(userId, contributionPoints);
|
|
|
|
|
|
if (contributionPoints > 0) {
|
|
|
@@ -722,43 +722,43 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- int exBasic = previewExchangedBasicMap.containsKey(item.getUserId()) ? previewExchangedBasicMap.get(item.getUserId()) : 0;
|
|
|
- int exContrib = previewExchangedContribMap.containsKey(item.getUserId()) ? previewExchangedContribMap.get(item.getUserId()) : 0;
|
|
|
- int currentBasic = item.getBasicPoint() != null ? item.getBasicPoint() : 0;
|
|
|
- int currentContrib = item.getContributionPoint() != null ? item.getContributionPoint() : 0;
|
|
|
- int origBasic = previewOriginalBasicMap.containsKey(item.getUserId()) ? previewOriginalBasicMap.get(item.getUserId()) : 0;
|
|
|
- int origContrib = previewOriginalContribMap.containsKey(item.getUserId()) ? previewOriginalContribMap.get(item.getUserId()) : 0;
|
|
|
+ double exBasic = previewExchangedBasicMap.containsKey(item.getUserId()) ? previewExchangedBasicMap.get(item.getUserId()) : 0;
|
|
|
+ double exContrib = previewExchangedContribMap.containsKey(item.getUserId()) ? previewExchangedContribMap.get(item.getUserId()) : 0;
|
|
|
+ double currentBasic = item.getBasicPoint() != null ? item.getBasicPoint() : 0;
|
|
|
+ double currentContrib = item.getContributionPoint() != null ? item.getContributionPoint() : 0;
|
|
|
+ double origBasic = previewOriginalBasicMap.containsKey(item.getUserId()) ? previewOriginalBasicMap.get(item.getUserId()) : 0;
|
|
|
+ double origContrib = previewOriginalContribMap.containsKey(item.getUserId()) ? previewOriginalContribMap.get(item.getUserId()) : 0;
|
|
|
|
|
|
- item.setExchangedBasicPoint(exBasic);
|
|
|
- item.setExchangedContributionPoint(exContrib);
|
|
|
+ item.setExchangedBasicPoint((int) exBasic);
|
|
|
+ item.setExchangedContributionPoint((int) exContrib);
|
|
|
item.setOriginalBasicPoint(origBasic);
|
|
|
- item.setOriginalContributionPoint(origContrib);
|
|
|
+ item.setOriginalContributionPoint((int) origContrib);
|
|
|
// 预览时的剩余 = 当前积分 - 预计兑换量
|
|
|
item.setRemainingBasicPoint(currentBasic - exBasic);
|
|
|
- item.setRemainingContributionPoint(currentContrib - exContrib);
|
|
|
+ item.setRemainingContributionPoint((int) (currentContrib - exContrib));
|
|
|
|
|
|
// 计算兑换金额
|
|
|
boolean isFirst = previewIsFirstExchangeMap.containsKey(item.getUserId()) ? previewIsFirstExchangeMap.get(item.getUserId()) : false;
|
|
|
- int exchangeAmt;
|
|
|
+ double exchangeAmt;
|
|
|
if ("basic".equals(exchangeType)) {
|
|
|
exchangeAmt = calculateExchangeAmount("basic", exBasic, isFirst);
|
|
|
} else {
|
|
|
exchangeAmt = calculateExchangeAmount("contribution", exContrib, false);
|
|
|
}
|
|
|
- item.setExchangeAmount(exchangeAmt);
|
|
|
+ item.setExchangeAmount((int) exchangeAmt);
|
|
|
|
|
|
previewList.add(item);
|
|
|
}
|
|
|
|
|
|
// 按可兑换积分额度倒序排序
|
|
|
previewList.sort((a, b) -> {
|
|
|
- int pointsA = "basic".equals(exchangeType)
|
|
|
+ double pointsA = "basic".equals(exchangeType)
|
|
|
? (a.getOriginalBasicPoint() != null ? a.getOriginalBasicPoint() : 0)
|
|
|
: (a.getOriginalContributionPoint() != null ? a.getOriginalContributionPoint() : 0);
|
|
|
- int pointsB = "basic".equals(exchangeType)
|
|
|
+ double pointsB = "basic".equals(exchangeType)
|
|
|
? (b.getOriginalBasicPoint() != null ? b.getOriginalBasicPoint() : 0)
|
|
|
: (b.getOriginalContributionPoint() != null ? b.getOriginalContributionPoint() : 0);
|
|
|
- return Integer.compare(pointsB, pointsA);
|
|
|
+ return Double.compare(pointsB, pointsA);
|
|
|
});
|
|
|
|
|
|
return previewList;
|
|
|
@@ -832,7 +832,7 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
* 基础积分首次兑换:前300积分给500元,超出部分每100积分给100元
|
|
|
* 基础积分非首次兑换:每100积分给100元
|
|
|
*/
|
|
|
- public int calculateExchangeAmount(String exchangeType, int exchangedPoints, boolean isFirstExchange) {
|
|
|
+ public double calculateExchangeAmount(String exchangeType, double exchangedPoints, boolean isFirstExchange) {
|
|
|
if (exchangedPoints <= 0) {
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -843,15 +843,15 @@ public class WorkKnowledgeBasePointExchangeService extends CrudService<WorkKnowl
|
|
|
// 基础积分
|
|
|
if (isFirstExchange) {
|
|
|
// 首次兑换:前300积分给500元,超出部分每100积分给100元
|
|
|
- int amount = 500;
|
|
|
- int remaining = exchangedPoints - 300;
|
|
|
+ double amount = 500;
|
|
|
+ double remaining = exchangedPoints - 300;
|
|
|
if (remaining > 0) {
|
|
|
- amount += (remaining / 100) * 100;
|
|
|
+ amount += Math.floor(remaining / 100) * 100;
|
|
|
}
|
|
|
return amount;
|
|
|
} else {
|
|
|
// 非首次兑换:每100积分给100元
|
|
|
- return (exchangedPoints / 100) * 100;
|
|
|
+ return Math.floor(exchangedPoints / 100) * 100;
|
|
|
}
|
|
|
}
|
|
|
}
|