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