src/main/java/com/nq/controller/StockApiController.java
@@ -1,6 +1,11 @@ package com.nq.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.util.StringUtil; import com.nq.common.ServerResponse; import com.nq.dao.CurrencyBeanMapper; import com.nq.pojo.CurrencyBean; import com.nq.pojo.SiteSetting; import com.nq.service.IStockService; import com.nq.service.StockDzService; @@ -24,6 +29,8 @@ IStockService iStockService; @Autowired StockDzService stockDzService; @Autowired CurrencyBeanMapper currencyBeanMapper; //查询 股票指数、大盘指数信息 @RequestMapping({"getMarket.do"}) @@ -52,6 +59,19 @@ return this.iStockService.getStockByType(pageNum, pageSize, orderBy,keyWords , stockType, request); } @RequestMapping("getCurrency.do") @ResponseBody public ServerResponse getCurrency(@RequestParam(value = "sc", required = false) String sc, @RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) { Page<CurrencyBean> page = new Page<>(pageNum, pageSize); Page<CurrencyBean> beanPage = currencyBeanMapper.selectPage(page, new LambdaQueryWrapper<>(CurrencyBean.class) .like(StringUtil.isNotEmpty(sc), CurrencyBean::getSc, sc) ); return ServerResponse.createBySuccess(beanPage); } @RequestMapping("getOptionStock.do") src/main/java/com/nq/controller/admin/AdminAgentController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminAgentController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminCashDetailController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminCashDetailController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.github.pagehelper.PageInfo; src/main/java/com/nq/controller/admin/AdminCurrencyController.java
New file @@ -0,0 +1,99 @@ package com.nq.controller.admin; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.util.StringUtil; import com.nq.common.ServerResponse; import com.nq.dao.CurrencyBeanMapper; import com.nq.pojo.CurrencyBean; import com.nq.pojo.CurrencyBeanVo; import com.nq.service.CurrencyBeanService; import com.nq.utils.ConverterUtil; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.xmlunit.util.Convert; import java.util.List; /** * @program: dabaogp * @description:数字货币管理 * @create: 2024-08-21 16:55 **/ @Controller @RequestMapping({"/admin/currency"}) public class AdminCurrencyController { @Autowired private CurrencyBeanService service; @Autowired private CurrencyBeanMapper mapper; /** * 新增币种 */ @RequestMapping({"add.do"}) @ResponseBody public ServerResponse add(CurrencyBeanVo beanVo) { if(StringUtil.isEmpty(beanVo.getSc()) || StringUtil.isEmpty(beanVo.getDn()) || StringUtil.isEmpty(beanVo.getBcdn()) || StringUtil.isEmpty(beanVo.getQcdn())){ return ServerResponse.createByErrorMsg("字段不能为空"); } Long scCount = getScCount(beanVo.getSc(),null); if(scCount > 0){ return ServerResponse.createByErrorMsg("币种已存在"); } CurrencyBean currencyBean = ConverterUtil.convert(beanVo, CurrencyBean.class); service.save(currencyBean); return ServerResponse.createBySuccess(); } /** * 修改币种 */ @RequestMapping({"update.do"}) @ResponseBody public ServerResponse update(CurrencyBeanVo beanVo) { CurrencyBean byId = service.getById(beanVo.getId()); if(null == byId){ return ServerResponse.createByErrorMsg("币种不存在"); } Long scCount = getScCount(beanVo.getSc(),beanVo.getId()); if(scCount > 0){ return ServerResponse.createByErrorMsg("币种已存在"); } CurrencyBean currencyBean = ConverterUtil.convert(beanVo, CurrencyBean.class); service.updateById(currencyBean); return ServerResponse.createBySuccess(); } /** * 查询币种 */ @RequestMapping({"select.do"}) @ResponseBody public ServerResponse select(@RequestParam(value = "sc", required = false) String sc, @RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) { Page<CurrencyBean> page = new Page<>(pageNum, pageSize); Page<CurrencyBean> beanPage = mapper.selectPage(page, new LambdaQueryWrapper<>(CurrencyBean.class) .like(StringUtil.isNotEmpty(sc), CurrencyBean::getSc, sc) ); return ServerResponse.createBySuccess(beanPage); } public Long getScCount(String sc,Integer id){ Long count = mapper.selectCount(new LambdaQueryWrapper<>(CurrencyBean.class).eq(CurrencyBean::getSc, sc).ne(null != id,CurrencyBean::getId,id)); return count; } } src/main/java/com/nq/controller/admin/AdminFundsApplyController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminFundsApplyController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.FundsAppend; src/main/java/com/nq/controller/admin/AdminFundsDealerInstitutionsController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminFundsDealerInstitutionsController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.FundsDealerInstitutions; src/main/java/com/nq/controller/admin/AdminFundsSettingController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminFundsSettingController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.FundsLever; src/main/java/com/nq/controller/admin/AdminFuturesPositionController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminFuturesPositionController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminIndexPositionController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminIndexPositionController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminLogsController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminLogsController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminMoneyLogController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminMoneyLogController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminNewStockController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminNewStockController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.service.IStockSubscribeService; import org.springframework.beans.factory.annotation.Autowired; src/main/java/com/nq/controller/admin/AdminPendingOrderController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminPendingOrderController.java @@ -1,13 +1,9 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.service.UserPendingorderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @RestController @RequestMapping({"/admin/pendingorder/"}) src/main/java/com/nq/controller/admin/AdminPendingorder.java
File was renamed from src/main/java/com/nq/controller/backend/AdminPendingorder.java @@ -1,9 +1,8 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.UserPendingorder; import com.nq.service.UserPendingorderService; import com.nq.vo.position.UserPendingorderVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; src/main/java/com/nq/controller/admin/AdminPositionController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminPositionController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminRechargeController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminRechargeController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import cn.afterturn.easypoi.excel.ExcelExportUtil; src/main/java/com/nq/controller/admin/AdminSiteArticleController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminSiteArticleController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.SiteArticle; src/main/java/com/nq/controller/admin/AdminSiteBannerController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminSiteBannerController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminSiteFuturesSettingController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminSiteFuturesSettingController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminSiteIndexSettingController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminSiteIndexSettingController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.SiteIndexSetting; src/main/java/com/nq/controller/admin/AdminSiteInfoController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminSiteInfoController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminSitePayController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminSitePayController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminSiteProductController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminSiteProductController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminSiteSettingController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminSiteSettingController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminStockCoinController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockCoinController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminStockConfigController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockConfigController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.StockConfig; @@ -8,8 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.xml.ws.Action; @Controller @RequestMapping({"/admin/stock/config"}) src/main/java/com/nq/controller/admin/AdminStockController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminStockDz.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockDz.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.StockDz; @@ -7,8 +7,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; @RestController @RequestMapping({"/admin/stockDz/"}) src/main/java/com/nq/controller/admin/AdminStockFuturesController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockFuturesController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.StockFutures; src/main/java/com/nq/controller/admin/AdminStockIndexController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockIndexController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminStockSettingController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockSettingController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/admin/AdminStockSubscribeController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockSubscribeController.java @@ -1,8 +1,7 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.dao.StockSubscribeMapper; import com.nq.pojo.StockSubscribe; import com.nq.pojo.UserStockSubscribe; import com.nq.service.IStockSubscribeService; src/main/java/com/nq/controller/admin/AdminStockTimeSettingController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminStockTimeSettingController.java @@ -1,10 +1,8 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.StockSetting; import com.nq.pojo.StockTimeSetting; import com.nq.service.IStockSettingServices; import com.nq.service.IStockTimeSettingServices; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; src/main/java/com/nq/controller/admin/AdminUserController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminUserController.java @@ -1,10 +1,9 @@ package com.nq.controller.backend; package com.nq.controller.admin; import com.nq.common.ServerResponse; import com.nq.pojo.User; import com.nq.pojo.UserBank; import com.nq.service.IApplyLeverServices; import com.nq.service.IUserBankService; import com.nq.service.IUserService; import javax.servlet.http.HttpServletRequest; @@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import java.text.ParseException; import java.util.Date; @Controller src/main/java/com/nq/controller/admin/AdminWithDrawController.java
File was renamed from src/main/java/com/nq/controller/backend/AdminWithDrawController.java @@ -1,4 +1,4 @@ package com.nq.controller.backend; package com.nq.controller.admin; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; src/main/java/com/nq/controller/user/UserBankController.java
File was renamed from src/main/java/com/nq/controller/protol/UserBankController.java @@ -1,4 +1,4 @@ package com.nq.controller.protol; package com.nq.controller.user; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/user/UserCashDetailController.java
File was renamed from src/main/java/com/nq/controller/protol/UserCashDetailController.java @@ -1,4 +1,4 @@ package com.nq.controller.protol; package com.nq.controller.user; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/user/UserController.java
File was renamed from src/main/java/com/nq/controller/protol/UserController.java @@ -1,12 +1,10 @@ package com.nq.controller.protol; package com.nq.controller.user; import com.google.common.collect.Maps; import com.nq.common.ServerResponse; import com.nq.enums.EStockType; import com.nq.pojo.ApplyLever; import com.nq.pojo.StockSubscribe; import com.nq.pojo.UserStockSubscribe; import com.nq.service.*; import com.nq.utils.PropertiesUtil; @@ -18,11 +16,9 @@ import javax.servlet.http.HttpSession; import com.nq.vo.stock.UserStockSubscribeAddIn; import org.apache.ibatis.annotations.Property; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; src/main/java/com/nq/controller/user/UserOptionController.java
File was renamed from src/main/java/com/nq/controller/protol/UserOptionController.java @@ -1,4 +1,4 @@ package com.nq.controller.protol; package com.nq.controller.user; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/user/UserPayController.java
File was renamed from src/main/java/com/nq/controller/protol/UserPayController.java @@ -1,4 +1,4 @@ package com.nq.controller.protol; package com.nq.controller.user; import com.nq.common.ServerResponse; src/main/java/com/nq/controller/user/UserPositionController.java
File was renamed from src/main/java/com/nq/controller/protol/UserPositionController.java @@ -1,4 +1,4 @@ package com.nq.controller.protol; package com.nq.controller.user; import com.nq.common.ServerResponse; import com.nq.service.IUserPositionService; src/main/java/com/nq/controller/user/UserRechargeController.java
File was renamed from src/main/java/com/nq/controller/protol/UserRechargeController.java @@ -1,4 +1,4 @@ package com.nq.controller.protol; package com.nq.controller.user; import com.github.pagehelper.PageInfo; src/main/java/com/nq/controller/user/UserWithdrawController.java
File was renamed from src/main/java/com/nq/controller/protol/UserWithdrawController.java @@ -1,4 +1,4 @@ package com.nq.controller.protol; package com.nq.controller.user; import com.nq.common.ServerResponse; import com.nq.pojo.User; src/main/java/com/nq/dao/CurrencyBeanMapper.java
New file @@ -0,0 +1,15 @@ package com.nq.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nq.pojo.CurrencyBean; import org.apache.ibatis.annotations.Mapper; /** * @program: dabaogp * @description: * @create: 2024-08-21 16:30 **/ @Mapper public interface CurrencyBeanMapper extends BaseMapper<CurrencyBean> { } src/main/java/com/nq/pojo/CurrencyBean.java
New file @@ -0,0 +1,26 @@ package com.nq.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; /** * @program: dabaogp * @description:币种 * @create: 2024-08-21 16:19 **/ @Data public class CurrencyBean { @TableId(value = "id",type = IdType.AUTO) private Integer id; //交易对 示范:btcusdt private String sc; //交易对显示名称 示范:BTC/USDT private String dn; //基础币种 示范:BTC private String bcdn; //计价币种 示范:USDT private String qcdn; //是否可交易(true.可交易 false.不可交易) private Boolean te; } src/main/java/com/nq/pojo/CurrencyBeanVo.java
New file @@ -0,0 +1,25 @@ package com.nq.pojo; import lombok.Data; /** * @program: dabaogp * @description: * @create: 2024-08-21 16:56 **/ @Data public class CurrencyBeanVo { private Integer id; //交易对 private String sc; //交易对显示名称 private String dn; //基础币种 private String bcdn; //计价币种 private String qcdn; //是否可交易 private Boolean te = true; } src/main/java/com/nq/service/CurrencyBeanService.java
New file @@ -0,0 +1,12 @@ package com.nq.service; import com.baomidou.mybatisplus.extension.service.IService; import com.nq.pojo.CurrencyBean; /** * @program: dabaogp * @description: * @create: 2024-08-21 16:33 **/ public interface CurrencyBeanService extends IService<CurrencyBean> { } src/main/java/com/nq/service/impl/CurrencyBeanServiceImpl.java
New file @@ -0,0 +1,16 @@ package com.nq.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nq.dao.CurrencyBeanMapper; import com.nq.pojo.CurrencyBean; import com.nq.service.CurrencyBeanService; import org.springframework.stereotype.Service; /** * @program: dabaogp * @description: * @create: 2024-08-21 16:33 **/ @Service public class CurrencyBeanServiceImpl extends ServiceImpl<CurrencyBeanMapper, CurrencyBean> implements CurrencyBeanService { } src/main/java/com/nq/utils/pay/CmcPayTool.java
@@ -3,7 +3,7 @@ import com.alibaba.fastjson.JSON; import com.nq.common.CmcPayConfig; import com.nq.controller.protol.UserPayController; import com.nq.controller.user.UserPayController; import org.apache.commons.collections.map.LinkedMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; src/main/java/com/nq/utils/task/digiccy/GetSymbolsTask.java
New file @@ -0,0 +1,135 @@ package com.nq.utils.task.digiccy; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.nq.dao.CurrencyBeanMapper; import com.nq.enums.EStockType; import com.nq.pojo.CurrencyBean; import com.nq.service.CurrencyBeanService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.Currency; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; /** * @program: dabaogp * @description: 获取所有交易对 暂时不放开,采用手动添加 * @create: 2024-08-21 11:33 **/ @Slf4j @Component public class GetSymbolsTask { @Autowired private CurrencyBeanService currencyBeanService; private final AtomicBoolean symbolsData = new AtomicBoolean(false); private final Lock symbolsLock = new ReentrantLock(); /** * 同步系统所需要的股票 */ // @Scheduled(cron = "0/10 * * * * ?") public void symbolsTask() { if (symbolsData.get()) { // 判断任务是否在处理中 return; } if (symbolsLock.tryLock()) { try { symbolsData.set(true); // 设置处理中标识为true getSymbols(); } catch (IOException e) { log.error("火币获取交易对报错:"+e.getMessage()); } finally { symbolsLock.unlock(); symbolsData.set(false); // 设置处理中标识为false } } } private void getSymbols() throws IOException { String json = doGet(); if (json != null && !json.isEmpty()) { ObjectMapper objectMapper = new ObjectMapper(); Map<String, Object> map = objectMapper.readValue(json, new TypeReference<Map<String, Object>>() { }); String symbolsJson = objectMapper.writeValueAsString(map.get("data")); Gson gson = new Gson(); List<CurrencyBean> currencyBeans= gson.fromJson(symbolsJson, new TypeToken<List<CurrencyBean>>() {}.getType()); List<CurrencyBean> dbList = currencyBeanService.list(new LambdaQueryWrapper<CurrencyBean>()); // 删除已经下架的币种 // Set<String> symbolSet = currencyBeans.stream().map(CurrencyBean::getSc).collect(Collectors.toSet()); // List<CurrencyBean> removeList = dbList.stream() // .filter(currency -> !symbolSet.contains(currency.getSc())) // .collect(Collectors.toList()); // // if(CollectionUtils.isNotEmpty(removeList)){ // removeList.forEach(f->{ // currencyBeanService.remove(new LambdaQueryWrapper<CurrencyBean>().eq(CurrencyBean::getSc,f.getSc())); // }); // } // 比对接口返回的数据和数据库中已有的数据,找出新增的数据 Set<String> loclSymbolSet = dbList.stream().map(CurrencyBean::getSc).collect(Collectors.toSet()); List<CurrencyBean> saveList = currencyBeans.stream() .filter(currency -> !loclSymbolSet.contains(currency.getSc())) .map(currency -> { CurrencyBean newCurrency = new CurrencyBean(); newCurrency.setSc(currency.getSc()); newCurrency.setDn(currency.getDn()); newCurrency.setBcdn(currency.getBcdn()); newCurrency.setQcdn(currency.getQcdn()); newCurrency.setTe(currency.getTe()); return newCurrency; }) .collect(Collectors.toList()); // 批量保存新增数据到数据库 if (CollectionUtils.isNotEmpty(saveList)) { currencyBeanService.saveBatch(saveList); } } else { log.info("同步bitget交易所交易对,外部接口返回数据为空"); } } private String doGet() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpGet request = new HttpGet("https://api-aws.huobi.pro/v2/settings/common/symbols"); HttpResponse response = httpClient.execute(request); try { // 处理响应内容 HttpEntity entity = response.getEntity(); String responseBody = EntityUtils.toString(entity); return responseBody; } finally { // 确保释放资源 EntityUtils.consume(response.getEntity()); } } } src/main/java/com/nq/utils/task/stock/StockTask.java
@@ -61,7 +61,7 @@ /** * 同步系统所需要的股票 */ @Scheduled(cron = "0/5 * * * * ?") @Scheduled(cron = "0 0/30 * * * ?") public void syncINStockData() { if (syncINStockData.get()) { // 判断任务是否在处理中 return; src/main/resources/application.yml
@@ -122,7 +122,7 @@ datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/stock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://127.0.0.1:3306/6-29?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # url: jdbc:mysql://127.0.0.1:3306/cgstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456