|
@@ -5,6 +5,7 @@ import cn.hobbystocks.auc.domain.Bid;
|
|
|
import cn.hobbystocks.auc.domain.Lot;
|
|
import cn.hobbystocks.auc.domain.Lot;
|
|
|
import cn.hobbystocks.auc.domain.LotFans;
|
|
import cn.hobbystocks.auc.domain.LotFans;
|
|
|
import cn.hobbystocks.auc.domain.LotFansPushRecord;
|
|
import cn.hobbystocks.auc.domain.LotFansPushRecord;
|
|
|
|
|
+import cn.hobbystocks.auc.domain.Order;
|
|
|
import cn.hobbystocks.auc.event.SoldEvent;
|
|
import cn.hobbystocks.auc.event.SoldEvent;
|
|
|
import cn.hobbystocks.auc.forest.CommonForestClient;
|
|
import cn.hobbystocks.auc.forest.CommonForestClient;
|
|
|
import cn.hobbystocks.auc.handle.context.Live;
|
|
import cn.hobbystocks.auc.handle.context.Live;
|
|
@@ -36,6 +37,12 @@ public class AppClient {
|
|
|
|
|
|
|
|
@Value("${hobbystocks.host.orderUrl}")
|
|
@Value("${hobbystocks.host.orderUrl}")
|
|
|
private String orderUrl;
|
|
private String orderUrl;
|
|
|
|
|
+ @Value("${hobbystocks.host.expireOrderUrl:}")
|
|
|
|
|
+ private String expireOrderUrl;
|
|
|
|
|
+ @Value("${hobbystocks.host.timeoutUnpaidOrdersUrl:}")
|
|
|
|
|
+ private String timeoutUnpaidOrdersUrl;
|
|
|
|
|
+ @Value("${hobbystocks.host.paidOrdersLastThreeDaysUrl:}")
|
|
|
|
|
+ private String paidOrdersLastThreeDaysUrl;
|
|
|
|
|
|
|
|
@Value("${hobbystocks.host.noticeUrl}")
|
|
@Value("${hobbystocks.host.noticeUrl}")
|
|
|
private String noticeUrl;
|
|
private String noticeUrl;
|
|
@@ -182,6 +189,84 @@ public class AppClient {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public List<Order> queryExpireLotOrders() {
|
|
|
|
|
+ return queryLotOrders(getExpireOrderUrl(), "query expire lot orders");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public int batchTimeoutUnpaidOrders() {
|
|
|
|
|
+ ForestResponse<CommonForestClient.Response<Map<String, Object>>> response = null;
|
|
|
|
|
+ String url = getTimeoutUnpaidOrdersUrl();
|
|
|
|
|
+ try {
|
|
|
|
|
+ response = client.sendGet(url);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("batch timeout unpaid orders fail {}", url, e);
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Objects.isNull(response)
|
|
|
|
|
+ || !Objects.equals(response.getStatusCode(), 200)
|
|
|
|
|
+ || Objects.isNull(response.getResult())
|
|
|
|
|
+ || !isSuccessCode(response.getResult().getCode())) {
|
|
|
|
|
+ log.error("batch timeout unpaid orders fail {}", url);
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, Object> data = response.getResult().getData();
|
|
|
|
|
+ if (CollectionUtils.isEmpty(data) || Objects.isNull(data.get("count"))) {
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ return Integer.parseInt(data.get("count").toString());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public List<Order> queryPaidLotOrdersLastThreeDays() {
|
|
|
|
|
+ return queryLotOrders(getPaidOrdersLastThreeDaysUrl(), "query paid lot orders last three days");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private List<Order> queryLotOrders(String url, String operation) {
|
|
|
|
|
+ ForestResponse<CommonForestClient.Response<Map<String, Object>>> response = null;
|
|
|
|
|
+ try {
|
|
|
|
|
+ response = client.sendGet(url);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("{} fail {}", operation, url, e);
|
|
|
|
|
+ return Lists.newArrayList();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Objects.isNull(response)
|
|
|
|
|
+ || !Objects.equals(response.getStatusCode(), 200)
|
|
|
|
|
+ || Objects.isNull(response.getResult())
|
|
|
|
|
+ || !isSuccessCode(response.getResult().getCode())) {
|
|
|
|
|
+ log.error("{} fail {}", operation, url);
|
|
|
|
|
+ return Lists.newArrayList();
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, Object> data = response.getResult().getData();
|
|
|
|
|
+ if (CollectionUtils.isEmpty(data) || Objects.isNull(data.get("lotOrders"))) {
|
|
|
|
|
+ return Lists.newArrayList();
|
|
|
|
|
+ }
|
|
|
|
|
+ return JSON.parseArray(JSON.toJSONString(data.get("lotOrders")), Order.class);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private String getExpireOrderUrl() {
|
|
|
|
|
+ if (Objects.nonNull(expireOrderUrl) && !expireOrderUrl.trim().isEmpty()) {
|
|
|
|
|
+ return expireOrderUrl;
|
|
|
|
|
+ }
|
|
|
|
|
+ return orderUrl.replaceFirst("/create$", "/queryExpireOrder");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private String getTimeoutUnpaidOrdersUrl() {
|
|
|
|
|
+ if (Objects.nonNull(timeoutUnpaidOrdersUrl) && !timeoutUnpaidOrdersUrl.trim().isEmpty()) {
|
|
|
|
|
+ return timeoutUnpaidOrdersUrl;
|
|
|
|
|
+ }
|
|
|
|
|
+ return orderUrl.replaceFirst("/create$", "/batchTimeoutUnpaidOrders");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private String getPaidOrdersLastThreeDaysUrl() {
|
|
|
|
|
+ if (Objects.nonNull(paidOrdersLastThreeDaysUrl) && !paidOrdersLastThreeDaysUrl.trim().isEmpty()) {
|
|
|
|
|
+ return paidOrdersLastThreeDaysUrl;
|
|
|
|
|
+ }
|
|
|
|
|
+ return orderUrl.replaceFirst("/create$", "/queryPaidOrdersLastThreeDays");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private boolean isSuccessCode(Integer code) {
|
|
|
|
|
+ return Objects.equals(code, 0) || Objects.equals(code, 200);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public boolean notice(String lotName, Bid bid, String url) {
|
|
public boolean notice(String lotName, Bid bid, String url) {
|
|
|
ForestResponse<CommonForestClient.Response<Object>> response;
|
|
ForestResponse<CommonForestClient.Response<Object>> response;
|
|
|
try {
|
|
try {
|