新版仿ok交易所-后端
1
zyy
2026-03-24 513e5442723f501525bf9ca6210b16561e5d3a2b
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
118
119
120
121
122
123
124
125
126
127
128
129
package com.yami.trading.admin.controller.finance;
 
import com.yami.trading.admin.model.LoginModel;
import com.yami.trading.bean.finance.Finance;
import com.yami.trading.bean.vo.FinanceVo;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.ConvertUtil;
import com.yami.trading.common.util.GoogleAuthenticator;
import com.yami.trading.security.common.bo.UserInfoInTokenBO;
import com.yami.trading.security.common.enums.SysTypeEnum;
import com.yami.trading.security.common.vo.TokenInfoVO;
import com.yami.trading.service.finance.FinanceService;
import com.yami.trading.sys.model.SysUser;
import com.yami.trading.util.ConverterUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
 
import javax.validation.Valid;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
 
/**
 * @program: trading-order-master
 * @description: 理财
 * @create: 2025-01-22 17:13
 **/
@RestController
@RequestMapping("finance")
@Api(tags = "理财")
@Slf4j
public class FinanceController {
 
    @Autowired
    FinanceService service;
 
    @PostMapping("/add")
    @ApiOperation(value = "理财-添加")
    public Result<?> login(@Valid @RequestBody FinanceVo vo) {
        Finance finance = ConverterUtil.convert(vo, Finance.class);
        service.save(finance);
        return Result.ok("添加成功");
    }
 
    /**
     * 修改理财
     */
    @PutMapping("/update/{id}")
    @ApiOperation(value = "理财-修改")
    public Result<?> updateFinance(@PathVariable Long id, @Valid @RequestBody FinanceVo vo) {
        // 查询该理财产品是否被用户持有
//        boolean isHeldByUsers = userFinanceService.isFinanceHeldByUsers(id);
//        if (isHeldByUsers) {
//            return Result.failed("该理财产品已被用户持有,无法修改");
//        }
 
        // 如果没有用户持有,继续进行修改操作
        return Optional.ofNullable(service.getById(id))
                .map(finance -> {
                    finance.setName(vo.getName());
                    finance.setName_en(vo.getName_en());
                    finance.setName_cn(vo.getName_cn());
                    finance.setName_kn(vo.getName_kn());
                    finance.setName_jn(vo.getName_jn());
                    finance.setImg(vo.getImg());
                    finance.setCycle(vo.getCycle());
                    finance.setDaily_rate(vo.getDaily_rate());
                    finance.setDaily_rate_max(vo.getDaily_rate_max());
                    finance.setToday_rate(vo.getToday_rate());
                    finance.setDefault_ratio(vo.getDefault_ratio());
                    finance.setInvestment_min(vo.getInvestment_min());
                    finance.setInvestment_max(vo.getInvestment_max());
                    finance.setState(vo.getState());
                    finance.setBuyCurrency(vo.getBuyCurrency());
                    finance.setOutputCurrency(vo.getOutputCurrency());
 
                    service.save(finance);
                    return Result.ok("修改成功");
                })
                .orElseGet(() -> Result.failed("理财信息不存在"));
    }
 
 
    /**
     * 删除理财
     */
    @DeleteMapping("/delete/{id}")
    @ApiOperation(value = "理财-删除")
    public Result<?> deleteFinance(@PathVariable Long id) {
        boolean removed = service.removeById(id);
        if (removed) {
            // 查询该理财产品是否被用户持有
//        boolean isHeldByUsers = userFinanceService.isFinanceHeldByUsers(id);
//        if (isHeldByUsers) {
//            return Result.failed("该理财产品已被用户持有,无法删除");
//        }
            return Result.ok("删除成功");
        } else {
            return Result.failed("理财信息不存在");
        }
    }
 
    /**
     * 查询单个理财
     */
    @GetMapping("/find/{id}")
    @ApiOperation(value = "理财-查询")
    public Result<?> getFinance(@PathVariable Long id) {
        return Optional.ofNullable(service.getById(id))
                .map(Result::ok)
                .orElseGet(() -> Result.failed("理财信息不存在"));
    }
 
    /**
     * 查询所有理财
     */
    @GetMapping("/list")
    @ApiOperation(value = "理财-查询所有")
    public Result<?> getAllFinances() {
        List<Finance> finances = service.list();
        return Result.ok(finances.isEmpty() ? Collections.emptyList() : finances);
    }
}