package com.ks.tool.bkz.controller;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.ks.tool.bkz.dto.FirstOrderSubParseResult;
|
import com.ks.tool.bkz.entity.FirstOrderSubInfo;
|
import com.ks.tool.bkz.entity.user.UserInfo;
|
import com.ks.tool.bkz.exception.TBCookieException;
|
import com.ks.tool.bkz.service.manager.RedisManager;
|
import com.ks.tool.bkz.service.sdlj.SDLJGoodsService;
|
import com.ks.tool.bkz.service.user.UserService;
|
import com.ks.tool.bkz.util.*;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.PrintWriter;
|
import java.io.UnsupportedEncodingException;
|
import java.net.URLDecoder;
|
import java.net.URLEncoder;
|
import java.util.Map;
|
|
@Controller
|
@RequestMapping("sdlj/parse")
|
public class ParseController {
|
@Resource
|
private RedisManager redisManager;
|
|
@Resource
|
private SDLJGoodsService sdljGoodsService;
|
|
@Resource
|
private UserService userService;
|
|
private String getCookieKey(String tbUid) {
|
return "tbcookie-" + tbUid;
|
}
|
|
@RequestMapping("getRequestUrl")
|
@ResponseBody
|
public String getRequestUrl(String baseUrl, String tbUid) {
|
String host = UrlUtil.getHost(baseUrl);
|
Map<String, String> params = UrlUtil.getParamsMap(baseUrl);
|
params.put("t", System.currentTimeMillis() + "");
|
|
String cookie = redisManager.get(getCookieKey(tbUid));
|
String token = FirstOrderSubDataUtil.getTokenFromCookie(cookie);
|
String data = params.get("data");
|
try {
|
data = URLDecoder.decode(data, "UTF-8");
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
}
|
JSONObject dataJSON = JSONObject.parseObject(data);
|
String paramsStr = dataJSON.getString("params");
|
dataJSON = JSONObject.parseObject(paramsStr);
|
int pageNo = dataJSON.getInteger("pageNo");
|
|
if (pageNo < 30) {
|
dataJSON.put("pageNo", pageNo + 1);
|
JSONObject paramsJSON = new JSONObject();
|
paramsJSON.put("params", dataJSON.toJSONString());
|
data = paramsJSON.toJSONString();
|
String sign = FirstOrderSubDataUtil.getSign(token, params.get("t"), params.get("appKey"), data);
|
params.put("data", data);
|
params.put("sign", sign);
|
String requestUrl = UrlUtil.getRequestUrl(host, params);
|
JSONObject root = new JSONObject();
|
root.put("url", requestUrl);
|
System.out.println(requestUrl);
|
return JsonUtil.loadTrueResult(root);
|
} else {
|
return JsonUtil.loadFalseResult(1, "");
|
}
|
}
|
|
|
/**
|
* 上传cookie
|
*
|
* @param cookies
|
* @return
|
*/
|
@RequestMapping("uploadCookies")
|
@ResponseBody
|
public String uploadCookie(String cookies) {
|
String tbUid = TBCookieUtil.getTBUid(cookies);
|
if (!StringUtil.isNullOrEmpty(tbUid)) {
|
redisManager.save(getCookieKey(tbUid), cookies, 60 * 60);
|
}
|
return JsonUtil.loadTrueResult("");
|
}
|
|
@RequestMapping("getLoginUrl")
|
public void getLoginUrl(PrintWriter out) {
|
JSONObject data = new JSONObject();
|
data.put("loginUrl", String.format("http://login.taobao.com/member/login.jhtml?style=mini&newMini2=true&redirectURL=%s&full_redirect=true&disableQuickLogin=true", URLEncoder.encode("https://m.tb.cn/h.VN61jro?sm=9ed9c4")));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
|
@RequestMapping("getCookie")
|
@ResponseBody
|
public String getCookie() {
|
return redisManager.get("cookie");
|
}
|
|
@RequestMapping("uploadContent")
|
@ResponseBody
|
public String uploadContent(String content, String tbUid, HttpServletRequest request) {
|
String token = request.getHeader("token");
|
String account = UserUtil.getAccountFromToken(token);
|
UserInfo user = userService.selectByAccount(account);
|
try {
|
FirstOrderSubParseResult result = FirstOrderSubDataUtil.parseOrderSubData(content);
|
if (result != null && result.isHasNextPage()) {
|
if (result.getGoodsList() != null)
|
for (FirstOrderSubInfo info : result.getGoodsList()) {
|
sdljGoodsService.addSDLJGoods(info,user.getId(),tbUid );
|
System.out.println(info.getId() + "-" + info.getTitle());
|
}
|
System.out.println("----------------------------");
|
return JsonUtil.loadTrueResult("");
|
} else {
|
return JsonUtil.loadFalseResult(1, "无更多数据");
|
}
|
} catch (TBCookieException e) {
|
return JsonUtil.loadFalseResult(1001, "淘宝授权出错");
|
}
|
}
|
|
|
}
|