package edu.neusoft.project.controller;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import edu.neusoft.project.model.service.IndentService;
import edu.neusoft.project.model.service.PersonService;
import edu.neusoft.project.model.service.SongService;
import edu.neusoft.project.model.vo.Monite;
import edu.neusoft.project.model.vo.ProvinceAdd;
import edu.neusoft.project.util.CSVReader;
import edu.neusoft.project.util.EchartsMapValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.IOException;
import java.util.List;


@Controller
public class AnalysisBasicAction {
    @Autowired
    private PersonService service;
    @Autowired
    private SongService songService;
    @Autowired
    private IndentService indentService;


    @RequestMapping("ackTime.action")
    public void ackTime(String time){
        service.insAckTime(time);
    }
    @RequestMapping("insIPAdd.action")
    public void insIpAdd(String cip,String cid, String cname){
        System.out.println(cip+":"+cid+":"+cname);
        service.insProvince(cid,cname);
//        System.out.println("--------------------++++++++++----------------");
            if (cname.contains("市")||cname.contains("省")||cname.contains("区")){
                service.insProvinceAdd(cname);
            }

        service.insIpAdd(cip);
    }

    @RequestMapping("/getCPU.action")
    public @ResponseBody Object getCPU( ModelMap model){

        CSVReader reader= new CSVReader("P:\\shujucaij\\1\\OSA-01712041922_20190713-000006\\DataCollector01.csv");    //OSA
//        CSVReader reader= new CSVReader("C:\\DateCollector\\iZa3datzzyguwdZ_20190709-000002\\DataCollector01.csv"); //Aliyun
        Monite m =null;
        try {
            m=reader.getElementLine();
            System.out.println(m.toString());

        } catch (IOException e) {
            e.printStackTrace();
        }
//        model.put("monite",m);
        return m;
    }
    @RequestMapping("/getProvinceAddEcharts.action")
    public @ResponseBody JSONObject getProvinceAddEcharts(){
        List<ProvinceAdd> provinceList = service.getProvinceAddEcharts();
        System.out.println(provinceList);
        JSONObject arrayList= EchartsMapValue.mapJSONRefactor(provinceList);
        System.out.println("+++++++++++++++++++++++++++++++++");
        System.out.println(arrayList);
        return arrayList;
    }
    @RequestMapping("bg.m")
    public String bg(){
        return "echarts/bg";
    }

//    @RequestMapping("/process")
//    public String getCPU( ModelMap model, Monite m){
//
//        CSVReader reader= new CSVReader("V:\\WorkSpaces\\JavaEEStructure\\DataCollector01.csv");
////        =null;
//        try {
//            m=reader.getElementLine();
//            System.out.println(m.toString());
//
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        model.put("monite",m);
//        return "processTime";
//    }


}






//    private Person globalPerson = null;
////    HttpSession session;
//    public String level = null;

//    @RequestMapping("userLogin.action")
//    public String adminList(){
//        return "userLogin";
//    }
//    @RequestMapping("login.action")
//    public String login(){
//        return "userLogin";
//    }
//    /*public ModelAndView login(){
//        ModelAndView modelAndView=new ModelAndView();
//        modelAndView.setViewName("login");
//        return modelAndView;
//    }*/
////    直接返回String，就相当于创建ModelAndView，viewName
//    @RequestMapping("regist.action")
//    public String regist(){
//        return "regist";
//    }
//
//    @RequestMapping("userRegist.action")
//    public String registUser(){
//        return "userRegist";
//    }
//
//    @RequestMapping("loginSuccess.action")
//    public String loginSuccess(HttpServletRequest request,Person person, ModelMap model){
//        Person ret;
//        String excl = String.valueOf(person.getUsername().charAt(0));
//        if (excl.equals("!")){
//            person.setUsername(person.getUsername().substring(1));
//            ret=service.adminLogin(person);
//        }else {
//            ret = service.login(person);
//        }
//        globalPerson = person;
//        System.out.println(globalPerson);
//        System.out.println("----------------------  ");
//        if (excl.equals("!") && ret != null){
//            List<Indent> indents=service.showAllAdminIndent();
//            System.out.println(indents);
//            model.put("adminName",person.getUsername());
//            model.put("AllIndents",indents);
//            return "adminIndentList";
//        }else  if (globalPerson!=null){
//            String level = service.getLevel(person);
//            List<Song> list = songService.likeSongs();
//            if(ret!=null){
//                model.put("list",list);
//                model.put("username",person.getUsername());
//                model.put("password",person.getPassword());
//                model.put("personCode",person.getPersonCode());
//                model.put("personLevel",level);
//                model.put("personListened",person.getPersonListened());
//                return "logined";
//            }
//        }
//        return "userLogin";
//    }
//
//    @RequestMapping("registSuccess.action")
//    public String registSuccess(Person person, ModelMap model){
//        Date date = new Date();
//        String d = "#"+String.valueOf(date.getTime());
//        person.setPersonCode(d);
//        service.regist(person);
//        return "userLogin";
//    }
//
//    @RequestMapping("Homepage.action")
//    public String homepage(ModelMap model){
////        List<Song> list = songService.likeSongs();
////        model.put("list",list);
//        System.out.println("System Load Okay!--------------");
//        return "Homepage";
//    }
//    @RequestMapping("logo.action")
//    public String logo(ModelMap model){
//        if (globalPerson!=null){
//            List<Song> list02 = songService.likeSongs();
//            model.put("list",list02);
//            model.put("username",globalPerson.getUsername());
//            model.put("password",globalPerson.getPassword());
//            model.put("personCode",globalPerson.getPersonCode());
//            model.put("personLevel",level);
//            model.put("personListened",globalPerson.getPersonListened());
//            return "logined";
//        }
//        return "Homepage";
//    }
//    @RequestMapping("StationAnalysis.action")
//    public String stationAnalysis(){
//        return "stationAnalysis";
//    }
//    @RequestMapping("web.action")
//    public String web(){
//        return "AckTime";
//    }
//
//    @RequestMapping("aboutMe.action")
//    public String aboutMe(ModelMap model){
//        System.out.println("AboutMeAction");
//        List<Indent> indentList = indentService.showMyIndentList(globalPerson.getPersonCode());
//        System.out.println(indentList);
////        model.put("myIndent",indentList);
//
//
//        if (globalPerson!=null){
//            List<Song> list04 = songService.likeSongs();
//            model.put("list",list04);
//            model.put("username",globalPerson.getUsername());
//            model.put("password",globalPerson.getPassword());
//            model.put("personCode",globalPerson.getPersonCode());
//            model.put("personLevel",level);
//            model.put("personListened",globalPerson.getPersonListened());
//            model.put("myIndent",indentList);
//            return "aboutMe";
//        }
//        return "Homepage";
//
//    }
//    @RequestMapping("findMusic.action")
//    public String findMusic(ModelMap model){
//        if (globalPerson!=null){
//            List<Song> list04 = songService.likeSongs();
//            model.put("list",list04);
//            model.put("username",globalPerson.getUsername());
//            model.put("password",globalPerson.getPassword());
//            model.put("personCode",globalPerson.getPersonCode());
//            model.put("personLevel",level);
//            model.put("personListened",globalPerson.getPersonListened());
//            return "logined";
//        }
//        return "Homepage";
//    }
//
//    @RequestMapping("myMusic.action")
//    public String myMusic(ModelMap model){
//        if (globalPerson!=null){
//            List<Song> list02 = songService.likeSongs();
//            model.put("list",list02);
//            List<Song> mySong = songService.mySong(globalPerson.getPersonCode());
//            System.out.println(mySong+String.valueOf(Math.random()));
//            model.put("mySong",mySong);
//
//            model.put("username",globalPerson.getUsername());
//            model.put("password",globalPerson.getPassword());
//            model.put("personCode",globalPerson.getPersonCode());
//            model.put("personLevel",level);
//            model.put("personListened",globalPerson.getPersonListened());
//            return "loginedAndMyMusic";
//        }
//        return "Homepage";
//    }
//
//    @RequestMapping("myFriends.action")
//    public String myFriends(ModelMap model){
//        if (globalPerson!=null){
//            List<Song> list04 = songService.likeSongs();
//            model.put("list",list04);
//            model.put("username",globalPerson.getUsername());
//            model.put("password",globalPerson.getPassword());
//            model.put("personCode",globalPerson.getPersonCode());
//            model.put("personLevel",level);
//            model.put("personListened",globalPerson.getPersonListened());
//            return "logined";
//        }
//        return "Homepage";
//    }
//
//    @RequestMapping("searchSongs.action")
//    public String searchSongs(String searchText,ModelMap model){
////        System.out.println(searchText+"0000000000000000");
//        if (searchText.equals("")||searchText==null){
//            if (globalPerson!=null){
//                List<Song> list04 = songService.likeSongs();
//                model.put("list",list04);
//                model.put("username",globalPerson.getUsername());
//                model.put("password",globalPerson.getPassword());
//                model.put("personCode",globalPerson.getPersonCode());
//                model.put("personLevel",level);
//                model.put("personListened",globalPerson.getPersonListened());
//                System.out.println();
//                return "logined";
//            }
//            return "Homepage";
//        }
//        Song song;
//        String sharp = String.valueOf(searchText.charAt(0));
//        if (sharp.equals("#")){
//            //search song by id
////            System.out.println("true");
////            System.out.println(searchText.charAt(0));
//            searchText=searchText.substring(1);
//            song=songService.selBySongId(searchText);
//        }else {
//            //search song by name
////            System.out.println("false");
////            System.out.println(searchText);
//            song = songService.selBySongName(searchText);
//
//        }
//        System.out.println(searchText);
//        System.out.println(song);
//        //likes
//        List<Song> list = songService.likeSongs();
//        //putModel
//        if (song!=null){
//            model.put("searchedSong", song);
////            model.put("searchedSongid",song.getId());
//        }else {
//            model.put("searchedSong", "");
//            model.put("searchedSongid","");
//        }
//        model.put("list",list);
//        //print likes
////        System.out.println(list);
//
//
//
//            if(globalPerson!=null){
//                songService.addListened(globalPerson);
//                model.put("username",globalPerson.getUsername());
//                model.put("password",globalPerson.getPassword());
//                model.put("personCode",globalPerson.getPersonCode());
//                model.put("personLevel",level);
//                model.put("personListened",globalPerson.getPersonListened());
//                System.out.println("globalPerson---------"+globalPerson);
//                return "logined";
//
//            }
//
//        return "searchedButNotLogined";
//    }
//
//    @RequestMapping("likes.action")
//    public void likeSongs(ModelMap model){
////        System.out.println("model:"+ model);
//        List<Song> list = songService.likeSongs();
//        model.put("list",list);
//
//    }
//    @RequestMapping("likeAct.action")
//    @ResponseBody
//    public int likeAct(String id){
//        int status= songService.likeAct(id,globalPerson.getPersonCode());
//        System.out.println(status);
//        return status;
//    }
//    @RequestMapping("unlikeAct.action")
//    @ResponseBody
//    public int unlikeAct(String id){
//        int status= songService.unlikeAct(id,globalPerson.getPersonCode());
//        System.out.println(status+"---------unlikeAct");
//        return status;
//    }
//    @RequestMapping("buyAct.action")
//    @ResponseBody
//    public int buyAct(String id){
//        int status = service.buySong(id,globalPerson.getPersonCode());
//        System.out.println(status +"--------------buy");
//        return status;
//    }
//
//
//    @RequestMapping("indent.action")
//    public String indentList(ModelMap model){
//        List<Indent> indents=service.showAllAdminIndent();
//        System.out.println(indents);
//        model.put("adminName",globalPerson.getUsername());
//        model.put("AllIndents",indents);
//        return "adminIndentList";
//    }
//    @RequestMapping("user.action")
//    public String userList(ModelMap model){
//        List<Person> users=service.showAllAdminUser();
//        System.out.println(users);
//        model.put("adminName",globalPerson.getUsername());
//        model.put("AllUsers",users);
//        return "adminUserList";
//    }
//
//    @RequestMapping("logOut.action")
//    public String logOut(){
//        globalPerson = null;
//        return "Homepage";
//    }
//
//



