Procházet zdrojové kódy

feature: kafka消费信息处理

luoyb před 1 rokem
rodič
revize
c98b5e92fd

+ 5 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/ConsumptionBo.java

@@ -119,6 +119,11 @@ public class ConsumptionBo extends BaseEntity {
      * 交易类型
      */
     private CreditTypeEnum creditType;
+
+    /**
+     * 租户编号
+     */
+    private String tenantId;
     //endregion
 
     //region 错扣补款属性

+ 45 - 32
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/mq/KafkaNormalConsumer.java

@@ -5,11 +5,9 @@ import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
-import com.alibaba.nacos.api.model.v2.Result;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
-import org.dromara.backstage.api.domain.bo.RemoteConsumptionBo;
 import org.dromara.backstage.business.consume.strategy.Impl.ConsumeStrategyContent;
 import org.dromara.backstage.consumption.domain.bo.ConsumeRecordBo;
 import org.dromara.backstage.consumption.domain.bo.ConsumptionBo;
@@ -21,7 +19,6 @@ import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
-import java.util.Date;
 import java.util.HashMap;
 
 /**
@@ -47,36 +44,52 @@ public class KafkaNormalConsumer {
         KafkaMessage<?> kmsg = JSONUtil.toBean(record.value(), KafkaMessage.class);
         if(kmsg.getHeader().getEventType().equals("00500001")){
             JSONObject data = JSONUtil.parseObj(kmsg.getBody());
-            ConsumeRecordBo recordBo = new ConsumeRecordBo();
-            String time = data.get("consumeDate").toString();
-            recordBo.setConsumeValue(new BigDecimal(data.get("consumeValue").toString()));
-            recordBo.setConsumeDate(DateUtil.parse(time));
-            recordBo.setCardID(Long.valueOf(data.get("cardNo").toString()));
-            recordBo.setFactoryFixID(Long.valueOf(data.get("factoryFixId").toString()));
-            recordBo.setTermID(Long.valueOf( data.get("termNo").toString()));
-            recordBo.setTermRecordID(Long.valueOf(data.get("termRecordID").toString()));
-            recordBo.setEmployeeName(data.get("xm").toString());
-            recordBo.setEmployeeStrID(data.get("userNumb").toString());
-            recordBo.setPosRecordState(Integer.valueOf(data.get("posRecordState").toString()));
-            //recordBo.setCreditType(CreditTypeEnum.TERM_CONSUME);
-
-            HashMap<String, String> headerMap = new HashMap<>();
-            headerMap.put("clientId", "e5cd7e4891bf95d1d19206ce24a7b32e");
-            headerMap.put("authorization","Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxMDAiLCJyblN0ciI6ImkyVnRzNVh1cGFRamVVQWhMQzQ2YnAxR0FVY2Zka0NOIiwiY2xpZW50aWQiOiJlNWNkN2U0ODkxYmY5NWQxZDE5MjA2Y2UyNGE3YjMyZSIsInRlbmFudElkIjoiMjAyMDA4MTMwNDQ0MTEiLCJ1c2VySWQiOjEwMCwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAwLCJkZXB0TmFtZSI6IuS4reWFsea5luWNl-ecgeWnlOWFmuagoea5luWNl-ihjOaUv-WtpumZoiIsImRlcHRUeXBlIjoiMDEifQ.vl03dSMPY2Vkq-L1OJEpJgqN5NEkk2ig0ncxHfjrpwI");
-            String url = "http://localhost:8001/dev-api/backstage/v1/Consumes/ConsumeOriginal";
-            String bodyStr = bodyStr = JSONUtil.toJsonStr(recordBo);
-            HttpResponse response = HttpRequest.post(url)
-                .body(bodyStr)
-                .addHeaders(headerMap).timeout(20000).execute();
-
-            log.info(response.body());
-            //R<Object> result = consumeStrategyContent.createOrder(recordBo);
-            //XfConsumeDetailOriginalVo vo = (XfConsumeDetailOriginalVo)result.getData();
-            //
-            //recordBo.setRecordId(vo.getRecordId());
-            //recordBo.setConsumeId(vo.getOriginalId());
-            //result =  consumeStrategyContent.postOrder(recordBo);
+            //uploadByHttp(data);
+            uploadByService(data);
         }
         log.info("【消费者】received the message key {},value:{}", key, value);
     }
+    private void uploadByService(JSONObject data) {
+        ConsumptionBo recordBo = new ConsumptionBo();
+        String time = data.get("consumeDate").toString();
+        recordBo.setConsumeMoney(new BigDecimal(data.get("consumeValue").toString()));
+        recordBo.setConsumeDate(DateUtil.parse(time));
+        recordBo.setCardNo(Long.valueOf(data.get("cardNo").toString()));
+        recordBo.setFactoryId(Long.valueOf(data.get("factoryFixId").toString()));
+        recordBo.setTermNo(Long.valueOf( data.get("termNo").toString()));
+        recordBo.setTermRecordId(Long.valueOf(data.get("termRecordID").toString()));
+        recordBo.setRealName(data.get("xm").toString());
+        recordBo.setUserNumb(data.get("userNumb").toString());
+        recordBo.setRecordStatus(Long.valueOf(data.get("posRecordState").toString()));
+        recordBo.setCreditType(CreditTypeEnum.TERM_CONSUME);
+        recordBo.setTenantId("20200813044411");
+        R<Object> result = consumeStrategyContent.createOrder(recordBo);
+        XfConsumeDetailOriginalVo vo = (XfConsumeDetailOriginalVo)result.getData();
+
+        recordBo.setRecordId(vo.getRecordId());
+        recordBo.setConsumeId(vo.getOriginalId());
+        consumeStrategyContent.postOrder(recordBo);
+    }
+    private void uploadByHttp(JSONObject data) {
+        ConsumeRecordBo recordBo = new ConsumeRecordBo();
+        String time = data.get("consumeDate").toString();
+        recordBo.setConsumeValue(new BigDecimal(data.get("consumeValue").toString()));
+        recordBo.setConsumeDate(DateUtil.parse(time));
+        recordBo.setCardID(Long.valueOf(data.get("cardNo").toString()));
+        recordBo.setFactoryFixID(Long.valueOf(data.get("factoryFixId").toString()));
+        recordBo.setTermID(Long.valueOf( data.get("termNo").toString()));
+        recordBo.setTermRecordID(Long.valueOf(data.get("termRecordID").toString()));
+        recordBo.setEmployeeName(data.get("xm").toString());
+        recordBo.setEmployeeStrID(data.get("userNumb").toString());
+        recordBo.setPosRecordState(Integer.valueOf(data.get("posRecordState").toString()));
+
+        HashMap<String, String> headerMap = new HashMap<>();
+        headerMap.put("clientId", "e5cd7e4891bf95d1d19206ce24a7b32e");
+        headerMap.put("authorization","Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxMDAiLCJyblN0ciI6InJZbnhqcGlLaXUwV0RDTEtDSVQzVnlzM3h5akRxV2djIiwiY2xpZW50aWQiOiJlNWNkN2U0ODkxYmY5NWQxZDE5MjA2Y2UyNGE3YjMyZSIsInRlbmFudElkIjoiMjAyMDA4MTMwNDQ0MTEiLCJ1c2VySWQiOjEwMCwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAwLCJkZXB0TmFtZSI6IuS4reWFsea5luWNl-ecgeWnlOWFmuagoea5luWNl-ihjOaUv-WtpumZoiIsImRlcHRUeXBlIjoiMDEifQ.0TSmET5FcK0OmfA4kUtV0YUZBEOTj6njfWb_ReRIJ5Y");
+        String url = "http://localhost:8001/dev-api/backstage/v1/Consumes/ConsumeOriginal";
+        String bodyStr = bodyStr = JSONUtil.toJsonStr(recordBo);
+        HttpResponse response = HttpRequest.post(url)
+            .body(bodyStr)
+            .addHeaders(headerMap).timeout(20000).execute();
+    }
 }

+ 5 - 5
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/mapper/PtUserAccountMapper.java

@@ -31,11 +31,11 @@ public interface PtUserAccountMapper extends BaseMapperPlus<PtUserAccount, PtUse
 
     Page<PtUserAccount4SelectVo> customPageList(Page<PtUserAccount> page, @Param("bo") PtUserAccountBo bo);
 
-    @Override
-    @DataPermission({
-        @DataColumn(key = "deptName", value = "dept_id"),
-    })
-    List<PtUserAccount> selectList(@Param(Constants.WRAPPER) Wrapper<PtUserAccount> queryWrapper);
+    //@Override
+    //@DataPermission({
+    //    @DataColumn(key = "deptName", value = "dept_id"),
+    //})
+    //List<PtUserAccount> selectList(@Param(Constants.WRAPPER) Wrapper<PtUserAccount> queryWrapper);
 
     default Page<PtUserAccountVo>customSelectVoPage(Page<PtUserAccount> page, Wrapper<PtUserAccount> wrapper){
         // 根据条件分页查询实体对象列表

+ 4 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/service/impl/PtUserAccountServiceImpl.java

@@ -438,9 +438,11 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
      */
     @Override
     public PtUserAccountVo queryByNameAndNumb(String realName, String userNumb) {
-        PtUserAccountVo vo = baseMapper.selectVoOne(Wrappers.<PtUserAccount>lambdaQuery()
+        LambdaQueryWrapper<PtUserAccount> query = new LambdaQueryWrapper<PtUserAccount>()
             .eq(PtUserAccount::getRealName,realName)
-            .eq(PtUserAccount::getUserNumb,userNumb));
+            .eq(PtUserAccount::getUserNumb,userNumb);
+
+        PtUserAccountVo vo = baseMapper.selectVoOne(query);
         if(vo!=null) {
             String deptName = remoteDeptService.selectDeptNameByIds(vo.getDeptId().toString());
             vo.setDeptName(deptName);