package com.yutou.nas.other;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yutou.nas.NasApplication;
import com.yutou.nas.utils.RedisTools;
import com.yutou.nas.utils.Tools;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Enumeration;
import java.util.List;

@Controller
public class tools {


    @ResponseBody
    @RequestMapping(value = "tools/get.do")
    public String getJs(HttpServletRequest request, HttpServletResponse response) throws Exception {
        Enumeration<String> name = request.getHeaderNames();
        while (name.hasMoreElements()) {
            String na = name.nextElement();
            com.yutou.nas.utils.Log.i(na + " " + request.getHeader(na));
        }
        File file = new File("D:\\IDEA\\web_toolset\\web\\js\\my.js");
        BufferedReader reader = new BufferedReader(new FileReader(file));
        String tmp, str = "";
        while ((tmp = reader.readLine()) != null) {
            if (tmp.contains("\"")) {
                // tmp=tmp.replace("\"","\\\"");
            }
            str += tmp;
        }
        reader.close();
      /*  response.setHeader("Content-Type","application/javascript; charset=utf-8");
        PrintWriter writer=response.getWriter();
        writer.write(str);
        writer.flush();
        writer.close();*/
        return str;
        //return "function test(){ return \"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1588139022200&di=8cc8405f7514dd54bd82fcd070349603&imgtype=0&src=http%3A%2F%2Fa2.att.hudong.com%2F36%2F48%2F19300001357258133412489354717.jpg\" }";
    }

    @RequestMapping("/public/version.do")
    @ResponseBody
    public String getVersion() {
        return NasApplication.version;
    }

    @ResponseBody
    @RequestMapping("/public/request.do")
    public String testRequest(HttpServletRequest request) {
        JSONObject params = new JSONObject();
        JSONArray cookies = new JSONArray();
        JSONObject header = new JSONObject();
        for (String key : request.getParameterMap().keySet()) {
            params.put(key, request.getParameter(key));
        }
        if (request.getCookies() != null) {
            for (Cookie cookie : request.getCookies()) {
                JSONObject ck = JSONObject.parseObject(JSONObject.toJSONString(cookie));
                cookies.add(ck);
            }
        }
        Enumeration<String> enumeration = request.getHeaderNames();
        while (enumeration != null && enumeration.hasMoreElements()) {
            String tmp = enumeration.nextElement();
            header.put(tmp, request.getHeader(tmp));
        }
        JSONObject json = new JSONObject();
        json.put("code", 0);
        json.put("method", request.getMethod());
        json.put("address", Tools.getRemoteAddress(request));
        json.put("UA", request.getHeader("User-Agent"));
        json.put("addressUrl", request.getPathInfo());
        json.put("params", params);
        json.put("cookie", cookies);
        json.put("header", header);
        Tools.sendServer("打印请求", json.toJSONString());
        try {
            switch (RedisTools.get("request")) {
                case "success":
                    return "success";
                case "-999":
                case "param":
                    return json.toJSONString();
                default:
                    return RedisTools.get("request");
            }
        } catch (Exception e) {
            //  e.printStackTrace();
        }

        return json.toJSONString();
    }

    @ResponseBody
    @RequestMapping("/private/request.do")
    public String setRequest(String ret, String data) {
        switch (ret) {
            case "success":
                RedisTools.set("request", "success");
                break;
            case "user":
                RedisTools.set("request", data);
                break;
            default:
                RedisTools.set("request", "param");
                break;
        }
        return RedisTools.get("request");
    }

}
