package test.com.philisense.www.controller.http.app;

import com.alibaba.fastjson.JSON;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;


import test.base.HttpUtilsForm;

import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.philisense.www.common.config.CommonConst;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.ResponseEntity;

public class TestProOperlogControllerWithHttpClientForApp  {




            @BeforeEach
            public void setUpTestDataWithinTransaction() {

            // set up test data within the transaction

            }

            @AfterEach
            public void tearDownWithinTransaction() {

            // execute "tear down" logic within the transaction

            }

            @Test
            @Disabled
            public void testProOperlogDeleteByPrimaryKeyForApp(){
                String id = UUID.randomUUID().toString().replaceAll("-","");
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/delete?recordid="+id;
            	String charset = HttpUtilsForm.UTF8;
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doGet(url, charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }

            @Test
            @Disabled
            public void testProOperlogSelectByPrimaryKeyForApp(){
                String id = UUID.randomUUID().toString().replaceAll("-","");
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/get?recordid="+id;
            	String charset = HttpUtilsForm.UTF8;
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doGet(url, charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }

            @Test
            @Disabled
            public void testProOperlogInsertForApp(){
            	
            	Map<String, Object> headerMap = new HashMap<String, Object>();
            	
            	headerMap.put("Content-Type", "application/json");
            	
            	
            	
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/insert";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> params = new HashMap<String, Object>();
                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                }               
                
            }

            @Test
            @Disabled
            public void testProOperlogUpdateForApp(){
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/update";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> params = new HashMap<String, Object>();
                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }

            @Test
            @Disabled
            public void testProOperlogDeleteByMapForApp(){
	        	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/deleteByMap";
	        	String charset = HttpUtilsForm.UTF8;
	        	Map<String, Object> params = new HashMap<String, Object>();
                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型
	            try {
	                //括号里的是前台发送的url连接
	                String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
	                System.out.println(body);                                                       
	            } catch (Exception e) {
	                e.printStackTrace();
	            } 
                
            }

            @Test
            @Disabled
            public void testProOperlogUpdateByMapForApp(){
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/updateByMap";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> params = new HashMap<String, Object>();
                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }


            @Test
            @Disabled
            public void testProOperlogGetOneForApp(){
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/getOne";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> params = new HashMap<String, Object>();
                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }


            @Test
            @Disabled
            public void testProOperlogGetAllForApp(){
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/getAll";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> params = new HashMap<String, Object>();
                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }

            @Test
            @Disabled
            public void testProOperlogCountForApp(){
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/count";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> params = new HashMap<String, Object>();
                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }


            @Test
            @Disabled
            public void testProOperlogQueryPageForApp(){
            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/queryPage";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> params = new HashMap<String, Object>();
                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }

            @Test
            @Disabled
            public void testProOperlogInsertBatchForApp(){

                List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();


                Map<String, Object> params = new HashMap<String, Object>();



                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型



                list.add(params);


                params = new HashMap<String, Object>();


                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型


                list.add(params);


                params = new HashMap<String, Object>();


                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型


                list.add(params);


               	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/insertBatch";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> paramsbody = new HashMap<String, Object>();
                //设置 请求参数
            	paramsbody.put("list",list);//用户Id
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

            @Test
            @Disabled
            public void testProOperlogDeleteBatchForApp(){

                List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();


                Map<String, Object> params = new HashMap<String, Object>();


                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型


                list.add(params);


                params = new HashMap<String, Object>();


                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型


                list.add(params);


                params = new HashMap<String, Object>();


                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型

                list.add(params);


            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/deleteBatch";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> paramsbody = new HashMap<String, Object>();
                //设置 请求参数
            	paramsbody.put("list",list);//用户Id
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }

            @Test
            @Disabled
            public void testProOperlogUpdateBatchForApp(){

                List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();


                Map<String, Object> params = new HashMap<String, Object>();


                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型


                list.add(params);


                params = new HashMap<String, Object>();


                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型


                list.add(params);


                params = new HashMap<String, Object>();

                //设置 请求参数
                params.put("id","id");//操作日志记录id
                params.put("opername","opername");//操作名称
                params.put("opertype","opertype");//操作类型
                params.put("class_method","class_method");//操作类方法
                params.put("http_method","http_method");//方法类型
                params.put("http_url","http_url");//操作url
                params.put("http_params","http_params");//操作参数
                params.put("http_body","http_body");//操作body参数
                params.put("http_header","http_header");//操作header参数
                params.put("content","content");//操作内容
                params.put("cost",0);//耗时
                params.put("createip","createip");//ip地址
                params.put("createuser","createuser");//操作用户
                params.put("createdate",new Date());//日期
                params.put("memo","memo");//备注
                params.put("client_type","client_type");//设备类型


                list.add(params);


            	String url = HttpUtilsForm.WebconnectURL+CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/updateBatch";
            	String charset = HttpUtilsForm.UTF8;
            	Map<String, Object> paramsbody = new HashMap<String, Object>();
                //设置 请求参数
            	paramsbody.put("list",list);//用户Id
                try {
                    //括号里的是前台发送的url连接
                    String body = HttpUtilsForm.doPost(url, JSON.toJSONString(params), charset);
                    System.out.println(body);                                                       
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }


            @Test
            @Disabled
            public void testexportForProOperlogForApp() throws IOException {
                    /*
                    // 待下载的文件地址
                    String url = CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/export";
                    ResponseEntity<byte[]> rsp = template.getForEntity(url, byte[].class);
                    System.out.println("文件下载请求结果状态码：" + rsp.getStatusCode());

                    String filename = "客户用户表";
                    // 将下载下来的文件内容保存到本地
                    String targetPath = "path_xxx/"+filename+"_ProOperlog.xlsx";
                    Files.write(Paths.get(targetPath), Objects.requireNonNull(rsp.getBody(),
                    "未获取到下载文件"));
                    */
            }

            @Test
            @Disabled
            public void testexportTemplateForProOperlogForApp() throws IOException {
                    /*
            	    // 待下载的文件地址
                    String url = CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/exportTemplate";
                    ResponseEntity<byte[]> rsp = template.getForEntity(url, byte[].class);
                    System.out.println("文件下载请求结果状态码：" + rsp.getStatusCode());

                    // 将下载下来的文件内容保存到本地
                    String filename = "客户用户表";
                    // 将下载下来的文件内容保存到本地
                    String targetPath = "path_xxx/"+filename+"_ProOperlog.xlsx";
                    Files.write(Paths.get(targetPath), Objects.requireNonNull(rsp.getBody(),
                    "未获取到下载文件"));
                    */
            }

            @Test
            @Disabled
            public void testimportExcelForProOperlogForApp()  {
                /*
            	// 文件上传服务上传接口
                String url = CommonConst.APP_REST_SERVICE_PREFICX+"prooperlog/importExcel";
                // 待上传的文件（存在客户端本地磁盘）
                String filename = "客户用户表";
                // 将下载下来的文件内容保存到本地
                String targetPath = "path_xxx/"+filename+"_ProOperlog.xlsx";
                // 封装请求参数
                FileSystemResource resource = new FileSystemResource(new File(targetPath));
                MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
                param.add("file", resource);  //服务端MultipartFile uploadFile
                //param.add("param1", "test");   //服务端如果接受额外参数，可以传递


                // 发送请求并输出结果
                System.out.println("--- 开始上传文件 ---");
                String result = template.postForObject(url, param, String.class);
                System.out.println("--- 访问地址：" + result);
                */
            }

}
