diff --git a/black-list/black-list-api-impl/pom.xml b/black-list/black-list-api-impl/pom.xml
deleted file mode 100644
index 7a7a0177..00000000
--- a/black-list/black-list-api-impl/pom.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
- 4.0.0
-
- cn.axzo.nanopart.black-list
- black-list
- ${revision}
-
-
- cn.axzo.nanopart.black-list.api.impl
- black-list-api-impl
- jar
-
- black-list-api-impl
-
diff --git a/black-list/black-list-api/pom.xml b/black-list/black-list-api/pom.xml
index 91f1a39b..5b75d317 100644
--- a/black-list/black-list-api/pom.xml
+++ b/black-list/black-list-api/pom.xml
@@ -12,4 +12,15 @@
jar
black-list-api
+
+
+
+ org.springframework.cloud
+ spring-cloud-openfeign-core
+
+
+ cn.axzo.framework
+ axzo-common-domain
+
+
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
new file mode 100644
index 00000000..ab78edc8
--- /dev/null
+++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/BlackAndWhiteListApi.java
@@ -0,0 +1,45 @@
+package cn.axzo.nanopart.api;
+
+import cn.axzo.framework.domain.web.result.ApiResult;
+import cn.axzo.nanopart.api.request.BlackAndWhiteListReq;
+import cn.axzo.nanopart.api.response.BlackAndWhiteListResp;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 16:28
+ * @description: 黑白名单api
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@FeignClient(name = "nanopart", url = "http://nanopart:8080")
+public interface BlackAndWhiteListApi {
+
+ /**
+ * 创建黑名单
+ * @param req
+ * @return
+ */
+ @PostMapping("api/black-list/create")
+ ApiResult create(@RequestBody @Validated BlackAndWhiteListReq req);
+
+ /**
+ * 删除黑名单
+ * @return
+ */
+ @PostMapping("api/black-list/delete")
+ ApiResult delete(@RequestBody @Validated BlackAndWhiteListReq req);
+
+ /**
+ * 查询黑名单
+ * @return
+ */
+ @PostMapping("api/black-list/query")
+ ApiResult> detail(@RequestBody @Validated BlackAndWhiteListReq req);
+
+}
diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/config/NanopartApiAutoConfiguration.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/config/NanopartApiAutoConfiguration.java
new file mode 100644
index 00000000..320110bd
--- /dev/null
+++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/config/NanopartApiAutoConfiguration.java
@@ -0,0 +1,16 @@
+package cn.axzo.nanopart.api.config;
+
+import cn.axzo.nanopart.api.constant.NanopartConstant;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 16:28
+ * @description:
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@EnableFeignClients(NanopartConstant.BASIC_FEIGN_PACKAGE)
+public class NanopartApiAutoConfiguration {
+
+}
diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/NanopartConstant.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/NanopartConstant.java
new file mode 100644
index 00000000..996d603a
--- /dev/null
+++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/constant/NanopartConstant.java
@@ -0,0 +1,14 @@
+package cn.axzo.nanopart.api.constant;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/14 9:38
+ * @description:
+ * @modifiedBy:
+ * @version: 1.0
+ */
+public class NanopartConstant {
+ public static final String BASIC_FEIGN_PACKAGE = "cn.axzo.nanopart.black_list.api";
+
+ public static final String PHONE_REGEXP = "^1[3456789]\\d{9}$";
+}
\ No newline at end of file
diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackAndWhiteListInReq.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackAndWhiteListInReq.java
new file mode 100644
index 00000000..7c336867
--- /dev/null
+++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackAndWhiteListInReq.java
@@ -0,0 +1,26 @@
+package cn.axzo.nanopart.api.request;
+
+
+import cn.axzo.nanopart.api.constant.NanopartConstant;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/14 17:23
+ * @description:
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@Data
+public class BlackAndWhiteListInReq {
+
+ @NotBlank(message = "模块名称不能为空格")
+ private String module;
+
+ @Pattern(regexp = NanopartConstant.PHONE_REGEXP,message = "手机号格式错误")
+ private String phone;
+}
diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackAndWhiteListReq.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackAndWhiteListReq.java
new file mode 100644
index 00000000..1890863a
--- /dev/null
+++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/request/BlackAndWhiteListReq.java
@@ -0,0 +1,21 @@
+package cn.axzo.nanopart.api.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Map;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 16:40
+ * @description:
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@Data
+public class BlackAndWhiteListReq {
+
+ @NotBlank(message = "模块名不能为空")
+ private String module;
+ private Map param;
+}
diff --git a/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/response/BlackAndWhiteListResp.java b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/response/BlackAndWhiteListResp.java
new file mode 100644
index 00000000..77dcb9f6
--- /dev/null
+++ b/black-list/black-list-api/src/main/java/cn/axzo/nanopart/api/response/BlackAndWhiteListResp.java
@@ -0,0 +1,36 @@
+package cn.axzo.nanopart.api.response;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 16:49
+ * @description:
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@Data
+public class BlackAndWhiteListResp {
+
+ private Long id;
+
+ /**
+ * 模块名
+ */
+ private String module;
+
+ /**
+ * 参数
+ */
+ private String param;
+
+ private Date createAt;
+
+ private Date updateAt;
+
+ private Long createBy;
+
+ private Long updateBy;
+}
diff --git a/black-list/black-list-api/src/main/resources/META-INF/spring.factories b/black-list/black-list-api/src/main/resources/META-INF/spring.factories
new file mode 100644
index 00000000..a5b624cd
--- /dev/null
+++ b/black-list/black-list-api/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+cn.axzo.nanopart.black_list.api.config.NanopartApiAutoConfiguration
\ No newline at end of file
diff --git a/black-list/black-list-dao/pom.xml b/black-list/black-list-dao/pom.xml
deleted file mode 100644
index 6af3eefa..00000000
--- a/black-list/black-list-dao/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
- 4.0.0
-
- cn.axzo.nanopart.black-list
- black-list
- ${revision}
-
-
- cn.axzo.nanopart.black-list.dao
- black-list-dao
- jar
-
- black-list-dao
-
-
diff --git a/black-list/black-list-service/pom.xml b/black-list/black-list-service/pom.xml
index b8cbdb77..62a9eadd 100644
--- a/black-list/black-list-service/pom.xml
+++ b/black-list/black-list-service/pom.xml
@@ -12,4 +12,26 @@
jar
black-list-service
+
+
+
+
+ cn.axzo.framework
+ axzo-mybatisplus-spring-boot-starter
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+
+
+ cn.axzo.nanopart
+ black-list-api
+ ${project.version}
+
+
+ cn.axzo.basics
+ basics-common
+
+
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
new file mode 100644
index 00000000..b7f84b19
--- /dev/null
+++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/controller/BlackAndWhiteListController.java
@@ -0,0 +1,40 @@
+package cn.axzo.nanopart.server.controller;
+
+
+import cn.axzo.framework.domain.web.result.ApiResult;
+import cn.axzo.nanopart.api.BlackAndWhiteListApi;
+import cn.axzo.nanopart.api.request.BlackAndWhiteListReq;
+import cn.axzo.nanopart.api.response.BlackAndWhiteListResp;
+import cn.axzo.nanopart.server.service.BlackAndWhiteListService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 17:59
+ * @description:
+ * @modifiedBy:
+ * @version: 1.0`
+ */
+@RestController
+@RequiredArgsConstructor
+public class BlackAndWhiteListController implements BlackAndWhiteListApi {
+
+ private final BlackAndWhiteListService blackAndWhiteListService;
+ @Override
+ public ApiResult create(BlackAndWhiteListReq req) {
+ return blackAndWhiteListService.create(req);
+ }
+
+ @Override
+ public ApiResult delete(BlackAndWhiteListReq req) {
+ return blackAndWhiteListService.delete(req);
+ }
+
+ @Override
+ public ApiResult> detail(BlackAndWhiteListReq req) {
+ return blackAndWhiteListService.detail(req);
+ }
+}
diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/entity/SaasBlackWhiteList.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/entity/SaasBlackWhiteList.java
new file mode 100644
index 00000000..4f5c7ec3
--- /dev/null
+++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/entity/SaasBlackWhiteList.java
@@ -0,0 +1,38 @@
+package cn.axzo.nanopart.server.dao.entity;
+
+
+import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 15:19
+ * @description: 黑白名单表对应实体
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@Data
+@TableName(value = "saas_black_white_list",autoResultMap = true)
+public class SaasBlackWhiteList extends BaseEntity {
+
+ /**
+ * 模块名
+ */
+ private String module;
+
+ /**
+ * 参数
+ */
+ @TableField(value = "param",typeHandler = JacksonTypeHandler.class)
+ private Map param;
+
+ private Long createBy;
+
+ private Long updateBy;
+
+}
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
new file mode 100644
index 00000000..e1196f79
--- /dev/null
+++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java
@@ -0,0 +1,16 @@
+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;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 16:17
+ * @description: 黑白名单Mapper
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@Mapper
+public interface BlackAndWhiteListMapper extends BaseMapper {
+}
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
new file mode 100644
index 00000000..f5ec9008
--- /dev/null
+++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/repository/BlackAndWhiteListRepository.java
@@ -0,0 +1,56 @@
+package cn.axzo.nanopart.server.dao.repository;
+
+
+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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 16:23
+ * @description: 黑白名单数据库访问层
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@Repository
+@RequiredArgsConstructor
+public class BlackAndWhiteListRepository extends ServiceImpl {
+
+ private final BlackAndWhiteListMapper blackAndWhiteListMapper;
+
+ public void delete(BlackAndWhiteListReq req) {
+ lambdaUpdate().eq(StringUtils.isNotBlank(req.getModule()),SaasBlackWhiteList::getModule,req.getModule())
+ .eq(SaasBlackWhiteList::getParam,req.getParam())
+ .set(SaasBlackWhiteList::getIsDelete,1)
+ .update();
+ }
+
+ public List detail(BlackAndWhiteListReq req) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq(StringUtils.isNotBlank(req.getModule()),"module",req.getModule());
+ buildQueryWrapper(queryWrapper, req.getParam(), "");
+ List blackWhiteLists = blackAndWhiteListMapper.selectList(queryWrapper);
+ return blackWhiteLists;
+ }
+
+ private void buildQueryWrapper(QueryWrapper queryWrapper, Map params, String prefix) {
+ params.entrySet().stream().forEach(entry -> {
+ String key = entry.getKey();
+ Object value = entry.getValue();
+ String fullKey = prefix.isEmpty() ? key : prefix + "." + key;
+ if (value instanceof Map) {
+ buildQueryWrapper(queryWrapper, (Map) value, fullKey);
+ } 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
new file mode 100644
index 00000000..0997dea8
--- /dev/null
+++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/BlackAndWhiteListService.java
@@ -0,0 +1,25 @@
+package cn.axzo.nanopart.server.service;//package cn.axzo.nanopart.black_list.service;
+
+import cn.axzo.framework.domain.web.result.ApiResult;
+import cn.axzo.nanopart.api.request.BlackAndWhiteListReq;
+import cn.axzo.nanopart.api.response.BlackAndWhiteListResp;
+
+import java.util.List;
+
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 17:00
+ * @description:
+ * @modifiedBy:
+ * @version: 1.0
+ */
+public interface BlackAndWhiteListService {
+
+ ApiResult create(BlackAndWhiteListReq req);
+
+ ApiResult delete(BlackAndWhiteListReq req);
+
+ ApiResult> detail(BlackAndWhiteListReq 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
new file mode 100644
index 00000000..2aede967
--- /dev/null
+++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/service/impl/BlackAndWhiteListServiceImpl.java
@@ -0,0 +1,53 @@
+package cn.axzo.nanopart.server.service.impl;
+
+import cn.axzo.basics.common.BeanMapper;
+import cn.axzo.framework.domain.web.result.ApiResult;
+import cn.axzo.nanopart.api.request.BlackAndWhiteListReq;
+import cn.axzo.nanopart.api.response.BlackAndWhiteListResp;
+import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList;
+import cn.axzo.nanopart.server.dao.repository.BlackAndWhiteListRepository;
+import cn.axzo.nanopart.server.service.BlackAndWhiteListService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.json.JSONObject;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author: chenwenjian
+ * @date: 2023/8/11 17:04
+ * @description: 黑白名单service层
+ * @modifiedBy:
+ * @version: 1.0
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class BlackAndWhiteListServiceImpl implements BlackAndWhiteListService {
+
+ private final BlackAndWhiteListRepository blackAndWhiteListRepository;
+
+ @Override
+ public ApiResult create(BlackAndWhiteListReq req) {
+ SaasBlackWhiteList blackWhiteList = BeanMapper.copyBean(req, SaasBlackWhiteList.class);
+ blackAndWhiteListRepository.save(blackWhiteList);
+ return ApiResult.ok(blackWhiteList.getId());
+ }
+
+ @Override
+ public ApiResult delete(BlackAndWhiteListReq req) {
+ blackAndWhiteListRepository.delete(req);
+ return ApiResult.ok();
+ }
+
+ @Override
+ public ApiResult> detail(BlackAndWhiteListReq req) {
+ List saasBlackWhiteLists = blackAndWhiteListRepository.detail(req);
+ List blackAndWhiteListResps = BeanMapper.copyList(saasBlackWhiteLists, BlackAndWhiteListResp.class, (saasBlackWhiteList, blackAndWhiteListResp) -> {
+ JSONObject jsonObject = new JSONObject(saasBlackWhiteList.getParam());
+ blackAndWhiteListResp.setParam(jsonObject.toString());
+ });
+ return ApiResult.ok(blackAndWhiteListResps);
+ }
+}
\ No newline at end of file
diff --git a/black-list/pom.xml b/black-list/pom.xml
index fcf507c3..c9135890 100644
--- a/black-list/pom.xml
+++ b/black-list/pom.xml
@@ -19,4 +19,11 @@
black-list-service
+
+
+
+
+
+
+
diff --git a/nanopart-api/pom.xml b/nanopart-api/pom.xml
deleted file mode 100644
index b0b60596..00000000
--- a/nanopart-api/pom.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- 4.0.0
-
-
- nanopart
- cn.axzo.nanopart
- 1.0.0-SNAPSHOT
- ../pom.xml
-
-
- nanopart-api
- jar
- nanopart-api
-
-
-
- cn.axzo.framework
- axzo-consumer-spring-cloud-starter
-
-
-
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/MicroArchetypeClient.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/MicroArchetypeClient.java
deleted file mode 100644
index 4e5325ad..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/MicroArchetypeClient.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package cn.axzo.nanopart.client;
-
-import cn.axzo.framework.domain.page.PageQO;
-import cn.axzo.framework.domain.page.PageResp;
-import cn.axzo.framework.domain.web.ApiException;
-import cn.axzo.framework.domain.web.result.ApiPageResult;
-import cn.axzo.framework.domain.web.result.ApiResult;
-import cn.axzo.nanopart.client.feign.MicroArchetypeApi;
-import cn.axzo.nanopart.client.model.NewUserReq;
-import cn.axzo.nanopart.client.model.QueryUserReq;
-import cn.axzo.nanopart.client.model.UpdateUserReq;
-import cn.axzo.nanopart.client.model.UserRes;
-import cn.azxo.framework.common.model.CommonResponse;
-import lombok.RequiredArgsConstructor;
-
-import javax.validation.Valid;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/17
- * @Description:
- */
-@RequiredArgsConstructor
-public class MicroArchetypeClient {
-
- private final MicroArchetypeApi api;
-
- /**
- * 老项目迁移使用
- */
- public UserRes createUser(@Valid NewUserReq req) {
- CommonResponse apiResult = api.createUser(req);
- if (apiResult.getCode() == 200) {
- return apiResult.getData();
- }
- throw new RuntimeException(apiResult.getMsg());
- }
-
- /**
- * 新项目使用
- */
- public UserRes updateUser(Long id, @Valid UpdateUserReq req) {
- ApiResult apiResult = api.updateUser(id, req);
- if (apiResult.isSuccess()) {
- return apiResult.getData();
- }
- throw new ApiException(apiResult.getRespCode());
- }
-
- public PageResp fetchUsers(QueryUserReq req, PageQO page) {
- ApiPageResult apiPageResult = api.fetchUsers(req.toQueryMap(), page);
- if (apiPageResult.isSuccess()) {
- return apiPageResult.toPage();
- }
- throw new ApiException(apiPageResult.getRespCode());
- }
-}
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/config/MicroArchetypeClientAutoConfiguration.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/config/MicroArchetypeClientAutoConfiguration.java
deleted file mode 100644
index 784e8982..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/config/MicroArchetypeClientAutoConfiguration.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.axzo.nanopart.client.config;
-
-import cn.axzo.nanopart.client.feign.MicroArchetypeApi;
-import cn.axzo.nanopart.client.MicroArchetypeClient;
-import cn.axzo.nanopart.client.feign.MicroArchetypeFallbackFactory;
-import org.springframework.cloud.openfeign.EnableFeignClients;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/17
- * @Description:
- */
-@EnableFeignClients(basePackages = {"cn.axzo.nanopart.client"})
-@Configuration
-public class MicroArchetypeClientAutoConfiguration {
-
- @Bean
- public MicroArchetypeFallbackFactory microArchetypeFallbackFactory() {
- return new MicroArchetypeFallbackFactory();
- }
-
- @Bean
- public MicroArchetypeClient microArchetypeClient(MicroArchetypeApi microArchetypeApi) {
- return new MicroArchetypeClient(microArchetypeApi);
- }
-
-
-}
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeApi.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeApi.java
deleted file mode 100644
index 544ded99..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeApi.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cn.axzo.nanopart.client.feign;
-
-import cn.axzo.framework.context.client.QueryMap;
-import cn.axzo.framework.domain.page.PageQO;
-import cn.axzo.framework.domain.web.result.ApiPageResult;
-import cn.axzo.framework.domain.web.result.ApiResult;
-import cn.axzo.nanopart.client.model.NewUserReq;
-import cn.axzo.nanopart.client.model.UpdateUserReq;
-import cn.axzo.nanopart.client.model.UserRes;
-import cn.azxo.framework.common.model.CommonResponse;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/17
- * @Description:
- */
-@FeignClient(name = "nanopart", url = "http://localhost:8899", fallbackFactory = MicroArchetypeFallbackFactory.class)
-public interface MicroArchetypeApi {
-
- @PostMapping(value = "/api/v1/users", consumes = APPLICATION_JSON_VALUE)
- CommonResponse createUser(@RequestBody NewUserReq req);
-
- @PutMapping(value = "/api/v2/users/{id}", consumes = APPLICATION_JSON_VALUE)
- ApiResult updateUser(@PathVariable("id") Long id, @RequestBody UpdateUserReq req);
-
- @GetMapping(value = "/api/v2/users")
- ApiPageResult fetchUsers(@RequestParam Map query, PageQO page);
-}
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeApiFallback.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeApiFallback.java
deleted file mode 100644
index ad0bb85b..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeApiFallback.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package cn.axzo.nanopart.client.feign;
-
-import cn.axzo.framework.client.feign.FeignFallback;
-import cn.axzo.framework.domain.page.PageQO;
-import cn.axzo.framework.domain.web.result.ApiPageResult;
-import cn.axzo.framework.domain.web.result.ApiResult;
-import cn.axzo.framework.jackson.utility.JSON;
-import cn.axzo.nanopart.client.model.NewUserReq;
-import cn.axzo.nanopart.client.model.UpdateUserReq;
-import cn.axzo.nanopart.client.model.UserRes;
-import cn.azxo.framework.common.model.CommonResponse;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.Map;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/17
- * @Description:
- */
-@Slf4j
-@RequiredArgsConstructor
-public class MicroArchetypeApiFallback implements MicroArchetypeApi {
-
- private final FeignFallback fallback;
-
- /**
- * 老项目迁移使用
- * @param req
- * @return
- */
- @Override
- public CommonResponse createUser(NewUserReq req) {
- log.error("[nanopart-api] createUser fallback", fallback.getCause());
- return CommonResponse.error("创建用户失败");
- }
-
- /**
- * 新项目推荐使用
- */
- @Override
- public ApiResult updateUser(Long id, UpdateUserReq req) {
- log.error("[nanopart-api] updateUser fallback", fallback.getCause());
- return fallback.resp();
- }
-
- @Override
- public ApiPageResult fetchUsers(Map query, PageQO page) {
- log.error("[nanopart-api] fetchUsers fallback", fallback.getCause());
- return fallback.pageResp();
- }
-}
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeFallbackFactory.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeFallbackFactory.java
deleted file mode 100644
index f5dffbc0..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/feign/MicroArchetypeFallbackFactory.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.axzo.nanopart.client.feign;
-
-import cn.axzo.framework.client.feign.FeignFallback;
-import cn.axzo.framework.domain.web.code.IRespCode;
-import cn.axzo.framework.domain.web.code.RespCode;
-import feign.hystrix.FallbackFactory;
-import org.springframework.stereotype.Component;
-
-@Component
-public class MicroArchetypeFallbackFactory implements FallbackFactory {
-
- // TODO: 2022/11/3 100-调整为具体的项目编号,XXX-调整为项目名
- private final IRespCode respCode = new RespCode("100" + "91001", "XXX服务不可用");
-
- @Override
- public MicroArchetypeApiFallback create(Throwable cause) {
- return new MicroArchetypeApiFallback(new FeignFallback(cause, respCode));
- }
-}
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/NewUserReq.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/NewUserReq.java
deleted file mode 100644
index 27cd1db5..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/NewUserReq.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.axzo.nanopart.client.model;
-
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/2
- * @Description:
- */
-@Data
-public class NewUserReq {
-
- @NotBlank(message = "名称不能为空")
- private String name;
-
- @NotNull
- private Integer sex;
-
- private Integer age;
-
- private String phone;
-
- private String email;
-
- private String address;
-}
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/QueryUserReq.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/QueryUserReq.java
deleted file mode 100644
index 62eae4a2..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/QueryUserReq.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.axzo.nanopart.client.model;
-
-import cn.axzo.framework.context.client.IQueryMap;
-import cn.axzo.framework.context.client.QueryMap;
-import lombok.Data;
-
-@Data
-public class QueryUserReq implements IQueryMap {
-
- private Long id;
-
- private String name;
-
- private String phone;
-
- private String email;
-
- @Override
- public void append(QueryMap.Builder builder) {
- builder.put("id", id).put("name", name).put("phone", phone).put("email", email);
- }
-}
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/UpdateUserReq.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/UpdateUserReq.java
deleted file mode 100644
index 0192e689..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/UpdateUserReq.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cn.axzo.nanopart.client.model;
-
-import lombok.Data;
-
-@Data
-public class UpdateUserReq {
-
- private String name;
-
- private Integer sex;
-
- private Integer age;
-
- private String phone;
-
- private String email;
-
- private String address;
-}
diff --git a/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/UserRes.java b/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/UserRes.java
deleted file mode 100644
index 9431ab94..00000000
--- a/nanopart-api/src/main/java/cn/axzo/nanopart/client/model/UserRes.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package cn.axzo.nanopart.client.model;
-
-import lombok.Data;
-
-@Data
-public class UserRes {
-
- private Long id;
-
- private String name;
-
- private Integer sex;
-
- private Integer age;
-
- private String phone;
-
- private String email;
-
- private String address;
-}
diff --git a/nanopart-api/src/main/resources/META-INF/spring.factories b/nanopart-api/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index 928cf436..00000000
--- a/nanopart-api/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,2 +0,0 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-cn.axzo.nanopart.client.config.MicroArchetypeClientAutoConfiguration
\ No newline at end of file
diff --git a/nanopart-api/src/test/java/cn/axzo/maven/archetype/client/AppTest.java b/nanopart-api/src/test/java/cn/axzo/maven/archetype/client/AppTest.java
deleted file mode 100644
index 7d836fa0..00000000
--- a/nanopart-api/src/test/java/cn/axzo/maven/archetype/client/AppTest.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.axzo.maven.archetype.client;
-
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-/**
- * Unit test for simple App.
- */
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class AppTest {
-
-}
diff --git a/nanopart-server/pom.xml b/nanopart-server/pom.xml
index 356eb78f..c0144eab 100644
--- a/nanopart-server/pom.xml
+++ b/nanopart-server/pom.xml
@@ -1,12 +1,12 @@
-
-
+
+ 4.0.0
- nanopart
cn.axzo.nanopart
+ nanopart
${revision}
../pom.xml
- 4.0.0
nanopart-server
jar
@@ -50,5 +50,11 @@
cn.axzo.framework
axzo-logger-spring-boot-starter
+
+
+ cn.axzo.nanopart
+ black-list
+ 2.0.0-SNAPSHOT
+
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/NanopartApplication.java b/nanopart-server/src/main/java/cn/axzo/nanopart/NanopartApplication.java
similarity index 66%
rename from nanopart-server/src/main/java/cn/axzo/nanopart/server/NanopartApplication.java
rename to nanopart-server/src/main/java/cn/axzo/nanopart/NanopartApplication.java
index 97e12395..95adea04 100644
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/NanopartApplication.java
+++ b/nanopart-server/src/main/java/cn/axzo/nanopart/NanopartApplication.java
@@ -1,4 +1,4 @@
-package cn.axzo.nanopart.server;
+package cn.axzo.nanopart;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
@@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan(value = {"cn.axzo.**.mapper"})
@SpringBootApplication
public class NanopartApplication {
- public static void main(String[] args) {
- SpringApplication.run(NanopartApplication.class, args);
- }
+ public static void main(String[] args) {
+ SpringApplication.run(NanopartApplication.class, args);
+ }
}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/enums/ErrorCode.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/enums/ErrorCode.java
deleted file mode 100644
index ed0c5229..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/enums/ErrorCode.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package cn.axzo.nanopart.server.common.enums;
-
-import cn.axzo.framework.domain.web.code.IProjectRespCode;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description: 响应码规范:一共8位,取值范围0~9,3位项目编号(首位不能为0)+2位模块编号+3位自定义编号
- */
-@Getter
-@AllArgsConstructor
-public enum ErrorCode implements IProjectRespCode {
-
- USER_NOT_EXISTS("01001", "用户不存在,id=%s"),
- USER_PHONE_EMAIL_IS_NULL("01002", "电话和邮箱不能都为空");
-
- private String code;
- private String message;
-
- @Override
- public String getProjectCode() {
- // 根据不同项目进行项目编码调整,可联系框架组获取项目编号(首位不能为0)
- return "100";
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/enums/ResultCode.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/enums/ResultCode.java
deleted file mode 100644
index 3f0dd443..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/enums/ResultCode.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package cn.axzo.nanopart.server.common.enums;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description:
- */
-public enum ResultCode {
- /**
- * 成功 [GET]
- */
- SUCCESS(200),
- /**
- * [POST/PUT/PATCH] 用户新建或修改数据成功
- */
- CREATED(201),
- /**
- * [*] 标识一个请求已经进入后台排队 (异步任务)
- */
- ACCEPTED(202),
- /**
- * [DELETE]: 用户删除数据成功
- */
- NO_CONTENT(204),
- /**
- * [POST/PUT/PATCH] 用户发出的请求有错误, 服务器没有进行新建或修改数据的操作, 该操作是幂等的.
- */
- FAIL(400),
- /**
- * [*] 标识没有权限 (令牌、用户名、密码错误)
- */
- UNAUTHORIZED(401),
- /**
- * [*] 标识用户得到授权(与401错误相对), 但是访问是被禁止的
- */
- FORBIDDEN(403),
- /**
- * [*] 用户发出的请求针对的是不存在的记录, 服务器没有进行操作
- */
- NOT_FOUND(404),
- /**
- * [GET] 用户请求的格式不可得 (比如用户请求JSON格式, 但是只有XML格式)
- */
- NOT_ACCEPTABLE(406),
- /**
- * [GET] 用户请求的资源被永久删除, 且不会再得到
- */
- GONE(410),
- /**
- * [POST/PUT/PATCH] 当创建一个对象时, 发生一个验证错误646
- */
- UNPROCESSABLE_ENTITY(422),
- /**
- * 服务器内部错误
- */
- INTERNAL_SERVER_ERROR(9999),
- /**
- * 通用业务异常
- */
- SERVICE_EXCEPTION_ERROR(9998),
-
- /**
- * ####业务的响应码####
- * 按业务依次划分 :
- * 一共6位, 第6位是业务代码 第1-5位响应码, 按业务不同码不同
- * #100000 全局级别
- */
-
- /**
- * 100001 当前用户被强制下线
- */
- CUSTOM_100001(100001),
- /**
- * 确认弹窗响应码
- */
- CUSTOM_100002(100002);
-
- public int code;
-
- ResultCode(int code) {
- this.code = code;
- }
-
- public int getCode() {
- return code;
- }
-
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/util/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/util/package-info.java
deleted file mode 100644
index e1b9ce42..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/common/util/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.common.util;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/filter/HttpTraceLogFilter.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/filter/HttpTraceLogFilter.java
deleted file mode 100644
index df9d806a..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/filter/HttpTraceLogFilter.java
+++ /dev/null
@@ -1,259 +0,0 @@
-package cn.axzo.nanopart.server.config.filter;
-
-import cn.azxo.framework.common.constatns.Constants;
-import cn.azxo.framework.common.utils.LogUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONException;
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.annotation.JSONField;
-import com.google.common.base.Strings;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
-import org.apache.skywalking.apm.toolkit.trace.Trace;
-import org.apache.skywalking.apm.toolkit.trace.TraceContext;
-import org.slf4j.MDC;
-import org.springframework.core.Ordered;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Component;
-import org.springframework.web.filter.OncePerRequestFilter;
-import org.springframework.web.util.ContentCachingRequestWrapper;
-import org.springframework.web.util.ContentCachingResponseWrapper;
-import org.springframework.web.util.WebUtils;
-
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.*;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/12/6 14:48
- * @Description: Http接口日志记录
- */
-@Slf4j
-@Component
-public class HttpTraceLogFilter extends OncePerRequestFilter implements Ordered {
-
- private static final String X_REQUEST_ID = "x-request-id";
-
- @Override
- public int getOrder() {
- return Ordered.LOWEST_PRECEDENCE - 10;
- }
-
- @Override
- @Trace(operationName = "HttpTraceLogFilter")
- protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
- FilterChain filterChain) throws ServletException, IOException {
- String uri = request.getRequestURI();
- String contextPath = request.getContextPath();
- String url = uri.substring(contextPath.length());
- //swagger 跳过
- if (url.contains("api-docs") || url.contains("swagger") || url.contains("checkDeath")) {
- filterChain.doFilter(request, response);
- return;
- }
- //静态资源 跳过
- if (url.contains(".")) {
- filterChain.doFilter(request, response);
- return;
- }
- if (!(request instanceof ContentCachingRequestWrapper)) {
- request = new ContentCachingRequestWrapper(request);
- }
- if (!(response instanceof ContentCachingResponseWrapper)) {
- response = new ContentCachingResponseWrapper(response);
- }
-
- String requestId = request.getHeader(X_REQUEST_ID);
- if (Strings.isNullOrEmpty(requestId)) {
- MDC.put(X_REQUEST_ID, getTraceId());
- } else {
- MDC.put(X_REQUEST_ID, requestId);
- }
- String ctxLogId = request.getHeader(Constants.CTX_LOG_ID_MDC);
- if (Strings.isNullOrEmpty(ctxLogId)) {
- MDC.put(Constants.CTX_LOG_ID_MDC, getTraceId());
- } else {
- MDC.put(Constants.CTX_LOG_ID_MDC, ctxLogId);
- }
-
- // 获取请求参数
- String parameter = null;
- String requestContentType = request.getHeader(HttpHeaders.CONTENT_TYPE);
- if (requestContentType != null) {
- if (requestContentType.startsWith(MediaType.APPLICATION_JSON_VALUE)) {
- //Json
- WrappedHttpServletRequest requestWrapper = new WrappedHttpServletRequest(request);
- parameter = getRequestBody(requestWrapper);
- request = requestWrapper;
- } else if (requestContentType.startsWith(MediaType.APPLICATION_FORM_URLENCODED_VALUE)) {
- //普通表单提交
- parameter = JSON.toJSONString(request.getParameterMap());
- } else if (requestContentType.startsWith(MediaType.MULTIPART_FORM_DATA_VALUE)) {
- //文件表单提交
- parameter = JSON.toJSONString("文件类型");
- }
- } else if (url.startsWith("/api")) {
- if ("GET".equals(request.getMethod())) {
- parameter = JSON.toJSONString(request.getParameterMap());
- } else if ("POST".equals(request.getMethod())) {
- WrappedHttpServletRequest requestWrapper = new WrappedHttpServletRequest(request);
- parameter = getRequestBody(requestWrapper);
- request = requestWrapper;
- }
- } else if ("GET".equals(request.getMethod())) {
- parameter = JSON.toJSONString(request.getParameterMap());
- }
-
- long requestTime = System.currentTimeMillis();
- try {
- filterChain.doFilter(request, response);
- } finally {
- response.setHeader(Constants.CTX_LOG_ID_MDC, MDC.get(Constants.CTX_LOG_ID_MDC));
- response.setHeader(X_REQUEST_ID, MDC.get(Constants.CTX_LOG_ID_MDC));
-
- long latency = System.currentTimeMillis() - requestTime;
- String responseBody = null;
- int responseStatus = response.getStatus();
- String responseContentType = response.getContentType();
- //Json
- if (responseContentType != null && responseContentType
- .startsWith(MediaType.APPLICATION_JSON_VALUE)) {
- responseBody = getResponseBody(response);
- }
- //记录日志
- HttpTraceLog traceLog = new HttpTraceLog();
- traceLog.setRequestContentType(requestContentType);
- traceLog.setPath(url);
- traceLog.setMethod(request.getMethod());
- traceLog.setTimeTaken(latency);
- traceLog.setParameter(parameter);
- traceLog.setResponseContentType(responseContentType);
- traceLog.setStatus(responseStatus);
- traceLog.setResponseBody(responseBody);
- traceLog.setRequestHeaders(getRequestHeader(request));
- if (traceLog.getResponseCode() != null && traceLog.getResponseCode().equals(9999)) {
- LogUtil.error(LogUtil.ErrorLevel.P0, LogUtil.ErrorType.ERROR_BUSINESS, JSON.toJSONString(traceLog));
- } else if (traceLog.getResponseCode() != null && traceLog.getResponseCode().equals(9998)) {
- log.warn(JSON.toJSONString(traceLog));
- } else {
- log.info(JSON.toJSONString(traceLog));
- }
- updateResponse(response);
- // 清理链路id
- MDC.clear();
- }
- }
-
- private String getTraceId() {
- String contextTraceId = TraceContext.traceId();
- return Strings.isNullOrEmpty(contextTraceId)
- ? UUID.randomUUID().toString().replaceAll("-", "") : contextTraceId;
- }
-
- private String getRequestBody(WrappedHttpServletRequest request) throws IOException {
- // 获取请求参数
- return request.getRequestParams();
- }
-
- @Trace(operationName = "HttpTraceLogFilter#getResponseBody")
- private String getResponseBody(HttpServletResponse response) {
- String responseBody = null;
- ContentCachingResponseWrapper wrapper = WebUtils
- .getNativeResponse(response, ContentCachingResponseWrapper.class);
- if (wrapper != null) {
- responseBody = new String(wrapper.getContentAsByteArray(), StandardCharsets.UTF_8);
- }
- return responseBody;
- }
-
- public Map getRequestHeader(HttpServletRequest request) {
- Map ret = new HashMap<>();
- Enumeration headerNames = request.getHeaderNames();
- while (headerNames.hasMoreElements()) {
- String headerName = headerNames.nextElement();
- ret.put(headerName, request.getHeader(headerName));
- }
- return ret;
- }
-
- @Trace(operationName = "HttpTraceLogFilter#updateResponse")
- private void updateResponse(HttpServletResponse response) throws IOException {
- ContentCachingResponseWrapper responseWrapper = WebUtils
- .getNativeResponse(response, ContentCachingResponseWrapper.class);
- Objects.requireNonNull(responseWrapper).copyBodyToResponse();
- }
-
- @Data
- @Builder
- @AllArgsConstructor
- @NoArgsConstructor
- private static class HttpTraceLog {
-
- /**
- * 路径
- */
- private String path;
- /**
- * 参数
- */
- @JSONField(jsonDirect = true)
- private String parameter;
- private String requestContentType;
- private String responseContentType;
- private String method;
- private Long timeTaken;
- private Integer status;
- /**
- * 业务Code
- */
- private Integer responseCode;//业务返回码
- /**
- * 响应参数
- */
- @JSONField(jsonDirect = true)
- private String responseBody;
-
- @JSONField(jsonDirect = true)
- private Map requestHeaders;
-
- public String getParameter() {
- if (parameter == null) {
- return parameter;
- } else {
- return parameter.replaceAll("\n", "").replaceAll("\t", "").replaceAll("\r", "");
- }
- }
-
- public String getResponseBody() {
- if (responseBody == null) {
- return responseBody;
- } else {
- return responseBody.replaceAll("\n", "").replaceAll("\t", "").replaceAll("\r", "");
- }
- }
-
- public void setResponseBody(String responseBody) {
- if (StringUtils.isBlank(responseBody)) {
- return;
- }
- this.responseBody = responseBody;
- JSONObject responseJson = null;
- try {
- responseJson = JSONObject.parseObject(responseBody);
- this.responseCode = responseJson.getInteger("code");
- } catch (JSONException e) {
- log.debug("ResponseBody非JSON返回", e);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/filter/WrappedHttpServletRequest.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/filter/WrappedHttpServletRequest.java
deleted file mode 100644
index e70ed93a..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/filter/WrappedHttpServletRequest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package cn.axzo.nanopart.server.config.filter;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import javax.servlet.ReadListener;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-
-import org.apache.commons.io.IOUtils;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/12/6 14:56
- * @Description:
- */
-public class WrappedHttpServletRequest extends HttpServletRequestWrapper {
-
- private byte[] bytes;
- private WrappedServletInputStream wrappedServletInputStream;
-
- public WrappedHttpServletRequest(HttpServletRequest request) throws IOException {
- super(request);
- // 读取输入流里的请求参数,并保存到bytes里
- bytes = IOUtils.toByteArray(request.getInputStream());
- ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
- this.wrappedServletInputStream = new WrappedServletInputStream(byteArrayInputStream);
- // 很重要,把post参数重新写入请求流
- reWriteInputStream();
- }
-
- /**
- * 把参数重新写进请求里
- */
- public void reWriteInputStream() {
- wrappedServletInputStream
- .setStream(new ByteArrayInputStream(bytes != null ? bytes : new byte[0]));
- }
-
- @Override
- public ServletInputStream getInputStream() throws IOException {
- return wrappedServletInputStream;
- }
-
- @Override
- public BufferedReader getReader() throws IOException {
- return new BufferedReader(new InputStreamReader(wrappedServletInputStream));
- }
-
- /**
- * 获取post参数,可以自己再转为相应格式
- */
- public String getRequestParams() throws IOException {
- return new String(bytes, this.getCharacterEncoding());
- }
-
- private class WrappedServletInputStream extends ServletInputStream {
-
- private InputStream stream;
-
- public WrappedServletInputStream(InputStream stream) {
- this.stream = stream;
- }
-
- public void setStream(InputStream stream) {
- this.stream = stream;
- }
-
- @Override
- public int read() throws IOException {
- return stream.read();
- }
-
- @Override
- public boolean isFinished() {
- return true;
- }
-
- @Override
- public boolean isReady() {
- return true;
- }
-
- @Override
- public void setReadListener(ReadListener readListener) {
- }
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/package-info.java
deleted file mode 100644
index 924b5344..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/config/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.config;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/consumer/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/consumer/package-info.java
deleted file mode 100644
index a6a14700..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/consumer/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.consumer;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/HealthCheckController.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/HealthCheckController.java
deleted file mode 100644
index 4ae6f102..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/HealthCheckController.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.axzo.nanopart.server.controller;
-
-import cn.axzo.framework.web.http.ApiResponse;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/11/25 18:00
- * @Description: 健康检查接口
- */
-@RestController
-public class HealthCheckController {
-
- /**
- * 探活
- */
- @GetMapping("/checkDeath")
- public ApiResponse checkDeath() {
- return ApiResponse.ok("ok");
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/app/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/app/package-info.java
deleted file mode 100644
index 28c10eb2..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/app/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.controller.app;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/web/UserController.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/web/UserController.java
deleted file mode 100644
index c2083de6..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/web/UserController.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package cn.axzo.nanopart.server.controller.web;
-
-import cn.axzo.nanopart.server.service.user.UserService;
-import cn.axzo.nanopart.server.service.dto.request.user.NewUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UpdateUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UserQO;
-import cn.axzo.nanopart.server.service.dto.response.user.UserVO;
-import cn.azxo.framework.common.model.CommonPageResponse;
-import cn.azxo.framework.common.model.CommonResponse;
-import com.github.xiaoymin.knife4j.annotations.ApiSupport;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/2
- * @Description:
- */
-@Slf4j
-@Api(tags = "web-用户信息接口")
-@ApiSupport(author = "田立勇")
-@RequestMapping("/api/v1")
-@RestController
-@RequiredArgsConstructor
-public class UserController {
-
- private final UserService userService;
-
- @ApiOperation(value = "创建用户")
- @PostMapping("/users")
- public CommonResponse createUser(@Valid @RequestBody NewUserDTO dto) {
- log.info("REST request to save user : {}", dto);
- // 校验入参
- dto.valid();
- UserVO result = userService.create(dto);
- return CommonResponse.success(result);
- }
-
- @ApiOperation(value = "修改用户")
- @PutMapping("/users/{id}")
- public CommonResponse updateUser(@ApiParam("用户ID") @PathVariable Long id,
- @Valid @RequestBody UpdateUserDTO dto) {
- log.info("REST request to update user : {}", dto);
- // 校验入参
- dto.valid();
- UserVO result = userService.update(id, dto);
- return CommonResponse.success(result);
- }
-
- @ApiOperation("获取用户列表")
- @GetMapping("/users")
- public CommonResponse> getUsers(@Valid UserQO userQO) {
- CommonPageResponse results = userService.queryByPage(userQO);
- return CommonResponse.success(results);
- }
-
- @ApiOperation("获取用户详情")
- @GetMapping("/users/{id}")
- public CommonResponse getUser(@ApiParam("用户ID") @PathVariable Long id) {
- UserVO result = userService.getOne(id);
- return CommonResponse.success(result);
- }
-
- @ApiOperation("删除用户")
- @DeleteMapping("/users/{id}")
- public CommonResponse deleteUser(@ApiParam("用户ID") @PathVariable Long id) {
- userService.delete(id);
- return CommonResponse.success();
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/web/UserResource.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/web/UserResource.java
deleted file mode 100644
index fde27ffa..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/controller/web/UserResource.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package cn.axzo.nanopart.server.controller.web;
-
-import cn.axzo.framework.domain.page.PageQO;
-import cn.axzo.framework.domain.page.PageResp;
-import cn.axzo.framework.web.http.ApiResponse;
-import cn.axzo.framework.web.http.ApiPageResponse;
-import cn.axzo.nanopart.server.service.dto.request.user.NewUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UpdateUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UserQO1;
-import cn.axzo.nanopart.server.service.dto.response.user.UserVO;
-import cn.axzo.nanopart.server.service.user.UserService;
-import com.github.xiaoymin.knife4j.annotations.ApiSupport;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/10/28
- * @Description: 新项目搭建推荐方式
- */
-@Slf4j
-@Api(tags = "web-用户信息接口")
-@ApiSupport(author = "田立勇")
-@RequestMapping("/api/v2")
-@RestController
-@RequiredArgsConstructor
-public class UserResource {
-
- private final UserService userService;
-
- @ApiOperation(value = "创建用户")
- @PostMapping("/users")
- public ApiResponse createUser(@Valid @RequestBody NewUserDTO dto) {
- log.info("REST request to save user : {}", dto);
- // 校验入参
- dto.valid();
- UserVO result = userService.create(dto);
- return ApiResponse.ok(result);
- }
-
- @ApiOperation(value = "修改用户")
- @PutMapping("/users/{id}")
- public ApiResponse updateUser(@ApiParam("用户ID") @PathVariable Long id,
- @Valid @RequestBody UpdateUserDTO dto) {
- log.info("REST request to update user : {}", dto);
- // 校验入参
- dto.valid();
- UserVO result = userService.update(id, dto);
- return ApiResponse.ok(result);
- }
-
- @ApiOperation("获取用户列表")
- @GetMapping("/users")
- public ApiPageResponse getUsers(@ModelAttribute UserQO1 userQo, PageQO page) {
- PageResp results = userService.find(userQo, page);
- return ApiPageResponse.ok(results);
- }
-
- @ApiOperation("获取用户详情")
- @GetMapping("/users/{id}")
- public ApiResponse getUser(@ApiParam("用户ID") @PathVariable Long id) {
- UserVO result = userService.getOne(id);
- return ApiResponse.ok(result);
- }
-
- @ApiOperation("删除用户")
- @DeleteMapping("/users/{id}")
- public ApiResponse deleteUser(@ApiParam("用户ID") @PathVariable Long id) {
- userService.delete(id);
- return ApiResponse.ok();
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/job/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/job/package-info.java
deleted file mode 100644
index 6728d7b1..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/job/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.job;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/UserDao.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/UserDao.java
deleted file mode 100644
index 6dfb481e..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/UserDao.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package cn.axzo.nanopart.server.repository;
-
-import cn.axzo.framework.domain.page.PageQO;
-import cn.axzo.nanopart.server.repository.mapper.UserMapper;
-import cn.axzo.nanopart.server.service.dto.request.user.UserQO;
-import cn.axzo.nanopart.server.service.dto.request.user.UserQO1;
-import cn.axzo.nanopart.server.repository.entity.user.User;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.RequiredArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Repository;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description:
- */
-@Repository
-@RequiredArgsConstructor
-public class UserDao extends ServiceImpl {
-
- private final UserMapper userMapper;
-
- public User findById(Long id) {
- return userMapper.selectById(id);
- }
-
- public void delete(Long id) {
- userMapper.deleteById(id);
- }
-
- public IPage queryByPage(UserQO userQO) {
- return userMapper.selectPage(userQO.toPage(),
- Wrappers.lambdaQuery(User.class)
- .eq(userQO.getId() != null, User::getId, userQO.getId())
- .like(StringUtils.isNotBlank(userQO.getName()), User::getName, userQO.getName())
- .like(StringUtils.isNotBlank(userQO.getPhone()), User::getPhone, userQO.getPhone())
- .like(StringUtils.isNotBlank(userQO.getEmail()), User::getEmail, userQO.getEmail())
- .orderByDesc(User::getCreateAt)
- );
- }
-
- public IPage find(UserQO1 userQO, PageQO page) {
- return userMapper.selectPage(page.toPage(),
- Wrappers.lambdaQuery(User.class)
- .eq(userQO.getId() != null, User::getId, userQO.getId())
- .like(StringUtils.isNotBlank(userQO.getName()), User::getName, userQO.getName())
- .like(StringUtils.isNotBlank(userQO.getPhone()), User::getPhone, userQO.getPhone())
- .like(StringUtils.isNotBlank(userQO.getEmail()), User::getEmail, userQO.getEmail())
- .orderByDesc(User::getCreateAt)
- );
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/entity/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/entity/package-info.java
deleted file mode 100644
index a68675c6..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/entity/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.repository.entity;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/entity/user/User.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/entity/user/User.java
deleted file mode 100644
index 7c63ba54..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/entity/user/User.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package cn.axzo.nanopart.server.repository.entity.user;
-
-import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description:
- */
-@Data
-@TableName("b_user")
-public class User extends BaseEntity {
-
- private String name;
-
- private Integer sex;
-
- private Integer age;
-
- private String phone;
-
- private String email;
-
- private String address;
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/mapper/UserMapper.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/mapper/UserMapper.java
deleted file mode 100644
index 147c3ed6..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/repository/mapper/UserMapper.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.axzo.nanopart.server.repository.mapper;
-
-import cn.axzo.nanopart.server.repository.entity.user.User;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description:
- */
-@Mapper
-public interface UserMapper extends BaseMapper {
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/converter/EntityConverter.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/converter/EntityConverter.java
deleted file mode 100644
index 5bfa6947..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/converter/EntityConverter.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cn.axzo.nanopart.server.service.converter;
-
-import java.util.List;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description:
- */
-public interface EntityConverter{
-
- V toVo(E var);
-
- List toVo(List var);
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/converter/UserConverter.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/converter/UserConverter.java
deleted file mode 100644
index 768ac933..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/converter/UserConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.axzo.nanopart.server.service.converter;
-
-import cn.axzo.nanopart.server.service.dto.request.user.NewUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UpdateUserDTO;
-import cn.axzo.nanopart.server.service.dto.response.user.UserVO;
-import cn.axzo.nanopart.server.repository.entity.user.User;
-import org.mapstruct.Mapper;
-import org.mapstruct.MappingTarget;
-
-import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/2
- * @Description:
- */
-@Mapper(
- componentModel = "spring",
- nullValueCheckStrategy = ALWAYS
-)
-public interface UserConverter extends EntityConverter {
-
- User toEntity(NewUserDTO dto);
-
- void updateEntity(UpdateUserDTO dto, @MappingTarget User user);
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/package-info.java
deleted file mode 100644
index e7582182..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.service.dto.request;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/NewUserDTO.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/NewUserDTO.java
deleted file mode 100644
index 53c5970b..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/NewUserDTO.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package cn.axzo.nanopart.server.service.dto.request.user;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.apache.commons.lang3.StringUtils;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/2
- * @Description:
- */
-@Data
-public class NewUserDTO {
-
- @ApiModelProperty(value = "名称", position = 1)
- @NotBlank(message = "名称不能为空")
- private String name;
-
- @ApiModelProperty(value = "性别", position = 2)
- @NotNull
- private Integer sex;
-
- @ApiModelProperty(value = "年龄", position = 3)
- private Integer age;
-
- @ApiModelProperty(value = "电话", position = 4)
- private String phone;
-
- @ApiModelProperty(value = "邮箱", position = 5)
- private String email;
-
- @ApiModelProperty(value = "地址", position = 6)
- private String address;
-
- public void valid() {
- // 电话和邮箱不能都为空
- if (StringUtils.isEmpty(phone) && StringUtils.isEmpty(email)) {
- throw new RuntimeException("电话和邮箱不能都为空");
- }
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UpdateUserDTO.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UpdateUserDTO.java
deleted file mode 100644
index 37739eea..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UpdateUserDTO.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cn.axzo.nanopart.server.service.dto.request.user;
-
-import cn.axzo.framework.domain.web.ApiException;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.apache.commons.lang3.StringUtils;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import static cn.axzo.nanopart.server.common.enums.ErrorCode.USER_PHONE_EMAIL_IS_NULL;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description:
- */
-@Data
-public class UpdateUserDTO {
-
- @ApiModelProperty(value = "名称", position = 1)
- @NotBlank(message = "名称不能为空")
- private String name;
-
- @ApiModelProperty(value = "性别", position = 2)
- @NotNull
- private Integer sex;
-
- @ApiModelProperty(value = "年龄", position = 3)
- private Integer age;
-
- @ApiModelProperty(value = "电话", position = 4)
- private String phone;
-
- @ApiModelProperty(value = "邮箱", position = 5)
- private String email;
-
- @ApiModelProperty(value = "地址", position = 6)
- private String address;
-
- public void valid() {
- // 电话和邮箱不能都为空
- if (StringUtils.isEmpty(phone) && StringUtils.isEmpty(email)) {
- throw new ApiException(USER_PHONE_EMAIL_IS_NULL);
- }
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UserQO.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UserQO.java
deleted file mode 100644
index 4c7b0fd8..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UserQO.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.axzo.nanopart.server.service.dto.request.user;
-
-import cn.axzo.framework.domain.page.PageQO;
-import io.swagger.annotations.ApiParam;
-import lombok.Data;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description:
- */
-@Data
-public class UserQO extends PageQO {
-
- @ApiParam("主键")
- private Long id;
-
- @ApiParam("姓名")
- private String name;
-
- @ApiParam("手机")
- private String phone;
-
- @ApiParam("邮箱")
- private String email;
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UserQO1.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UserQO1.java
deleted file mode 100644
index 77c68f2d..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/request/user/UserQO1.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.axzo.nanopart.server.service.dto.request.user;
-
-import cn.axzo.framework.domain.page.PageQO;
-import io.swagger.annotations.ApiParam;
-import lombok.Data;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/5
- * @Description:
- */
-@Data
-public class UserQO1 {
-
- @ApiParam("主键")
- private Long id;
-
- @ApiParam("姓名")
- private String name;
-
- @ApiParam("手机")
- private String phone;
-
- @ApiParam("邮箱")
- private String email;
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/response/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/response/package-info.java
deleted file mode 100644
index f0f30b26..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/response/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.service.dto.response;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/response/user/UserVO.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/response/user/UserVO.java
deleted file mode 100644
index b68911f0..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/dto/response/user/UserVO.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cn.axzo.nanopart.server.service.dto.response.user;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/2
- * @Description:
- */
-@Data
-public class UserVO {
-
- @ApiModelProperty(value = "id", position = 1)
- private Long id;
-
- @ApiModelProperty(value = "名称", position = 2)
- private String name;
-
- @ApiModelProperty(value = "性别", position = 3)
- private Integer sex;
-
- @ApiModelProperty(value = "年龄", position = 4)
- private Integer age;
-
- @ApiModelProperty(value = "电话", position = 5)
- private String phone;
-
- @ApiModelProperty(value = "邮箱", position = 6)
- private String email;
-
- @ApiModelProperty(value = "地址", position = 7)
- private String address;
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/event/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/event/package-info.java
deleted file mode 100644
index b5adb999..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/event/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.service.event;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/manager/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/manager/package-info.java
deleted file mode 100644
index 39732905..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/manager/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.service.manager;
\ No newline at end of file
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/user/UserService.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/user/UserService.java
deleted file mode 100644
index 8a43232b..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/user/UserService.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cn.axzo.nanopart.server.service.user;
-
-import cn.axzo.framework.domain.page.PageQO;
-import cn.axzo.framework.domain.page.PageResp;
-import cn.axzo.nanopart.server.service.dto.request.user.NewUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UpdateUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UserQO;
-import cn.axzo.nanopart.server.service.dto.request.user.UserQO1;
-import cn.axzo.nanopart.server.service.dto.response.user.UserVO;
-import cn.azxo.framework.common.model.CommonPageResponse;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/2
- * @Description:
- */
-public interface UserService {
- UserVO create(NewUserDTO dto);
-
- UserVO update(Long id, UpdateUserDTO dto);
-
- UserVO getOne(Long id);
-
- void delete(Long id);
-
- CommonPageResponse queryByPage(UserQO userQO);
-
- PageResp find(UserQO1 userQo, PageQO page);
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/user/impl/UserServiceImpl.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/user/impl/UserServiceImpl.java
deleted file mode 100644
index 703adf9b..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/user/impl/UserServiceImpl.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package cn.axzo.nanopart.server.service.user.impl;
-
-import cn.axzo.framework.domain.page.PageQO;
-import cn.axzo.framework.domain.page.PageResp;
-import cn.axzo.framework.domain.web.ApiException;
-import cn.axzo.nanopart.server.common.enums.ErrorCode;
-import cn.axzo.nanopart.server.service.dto.request.user.NewUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UpdateUserDTO;
-import cn.axzo.nanopart.server.service.dto.request.user.UserQO;
-import cn.axzo.nanopart.server.service.dto.request.user.UserQO1;
-import cn.axzo.nanopart.server.service.dto.response.user.UserVO;
-import cn.axzo.nanopart.server.repository.entity.user.User;
-import cn.axzo.nanopart.server.repository.UserDao;
-import cn.axzo.nanopart.server.service.user.UserService;
-import cn.axzo.nanopart.server.service.converter.UserConverter;
-import cn.azxo.framework.common.model.CommonPageResponse;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @Author: liyong.tian
- * @Date: 2022/9/2
- * @Description:
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class UserServiceImpl implements UserService {
-
- private final UserConverter userConverter;
-
- private final UserDao userDao;
-
- @Override
- public UserVO create(NewUserDTO dto) {
- User user = userConverter.toEntity(dto);
- userDao.save(user);
- return userConverter.toVo(user);
- }
-
- @Override
- public UserVO update(Long id, UpdateUserDTO dto) {
- User user = userDao.findById(id);
- if (user == null) {
- throw new ApiException(ErrorCode.USER_NOT_EXISTS, id);
- }
- userConverter.updateEntity(dto, user);
- return userConverter.toVo(user);
- }
-
- @Override
- public UserVO getOne(Long id) {
- User user = userDao.findById(id);
- return userConverter.toVo(user);
- }
-
- @Override
- public void delete(Long id) {
- userDao.delete(id);
- }
-
- @Override
- public CommonPageResponse queryByPage(UserQO userQo) {
- IPage page = userDao.queryByPage(userQo);
- List userList = page.getRecords();
- if (CollectionUtils.isEmpty(userList)) {
- return CommonPageResponse.zero(userQo.getPage(), userQo.getPageSize());
- }
- return new CommonPageResponse<>(page.getCurrent(), page.getSize(), page.getTotal(), userConverter.toVo(page.getRecords()));
- }
-
- @Override
- public PageResp find(UserQO1 userQo, PageQO page) {
- IPage userPage = userDao.find(userQo, page);
- return PageResp.list(userPage, userConverter.toVo(userPage.getRecords()));
- }
-}
diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/validator/package-info.java b/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/validator/package-info.java
deleted file mode 100644
index c605b188..00000000
--- a/nanopart-server/src/main/java/cn/axzo/nanopart/server/service/validator/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.nanopart.server.service.validator;
\ No newline at end of file
diff --git a/nanopart-server/src/test/java/cn/axzo/maven/archetype/server/AppTest.java b/nanopart-server/src/test/java/cn/axzo/maven/archetype/server/AppTest.java
deleted file mode 100644
index f5b53190..00000000
--- a/nanopart-server/src/test/java/cn/axzo/maven/archetype/server/AppTest.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cn.axzo.maven.archetype.server;
-
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-/**
- * Unit test for simple App.
- */
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class AppTest {
-
-}
diff --git a/pom.xml b/pom.xml
index fbb958a0..c57ee360 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,8 +25,8 @@
- nanopart-server
black-list
+ nanopart-server