|
@@ -1,287 +1,334 @@
|
|
-package com.book.server.service.impl;
|
|
|
|
-
|
|
|
|
-import com.book.dao.polardb.entity.SunOrder;
|
|
|
|
-import com.book.dao.polardb.entity.SunOrderCollect;
|
|
|
|
-import com.book.dao.polardb.entity.SunUserCollect;
|
|
|
|
-import com.book.dao.polardb.mapper.SunOrderCollectMapper;
|
|
|
|
-import com.book.dao.polardb.mapper.SunOrderMapper;
|
|
|
|
-import com.book.dao.polardb.mapper.SunUserCollectMapper;
|
|
|
|
-import com.book.dao.utils.DateUtils;
|
|
|
|
-import com.book.dao.utils.TimeUtil;
|
|
|
|
-import com.book.server.common.entity.Result;
|
|
|
|
-import com.book.server.common.util.JsonUtils;
|
|
|
|
-import com.book.server.config.SunTypeEnum;
|
|
|
|
-import com.book.server.service.SunDataService;
|
|
|
|
-import com.book.server.utils.DataUtil;
|
|
|
|
-import com.book.server.utils.HttpTool;
|
|
|
|
-import com.book.server.utils.HttpUtils;
|
|
|
|
-import com.book.server.vo.*;
|
|
|
|
-import com.google.gson.FieldNamingPolicy;
|
|
|
|
-import com.google.gson.Gson;
|
|
|
|
-import com.google.gson.GsonBuilder;
|
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
|
-import org.apache.commons.codec.digest.DigestUtils;
|
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
|
-
|
|
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
|
-import java.text.ParseException;
|
|
|
|
-import java.util.*;
|
|
|
|
-import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * created in 2021/9/28
|
|
|
|
- * Project: book-store
|
|
|
|
- *
|
|
|
|
- * @author win7
|
|
|
|
- */
|
|
|
|
-@Service
|
|
|
|
-@Slf4j
|
|
|
|
-public class SunDataServiceImpl implements SunDataService {
|
|
|
|
- private static final String CLIENT_ID = "10005818";
|
|
|
|
- private static final String TOKEN = "PKp2HD39ze3CdzizqH";
|
|
|
|
- private static final String VIP_ID = "36637";
|
|
|
|
- private static final String URL = "https://data.yifengaf.cn";
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- private Map<Integer, SunRequest> taskMap = new ConcurrentHashMap<>();
|
|
|
|
- @Autowired
|
|
|
|
- private SunUserCollectMapper sunUserCollectMapper;
|
|
|
|
- @Autowired
|
|
|
|
- private SunOrderMapper sunOrderMapper;
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
- private SunOrderCollectMapper sunOrderCollectMapper;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public Result requestData(SunRequest request, SunTypeEnum sunTypeEnum) {
|
|
|
|
- try {
|
|
|
|
-
|
|
|
|
- String url = URL + sunTypeEnum.getPath();
|
|
|
|
- request.setClient_id(CLIENT_ID);
|
|
|
|
-// request.setToken(TOKEN);
|
|
|
|
- request.setNonce(UUID.randomUUID().toString().replace("-", ""));
|
|
|
|
- request.setTimestamp(System.currentTimeMillis() + "");
|
|
|
|
- request.setVip_id(VIP_ID);
|
|
|
|
- String signaure = DigestUtils.sha1Hex(TOKEN + request.getTimestamp() + CLIENT_ID + request.getNonce());
|
|
|
|
- request.setSignaure(signaure);
|
|
|
|
-
|
|
|
|
- String jsonStr = JsonUtils.toJsonStr(request);
|
|
|
|
- Map<String, Object> map = JsonUtils.getMap(jsonStr);
|
|
|
|
- String s = DataUtil.map2form(map);
|
|
|
|
-
|
|
|
|
- String result = HttpUtils.sendPost(url, s.getBytes(StandardCharsets.UTF_8));
|
|
|
|
- log.info("请求" + sunTypeEnum.getName() + ":" + JsonUtils.toJsonStr(request));
|
|
|
|
- log.info("响应" + sunTypeEnum.getName() + ":" + JsonUtils.toJsonStr(result));
|
|
|
|
- SunResult object = JsonUtils.getObject(result, SunResult.class);
|
|
|
|
- if (object != null && 0 == object.getError_code()) {
|
|
|
|
- SunResult.Data data = object.getData();
|
|
|
|
- int task_id = data.getTask_id();
|
|
|
|
- taskMap.put(task_id, request);
|
|
|
|
- return Result.success();
|
|
|
|
- } else {
|
|
|
|
- return object == null ? Result.failure() : Result.failure(object.getError_code(), object.getError_msg());
|
|
|
|
- }
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- log.error("sun 获取数据异常:" + e.getMessage());
|
|
|
|
- }
|
|
|
|
- return Result.failure();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public void pullData(SunNotifyRequest request) {
|
|
|
|
- try {
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- String type = request.getType();
|
|
|
|
- String path = request.getPath();
|
|
|
|
- Integer taskId = request.getTaskId();
|
|
|
|
- if (!taskMap.containsKey(taskId)){
|
|
|
|
- log.error("taskId不存在..."+taskId);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- String url = path;
|
|
|
|
- List<String> list = HttpTool.sendGet(url);
|
|
|
|
- if (list == null || list.isEmpty()) {
|
|
|
|
- log.error("读取sun文件为空");
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- 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);
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
- case user_collect:
|
|
|
|
- case user_day_collect:
|
|
|
|
-// result = caverStr2Obj(list, SunTypeUserDayCollect.class);
|
|
|
|
- handleUserResult(list, taskId);
|
|
|
|
- break;
|
|
|
|
- case channel:
|
|
|
|
-
|
|
|
|
- result = caverStr2Obj(list, SunTypeChannel.class);
|
|
|
|
- break;
|
|
|
|
- case order:
|
|
|
|
-// result = caverStr2Obj(list, SunTypeOrder.class);
|
|
|
|
- handleOrder(list, taskId);
|
|
|
|
- break;
|
|
|
|
- case custom_url:
|
|
|
|
- result = caverStr2Obj(list, SunTypeCustomUrl.class);
|
|
|
|
- break;
|
|
|
|
- case custom_url_day_collect:
|
|
|
|
- result = caverStr2Obj(list, SunTypeCustomUrlCollect.class);
|
|
|
|
- break;
|
|
|
|
- case referral:
|
|
|
|
- result = caverStr2Obj(list, SunTypeReferral.class);
|
|
|
|
- break;
|
|
|
|
- case referral_day_collect:
|
|
|
|
- result = caverStr2Obj(list, SunTypeReferralCollect.class);
|
|
|
|
- break;
|
|
|
|
- case activity:
|
|
|
|
- result = caverStr2Obj(list, SunTypeActivity.class);
|
|
|
|
- break;
|
|
|
|
- case activity_collect:
|
|
|
|
- case activity_day_collect:
|
|
|
|
-
|
|
|
|
- result = caverStr2Obj(list, SunTypeActivityCollect.class);
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- 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());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private void handleOrder(List<String> list, Integer taskId) {
|
|
|
|
- SunRequest request = taskMap.get(taskId);
|
|
|
|
- List<SunOrder> result = new ArrayList<>();
|
|
|
|
- SunOrderCollect sunOrderCollect = new SunOrderCollect();
|
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
|
- try {
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- String line = list.get(i);
|
|
|
|
-
|
|
|
|
- GsonBuilder gsonBuilder = new GsonBuilder();
|
|
|
|
- gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
|
|
|
|
- Gson gson = gsonBuilder.create();
|
|
|
|
-// SunUserCollect sunUserCollect = gson.fromJson(line,SunUserCollect.class);
|
|
|
|
- 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()));
|
|
|
|
- }
|
|
|
|
- } 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) {
|
|
|
|
- log.error(e.getMessage());
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- sunOrderMapper.batchInsert(result);
|
|
|
|
-
|
|
|
|
- taskMap.remove(taskId);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 用户数据处理
|
|
|
|
- *
|
|
|
|
- * @param list
|
|
|
|
- * @param taskId
|
|
|
|
- */
|
|
|
|
- private void handleUserResult(List<String> list, Integer taskId) {
|
|
|
|
- List<SunUserCollect> result = new ArrayList<>();
|
|
|
|
- SunRequest request = taskMap.get(taskId);
|
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
|
- String line = list.get(i);
|
|
|
|
- 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());
|
|
|
|
- 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.setType(0);
|
|
|
|
-
|
|
|
|
- result.add(sunUserCollect);
|
|
|
|
- }catch (Exception e){
|
|
|
|
- e.printStackTrace();
|
|
|
|
- log.error(e.getMessage());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- sunUserCollectMapper.batchInsert(result);
|
|
|
|
- taskMap.remove(taskId);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- private List caverStr2Obj(List<String> list, Class classes) {
|
|
|
|
-
|
|
|
|
- List result = new ArrayList<>();
|
|
|
|
-
|
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
|
- String line = list.get(i);
|
|
|
|
- Object object = JsonUtils.getObject(line, classes);
|
|
|
|
- result.add(object);
|
|
|
|
- }
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
|
|
+package com.book.server.service.impl;
|
|
|
|
+
|
|
|
|
+import com.book.dao.VO.SunVO;
|
|
|
|
+import com.book.dao.polardb.entity.SunChannel;
|
|
|
|
+import com.book.dao.polardb.entity.SunOrder;
|
|
|
|
+import com.book.dao.polardb.entity.SunOrderCollect;
|
|
|
|
+import com.book.dao.polardb.entity.SunUserCollect;
|
|
|
|
+import com.book.dao.polardb.mapper.SunChannelMapper;
|
|
|
|
+import com.book.dao.polardb.mapper.SunOrderCollectMapper;
|
|
|
|
+import com.book.dao.polardb.mapper.SunOrderMapper;
|
|
|
|
+import com.book.dao.polardb.mapper.SunUserCollectMapper;
|
|
|
|
+import com.book.dao.polardb.pojo.example.SunChannelExample;
|
|
|
|
+import com.book.dao.polardb.pojo.example.SunOrderCollectExample;
|
|
|
|
+import com.book.dao.polardb.pojo.example.SunOrderExample;
|
|
|
|
+import com.book.dao.polardb.pojo.example.SunUserCollectExample;
|
|
|
|
+import com.book.dao.utils.DateUtils;
|
|
|
|
+import com.book.dao.utils.TimeUtil;
|
|
|
|
+import com.book.server.common.entity.PageResult;
|
|
|
|
+import com.book.server.common.entity.Result;
|
|
|
|
+import com.book.server.common.util.JsonUtils;
|
|
|
|
+import com.book.server.config.SunTypeEnum;
|
|
|
|
+import com.book.server.service.SunDataService;
|
|
|
|
+import com.book.server.utils.DataUtil;
|
|
|
|
+import com.book.server.utils.HttpTool;
|
|
|
|
+import com.book.server.utils.HttpUtils;
|
|
|
|
+import com.book.server.vo.*;
|
|
|
|
+import com.google.gson.FieldNamingPolicy;
|
|
|
|
+import com.google.gson.Gson;
|
|
|
|
+import com.google.gson.GsonBuilder;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.apache.commons.codec.digest.DigestUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
|
+import java.text.ParseException;
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * created in 2021/9/28
|
|
|
|
+ * Project: book-store
|
|
|
|
+ *
|
|
|
|
+ * @author win7
|
|
|
|
+ */
|
|
|
|
+@Service
|
|
|
|
+@Slf4j
|
|
|
|
+public class SunDataServiceImpl implements SunDataService {
|
|
|
|
+ private static final String CLIENT_ID = "10005818";
|
|
|
|
+ private static final String TOKEN = "PKp2HD39ze3CdzizqH";
|
|
|
|
+ private static final String VIP_ID = "36637";
|
|
|
|
+ private static final String URL = "https://data.yifengaf.cn";
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private Map<Integer, SunRequest> taskMap = new ConcurrentHashMap<>();
|
|
|
|
+ @Autowired
|
|
|
|
+ private SunUserCollectMapper sunUserCollectMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SunOrderMapper sunOrderMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private SunOrderCollectMapper sunOrderCollectMapper;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Result requestData(SunRequest request, SunTypeEnum sunTypeEnum) {
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+ String url = URL + sunTypeEnum.getPath();
|
|
|
|
+ request.setClient_id(CLIENT_ID);
|
|
|
|
+// request.setToken(TOKEN);
|
|
|
|
+ request.setNonce(UUID.randomUUID().toString().replace("-", ""));
|
|
|
|
+ request.setTimestamp(System.currentTimeMillis() + "");
|
|
|
|
+ request.setVip_id(VIP_ID);
|
|
|
|
+ String signaure = DigestUtils.sha1Hex(TOKEN + request.getTimestamp() + CLIENT_ID + request.getNonce());
|
|
|
|
+ request.setSignaure(signaure);
|
|
|
|
+
|
|
|
|
+ String jsonStr = JsonUtils.toJsonStr(request);
|
|
|
|
+ Map<String, Object> map = JsonUtils.getMap(jsonStr);
|
|
|
|
+ String s = DataUtil.map2form(map);
|
|
|
|
+
|
|
|
|
+ String result = HttpUtils.sendPost(url, s.getBytes(StandardCharsets.UTF_8));
|
|
|
|
+ log.info("请求" + sunTypeEnum.getName() + ":" + JsonUtils.toJsonStr(request));
|
|
|
|
+ log.info("响应" + sunTypeEnum.getName() + ":" + JsonUtils.toJsonStr(result));
|
|
|
|
+ SunResult object = JsonUtils.getObject(result, SunResult.class);
|
|
|
|
+ if (object != null && 0 == object.getError_code()) {
|
|
|
|
+ SunResult.Data data = object.getData();
|
|
|
|
+ int task_id = data.getTask_id();
|
|
|
|
+ taskMap.put(task_id, request);
|
|
|
|
+ return Result.success();
|
|
|
|
+ } else {
|
|
|
|
+ return object == null ? Result.failure() : Result.failure(object.getError_code(), object.getError_msg());
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ log.error("sun 获取数据异常:" + e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ return Result.failure();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void pullData(SunNotifyRequest request) {
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ String type = request.getType();
|
|
|
|
+ String path = request.getPath();
|
|
|
|
+ Integer taskId = request.getTaskId();
|
|
|
|
+ if (!taskMap.containsKey(taskId)){
|
|
|
|
+ log.error("taskId不存在..."+taskId);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ String url = path;
|
|
|
|
+ List<String> list = HttpTool.sendGet(url);
|
|
|
|
+ if (list == null || list.isEmpty()) {
|
|
|
|
+ log.error("读取sun文件为空");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ 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);
|
|
|
|
+
|
|
|
|
+ break;
|
|
|
|
+ case user_collect:
|
|
|
|
+ case user_day_collect:
|
|
|
|
+// result = caverStr2Obj(list, SunTypeUserDayCollect.class);
|
|
|
|
+ handleUserResult(list, taskId);
|
|
|
|
+ break;
|
|
|
|
+ case channel:
|
|
|
|
+
|
|
|
|
+ result = caverStr2Obj(list, SunTypeChannel.class);
|
|
|
|
+ break;
|
|
|
|
+ case order:
|
|
|
|
+// result = caverStr2Obj(list, SunTypeOrder.class);
|
|
|
|
+ handleOrder(list, taskId);
|
|
|
|
+ break;
|
|
|
|
+ case custom_url:
|
|
|
|
+ result = caverStr2Obj(list, SunTypeCustomUrl.class);
|
|
|
|
+ break;
|
|
|
|
+ case custom_url_day_collect:
|
|
|
|
+ result = caverStr2Obj(list, SunTypeCustomUrlCollect.class);
|
|
|
|
+ break;
|
|
|
|
+ case referral:
|
|
|
|
+ result = caverStr2Obj(list, SunTypeReferral.class);
|
|
|
|
+ break;
|
|
|
|
+ case referral_day_collect:
|
|
|
|
+ result = caverStr2Obj(list, SunTypeReferralCollect.class);
|
|
|
|
+ break;
|
|
|
|
+ case activity:
|
|
|
|
+ result = caverStr2Obj(list, SunTypeActivity.class);
|
|
|
|
+ break;
|
|
|
|
+ case activity_collect:
|
|
|
|
+ case activity_day_collect:
|
|
|
|
+
|
|
|
|
+ result = caverStr2Obj(list, SunTypeActivityCollect.class);
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ 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());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private SunChannelMapper sunChannelMapper;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public PageResult<SunChannel> pageSunChannel(SunVO sunVO) {
|
|
|
|
+ SunChannelExample example = SunChannelExample.newAndCreateCriteria().example();
|
|
|
|
+ long l = sunChannelMapper.countByExample(example);
|
|
|
|
+ example.page(sunVO.getPage(), sunVO.getSize());
|
|
|
|
+
|
|
|
|
+ return new PageResult<>(l,sunChannelMapper.selectByExample(example));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public PageResult<SunOrder> pageSunOrder(SunVO sunVO) {
|
|
|
|
+ SunOrderExample example = SunOrderExample.newAndCreateCriteria().example();
|
|
|
|
+ long l = sunOrderMapper.countByExample(example);
|
|
|
|
+ example.page(sunVO.getPage(), sunVO.getSize());
|
|
|
|
+ example.orderBy(SunOrder.Column.createTime.desc());
|
|
|
|
+ return new PageResult<>(l,sunOrderMapper.selectByExample(example));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public PageResult<SunOrderCollect> pageOrderCollect(SunVO sunVO) {
|
|
|
|
+ SunOrderCollectExample example = SunOrderCollectExample.newAndCreateCriteria().example();
|
|
|
|
+ long l = sunOrderCollectMapper.countByExample(example);
|
|
|
|
+ example.page(sunVO.getPage(), sunVO.getSize());
|
|
|
|
+ example.orderBy(SunOrderCollect.Column.createTime.desc());
|
|
|
|
+ return new PageResult<>(l,sunOrderCollectMapper.selectByExample(example));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public PageResult<SunUserCollect> pageUserCollect(SunVO sunVO) {
|
|
|
|
+ SunUserCollectExample example = SunUserCollectExample.newAndCreateCriteria().example();
|
|
|
|
+ long l = sunUserCollectMapper.countByExample(example);
|
|
|
|
+ example.page(sunVO.getPage(), sunVO.getSize());
|
|
|
|
+ example.orderBy(SunUserCollect.Column.createTime.desc());
|
|
|
|
+ return new PageResult<>(l,sunUserCollectMapper.selectByExample(example));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void handleOrder(List<String> list, Integer taskId) {
|
|
|
|
+ SunRequest request = taskMap.get(taskId);
|
|
|
|
+ List<SunOrder> result = new ArrayList<>();
|
|
|
|
+ SunOrderCollect sunOrderCollect = new SunOrderCollect();
|
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ String line = list.get(i);
|
|
|
|
+
|
|
|
|
+ GsonBuilder gsonBuilder = new GsonBuilder();
|
|
|
|
+ gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
|
|
|
|
+ Gson gson = gsonBuilder.create();
|
|
|
|
+// SunUserCollect sunUserCollect = gson.fromJson(line,SunUserCollect.class);
|
|
|
|
+ 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()));
|
|
|
|
+ }
|
|
|
|
+ } 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) {
|
|
|
|
+ log.error(e.getMessage());
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ sunOrderMapper.batchInsert(result);
|
|
|
|
+
|
|
|
|
+ taskMap.remove(taskId);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 用户数据处理
|
|
|
|
+ *
|
|
|
|
+ * @param list
|
|
|
|
+ * @param taskId
|
|
|
|
+ */
|
|
|
|
+ private void handleUserResult(List<String> list, Integer taskId) {
|
|
|
|
+ List<SunUserCollect> result = new ArrayList<>();
|
|
|
|
+ SunRequest request = taskMap.get(taskId);
|
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
|
+ String line = list.get(i);
|
|
|
|
+ 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());
|
|
|
|
+ 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.setType(0);
|
|
|
|
+
|
|
|
|
+ result.add(sunUserCollect);
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ log.error(e.getMessage());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ sunUserCollectMapper.batchInsert(result);
|
|
|
|
+ taskMap.remove(taskId);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private List caverStr2Obj(List<String> list, Class classes) {
|
|
|
|
+
|
|
|
|
+ List result = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
|
+ String line = list.get(i);
|
|
|
|
+ Object object = JsonUtils.getObject(line, classes);
|
|
|
|
+ result.add(object);
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
}
|
|
}
|