Browse Source

alijson替换成jackson

wangliang 5 years ago
parent
commit
6119e76f1c

+ 20 - 4
pom.xml

@@ -27,7 +27,7 @@
         <project.version>1.0.0</project.version>
         <swagger2.version>2.9.2</swagger2.version>
         <logback.version>1.2.3</logback.version>
-        <fastjson.version>1.2.68</fastjson.version>
+        <!--        <fastjson.version>1.2.68</fastjson.version>-->
         <druid.version>1.1.20</druid.version>
         <fileupload.version>1.4</fileupload.version>
         <poi.version>3.17</poi.version>
@@ -44,6 +44,7 @@
         <commons.version>3.10</commons.version>
         <ehcache.version>2.10.6</ehcache.version>
         <mongodb.version>2.1.8.RELEASE</mongodb.version>
+        <jackson.version>2.11.0</jackson.version>
     </properties>
 
     <dependencyManagement>
@@ -145,10 +146,25 @@
                 <artifactId>aliyun-sdk-oss</artifactId>
                 <version>${aliyun.version}</version>
             </dependency>
+            <!--            <dependency>-->
+            <!--                <groupId>com.alibaba</groupId>-->
+            <!--                <artifactId>fastjson</artifactId>-->
+            <!--                <version>${fastjson.version}</version>-->
+            <!--            </dependency>-->
             <dependency>
-                <groupId>com.alibaba</groupId>
-                <artifactId>fastjson</artifactId>
-                <version>${fastjson.version}</version>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-core</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-annotations</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-databind</artifactId>
+                <version>${jackson.version}</version>
             </dependency>
             <dependency>
                 <groupId>cn.hutool</groupId>

+ 3 - 3
themis-backend/src/main/java/com/qmth/themis/backend/api/TBUserController.java

@@ -1,6 +1,5 @@
 package com.qmth.themis.backend.api;
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,6 +17,7 @@ import com.qmth.themis.business.enums.SystemOperationEnum;
 import com.qmth.themis.business.service.EhcacheService;
 import com.qmth.themis.business.service.TBUserService;
 import com.qmth.themis.business.util.EhcacheUtil;
+import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.SessionUtil;
 import com.qmth.themis.common.contanst.Constants;
@@ -178,7 +178,7 @@ public class TBUserController {
             teExamActivityService.insertInfo(tableName, teExamActivity);
         }
         IPage<Map> map = teExamActivityService.selectListPage(new Page<>(0, 10), tableName);
-        log.info("map:{}", JSONObject.toJSONString(map));
+        log.info("map:{}", JacksonUtil.parseJson(map));
 //        teExamActivityService.dropTable(tableName);
         return ResultUtil.ok(SystemConstant.SUCCESS);
     }
@@ -210,6 +210,6 @@ public class TBUserController {
         //mq发送消息start
         mqDtoService.assembleSendOneWayMsg(dictionaryConfig.mqConfigDomain().getUserLogTopic(), Objects.equals(authDto.getRoleEnum().name(), RoleEnum.STUDENT.name()) ? dictionaryConfig.mqConfigDomain().getUserLogTopicStudentTag() : dictionaryConfig.mqConfigDomain().getUserLogTopicUserTag(), SystemOperationEnum.LOGOUT, MqEnum.USER_LOG.name(), tbUser.getId(), tbUser.getLoginName());
         //mq发送消息end
-        return ResultUtil.ok(JSONObject.parseObject(SystemConstant.SUCCESS));
+        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 }

+ 2 - 3
themis-backend/src/main/java/com/qmth/themis/backend/util/ServletUtil.java

@@ -1,12 +1,11 @@
 package com.qmth.themis.backend.util;
 
-import com.alibaba.fastjson.JSONObject;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
 
-import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -31,7 +30,7 @@ public class ServletUtil {
      */
     public static void responseError(HttpServletResponse response, String code, String message) throws IOException {
         Result result = ResultUtil.error(code, message);
-        String json = JSONObject.toJSONString(result);
+        String json = JacksonUtil.parseJson(result);
         response.getWriter().print(json);
     }
 

+ 8 - 4
themis-business/src/main/java/com/qmth/themis/business/util/EhcacheUtil.java

@@ -1,6 +1,6 @@
 package com.qmth.themis.business.util;
 
-import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import net.sf.ehcache.Cache;
 import net.sf.ehcache.CacheManager;
 import net.sf.ehcache.Element;
@@ -32,8 +32,12 @@ public class EhcacheUtil {
     }
 
     public static EhcacheUtil getInstance() {
-        if (ehCache == null) {
-            ehCache = new EhcacheUtil(path);
+        if (Objects.isNull(ehCache)) {
+            synchronized (EhcacheUtil.class) {
+                if (Objects.isNull(ehCache)) {
+                    ehCache = new EhcacheUtil(path);
+                }
+            }
         }
         return ehCache;
     }
@@ -52,7 +56,7 @@ public class EhcacheUtil {
         Cache cache = manager.getCache(cacheName);
         Element element = cache.get(key);
         if (Objects.nonNull(element)) {
-            log.info("Element:{}", JSONObject.toJSONString(element));
+            log.info("Element:{}", JacksonUtil.parseJson(element));
         }
         return element == null ? null : element.getObjectValue();
     }

+ 106 - 0
themis-business/src/main/java/com/qmth/themis/business/util/JacksonUtil.java

@@ -0,0 +1,106 @@
+package com.qmth.themis.business.util;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.qmth.themis.business.entity.TBUser;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * @Description: jackson util
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/6
+ */
+public class JacksonUtil {
+    private static ObjectMapper objectMapper = null;
+
+    static {
+        getInstance();
+    }
+
+    public static ObjectMapper getInstance() {
+        if (Objects.isNull(objectMapper)) {
+            synchronized (ObjectMapper.class) {
+                if (Objects.isNull(objectMapper)) {
+//                    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);//排除json字符串中实体类没有的字段
+                    objectMapper = new ObjectMapper();
+                }
+            }
+        }
+        return objectMapper;
+    }
+
+    /**
+     * 解析json
+     *
+     * @param o
+     * @return
+     */
+    public static String parseJson(Object o) {
+        try {
+            return objectMapper.writeValueAsString(o);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 创建json
+     *
+     * @param o
+     * @param valueType
+     * @param <T>
+     * @return
+     */
+    public static <T> T createJson(String o, Class<T> valueType) {
+        try {
+            return objectMapper.readValue(o, valueType);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 创建json list
+     *
+     * @param o
+     * @param cla
+     * @param <T>
+     * @return
+     */
+    public static <T> T createJsonList(String o, Class<T> cla) {
+        try {
+            JavaType javaType = objectMapper.getTypeFactory().constructCollectionType(List.class, cla);
+            return objectMapper.readValue(o, javaType);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 创建json set
+     *
+     * @param o
+     * @param cla
+     * @param <T>
+     * @return
+     */
+    public static <T> T createJsonSet(String o, Class<T> cla) {
+        try {
+            JavaType javaType = objectMapper.getTypeFactory().constructCollectionType(Set.class, cla);
+            return objectMapper.readValue(o, javaType);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}

+ 19 - 7
themis-common/pom.xml

@@ -14,9 +14,21 @@
     </parent>
 
     <dependencies>
+        <!--        <dependency>-->
+        <!--            <groupId>com.alibaba</groupId>-->
+        <!--            <artifactId>fastjson</artifactId>-->
+        <!--        </dependency>-->
         <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>fastjson</artifactId>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
@@ -43,10 +55,10 @@
             <artifactId>spring-web</artifactId>
             <version>5.2.7.RELEASE</version>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.slf4j</groupId>-->
-<!--            <artifactId>slf4j-api</artifactId>-->
-<!--            <version>2.0.0-alpha1</version>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.slf4j</groupId>-->
+        <!--            <artifactId>slf4j-api</artifactId>-->
+        <!--            <version>2.0.0-alpha1</version>-->
+        <!--        </dependency>-->
     </dependencies>
 </project>

+ 3 - 3
themis-mq/src/main/java/com/qmth/themis/mq/listener/RocketConsumerTransaction.java

@@ -1,6 +1,6 @@
 package com.qmth.themis.mq.listener;
 
-import com.alibaba.fastjson.JSONObject;
+import com.qmth.themis.business.util.JacksonUtil;
 import org.apache.rocketmq.spring.annotation.RocketMQTransactionListener;
 import org.apache.rocketmq.spring.core.RocketMQLocalTransactionListener;
 import org.apache.rocketmq.spring.core.RocketMQLocalTransactionState;
@@ -37,7 +37,7 @@ public class RocketConsumerTransaction implements RocketMQLocalTransactionListen
 //                log.error("【执行本地业务异常】 exception message:{}", e.getMessage());
 //                return RocketMQLocalTransactionState.ROLLBACK;
 //            }
-        log.info("本地事务和消息发送:{},o:{}", JSONObject.toJSONString(message), JSONObject.toJSONString(arg));
+        log.info("本地事务和消息发送:{},o:{}", JacksonUtil.parseJson(message), JacksonUtil.parseJson(arg));
         return RocketMQLocalTransactionState.UNKNOWN;
     }
 
@@ -49,7 +49,7 @@ public class RocketConsumerTransaction implements RocketMQLocalTransactionListen
     public RocketMQLocalTransactionState checkLocalTransaction(org.springframework.messaging.Message message) {
 //            log.info("【执行检查任务】");
 //            return RocketMQLocalTransactionState.UNKNOWN;
-        log.info("回查信息:{}", JSONObject.toJSONString(message));
+        log.info("回查信息:{}", JacksonUtil.parseJson(message));
         return RocketMQLocalTransactionState.COMMIT;
     }
 }

+ 5 - 9
themis-mq/src/main/java/com/qmth/themis/mq/listener/RocketSessionConsumer.java

@@ -1,10 +1,9 @@
 package com.qmth.themis.mq.listener;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.service.TBSessionService;
+import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.mq.dto.MqDto;
@@ -27,9 +26,6 @@ import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
 
-import static com.alibaba.fastjson.JSON.toJavaObject;
-import static com.alibaba.fastjson.JSONObject.parseObject;
-
 /**
  * @Description: 普通消息监听 session_topic
  * @Param:
@@ -65,12 +61,12 @@ public class RocketSessionConsumer implements
             String threadName = Thread.currentThread().getName();
             for (MessageExt messageExt : msgs) {
                 log.info(":{}-:{} sessionConsumer 重试次数:{}", threadId, threadName, messageExt.getReconsumeTimes());
-                MqDto mqDto = (MqDto) toJavaObject(parseObject(new String(messageExt.getBody(), Constants.CHARSET)), MqDto.class);
-                log.info(":{}-:{} sessionConsumer 接受到的消息:{}", threadId, threadName, JSONObject.toJSONString(mqDto));
+                MqDto mqDto = JacksonUtil.createJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
+                log.info(":{}-:{} sessionConsumer 接受到的消息:{}", threadId, threadName, JacksonUtil.parseJson(mqDto));
                 log.info(":{}-:{} sessionConsumer mqDto sequence:{},tag:{}", threadId, threadName, mqDto.getSequence(), mqDto.getTag());
                 if (Objects.nonNull(mqDto.getAck()) && mqDto.getAck().intValue() != SystemConstant.STANDARD_ACK_TYPE) {
                     log.info(":{}-:{} 更新db", threadId, threadName);
-                    tbSessionService.saveSessionInfo(toJavaObject((JSON) mqDto.getBody(), TBSession.class), mqDto.getTimestamp());
+                    tbSessionService.saveSessionInfo(JacksonUtil.createJson(JacksonUtil.parseJson(mqDto.getBody()), TBSession.class), mqDto.getTimestamp());
                     redisUtil.deleteSessionTopicList(SystemConstant.SESSION_TOPIC_BUFFER_LIST, mqDto.getId());
                     return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
                 } else {
@@ -99,7 +95,7 @@ public class RocketSessionConsumer implements
 //            for (MessageExt messageExt : msgs) {
 //                log.info("sessionConsumer重试次数:{}", messageExt.getReconsumeTimes());
 //                MqDto mqDto = (MqDto) toJavaObject(parseObject(new String(messageExt.getBody(), Constants.CHARSET)), MqDto.class);
-//                log.info("sessionConsumer接受到的消息:{}", JSONObject.toJSONString(mqDto));
+//                log.info("sessionConsumer接受到的消息:{}", JacksonUtil.parseJson(mqDto));
 //                log.info("mqDto sequence:{},tag:{}", mqDto.getSequence(), mqDto.getTag());
 //                MqDto redisMqdto = (MqDto) redisUtil.getSessionTopicList(mqDto.getId());
 //                if (Objects.nonNull(redisMqdto)) {

+ 5 - 7
themis-mq/src/main/java/com/qmth/themis/mq/listener/RocketUserLogConsumer.java

@@ -1,10 +1,10 @@
 package com.qmth.themis.mq.listener;
 
-import com.alibaba.fastjson.JSONObject;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.enums.MqEnum;
 import com.qmth.themis.business.enums.SystemOperationEnum;
 import com.qmth.themis.business.service.TEUserLogService;
+import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.mq.dto.MqDto;
@@ -27,9 +27,6 @@ import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
 
-import static com.alibaba.fastjson.JSON.parseObject;
-import static com.alibaba.fastjson.JSON.toJavaObject;
-
 /**
  * @Description: 普通消息监听 用户日志
  * @Param:
@@ -54,12 +51,13 @@ public class RocketUserLogConsumer implements MessageListenerConcurrently {
             String threadName = Thread.currentThread().getName();
             for (MessageExt messageExt : msgs) {
                 log.info(":{}-:{} userLogConsumer重试次数:{}", threadId, threadName, messageExt.getReconsumeTimes());
-                MqDto mqDto = (MqDto) toJavaObject(parseObject(new String(messageExt.getBody(), Constants.CHARSET)), MqDto.class);
-                log.info(":{}-:{} userLogConsumer接受到的消息:{}", threadId, threadName, JSONObject.toJSONString(mqDto));
+//                MqDto mqDto = (MqDto) toJavaObject(parseObject(new String(messageExt.getBody(), Constants.CHARSET)), MqDto.class);
+                MqDto mqDto = JacksonUtil.createJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
+                log.info(":{}-:{} userLogConsumer接受到的消息:{}", threadId, threadName, JacksonUtil.parseJson(mqDto));
                 log.info(":{}-:{} userLogConsumer mqDto sequence:{},tag:{}", threadId, threadName, mqDto.getSequence(), mqDto.getTag());
                 if (Objects.nonNull(mqDto.getAck()) && mqDto.getAck().intValue() != SystemConstant.STANDARD_ACK_TYPE) {
                     log.info(":{}-:{} 插入用户轨迹日志", threadId, threadName);
-                    teUserLogService.saveUserLogInfo(mqDto.getTimestamp(), mqDto.getObjId(), MqEnum.valueOf(String.valueOf(mqDto.getType())).getId(), SystemOperationEnum.valueOf(String.valueOf(mqDto.getBody())).getCode(), JSONObject.toJSONString(mqDto));
+                    teUserLogService.saveUserLogInfo(mqDto.getTimestamp(), mqDto.getObjId(), MqEnum.valueOf(String.valueOf(mqDto.getType())).getId(), SystemOperationEnum.valueOf(String.valueOf(mqDto.getBody())).getCode(), JacksonUtil.parseJson(mqDto));
                     redisUtil.deleteSessionTopicList(SystemConstant.USERLOG_TOPIC_BUFFER_LIST, mqDto.getId());
                     return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
                 } else {

+ 13 - 13
themis-mq/src/main/java/com/qmth/themis/mq/service/impl/ProducerServerImpl.java

@@ -1,7 +1,7 @@
 package com.qmth.themis.mq.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
@@ -41,10 +41,10 @@ public class ProducerServerImpl implements ProducerServer {
      */
     @Override
     public Result syncMsg(MqDto mqDto) {
-        log.info("syncMsg mqDto:{}", JSONObject.toJSONString(mqDto));
+        log.info("syncMsg mqDto:{}", JacksonUtil.parseJson(mqDto));
         SendResult sendResult = rocketMQTemplate.syncSend(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto);
         // 同步消息发送成功会有一个返回值,我们可以用这个返回值进行判断和获取一些信息
-        log.info("sendResult:{}", JSONObject.toJSONString(sendResult));
+        log.info("sendResult:{}", JacksonUtil.parseJson(sendResult));
         return ResultUtil.ok(SystemConstant.SUCCESS);
     }
 
@@ -56,10 +56,10 @@ public class ProducerServerImpl implements ProducerServer {
      */
     @Override
     public Result syncOrderlyMsg(MqDto mqDto) {
-        log.info("syncOrderlyMsg mqDto:{}", JSONObject.toJSONString(mqDto));
+        log.info("syncOrderlyMsg mqDto:{}", JacksonUtil.parseJson(mqDto));
         SendResult sendResult = rocketMQTemplate.syncSendOrderly(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto, mqDto.getObjId());
         // 同步顺序消息发送成功会有一个返回值,我们可以用这个返回值进行判断和获取一些信息
-        log.info("sendResult:{}", JSONObject.toJSONString(sendResult));
+        log.info("sendResult:{}", JacksonUtil.parseJson(sendResult));
         return ResultUtil.ok(SystemConstant.SUCCESS);
     }
 
@@ -71,12 +71,12 @@ public class ProducerServerImpl implements ProducerServer {
      */
     @Override
     public Result asyncMsg(MqDto mqDto) {
-        log.info("asyncMsg mqDto:{}", JSONObject.toJSONString(mqDto));
+        log.info("asyncMsg mqDto:{}", JacksonUtil.parseJson(mqDto));
         rocketMQTemplate.asyncSend(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto, new SendCallback() {
             @Override
             public void onSuccess(SendResult sendResult) {
                 // 成功回调
-                log.info("sendResult:{}", JSONObject.toJSONString(sendResult));
+                log.info("sendResult:{}", JacksonUtil.parseJson(sendResult));
             }
 
             @Override
@@ -96,12 +96,12 @@ public class ProducerServerImpl implements ProducerServer {
      */
     @Override
     public Result asyncOrderlyMsg(MqDto mqDto) {
-        log.info("asyncOrderlyMsg mqDto:{}", JSONObject.toJSONString(mqDto));
+        log.info("asyncOrderlyMsg mqDto:{}", JacksonUtil.parseJson(mqDto));
         rocketMQTemplate.asyncSendOrderly(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto, mqDto.getObjId(), new SendCallback() {
             @Override
             public void onSuccess(SendResult sendResult) {
                 // 成功回调
-                log.info("sendResult:{}", JSONObject.toJSONString(sendResult));
+                log.info("sendResult:{}", JacksonUtil.parseJson(sendResult));
             }
 
             @Override
@@ -121,7 +121,7 @@ public class ProducerServerImpl implements ProducerServer {
      */
     @Override
     public Result sendOneWay(MqDto mqDto) {
-        log.info("sendOneWay mqDto:{}", JSONObject.toJSONString(mqDto));
+        log.info("sendOneWay mqDto:{}", JacksonUtil.parseJson(mqDto));
         rocketMQTemplate.sendOneWay(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto);
         return ResultUtil.ok(SystemConstant.SUCCESS);
     }
@@ -134,7 +134,7 @@ public class ProducerServerImpl implements ProducerServer {
      */
     @Override
     public Result sendOneWayOrderly(MqDto mqDto) {
-        log.info("sendOneWayOrderly mqDto:{}", JSONObject.toJSONString(mqDto));
+        log.info("sendOneWayOrderly mqDto:{}", JacksonUtil.parseJson(mqDto));
         rocketMQTemplate.sendOneWayOrderly(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto, mqDto.getObjId());
         return ResultUtil.ok(SystemConstant.SUCCESS);
     }
@@ -147,12 +147,12 @@ public class ProducerServerImpl implements ProducerServer {
      */
     @Override
     public Result sendMsgTran(MqDto mqDto) {
-        log.info("sendMsgTran mqDto:{}", JSONObject.toJSONString(mqDto));
+        log.info("sendMsgTran mqDto:{}", JacksonUtil.parseJson(mqDto));
         Message message = assembleMessage(mqDto);
         org.springframework.messaging.Message messageTran = MessageBuilder.withPayload(message).build();
         //发送事务消息
         TransactionSendResult transactionSendResult = rocketMQTemplate.sendMessageInTransaction(mqDto.getTopic() + ":" + mqDto.getTag(), messageTran, null);
-        log.info("transactionSendResult:{}", JSONObject.toJSONString(transactionSendResult));
+        log.info("transactionSendResult:{}", JacksonUtil.parseJson(transactionSendResult));
         return ResultUtil.ok(SystemConstant.SUCCESS);
     }