浏览代码

同步系统消息和创客消息表

mac 2 年之前
父节点
当前提交
9ee2cfa22f

+ 12 - 0
kxs-common/kxs-common-core/pom.xml

@@ -52,6 +52,18 @@
             <artifactId>spring-security-core</artifactId>
         </dependency>
 
+        <!--阿里云SLS日志包-->
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java</artifactId>
+            <version>2.5.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun.openservices</groupId>
+            <artifactId>aliyun-log-logback-appender</artifactId>
+            <version>0.1.18</version>
+        </dependency>
+
         <!--spring-webmvc-->
         <dependency>
             <groupId>org.springframework</groupId>

+ 6 - 5
kxs-common/kxs-common-core/src/main/resources/logback-spring.xml

@@ -74,14 +74,14 @@
 	<!-- 引入sls日志 -->
 	<appender name="aliyun" class="com.aliyun.openservices.log.logback.LoghubAppender">
 		<!-- Configure account and network  -->
-		<endpoint>cn-shenzhen.log.aliyuncs.com</endpoint>
+		<endpoint>cn-chengdu.log.aliyuncs.com</endpoint>
 		<!-- 填写sls key密钥 -->
-		<accessKeyId>**********</accessKeyId>
-		<accessKeySecret>*****************</accessKeySecret>
+		<accessKeyId>LTAI5tLsj8MPeZgqiR3omZtk</accessKeyId>
+		<accessKeySecret>Dj710GX7H4KHEfopzboT1g57a7RGTH</accessKeySecret>
 
-		<project>tajia-log</project>
+		<project>kxs-logs</project>
 		<!--logStore名称 -->
-		<logStore>tajia-api</logStore>
+		<logStore>kxs-store</logStore>
 
 		<!-- Optional parameters -->
 <!--		#单个 producer 实例能缓存的日志大小上限,默认为 100MB。-->
@@ -117,6 +117,7 @@
 	<springProfile name="dev">
 		<root level="INFO">
 			<appender-ref ref="console"/>
+			<appender-ref ref="aliyun" />
 		</root>
 	</springProfile>
 	<springProfile name="test">

+ 1 - 6
kxs-common/kxs-common-log/pom.xml

@@ -48,12 +48,7 @@
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-oauth2-core</artifactId>
         </dependency>
-        <!--阿里云SLS日志包-->
-        <dependency>
-            <groupId>com.aliyun.openservices</groupId>
-            <artifactId>aliyun-log-logback-appender</artifactId>
-            <version>0.1.18</version>
-        </dependency>
+
     </dependencies>
 
 </project>

+ 9 - 3
kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java

@@ -17,6 +17,7 @@ import com.kxs.transfer.api.service.store.KxsWarehouseService;
 import com.kxs.transfer.api.service.sys.KxsMorningLogService;
 import com.kxs.transfer.api.service.sys.KxsMorningService;
 import com.kxs.transfer.api.service.sys.KxsSchoolStudyService;
+import com.kxs.transfer.api.service.sys.KxsSysMsgService;
 import com.kxs.transfer.api.service.user.*;
 import com.kxs.user.api.model.KxsPartner;
 import lombok.RequiredArgsConstructor;
@@ -57,6 +58,7 @@ public class DtsController {
     private final KxsPartnerService kxsPartnerService;
     private final KxsMorningService kxsMorningService;
     private final KxsSchoolStudyService kxsSchoolStudyService;
+    private final KxsSysMsgService kxsSysMsgService;
 
     private final KxsMachineService kxsMachineService;
 
@@ -230,9 +232,13 @@ public class DtsController {
             if ("PosCouponOrders".equals(dmlData.getTableName())) {
                 kxsTicketTransferService.changeData(dmlData);
             }
-            //券码划拨明细表同步
-            if ("PosCouponRecord".equals(dmlData.getTableName())) {
-                kxsTicketTransferService.changeInfoData(dmlData);
+            //创客消息表
+            if ("MsgPersonal".equals(dmlData.getTableName())) {
+                kxsSysMsgService.changeUserData(dmlData);
+            }
+            //系统消息表
+            if ("MsgPlacard".equals(dmlData.getTableName())) {
+                kxsSysMsgService.changeSysData(dmlData);
             }
 
             //存储历史数据

+ 22 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/sys/KxsSysMsgMapper.java

@@ -0,0 +1,22 @@
+package com.kxs.transfer.api.mapper.sys;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.system.api.model.KxsSysMsg;
+import com.kxs.system.api.vo.kxsapp.sysMsg.SysMsgPageVO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 系统消息推送表(KxsSysMsg)表数据库访问层
+ *
+ * @author 系统
+ * @since 2023-12-15 12:16:32
+ */
+@Mapper
+@DS("sys")
+public interface KxsSysMsgMapper extends BaseMapper<KxsSysMsg> {
+
+}
+

+ 22 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/sys/KxsUserMsgMapper.java

@@ -0,0 +1,22 @@
+package com.kxs.transfer.api.mapper.sys;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.system.api.model.KxsUserMsg;
+import com.kxs.system.api.vo.kxsapp.userMsg.UserMsgPageVO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 系统用户消息推送表(KxsUserMsg)表数据库访问层
+ *
+ * @author 系统
+ * @since 2023-12-15 12:16:32
+ */
+@Mapper
+@DS("sys")
+public interface KxsUserMsgMapper extends BaseMapper<KxsUserMsg> {
+
+}
+

+ 193 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/sys/KxsSysMsgService.java

@@ -0,0 +1,193 @@
+package com.kxs.transfer.api.service.sys;
+
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.aliyun.dts.subscribe.clients.record.OperationType;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.product.api.model.KxsMachine;
+import com.kxs.product.api.model.KxsMerchant;
+import com.kxs.system.api.model.KxsSysMsg;
+import com.kxs.system.api.model.KxsUserMsg;
+import com.kxs.transfer.api.mapper.sys.KxsSysMsgMapper;
+import com.kxs.transfer.api.mapper.sys.KxsUserMsgMapper;
+import com.kxs.transfer.api.mapper.user.KxsUserMapper;
+import com.kxs.transfer.api.model.table.DMLData;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 系统消息推送表(KxsSysMsg)表服务接口
+ *
+ * @author 系统
+ * @since 2023-12-15 12:16:32
+ */
+@Service
+@RequiredArgsConstructor
+public class KxsSysMsgService extends ServiceImpl<KxsSysMsgMapper, KxsSysMsg> {
+
+    private final KxsUserMsgMapper kxsUserMsgMapper;
+
+    public void changeUserData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsUserMsg userMsg = new KxsUserMsg();
+        userMsg.setId(id);
+
+        OperationType operation = dmlData.getOperation();
+
+        if(operation.equals(OperationType.DELETE)){
+            baseMapper.deleteById(id);
+            return;
+        }
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "UserId":
+                    int userId = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    userMsg.setUserId(userId);
+                    break;
+                case "MsgType":
+                    userMsg.setMsgType(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "BgPic":
+                    if(validFieldDataMap.get(field) != null){
+                        userMsg.setBgPic(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "Title":
+                    userMsg.setTitle(validFieldDataMap.get(field).toString());
+                    break;
+                case "Content":
+                    if(validFieldDataMap.get(field) != null){
+                        userMsg.setContent(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "Url":
+                    if(validFieldDataMap.get(field) != null){
+                        userMsg.setUrl(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "Summary":
+                    if(validFieldDataMap.get(field) != null){
+                        userMsg.setSummary(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "ReadFlag":
+                    userMsg.setReadFlag(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "CreateDate":
+                    userMsg.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    userMsg.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+            }
+        }
+
+        if(operation.equals(OperationType.INSERT)){
+            KxsUserMsg kxsUserMsg = kxsUserMsgMapper.selectById(id);
+            if(kxsUserMsg == null){
+                kxsUserMsgMapper.insert(userMsg);
+            }
+        }
+        if(operation.equals(OperationType.UPDATE)){
+
+            kxsUserMsgMapper.updateById(userMsg);
+        }
+    }
+
+    public void changeSysData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsSysMsg sysMsg = new KxsSysMsg();
+        sysMsg.setId(id);
+
+        OperationType operation = dmlData.getOperation();
+
+        if(operation.equals(OperationType.DELETE)){
+            baseMapper.deleteById(id);
+            return;
+        }
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "MsgType":
+                    sysMsg.setMsgType(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "BgPic":
+                    if(validFieldDataMap.get(field) != null){
+                        sysMsg.setBgPic(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "Title":
+                    sysMsg.setTitle(validFieldDataMap.get(field).toString());
+                    break;
+                case "Content":
+                    if(validFieldDataMap.get(field) != null){
+                        sysMsg.setContent(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "Url":
+                    if(validFieldDataMap.get(field) != null){
+                        sysMsg.setUrl(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "Summary":
+                    if(validFieldDataMap.get(field) != null){
+                        sysMsg.setSummary(validFieldDataMap.get(field).toString());
+                    }
+                    break;
+                case "PushType":
+                    sysMsg.setPushType(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "PushTime":
+                    if(validFieldDataMap.get(field) != null){
+                        sysMsg.setPushTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    }
+                    break;
+                case "EffectStartDate":
+                    if(validFieldDataMap.get(field) != null){
+                        sysMsg.setStartTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    }
+                    break;
+                case "EffectEndDate":
+                    if(validFieldDataMap.get(field) != null){
+                        sysMsg.setEndTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    }
+                    break;
+                case "CreateDate":
+                    sysMsg.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    sysMsg.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+            }
+        }
+
+        if(operation.equals(OperationType.INSERT)){
+            KxsSysMsg kxsSysMsg = baseMapper.selectById(id);
+            if(kxsSysMsg == null){
+                baseMapper.insert(sysMsg);
+            }
+        }
+        if(operation.equals(OperationType.UPDATE)){
+            baseMapper.updateById(sysMsg);
+        }
+
+    }
+}
+