zj
2025-02-25 dd315d5732e14fcf3df71e0cf213cc442bd8607b
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package project.web.api.monitor;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import kernel.exception.BusinessException;
import kernel.web.BaseAction;
import kernel.web.ResultObject;
import project.monitor.pledgegalaxy.PledgeGalaxyProfit;
import project.monitor.pledgegalaxy.PledgeGalaxyProfitService;
import project.monitor.pledgegalaxy.PledgeGalaxyStatusConstants;
import project.monitor.pledgegalaxy.PledgeLock;
import project.party.PartyService;
import project.party.model.Party;
import project.syspara.SysparaService;
 
/**
 * 质押2.0
 * 银河数码-AI量化交易投资收益
 *
 */
@RestController
@CrossOrigin
public class PledgeGalaxyProfitController extends BaseAction {
    
    private Logger logger = LoggerFactory.getLogger(PledgeGalaxyProfitController.class);
    
    @Autowired
    PledgeGalaxyProfitService pledgeGalaxyProfitService;
    
    @Autowired
    SysparaService sysparaService;
    
    @Autowired
    PartyService partyService;
 
    public final String action = "/api/pledgeGalaxyProfit!";
    
    /**
     * 收益记录列表
     */
    @RequestMapping(action + "queryList.action")
    public Object list(HttpServletRequest request) {
        
        ResultObject resultObject = new ResultObject();
        resultObject = readSecurityContextFromSession(resultObject);
        if (!"0".equals(resultObject.getCode())) {
            return resultObject;
        }
        List<Map<String, Object>> datas = new ArrayList<Map<String, Object>>();
        
        String page_no = request.getParameter("page_no");
        
        try {
            String partyId = getLoginPartyId();
            int pageNo = Integer.valueOf(page_no);
            datas = pledgeGalaxyProfitService.pagedQuery(pageNo, 40, partyId).getElements();
        } catch (Exception e) {
            resultObject.setCode("1");
            resultObject.setMsg("程序错误");
            logger.error("error:", e.fillInStackTrace());
        }
        resultObject.setData(datas);
        return resultObject;
    }
//    
//    /**
//     * 领取收益 审核到账
//     */
//    @RequestMapping(action + "receive.action")
//    public Object receive(HttpServletRequest request) {
//        
//        ResultObject resultObject = new ResultObject();
//        resultObject = readSecurityContextFromSession(resultObject);
//        if (!"0".equals(resultObject.getCode())) {
//            return resultObject;
//        }
//        
//        try {
//            String id = request.getParameter("id");
//            pledgeGalaxyProfitService.updateReceive(id);
//            
//            resultObject.setMsg("领取成功");
//            resultObject.setCode("0");
//        } catch (Exception e) {
//            resultObject.setCode("1");
//            resultObject.setMsg("程序错误");
//            logger.error("error:", e.fillInStackTrace());
//        }
//        return resultObject;
//    }
    
    /**
     * 领取收益 及时到账
     */
    @RequestMapping(action + "receiveToWallet.action")
    public Object receiveToWallet(HttpServletRequest request) {
        ResultObject resultObject = new ResultObject();
        resultObject = readSecurityContextFromSession(resultObject);
        if (!"0".equals(resultObject.getCode())) {
            return resultObject;
        }
        String id = request.getParameter("id");
 
        boolean lock = false;
        PledgeGalaxyProfit profit = pledgeGalaxyProfitService.get(id);
        String partyId = profit.getPartyId();
        try {
            
            if (PledgeGalaxyStatusConstants.PLEDGE_APPLY != profit.getStatus()) {
                throw new BusinessException("Redeemed");
            }
            
            Party party = partyService.cachePartyBy(profit.getPartyId(), false);
            if (!party.getEnabled()) {
                throw new BusinessException(1, "您的账户已被冻结");
            }
 
            if (!PledgeLock.add(partyId)) {
                throw new BusinessException("Please try again later");
            }
            lock = true;
            
            pledgeGalaxyProfitService.updateReceiveToWallet(profit);
            resultObject.setMsg("领取成功");
            resultObject.setCode("0");
        } catch (BusinessException e) {
            resultObject.setCode("1");
            resultObject.setMsg(e.getMessage());
        } catch (Exception e) {
            resultObject.setCode("1");
            resultObject.setMsg("程序错误");
            logger.error("error:", e.fillInStackTrace());
        } finally {
            if (lock) {
                PledgeLock.remove(partyId);
            }
        }
        return resultObject;
    }
}