src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/dapp/vo/ApiDirectInfoVo.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/dapp/vo/ApidirectNumVo.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/dapp/DappStorageMapper.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java
@@ -35,4 +35,6 @@ List<DappStorage> selectListGroupByMemberId(); List<DappStorage> selectSumByAmountDescFiveToFive(@Param("startTime")DateTime startTime, @Param("offset")int offset,@Param("count")int count); DappStorage selectNewRecordByRefMemberId(@Param("memberId")Long memberId); } src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -869,10 +869,24 @@ ApiDirectInfoVo apiDirectInfoVo = new ApiDirectInfoVo(); apiDirectInfoVo.setAddress(dappMemberDao.selectById(memberId).getAddress()); apiDirectInfoVo.setAmount(directCnt); DappStorage dappStorage = dappStorageMapper.selectNewRecordByRefMemberId(memberId); apiDirectInfoVo.setCreateTime(dappStorage.getCreateTime()); apiDirectInfoVos.add(apiDirectInfoVo); } } if(CollUtil.isNotEmpty(apiDirectInfoVos)){ apiDirectInfoVos = apiDirectInfoVos.stream() .sorted((a, b) -> { // 先按照amount从大到小排序 int compare = b.getAmount().compareTo(a.getAmount()); if (compare != 0) { return compare; } // 如果amount相同,则按照createTime从小到大排序 return a.getCreateTime().compareTo(b.getCreateTime()); }) .collect(Collectors.toList()); } return apiDirectInfoVos; src/main/java/cc/mrbird/febs/dapp/vo/ApiDirectInfoVo.java
@@ -1,10 +1,12 @@ package cc.mrbird.febs.dapp.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @Data @ApiModel(value = "ApiDirectInfoVo", description = "排名") @@ -15,4 +17,7 @@ @ApiModelProperty(value = "直推人数") private BigDecimal amount; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; } src/main/java/cc/mrbird/febs/dapp/vo/ApidirectNumVo.java
New file @@ -0,0 +1,20 @@ package cc.mrbird.febs.dapp.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @Data @ApiModel(value = "ApidirectNumVo", description = "排名") public class ApidirectNumVo { private Long memberId; private BigDecimal directCnt; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; } src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
@@ -11,6 +11,7 @@ import cc.mrbird.febs.dapp.mapper.DappStorageMapper; import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.dapp.vo.ApidirectNumVo; import cc.mrbird.febs.rabbit.producer.ChainProducer; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; @@ -319,11 +320,36 @@ .limit(10) .collect(Collectors.toList()); int startNum = 1; List<ApidirectNumVo> apiDirectInfoVos = new ArrayList<>(); for (Map.Entry<Long, BigDecimal> entry : topTenEntries) { Long memberId = entry.getKey(); BigDecimal directAchieve = entry.getValue(); BigDecimal directCnt = entry.getValue(); ApidirectNumVo apiDirectInfoVo = new ApidirectNumVo(); apiDirectInfoVo.setMemberId(memberId); apiDirectInfoVo.setDirectCnt(directCnt); DappStorage dappStorage = dappStorageMapper.selectNewRecordByRefMemberId(memberId); apiDirectInfoVo.setCreateTime(dappStorage.getCreateTime()); apiDirectInfoVos.add(apiDirectInfoVo); } if(CollUtil.isNotEmpty(apiDirectInfoVos)){ apiDirectInfoVos = apiDirectInfoVos.stream() .sorted((a, b) -> { // 先按照amount从大到小排序 int compare = b.getDirectCnt().compareTo(a.getDirectCnt()); if (compare != 0) { return compare; } // 如果amount相同,则按照createTime从小到大排序 return a.getCreateTime().compareTo(b.getCreateTime()); }) .collect(Collectors.toList()); } int startNum = 1; for (ApidirectNumVo numVo : apiDirectInfoVos) { Long memberId = numVo.getMemberId(); BigDecimal directAchieve = numVo.getDirectCnt(); //第一名 if(startNum == 1){ BigDecimal bigDecimal = directTotal.multiply(new BigDecimal("0.4")).setScale(2, BigDecimal.ROUND_DOWN); src/main/resources/mapper/dapp/DappStorageMapper.xml
@@ -158,4 +158,31 @@ </select> <select id="selectNewRecordByRefMemberId" resultType="cc.mrbird.febs.dapp.entity.DappStorage"> SELECT * FROM dapp_storage WHERE member_id IN ( SELECT id FROM dapp_member WHERE referer_id = ( SELECT invite_id FROM dapp_member WHERE member_id = #{memberId} ) ) ORDER BY create_time DESC LIMIT 1 </select> </mapper>