From 2c578625c37a62c401340a5921e38c6c473dad29 Mon Sep 17 00:00:00 2001 From: zhangran Date: Thu, 21 Mar 2024 15:16:36 +0800 Subject: [PATCH 01/12] =?UTF-8?q?add-=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E6=8E=A8=E9=80=81=E5=88=B0mq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- black-list/black-list-api/pom.xml | 8 +++ .../api/constant/enums/BlackModuleEnum.java | 69 +++++++++++++++++++ .../api/constant/enums/MQEventEnum.java | 40 +++++++++++ black-list/black-list-service/pom.xml | 5 ++ .../dao/mapper/BlackAndWhiteListMapper.java | 15 ++++ .../BlackAndWhiteListRepository.java | 19 ++++- .../nanopart/server/job/BaseJobHandler.java | 22 ++++++ .../nanopart/server/job/BlackUserSyncJob.java | 50 ++++++++++++++ .../server/mq/RocketMQEventConfiguration.java | 50 ++++++++++++++ .../server/mq/producer/BlackProducer.java | 59 ++++++++++++++++ .../service/BlackAndWhiteListService.java | 3 + .../impl/BlackAndWhiteListServiceImpl.java | 12 +++- job/job-api/pom.xml | 4 ++ .../mapper/BlackAndWhiteListMapper.xml | 18 +++++ 14 files changed, 371 insertions(+), 3 deletions(-) create mode 100644 black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/enums/BlackModuleEnum.java create mode 100644 black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/enums/MQEventEnum.java create mode 100644 black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BaseJobHandler.java create mode 100644 black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java create mode 100644 black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java create mode 100644 black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java create mode 100644 nanopart-server/src/main/resources/mapper/BlackAndWhiteListMapper.xml diff --git a/black-list/black-list-api/pom.xml b/black-list/black-list-api/pom.xml index ffd67112..c49e653b 100644 --- a/black-list/black-list-api/pom.xml +++ b/black-list/black-list-api/pom.xml @@ -22,9 +22,17 @@ cn.axzo.framework axzo-common-domain + + cn.axzo.framework.rocketmq + axzo-common-rocketmq + jakarta.servlet jakarta.servlet-api + + org.springframework.cloud + spring-cloud-context + diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/enums/BlackModuleEnum.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/enums/BlackModuleEnum.java new file mode 100644 index 00000000..30f03477 --- /dev/null +++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/enums/BlackModuleEnum.java @@ -0,0 +1,69 @@ +package cn.axzo.nanopart.api.constant.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author zr + * @Date 2024/3/20 10:00 + * @Description + **/ +@Getter +public enum BlackModuleEnum { + + + /** + * 登录白名单 + */ + ALL_LOGIN("all-login","登录白名单"), + /** + * 企业注册黑名单 + */ + OU_REGISTER_BLACK_LIST("ou_register_black_list","企业注册黑名单"), + /** + * 白名单 + */ + ATTENDANCE_PASS("attendance-pass","白名单"), + /** + * 产业工人黑名单 + */ + GXJG_BLACKUSER_WORKER("gxjg-blackuser-worker","产业工人黑名单"), + /** + * 班组管理人员黑名单 + */ + GXJG_BLACKUSER_TEAMLEADER("gxjg-blackuser-teamleader","班组管理人员黑名单"), + /** + * 项目管理人员黑名单 + */ + GXJG_BLACKUSER_EMPLOYEE("gxjg-blackuser-employee","项目管理人员黑名单"), + /** + * 企业黑名单 + */ + GXJG_BLACKCOMPANY("gxjg-blackcompany","企业黑名单"), + + ; + + private final String value; + private final String description; + + BlackModuleEnum(String value, String description) { + this.value = value; + this.description = description; + } + + public static BlackModuleEnum getByValue(String value){ + return Arrays.stream(values()).filter(l -> l.getValue().equals(value)).findFirst().orElse(null); + } + + public static List getValueList(List enums){ + if(enums == null){ + return Collections.emptyList(); + } + return enums.stream().map(BlackModuleEnum::getValue).collect(Collectors.toList()); + } + +} diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/enums/MQEventEnum.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/enums/MQEventEnum.java new file mode 100644 index 00000000..347d15b9 --- /dev/null +++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/enums/MQEventEnum.java @@ -0,0 +1,40 @@ +package cn.axzo.nanopart.api.constant.enums; + +import cn.axzo.framework.rocketmq.Event; +import lombok.Getter; + +import java.util.Arrays; + +/** + * @Author zr + * @Date 2024/3/19 18:01 + * @Description + **/ +@Getter +public enum MQEventEnum { + + GXJG_BLACKUSER_WORKER("plat-blacklist", "plat-blackuser-worker-list", "产业工人黑名单"), + GXJG_BLACKUSER_TEAMLEADER("plat-blacklist", "plat-blackuser-teamleader-list", "班组管理人员黑名单"), + GXJG_BLACKUSER_EMPLOYEE("plat-blacklist", "plat-blackuser-employee-list", "项目管理人员黑名单"), + + + ; + private final String model; + private final String tag; + private final String desc; + private final Event.EventCode eventCode; + + MQEventEnum(String model, String tag, String desc) { + this.eventCode = Event.EventCode.builder() + .module(model) + .name(tag) + .build(); + this.model = model; + this.tag = tag; + this.desc = desc; + } + + public static MQEventEnum getByName(String name){ + return Arrays.stream(MQEventEnum.values()).filter(item -> item.name().equals(name)).findFirst().orElse(null); + } +} diff --git a/black-list/black-list-service/pom.xml b/black-list/black-list-service/pom.xml index 61d27631..7c00fa03 100644 --- a/black-list/black-list-service/pom.xml +++ b/black-list/black-list-service/pom.xml @@ -41,5 +41,10 @@ cn.axzo.pokonyan pokonyan + + com.xuxueli + xxl-job-core + 2.2.0 + diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java index e1196f79..73a06d46 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java @@ -3,6 +3,9 @@ package cn.axzo.nanopart.server.dao.mapper; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author: chenwenjian @@ -13,4 +16,16 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface BlackAndWhiteListMapper extends BaseMapper { + + /** + * 获取getField中字段的值 + * + * @param type + * @param getField 获取json中指定字段 + * @param modules + * @return + */ + List getParamValue(@Param("type") Integer type, + @Param("getField") String getField, + @Param("modules") List modules); } diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java index 253e291e..d2b7fa8d 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java @@ -6,16 +6,15 @@ import cn.axzo.nanopart.api.request.BlackAndWhiteListReq; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.dao.mapper.BlackAndWhiteListMapper; import cn.azxo.framework.common.utils.StringUtils; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.json.JSONObject; import org.springframework.stereotype.Repository; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; @@ -127,4 +126,20 @@ public class BlackAndWhiteListRepository extends ServiceImpl listByModule(Integer type, List modules) { + return lambdaQuery() + .eq(SaasBlackWhiteList::getType, type) + .in(CollUtil.isNotEmpty(modules),SaasBlackWhiteList::getModule, modules) + .eq(SaasBlackWhiteList::getIsDelete, 0) + .list(); + } } \ No newline at end of file diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BaseJobHandler.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BaseJobHandler.java new file mode 100644 index 00000000..2b5ed1d7 --- /dev/null +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BaseJobHandler.java @@ -0,0 +1,22 @@ +package cn.axzo.nanopart.server.job; + +import cn.azxo.framework.common.logger.JobLoggerTemplate; +import com.xxl.job.core.biz.model.ReturnT; + +import javax.annotation.Resource; + +/** + * @Author zr + * @Date 2024/3/20 16:28 + * @Description + **/ +public abstract class BaseJobHandler { + + @Resource(name = "jobLoggerTemplate") + protected JobLoggerTemplate jobLoggerTemplate; + + /** + * 定时任务执行逻辑 + */ + public abstract ReturnT execute(String param) throws Exception; +} diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java new file mode 100644 index 00000000..15199e53 --- /dev/null +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java @@ -0,0 +1,50 @@ +package cn.axzo.nanopart.server.job; + +import cn.axzo.nanopart.api.constant.enums.BlackModuleEnum; +import cn.axzo.nanopart.api.constant.enums.MQEventEnum; +import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; +import cn.axzo.nanopart.server.mq.producer.BlackProducer; +import cn.axzo.nanopart.server.service.BlackAndWhiteListService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Author zr + * @Date 2024/3/20 16:26 + * @Description 定时任务 + **/ +@Slf4j +@Component +public class BlackUserSyncJob extends BaseJobHandler{ + + @Resource + private BlackAndWhiteListService blackAndWhiteListService; + /** + * 定时任务执行逻辑 + * + * @param param + */ + @Override + @XxlJob("blackUserSyncJob") + public ReturnT execute(String param) throws Exception { + List saasBlackWhiteLists = blackAndWhiteListService.listModuleBlackUser(); + Map> modulBlackMap = saasBlackWhiteLists.stream().collect(Collectors.groupingBy(SaasBlackWhiteList::getModule)); + modulBlackMap.forEach((module, blackList) -> { + log.info("syncRockerMQ module:{} ,blackList.size:{}" ,module, blackList.size()); + BlackModuleEnum blackModuleEnum = BlackModuleEnum.getByValue(module); + MQEventEnum event = MQEventEnum.getByName(blackModuleEnum.name()); + if(Objects.nonNull(blackModuleEnum) && Objects.nonNull(event)){ + BlackProducer.sendBatch(event, blackList); + } + }); + return ReturnT.SUCCESS; + } +} diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java new file mode 100644 index 00000000..8fc658ba --- /dev/null +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java @@ -0,0 +1,50 @@ +package cn.axzo.nanopart.server.mq; + +import cn.axzo.framework.rocketmq.EventProducer; +import cn.axzo.framework.rocketmq.RocketMQEventProducer; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +/** + * @Author zr + * @Date 2024/3/21 14:12 + * @Description + **/ +@Slf4j +@Component +public class RocketMQEventConfiguration { + + @Value("${spring.profiles.active}") + private String profileActivity; + private final String serviceName = "nanopart"; + private final String topic = "nanopart"; + + @Bean + public RocketMQTemplate ser(){ + return new RocketMQTemplate(); + } + @Bean + EventProducer eventProducer(RocketMQTemplate rocketMQTemplate) { + return new RocketMQEventProducer(rocketMQTemplate, + serviceName, + serviceName, + EventProducer.Context.builder() + .meta(RocketMQEventProducer.RocketMQMessageMeta.builder() + .topic(getTopic(topic)) + .build()) + .build(), + null + ); + } + + private String getTopic(String topic) { + if (!StringUtils.isEmpty(topic)) { + topic = topic + "_" + profileActivity; + } + return topic; + } +} diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java new file mode 100644 index 00000000..b5aef2ce --- /dev/null +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java @@ -0,0 +1,59 @@ +package cn.axzo.nanopart.server.mq.producer; + +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; +import cn.axzo.framework.domain.ServiceException; +import cn.axzo.framework.rocketmq.Event; +import cn.axzo.framework.rocketmq.EventProducer; +import cn.axzo.nanopart.api.constant.enums.MQEventEnum; +import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service +public class BlackProducer implements InitializingBean { + private static EventProducer eventProducer; + + public static void send(MQEventEnum mqEventEnum, BaseEntity baseEntity, String operatorId){ + log.info(JSON.toJSONString(baseEntity)); + if(mqEventEnum == null){ + throw new ServiceException("无法正确发送mq: mqEventEnum不能为空"); + } + if(baseEntity == null){ + log.error("消息实体为空不能发送mq mqEventEnum {}", mqEventEnum); + return; + } + if(baseEntity.getId() == null){ + throw new ServiceException("无法正确发送mq: 主健id不能为空"); + } + //生产消息 + eventProducer.send(Event.builder() + .shardingKey(String.valueOf(baseEntity.getId())) + .targetId(String.valueOf(baseEntity.getId())) + .targetType(mqEventEnum.getModel()) + .eventCode(new Event.EventCode(mqEventEnum.getModel(), mqEventEnum.getTag())) + .eventModule(mqEventEnum.getModel()) + .eventName(mqEventEnum.getTag()) + .operatorId(operatorId) + .data(baseEntity) + .build()); + } + + public static void send(MQEventEnum mqEventEnum, BaseEntity baseEntity){ + send(mqEventEnum, baseEntity, null); + } + + public static void sendBatch(MQEventEnum mqEventEnum, List> baseEntities){ + baseEntities.forEach(baseEntity -> send(mqEventEnum, baseEntity, null)); + } + + @Override + public void afterPropertiesSet() { + eventProducer = SpringUtil.getBean(EventProducer.class); + } + +} diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java index a68301fb..081e3435 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java @@ -7,6 +7,7 @@ import cn.axzo.nanopart.api.request.BlackAndWhiteListPlatformSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListReq; import cn.axzo.nanopart.api.response.BlackAndWhiteListExcelImportResp; import cn.axzo.nanopart.api.response.BlackAndWhiteListResp; +import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -36,4 +37,6 @@ public interface BlackAndWhiteListService { Boolean platformSync(BlackAndWhiteListPlatformSyncReq req); Long internalSync(BlackAndWhiteListInternalSyncReq req); + + List listModuleBlackUser(); } diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java index 42c6b42f..21aec660 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java @@ -2,7 +2,9 @@ package cn.axzo.nanopart.server.service.impl; import cn.axzo.basics.common.BeanMapper; import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.nanopart.api.constant.enums.BlackModuleEnum; import cn.axzo.nanopart.api.constant.enums.ListTypeEnum; +import cn.axzo.nanopart.api.constant.enums.MQEventEnum; import cn.axzo.nanopart.api.request.BlackAndWhiteListInternalSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListPlatformSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListReq; @@ -11,9 +13,9 @@ import cn.axzo.nanopart.api.response.BlackAndWhiteListResp; import cn.axzo.nanopart.server.constant.BlackAndWhiteListConstant; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.dao.repository.BlackAndWhiteListRepository; +import cn.axzo.nanopart.server.mq.producer.BlackProducer; import cn.axzo.nanopart.server.service.BlackAndWhiteListService; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.json.JSONUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; @@ -376,4 +378,12 @@ public class BlackAndWhiteListServiceImpl implements BlackAndWhiteListService { }).collect(Collectors.toList()); return blackAndWhiteListRepository.saveBatch(list); } + + + @Override + public List listModuleBlackUser(){ + // 同步到RockerMQ + ArrayList models = Lists.newArrayList(BlackModuleEnum.GXJG_BLACKUSER_WORKER, BlackModuleEnum.GXJG_BLACKUSER_TEAMLEADER, BlackModuleEnum.GXJG_BLACKUSER_EMPLOYEE); + return blackAndWhiteListRepository.listByModule(ListTypeEnum.BLACK_LIST.getValue(), BlackModuleEnum.getValueList(models)); + } } \ No newline at end of file diff --git a/job/job-api/pom.xml b/job/job-api/pom.xml index 2e63e4dd..99f9ba94 100644 --- a/job/job-api/pom.xml +++ b/job/job-api/pom.xml @@ -28,6 +28,10 @@ cn.axzo.basics basics-common + + com.baomidou + mybatis-plus-annotation + diff --git a/nanopart-server/src/main/resources/mapper/BlackAndWhiteListMapper.xml b/nanopart-server/src/main/resources/mapper/BlackAndWhiteListMapper.xml new file mode 100644 index 00000000..52a4415a --- /dev/null +++ b/nanopart-server/src/main/resources/mapper/BlackAndWhiteListMapper.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file From 70737dd8b0598437419ada23c2f978fd6307e71e Mon Sep 17 00:00:00 2001 From: zhangran Date: Tue, 26 Mar 2024 16:20:57 +0800 Subject: [PATCH 02/12] =?UTF-8?q?add-=E6=89=B9=E9=87=8F=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E9=BB=91=E5=90=8D=E5=8D=95=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanopart/api/BlackAndWhiteListApi.java | 14 ++++ .../constant/BlackAndWhiteListConstant.java | 9 +++ .../nanopart/api/request/BlackListReq.java | 44 ++++++++++++ .../nanopart/server/config/XxlJobConfig.java | 70 +++++++++++++++++++ .../BlackAndWhiteListController.java | 25 +++---- .../BlackAndWhiteListRepository.java | 25 +++++++ .../service/BlackAndWhiteListService.java | 18 ++++- .../impl/BlackAndWhiteListServiceImpl.java | 23 ++++-- 8 files changed, 206 insertions(+), 22 deletions(-) create mode 100644 black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackListReq.java create mode 100644 black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/config/XxlJobConfig.java diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/BlackAndWhiteListApi.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/BlackAndWhiteListApi.java index 99cf81af..fc232069 100644 --- a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/BlackAndWhiteListApi.java +++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/BlackAndWhiteListApi.java @@ -7,6 +7,7 @@ import cn.axzo.nanopart.api.request.BlackAndWhiteListExcelImportReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListInternalSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListPlatformSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListReq; +import cn.axzo.nanopart.api.request.BlackListReq; import cn.axzo.nanopart.api.response.BlackAndWhiteListExcelImportResp; import cn.axzo.nanopart.api.response.BlackAndWhiteListResp; import org.springframework.cloud.openfeign.FeignClient; @@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; +import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; @@ -119,4 +121,16 @@ public interface BlackAndWhiteListApi { */ @PostMapping("api/black-white-list/inner-sync") ApiResult internalSync(@RequestBody @Validated BlackAndWhiteListInternalSyncReq req); + + /** + * 判断指定模块、指定参数记录是否在黑名单或白名单中 + * + * @param req 包含type,module,params三个字段 + * @return 若记录存在则返回true,否则返回false + */ + @PostMapping("api/black-white-list/is-in/list/exist") + ApiResult isInBlackListExist(@RequestBody @Valid BlackListReq req); + + @PostMapping("api/black-white-list/is-in/list") + ApiResult> isInBlackListExistList(@RequestBody @Valid BlackListReq req); } diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/BlackAndWhiteListConstant.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/BlackAndWhiteListConstant.java index 21eee5e4..9bbd8b8b 100644 --- a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/BlackAndWhiteListConstant.java +++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/BlackAndWhiteListConstant.java @@ -11,4 +11,13 @@ public class BlackAndWhiteListConstant { public static final String BASIC_FEIGN_PACKAGE = "cn.axzo.nanopart.api"; public static final String PHONE_REGEXP = "^1[3456789]\\d{9}$"; + + //-------------------- 黑名单查询固定字段 START-------------- + public static final String USER_NAME = "userName"; + + public static final String USER_ID_CARD = "userIdCard"; + + public static final String USER_PHONE = "userPhone"; + + //-------------------- 黑名单查询固定字段 END -------------- } \ No newline at end of file diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackListReq.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackListReq.java new file mode 100644 index 00000000..2eeb5341 --- /dev/null +++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackListReq.java @@ -0,0 +1,44 @@ +package cn.axzo.nanopart.api.request; + +import cn.axzo.nanopart.api.constant.enums.BlackModuleEnum; +import cn.axzo.nanopart.api.constant.enums.ListTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; +import java.util.Map; + +/** + * @author: chenwenjian + * @date: 2023/8/11 16:40 + * @description: + * @modifiedBy: + * @version: 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BlackListReq { + + /** + * 名单类型,0为黑名单,1为白名单 + */ + @NotNull(message = "名单类型错误") + private ListTypeEnum type; + + /** + * 模块名,自主定义,例:cms-login + */ + @NotNull(message = "模块名不能为空") + private List modules; + + /** + * 限制条件,如:phone:13698745673 + */ + private Map param; +} diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/config/XxlJobConfig.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/config/XxlJobConfig.java new file mode 100644 index 00000000..53164451 --- /dev/null +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/config/XxlJobConfig.java @@ -0,0 +1,70 @@ +package cn.axzo.nanopart.server.config; + +import cn.azxo.framework.common.logger.JobLoggerTemplate; +import cn.azxo.framework.common.service.JobParamResolver; +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * xxl-job config + * + * @author xuxueli 2017-04-28 + */ +@Configuration +public class XxlJobConfig { + + private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); + + // @Value("http://dev-xxl-job.axzo.cn/xxl-job-admin") + @Value("${xxl.job.admin.addresses}") + private String adminAddresses; + + @Value("${xxl.job.executor.appname}") + private String appName; + + @Value("") + private String ip; + + @Value("${xxl.job.executor.port}") + private int port; + + // @Value("${xxl.job.accessToken}") + @Value("") + private String accessToken; + + @Value("") + private String logPath; + + @Value("-1") + private int logRetentionDays; + + @Bean + public XxlJobSpringExecutor xxlJobExecutor() { + logger.info(">>>>>>>>>>> xxl-job config init."); + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); + xxlJobSpringExecutor.setAdminAddresses(adminAddresses); + xxlJobSpringExecutor.setAppname(appName); + xxlJobSpringExecutor.setIp(ip); + xxlJobSpringExecutor.setPort(port); + xxlJobSpringExecutor.setAccessToken(accessToken); + xxlJobSpringExecutor.setLogPath(logPath); + xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); + + return xxlJobSpringExecutor; + } + + @Bean("jobParamResolver") + public JobParamResolver jobParamResolver() { + return new JobParamResolver(); + } + + @Bean("jobLoggerTemplate") + public JobLoggerTemplate jobLoggerTemplate() { + return new JobLoggerTemplate(); + } +} + diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/controller/BlackAndWhiteListController.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/controller/BlackAndWhiteListController.java index e5ef8c66..7bd8c92c 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/controller/BlackAndWhiteListController.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/controller/BlackAndWhiteListController.java @@ -5,32 +5,20 @@ import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.nanopart.api.BlackAndWhiteListApi; import cn.axzo.nanopart.api.annotation.CheckSign; import cn.axzo.nanopart.api.constant.enums.ListTypeEnum; -import cn.axzo.nanopart.api.request.BlackAndWhiteListExcelImportReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListInternalSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListPlatformSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListReq; +import cn.axzo.nanopart.api.request.BlackListReq; import cn.axzo.nanopart.api.response.BlackAndWhiteListExcelImportResp; import cn.axzo.nanopart.api.response.BlackAndWhiteListResp; -import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.service.BlackAndWhiteListService; import cn.hutool.json.JSONUtil; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.context.AnalysisContext; -import com.alibaba.excel.event.AnalysisEventListener; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.annotations.Select; -import org.json.JSONObject; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author: chenwenjian @@ -68,7 +56,7 @@ public class BlackAndWhiteListController implements BlackAndWhiteListApi { @Override public ApiResult isInBlackOrWhiteList(BlackAndWhiteListReq req) { - return ApiResult.ok(blackAndWhiteListService.isInBlackOrWhiteList(req)); + return ApiResult.ok(blackAndWhiteListService.isInBlackListExist(req)); } @Override @@ -102,4 +90,13 @@ public class BlackAndWhiteListController implements BlackAndWhiteListApi { return ApiResult.ok(blackAndWhiteListService.internalSync(req)); } + @Override + public ApiResult isInBlackListExist(BlackListReq req){ + return ApiResult.ok(blackAndWhiteListService.isInBlackListExist(req)); + } + + @Override + public ApiResult> isInBlackListExistList(BlackListReq req){ + return ApiResult.ok(blackAndWhiteListService.isInBlackListExistList(req)); + } } diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java index d2b7fa8d..82a8e3cd 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java @@ -2,7 +2,9 @@ package cn.axzo.nanopart.server.dao.repository; import cn.axzo.basics.common.BeanMapper; +import cn.axzo.nanopart.api.constant.enums.BlackModuleEnum; import cn.axzo.nanopart.api.request.BlackAndWhiteListReq; +import cn.axzo.nanopart.api.request.BlackListReq; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.dao.mapper.BlackAndWhiteListMapper; import cn.azxo.framework.common.utils.StringUtils; @@ -142,4 +144,27 @@ public class BlackAndWhiteListRepository extends ServiceImpl blackWhiteLists(BlackListReq req) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("type", req.getType().getValue()) + .in(CollectionUtil.isNotEmpty(req.getModules()), "module", BlackModuleEnum.getValueList(req.getModules())) + .eq("is_delete", 0) + .groupBy("type", "param"); + buildListQueryWrapper(queryWrapper, req.getParam(), ""); + return blackAndWhiteListMapper.selectList(queryWrapper); + } + + private void buildListQueryWrapper(QueryWrapper queryWrapper, Map params, String prefix) { + params.forEach((key, value) -> { + String fullKey = prefix.isEmpty() ? key : prefix + "." + key; + if (value instanceof Map) { + buildListQueryWrapper(queryWrapper, (Map) value, fullKey); + }else if(value instanceof List){ + queryWrapper.in("param->>'$." + fullKey + "'", ((List) value).toArray()); + } else { + queryWrapper.eq("param->>'$." + fullKey + "'", value); + } + }); + } } \ No newline at end of file diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java index 081e3435..7e58670e 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java @@ -1,10 +1,10 @@ package cn.axzo.nanopart.server.service; -import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.nanopart.api.constant.enums.ListTypeEnum; import cn.axzo.nanopart.api.request.BlackAndWhiteListInternalSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListPlatformSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListReq; +import cn.axzo.nanopart.api.request.BlackListReq; import cn.axzo.nanopart.api.response.BlackAndWhiteListExcelImportResp; import cn.axzo.nanopart.api.response.BlackAndWhiteListResp; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; @@ -28,7 +28,7 @@ public interface BlackAndWhiteListService { List detail(BlackAndWhiteListReq req); - Boolean isInBlackOrWhiteList(BlackAndWhiteListReq req); + Boolean isInBlackListExist(BlackAndWhiteListReq req); BlackAndWhiteListExcelImportResp importBlackAndWhiteListExcel(ListTypeEnum type, String module, String url, MultipartFile file); @@ -39,4 +39,18 @@ public interface BlackAndWhiteListService { Long internalSync(BlackAndWhiteListInternalSyncReq req); List listModuleBlackUser(); + + /** + * 多模块查询 + * @param req + * @return + */ + Boolean isInBlackListExist(BlackListReq req); + + /** + * 多模块查询 + * @param req + * @return + */ + List isInBlackListExistList(BlackListReq req); } diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java index 21aec660..3596398e 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java @@ -4,16 +4,15 @@ import cn.axzo.basics.common.BeanMapper; import cn.axzo.basics.common.exception.ServiceException; import cn.axzo.nanopart.api.constant.enums.BlackModuleEnum; import cn.axzo.nanopart.api.constant.enums.ListTypeEnum; -import cn.axzo.nanopart.api.constant.enums.MQEventEnum; import cn.axzo.nanopart.api.request.BlackAndWhiteListInternalSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListPlatformSyncReq; import cn.axzo.nanopart.api.request.BlackAndWhiteListReq; +import cn.axzo.nanopart.api.request.BlackListReq; import cn.axzo.nanopart.api.response.BlackAndWhiteListExcelImportResp; import cn.axzo.nanopart.api.response.BlackAndWhiteListResp; import cn.axzo.nanopart.server.constant.BlackAndWhiteListConstant; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.dao.repository.BlackAndWhiteListRepository; -import cn.axzo.nanopart.server.mq.producer.BlackProducer; import cn.axzo.nanopart.server.service.BlackAndWhiteListService; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.excel.EasyExcel; @@ -73,11 +72,11 @@ public class BlackAndWhiteListServiceImpl implements BlackAndWhiteListService { public Long create(BlackAndWhiteListReq req) { // 黑白名单创建互斥,若存在于黑名单中则不允许存在于白名单中,反之亦然 BlackAndWhiteListReq reverseReq = BeanMapper.copyBean(req, BlackAndWhiteListReq.class, (req1, req2) -> req2.setType((req1.getType().equals(ListTypeEnum.BLACK_LIST)) ? ListTypeEnum.WHITE_LIST : ListTypeEnum.BLACK_LIST)); - if (isInBlackOrWhiteList(reverseReq)) { + if (isInBlackListExist(reverseReq)) { throw new ServiceException("该记录已存在于" + reverseReq.getType().getDescription() + "中,不能创建对应" + req.getType().getDescription()); } // 同类型名单内唯一性校验 - if (isInBlackOrWhiteList(req)) { + if (isInBlackListExist(req)) { throw new ServiceException("该记录已存在于" + req.getType().getDescription() + "中"); } return blackAndWhiteListRepository.create(req); @@ -113,7 +112,7 @@ public class BlackAndWhiteListServiceImpl implements BlackAndWhiteListService { * @return 记录存在返回true,否则返回false */ @Override - public Boolean isInBlackOrWhiteList(BlackAndWhiteListReq req) { + public Boolean isInBlackListExist(BlackAndWhiteListReq req) { List blackWhiteLists = blackAndWhiteListRepository.detail(req); return CollectionUtil.isNotEmpty(blackWhiteLists); } @@ -223,7 +222,7 @@ public class BlackAndWhiteListServiceImpl implements BlackAndWhiteListService { return map; }).forEach(m -> { // 判断是否存在目标记录,不存在则新增一条 - if (!isInBlackOrWhiteList(BlackAndWhiteListReq.builder() + if (!isInBlackListExist(BlackAndWhiteListReq.builder() .type(req.getType()) .module(req.getTargetModule()) .param(m) @@ -386,4 +385,16 @@ public class BlackAndWhiteListServiceImpl implements BlackAndWhiteListService { ArrayList models = Lists.newArrayList(BlackModuleEnum.GXJG_BLACKUSER_WORKER, BlackModuleEnum.GXJG_BLACKUSER_TEAMLEADER, BlackModuleEnum.GXJG_BLACKUSER_EMPLOYEE); return blackAndWhiteListRepository.listByModule(ListTypeEnum.BLACK_LIST.getValue(), BlackModuleEnum.getValueList(models)); } + + @Override + public Boolean isInBlackListExist(BlackListReq req){ + List whiteLists = blackAndWhiteListRepository.blackWhiteLists(req); + return CollectionUtil.isNotEmpty(whiteLists); + } + + @Override + public List isInBlackListExistList(BlackListReq req){ + List detail = blackAndWhiteListRepository.blackWhiteLists(req); + return BeanMapper.copyList(detail, BlackAndWhiteListResp.class); + } } \ No newline at end of file From df830ed82825bdc32ea3d2e198da7ccb5e934113 Mon Sep 17 00:00:00 2001 From: zhangran Date: Thu, 28 Mar 2024 16:54:40 +0800 Subject: [PATCH 03/12] add-rocker --- .../cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java | 2 +- .../java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java index 8fc658ba..5e38379b 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/RocketMQEventConfiguration.java @@ -43,7 +43,7 @@ public class RocketMQEventConfiguration { private String getTopic(String topic) { if (!StringUtils.isEmpty(topic)) { - topic = topic + "_" + profileActivity; + topic = "topic_"+topic + "_" + profileActivity; } return topic; } diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java index b5aef2ce..3109bc93 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java @@ -35,7 +35,7 @@ public class BlackProducer implements InitializingBean { .shardingKey(String.valueOf(baseEntity.getId())) .targetId(String.valueOf(baseEntity.getId())) .targetType(mqEventEnum.getModel()) - .eventCode(new Event.EventCode(mqEventEnum.getModel(), mqEventEnum.getTag())) + .eventCode(mqEventEnum.getEventCode()) .eventModule(mqEventEnum.getModel()) .eventName(mqEventEnum.getTag()) .operatorId(operatorId) From bca277b00d7a2cb3f40f7882e040a534cc8db941 Mon Sep 17 00:00:00 2001 From: zhangran Date: Sat, 30 Mar 2024 20:45:41 +0800 Subject: [PATCH 04/12] =?UTF-8?q?add-=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java | 1 + 1 file changed, 1 insertion(+) diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java index 15199e53..4255d327 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java @@ -29,6 +29,7 @@ public class BlackUserSyncJob extends BaseJobHandler{ private BlackAndWhiteListService blackAndWhiteListService; /** * 定时任务执行逻辑 + * 这具数据比较少,一直性发个几百条我问题不在 * * @param param */ From 4c8d2b1034650d6381f578a5f6a64af671cacfee Mon Sep 17 00:00:00 2001 From: zhangran Date: Sat, 30 Mar 2024 21:05:54 +0800 Subject: [PATCH 05/12] =?UTF-8?q?add-=E4=BF=AE=E6=94=B9=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/nanopart/server/job/BlackUserSyncJob.java | 11 ++++++++++- .../nanopart/server/mq/producer/BlackProducer.java | 12 ++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java index 4255d327..3c24f180 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java @@ -5,12 +5,16 @@ import cn.axzo.nanopart.api.constant.enums.MQEventEnum; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.mq.producer.BlackProducer; import cn.axzo.nanopart.server.service.BlackAndWhiteListService; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.google.common.collect.Lists; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -40,10 +44,15 @@ public class BlackUserSyncJob extends BaseJobHandler{ Map> modulBlackMap = saasBlackWhiteLists.stream().collect(Collectors.groupingBy(SaasBlackWhiteList::getModule)); modulBlackMap.forEach((module, blackList) -> { log.info("syncRockerMQ module:{} ,blackList.size:{}" ,module, blackList.size()); + BlackModuleEnum blackModuleEnum = BlackModuleEnum.getByValue(module); MQEventEnum event = MQEventEnum.getByName(blackModuleEnum.name()); + + ArrayList> sends = Lists.newArrayList(); + blackList.forEach(item -> sends.add(item.getParam())); + String jsonStr = JSONUtil.toJsonStr(sends); if(Objects.nonNull(blackModuleEnum) && Objects.nonNull(event)){ - BlackProducer.sendBatch(event, blackList); + BlackProducer.send(event, jsonStr); } }); return ReturnT.SUCCESS; diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java index 3109bc93..1e0fbb2d 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java @@ -51,6 +51,18 @@ public class BlackProducer implements InitializingBean { baseEntities.forEach(baseEntity -> send(mqEventEnum, baseEntity, null)); } + public static void send(MQEventEnum mqEventEnum, String data) { + //生产消息 + eventProducer.send(Event.builder() + .targetType(mqEventEnum.getModel()) + .eventCode(mqEventEnum.getEventCode()) + .eventModule(mqEventEnum.getModel()) + .eventName(mqEventEnum.getTag()) + .operatorId(null) + .data(data) + .build()); + } + @Override public void afterPropertiesSet() { eventProducer = SpringUtil.getBean(EventProducer.class); From 3aaf94928c4bd778305ec75a09b30334ad6b73c2 Mon Sep 17 00:00:00 2001 From: zhangran Date: Sun, 31 Mar 2024 15:44:07 +0800 Subject: [PATCH 06/12] =?UTF-8?q?add-=E4=BF=AE=E6=94=B9send?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/nanopart/server/mq/producer/BlackProducer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java index 1e0fbb2d..122351b3 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java @@ -52,8 +52,13 @@ public class BlackProducer implements InitializingBean { } public static void send(MQEventEnum mqEventEnum, String data) { + if(mqEventEnum == null){ + throw new ServiceException("无法正确发送mq: mqEventEnum不能为空"); + } //生产消息 eventProducer.send(Event.builder() + .shardingKey("0") + .targetId("0") .targetType(mqEventEnum.getModel()) .eventCode(mqEventEnum.getEventCode()) .eventModule(mqEventEnum.getModel()) From 83cb9521d4218384a069744dc489403ddda145ce Mon Sep 17 00:00:00 2001 From: zhangran Date: Mon, 1 Apr 2024 16:51:28 +0800 Subject: [PATCH 07/12] =?UTF-8?q?add-job=E6=9F=A5=E8=AF=A2=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E8=BA=AB=E4=BB=BD=E8=AF=81=E7=9A=84=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanopart/server/job/BlackUserSyncJob.java | 22 ++++++++++++++++++- .../service/BlackAndWhiteListService.java | 2 ++ .../impl/BlackAndWhiteListServiceImpl.java | 6 +++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java index 3c24f180..2f4b4086 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java @@ -1,13 +1,17 @@ package cn.axzo.nanopart.server.job; import cn.axzo.nanopart.api.constant.enums.BlackModuleEnum; +import cn.axzo.nanopart.api.constant.enums.ListTypeEnum; import cn.axzo.nanopart.api.constant.enums.MQEventEnum; +import cn.axzo.nanopart.api.request.BlackListReq; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.mq.producer.BlackProducer; import cn.axzo.nanopart.server.service.BlackAndWhiteListService; +import cn.azxo.framework.common.utils.StringUtils; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; @@ -15,6 +19,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -40,7 +46,21 @@ public class BlackUserSyncJob extends BaseJobHandler{ @Override @XxlJob("blackUserSyncJob") public ReturnT execute(String param) throws Exception { - List saasBlackWhiteLists = blackAndWhiteListService.listModuleBlackUser(); + List saasBlackWhiteLists; + // 身份证号不为空,多条以“,”分割 + if(StringUtils.isNotBlank(param)){ + List idCards = Arrays.stream(param.split(",")).collect(Collectors.toList()); + ArrayList models = Lists.newArrayList(BlackModuleEnum.GXJG_BLACKUSER_WORKER, BlackModuleEnum.GXJG_BLACKUSER_TEAMLEADER, BlackModuleEnum.GXJG_BLACKUSER_EMPLOYEE); + BlackListReq req = new BlackListReq(); + req.setModules(models); + req.setType(ListTypeEnum.BLACK_LIST); + HashMap map = Maps.newHashMap(); + map.put("userIdCard", idCards); + req.setParam(map); + saasBlackWhiteLists = blackAndWhiteListService.listModuleBlackUser(req); + }else{ + saasBlackWhiteLists = blackAndWhiteListService.listModuleBlackUser(); + } Map> modulBlackMap = saasBlackWhiteLists.stream().collect(Collectors.groupingBy(SaasBlackWhiteList::getModule)); modulBlackMap.forEach((module, blackList) -> { log.info("syncRockerMQ module:{} ,blackList.size:{}" ,module, blackList.size()); diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java index 7e58670e..0378df96 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java @@ -53,4 +53,6 @@ public interface BlackAndWhiteListService { * @return */ List isInBlackListExistList(BlackListReq req); + + List listModuleBlackUser(BlackListReq req); } diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java index 3596398e..3b5a0d95 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java @@ -397,4 +397,10 @@ public class BlackAndWhiteListServiceImpl implements BlackAndWhiteListService { List detail = blackAndWhiteListRepository.blackWhiteLists(req); return BeanMapper.copyList(detail, BlackAndWhiteListResp.class); } + + @Override + public List listModuleBlackUser(BlackListReq req){ + // 同步到RockerMQ + return blackAndWhiteListRepository.blackWhiteLists(req); + } } \ No newline at end of file From 92fc9b9c7e6fc3bf2b5982ccbd981ca3444b5e69 Mon Sep 17 00:00:00 2001 From: zhangran Date: Mon, 1 Apr 2024 16:52:48 +0800 Subject: [PATCH 08/12] =?UTF-8?q?add-job=E6=9F=A5=E8=AF=A2=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E8=BA=AB=E4=BB=BD=E8=AF=81=E7=9A=84=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java index 2f4b4086..be248b4d 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java @@ -8,6 +8,7 @@ import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.mq.producer.BlackProducer; import cn.axzo.nanopart.server.service.BlackAndWhiteListService; import cn.azxo.framework.common.utils.StringUtils; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.google.common.collect.Lists; @@ -20,6 +21,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -60,6 +62,10 @@ public class BlackUserSyncJob extends BaseJobHandler{ saasBlackWhiteLists = blackAndWhiteListService.listModuleBlackUser(req); }else{ saasBlackWhiteLists = blackAndWhiteListService.listModuleBlackUser(); + if(CollectionUtil.isEmpty(saasBlackWhiteLists)){ + log.info("没有查到指定的黑名单人员数据"); + return ReturnT.SUCCESS; + } } Map> modulBlackMap = saasBlackWhiteLists.stream().collect(Collectors.groupingBy(SaasBlackWhiteList::getModule)); modulBlackMap.forEach((module, blackList) -> { From a8bdb400e5654b51a7c8286737b835b55a4a2da8 Mon Sep 17 00:00:00 2001 From: zhangran Date: Mon, 8 Apr 2024 13:56:04 +0800 Subject: [PATCH 09/12] =?UTF-8?q?add-=E6=9B=B4=E6=8D=A2xxljob?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanopart/server/job/BaseJobHandler.java | 22 ------ .../nanopart/server/job/BlackUserSyncJob.java | 3 +- .../cn/axzo/nanopart/config/XxlJobConfig.java | 69 +++++++++++++++++++ 3 files changed, 71 insertions(+), 23 deletions(-) delete mode 100644 black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BaseJobHandler.java create mode 100644 nanopart-server/src/main/java/cn/axzo/nanopart/config/XxlJobConfig.java diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BaseJobHandler.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BaseJobHandler.java deleted file mode 100644 index 2b5ed1d7..00000000 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BaseJobHandler.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.axzo.nanopart.server.job; - -import cn.azxo.framework.common.logger.JobLoggerTemplate; -import com.xxl.job.core.biz.model.ReturnT; - -import javax.annotation.Resource; - -/** - * @Author zr - * @Date 2024/3/20 16:28 - * @Description - **/ -public abstract class BaseJobHandler { - - @Resource(name = "jobLoggerTemplate") - protected JobLoggerTemplate jobLoggerTemplate; - - /** - * 定时任务执行逻辑 - */ - public abstract ReturnT execute(String param) throws Exception; -} diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java index be248b4d..6b569bac 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/BlackUserSyncJob.java @@ -14,6 +14,7 @@ import cn.hutool.json.JSONUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -35,7 +36,7 @@ import java.util.stream.Collectors; **/ @Slf4j @Component -public class BlackUserSyncJob extends BaseJobHandler{ +public class BlackUserSyncJob extends IJobHandler{ @Resource private BlackAndWhiteListService blackAndWhiteListService; diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/config/XxlJobConfig.java b/nanopart-server/src/main/java/cn/axzo/nanopart/config/XxlJobConfig.java new file mode 100644 index 00000000..21788baa --- /dev/null +++ b/nanopart-server/src/main/java/cn/axzo/nanopart/config/XxlJobConfig.java @@ -0,0 +1,69 @@ +package cn.axzo.nanopart.config; + +import cn.azxo.framework.common.logger.JobLoggerTemplate; +import cn.azxo.framework.common.service.JobParamResolver; +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * xxl-job config + * + * @author xuxueli 2017-04-28 + */ +@Configuration +public class XxlJobConfig { + + private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); + + // @Value("http://dev-xxl-job.axzo.cn/xxl-job-admin") + @Value("${xxl.job.admin.addresses}") + private String adminAddresses; + + @Value("${xxl.job.executor.appname}") + private String appName; + + @Value("") + private String ip; + + @Value("${xxl.job.executor.port}") + private int port; + + // @Value("${xxl.job.accessToken}") + @Value("") + private String accessToken; + + @Value("") + private String logPath; + + @Value("-1") + private int logRetentionDays; + + @Bean + public XxlJobSpringExecutor xxlJobExecutor() { + logger.info(">>>>>>>>>>> xxl-job config init."); + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); + xxlJobSpringExecutor.setAdminAddresses(adminAddresses); + xxlJobSpringExecutor.setAppname(appName); + xxlJobSpringExecutor.setIp(ip); + xxlJobSpringExecutor.setPort(port); + xxlJobSpringExecutor.setAccessToken(accessToken); + xxlJobSpringExecutor.setLogPath(logPath); + xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); + + return xxlJobSpringExecutor; + } + + @Bean("jobParamResolver") + public JobParamResolver jobParamResolver() { + return new JobParamResolver(); + } + + @Bean("jobLoggerTemplate") + public JobLoggerTemplate jobLoggerTemplate() { + return new JobLoggerTemplate(); + } +} From 18ecc95e390f4c091fa8600ca10dc131b43688e4 Mon Sep 17 00:00:00 2001 From: zhangran Date: Mon, 8 Apr 2024 21:16:04 +0800 Subject: [PATCH 10/12] =?UTF-8?q?fix-=E5=88=A0=E9=99=A4xxljob?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanopart/server/config/XxlJobConfig.java | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/config/XxlJobConfig.java diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/config/XxlJobConfig.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/config/XxlJobConfig.java deleted file mode 100644 index 53164451..00000000 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/config/XxlJobConfig.java +++ /dev/null @@ -1,70 +0,0 @@ -package cn.axzo.nanopart.server.config; - -import cn.azxo.framework.common.logger.JobLoggerTemplate; -import cn.azxo.framework.common.service.JobParamResolver; -import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * xxl-job config - * - * @author xuxueli 2017-04-28 - */ -@Configuration -public class XxlJobConfig { - - private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); - - // @Value("http://dev-xxl-job.axzo.cn/xxl-job-admin") - @Value("${xxl.job.admin.addresses}") - private String adminAddresses; - - @Value("${xxl.job.executor.appname}") - private String appName; - - @Value("") - private String ip; - - @Value("${xxl.job.executor.port}") - private int port; - - // @Value("${xxl.job.accessToken}") - @Value("") - private String accessToken; - - @Value("") - private String logPath; - - @Value("-1") - private int logRetentionDays; - - @Bean - public XxlJobSpringExecutor xxlJobExecutor() { - logger.info(">>>>>>>>>>> xxl-job config init."); - XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); - xxlJobSpringExecutor.setAdminAddresses(adminAddresses); - xxlJobSpringExecutor.setAppname(appName); - xxlJobSpringExecutor.setIp(ip); - xxlJobSpringExecutor.setPort(port); - xxlJobSpringExecutor.setAccessToken(accessToken); - xxlJobSpringExecutor.setLogPath(logPath); - xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); - - return xxlJobSpringExecutor; - } - - @Bean("jobParamResolver") - public JobParamResolver jobParamResolver() { - return new JobParamResolver(); - } - - @Bean("jobLoggerTemplate") - public JobLoggerTemplate jobLoggerTemplate() { - return new JobLoggerTemplate(); - } -} - From b14d242f95db8eade5549a1f1990aec7c2701e77 Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Wed, 10 Apr 2024 16:12:42 +0800 Subject: [PATCH 11/12] =?UTF-8?q?feat(REQ-2212):=20=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanopart/api/ApplicationVersionApi.java | 164 +++++++++--------- .../java/cn/axzo/nanopart/api/BannerApi.java | 144 +++++++-------- .../nanopart/api/BannerOperationLogApi.java | 56 +++--- .../cn/axzo/nanopart/api/MaterialApi.java | 95 +++++----- .../ApplicationVersionController.java | 114 ++++++------ .../server/controller/BannerController.java | 116 ++++++------- .../BannerOperationLogController.java | 48 ++--- .../server/controller/MaterialController.java | 70 ++++---- .../cn/axzo/nanopart/NanopartApplication.java | 24 +-- .../impl/OpMessageConfigServiceImpl.java | 3 +- 10 files changed, 400 insertions(+), 434 deletions(-) diff --git a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/ApplicationVersionApi.java b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/ApplicationVersionApi.java index 8c10e616..e3e0dfd5 100644 --- a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/ApplicationVersionApi.java +++ b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/ApplicationVersionApi.java @@ -1,82 +1,82 @@ -package cn.axzo.nanopart.api; - -import cn.axzo.framework.domain.web.result.ApiPageResult; -import cn.axzo.framework.domain.web.result.ApiResult; -import cn.axzo.nanopart.api.request.CreateApplicationVersionReq; -import cn.axzo.nanopart.api.request.GetVersionUpdateRemindContentReq; -import cn.axzo.nanopart.api.request.PageApplicationVersionReq; -import cn.axzo.nanopart.api.request.UpdateApplicationVersionReq; -import cn.axzo.nanopart.api.response.GetVersionUpdateRemindContentResp; -import cn.axzo.nanopart.api.response.PageApplicationVersionResp; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; - -import javax.validation.Valid; - -/** - * @author chenwenjian - * @version 1.0 - * @date 2024/4/2 10:21 - */ -@FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}") -public interface ApplicationVersionApi { - - /** - * 创建 - *

- * 版本号+平台+操作系统,不可重复 - *

- * - * @param req {@link CreateApplicationVersionReq} - * @return 版本记录id - */ - @PostMapping("/api/applicationVersion/create") - ApiResult create(@RequestBody @Valid CreateApplicationVersionReq req); - - /** - * 更新 - * - * @param req {@link UpdateApplicationVersionReq} - * @return void - */ - @PostMapping("/api/applicationVersion/update") - ApiResult update(@RequestBody @Valid UpdateApplicationVersionReq req); - - /** - * 删除 - * - * @param id 版本记录id - * @return void - */ - @GetMapping("/api/applicationVersion/delete") - ApiResult deleteById(@RequestParam("id") Long id, @RequestParam("personId") Long personId); - - /** - * 分页查询 - * - * @param req {@link PageApplicationVersionReq} - * @return 按照版本号字典序倒排 - */ - @PostMapping("/api/applicationVersion/page") - ApiPageResult page(@RequestBody @Valid PageApplicationVersionReq req); - - /** - * 获取版本更新提醒内容 - *

- * 1. 获取最新配置的提示内容记录 - * - 对于cms,直接返回最新配置(版本号最高)的一条记录()看是否配置了弹窗提示 - * - 对于app,根据版本号和操作系统,看该版本号是否配置了弹窗提示 - * 2. 检查当前用户是否已经提示 - * - 若已提示则不再提示,直接返回null - * - 若还没有提示,则返回该条提示内容记录 - *

- * - * @param req {@link GetVersionUpdateRemindContentReq} - * @return 版本更新提醒内容 - */ - @PostMapping("/api/applicationVersion/getVersionUpdateRemindContent") - ApiResult getVersionUpdateRemindContent(@RequestBody @Valid GetVersionUpdateRemindContentReq req); -} +// package cn.axzo.nanopart.api; +// +// import cn.axzo.framework.domain.web.result.ApiPageResult; +// import cn.axzo.framework.domain.web.result.ApiResult; +// import cn.axzo.nanopart.api.request.CreateApplicationVersionReq; +// import cn.axzo.nanopart.api.request.GetVersionUpdateRemindContentReq; +// import cn.axzo.nanopart.api.request.PageApplicationVersionReq; +// import cn.axzo.nanopart.api.request.UpdateApplicationVersionReq; +// import cn.axzo.nanopart.api.response.GetVersionUpdateRemindContentResp; +// import cn.axzo.nanopart.api.response.PageApplicationVersionResp; +// import org.springframework.cloud.openfeign.FeignClient; +// import org.springframework.web.bind.annotation.GetMapping; +// import org.springframework.web.bind.annotation.PostMapping; +// import org.springframework.web.bind.annotation.RequestBody; +// import org.springframework.web.bind.annotation.RequestParam; +// +// import javax.validation.Valid; +// +// /** +// * @author chenwenjian +// * @version 1.0 +// * @date 2024/4/2 10:21 +// */ +// @FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}") +// public interface ApplicationVersionApi { +// +// /** +// * 创建 +// *

+// * 版本号+平台+操作系统,不可重复 +// *

+// * +// * @param req {@link CreateApplicationVersionReq} +// * @return 版本记录id +// */ +// @PostMapping("/api/applicationVersion/create") +// ApiResult create(@RequestBody @Valid CreateApplicationVersionReq req); +// +// /** +// * 更新 +// * +// * @param req {@link UpdateApplicationVersionReq} +// * @return void +// */ +// @PostMapping("/api/applicationVersion/update") +// ApiResult update(@RequestBody @Valid UpdateApplicationVersionReq req); +// +// /** +// * 删除 +// * +// * @param id 版本记录id +// * @return void +// */ +// @GetMapping("/api/applicationVersion/delete") +// ApiResult deleteById(@RequestParam("id") Long id, @RequestParam("personId") Long personId); +// +// /** +// * 分页查询 +// * +// * @param req {@link PageApplicationVersionReq} +// * @return 按照版本号字典序倒排 +// */ +// @PostMapping("/api/applicationVersion/page") +// ApiPageResult page(@RequestBody @Valid PageApplicationVersionReq req); +// +// /** +// * 获取版本更新提醒内容 +// *

+// * 1. 获取最新配置的提示内容记录 +// * - 对于cms,直接返回最新配置(版本号最高)的一条记录()看是否配置了弹窗提示 +// * - 对于app,根据版本号和操作系统,看该版本号是否配置了弹窗提示 +// * 2. 检查当前用户是否已经提示 +// * - 若已提示则不再提示,直接返回null +// * - 若还没有提示,则返回该条提示内容记录 +// *

+// * +// * @param req {@link GetVersionUpdateRemindContentReq} +// * @return 版本更新提醒内容 +// */ +// @PostMapping("/api/applicationVersion/getVersionUpdateRemindContent") +// ApiResult getVersionUpdateRemindContent(@RequestBody @Valid GetVersionUpdateRemindContentReq req); +// } diff --git a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/BannerApi.java b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/BannerApi.java index 924d71b7..47ef264c 100644 --- a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/BannerApi.java +++ b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/BannerApi.java @@ -1,72 +1,72 @@ -package cn.axzo.nanopart.api; - -import cn.axzo.framework.domain.web.result.ApiPageResult; -import cn.axzo.framework.domain.web.result.ApiResult; -import cn.axzo.nanopart.api.request.CreateBannerReq; -import cn.axzo.nanopart.api.request.DetailBannerReq; -import cn.axzo.nanopart.api.request.PageBannerReq; -import cn.axzo.nanopart.api.request.UpdateBannerReq; -import cn.axzo.nanopart.api.request.UpdateStatusReq; -import cn.axzo.nanopart.api.response.DetailBannerResp; -import cn.axzo.nanopart.api.response.PageBannerResp; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import javax.validation.Valid; - -/** - * @author chenwenjian - * @version 1.0 - * @date 2024/4/2 10:19 - */ -@FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}") -public interface BannerApi { - - /** - * 分页查询banner - * - * @param req {@link PageBannerReq} - * @return 按照站点code(code)自增排序后列表 {@link PageBannerResp} - */ - @PostMapping("/api/banner/page") - ApiPageResult page(@RequestBody @Valid PageBannerReq req); - - /** - * 创建banner - * - * @param req {@link CreateBannerReq} - * @return bannerId - */ - @PostMapping("/api/banner/create") - ApiResult create(@RequestBody @Valid CreateBannerReq req); - - /** - * 更新banner - * - * @param req {@link UpdateBannerReq} - * @return void - */ - @PostMapping("/api/banner/update") - ApiResult update(@RequestBody @Valid UpdateBannerReq req); - - /** - * 更新banner状态 - * - * @param req {@link UpdateStatusReq} - * @return void - */ - @PostMapping("/api/banner/updateStatus") - ApiResult updateStatus(@RequestBody @Valid UpdateStatusReq req); - - /** - * 详情 - * - * @param req 广告位唯一的id或code {@link DetailBannerReq} - * @return {@link DetailBannerResp} - */ - @PostMapping("/api/banner/detail") - ApiResult detail(@RequestBody @Valid DetailBannerReq req); - - -} +// package cn.axzo.nanopart.api; +// +// import cn.axzo.framework.domain.web.result.ApiPageResult; +// import cn.axzo.framework.domain.web.result.ApiResult; +// import cn.axzo.nanopart.api.request.CreateBannerReq; +// import cn.axzo.nanopart.api.request.DetailBannerReq; +// import cn.axzo.nanopart.api.request.PageBannerReq; +// import cn.axzo.nanopart.api.request.UpdateBannerReq; +// import cn.axzo.nanopart.api.request.UpdateStatusReq; +// import cn.axzo.nanopart.api.response.DetailBannerResp; +// import cn.axzo.nanopart.api.response.PageBannerResp; +// import org.springframework.cloud.openfeign.FeignClient; +// import org.springframework.web.bind.annotation.PostMapping; +// import org.springframework.web.bind.annotation.RequestBody; +// +// import javax.validation.Valid; +// +// /** +// * @author chenwenjian +// * @version 1.0 +// * @date 2024/4/2 10:19 +// */ +// @FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}") +// public interface BannerApi { +// +// /** +// * 分页查询banner +// * +// * @param req {@link PageBannerReq} +// * @return 按照站点code(code)自增排序后列表 {@link PageBannerResp} +// */ +// @PostMapping("/api/banner/page") +// ApiPageResult page(@RequestBody @Valid PageBannerReq req); +// +// /** +// * 创建banner +// * +// * @param req {@link CreateBannerReq} +// * @return bannerId +// */ +// @PostMapping("/api/banner/create") +// ApiResult create(@RequestBody @Valid CreateBannerReq req); +// +// /** +// * 更新banner +// * +// * @param req {@link UpdateBannerReq} +// * @return void +// */ +// @PostMapping("/api/banner/update") +// ApiResult update(@RequestBody @Valid UpdateBannerReq req); +// +// /** +// * 更新banner状态 +// * +// * @param req {@link UpdateStatusReq} +// * @return void +// */ +// @PostMapping("/api/banner/updateStatus") +// ApiResult updateStatus(@RequestBody @Valid UpdateStatusReq req); +// +// /** +// * 详情 +// * +// * @param req 广告位唯一的id或code {@link DetailBannerReq} +// * @return {@link DetailBannerResp} +// */ +// @PostMapping("/api/banner/detail") +// ApiResult detail(@RequestBody @Valid DetailBannerReq req); +// +// +// } diff --git a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/BannerOperationLogApi.java b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/BannerOperationLogApi.java index dc804402..4955eede 100644 --- a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/BannerOperationLogApi.java +++ b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/BannerOperationLogApi.java @@ -1,28 +1,28 @@ -package cn.axzo.nanopart.api; - -import cn.axzo.framework.domain.web.result.ApiPageResult; -import cn.axzo.nanopart.api.request.PageBannerOperationLogReq; -import cn.axzo.nanopart.api.response.PageBannerOperationLogResp; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import javax.validation.Valid; - -/** - * @author chenwenjian - * @version 1.0 - * @date 2024/4/2 10:21 - */ -@FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}") -public interface BannerOperationLogApi { - - /** - * 分页查询 - * - * @param req {@link PageBannerOperationLogReq} - * @return 按照操作时间倒叙排序 - */ - @PostMapping("/api/bannerOperationLog/page") - ApiPageResult page(@RequestBody @Valid PageBannerOperationLogReq req); -} +// package cn.axzo.nanopart.api; +// +// import cn.axzo.framework.domain.web.result.ApiPageResult; +// import cn.axzo.nanopart.api.request.PageBannerOperationLogReq; +// import cn.axzo.nanopart.api.response.PageBannerOperationLogResp; +// import org.springframework.cloud.openfeign.FeignClient; +// import org.springframework.web.bind.annotation.PostMapping; +// import org.springframework.web.bind.annotation.RequestBody; +// +// import javax.validation.Valid; +// +// /** +// * @author chenwenjian +// * @version 1.0 +// * @date 2024/4/2 10:21 +// */ +// @FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}") +// public interface BannerOperationLogApi { +// +// /** +// * 分页查询 +// * +// * @param req {@link PageBannerOperationLogReq} +// * @return 按照操作时间倒叙排序 +// */ +// @PostMapping("/api/bannerOperationLog/page") +// ApiPageResult page(@RequestBody @Valid PageBannerOperationLogReq req); +// } diff --git a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/MaterialApi.java b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/MaterialApi.java index ec3a44d8..603cf2ef 100644 --- a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/MaterialApi.java +++ b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/MaterialApi.java @@ -1,15 +1,8 @@ package cn.axzo.nanopart.api; -import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; -import cn.axzo.nanopart.api.request.CreateMaterialReq; -import cn.axzo.nanopart.api.request.DetailMaterialReq; import cn.axzo.nanopart.api.request.ListMaterialByBannerCodeReq; -import cn.axzo.nanopart.api.request.PageMaterialReq; -import cn.axzo.nanopart.api.request.UpdateMaterialReq; -import cn.axzo.nanopart.api.request.UpdateStatusReq; import cn.axzo.nanopart.api.response.MaterialResp; -import cn.axzo.nanopart.api.response.PageMaterialResp; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -25,50 +18,50 @@ import java.util.List; @FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}") public interface MaterialApi { - /** - * 分页查询 - * - * @param req {@link PageMaterialReq}} - * @return 根据上下架状态(上架→下架)。优先级正序(数字由小到大)排列后素材列表 - */ - @PostMapping("/api/material/page") - ApiPageResult page(@RequestBody @Valid PageMaterialReq req); - - /** - * 创建 - * - * @param req {@link CreateMaterialReq} - * @return 素材id - */ - @PostMapping("/api/material/create") - ApiResult create(@RequestBody @Valid CreateMaterialReq req); - - /** - * 更新 - * - * @param req {@link UpdateMaterialReq} - * @return 无 - */ - @PostMapping("/api/material/update") - ApiResult update(@RequestBody @Valid UpdateMaterialReq req); - - /** - * 更新banner状态 - * - * @param req {@link UpdateStatusReq} - * @return void - */ - @PostMapping("/api/material/updateStatus") - ApiResult updateStatus(@RequestBody @Valid UpdateStatusReq req); - - /** - * 详情 - * - * @param req {@link UpdateMaterialReq} - * @return 素材详情 - */ - @PostMapping("/api/material/detail") - ApiResult detail(@RequestBody @Valid DetailMaterialReq req); + // /** + // * 分页查询 + // * + // * @param req {@link PageMaterialReq}} + // * @return 根据上下架状态(上架→下架)。优先级正序(数字由小到大)排列后素材列表 + // */ + // @PostMapping("/api/material/page") + // ApiPageResult page(@RequestBody @Valid PageMaterialReq req); + // + // /** + // * 创建 + // * + // * @param req {@link CreateMaterialReq} + // * @return 素材id + // */ + // @PostMapping("/api/material/create") + // ApiResult create(@RequestBody @Valid CreateMaterialReq req); + // + // /** + // * 更新 + // * + // * @param req {@link UpdateMaterialReq} + // * @return 无 + // */ + // @PostMapping("/api/material/update") + // ApiResult update(@RequestBody @Valid UpdateMaterialReq req); + // + // /** + // * 更新banner状态 + // * + // * @param req {@link UpdateStatusReq} + // * @return void + // */ + // @PostMapping("/api/material/updateStatus") + // ApiResult updateStatus(@RequestBody @Valid UpdateStatusReq req); + // + // /** + // * 详情 + // * + // * @param req {@link UpdateMaterialReq} + // * @return 素材详情 + // */ + // @PostMapping("/api/material/detail") + // ApiResult detail(@RequestBody @Valid DetailMaterialReq req); /** * 根据广告位编码(bannerCode)查询素材 diff --git a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/ApplicationVersionController.java b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/ApplicationVersionController.java index ba539929..1e2bd3ed 100644 --- a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/ApplicationVersionController.java +++ b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/ApplicationVersionController.java @@ -1,57 +1,57 @@ -package cn.axzo.nanopart.server.controller; - -import cn.axzo.framework.domain.web.result.ApiPageResult; -import cn.axzo.framework.domain.web.result.ApiResult; -import cn.axzo.nanopart.api.ApplicationVersionApi; -import cn.axzo.nanopart.api.request.CreateApplicationVersionReq; -import cn.axzo.nanopart.api.request.GetVersionUpdateRemindContentReq; -import cn.axzo.nanopart.api.request.PageApplicationVersionReq; -import cn.axzo.nanopart.api.request.UpdateApplicationVersionReq; -import cn.axzo.nanopart.api.response.GetVersionUpdateRemindContentResp; -import cn.axzo.nanopart.api.response.PageApplicationVersionResp; -import cn.axzo.nanopart.server.service.ApplicationVersionService; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author chenwenjian - * @version 1.0 - * @date 2024/4/3 16:39 - */ -@Slf4j -@RestController -@RequiredArgsConstructor -public class ApplicationVersionController implements ApplicationVersionApi { - - private final ApplicationVersionService applicationVersionService; - - @Override - public ApiResult create(CreateApplicationVersionReq req) { - return ApiResult.ok(applicationVersionService.create(req)); - } - - @Override - public ApiResult update(UpdateApplicationVersionReq req) { - applicationVersionService.update(req); - return ApiResult.ok(); - } - - @Override - public ApiResult deleteById(Long id, Long personId) { - applicationVersionService.deleteById(id, personId); - return ApiResult.ok(); - } - - @Override - public ApiPageResult page(PageApplicationVersionReq req) { - Page pageData = applicationVersionService.page(req); - return ApiPageResult.ok(pageData); - } - - @Override - public ApiResult getVersionUpdateRemindContent(GetVersionUpdateRemindContentReq req) { - return ApiResult.ok(applicationVersionService.getVersionUpdateRemindContent(req)); - } -} +// package cn.axzo.nanopart.server.controller; +// +// import cn.axzo.framework.domain.web.result.ApiPageResult; +// import cn.axzo.framework.domain.web.result.ApiResult; +// import cn.axzo.nanopart.api.ApplicationVersionApi; +// import cn.axzo.nanopart.api.request.CreateApplicationVersionReq; +// import cn.axzo.nanopart.api.request.GetVersionUpdateRemindContentReq; +// import cn.axzo.nanopart.api.request.PageApplicationVersionReq; +// import cn.axzo.nanopart.api.request.UpdateApplicationVersionReq; +// import cn.axzo.nanopart.api.response.GetVersionUpdateRemindContentResp; +// import cn.axzo.nanopart.api.response.PageApplicationVersionResp; +// import cn.axzo.nanopart.server.service.ApplicationVersionService; +// import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import lombok.RequiredArgsConstructor; +// import lombok.extern.slf4j.Slf4j; +// import org.springframework.web.bind.annotation.RestController; +// +// /** +// * @author chenwenjian +// * @version 1.0 +// * @date 2024/4/3 16:39 +// */ +// @Slf4j +// @RestController +// @RequiredArgsConstructor +// public class ApplicationVersionController implements ApplicationVersionApi { +// +// private final ApplicationVersionService applicationVersionService; +// +// @Override +// public ApiResult create(CreateApplicationVersionReq req) { +// return ApiResult.ok(applicationVersionService.create(req)); +// } +// +// @Override +// public ApiResult update(UpdateApplicationVersionReq req) { +// applicationVersionService.update(req); +// return ApiResult.ok(); +// } +// +// @Override +// public ApiResult deleteById(Long id, Long personId) { +// applicationVersionService.deleteById(id, personId); +// return ApiResult.ok(); +// } +// +// @Override +// public ApiPageResult page(PageApplicationVersionReq req) { +// Page pageData = applicationVersionService.page(req); +// return ApiPageResult.ok(pageData); +// } +// +// @Override +// public ApiResult getVersionUpdateRemindContent(GetVersionUpdateRemindContentReq req) { +// return ApiResult.ok(applicationVersionService.getVersionUpdateRemindContent(req)); +// } +// } diff --git a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/BannerController.java b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/BannerController.java index 75b13590..e93d61c5 100644 --- a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/BannerController.java +++ b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/BannerController.java @@ -1,58 +1,58 @@ -package cn.axzo.nanopart.server.controller; - -import cn.axzo.framework.domain.web.result.ApiPageResult; -import cn.axzo.framework.domain.web.result.ApiResult; -import cn.axzo.nanopart.api.BannerApi; -import cn.axzo.nanopart.api.request.CreateBannerReq; -import cn.axzo.nanopart.api.request.DetailBannerReq; -import cn.axzo.nanopart.api.request.PageBannerReq; -import cn.axzo.nanopart.api.request.UpdateBannerReq; -import cn.axzo.nanopart.api.request.UpdateStatusReq; -import cn.axzo.nanopart.api.response.DetailBannerResp; -import cn.axzo.nanopart.api.response.PageBannerResp; -import cn.axzo.nanopart.server.service.BannerService; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author chenwenjian - * @version 1.0 - * @date 2024/4/3 16:30 - */ -@Slf4j -@RestController -@RequiredArgsConstructor -public class BannerController implements BannerApi { - - private final BannerService bannerService; - - @Override - public ApiPageResult page(PageBannerReq req) { - Page pageData = bannerService.page(req); - return ApiPageResult.ok(pageData); - } - - @Override - public ApiResult create(CreateBannerReq req) { - return ApiResult.ok(bannerService.create(req)); - } - - @Override - public ApiResult update(UpdateBannerReq req) { - bannerService.update(req); - return ApiResult.ok(); - } - - @Override - public ApiResult updateStatus(UpdateStatusReq req) { - bannerService.updateStatus(req); - return ApiResult.ok(); - } - - @Override - public ApiResult detail(DetailBannerReq req) { - return ApiResult.ok(bannerService.detail(req)); - } -} +// package cn.axzo.nanopart.server.controller; +// +// import cn.axzo.framework.domain.web.result.ApiPageResult; +// import cn.axzo.framework.domain.web.result.ApiResult; +// import cn.axzo.nanopart.api.BannerApi; +// import cn.axzo.nanopart.api.request.CreateBannerReq; +// import cn.axzo.nanopart.api.request.DetailBannerReq; +// import cn.axzo.nanopart.api.request.PageBannerReq; +// import cn.axzo.nanopart.api.request.UpdateBannerReq; +// import cn.axzo.nanopart.api.request.UpdateStatusReq; +// import cn.axzo.nanopart.api.response.DetailBannerResp; +// import cn.axzo.nanopart.api.response.PageBannerResp; +// import cn.axzo.nanopart.server.service.BannerService; +// import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import lombok.RequiredArgsConstructor; +// import lombok.extern.slf4j.Slf4j; +// import org.springframework.web.bind.annotation.RestController; +// +// /** +// * @author chenwenjian +// * @version 1.0 +// * @date 2024/4/3 16:30 +// */ +// @Slf4j +// @RestController +// @RequiredArgsConstructor +// public class BannerController implements BannerApi { +// +// private final BannerService bannerService; +// +// @Override +// public ApiPageResult page(PageBannerReq req) { +// Page pageData = bannerService.page(req); +// return ApiPageResult.ok(pageData); +// } +// +// @Override +// public ApiResult create(CreateBannerReq req) { +// return ApiResult.ok(bannerService.create(req)); +// } +// +// @Override +// public ApiResult update(UpdateBannerReq req) { +// bannerService.update(req); +// return ApiResult.ok(); +// } +// +// @Override +// public ApiResult updateStatus(UpdateStatusReq req) { +// bannerService.updateStatus(req); +// return ApiResult.ok(); +// } +// +// @Override +// public ApiResult detail(DetailBannerReq req) { +// return ApiResult.ok(bannerService.detail(req)); +// } +// } diff --git a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/BannerOperationLogController.java b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/BannerOperationLogController.java index b77fbd98..cc1328da 100644 --- a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/BannerOperationLogController.java +++ b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/BannerOperationLogController.java @@ -1,24 +1,24 @@ -package cn.axzo.nanopart.server.controller; - -import cn.axzo.framework.domain.web.result.ApiPageResult; -import cn.axzo.nanopart.api.BannerOperationLogApi; -import cn.axzo.nanopart.api.request.PageBannerOperationLogReq; -import cn.axzo.nanopart.api.response.PageBannerOperationLogResp; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author chenwenjian - * @version 1.0 - * @date 2024/4/3 16:40 - */ -@Slf4j -@RestController -@RequiredArgsConstructor -public class BannerOperationLogController implements BannerOperationLogApi { - @Override - public ApiPageResult page(PageBannerOperationLogReq req) { - return null; - } -} +// package cn.axzo.nanopart.server.controller; +// +// import cn.axzo.framework.domain.web.result.ApiPageResult; +// import cn.axzo.nanopart.api.BannerOperationLogApi; +// import cn.axzo.nanopart.api.request.PageBannerOperationLogReq; +// import cn.axzo.nanopart.api.response.PageBannerOperationLogResp; +// import lombok.RequiredArgsConstructor; +// import lombok.extern.slf4j.Slf4j; +// import org.springframework.web.bind.annotation.RestController; +// +// /** +// * @author chenwenjian +// * @version 1.0 +// * @date 2024/4/3 16:40 +// */ +// @Slf4j +// @RestController +// @RequiredArgsConstructor +// public class BannerOperationLogController implements BannerOperationLogApi { +// @Override +// public ApiPageResult page(PageBannerOperationLogReq req) { +// return null; +// } +// } diff --git a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/MaterialController.java b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/MaterialController.java index f6a12d2f..b5a36755 100644 --- a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/MaterialController.java +++ b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/controller/MaterialController.java @@ -1,22 +1,14 @@ package cn.axzo.nanopart.server.controller; -import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.nanopart.api.MaterialApi; -import cn.axzo.nanopart.api.request.CreateMaterialReq; -import cn.axzo.nanopart.api.request.DetailMaterialReq; import cn.axzo.nanopart.api.request.ListMaterialByBannerCodeReq; -import cn.axzo.nanopart.api.request.PageMaterialReq; -import cn.axzo.nanopart.api.request.UpdateMaterialReq; -import cn.axzo.nanopart.api.request.UpdateStatusReq; import cn.axzo.nanopart.api.response.MaterialResp; -import cn.axzo.nanopart.api.response.PageMaterialResp; -import cn.axzo.nanopart.server.service.MaterialService; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RestController; +import java.util.Collections; import java.util.List; /** @@ -29,38 +21,38 @@ import java.util.List; @RequiredArgsConstructor public class MaterialController implements MaterialApi { - private final MaterialService materialService; - - @Override - public ApiPageResult page(PageMaterialReq req) { - Page pageData = materialService.page(req); - return ApiPageResult.ok(pageData); - } - - @Override - public ApiResult create(CreateMaterialReq req) { - return ApiResult.ok(materialService.create(req)); - } - - @Override - public ApiResult update(UpdateMaterialReq req) { - materialService.update(req); - return ApiResult.ok(); - } - - @Override - public ApiResult updateStatus(UpdateStatusReq req) { - materialService.updateStatus(req); - return ApiResult.ok(); - } - - @Override - public ApiResult detail(DetailMaterialReq req) { - return ApiResult.ok(materialService.detail(req)); - } + // private final MaterialService materialService; + // + // @Override + // public ApiPageResult page(PageMaterialReq req) { + // Page pageData = materialService.page(req); + // return ApiPageResult.ok(pageData); + // } + // + // @Override + // public ApiResult create(CreateMaterialReq req) { + // return ApiResult.ok(materialService.create(req)); + // } + // + // @Override + // public ApiResult update(UpdateMaterialReq req) { + // materialService.update(req); + // return ApiResult.ok(); + // } + // + // @Override + // public ApiResult updateStatus(UpdateStatusReq req) { + // materialService.updateStatus(req); + // return ApiResult.ok(); + // } + // + // @Override + // public ApiResult detail(DetailMaterialReq req) { + // return ApiResult.ok(materialService.detail(req)); + // } @Override public ApiResult> listMaterialByBannerCode(ListMaterialByBannerCodeReq req) { - return ApiResult.ok(materialService.listMaterialByBannerCode(req)); + return ApiResult.ok(Collections.emptyList()); } } diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/NanopartApplication.java b/nanopart-server/src/main/java/cn/axzo/nanopart/NanopartApplication.java index 3481d504..521bb1b8 100644 --- a/nanopart-server/src/main/java/cn/axzo/nanopart/NanopartApplication.java +++ b/nanopart-server/src/main/java/cn/axzo/nanopart/NanopartApplication.java @@ -1,42 +1,22 @@ package cn.axzo.nanopart; import cn.axzo.nanopart.config.RocketMQEventConfiguration; -import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; -import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.Import; -import org.springframework.core.env.Environment; -@Slf4j @MapperScan(value = {"cn.axzo.**.mapper"}) @SpringBootApplication @EnableFeignClients(basePackages = { - "cn.axzo.nanopart.api" + "cn.axzo" }) @EnableAspectJAutoProxy() @Import(RocketMQEventConfiguration.class) public class NanopartApplication { public static void main(String[] args) { - ConfigurableApplicationContext run = SpringApplication.run(NanopartApplication.class, args); - Environment env = run.getEnvironment(); - log.info( - "--------------------------------------------------------------------------------------------------------------------\n" + - "Application 【{}】 is running on 【{}】 environment!\n" + - "Api Local: \thttp://127.0.0.1:{}\n" + - "Mysql: \t{}\t username:{}\n" + - "Redis: \t{}:{}\t database:{}\n", - env.getProperty("spring.application.name"), - env.getProperty("spring.profiles.active"), - env.getProperty("server.port"), - env.getProperty("spring.datasource.url"), - env.getProperty("spring.datasource.username"), - env.getProperty("spring.redis.host"), - env.getProperty("spring.redis.port"), - env.getProperty("spring.redis.database") + - "\n----------------------------------------------------------"); + SpringApplication.run(NanopartApplication.class, args); } } diff --git a/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/OpMessageConfigServiceImpl.java b/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/OpMessageConfigServiceImpl.java index 16fa111d..09721551 100644 --- a/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/OpMessageConfigServiceImpl.java +++ b/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/OpMessageConfigServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.util.Collections; import java.util.List; import java.util.Map; @@ -36,7 +37,7 @@ public class OpMessageConfigServiceImpl extends ServiceImpl Date: Wed, 17 Apr 2024 14:33:04 +0800 Subject: [PATCH 12/12] =?UTF-8?q?fix-=E7=A7=BB=E9=99=A4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=9C=AA=E4=BD=BF=E7=94=A8=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/BlackAndWhiteListMapper.java | 11 ------ .../server/mq/producer/BlackProducer.java | 34 ------------------- .../mapper/BlackAndWhiteListMapper.xml | 18 ---------- 3 files changed, 63 deletions(-) delete mode 100644 nanopart-server/src/main/resources/mapper/BlackAndWhiteListMapper.xml diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java index 73a06d46..fca0da3c 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java @@ -17,15 +17,4 @@ import java.util.List; @Mapper public interface BlackAndWhiteListMapper extends BaseMapper { - /** - * 获取getField中字段的值 - * - * @param type - * @param getField 获取json中指定字段 - * @param modules - * @return - */ - List getParamValue(@Param("type") Integer type, - @Param("getField") String getField, - @Param("modules") List modules); } diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java index 122351b3..3a439d73 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/mq/producer/BlackProducer.java @@ -17,40 +17,6 @@ import java.util.List; @Service public class BlackProducer implements InitializingBean { private static EventProducer eventProducer; - - public static void send(MQEventEnum mqEventEnum, BaseEntity baseEntity, String operatorId){ - log.info(JSON.toJSONString(baseEntity)); - if(mqEventEnum == null){ - throw new ServiceException("无法正确发送mq: mqEventEnum不能为空"); - } - if(baseEntity == null){ - log.error("消息实体为空不能发送mq mqEventEnum {}", mqEventEnum); - return; - } - if(baseEntity.getId() == null){ - throw new ServiceException("无法正确发送mq: 主健id不能为空"); - } - //生产消息 - eventProducer.send(Event.builder() - .shardingKey(String.valueOf(baseEntity.getId())) - .targetId(String.valueOf(baseEntity.getId())) - .targetType(mqEventEnum.getModel()) - .eventCode(mqEventEnum.getEventCode()) - .eventModule(mqEventEnum.getModel()) - .eventName(mqEventEnum.getTag()) - .operatorId(operatorId) - .data(baseEntity) - .build()); - } - - public static void send(MQEventEnum mqEventEnum, BaseEntity baseEntity){ - send(mqEventEnum, baseEntity, null); - } - - public static void sendBatch(MQEventEnum mqEventEnum, List> baseEntities){ - baseEntities.forEach(baseEntity -> send(mqEventEnum, baseEntity, null)); - } - public static void send(MQEventEnum mqEventEnum, String data) { if(mqEventEnum == null){ throw new ServiceException("无法正确发送mq: mqEventEnum不能为空"); diff --git a/nanopart-server/src/main/resources/mapper/BlackAndWhiteListMapper.xml b/nanopart-server/src/main/resources/mapper/BlackAndWhiteListMapper.xml deleted file mode 100644 index 52a4415a..00000000 --- a/nanopart-server/src/main/resources/mapper/BlackAndWhiteListMapper.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - \ No newline at end of file