|
@@ -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());
|
|
|
}
|