fase()修改或增加用mq通知初始化
parent
f0e416ccf1
commit
29e6463f58
|
@ -5,7 +5,9 @@ import com.muyu.common.core.exception.ServiceException;
|
||||||
import com.muyu.edition.constant.RuleOperationConstants;
|
import com.muyu.edition.constant.RuleOperationConstants;
|
||||||
import com.muyu.edition.domain.Config;
|
import com.muyu.edition.domain.Config;
|
||||||
import com.muyu.edition.domain.Edition;
|
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.EditionDataRemoteService;
|
||||||
|
import com.muyu.goods.edition.remote.RemoteDataManagerService;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import muyu.data.test.clinet.config.runner.DataEditionConfigRunner;
|
import muyu.data.test.clinet.config.runner.DataEditionConfigRunner;
|
||||||
import muyu.data.test.common.context.DataModelContextHolder;
|
import muyu.data.test.common.context.DataModelContextHolder;
|
||||||
|
@ -92,4 +94,11 @@ public class DataEditionConfig {
|
||||||
}
|
}
|
||||||
return "正常,无需返回";
|
return "正常,无需返回";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void editionInitialize() {
|
||||||
|
//获取规则
|
||||||
|
Result<List<Edition>> tableDataInfoResult = editionDataRemoteService.lists();
|
||||||
|
List<Edition> editions = tableDataInfoResult.getData();
|
||||||
|
EditionSoutceConfig.indexByte(editions);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,15 +7,15 @@ import com.muyu.goods.edition.remote.EditionDataRemoteService;
|
||||||
import com.muyu.goods.edition.remote.RemoteDataManagerService;
|
import com.muyu.goods.edition.remote.RemoteDataManagerService;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import muyu.data.test.common.dataSoutce.EditionSoutceConfig;
|
import muyu.data.test.common.dataSoutce.EditionSoutceConfig;
|
||||||
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.ApplicationArguments;
|
import org.springframework.boot.ApplicationArguments;
|
||||||
import org.springframework.boot.ApplicationRunner;
|
import org.springframework.boot.ApplicationRunner;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.ApplicationContextAware;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -24,12 +24,21 @@ import java.util.stream.Collectors;
|
||||||
@Log4j2
|
@Log4j2
|
||||||
@Component
|
@Component
|
||||||
@Configuration
|
@Configuration
|
||||||
public class DataEditionConfigRunner implements ApplicationRunner {
|
public class DataEditionConfigRunner implements ApplicationRunner , ApplicationContextAware {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RemoteDataManagerService remoteDataManagerService;
|
private RemoteDataManagerService remoteDataManagerService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private EditionDataRemoteService editionDataRemoteService;
|
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
|
@Override
|
||||||
public void run(ApplicationArguments args) throws Exception {
|
public void run(ApplicationArguments args) throws Exception {
|
||||||
//获取引擎
|
//获取引擎
|
||||||
|
@ -40,6 +49,7 @@ public class DataEditionConfigRunner implements ApplicationRunner {
|
||||||
Result<List<Edition>> tableDataInfoResult = editionDataRemoteService.lists();
|
Result<List<Edition>> tableDataInfoResult = editionDataRemoteService.lists();
|
||||||
// log.info("获取规则:{}",tableDataInfoResult);
|
// log.info("获取规则:{}",tableDataInfoResult);
|
||||||
List<Edition> editionList = tableDataInfoResult.getData();
|
List<Edition> editionList = tableDataInfoResult.getData();
|
||||||
|
// log.info("获取规则:{}",editionList);
|
||||||
//处理获取的引擎和规则
|
//处理获取的引擎和规则
|
||||||
for (RuleEngine listResultDatum : listResultData) {
|
for (RuleEngine listResultDatum : listResultData) {
|
||||||
List<Edition> editions = editionList.stream().filter(e -> e.getRuleId().equals(listResultDatum.getRuleId())).collect(Collectors.toList());
|
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);
|
log.info(s);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,5 +41,11 @@
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- rabbitMQ 依赖 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-amqp</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -46,4 +46,9 @@ public class TestController extends BaseController {
|
||||||
public Result setColumn(@RequestBody TestDataModelReq testDataModelReq){
|
public Result setColumn(@RequestBody TestDataModelReq testDataModelReq){
|
||||||
return success(service.setColumn(testDataModelReq));
|
return success(service.setColumn(testDataModelReq));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("editionInitialize")
|
||||||
|
public void editionInitialize(){
|
||||||
|
service.editionInitialize();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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("等待");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package com.data.test.server;
|
package com.data.test.server;
|
||||||
|
|
||||||
|
import com.muyu.common.core.domain.Result;
|
||||||
import muyu.data.test.common.model.DataModel;
|
import muyu.data.test.common.model.DataModel;
|
||||||
import muyu.data.test.common.req.TestDataModelReq;
|
import muyu.data.test.common.req.TestDataModelReq;
|
||||||
|
|
||||||
|
@ -12,4 +13,6 @@ public interface TestService {
|
||||||
List<List<DataModel>> getColumn(Long id, String tableName, Integer ruleLevel);
|
List<List<DataModel>> getColumn(Long id, String tableName, Integer ruleLevel);
|
||||||
|
|
||||||
Object setColumn(TestDataModelReq testDataModelReq);
|
Object setColumn(TestDataModelReq testDataModelReq);
|
||||||
|
|
||||||
|
void editionInitialize();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.data.test.server.impl;
|
package com.data.test.server.impl;
|
||||||
|
|
||||||
import com.data.test.server.TestService;
|
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.AccessConfig;
|
||||||
import muyu.data.test.clinet.config.DataEditionConfig;
|
import muyu.data.test.clinet.config.DataEditionConfig;
|
||||||
import muyu.data.test.common.model.DataModel;
|
import muyu.data.test.common.model.DataModel;
|
||||||
|
@ -31,4 +32,9 @@ public class TestServiceImpl implements TestService {
|
||||||
public Object setColumn(TestDataModelReq testDataModelReq) {
|
public Object setColumn(TestDataModelReq testDataModelReq) {
|
||||||
return dataEditionConfig.setColumn(testDataModelReq);
|
return dataEditionConfig.setColumn(testDataModelReq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void editionInitialize() {
|
||||||
|
dataEditionConfig.editionInitialize();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,11 @@ server:
|
||||||
|
|
||||||
# Spring
|
# Spring
|
||||||
spring:
|
spring:
|
||||||
|
rabbitmq:
|
||||||
|
host: 129.211.23.219
|
||||||
|
port: 5672
|
||||||
|
username: guest
|
||||||
|
password: guest
|
||||||
application:
|
application:
|
||||||
# 应用名称
|
# 应用名称
|
||||||
name: muyu-test
|
name: muyu-test
|
||||||
|
|
|
@ -28,5 +28,6 @@
|
||||||
<version>3.6.3</version>
|
<version>3.6.3</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -96,6 +96,23 @@
|
||||||
<version>9.4.0.jre8</version>
|
<version>9.4.0.jre8</version>
|
||||||
</dependency>
|
</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>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.muyu.common.log.enums.BusinessType;
|
||||||
import com.muyu.common.security.annotation.RequiresPermissions;
|
import com.muyu.common.security.annotation.RequiresPermissions;
|
||||||
import com.muyu.edition.domain.Edition;
|
import com.muyu.edition.domain.Edition;
|
||||||
import com.muyu.edition.service.IEditionService;
|
import com.muyu.edition.service.IEditionService;
|
||||||
|
import io.swagger.models.auth.In;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@ -61,6 +62,11 @@ public class EditionController extends BaseController {
|
||||||
util.exportExcel(response, list, "规则引擎版本数据");
|
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));
|
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));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,4 +62,9 @@ public interface EditionMapper extends BaseMapper<Edition> {
|
||||||
|
|
||||||
List<Edition> lists();
|
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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -69,4 +69,15 @@ public interface IEditionService extends IService<Edition> {
|
||||||
*/
|
*/
|
||||||
public int deleteEditionById(Long id);
|
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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,11 @@ package com.muyu.edition.service.impl;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.muyu.edition.domain.Edition;
|
import com.muyu.edition.domain.Edition;
|
||||||
import com.muyu.edition.mapper.EditionMapper;
|
import com.muyu.edition.mapper.EditionMapper;
|
||||||
|
import com.muyu.edition.mq.Producer;
|
||||||
import com.muyu.edition.service.IEditionService;
|
import com.muyu.edition.service.IEditionService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -24,6 +26,8 @@ import static java.util.concurrent.Executors.newFixedThreadPool;
|
||||||
public class EditionServiceImpl extends ServiceImpl<EditionMapper, Edition> implements IEditionService {
|
public class EditionServiceImpl extends ServiceImpl<EditionMapper, Edition> implements IEditionService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private EditionMapper editionMapper;
|
private EditionMapper editionMapper;
|
||||||
|
@Autowired
|
||||||
|
private Producer producer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询规则引擎版本
|
* 查询规则引擎版本
|
||||||
|
@ -70,7 +74,12 @@ public class EditionServiceImpl extends ServiceImpl<EditionMapper, Edition> impl
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int insertEdition(Edition edition) {
|
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
|
@Override
|
||||||
public int updateEdition(Edition edition) {
|
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) {
|
public int deleteEditionById(Long id) {
|
||||||
return editionMapper.deleteEditionById(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 "激活失败";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,11 @@ server:
|
||||||
|
|
||||||
# Spring
|
# Spring
|
||||||
spring:
|
spring:
|
||||||
|
rabbitmq:
|
||||||
|
host: 129.211.23.219
|
||||||
|
port: 5672
|
||||||
|
username: guest
|
||||||
|
password: guest
|
||||||
application:
|
application:
|
||||||
# 应用名称
|
# 应用名称
|
||||||
name: muyu-rule
|
name: muyu-rule
|
||||||
|
|
|
@ -73,6 +73,21 @@
|
||||||
</trim>
|
</trim>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</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 id="deleteEditionById" parameterType="Long">
|
||||||
delete
|
delete
|
||||||
|
|
Loading…
Reference in New Issue