Răsfoiți Sursa

feature: 消费服务
1.接收原消费数据kafka推送后消费入账

luoyb 1 an în urmă
părinte
comite
f81a54dfff
20 a modificat fișierele cu 99 adăugiri și 206 ștergeri
  1. 2 2
      ruoyi-api/ruoyi-api-consume/src/main/java/org/dromara/consume/api/RemoteConsumeService.java
  2. 6 1
      ruoyi-api/ruoyi-api-consume/src/main/java/org/dromara/consume/api/domain/bo/RemoteConsumeBo.java
  3. 0 146
      ruoyi-api/ruoyi-api-consume/src/main/java/org/dromara/consume/api/domain/vo/RemoteUserAccountVo.java
  4. 9 2
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/self/TraineeBusiness.java
  5. 0 1
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumeDetailOriginalServiceImpl.java
  6. 12 5
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/self/TraineeController.java
  7. 2 2
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/BaseBusiness.java
  8. 5 4
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/CheckBusiness.java
  9. 1 0
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/ConsumeBusiness.java
  10. 4 0
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/controller/v1/ConsumeController.java
  11. 2 2
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/dubbo/RemoteConsumeServiceImpl.java
  12. 1 1
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/mapper/ConsumeDetailOriginalMapper.java
  13. 1 1
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/service/IConsumeDetailOriginalService.java
  14. 4 4
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/service/impl/ConsumeDetailOriginalServiceImpl.java
  15. 1 0
      ruoyi-server/ruoyi-server-consume/src/main/resources/META-INF.spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  16. 1 1
      ruoyi-server/ruoyi-server-consume/src/main/resources/application.yml
  17. 2 2
      ruoyi-server/ruoyi-server-consume/src/main/resources/mapper/consume/ConsumeDetailOriginalMapper.xml
  18. 10 7
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaConsumer.java
  19. 6 2
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/card/ConsumeEventStrategyImpl.java
  20. 30 23
      ruoyi-server/ruoyi-server-sync/src/main/java/org/dromara/server/sync/service/SyncTrainService.java

+ 2 - 2
ruoyi-api/ruoyi-api-consume/src/main/java/org/dromara/consume/api/RemoteConsumeService.java

@@ -2,7 +2,7 @@ package org.dromara.consume.api;
 
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.model.ErrorInfo;
-import org.dromara.consume.api.domain.bo.RemoteConsumptionBo;
+import org.dromara.consume.api.domain.bo.RemoteConsumeBo;
 
 /**
  * @ClassName RemoteConsumeService
@@ -19,5 +19,5 @@ public interface RemoteConsumeService {
      * @param bo 消费数据
      * @return 处理结果
      */
-    R<ErrorInfo>  dealKafkaConsumeData(RemoteConsumptionBo bo);
+    R<ErrorInfo>  dealKafkaConsumeData(RemoteConsumeBo bo);
 }

+ 6 - 1
ruoyi-api/ruoyi-api-consume/src/main/java/org/dromara/consume/api/domain/bo/RemoteConsumptionBo.java → ruoyi-api/ruoyi-api-consume/src/main/java/org/dromara/consume/api/domain/bo/RemoteConsumeBo.java

@@ -4,6 +4,8 @@ import lombok.Data;
 import org.dromara.common.core.enums.CreditTypeEnum;
 import org.dromara.common.core.enums.SystemUseTypeEnum;
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -19,7 +21,10 @@ import java.util.Date;
  * @since JDK 1.8
  */
 @Data
-public class RemoteConsumptionBo {
+public class RemoteConsumeBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 3387823485152734748L;
+
     //region 消费业务基础属性
     /**
      * 人员账户Id

+ 0 - 146
ruoyi-api/ruoyi-api-consume/src/main/java/org/dromara/consume/api/domain/vo/RemoteUserAccountVo.java

@@ -1,146 +0,0 @@
-package org.dromara.consume.api.domain.vo;
-
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-/**
- * 一卡通账户视图对象 t_pt_userAccount
- *
- * @author LionLi
- * @date 2024-08-05
- */
-@Data
-public class RemoteUserAccountVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 账户Id,主键
-     */
-    private Long userId;
-
-    /**
-     * 岗位Id
-     */
-    private Long postId;
-
-    /**
-     * 部门Id
-     */
-    private Long deptId;
-
-    /**
-     * 账户名/登录账号
-     */
-    private String userName;
-
-    /**
-     * 账户编号/工号
-     */
-    private String userNumb;
-
-    /**
-     * 账户姓名
-     */
-    private String realName;
-
-    /**
-     * 账户性别,见sys_user_sex字典类型
-     */
-    private String sex;
-
-    /**
-     * 账户类型(0=内部账户 1=老师 2=学生 3=家长  4=其他人员)
-     */
-    private String category;
-
-    /**
-     * 手机号码
-     */
-    private String phone;
-
-    /**
-     * 身份证号
-     */
-    private String idNumber;
-
-    /**
-     * 一卡通账户状态(0-未开户  1-已开户  -1已销户)
-     */
-    private String accountStatus;
-
-    /**
-     * 账户是否被冻结,见sys_yes_no字典类型
-     */
-    private String freezeStatus;
-
-    /**
-     * 消费密码
-     */
-    private String consumePwd;
-
-    /**
-     * 账户流水号
-     */
-    private Long userNo;
-
-    /**
-     * 账户卡片类型
-     */
-    private Long cardType;
-
-    /**
-     * 账户有效期
-     */
-    private Date lifespan;
-
-     /**
-     * 人脸照片地址
-     */
-    private String photo;
-
-    /**
-     * 唯一身份标识,第三方统一身份认证ID
-     */
-    private String otherId;
-
-    /**
-     * 第三方人员状态
-     */
-    private String userState;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 账户状态,见sys_normal_disable字典类型
-     */
-    private String status;
-
-    /**
-     * 部门名
-     */
-    private String deptName;
-
-    /**
-     * 卡类名
-     */
-    private String cardTypeName;
-
-    /**
-     * 账户余额
-     */
-    private String accountBalance;
-
-    /**
-     * 账户发卡信息
-     */
-    private String accountCard;
-}

+ 9 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/self/TraineeBusiness.java

@@ -2,6 +2,7 @@ package org.dromara.backstage.business.self;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import lombok.RequiredArgsConstructor;
@@ -106,6 +107,11 @@ public class TraineeBusiness {
             traineeVo.setRoomId(kfOrderVo.getRoomId());
             traineeVo.setGuestRoomId(kfOrderVo.getRoomId());
             traineeVo.setOrderIndex(ObjectUtil.isNotEmpty(kfOrderVo.getOrderIndex()) ? kfOrderVo.getOrderIndex() : 0);
+            if(ObjectUtil.isNotEmpty(kfOrderVo.getRoomCode())){
+                // 获取房卡信息
+                String cardData = getRoomCardData(kfOrderVo);
+                traineeVo.setRoomCardData(cardData);
+            }
         }
         return R.ok(traineeVo);
     }
@@ -298,8 +304,9 @@ public class TraineeBusiness {
      */
     private String getRoomCardData(RemoteOrderVo orderVo) {
         RoomCardBo roomCardBo = new RoomCardBo();
-        roomCardBo.setStartTime(DateUtil.toLocalDateTime(orderVo.getCheckinDate()));
-        roomCardBo.setEndTime(DateUtil.toLocalDateTime(orderVo.getCheckoutDate()));
+        roomCardBo.setStartTime(DateUtil.toLocalDateTime(new DateTime()));
+        String temp = DateUtil.format(orderVo.getCheckoutDate(),"yyyy-MM-dd") + " 19:59:59";
+        roomCardBo.setEndTime(DateUtil.toLocalDateTime(DateUtil.parseDateTime(temp)));
         roomCardBo.setCardType(RoomCardTypeEnum.GUEST.code());
         roomCardBo.setRealName(orderVo.getName());
         roomCardBo.setPhone(orderVo.getPhone());

+ 0 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumeDetailOriginalServiceImpl.java

@@ -1,6 +1,5 @@
 package org.dromara.backstage.consumption.service.impl;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
 import org.dromara.backstage.consumption.domain.XfConsumeDetailOriginal;
 import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailOriginalBo;
 import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailOriginalVo;

+ 12 - 5
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/self/TraineeController.java

@@ -1,5 +1,6 @@
 package org.dromara.backstage.controller.self;
 
+import cn.hutool.core.codec.Base64;
 import cn.hutool.core.date.DateUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -15,6 +16,7 @@ import org.dromara.common.json.utils.JsonUtils;
 import org.dromara.system.api.domain.vo.RemoteDeptVo;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -41,12 +43,17 @@ public class TraineeController {
      */
     @GetMapping("/api/v1/mobile/{mobile}/{checkInDate}")
     public ReturnResult getUserByMobile(@PathVariable("mobile") String mobile, @PathVariable("checkInDate") String checkInDate) {
-        YcTraineeBo bo = new YcTraineeBo().setMobilePhone(mobile).setCategory("2");
-        R<YcTraineeVo> result = traineeBusiness.getTraineeRegisterInfo(bo, DateUtil.parseDate(checkInDate));
-        if (R.isError(result)) {
-            return ReturnResult.failure(ResultCodeEnum.DATA_NOT_FOUND, "没有您的培训信息,请和班主任联系");
+        try {
+            YcTraineeBo bo = new YcTraineeBo().setMobilePhone(mobile).setCategory("2");
+            R<YcTraineeVo> result = traineeBusiness.getTraineeRegisterInfo(bo, DateUtil.parseDate(checkInDate));
+            if (R.isError(result)) {
+                return ReturnResult.failure(ResultCodeEnum.DATA_NOT_FOUND, "没有您的培训信息,请和班主任联系");
+            }
+            return ReturnResult.success(result.getData());
+        } catch (RuntimeException e){
+            log.error("获取学员培训信息失败,电话号码:{},错误原因:{}", Base64.decodeStr(mobile),e.getMessage());
+            return ReturnResult.failure(ResultCodeEnum.DATA_IS_WRONG);
         }
-        return ReturnResult.success(result.getData());
     }
 
     /**

+ 2 - 2
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/BaseBusiness.java

@@ -9,12 +9,12 @@ import org.dromara.backstage.api.domain.vo.RemoteCardVo;
 import org.dromara.backstage.api.domain.vo.RemoteMealTypeVo;
 import org.dromara.backstage.api.domain.vo.RemoteUserAccountVo;
 import org.dromara.common.core.constant.ApiErrorTypeConstants;
+import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.model.ErrorInfo;
 import org.dromara.common.core.enums.BalanceUpdateEnum;
 import org.dromara.common.core.exception.consume.ConsumeException;
 import org.dromara.common.core.utils.RecordIdUtils;
-import org.dromara.server.common.constant.DefaultConstants;
 import org.dromara.server.common.domain.consume.bo.ConsumptionBo;
 import org.dromara.server.consume.domain.bo.*;
 import org.dromara.server.consume.domain.vo.*;
@@ -42,7 +42,7 @@ import java.util.concurrent.atomic.AtomicReference;
 @Service
 @RequiredArgsConstructor
 public class BaseBusiness {
-    private final IXfConsumeDetailOriginalService originalService;
+    private final IConsumeDetailOriginalService originalService;
     private final IXfUserTotalService userTotalService;
     private final IXfTermTotalService termTotalService;
     private final IXfConsumeDetailService consumeDetailService;

+ 5 - 4
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/CheckBusiness.java

@@ -27,7 +27,7 @@ import org.dromara.server.consume.domain.vo.XfConsumeDetailOriginalVo;
 import org.dromara.server.consume.domain.vo.XfConsumeDetailVo;
 import org.dromara.server.consume.domain.vo.XfTermVo;
 import org.dromara.server.consume.service.IPtBagService;
-import org.dromara.server.consume.service.IXfConsumeDetailOriginalService;
+import org.dromara.server.consume.service.IConsumeDetailOriginalService;
 import org.dromara.server.consume.service.IXfConsumeDetailService;
 import org.dromara.server.consume.service.IXfTermService;
 import org.jetbrains.annotations.NotNull;
@@ -63,7 +63,7 @@ public class CheckBusiness {
     private final RemoteOperatorService remoteOperatorService;
 
     private final IXfTermService termService;
-    private final IXfConsumeDetailOriginalService consumeDetailOriginalService;
+    private final IConsumeDetailOriginalService consumeDetailOriginalService;
     private final IXfConsumeDetailService consumeDetailService;
     private final IPtBagService bagService;
 
@@ -452,10 +452,11 @@ public class CheckBusiness {
 
         // 消费卡类限制验证
         int offsetTypeId = (int) Math.pow(2, (cardTypeId - 1));
-        if ((offsetTypeId & termCardTypeId) != offsetTypeId) {
+        int temp = offsetTypeId & termCardTypeId;
+        if (temp != offsetTypeId) {
             return R.fail(new ErrorInfo(400, ApiErrorTypeConstants.NOT_FOUND, "卡类限制", TradeStatusEnum.CardTypeLimit.getName()));
         }
-        return R.fail();
+        return R.ok();
     }
 
     private RemoteOperatorVo getOperatorVo(ConsumptionBo bo) {

+ 1 - 0
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/ConsumeBusiness.java

@@ -74,6 +74,7 @@ public class ConsumeBusiness {
             return result;
         }
         bo.setRecordId(originalVo.getRecordId());
+        bo.setStatusFlag(originalVo.getStatusFlag().intValue());
         return R.ok();
     }
 

+ 4 - 0
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/controller/v1/ConsumeController.java

@@ -54,6 +54,10 @@ public class ConsumeController {
         return doRecordData(record, "fullRecord");
     }
 
+    @PostMapping("/Consume/kafka")
+    public R<ErrorInfo> consumeKafka(@RequestBody ConsumptionBo bo) {
+        return consumeBusiness.fullOrder(bo);
+    }
     private Object doRecordData(Object record, String type) {
         if (ObjectUtil.length(record) == 0) {
             ErrorResult result = ErrorResult.instance(HttpStatus.FORBIDDEN, "处理失败", 1, "PARAM_ERROR", "参数错误",

+ 2 - 2
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/dubbo/RemoteConsumeServiceImpl.java

@@ -6,7 +6,7 @@ import org.apache.dubbo.config.annotation.DubboService;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.model.ErrorInfo;
 import org.dromara.consume.api.RemoteConsumeService;
-import org.dromara.consume.api.domain.bo.RemoteConsumptionBo;
+import org.dromara.consume.api.domain.bo.RemoteConsumeBo;
 import org.dromara.server.common.domain.consume.bo.ConsumptionBo;
 import org.dromara.server.consume.business.ConsumeBusiness;
 import org.springframework.stereotype.Service;
@@ -25,7 +25,7 @@ import org.springframework.stereotype.Service;
 public class RemoteConsumeServiceImpl implements RemoteConsumeService {
     private final ConsumeBusiness consumeBusiness;
     @Override
-    public R<ErrorInfo> dealKafkaConsumeData(RemoteConsumptionBo bo) {
+    public R<ErrorInfo> dealKafkaConsumeData(RemoteConsumeBo bo) {
         return consumeBusiness.fullOrder(BeanUtil.copyProperties(bo, ConsumptionBo.class));
     }
 }

+ 1 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/mapper/XfConsumeDetailOriginalMapper.java → ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/mapper/ConsumeDetailOriginalMapper.java

@@ -10,6 +10,6 @@ import org.dromara.server.consume.domain.vo.XfConsumeDetailOriginalVo;
  * @author LionLi
  * @date 2024-08-15
  */
-public interface XfConsumeDetailOriginalMapper extends BaseMapperPlus<XfConsumeDetailOriginal, XfConsumeDetailOriginalVo> {
+public interface ConsumeDetailOriginalMapper extends BaseMapperPlus<XfConsumeDetailOriginal, XfConsumeDetailOriginalVo> {
 
 }

+ 1 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/service/IXfConsumeDetailOriginalService.java → ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/service/IConsumeDetailOriginalService.java

@@ -11,7 +11,7 @@ import java.util.List;
  * @author LionLi
  * @date 2024-08-15
  */
-public interface IXfConsumeDetailOriginalService {
+public interface IConsumeDetailOriginalService {
     /**
      * 查询原始消费记录
      *

+ 4 - 4
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/service/impl/XfConsumeDetailOriginalServiceImpl.java → ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/service/impl/ConsumeDetailOriginalServiceImpl.java

@@ -8,8 +8,8 @@ import org.dromara.common.core.utils.StringUtils;
 import org.dromara.server.consume.domain.XfConsumeDetailOriginal;
 import org.dromara.server.consume.domain.bo.XfConsumeDetailOriginalBo;
 import org.dromara.server.consume.domain.vo.XfConsumeDetailOriginalVo;
-import org.dromara.server.consume.mapper.XfConsumeDetailOriginalMapper;
-import org.dromara.server.consume.service.IXfConsumeDetailOriginalService;
+import org.dromara.server.consume.mapper.ConsumeDetailOriginalMapper;
+import org.dromara.server.consume.service.IConsumeDetailOriginalService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -23,9 +23,9 @@ import java.util.Map;
  */
 @RequiredArgsConstructor
 @Service
-public class XfConsumeDetailOriginalServiceImpl implements IXfConsumeDetailOriginalService {
+public class ConsumeDetailOriginalServiceImpl implements IConsumeDetailOriginalService {
 
-    private final XfConsumeDetailOriginalMapper baseMapper;
+    private final ConsumeDetailOriginalMapper baseMapper;
 
     /**
      * 查询原始消费记录

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

@@ -1 +1,2 @@
 org.dromara.server.consume.business.CheckBusiness
+org.dromara.server.consume.dubbo.RemoteConsumeServiceImpl

+ 1 - 1
ruoyi-server/ruoyi-server-consume/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9104
+  port: 9106
 
 # Spring
 spring:

+ 2 - 2
ruoyi-server/ruoyi-server-consume/src/main/resources/mapper/consume/XfConsumeDetailOriginalMapper.xml → ruoyi-server/ruoyi-server-consume/src/main/resources/mapper/consume/ConsumeDetailOriginalMapper.xml

@@ -2,9 +2,9 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.server.consume.mapper.XfConsumeDetailOriginalMapper">
+<mapper namespace="org.dromara.server.consume.mapper.ConsumeDetailOriginalMapper">
 
-    <resultMap type="org.dromara.server.consume.domain.XfConsumeDetailOriginal" id="XfConsumeDetailOriginalResult">
+    <resultMap type="org.dromara.server.consume.domain.XfConsumeDetailOriginal" id="ConsumeDetailOriginalResult">
             <result property="originalId"    column="original_id"    />
             <result property="tenantId"    column="tenant_id"    />
             <result property="recordId"    column="record_id"    />

+ 10 - 7
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaConsumer.java

@@ -1,5 +1,6 @@
 package org.dromara.server.mq.consumer;
 
+import cn.hutool.core.util.ObjUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
@@ -33,17 +34,19 @@ public class KafkaConsumer {
 
     private final EventStrategyContext eventStrategyContext;
 
-//    @KafkaListener(topics = "eventBus", groupId = "test-group-id")
+    @KafkaListener(topics = "eventBus", groupId = "test-group-id")
     public void kafkaReceiveHandler(ConsumerRecord<String, String> record) {
         KafkaMessage<?> receiveMsg = JSONUtil.toBean(record.value(), KafkaMessage.class);
-        log.info("[接收到Kafka消息]-[{}]", receiveMsg);
+        //log.info("[接收到Kafka消息]-[{}]", receiveMsg);
         String eventType = receiveMsg.getHeader().getEventType();
+        String sender = receiveMsg.getHeader().getSender();
         JSONObject eventMsg = JSONUtil.parseObj(receiveMsg.getBody());
-
-        try {
-            eventStrategyContext.doMsgHandle(eventType, eventMsg);
-        } catch (Exception e) {
-            log.error("[kafka消息处理失败]-[消息:{}-[错误:{}]", receiveMsg, e.getMessage());
+        if(ObjUtil.equals(sender,"005")) {
+            try {
+                eventStrategyContext.doMsgHandle(eventType, eventMsg);
+            } catch (Exception e) {
+                log.error("[kafka消息处理失败]-[消息:{}-[错误:{}]", receiveMsg, e.getMessage());
+            }
         }
     }
 }

+ 6 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/card/ConsumeEventStrategyImpl.java

@@ -4,10 +4,12 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONObject;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.enums.CreditTypeEnum;
+import org.dromara.common.core.enums.SystemUseTypeEnum;
 import org.dromara.consume.api.RemoteConsumeService;
-import org.dromara.consume.api.domain.bo.RemoteConsumptionBo;
+import org.dromara.consume.api.domain.bo.RemoteConsumeBo;
 import org.dromara.server.mq.constant.kafka.YktEventContraints;
 import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.springframework.stereotype.Service;
@@ -26,10 +28,11 @@ import java.math.BigDecimal;
 @RequiredArgsConstructor
 @Service(YktEventContraints.CONSUME_DETAIL)
 public class ConsumeEventStrategyImpl implements IEventStrategy {
+    @DubboReference
     private final RemoteConsumeService remoteConsumeService;
     @Override
     public void doMsgHandle(JSONObject data) {
-        RemoteConsumptionBo recordBo = new RemoteConsumptionBo();
+        RemoteConsumeBo recordBo = new RemoteConsumeBo();
         String time = data.get("consumeDate").toString();
         recordBo.setConsumeMoney(new BigDecimal(data.get("consumeValue").toString()));
         recordBo.setConsumeDate(DateUtil.parse(time));
@@ -42,6 +45,7 @@ public class ConsumeEventStrategyImpl implements IEventStrategy {
         recordBo.setRecordStatus(Long.valueOf(data.get("posRecordState").toString()));
         recordBo.setCreditType(CreditTypeEnum.TERM_CONSUME);
         recordBo.setTenantId(DefaultConstants.TENANT_ID);
+        recordBo.setUseType(SystemUseTypeEnum.CONSUME);
 
         remoteConsumeService.dealKafkaConsumeData(recordBo);
     }

+ 30 - 23
ruoyi-server/ruoyi-server-sync/src/main/java/org/dromara/server/sync/service/SyncTrainService.java

@@ -1,6 +1,7 @@
 package org.dromara.server.sync.service;
 
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
 import cn.hutool.json.JSONUtil;
@@ -93,7 +94,7 @@ public class SyncTrainService {
     public Boolean syncTrainee() {
         HttpRequest req = CreateHttpRequest.createRequest();
         req.body(getQueryBodyForTrainee());
-        // 获取到培训学员数据
+         //获取到培训学员数据
         try (HttpResponse res = req.execute()) {
             SyncFullDataBo traineeDataBo = JSONUtil.toBean(res.body(), SyncFullDataBo.class);
             List<ResourcePerson> resourcePersonList = getResourcePeople(traineeDataBo);
@@ -122,36 +123,36 @@ public class SyncTrainService {
         // List<ResourcePerson> resourcePersonList = new ArrayList<>();
         // ResourcePerson person = new ResourcePerson();
         // person.setTenantId(DefaultConstants.TENANT_ID);
-        // person.setUserId("1799827959791554562");
-        // person.setDeptId("1828720861385904129");
+        // person.setUserId("1853987345201864705");
+        // person.setDeptId("1853708079319863298");
         // person.setPostCode(DefaultConstants.TRAINEE_CODE);
-        // person.setRealName("赵开羽");
+        // person.setRealName("伍小明");
         // person.setSex("1");
-        // person.setPhone("18974390367");
-        // person.setIdNumber("XP4aO5yhQyNPUctSqDOU9Syh9KUo/DN8");
+        // person.setPhone("13787789560");
+        // person.setIdNumber("mog4/k8a/4miVCVw63+2cfegRpc7YmBK");
         // person.setCategory("2");
         // person.setOperatorId(DefaultConstants.FULL_SYNC_ADMIN);
         // resourcePersonList.add(person);
         //
         // List<ResourcePersonDept> resourcePersonDeptList = new ArrayList<>();
         // ResourcePersonDept personDept = new ResourcePersonDept();
-        // personDept.setUserId("1799827959791554562");
-        // personDept.setDeptId("1828720861385904129");
+        // personDept.setUserId("1853987345201864705");
+        // personDept.setDeptId("1853708079319863298");
         // personDept.setPostCode(DefaultConstants.TRAINEE_CODE);
         // personDept.setDelFlag("0");
         // resourcePersonDeptList.add(personDept);
-        //
-        // personDept = new ResourcePersonDept();
-        // personDept.setUserId("1799827959791554562");
-        // personDept.setDeptId("ffe051b8cf2e45ddb899d596108699d7");
-        // personDept.setPostCode(DefaultConstants.TRAINEE_CODE);
-        // personDept.setDelFlag("0");
-        // resourcePersonDeptList.add(personDept);
-        // getResourcePeople(resourcePersonDeptList, resourcePersonList);
-        //
-        // syncUserStrategyContent.syncUser(resourcePersonList, SyncResourceConstants.TRAINEE);
-        //
-        // return true;
+
+         //personDept = new ResourcePersonDept();
+         //personDept.setUserId("1799827959791554562");
+         //personDept.setDeptId("ffe051b8cf2e45ddb899d596108699d7");
+         //personDept.setPostCode(DefaultConstants.TRAINEE_CODE);
+         //personDept.setDelFlag("0");
+         //resourcePersonDeptList.add(personDept);
+         //getResourcePeople(resourcePersonDeptList, resourcePersonList);
+         //
+         //syncUserStrategyContent.syncUser(resourcePersonList, SyncResourceConstants.TRAINEE);
+         //
+         //return true;
         // endregion
     }
 
@@ -538,7 +539,7 @@ public class SyncTrainService {
      */
     @NotNull
     private List<ResourcePersonDept> getResourcePersonDeptList(SyncFullDataBo classTraineeDataBo) {
-        String isCheck = "1";
+        String delFlag = "2";
         List<ResourcePersonDept> resourcePersonDeptList = new ArrayList<>();
         for (List<String> personDeptSr : classTraineeDataBo.getResponseParam().getResourceInfos().get(0).getDataInfo()) {
             ResourcePersonDept personDept = new ResourcePersonDept();
@@ -548,8 +549,14 @@ public class SyncTrainService {
             personDept.setDeptId(personDeptSr.get(0));
             // 岗位编码,默认为学员
             personDept.setPostCode(DefaultConstants.TRAINEE_CODE);
-            // 和班级的绑定状态 0-正常 1-已报到一卡通不处理 2-退学 一卡通删除
-            personDept.setDelFlag(personDeptSr.get(2).equals(isCheck) ? "0" : personDeptSr.get(2));
+            // 和班级的绑定状态 0-已报名 1-已确认 3-已报到 一卡通按正常状态处理  2-已拒绝 7-已离校 一卡通按删除状态处理
+            String status = personDeptSr.get(2);
+            if(ObjectUtil.equals(status,"2")||ObjectUtil.equals(status,"7")){
+                personDept.setDelFlag("2");
+            } else{
+                personDept.setDelFlag("0");
+            }
+
             resourcePersonDeptList.add(personDept);
         }
         return resourcePersonDeptList;