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> datas = new ArrayList>(); 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; } }