新版仿ok交易所-后端
1
zj
2026-06-03 1004f3d16011f69894196bfd180ea539b76ba4e7
trading-order-service/src/main/java/com/yami/trading/service/user/impl/UserDataServiceImpl.java
@@ -827,12 +827,12 @@
            return;
        }
        User party = userService.cacheUserBy(order.getPartyId().toString());
        User party = resolveUser(order.getPartyId());
        UserData userData = new UserData();
        userData.setRolename(party.getRoleName());
        userData.setRolename(resolveRoleName(party));
        userData.setCreateTime(new Date());
        userData.setUserId(order.getPartyId().toString());
        userData.setUserId(order.getPartyId());
        userData.setFinanceAmount(order.getAmount());
        userData.setFinanceIncome(order.getProfit());
        save(userData);
@@ -863,23 +863,19 @@
     */
    @Override
    public void saveMinerBuy(MinerOrder order) {
        User user = this.userService.cacheUserBy(order.getPartyId().toString());
//        user.getRoles();
        boolean guest = false;
//        for (Role role : user.getRoles()) {
//            if (Constants.SECURITY_ROLE_GUEST.equals(role.getRoleName())||Constants.SECURITY_ROLE_TEST.equals(role.getRoleName())) {
//                guest = true;
//            }
//        }
        if (guest) {
        String partyId = order.getPartyId();
        if (StringUtils.isBlank(partyId)) {
            return;
        }
        User user = resolveUser(partyId);
        if (isGuestUser(user)) {
            return;
        }
        UserData userData = new UserData();
        userData.setRolename(user.getRoleName());
        userData.setRolename(resolveRoleName(user));
        userData.setCreateTime(new Date());
        userData.setUserId(order.getPartyId().toString());
        userData.setUserId(partyId);
        userData.setMinerAmount(order.getAmount());
        save(userData);
    }
@@ -889,23 +885,19 @@
     */
    @Override
    public void saveMinerClose(MinerOrder order) {
        User user = this.userService.cacheUserBy(order.getPartyId().toString());
//        user.getRoles();
        boolean guest = false;
//        for (Role role : user.getRoles()) {
//            if (Constants.SECURITY_ROLE_GUEST.equals(role.getRoleName())||Constants.SECURITY_ROLE_TEST.equals(role.getRoleName())) {
//                guest = true;
//            }
//        }
        if (guest) {
        String partyId = order.getPartyId();
        if (StringUtils.isBlank(partyId)) {
            return;
        }
        User user = resolveUser(partyId);
        if (isGuestUser(user)) {
            return;
        }
//        Party party = partyService.cachePartyBy(order.getPartyId(), false);
        UserData userData = new UserData();
        userData.setRolename(user.getRoleName());
        userData.setRolename(resolveRoleName(user));
        userData.setCreateTime(new Date());
        userData.setUserId(order.getPartyId().toString());
        userData.setUserId(partyId);
        userData.setMinerAmount(Arith.sub(0, order.getAmount()));
        save(userData);
    }
@@ -918,25 +910,47 @@
     */
    @Override
    public void saveMinerProfit(String partyId, double profit) {
        User user = this.userService.cacheUserBy(partyId);
//        user.getRoles();
        boolean guest = false;
//        for (Role role : user.getRoles()) {
//            if (Constants.SECURITY_ROLE_GUEST.equals(role.getRoleName())) {
//                guest = true;
//            }
//        }
        if (guest) {
        if (StringUtils.isBlank(partyId)) {
            return;
        }
        User user = resolveUser(partyId);
        if (isGuestUser(user)) {
            return;
        }
//        Party party = partyService.cachePartyBy(partyId, true);
        UserData userData = new UserData();
        userData.setRolename(user.getRoleName());
        userData.setRolename(resolveRoleName(user));
        userData.setCreateTime(new Date());
        userData.setUserId(partyId);
        userData.setMinerIncome(profit);
        save(userData);
    }
    private User resolveUser(String partyId) {
        User user = userService.getById(partyId);
        if (user == null) {
            user = userService.cacheUserBy(partyId);
        }
        if (user == null) {
            log.warn("UserData resolveUser not found, partyId={}", partyId);
        }
        return user;
    }
    private boolean isGuestUser(User user) {
        if (user == null) {
            return false;
        }
        String roleName = user.getRoleName();
        return Constants.SECURITY_ROLE_GUEST.equals(roleName)
                || Constants.SECURITY_ROLE_TEST.equals(roleName);
    }
    private String resolveRoleName(User user) {
        if (user == null || StringUtils.isBlank(user.getRoleName())) {
            return Constants.SECURITY_ROLE_MEMBER;
        }
        return user.getRoleName();
    }
}