fase()修改或增加用mq通知初始化

dev-2
王熙朝 2024-05-17 20:00:04 +08:00
parent f0e416ccf1
commit 29e6463f58
17 changed files with 235 additions and 6 deletions

View File

@ -5,7 +5,9 @@ import com.muyu.common.core.exception.ServiceException;
import com.muyu.edition.constant.RuleOperationConstants;
import com.muyu.edition.domain.Config;
import com.muyu.edition.domain.Edition;
import com.muyu.edition.domain.RuleEngine;
import com.muyu.goods.edition.remote.EditionDataRemoteService;
import com.muyu.goods.edition.remote.RemoteDataManagerService;
import lombok.extern.log4j.Log4j2;
import muyu.data.test.clinet.config.runner.DataEditionConfigRunner;
import muyu.data.test.common.context.DataModelContextHolder;
@ -92,4 +94,11 @@ public class DataEditionConfig {
}
return "正常,无需返回";
}
public void editionInitialize() {
//获取规则
Result<List<Edition>> tableDataInfoResult = editionDataRemoteService.lists();
List<Edition> editions = tableDataInfoResult.getData();
EditionSoutceConfig.indexByte(editions);
}
}

View File

@ -7,15 +7,15 @@ import com.muyu.goods.edition.remote.EditionDataRemoteService;
import com.muyu.goods.edition.remote.RemoteDataManagerService;
import lombok.extern.log4j.Log4j2;
import muyu.data.test.common.dataSoutce.EditionSoutceConfig;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -24,12 +24,21 @@ import java.util.stream.Collectors;
@Log4j2
@Component
@Configuration
public class DataEditionConfigRunner implements ApplicationRunner {
public class DataEditionConfigRunner implements ApplicationRunner , ApplicationContextAware {
@Autowired
private RemoteDataManagerService remoteDataManagerService;
@Autowired
private EditionDataRemoteService editionDataRemoteService;
/**
*
* @param applicationContext the ApplicationContext object to be used by this object
* @throws BeansException
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
System.out.println("1");
}
@Override
public void run(ApplicationArguments args) throws Exception {
//获取引擎
@ -40,6 +49,7 @@ public class DataEditionConfigRunner implements ApplicationRunner {
Result<List<Edition>> tableDataInfoResult = editionDataRemoteService.lists();
// log.info("获取规则:{}",tableDataInfoResult);
List<Edition> editionList = tableDataInfoResult.getData();
// log.info("获取规则:{}",editionList);
//处理获取的引擎和规则
for (RuleEngine listResultDatum : listResultData) {
List<Edition> editions = editionList.stream().filter(e -> e.getRuleId().equals(listResultDatum.getRuleId())).collect(Collectors.toList());
@ -63,4 +73,6 @@ public class DataEditionConfigRunner implements ApplicationRunner {
log.info(s);
}
}

View File

@ -41,5 +41,11 @@
<scope>compile</scope>
</dependency>
<!-- rabbitMQ 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -46,4 +46,9 @@ public class TestController extends BaseController {
public Result setColumn(@RequestBody TestDataModelReq testDataModelReq){
return success(service.setColumn(testDataModelReq));
}
@PostMapping("editionInitialize")
public void editionInitialize(){
service.editionInitialize();
}
}

View File

@ -0,0 +1,29 @@
package com.data.test.mq;
import com.data.test.common.TestController;
import lombok.extern.log4j.Log4j2;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@Log4j2
public class Consumer {
@Autowired
private TestController testController;
//队列名称
public static final String QueueName = "edition";
/**
*
*/
@RabbitListener(queuesToDeclare = {@Queue("edition")})
public void testEdition(Integer id){
if (id>0){
testController.editionInitialize();
log.info("初始化");
}else{
log.info("等待");
}
}
}

View File

@ -1,5 +1,6 @@
package com.data.test.server;
import com.muyu.common.core.domain.Result;
import muyu.data.test.common.model.DataModel;
import muyu.data.test.common.req.TestDataModelReq;
@ -12,4 +13,6 @@ public interface TestService {
List<List<DataModel>> getColumn(Long id, String tableName, Integer ruleLevel);
Object setColumn(TestDataModelReq testDataModelReq);
void editionInitialize();
}

View File

@ -1,6 +1,7 @@
package com.data.test.server.impl;
import com.data.test.server.TestService;
import com.muyu.common.core.domain.Result;
import muyu.data.test.clinet.config.AccessConfig;
import muyu.data.test.clinet.config.DataEditionConfig;
import muyu.data.test.common.model.DataModel;
@ -31,4 +32,9 @@ public class TestServiceImpl implements TestService {
public Object setColumn(TestDataModelReq testDataModelReq) {
return dataEditionConfig.setColumn(testDataModelReq);
}
@Override
public void editionInitialize() {
dataEditionConfig.editionInitialize();
}
}

View File

@ -4,6 +4,11 @@ server:
# Spring
spring:
rabbitmq:
host: 129.211.23.219
port: 5672
username: guest
password: guest
application:
# 应用名称
name: muyu-test

View File

@ -28,5 +28,6 @@
<version>3.6.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -96,6 +96,23 @@
<version>9.4.0.jre8</version>
</dependency>
<!-- rabbitMq 依赖客户端-->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
</dependency>
<!-- 操作文件流的一个依赖 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- rabbitMQ 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
</dependencies>
<build>

View File

@ -9,6 +9,7 @@ import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.edition.domain.Edition;
import com.muyu.edition.service.IEditionService;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -61,6 +62,11 @@ public class EditionController extends BaseController {
util.exportExcel(response, list, "规则引擎版本数据");
}
@PostMapping("lists")
public Result<List<Edition>> lists(){
return success(editionService.lists());
}
/**
*
*/
@ -100,4 +106,35 @@ public class EditionController extends BaseController {
return toAjax(editionService.deleteEditionByIds(ids));
}
/**
*
* @param id
* @param ruleIsTest
* @return
*/
@PostMapping("updRuleSsTest")
public void updRuleStatus(Integer id, Integer ruleIsTest){
editionService.updRuleSsTest(id,ruleIsTest);
}
/**
*
* @param id
* @return
*/
@PostMapping("updRuleStatus")
public Result updRuleStatus(Long id, String ruleStatus){
return success(editionService.updRuleStatus(id, ruleStatus));
}
/**
*
* @param id
* @return
*/
@PutMapping("updEditionStatus")
public Result updEditionStatus(Long id){
return success(editionService.updEditionStatus(id));
}
}

View File

@ -62,4 +62,9 @@ public interface EditionMapper extends BaseMapper<Edition> {
List<Edition> lists();
void updRuleSsTest(@Param("id") Integer id, @Param("ruleIsTest") Integer ruleIsTest);
Integer updRuleStatus(@Param("id") Long id, @Param("ruleStatus") String ruleStatus);
Integer updEditionStatus(@Param("id") Long id);
}

View File

@ -0,0 +1,23 @@
package com.muyu.edition.mq;
import lombok.extern.log4j.Log4j2;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Log4j2
public class Producer {
@Autowired
private RabbitTemplate template;
//队列名称
public static final String QueueName = "edition";
//生产一个队列
public void editionMq(Integer id) {
// routingKey: 队列名称
// object : 消息的内容
log.info("变化的成功与否:{}",id);
template.convertAndSend("edition",id);
}
}

View File

@ -69,4 +69,15 @@ public interface IEditionService extends IService<Edition> {
*/
public int deleteEditionById(Long id);
/**
*
* @param id
* @param ruleIsTest
* @return
*/
void updRuleSsTest(Integer id, Integer ruleIsTest);
String updRuleStatus(Long id, String ruleStatus);
String updEditionStatus(Long id);
}

View File

@ -3,9 +3,11 @@ package com.muyu.edition.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.edition.domain.Edition;
import com.muyu.edition.mapper.EditionMapper;
import com.muyu.edition.mq.Producer;
import com.muyu.edition.service.IEditionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
import org.springframework.stereotype.Service;
import java.util.List;
@ -24,6 +26,8 @@ import static java.util.concurrent.Executors.newFixedThreadPool;
public class EditionServiceImpl extends ServiceImpl<EditionMapper, Edition> implements IEditionService {
@Autowired
private EditionMapper editionMapper;
@Autowired
private Producer producer;
/**
*
@ -70,7 +74,12 @@ public class EditionServiceImpl extends ServiceImpl<EditionMapper, Edition> impl
*/
@Override
public int insertEdition(Edition edition) {
return editionMapper.insertEdition(edition);
int id = editionMapper.insertEdition(edition);
if (id > 0){
System.out.println("添加");
producer.editionMq(id);
}
return id;
}
/**
@ -81,7 +90,13 @@ public class EditionServiceImpl extends ServiceImpl<EditionMapper, Edition> impl
*/
@Override
public int updateEdition(Edition edition) {
return editionMapper.updateEdition(edition);
int id = editionMapper.updateEdition(edition);
if (id>0){
//将修改的数据传输到mq
System.out.println("修改");
producer.editionMq(id);
}
return id;
}
/**
@ -105,4 +120,29 @@ public class EditionServiceImpl extends ServiceImpl<EditionMapper, Edition> impl
public int deleteEditionById(Long id) {
return editionMapper.deleteEditionById(id);
}
@Override
public void updRuleSsTest(Integer id, Integer ruleIsTest) {
editionMapper.updRuleSsTest(id,ruleIsTest);
}
@Override
public String updRuleStatus(Long id, String ruleStatus) {
Integer i = editionMapper.updRuleStatus(id, ruleStatus);
if (i>0){
return "完成处理";
}else{
return "处理失败";
}
}
@Override
public String updEditionStatus(Long id) {
Integer i = editionMapper.updEditionStatus(id);
if (i>0){
return "成功激活";
}else{
return "激活失败";
}
}
}

View File

@ -4,6 +4,11 @@ server:
# Spring
spring:
rabbitmq:
host: 129.211.23.219
port: 5672
username: guest
password: guest
application:
# 应用名称
name: muyu-rule

View File

@ -73,6 +73,21 @@
</trim>
where id = #{id}
</update>
<update id="updRuleSsTest">
update edition
set rule_is_test = #{ruleIsTest}
where id = #{id};
</update>
<update id="updRuleStatus">
update edition
set rule_status = #{ruleStatus}
where id = #{id};
</update>
<update id="updEditionStatus">
update edition
set edition_status = 1
where id = #{id};
</update>
<delete id="deleteEditionById" parameterType="Long">
delete