Browse Source

权益下单记录时区信息

lyhzzz 2 years ago
parent
commit
fd47b69d1c

+ 3 - 0
src/main/java/com/fdkankan/ucenter/UserCenterApplication.java

@@ -26,6 +26,8 @@ public class UserCenterApplication implements CommandLineRunner {
     private String uploadType;
     @Value("${main.url}")
     private String mainUrl;
+    @Value("${spring.profiles.active}")
+    private String activeFile;
 
     public static void main(String[] args) {
         SpringApplication.run(UserCenterApplication.class, args);
@@ -35,6 +37,7 @@ public class UserCenterApplication implements CommandLineRunner {
     public void run(String... args) throws Exception {
         NacosProperty.bucket = bucket;
         NacosProperty.uploadType = uploadType;
+        NacosProperty.activeFile = activeFile;
         NacosProperty.setMainUrl(mainUrl);
     }
 }

+ 24 - 0
src/main/java/com/fdkankan/ucenter/common/BaseController.java

@@ -1,6 +1,9 @@
 package com.fdkankan.ucenter.common;
 
 import com.fdkankan.common.util.DateEditor;
+import com.fdkankan.ucenter.common.constants.NacosProperty;
+import com.fdkankan.ucenter.util.DateUserUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.propertyeditors.StringTrimmerEditor;
 import org.springframework.data.domain.PageRequest;
@@ -15,6 +18,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.util.Date;
 
+@Slf4j
 public class BaseController {
 
     @Autowired
@@ -87,4 +91,24 @@ public class BaseController {
         return request.getHeader("sign");
     }
 
+    protected Integer getTimeZone(){
+        Integer minute = 0;
+        String timeZone = request.getHeader("timeZone");
+        try {
+            if(!StringUtils.isEmpty(timeZone)){
+                minute = Integer.parseInt(timeZone);
+            }
+        }catch (Exception e){
+            log.error("getClientTime-error:requestHeaderTimeZone:{}",timeZone,e);
+        }
+        if(!NacosProperty.activeFile.contains("eur")){
+            minute += 480;
+        }
+        return minute;
+    }
+    protected String getClientTime(){
+        return DateUserUtil.AddMinute(new Date(),getTimeZone());
+
+    }
+
 }

+ 1 - 0
src/main/java/com/fdkankan/ucenter/common/constants/NacosProperty.java

@@ -9,6 +9,7 @@ public class NacosProperty {
 
     public static String bucket;
     public static String uploadType;
+    public static String activeFile;
     private static String mainUrl;
 
     public static String getMainUrl() {

+ 4 - 0
src/main/java/com/fdkankan/ucenter/controller/OrderController.java

@@ -5,12 +5,15 @@ import com.fdkankan.common.util.JwtUtil;
 import com.fdkankan.ucenter.common.BaseController;
 import com.fdkankan.ucenter.common.Result;
 import com.fdkankan.ucenter.service.IOrderService;
+import com.fdkankan.ucenter.util.DateUserUtil;
 import com.fdkankan.ucenter.vo.request.DownNumParam;
 import com.fdkankan.ucenter.vo.request.OrderParam;
 import com.fdkankan.ucenter.vo.request.PlaceOrderParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
+
 /**
  * 订单
  *
@@ -95,6 +98,7 @@ public class OrderController extends BaseController {
     public Result incrementOrder(@RequestBody DownNumParam param){
         String username = JwtUtil.getUsername(getToken());
         param.setUserName(username);
+        param.setTimeZoneOff(getTimeZone());
         return Result.success(orderService.incrementOrder(param));
     }
 

+ 6 - 0
src/main/java/com/fdkankan/ucenter/entity/IncrementOrder.java

@@ -123,5 +123,11 @@ public class IncrementOrder implements Serializable {
     @TableField("member_levels")
     private String memberLevels;
 
+    /**
+     * 下单时区差 ,单位分钟
+     */
+    @TableField("time_zone_off")
+    private Integer timeZoneOff;
+
 
 }

+ 4 - 0
src/main/java/com/fdkankan/ucenter/service/impl/IncrementOrderServiceImpl.java

@@ -67,6 +67,9 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
 
         List<IncrementOrderVo> listVo  =new ArrayList<>();
         for (IncrementOrder record : page.getRecords()) {
+            if(StringUtils.isNotBlank(record.getTradeTime())){
+                record.setTradeTime(DateUserUtil.AddMinute(record.getTradeTime(),record.getTimeZoneOff()));
+            }
             Invoice invoice = invoiceService.getByIncrementOrderId(record.getId());
             IncrementOrderVo vo = new IncrementOrderVo();
             BeanUtils.copyProperties(record,vo);
@@ -164,6 +167,7 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
         incrementOrderEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
         incrementOrderEntity.setIncrementType(param.getIncrementType());
         incrementOrderEntity.setMonthQy(param.getMonthQy());
+        incrementOrderEntity.setTimeZoneOff(param.getTimeZoneOff());
         if(incrementType.getValidTimeType() == 0){
             incrementOrderEntity.setMemberLevels("PR");
         }

+ 20 - 0
src/main/java/com/fdkankan/ucenter/util/DateUserUtil.java

@@ -3,11 +3,13 @@ package com.fdkankan.ucenter.util;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import com.fdkankan.ucenter.entity.IncrementType;
+import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
 
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
+import java.util.Calendar;
 import java.util.Date;
 
 public class DateUserUtil {
@@ -97,4 +99,22 @@ public class DateUserUtil {
                 .toLocalDateTime().plusMonths(month);
         return  Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
     }
+
+    public static String AddMinute(Date date, Integer minute){
+        SimpleDateFormat sdf = new SimpleDateFormat(DEF_FMT);
+        Calendar nowTime = Calendar.getInstance();
+        nowTime.setTime(date);
+        nowTime.add(Calendar.MINUTE, ~minute);
+        return sdf.format(nowTime.getTime());
+    }
+    public static String AddMinute(String date, Integer minute){
+        SimpleDateFormat sdf = new SimpleDateFormat(DEF_FMT);
+        try {
+            Date time =  sdf.parse(date);
+            return AddMinute(time,minute);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return date;
+    }
 }

+ 0 - 2
src/main/java/com/fdkankan/ucenter/util/FolderTreeUtil.java

@@ -26,8 +26,6 @@ public class FolderTreeUtil {
         }
     }
 
-    public FolderTreeUtil() {
-    }
 
     /**
      * 构建树形结构list

+ 2 - 0
src/main/java/com/fdkankan/ucenter/vo/request/DownNumParam.java

@@ -19,6 +19,8 @@ public class DownNumParam {
 
     private Integer incrementType ;
 
+    private Integer timeZoneOff;
+
     public Integer getIncrementType() {
         if(incrementType == null && StringUtils.isNotBlank(skuSn) && StringUtils.isNumeric(skuSn)){
             return  Integer.valueOf(skuSn);