package com.jay.monitor.data.server.process;

import com.alibaba.fastjson.JSON;
import com.jay.monitor.data.core.enums.MsgTypeEnums;
import com.jay.monitor.data.core.model.serializable.MQDataDTO;
import com.jay.monitor.data.server.MonitorServerApplication;
import com.jay.monitor.data.server.store.StoreDataManager;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * @Module TODO
 * @Description TODO
 * @Author liukaixiong
 * @Date 2021/1/14 17:04
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MonitorServerApplication.class)
public class MQUserProcessTest {
    @Autowired
    private StoreDataManager storeDataManager;

    @Test
    public void handleRequest0() throws Exception {
        String json = "{\"applicationName\":\"elab-marketing-notify\",\"createDate\":1610615010985,\"dataId\":\"2766\",\"extMap\":{},\"groupKeyName\":\"UPDATE\",\"groupName\":\"c_shangtang_visit\",\"invokeType\":\"consumer\",\"ip\":\"192.168.4.244\",\"jsonContent\":\"{\\\"databaseName\\\":\\\"marketing_db\\\",\\\"sourceTimestamp\\\":1610595001,\\\"fieldDataMap\\\":{\\\"feature_id\\\":{\\\"field\\\":\\\"feature_id\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"dcaf544a6700001295177557049618432\\\",\\\"value\\\":\\\"dcaf544a6700001295177557049618432\\\"},\\\"gender\\\":{\\\"field\\\":\\\"gender\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"male\\\",\\\"value\\\":\\\"male\\\"},\\\"bg_img_id\\\":{\\\"field\\\":\\\"bg_img_id\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"visit_type\\\":{\\\"field\\\":\\\"visit_type\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"2\\\",\\\"value\\\":\\\"2\\\"},\\\"capture_photo\\\":{\\\"field\\\":\\\"capture_photo\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"https://sense-data.oss-cn-hangzhou.aliyuncs.com/sensego/vip/img/2021/1/14/10/6D00ED74-5610-11EB-8094-A485DEE12779.jpg?OSSAccessKeyId=LTAI4GEk2ZBxzzZ6c76J1pgH&Expires=1610595300&Signature=y0cP7yOs%2FLq8vm%2FAFYQsjouFBCU%3D\\\",\\\"value\\\":\\\"https://sense-data.oss-cn-hangzhou.aliyuncs.com/sensego/vip/img/2021/1/14/11/8248E0BC-5618-11EB-8FBF-A485DEE12779.jpg?OSSAccessKeyId=LTAI4GEk2ZBxzzZ6c76J1pgH&Expires=1610598600&Signature=HKzqMb9MNVdH7lIVOr8lYSu3HBE%3D\\\"},\\\"video_url\\\":{\\\"field\\\":\\\"video_url\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"face_id\\\":{\\\"field\\\":\\\"face_id\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"1295177557049618432\\\",\\\"value\\\":\\\"1295177557049618432\\\"},\\\"id\\\":{\\\"field\\\":\\\"id\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"2766\\\",\\\"value\\\":\\\"2766\\\"},\\\"third_capture_id\\\":{\\\"field\\\":\\\"third_capture_id\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"camera_name\\\":{\\\"field\\\":\\\"camera_name\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"测试点位1\\\",\\\"value\\\":\\\"测试点位1\\\"},\\\"capture_time\\\":{\\\"field\\\":\\\"capture_time\\\",\\\"dataType\\\":\\\"java.util.Date\\\",\\\"oldValue\\\":\\\"2021-01-14 10:30:11\\\",\\\"value\\\":\\\"2021-01-14 11:28:02\\\"},\\\"person_id\\\":{\\\"field\\\":\\\"person_id\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"1295177557049618432\\\",\\\"value\\\":\\\"1295177557049618432\\\"},\\\"timestamp\\\":{\\\"field\\\":\\\"timestamp\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1610591411\\\",\\\"value\\\":\\\"1610594882\\\"},\\\"base_image_url\\\":{\\\"field\\\":\\\"base_image_url\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"https://sensego.oss-cn-hangzhou.aliyuncs.com/sensego/base/dcaf544a67/0/1295177557049618432.jpg?OSSAccessKeyId=LTAI4GEk2ZBxzzZ6c76J1pgH&Expires=1610595300&Signature=4bSXwpOvcZ8Tj0HCv30dpzqXJh4%3D\\\",\\\"value\\\":\\\"https://sensego.oss-cn-hangzhou.aliyuncs.com/sensego/base/dcaf544a67/0/1295177557049618432.jpg?OSSAccessKeyId=LTAI4GEk2ZBxzzZ6c76J1pgH&Expires=1610598600&Signature=TTImYPqaiUIBsI3F7O0%2FuUBlP%2Bs%3D\\\"},\\\"store_id\\\":{\\\"field\\\":\\\"store_id\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"dcaf544a67\\\",\\\"value\\\":\\\"dcaf544a67\\\"},\\\"capture_count\\\":{\\\"field\\\":\\\"capture_count\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"2284\\\",\\\"value\\\":\\\"2285\\\"},\\\"big_capture_photo\\\":{\\\"field\\\":\\\"big_capture_photo\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"house_id\\\":{\\\"field\\\":\\\"house_id\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"10568\\\",\\\"value\\\":\\\"10568\\\"},\\\"visit_count\\\":{\\\"field\\\":\\\"visit_count\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"27\\\",\\\"value\\\":\\\"27\\\"},\\\"creator\\\":{\\\"field\\\":\\\"creator\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"system\\\",\\\"value\\\":\\\"system\\\"},\\\"device_id\\\":{\\\"field\\\":\\\"device_id\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"00:2b:6c:68:17:2c\\\",\\\"value\\\":\\\"00:2b:6c:68:17:2c\\\"},\\\"created\\\":{\\\"field\\\":\\\"created\\\",\\\"dataType\\\":\\\"java.util.Date\\\",\\\"oldValue\\\":\\\"2020-12-10 10:21:21\\\",\\\"value\\\":\\\"2020-12-10 10:21:21\\\"},\\\"confidence\\\":{\\\"field\\\":\\\"confidence\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"3\\\",\\\"value\\\":\\\"3\\\"},\\\"camera_id\\\":{\\\"field\\\":\\\"camera_id\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"fcac815b7eb51b9ce5dd747cf18d5bda\\\",\\\"value\\\":\\\"fcac815b7eb51b9ce5dd747cf18d5bda\\\"},\\\"brand_id\\\":{\\\"field\\\":\\\"brand_id\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1\\\",\\\"value\\\":\\\"1\\\"},\\\"updator\\\":{\\\"field\\\":\\\"updator\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"system\\\",\\\"value\\\":\\\"system\\\"},\\\"face_source\\\":{\\\"field\\\":\\\"face_source\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1\\\",\\\"value\\\":\\\"1\\\"},\\\"first_capture_time\\\":{\\\"field\\\":\\\"first_capture_time\\\",\\\"dataType\\\":\\\"java.util.Date\\\",\\\"oldValue\\\":\\\"2020-10-26 15:19:13\\\",\\\"value\\\":\\\"2020-10-26 15:19:13\\\"},\\\"updated\\\":{\\\"field\\\":\\\"updated\\\",\\\"dataType\\\":\\\"java.util.Date\\\",\\\"oldValue\\\":\\\"2021-01-14 10:35:05\\\",\\\"value\\\":\\\"2021-01-14 11:30:01\\\"},\\\"age\\\":{\\\"field\\\":\\\"age\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"25\\\",\\\"value\\\":\\\"26\\\"},\\\"status\\\":{\\\"field\\\":\\\"status\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1\\\",\\\"value\\\":\\\"1\\\"}},\\\"_catRootMessageId\\\":\\\"test-dts-server-ac13bd95-447387-838\\\",\\\"changeFieldList\\\":[\\\"age\\\",\\\"timestamp\\\",\\\"capture_count\\\",\\\"base_image_url\\\",\\\"capture_photo\\\",\\\"capture_time\\\",\\\"updated\\\"],\\\"id\\\":\\\"2766\\\",\\\"_catParentMessageId\\\":\\\"test-dts-server-ac13bd95-447387-838\\\",\\\"_catChildMessageId\\\":\\\"MQ-CONSUMER-ac13bd95-447387-808\\\",\\\"operation\\\":\\\"UPDATE\\\",\\\"tableName\\\":\\\"c_shangtang_visit\\\",\\\"application.name\\\":\\\"test-dts-server\\\"}\",\"logId\":\"elab-marketing-notify-c0a804f4-447393-24\",\"mqType\":\"kafka\",\"msgId\":\"135771\",\"parentLogId\":\"test-dts-server-ac13bd95-447387-838\",\"partitionName\":\"5\",\"requestTime\":10,\"rootLogId\":\"test-dts-server-ac13bd95-447387-838\",\"sourceTime\":1610595001000,\"status\":1,\"topic\":\"test-mysql-dts\",\"type\":\"MQ\"}";
        MQDataDTO mqDataDTO = JSON.parseObject(json, MQDataDTO.class);
//        mqDataDTO.setRequestTime(2000L);
        mqDataDTO.setStatus(-1);
        storeDataManager.store(MsgTypeEnums.MQ, mqDataDTO);
        System.in.read();
    }


    @Test
    public void testErrorMsg() throws Exception {
        String json = "{\"applicationName\":\"elab-marketing-notify\",\"createDate\":1611053967478,\"dataId\":\"34188\",\"errorMessage\":\"/ by zero\",\"errorStackTrace\":\"java.lang.ArithmeticException: / by zero\\r\\n\\tat com.elab.marketing.notify.msg.rmq.AbstractBinLogConsumer.consume0(AbstractBinLogConsumer.java:60)\\r\\n\\tat com.elab.mq.listener.AbstractMessageListener.consume(AbstractMessageListener.java:76)\\r\\n\\tat com.elab.mq.listener.MessageListenerWrapper.lambda$consume$0(MessageListenerWrapper.java:56)\\r\\n\\tat com.elab.log.utils.CatCrossProcess.getTransaction(CatCrossProcess.java:119)\\r\\n\\tat com.elab.log.utils.CatCrossProcess.buildRemoteMQMsg(CatCrossProcess.java:114)\\r\\n\\tat com.elab.mq.listener.MessageListenerWrapper.consume(MessageListenerWrapper.java:44)\\r\\n\\tat com.aliyun.openservices.ons.api.impl.rocketmq.ConsumerImpl$MessageListenerImpl.consumeMessage(ConsumerImpl.java:101)\\r\\n\\tat com.aliyun.openservices.shade.com.alibaba.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService$ConsumeRequest.run(ConsumeMessageConcurrentlyService.java:420)\\r\\n\\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\\r\\n\\tat java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)\\r\\n\\tat java.util.concurrent.FutureTask.run(FutureTask.java)\\r\\n\\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\r\\n\\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\r\\n\\tat java.lang.Thread.run(Thread.java:748)\\r\\n\",\"extMap\":{},\"groupKeyName\":\"UPDATE\",\"groupName\":\"c_user\",\"invokeType\":\"consumer\",\"ip\":\"192.168.4.245\",\"jsonContent\":\"{\\\"databaseName\\\":\\\"marketing_db\\\",\\\"sourceTimestamp\\\":1610768887,\\\"fieldDataMap\\\":{\\\"creator\\\":{\\\"field\\\":\\\"creator\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"unionid\\\":{\\\"field\\\":\\\"unionid\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"city\\\":{\\\"field\\\":\\\"city\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"openid\\\":{\\\"field\\\":\\\"openid\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"oCBsp41JEnYa5VOR6mHvSO1N8yCM\\\",\\\"value\\\":\\\"oCBsp41JEnYa5VOR6mHvSO1N8yCM\\\"},\\\"created\\\":{\\\"field\\\":\\\"created\\\",\\\"dataType\\\":\\\"java.util.Date\\\",\\\"oldValue\\\":\\\"2021-01-13 19:51:05\\\",\\\"value\\\":\\\"2021-01-13 19:51:05\\\"},\\\"sex\\\":{\\\"field\\\":\\\"sex\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1\\\",\\\"value\\\":\\\"1\\\"},\\\"mobile\\\":{\\\"field\\\":\\\"mobile\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"value\\\":\\\"17621324278\\\"},\\\"serial_number\\\":{\\\"field\\\":\\\"serial_number\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"2000000660425863\\\",\\\"value\\\":\\\"2000000660425863\\\"},\\\"terminal\\\":{\\\"field\\\":\\\"terminal\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1\\\",\\\"value\\\":\\\"1\\\"},\\\"source\\\":{\\\"field\\\":\\\"source\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1\\\",\\\"value\\\":\\\"1\\\"},\\\"brand_id\\\":{\\\"field\\\":\\\"brand_id\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1\\\",\\\"value\\\":\\\"1\\\"},\\\"scene\\\":{\\\"field\\\":\\\"scene\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"1037\\\",\\\"value\\\":\\\"1037\\\"},\\\"head\\\":{\\\"field\\\":\\\"head\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"regist_time\\\":{\\\"field\\\":\\\"regist_time\\\",\\\"dataType\\\":\\\"java.util.Date\\\",\\\"oldValue\\\":\\\"2021-01-13 19:51:05\\\",\\\"value\\\":\\\"2021-01-13 19:51:05\\\"},\\\"province\\\":{\\\"field\\\":\\\"province\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"appid\\\":{\\\"field\\\":\\\"appid\\\",\\\"dataType\\\":\\\"java.lang.String\\\",\\\"oldValue\\\":\\\"wx7c35219113730904\\\",\\\"value\\\":\\\"wx7c35219113730904\\\"},\\\"district\\\":{\\\"field\\\":\\\"district\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"nickname\\\":{\\\"field\\\":\\\"nickname\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"updator\\\":{\\\"field\\\":\\\"updator\\\",\\\"dataType\\\":\\\"java.lang.String\\\"},\\\"id\\\":{\\\"field\\\":\\\"id\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"34188\\\",\\\"value\\\":\\\"34188\\\"},\\\"updated\\\":{\\\"field\\\":\\\"updated\\\",\\\"dataType\\\":\\\"java.util.Date\\\",\\\"oldValue\\\":\\\"2021-01-13 19:53:31\\\",\\\"value\\\":\\\"2021-01-16 11:48:07\\\"},\\\"status\\\":{\\\"field\\\":\\\"status\\\",\\\"dataType\\\":\\\"java.lang.Integer\\\",\\\"oldValue\\\":\\\"1\\\",\\\"value\\\":\\\"1\\\"}},\\\"changeFieldList\\\":[\\\"mobile\\\",\\\"updated\\\"],\\\"operation\\\":\\\"UPDATE\\\",\\\"tableName\\\":\\\"c_user\\\"}\",\"logId\":\"elab-marketing-notify-c0a804f5-447514-3040\",\"mqType\":\"rocketMQ\",\"msgId\":\"C0A802A7413018B4AAC250FCDE620028\",\"parentLogId\":\"elab-marketing-notify-c0a802a7-447441-2629\",\"partitionName\":\"c_user\",\"requestTime\":-1,\"rootLogId\":\"test-dts-server-ac13bd95-447435-509\",\"sourceTime\":1610768887000,\"status\":-1,\"topic\":\"dev-elab-marketing-notify\",\"type\":\"MQ\"}";
        MQDataDTO mqDataDTO = JSON.parseObject(json, MQDataDTO.class);

        mqDataDTO.setStatus(-1);
        storeDataManager.store(MsgTypeEnums.MQ, mqDataDTO);

        mqDataDTO.setStatus(-1);
        storeDataManager.store(MsgTypeEnums.MQ, mqDataDTO);

        mqDataDTO.setStatus(-1);
        storeDataManager.store(MsgTypeEnums.MQ, mqDataDTO);
        System.in.read();
    }


}