Browse Source

阳光数据接口调试

lijilei 3 years ago
parent
commit
7053f82dd6

+ 2 - 2
book-dao/src/main/java/com/book/dao/polardb/entity/SunOrder.java

@@ -16,7 +16,7 @@ public class SunOrder implements Serializable {
      *
      * @mbg.generated Wed Sep 29 15:11:11 CST 2021
      */
-    private Integer merchantId;
+    private String merchantId;
 
     /**
      *
@@ -204,7 +204,7 @@ public class SunOrder implements Serializable {
          *
          * @mbg.generated Wed Sep 29 15:11:11 CST 2021
          */
-        public Builder merchantId(Integer merchantId) {
+        public Builder merchantId(String merchantId) {
             obj.setMerchantId(merchantId);
             return this;
         }

+ 48 - 52
book-server/src/main/java/com/book/server/service/impl/SunDataServiceImpl.java

@@ -29,9 +29,12 @@ import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.util.*;
@@ -106,8 +109,8 @@ public class SunDataServiceImpl implements SunDataService {
             String type = request.getType();
             String path = request.getPath();
             Integer taskId = request.getTaskId();
-            if (!taskMap.containsKey(taskId)){
-                log.error("taskId不存在..."+taskId);
+            if (!taskMap.containsKey(taskId)) {
+                log.error("taskId不存在..." + taskId);
                 return;
             }
             String url = path;
@@ -119,12 +122,11 @@ public class SunDataServiceImpl implements SunDataService {
             SunTypeEnum sunTypeEnum = SunTypeEnum.valueOf(type);
 
             List result = new ArrayList();
-            StringBuilder sb = new StringBuilder();
 
             switch (sunTypeEnum) {
                 case user:
                 case user_active:
-                  result = caverStr2Obj(list, SunTypeUser.class);
+                    result = caverStr2Obj(list, SunTypeUser.class);
 
                     break;
                 case user_collect:
@@ -164,29 +166,6 @@ public class SunDataServiceImpl implements SunDataService {
                     break;
             }
 
-
-
-
-             /*   Map map = new Gson().fromJson(line, Map.class);
-
-                Set<String> set = map.keySet();
-                if (i == 0) {
-                    for (String key : set) {
-
-                        sb.append(key + ",");
-                    }
-
-                    sb.append("\n");
-                }
-                for (String key : set) {
-
-                    sb.append(map.get(key) + ",");
-                }
-                sb.append("\n");*/
-
-
-//        System.out.println(sb.toString());
-            log.info(sb.toString());
         } catch (Exception e) {
             e.printStackTrace();
             log.error("sun解析数据出错:", e.getMessage());
@@ -235,40 +214,59 @@ public class SunDataServiceImpl implements SunDataService {
     private void handleOrder(List<String> list, Integer taskId) {
         SunRequest request = taskMap.get(taskId);
         List<SunOrder> result = new ArrayList<>();
-        SunOrderCollect sunOrderCollect = new SunOrderCollect();
+        Map<String, SunOrderCollect> collectMap = new HashMap();
+
         for (int i = 0; i < list.size(); i++) {
             try {
 
 
                 String line = list.get(i);
-
+                if (StringUtils.isEmpty(line)) {
+                    continue;
+                }
                 GsonBuilder gsonBuilder = new GsonBuilder();
                 gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
-                Gson gson = gsonBuilder.create();
-//                SunUserCollect sunUserCollect =  gson.fromJson(line,SunUserCollect.class);
+                Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss").create();
                 SunOrder sunOrder = gson.fromJson(line, SunOrder.class);
-                result.add(sunOrder);
-                //统计累加
-                if ("书币充值".equals(sunOrder.getType())) {
 
-                    sunOrderCollect.setMoney(sunOrderCollect.getMoney().add(sunOrder.getMoney()));
-                } else if ("VIP充值".equals(sunOrder.getType())) {
-                    sunOrderCollect.setVipMoney(sunOrderCollect.getVipMoney().add(sunOrder.getMoney()));
+                SunOrderCollect sunOrderCollect = collectMap.get(sunOrder.getChannelId());
+                if (sunOrderCollect == null) {
+                    sunOrderCollect = new SunOrderCollect();
+                    sunOrderCollect.setOrderNum(0);
+                    sunOrderCollect.setMoney(new BigDecimal(0.00));
+                    sunOrderCollect.setVipMoney(new BigDecimal(0.00));
+                    sunOrderCollect.setOrderNum(0);
+                    sunOrderCollect.setSuccessOrderNum(new Integer(0));
+                    sunOrderCollect.setCreateTime(new Date());
+                    sunOrderCollect.setChannelId(sunOrder.getChannelId());
+                    sunOrderCollect.setType(0);
+                    sunOrderCollect.setStartTime(TimeUtil.dateFromStr(request.getStart_time(), TimeUtil.YYYY_M_DD_HH_MM_SS));
+                    sunOrderCollect.setEndTime(TimeUtil.dateFromStr(request.getEnd_time(), TimeUtil.YYYY_M_DD_HH_MM_SS));
+
+                }
+                sunOrderCollect.setOrderNum(sunOrderCollect.getOrderNum() + 1);
+                if ("完成".equals(sunOrder.getState())) {
+                    sunOrderCollect.setSuccessOrderNum(sunOrderCollect.getSuccessOrderNum() + 1);
+
+                    //统计累加
+                    if ("书币充值".equals(sunOrder.getType())) {
+
+                        sunOrderCollect.setMoney(sunOrderCollect.getMoney().add(sunOrder.getMoney()));
+                    } else if ("VIP充值".equals(sunOrder.getType())) {
+                        sunOrderCollect.setVipMoney(sunOrderCollect.getVipMoney().add(sunOrder.getMoney()));
+                    }
                 }
+                result.add(sunOrder);
+                collectMap.put(sunOrder.getChannelId(), sunOrderCollect);
             } catch (Exception e) {
                 log.error(e.getMessage());
                 e.printStackTrace();
             }
         }
         try {
-            sunOrderCollect.setStartTime(TimeUtil.dateFromStr(request.getStart_time(), TimeUtil.YYYY_M_DD_HH_MM_SS));
-            sunOrderCollect.setEndTime(TimeUtil.dateFromStr(request.getEnd_time(), TimeUtil.YYYY_M_DD_HH_MM_SS));
-            sunOrderCollect.setOrderNum(result.size());
-            sunOrderCollect.setChannelId(request.getChannel_id());
-            sunOrderCollect.setCreateTime(new Date());
-            sunOrderCollect.setType(0);
-            sunOrderCollectMapper.insert(sunOrderCollect);
-        } catch (ParseException e) {
+            List<SunOrderCollect> sunOrderCollects = new ArrayList<SunOrderCollect>(collectMap.values());
+            sunOrderCollectMapper.batchInsert(sunOrderCollects);
+        } catch (Exception e) {
             log.error(e.getMessage());
             e.printStackTrace();
         }
@@ -295,17 +293,15 @@ public class SunDataServiceImpl implements SunDataService {
             try {
                 GsonBuilder gsonBuilder = new GsonBuilder();
                 gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
-                Gson gson = gsonBuilder.create();
-                SunUserCollect sunUserCollect =  gson.fromJson(line,SunUserCollect.class);
-//                SunUserCollect sunUserCollect = JsonUtils.getObject(line, SunUserCollect.class);
-//                sunUserCollect.setChannelId(request.getChannel_id());
+                Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss").create();
+                SunUserCollect sunUserCollect = gson.fromJson(line, SunUserCollect.class);
                 sunUserCollect.setCreateTime(new Date());
-                sunUserCollect.setStartTime(TimeUtil.dateFromStr(request.getStart_time(),TimeUtil.YYYY_M_DD_HH_MM_SS));
-                sunUserCollect.setEndTime(TimeUtil.dateFromStr(request.getEnd_time(),TimeUtil.YYYY_M_DD_HH_MM_SS));
+                sunUserCollect.setStartTime(TimeUtil.dateFromStr(request.getStart_time(), TimeUtil.YYYY_M_DD_HH_MM_SS));
+                sunUserCollect.setEndTime(TimeUtil.dateFromStr(request.getEnd_time(), TimeUtil.YYYY_M_DD_HH_MM_SS));
                 sunUserCollect.setType(0);
 
                 result.add(sunUserCollect);
-            }catch (Exception e){
+            } catch (Exception e) {
                 e.printStackTrace();
                 log.error(e.getMessage());
             }

+ 7 - 34
book-server/src/main/java/com/book/server/task/SunDataTask.java

@@ -28,10 +28,11 @@ public class SunDataTask {
 
     @Autowired
     private SunDataService sunDataService;
+
     @Scheduled(cron = "0 0 */1 * * ?")
     private void getData() {
         log.info("定时拉取sun数据");
-        String timeFrom = TimeUtil.getDateStrAfter(-FIX_DELAY_HOUR, Calendar.HOUR_OF_DAY,TimeUtil.YYYY_M_DD_HH_MM_SS);
+        String timeFrom = TimeUtil.getDateStrAfter(-FIX_DELAY_HOUR, Calendar.HOUR_OF_DAY, TimeUtil.YYYY_M_DD_HH_MM_SS);
         String timeNow = TimeUtil.getCurrentDate(TimeUtil.YYYY_M_DD_HH_MM_SS);
         String dateNow = TimeUtil.getCurrentDate(TimeUtil.YYYYMMDD1);
 
@@ -39,56 +40,28 @@ public class SunDataTask {
 
 
         for (SunTypeEnum sunTypeEnum : SunTypeEnum.values()) {
-            SunRequest request =new SunRequest();
+            SunRequest request = new SunRequest();
 
             switch (sunTypeEnum) {
-                case user:
-                    request.setStart_time(timeFrom);
-                    request.setEnd_time(timeNow);
-                    if (request.getIs_update() == null ) {
-                        request.setIs_update("1");
-                    }
-                    break;
-                case user_active:
-                    request.setSearch_date(dateNow);
 
-                    break;
+
                 case user_collect:
-                case user_day_collect:
                     request.setStart_time(timeFrom);
                     request.setEnd_time(timeNow);
-
+                    sunDataService.requestData(request, sunTypeEnum);
 
                     break;
-                case channel:
-                    request.setChannel_id(channelId);
-                    break;
+
                 case order:
                     request.setIs_finish("1");
+                    sunDataService.requestData(request, sunTypeEnum);
                     break;
-                case custom_url:
 
-                case custom_url_day_collect:
-                case referral:
-                case referral_day_collect:
-                case activity:
-                    request.setStart_time(timeFrom);
-                    request.setEnd_time(timeNow);
-
-                    break;
-                case activity_collect:
-                    break;
-                case activity_day_collect:
-                    request.setStart_time(timeFrom);
-                    request.setEnd_time(timeNow);
-
-                    break;
                 default:
                     break;
 
             }
 
-            Result result = sunDataService.requestData(request, sunTypeEnum);
 
         }
     }