hr~ před 1 měsícem
rodič
revize
f3a0843fc2

+ 3 - 0
poyee-order/src/main/java/com/tzy/entity/LotOrder.java

@@ -70,4 +70,7 @@ public class LotOrder {
     @ApiModelProperty("支付类型")
     private String payType;
 
+    @ApiModelProperty("倒计时")
+    private Long timestamp;
+
 }

+ 33 - 2
poyee-order/src/main/java/com/tzy/service/impl/LotOrderServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -35,7 +36,9 @@ public class LotOrderServiceImpl implements LotOrderService {
     LotOrderExpressMapper lotOrderExpressMapper;
     @Override
     public List<LotOrder> getLotOrders(LotOrder lotOrder) {
-        return lotOrderMapper.selectLotOrder(lotOrder);
+        List<LotOrder> lotOrders = lotOrderMapper.selectLotOrder(lotOrder);
+        fillTimestamp(lotOrders);
+        return lotOrders;
     }
 
     @Override
@@ -60,7 +63,35 @@ public class LotOrderServiceImpl implements LotOrderService {
 
     @Override
     public LotOrder getLotOrderById(Long id) {
-        return lotOrderMapper.selectLotOrderById(id);
+        LotOrder lotOrder = lotOrderMapper.selectLotOrderById(id);
+        fillTimestamp(lotOrder);
+        return lotOrder;
+    }
+
+    private void fillTimestamp(List<LotOrder> lotOrders) {
+        if (lotOrders == null) {
+            return;
+        }
+        long now = System.currentTimeMillis();
+        for (LotOrder lotOrder : lotOrders) {
+            fillTimestamp(lotOrder, now);
+        }
+    }
+
+    private void fillTimestamp(LotOrder lotOrder) {
+        fillTimestamp(lotOrder, System.currentTimeMillis());
+    }
+
+    private void fillTimestamp(LotOrder lotOrder, long now) {
+        if (lotOrder == null) {
+            return;
+        }
+        Date expireTime = lotOrder.getExpireTime();
+        if (expireTime == null) {
+            lotOrder.setTimestamp(0L);
+            return;
+        }
+        lotOrder.setTimestamp(Math.max(expireTime.getTime() - now, 0L));
     }
 
     @Override