KKSU
2024-07-22 4575ae4dbedd7046f4b7aeeb79b49059676e2201
逻辑
5 files modified
1 files added
102 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/ApiDirectInfoVo.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/ApidirectNumVo.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java 32 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappStorageMapper.xml 27 ●●●●● 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>