新版仿ok交易所-后端
zyy
2026-01-04 7295334ff00457c111484d2f021a9c33bbf4a5f2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.yami.trading.api.controller;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yami.trading.bean.item.domain.Item;
import com.yami.trading.bean.model.MoneyLog;
import com.yami.trading.bean.model.User;
import com.yami.trading.common.constants.Constants;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.util.DateUtils;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.service.MoneyLogService;
import com.yami.trading.service.item.ItemService;
import com.yami.trading.service.user.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.stream.Collectors;
 
@RestController
@Slf4j
public class ApiMoneyLogController {
    @Autowired
    protected MoneyLogService moneyLogService;
    @Autowired
    UserService userService;
 
    @Autowired
    ItemService itemService;
 
    @RequestMapping("api/moneylog!list.action")
    public Result list(HttpServletRequest request) throws IOException {
        String partyId = SecurityUtils.getUser().getUserId();
        String page_no = request.getParameter("page_no");
        String symbolType = request.getParameter("symbolType");
        if (StringUtils.isNullOrEmpty(page_no)
                || !StringUtils.isInteger(page_no) || Integer.valueOf(page_no) <= 0) {
            page_no = "1";
        }
        double amount = 0;
        int pageNo = Integer.valueOf(page_no);
        String category = request.getParameter("category");
        String contentType = request.getParameter("contentType");
        User party = userService.getById(partyId);
 
        List<String> symbols = itemService.findByType(symbolType).stream().map(Item::getSymbol).collect(Collectors.toList());
        symbols.add("-1");
//            if(StringUtils.isNotEmpty(party.getBalance_income_config())) {
//                String[] balance_income_configArr = party.getBalance_income_config().split(",");
//                if(balance_income_configArr.length >=2) {
//                    amount = Double.valueOf(balance_income_configArr[1]).doubleValue();
//                }
//            }
        Page<MoneyLog> page = new Page<>(pageNo, 20);
        LambdaQueryWrapper<MoneyLog> lambdaQueryWrapper = Wrappers.<MoneyLog>query().lambda()
                .eq(MoneyLog::getUserId, partyId);
        if (StringUtils.isNotEmpty(category)){
            lambdaQueryWrapper.eq(MoneyLog::getCategory, category);
        }
        if (StringUtils.isNotEmpty(contentType)){
            lambdaQueryWrapper.eq(MoneyLog::getContentType, contentType);
        }
        if (StringUtils.isNotEmpty(symbolType)){
            lambdaQueryWrapper.in(MoneyLog::getSymbol,symbols);
        }
        log.info(symbols+"==========");
        lambdaQueryWrapper.orderByDesc(MoneyLog::getCreateTime);
        moneyLogService.page(page, lambdaQueryWrapper);
        List<Item> itemList = itemService.list();
        for (MoneyLog log : (List<MoneyLog>) page.getRecords()) {
            log.setContent_type(log.getContentType());
            log.setWallet_type(log.getWalletType());
            itemList.stream().filter(x -> x.getSymbol().equals(log.getWalletType())).findFirst().ifPresent(item -> log.setWallet_type(item.getName()));
            log.setAmount_after(log.getAmountAfter().setScale(4, RoundingMode.HALF_UP));
            log.setAmount_before(log.getAmountBefore().setScale(4, RoundingMode.HALF_UP));
            if (Constants.MONEYLOG_CONTENT_FINANCE_PROFIT.equals(log.getContentType())) {
                log.setAmount(log.getAmount().add(new BigDecimal(amount)));
 
                log.setCreateTimeStr(DateUtils.format(log.getCreateTime(), DateUtils.DF_yyyyMMddHHmmss));
            }
        }
        return Result.succeed(page.getRecords());
    }
 
//    @RequestMapping("api/moneylog!sumBSalance.action")
//    public Object sumBSalance(HttpServletRequest request) throws IOException {
//
//        String partyId =SecurityUtils.getUser().getUserId();
//        try {
//            String category = Constants.MONEYLOG_FINANCE;
//            String contentType = Constants.MONEYLOG_CONTENT_FINANCE_PROFIT;
//            SumBSalanceDto  dto = moneyLogService.sumBSalance(category, contentType, partyId);
//            User party = userService.getById(partyId);
//            if(StringUtils.isNotEmpty(party.getBalance_income_config())) {
//                String[] balance_income_configArr = party.getBalance_income_config().split(",");
//
//                double sumAmount=Double.parseDouble(map.get("sumAmount").toString())+Double.valueOf(balance_income_configArr[0]).doubleValue();
//                if(balance_income_configArr.length >=2) {
//                    double dateAmount=Double.parseDouble(map.get("dateAmount").toString())+Double.valueOf(balance_income_configArr[1]).doubleValue();
//                    map.put("dateAmount", dateAmount);
//                }
//                map.put("sumAmount", sumAmount);
//
//            }
//
//        return Result.succeed();
//    }
}