最低版本要求jdk17, 升级spring boot3.0

master
FrozenWatermelon 3 years ago
parent 07f919b8ab
commit 324d91bc0a

@ -45,21 +45,20 @@ uni-apphttps://gitee.com/gz-yami/mall4uni
## 技术选型 ## 技术选型
| 技术 | 版本 | 说明 | | 技术 | 版本 | 说明 |
|----------------------|--------|------------------------------| |---------------------|---------|------------------------------|
| Spring Boot | 2.7.0 | MVC核心框架 | | Spring Boot | 3.0.4 | MVC核心框架 |
| Spring Security web | 2.7.0 | web应用安全防护 | | Spring Security web | 3.0.4 | web应用安全防护 |
| MyBatis | 3.5.0 | ORM框架 | | MyBatis | 3.5.10 | ORM框架 |
| MyBatisPlus | 3.1.0 | 基于mybatis使用lambda表达式的 | | MyBatisPlus | 3.5.3.1 | 基于mybatis使用lambda表达式的 |
| spring-doc | 1.6.9 | 接口文档工具 | | spring-doc | 2.0.0 | 接口文档工具 |
| Hibernator-Validator | 6.0.17 | 验证框架 | | jakarta-validation | 3.0.2 | 验证框架 |
| redisson | 3.10.6 | 对redis进行封装、集成分布式锁等 | | redisson | 3.19.3 | 对redis进行封装、集成分布式锁等 |
| hikari | 3.2.0 | 数据库连接池 | | hikari | 5.0.1 | 数据库连接池 |
| logback | 1.2.11 | log日志工具 | | logback | 1.4.5 | log日志工具 |
| orika | 1.5.4 | 更快的bean复制工具 | | lombok | 1.18.26 | 简化对象封装工具 |
| lombok | 1.18.8 | 简化对象封装工具 | | hutool | 5.8.15 | 更适合国人的java工具集 |
| hutool | 5.7.22 | 更适合国人的java工具集 | | knife4j | 4.0.0 | 基于swagger更便于国人使用的swagger ui |
| knife4j | 4.0.0 | 基于swagger更便于国人使用的swagger ui |
通过阿里的代码规范扫描工具Alibaba Java Coding Guidelines plugin扫描无异常 通过阿里的代码规范扫描工具Alibaba Java Coding Guidelines plugin扫描无异常

@ -1,6 +1,5 @@
FROM mysql:5.7 FROM mysql:5.7
MAINTAINER opgames(opgames.cn@gmail.com)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

@ -70,7 +70,7 @@ public class SubmitOrderListener {
```java ```java
// 把订单地址保存到数据库 // 把订单地址保存到数据库
UserAddrOrder userAddrOrder = mapperFacade.map(mergerOrder.getUserAddr(), UserAddrOrder.class); UserAddrOrder userAddrOrder = BeanUtil.copyProperties(mergerOrder.getUserAddr(), UserAddrOrder.class);
if (userAddrOrder == null) { if (userAddrOrder == null) {
throw new YamiShopBindException("请填写收货地址"); throw new YamiShopBindException("请填写收货地址");
} }

@ -22,24 +22,22 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version> <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
<spring-boot.version>2.7.0</spring-boot.version> <spring-boot.version>3.0.4</spring-boot.version>
<java.version>1.8</java.version> <java.version>17</java.version>
<guava.version>31.1-jre</guava.version> <guava.version>31.1-jre</guava.version>
<hutool.version>5.7.22</hutool.version> <hutool.version>5.8.15</hutool.version>
<jsoup.version>1.15.3</jsoup.version> <jsoup.version>1.15.3</jsoup.version>
<poi.version>5.2.3</poi.version> <poi.version>5.2.3</poi.version>
<qiniu.version>7.2.18</qiniu.version> <qiniu.version>7.2.18</qiniu.version>
<weixin.version>3.5.0</weixin.version>
<orika.version>1.5.4</orika.version>
<aliyun-core.version>4.3.9</aliyun-core.version> <aliyun-core.version>4.3.9</aliyun-core.version>
<aliyun-dysmsapi.version>1.1.0</aliyun-dysmsapi.version> <aliyun-dysmsapi.version>1.1.0</aliyun-dysmsapi.version>
<mybatis-plus.version>3.5.3.1</mybatis-plus.version> <mybatis-plus.version>3.5.3.1</mybatis-plus.version>
<redisson.version>3.12.5</redisson.version> <redisson.version>3.19.3</redisson.version>
<transmittable-thread-local.version>2.12.1</transmittable-thread-local.version> <transmittable-thread-local.version>2.12.1</transmittable-thread-local.version>
<log4j.version>2.17.2</log4j.version> <log4j.version>2.17.2</log4j.version>
<knife4j.version>4.0.0</knife4j.version> <knife4j.version>4.0.0</knife4j.version>
<xxl-job.version>2.3.1</xxl-job.version> <xxl-job.version>2.3.1</xxl-job.version>
<spring-cloud-commons.version>3.1.1</spring-cloud-commons.version> <spring-cloud-commons.version>4.0.1</spring-cloud-commons.version>
</properties> </properties>
<dependencyManagement> <dependencyManagement>
@ -58,26 +56,6 @@
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-pay</artifactId>
<version>${weixin.version}</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
<version>${weixin.version}</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>${weixin.version}</version>
</dependency>
<dependency>
<groupId>ma.glasnost.orika</groupId>
<artifactId>orika-core</artifactId>
<version>${orika.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId> <artifactId>aliyun-java-sdk-core</artifactId>
@ -169,11 +147,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.github.xiaoymin</groupId> <groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-spring-boot-starter</artifactId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>

@ -1,6 +1,5 @@
FROM anapsix/alpine-java:8_server-jre_unlimited FROM openjdk:17.0.2
MAINTAINER opgames(opgames.cn@gmail.com)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

@ -13,7 +13,7 @@ package com.yami.shop.admin.config;
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License; import io.swagger.v3.oas.models.info.License;
import org.springdoc.core.GroupedOpenApi; import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

@ -31,12 +31,11 @@ import com.yami.shop.sys.service.SysUserService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;

@ -22,7 +22,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;

@ -22,7 +22,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Objects; import java.util.Objects;
/** /**

@ -22,7 +22,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Objects; import java.util.Objects;

@ -22,7 +22,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;

@ -24,7 +24,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
import java.util.Objects; import java.util.Objects;

@ -22,7 +22,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
/** /**

@ -37,8 +37,8 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream; import jakarta.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;

@ -24,7 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Arrays; import java.util.Arrays;
import java.util.Objects; import java.util.Objects;

@ -18,7 +18,7 @@ import com.yami.shop.common.util.Json;
import com.yami.shop.service.ProdCommService; import com.yami.shop.service.ProdCommService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import javax.validation.Valid; import jakarta.validation.Valid;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -30,7 +30,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yami.shop.common.util.PageParam; import com.yami.shop.common.util.PageParam;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
/** /**

@ -25,7 +25,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;

@ -22,7 +22,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
/** /**
* *

@ -26,12 +26,12 @@ import com.yami.shop.service.BasketService;
import com.yami.shop.service.ProdTagReferenceService; import com.yami.shop.service.ProdTagReferenceService;
import com.yami.shop.service.ProductService; import com.yami.shop.service.ProductService;
import com.yami.shop.service.SkuService; import com.yami.shop.service.SkuService;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -49,8 +49,6 @@ public class ProductController {
@Autowired @Autowired
private ProductService productService; private ProductService productService;
@Autowired
private MapperFacade mapperFacade;
@Autowired @Autowired
private SkuService skuService; private SkuService skuService;
@ -103,7 +101,7 @@ public class ProductController {
public ServerResponseEntity<String> save(@Valid @RequestBody ProductParam productParam) { public ServerResponseEntity<String> save(@Valid @RequestBody ProductParam productParam) {
checkParam(productParam); checkParam(productParam);
Product product = mapperFacade.map(productParam, Product.class); Product product = BeanUtil.copyProperties(productParam, Product.class);
product.setDeliveryMode(Json.toJsonString(productParam.getDeliveryModeVo())); product.setDeliveryMode(Json.toJsonString(productParam.getDeliveryModeVo()));
product.setShopId(SecurityUtils.getSysUser().getShopId()); product.setShopId(SecurityUtils.getSysUser().getShopId());
product.setUpdateTime(new Date()); product.setUpdateTime(new Date());
@ -130,7 +128,7 @@ public class ProductController {
List<Sku> dbSkus = skuService.listByProdId(dbProduct.getProdId()); List<Sku> dbSkus = skuService.listByProdId(dbProduct.getProdId());
Product product = mapperFacade.map(productParam, Product.class); Product product = BeanUtil.copyProperties(productParam, Product.class);
product.setDeliveryMode(Json.toJsonString(productParam.getDeliveryModeVo())); product.setDeliveryMode(Json.toJsonString(productParam.getDeliveryModeVo()));
product.setUpdateTime(new Date()); product.setUpdateTime(new Date());

@ -18,14 +18,14 @@ import com.yami.shop.bean.param.ShopDetailParam;
import com.yami.shop.common.util.PageParam; import com.yami.shop.common.util.PageParam;
import com.yami.shop.security.admin.util.SecurityUtils; import com.yami.shop.security.admin.util.SecurityUtils;
import com.yami.shop.service.ShopDetailService; import com.yami.shop.service.ShopDetailService;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -43,9 +43,6 @@ public class ShopDetailController {
@Autowired @Autowired
private ShopDetailService shopDetailService; private ShopDetailService shopDetailService;
@Autowired
private MapperFacade mapperFacade;
/** /**
* *
@ -101,7 +98,7 @@ public class ShopDetailController {
@PostMapping @PostMapping
@PreAuthorize("@pms.hasPermission('shop:shopDetail:save')") @PreAuthorize("@pms.hasPermission('shop:shopDetail:save')")
public ServerResponseEntity<Void> save(@Valid ShopDetailParam shopDetailParam){ public ServerResponseEntity<Void> save(@Valid ShopDetailParam shopDetailParam){
ShopDetail shopDetail = mapperFacade.map(shopDetailParam, ShopDetail.class); ShopDetail shopDetail = BeanUtil.copyProperties(shopDetailParam, ShopDetail.class);
shopDetail.setCreateTime(new Date()); shopDetail.setCreateTime(new Date());
shopDetail.setShopStatus(1); shopDetail.setShopStatus(1);
shopDetailService.save(shopDetail); shopDetailService.save(shopDetail);
@ -115,7 +112,7 @@ public class ShopDetailController {
@PreAuthorize("@pms.hasPermission('shop:shopDetail:update')") @PreAuthorize("@pms.hasPermission('shop:shopDetail:update')")
public ServerResponseEntity<Void> update(@Valid ShopDetailParam shopDetailParam){ public ServerResponseEntity<Void> update(@Valid ShopDetailParam shopDetailParam){
ShopDetail daShopDetail = shopDetailService.getShopDetailByShopId(shopDetailParam.getShopId()); ShopDetail daShopDetail = shopDetailService.getShopDetailByShopId(shopDetailParam.getShopId());
ShopDetail shopDetail = mapperFacade.map(shopDetailParam, ShopDetail.class); ShopDetail shopDetail = BeanUtil.copyProperties(shopDetailParam, ShopDetail.class);
shopDetail.setUpdateTime(new Date()); shopDetail.setUpdateTime(new Date());
shopDetailService.updateShopDetail(shopDetail,daShopDetail); shopDetailService.updateShopDetail(shopDetail,daShopDetail);
return ServerResponseEntity.success(); return ServerResponseEntity.success();

@ -25,7 +25,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;

@ -21,7 +21,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
/** /**
* *

@ -13,14 +13,11 @@ spring:
idle-timeout: 10000 idle-timeout: 10000
auto-commit: true auto-commit: true
connection-test-query: SELECT 1 connection-test-query: SELECT 1
cache: data:
type: redis
redis: redis:
cache-null-values: true host: 127.0.0.1
redis: port: 6379
host: 127.0.0.1 database: 0
port: 6379
database: 0
logging: logging:
config: classpath:logback/logback-dev.xml config: classpath:logback/logback-dev.xml
xxl-job: xxl-job:

@ -13,10 +13,11 @@ spring:
idle-timeout: 25000 idle-timeout: 25000
auto-commit: true auto-commit: true
connection-test-query: SELECT 1 connection-test-query: SELECT 1
redis: data:
host: ${REDIS_HOST} redis:
port: ${REDIS_PORT} host: ${REDIS_HOST}
database: ${REDIS_DATABASE:0} port: ${REDIS_PORT}
database: ${REDIS_DATABASE:0}
logging: logging:
config: classpath:logback/logback-prod.xml config: classpath:logback/logback-prod.xml
xxl-job: xxl-job:

@ -13,10 +13,11 @@ spring:
idle-timeout: 25000 idle-timeout: 25000
auto-commit: true auto-commit: true
connection-test-query: SELECT 1 connection-test-query: SELECT 1
redis: data:
host: 127.0.0.1 redis:
port: 6379 host: 127.0.0.1
database: ${REDIS_DATABASE:0} port: 6379
database: ${REDIS_DATABASE:0}
logging: logging:
config: classpath:logback/logback-prod.xml config: classpath:logback/logback-prod.xml
xxl-job: xxl-job:

@ -1,6 +1,5 @@
FROM anapsix/alpine-java:8_server-jre_unlimited FROM openjdk:17.0.2
MAINTAINER opgames(opgames.cn@gmail.com)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

@ -13,7 +13,7 @@ package com.yami.shop.api.config;
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License; import io.swagger.v3.oas.models.info.License;
import org.springdoc.core.GroupedOpenApi; import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

@ -22,11 +22,11 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -39,8 +39,6 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public class AddrController { public class AddrController {
@Autowired
private MapperFacade mapperFacade;
@Autowired @Autowired
private UserAddrService userAddrService; private UserAddrService userAddrService;
@ -52,7 +50,7 @@ public class AddrController {
public ServerResponseEntity<List<UserAddrDto>> dvyList() { public ServerResponseEntity<List<UserAddrDto>> dvyList() {
String userId = SecurityUtils.getUser().getUserId(); String userId = SecurityUtils.getUser().getUserId();
List<UserAddr> userAddrs = userAddrService.list(new LambdaQueryWrapper<UserAddr>().eq(UserAddr::getUserId, userId).orderByDesc(UserAddr::getCommonAddr).orderByDesc(UserAddr::getUpdateTime)); List<UserAddr> userAddrs = userAddrService.list(new LambdaQueryWrapper<UserAddr>().eq(UserAddr::getUserId, userId).orderByDesc(UserAddr::getCommonAddr).orderByDesc(UserAddr::getUpdateTime));
return ServerResponseEntity.success(mapperFacade.mapAsList(userAddrs, UserAddrDto.class)); return ServerResponseEntity.success(BeanUtil.copyToList(userAddrs, UserAddrDto.class));
} }
@PostMapping("/addAddr") @PostMapping("/addAddr")
@ -64,7 +62,7 @@ public class AddrController {
return ServerResponseEntity.showFailMsg("该地址已存在"); return ServerResponseEntity.showFailMsg("该地址已存在");
} }
long addrCount = userAddrService.count(new LambdaQueryWrapper<UserAddr>().eq(UserAddr::getUserId, userId)); long addrCount = userAddrService.count(new LambdaQueryWrapper<UserAddr>().eq(UserAddr::getUserId, userId));
UserAddr userAddr = mapperFacade.map(addrParam, UserAddr.class); UserAddr userAddr = BeanUtil.copyProperties(addrParam, UserAddr.class);
if (addrCount == 0) { if (addrCount == 0) {
userAddr.setCommonAddr(1); userAddr.setCommonAddr(1);
@ -96,7 +94,7 @@ public class AddrController {
return ServerResponseEntity.showFailMsg("该地址已被删除"); return ServerResponseEntity.showFailMsg("该地址已被删除");
} }
UserAddr userAddr = mapperFacade.map(addrParam, UserAddr.class); UserAddr userAddr = BeanUtil.copyProperties(addrParam, UserAddr.class);
userAddr.setUserId(userId); userAddr.setUserId(userId);
userAddr.setUpdateTime(new Date()); userAddr.setUpdateTime(new Date());
userAddrService.updateById(userAddr); userAddrService.updateById(userAddr);
@ -154,7 +152,7 @@ public class AddrController {
if (userAddr == null) { if (userAddr == null) {
throw new YamiShopBindException("该地址已被删除"); throw new YamiShopBindException("该地址已被删除");
} }
return ServerResponseEntity.success(mapperFacade.map(userAddr, UserAddrDto.class)); return ServerResponseEntity.success(BeanUtil.copyProperties(userAddr, UserAddrDto.class));
} }
} }

@ -26,7 +26,7 @@ import com.yami.shop.service.CategoryService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
/** /**
* @author lanhai * @author lanhai
@ -39,8 +39,6 @@ public class CategoryController {
@Autowired @Autowired
private CategoryService categoryService; private CategoryService categoryService;
@Autowired
private MapperFacade mapperFacade;
/** /**
* *
@ -50,7 +48,7 @@ public class CategoryController {
@Parameter(name = "parentId", description = "分类ID", required = false) @Parameter(name = "parentId", description = "分类ID", required = false)
public ServerResponseEntity<List<CategoryDto>> categoryInfo(@RequestParam(value = "parentId", defaultValue = "0") Long parentId) { public ServerResponseEntity<List<CategoryDto>> categoryInfo(@RequestParam(value = "parentId", defaultValue = "0") Long parentId) {
List<Category> categories = categoryService.listByParentId(parentId); List<Category> categories = categoryService.listByParentId(parentId);
List<CategoryDto> categoryDtos = mapperFacade.mapAsList(categories, CategoryDto.class); List<CategoryDto> categoryDtos = BeanUtil.copyToList(categories, CategoryDto.class);
return ServerResponseEntity.success(categoryDtos); return ServerResponseEntity.success(categoryDtos);
} }

@ -15,7 +15,7 @@ import com.yami.shop.bean.model.IndexImg;
import com.yami.shop.service.IndexImgService; import com.yami.shop.service.IndexImgService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -29,8 +29,6 @@ import java.util.List;
@RestController @RestController
@Tag(name = "首页轮播图接口") @Tag(name = "首页轮播图接口")
public class IndexImgController { public class IndexImgController {
@Autowired
private MapperFacade mapperFacade;
@Autowired @Autowired
private IndexImgService indexImgService; private IndexImgService indexImgService;
@ -42,7 +40,7 @@ public class IndexImgController {
@Operation(summary = "首页轮播图" , description = "获取首页轮播图列表信息") @Operation(summary = "首页轮播图" , description = "获取首页轮播图列表信息")
public ServerResponseEntity<List<IndexImgDto>> indexImgs() { public ServerResponseEntity<List<IndexImgDto>> indexImgs() {
List<IndexImg> indexImgList = indexImgService.listIndexImg(); List<IndexImg> indexImgList = indexImgService.listIndexImg();
List<IndexImgDto> indexImgDtos = mapperFacade.mapAsList(indexImgList, IndexImgDto.class); List<IndexImgDto> indexImgDtos = BeanUtil.copyToList(indexImgList, IndexImgDto.class);
return ServerResponseEntity.success(indexImgDtos); return ServerResponseEntity.success(indexImgDtos);
} }
} }

@ -27,7 +27,7 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -46,7 +46,7 @@ public class MyOrderController {
private final OrderService orderService; private final OrderService orderService;
private final MapperFacade mapperFacade;
private final UserAddrOrderService userAddrOrderService; private final UserAddrOrderService userAddrOrderService;
@ -83,9 +83,9 @@ public class MyOrderController {
ShopDetail shopDetail = shopDetailService.getShopDetailByShopId(order.getShopId()); ShopDetail shopDetail = shopDetailService.getShopDetailByShopId(order.getShopId());
UserAddrOrder userAddrOrder = userAddrOrderService.getById(order.getAddrOrderId()); UserAddrOrder userAddrOrder = userAddrOrderService.getById(order.getAddrOrderId());
UserAddrDto userAddrDto = mapperFacade.map(userAddrOrder, UserAddrDto.class); UserAddrDto userAddrDto = BeanUtil.copyProperties(userAddrOrder, UserAddrDto.class);
List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber); List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
List<OrderItemDto> orderItemDtos = mapperFacade.mapAsList(orderItems, OrderItemDto.class); List<OrderItemDto> orderItemDtos = BeanUtil.copyToList(orderItems, OrderItemDto.class);
orderShopDto.setShopId(shopDetail.getShopId()); orderShopDto.setShopId(shopDetail.getShopId());
orderShopDto.setShopName(shopDetail.getShopName()); orderShopDto.setShopName(shopDetail.getShopName());

@ -20,7 +20,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@ -40,7 +40,7 @@ public class NoticeController {
private NoticeService noticeService; private NoticeService noticeService;
private MapperFacade mapperFacade;
/** /**
* *
@ -50,7 +50,7 @@ public class NoticeController {
@JsonView(NoticeDto.NoContent.class) @JsonView(NoticeDto.NoContent.class)
public ServerResponseEntity<List<NoticeDto>> getTopNoticeList() { public ServerResponseEntity<List<NoticeDto>> getTopNoticeList() {
List<Notice> noticeList = noticeService.listNotice(); List<Notice> noticeList = noticeService.listNotice();
List<NoticeDto> noticeDtoList = mapperFacade.mapAsList(noticeList, NoticeDto.class); List<NoticeDto> noticeDtoList = BeanUtil.copyToList(noticeList, NoticeDto.class);
return ServerResponseEntity.success(noticeDtoList); return ServerResponseEntity.success(noticeDtoList);
} }
@ -62,7 +62,7 @@ public class NoticeController {
@JsonView(NoticeDto.WithContent.class) @JsonView(NoticeDto.WithContent.class)
public ServerResponseEntity<NoticeDto> getNoticeById(@PathVariable("id") Long id) { public ServerResponseEntity<NoticeDto> getNoticeById(@PathVariable("id") Long id) {
Notice notice = noticeService.getNoticeById(id); Notice notice = noticeService.getNoticeById(id);
NoticeDto noticeDto = mapperFacade.map(notice, NoticeDto.class); NoticeDto noticeDto = BeanUtil.copyProperties(notice, NoticeDto.class);
return ServerResponseEntity.success(noticeDto); return ServerResponseEntity.success(noticeDto);
} }

@ -24,7 +24,7 @@ import com.yami.shop.security.api.util.SecurityUtils;
import com.yami.shop.service.*; import com.yami.shop.service.*;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
@ -33,7 +33,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -49,8 +49,6 @@ public class OrderController {
@Autowired @Autowired
private OrderService orderService; private OrderService orderService;
@Autowired @Autowired
private MapperFacade mapperFacade;
@Autowired
private SkuService skuService; private SkuService skuService;
@Autowired @Autowired
private ProductService productService; private ProductService productService;
@ -72,7 +70,7 @@ public class OrderController {
// 订单的地址信息 // 订单的地址信息
UserAddr userAddr = userAddrService.getUserAddrByUserId(orderParam.getAddrId(), userId); UserAddr userAddr = userAddrService.getUserAddrByUserId(orderParam.getAddrId(), userId);
UserAddrDto userAddrDto = mapperFacade.map(userAddr, UserAddrDto.class); UserAddrDto userAddrDto = BeanUtil.copyProperties(userAddr, UserAddrDto.class);
// 组装获取用户提交的购物车商品项 // 组装获取用户提交的购物车商品项

@ -10,7 +10,6 @@
package com.yami.shop.api.controller; package com.yami.shop.api.controller;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.yami.shop.bean.app.param.PayParam; import com.yami.shop.bean.app.param.PayParam;
import com.yami.shop.bean.pay.PayInfoDto; import com.yami.shop.bean.pay.PayInfoDto;
import com.yami.shop.security.api.model.YamiUser; import com.yami.shop.security.api.model.YamiUser;
@ -42,7 +41,7 @@ public class PayController {
*/ */
@PostMapping("/pay") @PostMapping("/pay")
@Operation(summary = "根据订单号进行支付" , description = "根据订单号进行支付") @Operation(summary = "根据订单号进行支付" , description = "根据订单号进行支付")
public ServerResponseEntity<WxPayMpOrderResult> pay(@RequestBody PayParam payParam) { public ServerResponseEntity<Void> pay(@RequestBody PayParam payParam) {
YamiUser user = SecurityUtils.getUser(); YamiUser user = SecurityUtils.getUser();
String userId = user.getUserId(); String userId = user.getUserId();

@ -26,7 +26,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -47,8 +47,6 @@ public class ProdController {
@Autowired @Autowired
private ProductService prodService; private ProductService prodService;
@Autowired
private MapperFacade mapperFacade;
@Autowired @Autowired
private SkuService skuService; private SkuService skuService;
@ -82,7 +80,7 @@ public class ProdController {
// 启用的sku列表 // 启用的sku列表
List<Sku> useSkuList = skuList.stream().filter(sku -> sku.getStatus() == 1).collect(Collectors.toList()); List<Sku> useSkuList = skuList.stream().filter(sku -> sku.getStatus() == 1).collect(Collectors.toList());
product.setSkuList(useSkuList); product.setSkuList(useSkuList);
ProductDto productDto = mapperFacade.map(product, ProductDto.class); ProductDto productDto = BeanUtil.copyProperties(product, ProductDto.class);
// 商品的配送方式 // 商品的配送方式

@ -16,7 +16,7 @@ import com.yami.shop.service.ProdTagService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -35,7 +35,7 @@ public class ProdTagController {
private ProdTagService prodTagService; private ProdTagService prodTagService;
private MapperFacade mapperFacade;
/** /**
* *
@ -44,7 +44,7 @@ public class ProdTagController {
@Operation(summary = "商品分组标签列表" , description = "获取所有的商品分组列表") @Operation(summary = "商品分组标签列表" , description = "获取所有的商品分组列表")
public ServerResponseEntity<List<ProdTagDto>> getProdTagList() { public ServerResponseEntity<List<ProdTagDto>> getProdTagList() {
List<ProdTag> prodTagList = prodTagService.listProdTag(); List<ProdTag> prodTagList = prodTagService.listProdTag();
List<ProdTagDto> prodTagDtoList = mapperFacade.mapAsList(prodTagList, ProdTagDto.class); List<ProdTagDto> prodTagDtoList = BeanUtil.copyToList(prodTagList, ProdTagDto.class);
return ServerResponseEntity.success(prodTagDtoList); return ServerResponseEntity.success(prodTagDtoList);
} }

@ -32,7 +32,7 @@ import org.springframework.context.ApplicationContext;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

@ -18,7 +18,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -37,7 +37,7 @@ public class SkuController {
private final SkuService skuService; private final SkuService skuService;
private final MapperFacade mapperFacade;
@GetMapping("/getSkuList") @GetMapping("/getSkuList")
@Operation(summary = "通过prodId获取商品全部规格列表" , description = "通过prodId获取商品全部规格列表") @Operation(summary = "通过prodId获取商品全部规格列表" , description = "通过prodId获取商品全部规格列表")
@ -48,7 +48,7 @@ public class SkuController {
.eq(Sku::getIsDelete, 0) .eq(Sku::getIsDelete, 0)
.eq(Sku::getProdId, prodId) .eq(Sku::getProdId, prodId)
); );
List<SkuDto> skuDtoList = mapperFacade.mapAsList(skus, SkuDto.class); List<SkuDto> skuDtoList = BeanUtil.copyToList(skus, SkuDto.class);
return ServerResponseEntity.success(skuDtoList); return ServerResponseEntity.success(skuDtoList);
} }
} }

@ -18,7 +18,7 @@ import com.yami.shop.service.UserService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
/** /**
@ -32,7 +32,7 @@ public class UserController {
private final UserService userService; private final UserService userService;
private final MapperFacade mapperFacade;
/** /**
* *
*/ */
@ -41,7 +41,7 @@ public class UserController {
public ServerResponseEntity<UserDto> userInfo() { public ServerResponseEntity<UserDto> userInfo() {
String userId = SecurityUtils.getUser().getUserId(); String userId = SecurityUtils.getUser().getUserId();
User user = userService.getById(userId); User user = userService.getById(userId);
UserDto userDto = mapperFacade.map(user, UserDto.class); UserDto userDto = BeanUtil.copyProperties(user, UserDto.class);
return ServerResponseEntity.success(userDto); return ServerResponseEntity.success(userDto);
} }

@ -20,7 +20,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
/** /**

@ -29,7 +29,7 @@ import com.yami.shop.service.ProductService;
import com.yami.shop.service.SkuService; import com.yami.shop.service.SkuService;
import com.yami.shop.service.UserAddrOrderService; import com.yami.shop.service.UserAddrOrderService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -46,7 +46,7 @@ import java.util.*;
public class SubmitOrderListener { public class SubmitOrderListener {
private final MapperFacade mapperFacade;
private final UserAddrOrderService userAddrOrderService; private final UserAddrOrderService userAddrOrderService;
@ -89,7 +89,7 @@ public class SubmitOrderListener {
Map<Long, Product> prodStocksMap = new HashMap<>(16); Map<Long, Product> prodStocksMap = new HashMap<>(16);
// 把订单地址保存到数据库 // 把订单地址保存到数据库
UserAddrOrder userAddrOrder = mapperFacade.map(mergerOrder.getUserAddr(), UserAddrOrder.class); UserAddrOrder userAddrOrder = BeanUtil.copyProperties(mergerOrder.getUserAddr(), UserAddrOrder.class);
if (userAddrOrder == null) { if (userAddrOrder == null) {
throw new YamiShopBindException("请填写收货地址"); throw new YamiShopBindException("请填写收货地址");
} }

@ -12,10 +12,11 @@ spring:
maximum-pool-size: 20 maximum-pool-size: 20
idle-timeout: 10000 idle-timeout: 10000
connection-test-query: select 1 connection-test-query: select 1
redis: data:
host: 127.0.0.1 redis:
port: 6379 host: 127.0.0.1
database: 0 port: 6379
database: 0
logging: logging:
config: classpath:logback/logback-dev.xml config: classpath:logback/logback-dev.xml

@ -12,9 +12,10 @@ spring:
minimum-idle: 0 minimum-idle: 0
maximum-pool-size: 20 maximum-pool-size: 20
connection-test-query: select 1 connection-test-query: select 1
redis: data:
host: ${REDIS_HOST} redis:
port: ${REDIS_PORT} host: ${REDIS_HOST}
database: ${REDIS_DATABASE:0} port: ${REDIS_PORT}
database: ${REDIS_DATABASE:0}
logging: logging:
config: classpath:logback/logback-prod.xml config: classpath:logback/logback-prod.xml

@ -12,9 +12,10 @@ spring:
minimum-idle: 0 minimum-idle: 0
maximum-pool-size: 20 maximum-pool-size: 20
connection-test-query: select 1 connection-test-query: select 1
redis: data:
host: 127.0.0.1 redis:
port: 6379 host: 127.0.0.1
database: ${REDIS_DATABASE:0} port: 6379
database: ${REDIS_DATABASE:0}
logging: logging:
config: classpath:logback/logback-prod.xml config: classpath:logback/logback-prod.xml

@ -12,7 +12,7 @@ package com.yami.shop.bean.app.param;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
/** /**
* @author lanhai * @author lanhai

@ -10,7 +10,7 @@
package com.yami.shop.bean.app.param; package com.yami.shop.bean.app.param;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

@ -13,8 +13,8 @@ package com.yami.shop.bean.app.param;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.Min; import jakarta.validation.constraints.Min;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
/** /**
* @author lanhai * @author lanhai

@ -13,7 +13,7 @@ package com.yami.shop.bean.app.param;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.util.List; import java.util.List;
/** /**

@ -3,7 +3,7 @@ package com.yami.shop.bean.app.param;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
/** /**
* @author lanhai * @author lanhai

@ -3,8 +3,8 @@ package com.yami.shop.bean.app.param;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
/** /**
* @author lanhai * @author lanhai

@ -10,8 +10,8 @@
package com.yami.shop.bean.app.param; package com.yami.shop.bean.app.param;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

@ -13,7 +13,7 @@ package com.yami.shop.bean.app.param;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
/** /**
* @author lanhai * @author lanhai

@ -12,7 +12,7 @@ package com.yami.shop.bean.app.param;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
/** /**
* @author lanhai * @author lanhai

@ -15,8 +15,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;

@ -12,7 +12,7 @@ package com.yami.shop.bean.param;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
/** /**
* @author lanhai * @author lanhai

@ -14,9 +14,9 @@ import com.yami.shop.bean.model.Product;
import com.yami.shop.bean.model.Sku; import com.yami.shop.bean.model.Sku;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import javax.validation.constraints.Size; import jakarta.validation.constraints.Size;
import java.util.List; import java.util.List;
/** /**

@ -10,8 +10,8 @@
package com.yami.shop.bean.param; package com.yami.shop.bean.param;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.Size; import jakarta.validation.constraints.Size;
/** /**
* @author lanhai * @author lanhai

@ -40,9 +40,9 @@
<groupId>com.qiniu</groupId> <groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId> <artifactId>qiniu-java-sdk</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>com.mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-j</artifactId>
</dependency> </dependency>
<!-- 开始spring 缓存 --> <!-- 开始spring 缓存 -->
<dependency> <dependency>
@ -58,10 +58,6 @@
<artifactId>redisson-spring-boot-starter</artifactId> <artifactId>redisson-spring-boot-starter</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>ma.glasnost.orika</groupId>
<artifactId>orika-core</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId> <artifactId>aliyun-java-sdk-core</artifactId>
</dependency> </dependency>
@ -69,18 +65,6 @@
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId> <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-pay</artifactId>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>transmittable-thread-local</artifactId> <artifactId>transmittable-thread-local</artifactId>

@ -1,36 +0,0 @@
/*
* Copyright (c) 2018-2999 广 All rights reserved.
*
* https://www.mall4j.com/
*
*
*
*
*/
package com.yami.shop.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.impl.DefaultMapperFactory;
/**
* MapperFacade dto ->entity
* @author lgh
*/
@Configuration
public class OrikaConfig {
@Bean
public MapperFactory mapperFactory() {
return new DefaultMapperFactory.Builder().build();
}
@Bean
public MapperFacade mapperFacade() {
return mapperFactory().getMapperFacade();
}
}

@ -1,103 +0,0 @@
package com.yami.shop.common.config;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yami.shop.common.util.PageParam;
import io.swagger.v3.oas.annotations.Hidden;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.springdoc.api.annotations.ParameterObject;
import org.springdoc.core.DelegatingMethodParameter;
import org.springdoc.core.GenericParameterService;
import org.springdoc.core.PropertyResolverUtils;
import org.springdoc.core.SpringDocUtils;
import org.springdoc.core.customizers.DelegatingMethodParameterCustomizer;
import org.springdoc.core.providers.ObjectMapperProvider;
import org.springdoc.core.providers.WebConversionServiceProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.MethodParameter;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author FrozenWatermelon
* @date 2022/4/24
*/
@Configuration
public class Swagger2Config {
static {
SpringDocUtils.getConfig().addAnnotationsToIgnore(JsonIgnore.class);
}
@Bean
public GenericParameterService parameterBuilder(PropertyResolverUtils propertyResolverUtils, Optional<WebConversionServiceProvider> optionalWebConversionServiceProvider, ObjectMapperProvider objectMapperProvider) {
return new GenericParameterService(propertyResolverUtils, delegatingMethodParameterCustomizer(),
optionalWebConversionServiceProvider,objectMapperProvider);
}
/**
* @ParameterObject@Hidden, JsonIgnore使
* @return
*/
private Optional<DelegatingMethodParameterCustomizer> delegatingMethodParameterCustomizer() {
// NOSONAR
return Optional.of((originalMethodParam, methodParam) -> {
// 这个方法类拥有的注解
Annotation[] annotations = originalMethodParam.getParameterType().getAnnotations();
boolean typeContainParameterObject = false;
if (annotations.length > 0) {
List<? extends Class<? extends Annotation>> annotationTypes = Arrays.stream(annotations).map(Annotation::annotationType).collect(Collectors.toList());
typeContainParameterObject = annotationTypes.contains(ParameterObject.class);
}
boolean hasParameterAnnotations = (originalMethodParam.hasParameterAnnotations() && originalMethodParam.hasParameterAnnotation(ParameterObject.class));
if (typeContainParameterObject || hasParameterAnnotations) {
try {
if (isParameterIgnore(originalMethodParam, methodParam)) {
Field field = FieldUtils.getDeclaredField(DelegatingMethodParameter.class, "additionalParameterAnnotations", true);
try {
field.set(methodParam, new Annotation[] {new Hidden() { // NOSONAR
@Override
public Class<? extends Annotation> annotationType() {
return Hidden.class;
}}
});
} catch (IllegalArgumentException|IllegalAccessException e) {
e.printStackTrace();
}
}
} catch (NoSuchFieldException | SecurityException e) {
e.printStackTrace();
}
}
});
}
private boolean isParameterIgnore(MethodParameter originalMethodParam, MethodParameter methodParam) throws NoSuchFieldException, SecurityException {
String searchCount = "searchCount";
String parameterName = StrUtil.isBlank(methodParam.getParameterName())? "":methodParam.getParameterName();
String fieldName = parameterName.indexOf('.') == -1 ? parameterName : parameterName.substring(0, parameterName.indexOf('.'));
// 解决mybatis-plus返回的查询参数污染的问题
if (originalMethodParam.getParameterType().isAssignableFrom(PageParam.class)) {
if (searchCount.equals(fieldName)) {
return true;
}
}
Field declaredField;
try {
declaredField = originalMethodParam.getParameterType().getDeclaredField(fieldName);
} catch (NoSuchFieldException e) {
e.printStackTrace();
declaredField = originalMethodParam.getParameterType().getSuperclass().getDeclaredField(fieldName);
}
return Stream.of(declaredField.getAnnotations())
.filter(annot -> Arrays.asList(Hidden.class, JsonIgnore.class).contains(annot.annotationType())).count() > 0;
}
}

@ -15,9 +15,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.servlet.*; import jakarta.servlet.*;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
/** /**

@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.Objects; import java.util.Objects;

@ -13,7 +13,7 @@ package com.yami.shop.common.util;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
/** /**
* @author lanhai * @author lanhai

@ -10,7 +10,7 @@
package com.yami.shop.common.util; package com.yami.shop.common.util;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
/** /**
* IP * IP

@ -14,7 +14,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import org.springdoc.api.annotations.ParameterObject; import org.springdoc.core.annotations.ParameterObject;
import java.util.List; import java.util.List;
/** /**

@ -12,8 +12,8 @@ package com.yami.shop.common.xss;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper; import jakarta.servlet.http.HttpServletRequestWrapper;
/** /**
* xss * xss

@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid; import jakarta.validation.Valid;
/** /**
* @author * @author

@ -23,7 +23,7 @@ public class MallWebSecurityConfigurerAdapter {
.and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().authorizeRequests().requestMatchers(CorsUtils::isPreFlightRequest).permitAll() .and().authorizeRequests().requestMatchers(CorsUtils::isPreFlightRequest).permitAll()
.and() .and()
.authorizeRequests().antMatchers( .authorizeRequests().requestMatchers(
"/**").permitAll().and().build(); "/**").permitAll().and().build();
} }

@ -21,7 +21,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import javax.servlet.DispatcherType; import jakarta.servlet.DispatcherType;
/** /**
* *

@ -18,7 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
/** /**
* @author * @author

@ -15,13 +15,13 @@ import com.yami.shop.security.common.dto.RefreshTokenDTO;
import com.yami.shop.security.common.manager.TokenStore; import com.yami.shop.security.common.manager.TokenStore;
import com.yami.shop.security.common.vo.TokenInfoVO; import com.yami.shop.security.common.vo.TokenInfoVO;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import ma.glasnost.orika.MapperFacade; import cn.hutool.core.bean.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid; import jakarta.validation.Valid;
/** /**
* @author * @author
@ -34,15 +34,13 @@ public class TokenController {
@Autowired @Autowired
private TokenStore tokenStore; private TokenStore tokenStore;
@Autowired
private MapperFacade mapperFacade;
@PostMapping("/token/refresh") @PostMapping("/token/refresh")
public ServerResponseEntity<TokenInfoVO> refreshToken(@Valid @RequestBody RefreshTokenDTO refreshTokenDTO) { public ServerResponseEntity<TokenInfoVO> refreshToken(@Valid @RequestBody RefreshTokenDTO refreshTokenDTO) {
TokenInfoBO tokenInfoServerResponseEntity = tokenStore TokenInfoBO tokenInfoServerResponseEntity = tokenStore
.refreshToken(refreshTokenDTO.getRefreshToken()); .refreshToken(refreshTokenDTO.getRefreshToken());
return ServerResponseEntity return ServerResponseEntity
.success(mapperFacade.map(tokenInfoServerResponseEntity, TokenInfoVO.class)); .success(BeanUtil.copyProperties(tokenInfoServerResponseEntity, TokenInfoVO.class));
} }
} }

@ -12,7 +12,7 @@ package com.yami.shop.security.common.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
/** /**
* *

@ -11,7 +11,7 @@ package com.yami.shop.security.common.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
/** /**
* token * token

@ -25,9 +25,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.AntPathMatcher; import org.springframework.util.AntPathMatcher;
import javax.servlet.*; import jakarta.servlet.*;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;

@ -12,6 +12,7 @@ package com.yami.shop.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.yami.shop.bean.model.Category; import com.yami.shop.bean.model.Category;
@ -20,8 +21,6 @@ import com.yami.shop.dao.CategoryMapper;
import com.yami.shop.dao.CategoryPropMapper; import com.yami.shop.dao.CategoryPropMapper;
import com.yami.shop.service.AttachFileService; import com.yami.shop.service.AttachFileService;
import com.yami.shop.service.CategoryService; import com.yami.shop.service.CategoryService;
import ma.glasnost.orika.MapperFacade;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -48,9 +47,6 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
@Autowired @Autowired
private AttachFileService attachFileService; private AttachFileService attachFileService;
@Autowired
private MapperFacade mapperFacade;
@Override @Override
public List<Category> listByParentId(Long parentId) { public List<Category> listByParentId(Long parentId) {
return categoryMapper.listByParentId(parentId); return categoryMapper.listByParentId(parentId);

@ -26,7 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.Objects; import java.util.Objects;
/** /**

@ -11,7 +11,7 @@
package com.yami.shop.sys.controller; package com.yami.shop.sys.controller;
import javax.validation.Valid; import jakarta.validation.Valid;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

@ -25,7 +25,7 @@ import com.yami.shop.common.response.ServerResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;

@ -34,7 +34,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import jakarta.validation.Valid;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;

@ -13,8 +13,8 @@ package com.yami.shop.sys.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.Size; import jakarta.validation.constraints.Size;
/** /**
* @author lanhai * @author lanhai
*/ */

@ -14,7 +14,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
/** /**
* *

@ -16,8 +16,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;

@ -17,7 +17,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;

@ -18,10 +18,10 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Email; import jakarta.validation.constraints.Email;
import javax.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
import javax.validation.constraints.Size; import jakarta.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;

Loading…
Cancel
Save