e8a78ceb by 肖初晴

【DAOP-1.0】企业认证

【功能点】kafka方式改造
1 parent fc06d3a1
1 package com.csbr.qingcloud.portal.controller; 1 package com.csbr.qingcloud.portal.controller;
2 2
3 import com.csbr.cloud.common.response.CommonRes; 3 import com.csbr.cloud.common.response.CommonRes;
4 import com.csbr.cloud.workflow.domain.dto.appove.FlowUpdateStateDTO;
4 import com.csbr.qingcloud.portal.domain.vo.*; 5 import com.csbr.qingcloud.portal.domain.vo.*;
5 import com.csbr.qingcloud.portal.service.EnterpriseChangeApproveService; 6 import com.csbr.qingcloud.portal.service.EnterpriseChangeApproveService;
6 import csbr.cloud.entity.annotation.SystemLog; 7 import csbr.cloud.entity.annotation.SystemLog;
...@@ -93,6 +94,14 @@ public class EnterpriseController { ...@@ -93,6 +94,14 @@ public class EnterpriseController {
93 return CommonRes.success(true); 94 return CommonRes.success(true);
94 } 95 }
95 96
97 @PostMapping("/last-approve")
98 @SystemLog(value = "企业认证审批")
99 @Operation(summary = "企业认证审批-最后一个节点时调用")
100 public CommonRes<Boolean> lastApprove(@RequestBody FlowUpdateStateDTO dto) {
101 Boolean vo = enterpriseService.lastApprove(dto);
102 return CommonRes.success(vo);
103 }
104
96 @PostMapping("/move-old-data") 105 @PostMapping("/move-old-data")
97 @SystemLog(value = "将此账号提交的数据需求迁移到新的企业") 106 @SystemLog(value = "将此账号提交的数据需求迁移到新的企业")
98 @Operation(summary = "将此账号提交的数据需求迁移到新的企业", hidden = true) 107 @Operation(summary = "将此账号提交的数据需求迁移到新的企业", hidden = true)
......
1 package com.csbr.qingcloud.portal.service; 1 package com.csbr.qingcloud.portal.service;
2 2
3 import com.csbr.cloud.workflow.domain.dto.appove.FlowUpdateStateDTO;
3 import com.csbr.qingcloud.portal.domain.vo.*; 4 import com.csbr.qingcloud.portal.domain.vo.*;
4 import csbr.cloud.entity.domain.base.vo.PageListVO; 5 import csbr.cloud.entity.domain.base.vo.PageListVO;
5 import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO; 6 import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
...@@ -77,4 +78,6 @@ public interface EnterpriseService { ...@@ -77,4 +78,6 @@ public interface EnterpriseService {
77 78
78 /** 将此账号提交的数据需求迁移到新的企业 */ 79 /** 将此账号提交的数据需求迁移到新的企业 */
79 void moveOldData(TenantRQVO vo); 80 void moveOldData(TenantRQVO vo);
81
82 Boolean lastApprove(FlowUpdateStateDTO dto);
80 } 83 }
......
1 package com.csbr.qingcloud.portal.service.impl; 1 package com.csbr.qingcloud.portal.service.impl;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.alibaba.fastjson.JSONObject;
4 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 5 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
6 import com.csbr.cloud.common.enums.SystemError; 7 import com.csbr.cloud.common.enums.SystemError;
7 import com.csbr.cloud.common.enums.UserError; 8 import com.csbr.cloud.common.enums.UserError;
8 import com.csbr.cloud.common.enums.WorkFlowBizEnum; 9 import com.csbr.cloud.common.enums.WorkFlowBizEnum;
9 import com.csbr.cloud.common.exception.CsbrUserException; 10 import com.csbr.cloud.common.exception.CsbrUserException;
11 import com.csbr.cloud.mq.service.KafkaStdService;
12 import com.csbr.cloud.workflow.domain.dto.appove.FlowUpdateStateDTO;
13 import com.csbr.cloud.workflow.feign.WorkflowFeign;
10 import com.csbr.qingcloud.portal.domain.vo.*; 14 import com.csbr.qingcloud.portal.domain.vo.*;
11 import com.csbr.qingcloud.portal.feign.PersonelFeign; 15 import com.csbr.qingcloud.portal.feign.PersonelFeign;
12 import com.csbr.qingcloud.portal.feign.UserFeign; 16 import com.csbr.qingcloud.portal.feign.UserFeign;
...@@ -16,6 +20,7 @@ import com.csbr.qingcloud.portal.mybatis.service.MfDemandService; ...@@ -16,6 +20,7 @@ import com.csbr.qingcloud.portal.mybatis.service.MfDemandService;
16 import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseChangeApproveService; 20 import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseChangeApproveService;
17 import com.csbr.qingcloud.portal.service.EnterpriseChangeApproveService; 21 import com.csbr.qingcloud.portal.service.EnterpriseChangeApproveService;
18 import com.csbr.qingcloud.portal.util.ObjectUtil; 22 import com.csbr.qingcloud.portal.util.ObjectUtil;
23 import csbr.cloud.entity.domain.base.dao.BaseShardingDO;
19 import csbr.cloud.entity.enums.ApprovalStateEnum; 24 import csbr.cloud.entity.enums.ApprovalStateEnum;
20 import com.csbr.cloud.common.exception.CsbrSystemException; 25 import com.csbr.cloud.common.exception.CsbrSystemException;
21 import com.csbr.cloud.common.util.CommonUtil; 26 import com.csbr.cloud.common.util.CommonUtil;
...@@ -30,11 +35,16 @@ import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO; ...@@ -30,11 +35,16 @@ import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
30 import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise; 35 import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
31 import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseService; 36 import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseService;
32 import com.csbr.qingcloud.portal.service.EnterpriseService; 37 import com.csbr.qingcloud.portal.service.EnterpriseService;
38 import csbr.cloud.entity.utils.UserContextHolder;
33 import io.seata.common.util.DateUtil; 39 import io.seata.common.util.DateUtil;
34 import jakarta.annotation.Resource; 40 import jakarta.annotation.Resource;
35 import lombok.extern.slf4j.Slf4j; 41 import lombok.extern.slf4j.Slf4j;
36 import org.apache.commons.collections.CollectionUtils; 42 import org.apache.commons.collections.CollectionUtils;
37 import org.apache.commons.lang3.StringUtils; 43 import org.apache.commons.lang3.StringUtils;
44 import org.apache.kafka.clients.consumer.ConsumerRecord;
45 import org.springframework.beans.factory.annotation.Autowired;
46 import org.springframework.kafka.annotation.KafkaListener;
47 import org.springframework.kafka.support.Acknowledgment;
38 import org.springframework.stereotype.Service; 48 import org.springframework.stereotype.Service;
39 import io.seata.spring.annotation.GlobalTransactional; 49 import io.seata.spring.annotation.GlobalTransactional;
40 import org.springframework.transaction.annotation.Transactional; 50 import org.springframework.transaction.annotation.Transactional;
...@@ -82,6 +92,12 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris ...@@ -82,6 +92,12 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
82 @Resource 92 @Resource
83 private UserFeign userFeign; 93 private UserFeign userFeign;
84 94
95 @Resource
96 private WorkflowFeign workflowFeign;
97
98 @Autowired(required = false)
99 private KafkaStdService kafkaStdService;
100
85 /** 101 /**
86 * 企业信息分页查询 102 * 企业信息分页查询
87 * @author xcq 103 * @author xcq
...@@ -387,6 +403,33 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris ...@@ -387,6 +403,33 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
387 approvalFlowUtil.removeApproveByBizGuids(guids); 403 approvalFlowUtil.removeApproveByBizGuids(guids);
388 } 404 }
389 405
406 /** ***企业认证*** */
407 @GlobalTransactional
408 @Override
409 public Boolean lastApprove(FlowUpdateStateDTO dto) {
410 //如果是非认证会员认证审批通过了 则需要走kafka生成新会员
411 dto.setBackEndInvoke(true);
412 String topic = "tenant.enterprise";
413 kafkaStdService.stdSendMsgWithPrefix(topic, JSON.toJSONString(dto));
414 return true;
415 }
416
417 @KafkaListener(containerFactory = "kafkaListenerContainerFactory", groupId = "scm.notify", topics = "${csbr.kafka.topic-prefix:}_"+"approve.tenant.enterprise",
418 errorHandler = "consumerAwareErrorHandler")
419 public void addUserListener(List<ConsumerRecord<String, String>> records, Acknowledgment ack) {
420 ack.acknowledge();
421 for (ConsumerRecord<String, String> record : records) {
422 try {
423 FlowUpdateStateDTO dto = JSON.parseObject(record.value(),FlowUpdateStateDTO.class);
424 workflowFeign.allowFlowCore(dto).getData();
425 } catch (Exception e) {
426 log.error("企业认证出现异常: " + e.getMessage() + ";\nRecord Info: " + record.toString());
427 e.printStackTrace();
428 return;
429 }
430 }
431 }
432
390 /** 433 /**
391 * 流程结束后进行业务回调 434 * 流程结束后进行业务回调
392 * @author xcq 435 * @author xcq
...@@ -422,7 +465,7 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris ...@@ -422,7 +465,7 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
422 465
423 /** 将此账号提交的数据需求迁移到新的企业 */ 466 /** 将此账号提交的数据需求迁移到新的企业 */
424 @Override 467 @Override
425 @Transactional 468 @Transactional(rollbackFor = Exception.class)
426 public void moveOldData(TenantRQVO vo){ 469 public void moveOldData(TenantRQVO vo){
427 LambdaQueryWrapper<MfDemand> queryWrapper = new LambdaQueryWrapper<>(); 470 LambdaQueryWrapper<MfDemand> queryWrapper = new LambdaQueryWrapper<>();
428 queryWrapper.eq(MfDemand::getRequirementUnit, vo.getTenantName()); 471 queryWrapper.eq(MfDemand::getRequirementUnit, vo.getTenantName());
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!