掘鑫绩效接口

sale
tianea 3 years ago
parent 2243f73132
commit c9160253b4

@ -3,10 +3,14 @@ package com.tz.platform.competitiion.job;
import com.tz.platform.competitiion.job.biz.CompetitionJobBiz; import com.tz.platform.competitiion.job.biz.CompetitionJobBiz;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.RedisStringCommands;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.types.Expiration;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Component @Component
@ -14,8 +18,8 @@ import java.util.concurrent.TimeUnit;
public class CompetitionJob { public class CompetitionJob {
// @Autowired @Autowired
// private RedisTemplate<String,Boolean> redisTemplate; private RedisTemplate<String,Boolean> redisTemplate;
@Autowired @Autowired
private CompetitionJobBiz jobBiz; private CompetitionJobBiz jobBiz;
@ -36,4 +40,33 @@ public class CompetitionJob {
// } // }
// } // }
} }
/**
* redis
*
* @param lockKey key
* @param lockExpireMils 线线
* @return
*/
public boolean lock(String lockKey, long lockExpireMils) {
return (Boolean) redisTemplate.execute((RedisCallback) connection -> {
long nowTime = System.currentTimeMillis();
Boolean acquire = connection.setNX(lockKey.getBytes(), String.valueOf(nowTime + lockExpireMils + 1).getBytes());
if (acquire) {
return Boolean.TRUE;
} else {
byte[] value = connection.get(lockKey.getBytes());
if (Objects.nonNull(value) && value.length > 0) {
long oldTime = Long.parseLong(new String(value));
if (oldTime < nowTime) {
//connection.getSet返回这个key的旧值并设置新值。
byte[] oldValue = connection.getSet(lockKey.getBytes(), String.valueOf(nowTime + lockExpireMils + 1).getBytes());
//当key不存时会返回空表示key不存在或者已在管道中使用
return oldValue == null ? false : Long.parseLong(new String(oldValue)) < nowTime;
}
}
}
return Boolean.FALSE;
});
}
} }

@ -0,0 +1,94 @@
package com.tz.platform.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.Date;
@Data
@Entity
public class Ranking {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String accountId;
/**
*
*/
private Long nav;
/**
*
*/
private Long available;
/**
*
*/
private Long marketValue;
/**
*
*/
private Long accumulativeTotalProfitLoss;
/**
*
*/
private Long cumCommission;
/**
*
*/
private Long fpnl;
/**
*
*/
private Long pnlRation;
/**
*
*/
private Long maxDrawdown;
/**
*
*/
private Long calmarRatio;
/**
*
*/
private Long sharpRatio;
/**
*
*/
private Integer openCount;
/**
*
*/
private Integer closeCount;
/**
*
*/
private Long pnlRatioAnnual;
/**
*
*/
private Long winRatio;
/**
*
*/
private Date updateTime;
}

@ -1,9 +1,9 @@
package com.tz.platform.juejing; package com.tz.platform.juejin;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.tz.platform.common.core.base.BaseException; import com.tz.platform.common.core.base.BaseException;
import com.tz.platform.common.core.tools.HttpUtil; import com.tz.platform.common.core.tools.HttpUtil;
import com.tz.platform.juejing.bo.AccountInfo; import com.tz.platform.juejin.bo.AccountInfo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -63,13 +63,42 @@ public class JueJinApi {
return content; return content;
} }
/**
*
* @param accountId
* @param title
* @return
*/
public String createReport(String accountId,String title){ public String createReport(String accountId,String title){
String url = "https://api.myquant.cn:9001/perfweb-rpcgw/api/v1/sim/detail/"+accountId+"?title="+title; String url = baseUrl+ "/perfweb-rpcgw/api/v1/sim/detail/"+accountId+"?title="+title;
String content = HttpUtil.get(url,headers); String content = HttpUtil.get(url,headers);
logger.info("报告生成请求: {}",content); logger.info("报告生成请求: {}",content);
return ""; return "";
} }
/**
*
* @param reportId
* @return
*/
public String getReport(String reportId){
String url = baseUrl +"/perfweb-rpcgw/api/v1/report/summaries?report_ids="+reportId;
String content = HttpUtil.get(url,headers);
logger.info("报告获取:{}",content);
return content;
}
/**
*
* @return
*/
public String getBaseRatio(){
String url = baseUrl +"/ds-history-rpcgw/v3/data-history/benchmark-return?symbol=SHSE.000300&frequency=1d&start_time=2022-03-07&end_time=2022-03-09&adjust=0";
String content = HttpUtil.get(url,headers);
logger.info("基准收益率:{}",content);
return content;
}
public String test(){ public String test(){
String url = "https://sim.sztzjy.com/sim?acc=2e41a913-9dc1-11ec-89b3-00163e0e6ad0"; String url = "https://sim.sztzjy.com/sim?acc=2e41a913-9dc1-11ec-89b3-00163e0e6ad0";
@ -78,16 +107,24 @@ public class JueJinApi {
return ""; return "";
} }
public static void main(String[] args) { public static void main(String[] args) {
JueJinApi api = new JueJinApi(); JueJinApi api = new JueJinApi();
String accountId = "2e41a913-9dc1-11ec-89b3-00163e0e6ad0"; String accountId = "2e41a913-9dc1-11ec-89b3-00163e0e6ad0";
// AccountInfo info = api.createAccount("test2",1000000L,1); String zhangSan1Qihuo = "0cfc7894-9f4e-11ec-bf20-00163e0e6ad0";
String zhangSan1GuPiao = "";
AccountInfo info = api.createAccount("张三1",1000000L,4);
// System.out.println(info.getAccount_id()); // System.out.println(info.getAccount_id());
// api.deleteAccount("4811913f-9dba-11ec-89b3-00163e0e6ad0"); // api.deleteAccount("4811913f-9dba-11ec-89b3-00163e0e6ad0");
// api.getCashInfo("2e41a913-9dc1-11ec-89b3-00163e0e6ad0"); // api.getCashInfo("2e41a913-9dc1-11ec-89b3-00163e0e6ad0");
// api.test(); // api.test();
api.createReport(accountId,"report"+ System.currentTimeMillis()); // api.createReport(accountId,"report"+ System.currentTimeMillis());
// api.getReport("5");
api.getBaseRatio();
} }
} }

@ -1,4 +1,4 @@
package com.tz.platform.juejing.bo; package com.tz.platform.juejin.bo;
import lombok.Data; import lombok.Data;
Loading…
Cancel
Save