Commit d4d97cc7 authored by licc's avatar licc

最大进步奖 最终优化2

parent 77cea5c4
package cn.wisenergy.model.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @author 86187
* @ Description: 当月总收益Vo
* @ Author : 86187
* @ Date : 2021/3/2 10:59
*/
@Data
@ApiModel("MonthTotalRevenueVo")
public class MonthTotalRevenueVo {
private String userId;
private Double balance;
}
...@@ -52,4 +52,6 @@ public interface AccountService { ...@@ -52,4 +52,6 @@ public interface AccountService {
* @return true or false * @return true or false
*/ */
R<Boolean> progressPrizeCount(); R<Boolean> progressPrizeCount();
} }
...@@ -399,21 +399,28 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo> ...@@ -399,21 +399,28 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
//要更新的账户列表 //要更新的账户列表
List<AccountInfo> updateAccountList = new ArrayList<>(); List<AccountInfo> updateAccountList = new ArrayList<>();
for (TeamPerformanceSortVo sortVo : listVo) { BigDecimal sum = new BigDecimal(0);
String userId = sortVo.getTeamPerformance().getUserId(); for (int i = 0; i < listVo.size(); i++) {
Integer userLevel = sortVo.getTeamPerformance().getUserLevel(); String userId = listVo.get(i).getTeamPerformance().getUserId();
Integer userLevel = listVo.get(i).getTeamPerformance().getUserLevel();
//获取最大进步奖 百分比 //获取最大进步奖 百分比
MemberPercent memberPercent = memberPercentMapper.getByLevelAndType(userLevel, 3); MemberPercent memberPercent = memberPercentMapper.getByLevelAndType(userLevel, 3);
//计算收益 //计算收益
double userTeamPerformance = sortVo.getTeamPerformance().getMonthTeamPerformance().doubleValue(); double userTeamPerformance = listVo.get(i).getTeamPerformance().getMonthTeamPerformance().doubleValue();
double percent = memberPercent.getPercent().doubleValue(); double percent = memberPercent.getPercent().doubleValue();
double income = number * 3980 * percent * userTeamPerformance / total; double income = number * 3980 * percent * userTeamPerformance / total;
//获取账户信息 //获取账户信息
AccountInfo accountInfo = accountMapper.getByUserId(userId); AccountInfo accountInfo = accountMapper.getByUserId(userId);
BigDecimal bigDecimal = accountInfo.getEarningsMonth().add(new BigDecimal(income)); BigDecimal bigDecimal;
if (i == listVo.size() - 1) {
bigDecimal = new BigDecimal(total).subtract(sum);
} else {
bigDecimal = accountInfo.getEarningsMonth().add(new BigDecimal(income));
sum = sum.add(new BigDecimal(income));
}
accountInfo.setEarningsMonth(bigDecimal); accountInfo.setEarningsMonth(bigDecimal);
updateAccountList.add(accountInfo); updateAccountList.add(accountInfo);
} }
...@@ -424,6 +431,6 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo> ...@@ -424,6 +431,6 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
List<ProgressPrize> prizes = progressPrizeMapper.getByYearMonth(yearMonth); List<ProgressPrize> prizes = progressPrizeMapper.getByYearMonth(yearMonth);
//修改或保存最大进步奖信息 //修改或保存最大进步奖信息
accountManager.updateOrSavePrize(listVo,updateAccountList,prizes); accountManager.updateOrSavePrize(listVo, updateAccountList, prizes);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment