Переглянути джерело

消费折扣数据双向同步功能

baiyun 1 рік тому
батько
коміт
f94d19c982
11 змінених файлів з 359 додано та 6 видалено
  1. 0 1
      ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/RemotePtAreaService.java
  2. 53 0
      ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/RemoteXfDiscountService.java
  3. 70 0
      ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/domain/bo/RemoteXfDiscountBo.java
  4. 30 0
      ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/domain/bo/RemoteXfDiscountTermBo.java
  5. 11 1
      ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/constant/MessageEventTypeConstants.java
  6. 55 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/dubbo/RemoteXfDiscountServiceImpl.java
  7. 84 0
      ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/yktOperation/SyncRemoteXfDiscountService.java
  8. 1 1
      ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/yktOperation/SyncRemoteXfTermService.java
  9. 2 1
      ruoyi-server/ruoyi-server-base/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  10. 51 0
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/yktOperation/PtXfDiscountEventStrategyImpl.java
  11. 2 2
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/yktOperation/PtXfTermEventStrategyImpl.java

+ 0 - 1
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/RemotePtAreaService.java

@@ -1,7 +1,6 @@
 package org.dromara.backstage.api;
 
 import org.dromara.backstage.api.domain.bo.RemotePtAreaBo;
-import org.dromara.backstage.api.domain.bo.RemotePtMealTypeBo;
 
 import java.util.Collection;
 

+ 53 - 0
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/RemoteXfDiscountService.java

@@ -0,0 +1,53 @@
+package org.dromara.backstage.api;
+
+import org.dromara.backstage.api.domain.bo.RemoteXfDiscountBo;
+import org.dromara.backstage.api.domain.bo.RemoteXfDiscountTermBo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 消费折扣服务
+ *
+ * @author Lion Li
+ */
+public interface RemoteXfDiscountService {
+
+    /**
+     * 新增消费折扣
+     * @param bo
+     * @return
+     */
+    Boolean insertByBo(RemoteXfDiscountBo bo) throws Exception;
+
+    /**
+     * 修改消费折扣
+     * @param bo
+     * @return
+     * @throws Exception
+     */
+    Boolean updateByBo(RemoteXfDiscountBo bo) throws Exception;
+
+    /**
+     * 删除消费折扣
+     * @param ids
+     * @param isValid
+     * @return
+     * @throws Exception
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) throws Exception;
+
+    /**
+     * 新增折扣设备
+     * @return
+     * @throws Exception
+     */
+    Boolean addDiscountTerm(List<Long> ids);
+
+    /**
+     * 删除折扣设备
+     * @param ids
+     * @return
+     */
+    Boolean deleteDiscountTerm(List<Long> ids);
+}

+ 70 - 0
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/domain/bo/RemoteXfDiscountBo.java

@@ -0,0 +1,70 @@
+package org.dromara.backstage.api.domain.bo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 折扣管理业务对象 t_xf_discount
+ *
+ * @author bing
+ * @date 2024-08-13
+ */
+@Data
+@NoArgsConstructor
+public class RemoteXfDiscountBo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 折扣Id,主键
+     */
+    private Long discountId;
+
+    /**
+     * 卡类Id
+     */
+    private Long cardType;
+
+    /**
+     * 餐类Id
+     */
+    private String mealType;
+
+    /**
+     * 折扣类型,默认为0
+     */
+    private String rateType;
+
+    /**
+     * 折扣率1
+     */
+    private Long oneRate;
+
+    /**
+     * 折扣率2
+     */
+    private Long twoRate;
+
+    /**
+     * 折扣率3
+     */
+    private Long threeRate;
+
+    /**
+     * 折扣率4
+     */
+    private Long fourRate;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 启用状态,0-未启用 1-启用
+     */
+    private String status;
+
+
+}

+ 30 - 0
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/domain/bo/RemoteXfDiscountTermBo.java

@@ -0,0 +1,30 @@
+package org.dromara.backstage.api.domain.bo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 折扣设备业务对象
+ *
+ * @author bing
+ * @date 2024-08-14
+ */
+@Data
+@NoArgsConstructor
+public class RemoteXfDiscountTermBo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 折扣Id,主键
+     */
+    private Long discountTermId;
+
+    /**
+     * 设备Id
+     */
+    private Long termId;
+
+
+}

+ 11 - 1
ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/constant/MessageEventTypeConstants.java

@@ -86,6 +86,10 @@ public class MessageEventTypeConstants {
      * 卡务操作能模块标识
      */
     public static final String XF_TERM_SENDER = "YKT_112";
+    /**
+     * 折扣管理能模块标识
+     */
+    public static final String XF_DISCOUNT_SENDER = "YKT_114";
     /** 系统参数新增 */
     public static final String	ptParameter_ADD = "YKT_101_ADD";
     /** 系统参数修改 */
@@ -157,10 +161,16 @@ public class MessageEventTypeConstants {
     public static final String	xfTerm_REMOVE = "YKT_112_REMOVE";
     /** 消费设备参数修改 */
     public static final String	xfTerm_param_EDIT = "YKT_112_PARAMETER_EDIT";
+    /** 折扣管理新增 */
     public static final String	xfDiscount_ADD = "YKT_114_ADD";
+    /** 折扣管理修改 */
     public static final String	xfDiscount_EDIT = "YKT_114_EDIT";
+    /** 折扣管理删除 */
     public static final String	xfDiscount_REMOVE = "YKT_114_REMOVE";
-    public static final String	xfDiscountterm_EDIT = "YKT_115_EDIT";
+    /** 新增折扣设备 */
+    public static final String	DISCOUNT_TERM_ADD = "YKT_114_DISCOUNT_TERM_ADD";
+    /** 删除折扣设备 */
+    public static final String	DISCOUNT_TERM_DEL = "YKT_114_DISCOUNT_TERM_DEL";
     public static final String	xfQuota_ADD = "YKT_116_ADD";
     public static final String	xfQuota_EDIT = "YKT_116_EDIT";
     public static final String	xfQuota_REMOVE = "YKT_116_REMOVE";

+ 55 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/dubbo/RemoteXfDiscountServiceImpl.java

@@ -0,0 +1,55 @@
+package org.dromara.backstage.consumption.dubbo;
+
+import cn.hutool.core.bean.BeanUtil;
+import lombok.RequiredArgsConstructor;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.dromara.backstage.api.RemoteXfDiscountService;
+import org.dromara.backstage.api.domain.bo.RemoteXfDiscountBo;
+import org.dromara.backstage.api.domain.bo.RemoteXfDiscountTermBo;
+import org.dromara.backstage.consumption.domain.bo.XfDiscountBo;
+import org.dromara.backstage.consumption.domain.bo.XfDiscounttermBo;
+import org.dromara.backstage.consumption.service.IXfDiscountService;
+import org.dromara.backstage.consumption.service.IXfDiscounttermService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author Hz
+ * @date 2024/11/4
+ * @description
+ */
+
+@RequiredArgsConstructor
+@Service
+@DubboService
+public class RemoteXfDiscountServiceImpl implements RemoteXfDiscountService {
+    private final IXfDiscountService discountService;
+    private final IXfDiscounttermService discountTermService;
+
+    @Override
+    public Boolean insertByBo(RemoteXfDiscountBo bo) throws Exception {
+        return discountService.insertByBo(BeanUtil.copyProperties(bo, XfDiscountBo.class));
+    }
+
+    @Override
+    public Boolean updateByBo(RemoteXfDiscountBo bo) throws Exception {
+        return discountService.updateByBo(BeanUtil.copyProperties(bo, XfDiscountBo.class));
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) throws Exception {
+        return discountService.deleteWithValidByIds(ids,isValid);
+    }
+
+    @Override
+    public Boolean addDiscountTerm(List<Long> ids) {
+        return discountTermService.insertByTermIds(ids);
+    }
+
+    @Override
+    public Boolean deleteDiscountTerm(List<Long> ids) {
+        return discountTermService.deleteWithValidByIds(ids, true);
+    }
+}

+ 84 - 0
ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/yktOperation/SyncRemoteXfDiscountService.java

@@ -0,0 +1,84 @@
+package org.dromara.server.base.service.yktOperation;
+
+import cn.hutool.json.JSONUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.backstage.api.RemotePtAreaService;
+import org.dromara.backstage.api.RemoteXfDiscountService;
+import org.dromara.backstage.api.domain.bo.RemotePtAreaBo;
+import org.dromara.backstage.api.domain.bo.RemoteXfDiscountBo;
+import org.dromara.backstage.api.domain.bo.RemoteXfDiscountTermBo;
+import org.dromara.common.core.exception.ServiceException;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+
+/**
+ * 消费折扣同步
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class SyncRemoteXfDiscountService {
+
+    @DubboReference
+    private final RemoteXfDiscountService xfDiscountService;
+
+    /**
+     * 远程调用消费折扣新增
+     * @param msg
+     */
+    public void addXfDiscount(Object msg) throws Exception{
+        boolean flag = xfDiscountService.insertByBo(JSONUtil.parseObj(msg).toBean(RemoteXfDiscountBo.class));
+        if (!flag){
+            throw new ServiceException("消费折扣新增失败");
+        }
+    }
+
+    /**
+     * 远程调用消费折扣修改
+     * @param msg
+     */
+    public void editXfDiscount(Object msg) throws Exception{
+        boolean flag = xfDiscountService.updateByBo(JSONUtil.parseObj(msg).toBean(RemoteXfDiscountBo.class));
+        if (!flag){
+            throw new ServiceException("消费折扣修改失败");
+        }
+    }
+
+    /**
+     * 远程调用消费折扣删除
+     * @param msg
+     */
+    public void delXfDiscount(Object msg) throws Exception{
+        Collection<Long> ids = JSONUtil.parseArray(msg).toBean(Collection.class);
+        boolean flag = xfDiscountService.deleteWithValidByIds(ids,false);
+        if (!flag){
+            throw new ServiceException("消费折扣删除失败");
+        }
+    }
+
+    /**
+     * 远程调用消费折扣设备新增
+     * @param msg
+     * @throws ServiceException
+     */
+    public void addDiscountTerm(Object msg) throws ServiceException{
+        boolean flag = xfDiscountService.addDiscountTerm(JSONUtil.parseArray(msg).toList(Long.class));
+        if (!flag){
+            throw new ServiceException("新增折扣设备失败");
+        }
+    }
+    /**
+     * 远程调用消费折扣设备删除
+     * @param msg
+     * @throws ServiceException
+     */
+    public void deleteDiscountTerm(Object msg) throws ServiceException{
+        boolean flag = xfDiscountService.deleteDiscountTerm(JSONUtil.parseArray(msg).toList(Long.class));
+        if (!flag){
+            throw new ServiceException("删除折扣设备失败");
+        }
+    }
+}

+ 1 - 1
ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/yktOperation/SyncRemotePXfTermService.java → ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/yktOperation/SyncRemoteXfTermService.java

@@ -18,7 +18,7 @@ import java.util.Collection;
 @Service
 @Slf4j
 @RequiredArgsConstructor
-public class SyncRemotePXfTermService {
+public class SyncRemoteXfTermService {
 
     @DubboReference
     private final RemotePtXfTermService xfTermService;

+ 2 - 1
ruoyi-server/ruoyi-server-base/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -15,4 +15,5 @@ org.dromara.server.base.service.yktOperation.SyncRemotePtAreaService
 org.dromara.server.base.service.yktOperation.SyncRemotePtAccountService
 org.dromara.server.base.service.yktOperation.SyncRemotePtUserAccountService
 org.dromara.server.base.service.yktOperation.SyncRemotePtCardCenterService
-org.dromara.server.base.service.yktOperation.SyncRemotePXfTermService
+org.dromara.server.base.service.yktOperation.SyncRemoteXfTermService
+org.dromara.server.base.service.yktOperation.SyncRemoteXfDiscountService

+ 51 - 0
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/yktOperation/PtXfDiscountEventStrategyImpl.java

@@ -0,0 +1,51 @@
+package org.dromara.server.mq.event.kafka.impl.yktOperation;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.MessageEventTypeConstants;
+import org.dromara.server.base.service.yktOperation.SyncRemotePtAreaService;
+import org.dromara.server.base.service.yktOperation.SyncRemoteXfDiscountService;
+import org.dromara.server.mq.event.kafka.IYktEventStrategy;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author Hz
+ * @date 2024/10/29
+ * @description 折扣管理同步策略
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service(MessageEventTypeConstants.XF_DISCOUNT_SENDER)
+public class PtXfDiscountEventStrategyImpl implements IYktEventStrategy {
+
+    private final SyncRemoteXfDiscountService discountService;
+    @Override
+    public void doMsgHandle(String eventType, Object msg) throws Exception{
+
+        switch (eventType) {
+            case MessageEventTypeConstants.xfDiscount_ADD:{
+                discountService.addXfDiscount(msg);
+            }
+            break;
+            case MessageEventTypeConstants.xfDiscount_EDIT:{
+                discountService.editXfDiscount(msg);
+            }
+            break;
+            case MessageEventTypeConstants.xfDiscount_REMOVE:{
+                discountService.delXfDiscount(msg);
+            }
+            break;
+            case MessageEventTypeConstants.DISCOUNT_TERM_ADD:{
+                discountService.addDiscountTerm(msg);
+            }
+            break;
+            case MessageEventTypeConstants.DISCOUNT_TERM_DEL:{
+                discountService.deleteDiscountTerm(msg);
+            }
+            default:
+                log.info("未知事件");
+
+        }
+    }
+
+}

+ 2 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/yktOperation/PtXfTermEventStrategyImpl.java

@@ -3,7 +3,7 @@ package org.dromara.server.mq.event.kafka.impl.yktOperation;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.message.kafka.constant.MessageEventTypeConstants;
-import org.dromara.server.base.service.yktOperation.SyncRemotePXfTermService;
+import org.dromara.server.base.service.yktOperation.SyncRemoteXfTermService;
 import org.dromara.server.mq.event.kafka.IYktEventStrategy;
 import org.springframework.stereotype.Service;
 
@@ -17,7 +17,7 @@ import org.springframework.stereotype.Service;
 @Service(MessageEventTypeConstants.XF_TERM_SENDER)
 public class PtXfTermEventStrategyImpl implements IYktEventStrategy {
 
-    private final SyncRemotePXfTermService xfTermService;
+    private final SyncRemoteXfTermService xfTermService;
     @Override
     public void doMsgHandle(String eventType, Object msg) throws Exception{