From 64f5bc8d03c157a4c0e2535b7fc8e685ea36b80c Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 18:00:05 +0800 Subject: [PATCH 01/15] =?UTF-8?q?feat(=E5=88=9D=E5=A7=8B=E5=8C=96):=20?= =?UTF-8?q?=E5=BC=95=E5=85=A5=E5=BF=85=E8=A6=81=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 8 +++++ pom.xml | 47 ++++++++++++++++++++++++++++-- spzx-common/common-service/pom.xml | 23 ++++++++++++++- spzx-common/common-util/pom.xml | 26 +++++++++++++++-- spzx-common/pom.xml | 9 ++++-- spzx-manager/pom.xml | 40 +++++++++++++++++++++++-- spzx-model/pom.xml | 25 ++++++++++++++-- 7 files changed, 166 insertions(+), 12 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index d33bd31..ed9663d 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -13,4 +13,12 @@ + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 12ff7b5..967a645 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,11 @@ + + + org.springframework.boot + spring-boot-starter-parent + 3.0.5 + 4.0.0 com.atguigu @@ -8,7 +14,7 @@ pom spzx-parent - http://maven.apache.org + https://maven.apache.org spzx-common spzx-model @@ -16,10 +22,45 @@ + 17 + 17 UTF-8 + 8.0.30 + 2.0.21 + 1.18.20 + 3.0.1 - + + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + ${mybatis.version} + - + + + mysql + mysql-connector-java + ${mysql.version} + + + + + com.alibaba + fastjson + ${fastjson.version} + + + + + org.projectlombok + lombok + ${lombok.version} + + + diff --git a/spzx-common/common-service/pom.xml b/spzx-common/common-service/pom.xml index 1dd6b65..7ea1290 100644 --- a/spzx-common/common-service/pom.xml +++ b/spzx-common/common-service/pom.xml @@ -18,6 +18,27 @@ - + + + com.atguigu + common-util + 1.0-SNAPSHOT + + + com.atguigu + spzx-model + 1.0-SNAPSHOT + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-data-redis + provided + diff --git a/spzx-common/common-util/pom.xml b/spzx-common/common-util/pom.xml index 6591198..39e82fa 100644 --- a/spzx-common/common-util/pom.xml +++ b/spzx-common/common-util/pom.xml @@ -11,13 +11,35 @@ jar common-util - http://maven.apache.org + https://maven.apache.org UTF-8 - + + + com.atguigu + spzx-model + 1.0-SNAPSHOT + + + + org.springframework.boot + spring-boot-starter-web + provided + + + + com.alibaba + fastjson + + + + io.minio + minio + 8.5.9 + diff --git a/spzx-common/pom.xml b/spzx-common/pom.xml index e18be98..3f05c1c 100644 --- a/spzx-common/pom.xml +++ b/spzx-common/pom.xml @@ -11,7 +11,7 @@ pom spzx-common - http://maven.apache.org + https://maven.apache.org common-util common-service @@ -22,6 +22,11 @@ - + + + cn.hutool + hutool-all + 5.8.25 + diff --git a/spzx-manager/pom.xml b/spzx-manager/pom.xml index db9871f..7c58a92 100644 --- a/spzx-manager/pom.xml +++ b/spzx-manager/pom.xml @@ -11,13 +11,49 @@ jar spzx-manager - http://maven.apache.org + https://maven.apache.org UTF-8 - + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + + mysql + mysql-connector-java + + + + com.atguigu + common-service + 1.0-SNAPSHOT + + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.4.3 + diff --git a/spzx-model/pom.xml b/spzx-model/pom.xml index 2a8b3fa..9fc4036 100644 --- a/spzx-model/pom.xml +++ b/spzx-model/pom.xml @@ -11,13 +11,34 @@ jar spzx-model - http://maven.apache.org + https://maven.apache.org UTF-8 - + + + org.projectlombok + lombok + + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + 4.1.0 + + + + com.alibaba + fastjson + + + + com.alibaba + easyexcel + 3.1.0 + -- 2.43.0 From 9253b85bb40523acde21c19d708b8d1138250bb6 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 18:00:23 +0800 Subject: [PATCH 02/15] =?UTF-8?q?feat(=E5=88=9D=E5=A7=8B=E5=8C=96):=20?= =?UTF-8?q?=E5=BC=95=E5=85=A5=E5=AE=9E=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spzx-model/src/main/java/com/atguigu/App.java | 13 --- .../spzx/model/dto/h5/OrderInfoDto.java | 23 +++++ .../spzx/model/dto/h5/ProductSkuDto.java | 28 ++++++ .../spzx/model/dto/h5/UserLoginDto.java | 15 ++++ .../spzx/model/dto/h5/UserRegisterDto.java | 22 +++++ .../model/dto/order/OrderStatisticsDto.java | 16 ++++ .../model/dto/product/CategoryBrandDto.java | 16 ++++ .../spzx/model/dto/product/ProductDto.java | 23 +++++ .../spzx/model/dto/product/SkuSaleDto.java | 12 +++ .../spzx/model/dto/system/AssginMenuDto.java | 19 ++++ .../spzx/model/dto/system/AssginRoleDto.java | 18 ++++ .../spzx/model/dto/system/LoginDto.java | 22 +++++ .../spzx/model/dto/system/SysOperLogDto.java | 22 +++++ .../spzx/model/dto/system/SysRoleDto.java | 13 +++ .../spzx/model/dto/system/SysUserDto.java | 21 +++++ .../spzx/model/entity/base/BaseEntity.java | 27 ++++++ .../spzx/model/entity/base/ProductUnit.java | 13 +++ .../spzx/model/entity/base/Region.java | 22 +++++ .../spzx/model/entity/h5/CartInfo.java | 36 ++++++++ .../spzx/model/entity/order/OrderInfo.java | 89 +++++++++++++++++++ .../spzx/model/entity/order/OrderItem.java | 33 +++++++ .../spzx/model/entity/order/OrderLog.java | 25 ++++++ .../model/entity/order/OrderStatistics.java | 16 ++++ .../spzx/model/entity/pay/PaymentInfo.java | 43 +++++++++ .../spzx/model/entity/product/Brand.java | 17 ++++ .../spzx/model/entity/product/Category.java | 34 +++++++ .../model/entity/product/CategoryBrand.java | 26 ++++++ .../spzx/model/entity/product/Product.java | 65 ++++++++++++++ .../model/entity/product/ProductDetails.java | 12 +++ .../spzx/model/entity/product/ProductSku.java | 53 +++++++++++ .../model/entity/product/ProductSpec.java | 17 ++++ .../spzx/model/entity/system/SysMenu.java | 32 +++++++ .../spzx/model/entity/system/SysOperLog.java | 48 ++++++++++ .../spzx/model/entity/system/SysRole.java | 22 +++++ .../spzx/model/entity/system/SysRoleUser.java | 12 +++ .../spzx/model/entity/system/SysUser.java | 32 +++++++ .../spzx/model/entity/user/UserAddress.java | 43 +++++++++ .../spzx/model/entity/user/UserInfo.java | 51 +++++++++++ .../atguigu/spzx/model/vo/common/Result.java | 39 ++++++++ .../spzx/model/vo/common/ResultCodeEnum.java | 30 +++++++ .../com/atguigu/spzx/model/vo/h5/IndexVo.java | 15 ++++ .../spzx/model/vo/h5/ProductItemVo.java | 34 +++++++ .../com/atguigu/spzx/model/vo/h5/TradeVo.java | 20 +++++ .../atguigu/spzx/model/vo/h5/UserInfoVo.java | 16 ++++ .../model/vo/order/OrderStatisticsVo.java | 19 ++++ .../model/vo/product/CategoryExcelVo.java | 31 +++++++ .../atguigu/spzx/model/vo/system/LoginVo.java | 16 ++++ .../spzx/model/vo/system/SysMenuVo.java | 21 +++++ .../spzx/model/vo/system/ValidateCodeVo.java | 16 ++++ 49 files changed, 1295 insertions(+), 13 deletions(-) delete mode 100644 spzx-model/src/main/java/com/atguigu/App.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/OrderInfoDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/ProductSkuDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/UserLoginDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/UserRegisterDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/order/OrderStatisticsDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/CategoryBrandDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/ProductDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/SkuSaleDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/AssginMenuDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/AssginRoleDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/LoginDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysOperLogDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysRoleDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysUserDto.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/BaseEntity.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/ProductUnit.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/Region.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/h5/CartInfo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderInfo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderItem.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderLog.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderStatistics.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/pay/PaymentInfo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Brand.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Category.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/CategoryBrand.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Product.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductDetails.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductSku.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductSpec.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysMenu.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysOperLog.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysRole.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysRoleUser.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysUser.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/user/UserAddress.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/entity/user/UserInfo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/Result.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/ResultCodeEnum.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/IndexVo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/ProductItemVo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/TradeVo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/UserInfoVo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/order/OrderStatisticsVo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/product/CategoryExcelVo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/LoginVo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/SysMenuVo.java create mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/ValidateCodeVo.java diff --git a/spzx-model/src/main/java/com/atguigu/App.java b/spzx-model/src/main/java/com/atguigu/App.java deleted file mode 100644 index 74498e7..0000000 --- a/spzx-model/src/main/java/com/atguigu/App.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.atguigu; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } -} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/OrderInfoDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/OrderInfoDto.java new file mode 100644 index 0000000..ba0d625 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/OrderInfoDto.java @@ -0,0 +1,23 @@ +package com.atguigu.spzx.model.dto.h5; + +import com.atguigu.spzx.model.entity.order.OrderItem; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class OrderInfoDto { + + //送货地址id + private Long userAddressId; + + //运费 + private BigDecimal feightFee; + + //备注 + private String remark; + + //订单明细 + private List orderItemList; +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/ProductSkuDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/ProductSkuDto.java new file mode 100644 index 0000000..b5c4042 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/ProductSkuDto.java @@ -0,0 +1,28 @@ +package com.atguigu.spzx.model.dto.h5; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "商品列表搜索条件实体类") +public class ProductSkuDto { + + @Schema(description = "关键字") + private String keyword; + + @Schema(description = "品牌id") + private Long brandId; + + @Schema(description = "一级分类id") + private Long category1Id; + + @Schema(description = "二级分类id") + private Long category2Id; + + @Schema(description = "三级分类id") + private Long category3Id; + + @Schema(description = "排序(综合排序:1 价格升序:2 价格降序:3)") + private Integer order = 1; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/UserLoginDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/UserLoginDto.java new file mode 100644 index 0000000..9d30adb --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/UserLoginDto.java @@ -0,0 +1,15 @@ +package com.atguigu.spzx.model.dto.h5; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "用户登录请求参数") +public class UserLoginDto { + + @Schema(description = "用户名") + private String username ; + + @Schema(description = "密码") + private String password ; +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/UserRegisterDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/UserRegisterDto.java new file mode 100644 index 0000000..30bb250 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/h5/UserRegisterDto.java @@ -0,0 +1,22 @@ +package com.atguigu.spzx.model.dto.h5; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description="注册对象") +public class UserRegisterDto { + + @Schema(description = "用户名") + private String username; + + @Schema(description = "密码") + private String password; + + @Schema(description = "昵称") + private String nickName; + + @Schema(description = "手机验证码") + private String code ; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/order/OrderStatisticsDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/order/OrderStatisticsDto.java new file mode 100644 index 0000000..f0adeac --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/order/OrderStatisticsDto.java @@ -0,0 +1,16 @@ +package com.atguigu.spzx.model.dto.order; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "搜索条件实体类") +public class OrderStatisticsDto { + + @Schema(description = "开始时间") + private String createTimeBegin; + + @Schema(description = "结束时间") + private String createTimeEnd; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/CategoryBrandDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/CategoryBrandDto.java new file mode 100644 index 0000000..b72fa88 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/CategoryBrandDto.java @@ -0,0 +1,16 @@ +package com.atguigu.spzx.model.dto.product; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "搜索条件实体类") +public class CategoryBrandDto { + + @Schema(description = "品牌id") + private Long brandId; + + @Schema(description = "分类id") + private Long categoryId; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/ProductDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/ProductDto.java new file mode 100644 index 0000000..8131c83 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/ProductDto.java @@ -0,0 +1,23 @@ +package com.atguigu.spzx.model.dto.product; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "商品搜索条件实体类") +public class ProductDto extends BaseEntity { + + @Schema(description = "品牌id") + private Long brandId; + + @Schema(description = "一级分类id") + private Long category1Id; + + @Schema(description = "二级分类id") + private Long category2Id; + + @Schema(description = "三级分类id") + private Long category3Id; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/SkuSaleDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/SkuSaleDto.java new file mode 100644 index 0000000..4869a26 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/product/SkuSaleDto.java @@ -0,0 +1,12 @@ +package com.atguigu.spzx.model.dto.product; + +import lombok.Data; + +@Data +public class SkuSaleDto { + + private Long skuId; + private Integer num; + +} + diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/AssginMenuDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/AssginMenuDto.java new file mode 100644 index 0000000..3abb4e8 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/AssginMenuDto.java @@ -0,0 +1,19 @@ +package com.atguigu.spzx.model.dto.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +@Schema(description = "请求参数实体类") +public class AssginMenuDto { + + @Schema(description = "角色id") + private Long roleId; // 角色id + + @Schema(description = "选中的菜单id的集合") + private List> menuIdList; // 选中的菜单id的集合; Map的键表示菜单的id,值表示是否为半开; 0否,1是 + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/AssginRoleDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/AssginRoleDto.java new file mode 100644 index 0000000..39ddaf3 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/AssginRoleDto.java @@ -0,0 +1,18 @@ +package com.atguigu.spzx.model.dto.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "请求参数实体类") +public class AssginRoleDto { + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "角色id的List集合") + private List roleIdList; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/LoginDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/LoginDto.java new file mode 100644 index 0000000..2db92bf --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/LoginDto.java @@ -0,0 +1,22 @@ +package com.atguigu.spzx.model.dto.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "用户登录请求参数") +public class LoginDto { + + @Schema(description = "用户名") + private String userName ; + + @Schema(description = "密码") + private String password ; + + @Schema(description = "提交验证码") + private String captcha ; + + @Schema(description = "验证码key") + private String codeKey ; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysOperLogDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysOperLogDto.java new file mode 100644 index 0000000..7f7cf72 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysOperLogDto.java @@ -0,0 +1,22 @@ +package com.atguigu.spzx.model.dto.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "请求参数实体类") +public class SysOperLogDto { + + @Schema(description = "模块名称") + private String title; + + @Schema(description = "操作用户名") + private String operName; + + @Schema(description = "开始时间") + private String createTimeBegin; + + @Schema(description = "结束时间") + private String createTimeEnd; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysRoleDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysRoleDto.java new file mode 100644 index 0000000..b9ac148 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysRoleDto.java @@ -0,0 +1,13 @@ +package com.atguigu.spzx.model.dto.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "请求参数实体类") +public class SysRoleDto { + + @Schema(description = "角色名称") + private String roleName ; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysUserDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysUserDto.java new file mode 100644 index 0000000..8360072 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/SysUserDto.java @@ -0,0 +1,21 @@ +package com.atguigu.spzx.model.dto.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; + +@Data +@Schema(description = "请求参数实体类") +public class SysUserDto { + + @Schema(description = "搜索关键字") + private String keyword ; + + @Schema(description = "开始时间") + private String createTimeBegin ; + + @Schema(description = "结束时间") + private String createTimeEnd; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/BaseEntity.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/BaseEntity.java new file mode 100644 index 0000000..130dee0 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/BaseEntity.java @@ -0,0 +1,27 @@ +package com.atguigu.spzx.model.entity.base; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class BaseEntity implements Serializable { + + @Schema(description = "唯一标识") + private Long id; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "创建时间") + private Date createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "修改时间") + private Date updateTime; + + @Schema(description = "是否删除") + private Integer isDeleted; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/ProductUnit.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/ProductUnit.java new file mode 100644 index 0000000..8969914 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/ProductUnit.java @@ -0,0 +1,13 @@ +package com.atguigu.spzx.model.entity.base; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "产品单元实体类") +public class ProductUnit extends BaseEntity { + + @Schema(description = "名称") + private String name; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/Region.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/Region.java new file mode 100644 index 0000000..8acb87f --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/Region.java @@ -0,0 +1,22 @@ +package com.atguigu.spzx.model.entity.base; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "区域实体类") +public class Region extends BaseEntity { + + @Schema(description = "区域编码") + private String code; + + @Schema(description = "父区域编码") + private Long parentCode; + + @Schema(description = "父区名称") + private String name; + + @Schema(description = "地区级别:1-省、自治区、直辖市 2-地级市、地区、自治州、盟 3-市辖区、县级市、县") + private Integer level; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/h5/CartInfo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/h5/CartInfo.java new file mode 100644 index 0000000..5cd74a4 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/h5/CartInfo.java @@ -0,0 +1,36 @@ +package com.atguigu.spzx.model.entity.h5; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "购物车实体类") +public class CartInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "skuid") + private Long skuId; + + @Schema(description = "放入购物车时价格") + private BigDecimal cartPrice; + + @Schema(description = "数量") + private Integer skuNum; + + @Schema(description = "图片文件") + private String imgUrl; + + @Schema(description = "sku名称 (冗余)") + private String skuName; + + @Schema(description = "isChecked") + private Integer isChecked; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderInfo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderInfo.java new file mode 100644 index 0000000..0580c82 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderInfo.java @@ -0,0 +1,89 @@ +package com.atguigu.spzx.model.entity.order; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@Data +@Schema(description = "OrderInfo") +public class OrderInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "会员_id") + private Long userId; + + @Schema(description = "昵称") + private String nickName; + + @Schema(description = "订单号") + private String orderNo; + + @Schema(description = "使用的优惠券") + private Long couponId; + + @Schema(description = "订单总额") + private BigDecimal totalAmount; + + @Schema(description = "优惠券") + private BigDecimal couponAmount; + + @Schema(description = "原价金额") + private BigDecimal originalTotalAmount; + + @Schema(description = "运费") + private BigDecimal feightFee; + + @Schema(description = "支付方式【1->微信】") + private Integer payType; + + @Schema(description = "订单状态【0->待付款;1->待发货;2->已发货;3->待用户收货,已完成;-1->已取消】") + private Integer orderStatus; + + @Schema(description = "收货人姓名") + private String receiverName; + + @Schema(description = "收货人电话") + private String receiverPhone; + + @Schema(description = "收货人地址标签") + private String receiverTagName; + + @Schema(description = "省份/直辖市") + private String receiverProvince; + + @Schema(description = "城市") + private String receiverCity; + + @Schema(description = "区") + private String receiverDistrict; + + @Schema(description = "详细地址") + private String receiverAddress; + + @Schema(description = "支付时间") + private Date paymentTime; + + @Schema(description = "发货时间") + private Date deliveryTime; + + @Schema(description = "确认收货时间") + private Date receiveTime; + + @Schema(description = "订单备注") + private String remark; + + @Schema(description = "取消订单时间") + private Date cancelTime; + + @Schema(description = "取消订单原因") + private String cancelReason; + + @Schema(description = "订单项列表") + private List orderItemList; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderItem.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderItem.java new file mode 100644 index 0000000..855093c --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderItem.java @@ -0,0 +1,33 @@ +package com.atguigu.spzx.model.entity.order; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "订单项实体类") +public class OrderItem extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "订单id") + private Long orderId; + + @Schema(description = "商品sku编号") + private Long skuId; + + @Schema(description = "商品sku名字") + private String skuName; + + @Schema(description = "商品sku图片") + private String thumbImg; + + @Schema(description = "商品sku价格") + private BigDecimal skuPrice; + + @Schema(description = "商品购买的数量") + private Integer skuNum; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderLog.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderLog.java new file mode 100644 index 0000000..aab4f1f --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderLog.java @@ -0,0 +1,25 @@ +package com.atguigu.spzx.model.entity.order; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "订单日志实体对象") +public class OrderLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "订单id") + private Long orderId; + + @Schema(description = "操作人:用户;系统;后台管理员") + private String operateUser; + + @Schema(description = "订单状态") + private Integer processStatus; + + @Schema(description = "备注") + private String note; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderStatistics.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderStatistics.java new file mode 100644 index 0000000..d12ae43 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/order/OrderStatistics.java @@ -0,0 +1,16 @@ +package com.atguigu.spzx.model.entity.order; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class OrderStatistics extends BaseEntity { + + private Date orderDate; + private BigDecimal totalAmount; + private Integer totalNum; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/pay/PaymentInfo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/pay/PaymentInfo.java new file mode 100644 index 0000000..9f34e49 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/pay/PaymentInfo.java @@ -0,0 +1,43 @@ +package com.atguigu.spzx.model.entity.pay; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@Schema(description = "支付信息实体类") +public class PaymentInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "订单号") + private String orderNo; + + @Schema(description = "付款方式:1-微信 2-支付宝") + private Integer payType; + + @Schema(description = "交易编号(微信或支付)") + private String outTradeNo; + + @Schema(description = "支付金额") + private BigDecimal amount; + + @Schema(description = "交易内容") + private String content; + + @Schema(description = "支付状态:0-未支付 1-已支付") + private Integer paymentStatus; + + @Schema(description = "回调时间") + private Date callbackTime; + + @Schema(description = "回调信息") + private String callbackContent; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Brand.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Brand.java new file mode 100644 index 0000000..04b3cf4 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Brand.java @@ -0,0 +1,17 @@ +package com.atguigu.spzx.model.entity.product; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "品牌实体类") +public class Brand extends BaseEntity { + + @Schema(description = "品牌名称") + private String name; + + @Schema(description = "品牌logo") + private String logo; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Category.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Category.java new file mode 100644 index 0000000..a9d1fa0 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Category.java @@ -0,0 +1,34 @@ +package com.atguigu.spzx.model.entity.product; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "分类实体类") +public class Category extends BaseEntity { + + @Schema(description = "分类名称") + private String name; + + @Schema(description = "分类图片url") + private String imageUrl; + + @Schema(description = "父节点id") + private Long parentId; + + @Schema(description = "分类状态: 是否显示[0-不显示,1显示]") + private Integer status; + + @Schema(description = "排序字段") + private Integer orderNum; + + @Schema(description = "是否存在子节点") + private Boolean hasChildren; + + @Schema(description = "子节点List集合") + private List children; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/CategoryBrand.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/CategoryBrand.java new file mode 100644 index 0000000..2df3d02 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/CategoryBrand.java @@ -0,0 +1,26 @@ +package com.atguigu.spzx.model.entity.product; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "分类品牌实体类") +public class CategoryBrand extends BaseEntity { + + @Schema(description = "品牌id") + private Long brandId; + + @Schema(description = "分类id") + private Long categoryId; + + @Schema(description = "分类名称" , required = false) + private String categoryName; + + @Schema(description = "品牌名称" , required = false) + private String brandName; + + @Schema(description = "品牌logo" , required = false) + private String logo; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Product.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Product.java new file mode 100644 index 0000000..5e1e0d9 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/Product.java @@ -0,0 +1,65 @@ +package com.atguigu.spzx.model.entity.product; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "商品实体类") +public class Product extends BaseEntity { + + @Schema(description = "商品名称") + private String name; // 商品名称 + + @Schema(description = "品牌id") + private Long brandId; // 品牌ID + + @Schema(description = "一级分类id") + private Long category1Id; // 一级分类id + + @Schema(description = "二级分类id") + private Long category2Id; // 二级分类id + + @Schema(description = "三级分类id") + private Long category3Id; // 三级分类id + + @Schema(description = "计量单位") + private String unitName; // 计量单位 + + @Schema(description = "轮播图url") + private String sliderUrls; // 轮播图 + + @Schema(description = "商品规格值json串") + private String specValue; // 商品规格值json串 + + @Schema(description = "线上状态:0-初始值,1-上架,-1-自主下架") + private Integer status; // 线上状态:0-初始值,1-上架,-1-自主下架 + + @Schema(description = "审核状态") + private Integer auditStatus; // 审核状态 + + @Schema(description = "审核信息") + private String auditMessage; // 审核信息 + + // 扩展的属性,用来封装响应的数据 + @Schema(description = "品牌名称") + private String brandName; // 品牌 + + @Schema(description = "一级分类名称") + private String category1Name; // 一级分类 + + @Schema(description = "二级分类名称") + private String category2Name; // 二级分类 + + @Schema(description = "三级分类名称") + private String category3Name; // 三级分类 + + @Schema(description = "sku列表集合") + private List productSkuList; // sku列表集合 + + @Schema(description = "图片详情列表") + private String detailsImageUrls; // 图片详情列表 + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductDetails.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductDetails.java new file mode 100644 index 0000000..457e7f0 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductDetails.java @@ -0,0 +1,12 @@ +package com.atguigu.spzx.model.entity.product; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import lombok.Data; + +@Data +public class ProductDetails extends BaseEntity { + + private Long productId; + private String imageUrls; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductSku.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductSku.java new file mode 100644 index 0000000..6515b92 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductSku.java @@ -0,0 +1,53 @@ +package com.atguigu.spzx.model.entity.product; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@Schema(description = "ProductSku") +public class ProductSku extends BaseEntity { + + @Schema(description = "商品编号") + private String skuCode; + + @Schema(description = "skuName") + private String skuName; + + @Schema(description = "商品ID") + private Long productId; + + @Schema(description = "缩略图路径") + private String thumbImg; + + @Schema(description = "售价") + private BigDecimal salePrice; + + @Schema(description = "市场价") + private BigDecimal marketPrice; + + @Schema(description = "成本价") + private BigDecimal costPrice; + + @Schema(description = "库存数") + private Integer stockNum; + + @Schema(description = "销量") + private Integer saleNum; + + @Schema(description = "sku规格信息json") + private String skuSpec; + + @Schema(description = "重量") + private String weight; + + @Schema(description = "体积") + private String volume; + + @Schema(description = "线上状态:0-初始值,1-上架,-1-自主下架") + private Integer status; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductSpec.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductSpec.java new file mode 100644 index 0000000..0128ebd --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/product/ProductSpec.java @@ -0,0 +1,17 @@ +package com.atguigu.spzx.model.entity.product; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "商品规格实体类") +public class ProductSpec extends BaseEntity { + + @Schema(description = "规格名称") + private String specName; // 规格名称 + + @Schema(description = "规格值") + private String specValue; // 规格值 + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysMenu.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysMenu.java new file mode 100644 index 0000000..c02303c --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysMenu.java @@ -0,0 +1,32 @@ +package com.atguigu.spzx.model.entity.system; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "系统菜单实体类") +@Data +public class SysMenu extends BaseEntity { + + @Schema(description = "父节点id") + private Long parentId; + + @Schema(description = "节点标题") + private String title; + + @Schema(description = "组件名称") + private String component; + + @Schema(description = "排序值") + private Integer sortValue; + + @Schema(description = "状态(0:禁止,1:正常)") + private Integer status; + + // 下级列表 + @Schema(description = "子节点") + private List children; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysOperLog.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysOperLog.java new file mode 100644 index 0000000..064ae31 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysOperLog.java @@ -0,0 +1,48 @@ +package com.atguigu.spzx.model.entity.system; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "SysOperLog") +public class SysOperLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "模块标题") + private String title; + + @Schema(description = "方法名称") + private String method; + + @Schema(description = "请求方式") + private String requestMethod; + + private Integer businessType ; // 业务类型(0其它 1新增 2修改 3删除) + + @Schema(description = "操作类别(0其它 1后台用户 2手机端用户)") + private String operatorType; + + @Schema(description = "操作人员") + private String operName; + + @Schema(description = "请求URL") + private String operUrl; + + @Schema(description = "主机地址") + private String operIp; + + @Schema(description = "请求参数") + private String operParam; + + @Schema(description = "返回参数") + private String jsonResult; + + @Schema(description = "操作状态(0正常 1异常)") + private Integer status; + + @Schema(description = "错误消息") + private String errorMsg; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysRole.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysRole.java new file mode 100644 index 0000000..a1c523f --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysRole.java @@ -0,0 +1,22 @@ +package com.atguigu.spzx.model.entity.system; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "角色实体类") +public class SysRole extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "角色名称") + private String roleName; + + @Schema(description = "角色编码") + private String roleCode; + + @Schema(description = "描述") + private String description; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysRoleUser.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysRoleUser.java new file mode 100644 index 0000000..b324b6d --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysRoleUser.java @@ -0,0 +1,12 @@ +package com.atguigu.spzx.model.entity.system; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import lombok.Data; + +@Data +public class SysRoleUser extends BaseEntity { + + private Long roleId; // 角色id + private Long userId; // 用户id + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysUser.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysUser.java new file mode 100644 index 0000000..e51f500 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/system/SysUser.java @@ -0,0 +1,32 @@ +package com.atguigu.spzx.model.entity.system; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "系统用户实体类") +public class SysUser extends BaseEntity { + + @Schema(description = "用户名") + private String userName; + + @Schema(description = "密码") + private String password; + + @Schema(description = "昵称") + private String name; + + @Schema(description = "手机号码") + private String phone; + + @Schema(description = "图像") + private String avatar; + + @Schema(description = "描述") + private String description; + + @Schema(description = "状态(1:正常 0:停用)") + private Integer status; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/user/UserAddress.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/user/UserAddress.java new file mode 100644 index 0000000..763b449 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/user/UserAddress.java @@ -0,0 +1,43 @@ +package com.atguigu.spzx.model.entity.user; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "用户地址实体类") +public class UserAddress extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户ID") + private Long userId; + + @Schema(description = "name") + private String name; + + @Schema(description = "电话") + private String phone; + + @Schema(description = "标签名称") + private String tagName; + + @Schema(description = "provinceCode") + private String provinceCode; + + @Schema(description = "cityCode") + private String cityCode; + + @Schema(description = "districtCode") + private String districtCode; + + @Schema(description = "详细地址") + private String address; + + @Schema(description = "完整地址") + private String fullAddress; + + @Schema(description = "是否默认地址(0:否 1:是)") + private Integer isDefault; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/user/UserInfo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/user/UserInfo.java new file mode 100644 index 0000000..d35bdbb --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/user/UserInfo.java @@ -0,0 +1,51 @@ +package com.atguigu.spzx.model.entity.user; + +import com.atguigu.spzx.model.entity.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "用户实体类") +public class UserInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户名") + private String username; + + @Schema(description = "密码") + private String password; + + @Schema(description = "昵称") + private String nickName; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "性别") + private Integer sex; + + @Schema(description = "电话号码") + private String phone; + + @Schema(description = "备注") + private String memo; + + @Schema(description = "微信open id") + private String openId; + + @Schema(description = "微信开放平台unionID") + private String unionId; + + @Schema(description = "最后一次登录ip") + private String lastLoginIp; + + @Schema(description = "最后一次登录时间") + private Date lastLoginTime; + + @Schema(description = "状态:1为正常,0为禁止") + private Integer status; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/Result.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/Result.java new file mode 100644 index 0000000..bb3a851 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/Result.java @@ -0,0 +1,39 @@ +package com.atguigu.spzx.model.vo.common; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "响应结果实体类") +public class Result { + + //返回码 + @Schema(description = "业务状态码") + private Integer code; + + //返回消息 + @Schema(description = "响应消息") + private String message; + + //返回数据 + @Schema(description = "业务数据") + private T data; + + // 私有化构造 + private Result() {} + + // 返回数据 + public static Result build(T body, Integer code, String message) { + Result result = new Result<>(); + result.setData(body); + result.setCode(code); + result.setMessage(message); + return result; + } + + // 通过枚举构造Result对象 + public static Result build(T body , ResultCodeEnum resultCodeEnum) { + return build(body , resultCodeEnum.getCode() , resultCodeEnum.getMessage()) ; + } + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/ResultCodeEnum.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/ResultCodeEnum.java new file mode 100644 index 0000000..d3d1d5b --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/ResultCodeEnum.java @@ -0,0 +1,30 @@ +package com.atguigu.spzx.model.vo.common; + +import lombok.Getter; + +@Getter // 提供获取属性值的getter方法 +public enum ResultCodeEnum { + + SUCCESS(200 , "操作成功") , + LOGIN_ERROR(201 , "用户名或者密码错误"), + VALIDATECODE_ERROR(202 , "验证码错误") , + LOGIN_AUTH(208 , "用户未登录"), + USER_NAME_IS_EXISTS(209 , "用户名已经存在"), + SYSTEM_ERROR(9999 , "您的网络有问题请稍后重试"), + NODE_ERROR( 217, "该节点下有子节点,不可以删除"), + DATA_ERROR(204, "数据异常"), + ACCOUNT_STOP( 216, "账号已停用"), + + STOCK_LESS( 219, "库存不足"), + + ; + + private Integer code ; // 业务状态码 + private String message ; // 响应消息 + + private ResultCodeEnum(Integer code , String message) { + this.code = code ; + this.message = message ; + } + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/IndexVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/IndexVo.java new file mode 100644 index 0000000..4df17e5 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/IndexVo.java @@ -0,0 +1,15 @@ +package com.atguigu.spzx.model.vo.h5; + +import com.atguigu.spzx.model.entity.product.Category; +import com.atguigu.spzx.model.entity.product.ProductSku; +import lombok.Data; + +import java.util.List; + +@Data +public class IndexVo { + + private List categoryList ; // 一级分类的类别数据 + private List productSkuList ; // 畅销商品列表数据 + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/ProductItemVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/ProductItemVo.java new file mode 100644 index 0000000..bba64d5 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/ProductItemVo.java @@ -0,0 +1,34 @@ +package com.atguigu.spzx.model.vo.h5; + +import com.alibaba.fastjson.JSONArray; +import com.atguigu.spzx.model.entity.product.Product; +import com.atguigu.spzx.model.entity.product.ProductSku; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +@Schema(description = "商品详情对象") +public class ProductItemVo { + + @Schema(description = "商品sku信息") + private ProductSku productSku; + + @Schema(description = "商品信息") + private Product product; + + @Schema(description = "商品轮播图列表") + private List sliderUrlList; + + @Schema(description = "商品详情图片列表") + private List detailsImageUrlList; + + @Schema(description = "商品规格信息") + private JSONArray specValueList; + + @Schema(description = "商品规格对应商品skuId信息") + private Map skuSpecValueMap; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/TradeVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/TradeVo.java new file mode 100644 index 0000000..f2cc0cc --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/TradeVo.java @@ -0,0 +1,20 @@ +package com.atguigu.spzx.model.vo.h5; + +import com.atguigu.spzx.model.entity.order.OrderItem; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@Schema(description = "结算实体类") +public class TradeVo { + + @Schema(description = "结算总金额") + private BigDecimal totalAmount; + + @Schema(description = "结算商品列表") + private List orderItemList; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/UserInfoVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/UserInfoVo.java new file mode 100644 index 0000000..f624427 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/h5/UserInfoVo.java @@ -0,0 +1,16 @@ +package com.atguigu.spzx.model.vo.h5; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "用户类") +public class UserInfoVo { + + @Schema(description = "昵称") + private String nickName; + + @Schema(description = "头像") + private String avatar; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/order/OrderStatisticsVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/order/OrderStatisticsVo.java new file mode 100644 index 0000000..c18a68c --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/order/OrderStatisticsVo.java @@ -0,0 +1,19 @@ +package com.atguigu.spzx.model.vo.order; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@Data +@Schema(description = "统计结果实体类") +public class OrderStatisticsVo { + + @Schema(description = "日期数据集合") + private List dateList ; + + @Schema(description = "总金额数据集合") + private List amountList ; +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/product/CategoryExcelVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/product/CategoryExcelVo.java new file mode 100644 index 0000000..45062a5 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/product/CategoryExcelVo.java @@ -0,0 +1,31 @@ +package com.atguigu.spzx.model.vo.product; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CategoryExcelVo { + + @ExcelProperty(value = "id" ,index = 0) + private Long id; + + @ExcelProperty(value = "名称" ,index = 1) + private String name; + + @ExcelProperty(value = "图片url" ,index = 2) + private String imageUrl ; + + @ExcelProperty(value = "上级id" ,index = 3) + private Long parentId; + + @ExcelProperty(value = "状态" ,index = 4) + private Integer status; + + @ExcelProperty(value = "排序" ,index = 5) + private Integer orderNum; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/LoginVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/LoginVo.java new file mode 100644 index 0000000..1c41ad5 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/LoginVo.java @@ -0,0 +1,16 @@ +package com.atguigu.spzx.model.vo.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "登录成功响应结果实体类") +public class LoginVo { + + @Schema(description = "令牌") + private String token ; + + @Schema(description = "刷新令牌,可以为空") + private String refresh_token ; + +} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/SysMenuVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/SysMenuVo.java new file mode 100644 index 0000000..4b02095 --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/SysMenuVo.java @@ -0,0 +1,21 @@ +package com.atguigu.spzx.model.vo.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "系统菜单响应结果实体类") +public class SysMenuVo { + + @Schema(description = "系统菜单标题") + private String title; + + @Schema(description = "系统菜单名称") + private String name; + + @Schema(description = "系统菜单子菜单列表") + private List children; + +} \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/ValidateCodeVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/ValidateCodeVo.java new file mode 100644 index 0000000..212e8ce --- /dev/null +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/ValidateCodeVo.java @@ -0,0 +1,16 @@ +package com.atguigu.spzx.model.vo.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "验证码响应结果实体类") +public class ValidateCodeVo { + + @Schema(description = "验证码key") + private String codeKey ; // 验证码的key + + @Schema(description = "验证码value") + private String codeValue ; // 图片验证码对应的字符串数据 + +} \ No newline at end of file -- 2.43.0 From d3d1896b68a81acca10884c24222750bafa5a1b3 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 18:21:26 +0800 Subject: [PATCH 03/15] =?UTF-8?q?feat(=E5=88=9D=E5=A7=8B=E5=8C=96):=20?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=BB=9F=E4=B8=80=E8=BF=94=E5=9B=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/GitCommitMessageStorage.xml | 20 +++ .idea/deployment.xml | 6 + .idea/prettier.xml | 6 + .../src/main/java/com/atguigu/App.java | 13 -- .../main/java/com/atguigu/result/Result.java | 132 ++++++++++++++++++ .../com/atguigu/result/ResultCodeEnum.java | 27 ++++ 6 files changed, 191 insertions(+), 13 deletions(-) create mode 100644 .idea/GitCommitMessageStorage.xml create mode 100644 .idea/deployment.xml create mode 100644 .idea/prettier.xml delete mode 100644 spzx-common/common-util/src/main/java/com/atguigu/App.java create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/result/Result.java create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/result/ResultCodeEnum.java diff --git a/.idea/GitCommitMessageStorage.xml b/.idea/GitCommitMessageStorage.xml new file mode 100644 index 0000000..3b56900 --- /dev/null +++ b/.idea/GitCommitMessageStorage.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000..0ebb202 --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/prettier.xml b/.idea/prettier.xml new file mode 100644 index 0000000..b0ab31a --- /dev/null +++ b/.idea/prettier.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/spzx-common/common-util/src/main/java/com/atguigu/App.java b/spzx-common/common-util/src/main/java/com/atguigu/App.java deleted file mode 100644 index 74498e7..0000000 --- a/spzx-common/common-util/src/main/java/com/atguigu/App.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.atguigu; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } -} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/result/Result.java b/spzx-common/common-util/src/main/java/com/atguigu/result/Result.java new file mode 100644 index 0000000..c0afdee --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/result/Result.java @@ -0,0 +1,132 @@ +package com.atguigu.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Result { + // 烦你吗 + private Integer code; + // 返回消息 + private String message; + // 返回数据 + private T data; + + /** + * * 自定义返回体 + * + * @param data 返回体 + * @return Result + */ + protected static Result build(T data) { + Result result = new Result<>(); + if (data != null) { + result.setData(data); + } + return result; + } + + /** + * * 自定义返回体,使用ResultCodeEnum构建 + * + * @param body 返回体 + * @param codeEnum 返回状态码 + * @return Result + */ + public static Result build(T body, ResultCodeEnum codeEnum) { + Result result = build(body); + result.setCode(codeEnum.getCode()); + result.setMessage(codeEnum.getMessage()); + return result; + } + + /** + * * 自定义返回体 + * + * @param body 返回体 + * @param code 返回状态码 + * @param message 返回消息 + * @return Result + */ + public static Result build(T body, Integer code, String message) { + Result result = build(body); + result.setCode(code); + result.setMessage(message); + return result; + } + + /** + * * 操作成功 + * + * @return Result + */ + public static Result success() { + return Result.success(null); + } + + /** + * * 操作成功 + * + * @param data baseCategory1List + */ + public static Result success(T data) { + return build(data, ResultCodeEnum.SUCCESS); + } + + /** + * * 操作成功-状态码 + * + * @param codeEnum 状态码 + */ + public static Result success(ResultCodeEnum codeEnum) { + return success(null, codeEnum); + } + + /** + * * 操作成功-自定义返回数据和状态码 + * + * @param data 返回体 + * @param codeEnum 状态码 + */ + public static Result success(T data, ResultCodeEnum codeEnum) { + return build(data, codeEnum); + } + + /** + * * 操作失败 + */ + public static Result error() { + return Result.build(null); + } + + /** + * * 操作失败-自定义返回数据 + * + * @param data 返回体 + */ + public static Result error(T data) { + return build(data, ResultCodeEnum.FAIL); + } + + /** + * * 操作失败-状态码 + * + * @param codeEnum 状态码 + */ + public static Result error(ResultCodeEnum codeEnum) { + return build(null, codeEnum); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param codeEnum 状态码 + */ + public static Result error(T data, ResultCodeEnum codeEnum) { + return build(data, codeEnum); + } +} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/result/ResultCodeEnum.java b/spzx-common/common-util/src/main/java/com/atguigu/result/ResultCodeEnum.java new file mode 100644 index 0000000..2d36800 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/result/ResultCodeEnum.java @@ -0,0 +1,27 @@ +package com.atguigu.result; + +import lombok.Getter; + +/** + * 统一返回结果状态信息类 + */ +@Getter +public enum ResultCodeEnum { + SUCCESS(200, "成功"), + FAIL(500, "失败"), + USE_NOT_EXIST(500, "失败"), + SERVICE_ERROR(2012, "服务异常"), + DATA_ERROR(204, "数据异常"), + LOGIN_AUTH(208, "未登陆"), + LOGIN_MOBLE_ERROR(208, "登录验证失败"), + ACCOUNT_DEACTIVATION(208, "账户停用"), + PERMISSION(209, "没有权限"); + + private final Integer code; + private final String message; + + ResultCodeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } +} \ No newline at end of file -- 2.43.0 From bcbc312dc32fb68f7c07f62724a41d171f75da10 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 19:22:45 +0800 Subject: [PATCH 04/15] =?UTF-8?q?feat(=E5=88=9D=E5=A7=8B=E5=8C=96):=20?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=9F=BA=E6=9C=AC=E7=BB=93=E6=9E=84=EF=BC=8C?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=88=86=E9=A1=B5=E6=8F=92=E4=BB=B6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=EF=BC=8Cknife4j=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 1 + .idea/dataSources.xml | 32 +++++ .idea/uiDesigner.xml | 124 +++++++++++++++++ pom.xml | 125 +++++++++--------- spzx-common/common-service/pom.xml | 3 +- .../src/main/java/com/atguigu/App.java | 13 -- .../com/atguigu/config/Knife4jConfig.java | 25 ++++ .../constant/LocalDateTimeConstant.java | 8 ++ .../com/atguigu/constant/MessageConstant.java | 20 +++ .../atguigu/constant/PasswordConstant.java | 15 +++ .../com/atguigu/constant/StatusConstant.java | 11 ++ .../com/atguigu/config/Knife4jConfig.class | Bin 0 -> 1851 bytes .../constant/LocalDateTimeConstant.class | Bin 0 -> 613 bytes .../atguigu/constant/MessageConstant.class | Bin 0 -> 1096 bytes .../atguigu/constant/PasswordConstant.class | Bin 0 -> 584 bytes .../com/atguigu/constant/StatusConstant.class | Bin 0 -> 522 bytes spzx-common/common-util/pom.xml | 3 +- .../java/com/atguigu/context/BaseContext.java | 30 +++++ .../com/atguigu/exception/BunnyException.java | 34 +++++ .../exception/LoginFailedException.java | 22 +++ .../exception/PasswordErrorException.java | 22 +++ .../exception/UserNotLoginException.java | 22 +++ .../com/atguigu/context/BaseContext.class | Bin 0 -> 938 bytes .../atguigu/exception/BunnyException.class | Bin 0 -> 2117 bytes .../exception/LoginFailedException.class | Bin 0 -> 836 bytes .../exception/PasswordErrorException.class | Bin 0 -> 848 bytes .../exception/UserNotLoginException.class | Bin 0 -> 848 bytes spzx-manager/pom.xml | 105 ++++++++------- .../src/main/java/com/atguigu/App.java | 13 -- .../spzx/manger/MangerApplication.java | 15 +++ .../manger/controller/IndexController.java | 11 ++ .../spzx/manger/mapper/SysUserMapper.java | 7 + .../spzx/manger/service/SysUserService.java | 4 + .../service/impl/SysUserServiceImpl.java | 7 + .../src/main/resources/application-dev.yml | 16 +++ .../src/main/resources/application.yml | 41 ++++++ spzx-manager/src/main/resources/banner.txt | 16 +++ .../src/main/resources/logback-spring.xml | 56 ++++++++ .../main/resources/mapper/SysUserMapper.xml | 5 + .../src/main/resources/mybatis-config.xml | 16 +++ .../target/classes/application-dev.yml | 16 +++ spzx-manager/target/classes/application.yml | 41 ++++++ spzx-manager/target/classes/banner.txt | 16 +++ .../spzx/manger/MangerApplication.class | Bin 0 -> 911 bytes .../manger/controller/IndexController.class | Bin 0 -> 614 bytes .../spzx/manger/mapper/SysUserMapper.class | Bin 0 -> 219 bytes .../spzx/manger/service/SysUserService.class | Bin 0 -> 141 bytes .../service/impl/SysUserServiceImpl.class | Bin 0 -> 436 bytes .../target/classes/logback-spring.xml | 56 ++++++++ .../target/classes/mapper/SysUserMapper.xml | 5 + .../target/classes/mybatis-config.xml | 16 +++ .../atguigu/spzx/model/vo/common/Result.java | 39 ------ .../spzx/model/vo/common/ResultCodeEnum.java | 30 ----- .../atguigu/spzx/model/vo}/result/Result.java | 2 +- .../spzx/model/vo}/result/ResultCodeEnum.java | 2 +- .../spzx/model/dto/h5/OrderInfoDto.class | Bin 0 -> 3688 bytes .../spzx/model/dto/h5/ProductSkuDto.class | Bin 0 -> 4666 bytes .../spzx/model/dto/h5/UserLoginDto.class | Bin 0 -> 2435 bytes .../spzx/model/dto/h5/UserRegisterDto.class | Bin 0 -> 3354 bytes .../model/dto/order/OrderStatisticsDto.class | Bin 0 -> 2555 bytes .../model/dto/product/CategoryBrandDto.class | Bin 0 -> 2479 bytes .../spzx/model/dto/product/ProductDto.class | Bin 0 -> 3517 bytes .../spzx/model/dto/product/SkuSaleDto.class | Bin 0 -> 2280 bytes .../spzx/model/dto/system/AssginMenuDto.class | Bin 0 -> 2844 bytes .../spzx/model/dto/system/AssginRoleDto.class | Bin 0 -> 2728 bytes .../spzx/model/dto/system/LoginDto.class | Bin 0 -> 3366 bytes .../spzx/model/dto/system/SysOperLogDto.class | Bin 0 -> 3469 bytes .../spzx/model/dto/system/SysRoleDto.class | Bin 0 -> 1975 bytes .../spzx/model/dto/system/SysUserDto.class | Bin 0 -> 2993 bytes .../spzx/model/entity/base/BaseEntity.class | Bin 0 -> 3650 bytes .../spzx/model/entity/base/ProductUnit.class | Bin 0 -> 1998 bytes .../spzx/model/entity/base/Region.class | Bin 0 -> 3595 bytes .../spzx/model/entity/h5/CartInfo.class | Bin 0 -> 5108 bytes .../spzx/model/entity/order/OrderInfo.class | Bin 0 -> 15625 bytes .../spzx/model/entity/order/OrderItem.class | Bin 0 -> 4659 bytes .../spzx/model/entity/order/OrderLog.class | Bin 0 -> 3681 bytes .../model/entity/order/OrderStatistics.class | Bin 0 -> 2961 bytes .../spzx/model/entity/pay/PaymentInfo.class | Bin 0 -> 6407 bytes .../spzx/model/entity/product/Brand.class | Bin 0 -> 2416 bytes .../spzx/model/entity/product/Category.class | Bin 0 -> 5496 bytes .../model/entity/product/CategoryBrand.class | Bin 0 -> 4039 bytes .../spzx/model/entity/product/Product.class | Bin 0 -> 11052 bytes .../model/entity/product/ProductDetails.class | Bin 0 -> 2396 bytes .../model/entity/product/ProductSku.class | Bin 0 -> 8210 bytes .../model/entity/product/ProductSpec.class | Bin 0 -> 2508 bytes .../spzx/model/entity/system/SysMenu.class | Bin 0 -> 4873 bytes .../spzx/model/entity/system/SysOperLog.class | Bin 0 -> 7686 bytes .../spzx/model/entity/system/SysRole.class | Bin 0 -> 3017 bytes .../model/entity/system/SysRoleUser.class | Bin 0 -> 2293 bytes .../spzx/model/entity/system/SysUser.class | Bin 0 -> 4902 bytes .../spzx/model/entity/user/UserAddress.class | Bin 0 -> 6602 bytes .../spzx/model/entity/user/UserInfo.class | Bin 0 -> 7611 bytes .../atguigu/spzx/model/vo/h5/IndexVo.class | Bin 0 -> 2859 bytes .../spzx/model/vo/h5/ProductItemVo.class | Bin 0 -> 5651 bytes .../atguigu/spzx/model/vo/h5/TradeVo.class | Bin 0 -> 2865 bytes .../atguigu/spzx/model/vo/h5/UserInfoVo.class | Bin 0 -> 2393 bytes .../model/vo/order/OrderStatisticsVo.class | Bin 0 -> 2884 bytes .../model/vo/product/CategoryExcelVo.class | Bin 0 -> 4728 bytes .../atguigu/spzx/model/vo/result/Result.class | Bin 0 -> 5823 bytes .../spzx/model/vo/result/ResultCodeEnum.class | Bin 0 -> 2360 bytes .../spzx/model/vo/system/LoginVo.class | Bin 0 -> 2460 bytes .../spzx/model/vo/system/SysMenuVo.class | Bin 0 -> 3236 bytes .../spzx/model/vo/system/ValidateCodeVo.class | Bin 0 -> 2466 bytes 103 files changed, 831 insertions(+), 214 deletions(-) create mode 100644 .idea/dataSources.xml create mode 100644 .idea/uiDesigner.xml delete mode 100644 spzx-common/common-service/src/main/java/com/atguigu/App.java create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/config/Knife4jConfig.java create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/constant/MessageConstant.java create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/constant/PasswordConstant.java create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/constant/StatusConstant.java create mode 100644 spzx-common/common-service/target/classes/com/atguigu/config/Knife4jConfig.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/constant/LocalDateTimeConstant.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/constant/StatusConstant.class create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/exception/BunnyException.java create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/exception/LoginFailedException.java create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/exception/PasswordErrorException.java create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/exception/UserNotLoginException.java create mode 100644 spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/exception/BunnyException.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/exception/LoginFailedException.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/exception/PasswordErrorException.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/exception/UserNotLoginException.class delete mode 100644 spzx-manager/src/main/java/com/atguigu/App.java create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/MangerApplication.java create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysUserMapper.java create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java create mode 100644 spzx-manager/src/main/resources/application-dev.yml create mode 100644 spzx-manager/src/main/resources/application.yml create mode 100644 spzx-manager/src/main/resources/banner.txt create mode 100644 spzx-manager/src/main/resources/logback-spring.xml create mode 100644 spzx-manager/src/main/resources/mapper/SysUserMapper.xml create mode 100644 spzx-manager/src/main/resources/mybatis-config.xml create mode 100644 spzx-manager/target/classes/application-dev.yml create mode 100644 spzx-manager/target/classes/application.yml create mode 100644 spzx-manager/target/classes/banner.txt create mode 100644 spzx-manager/target/classes/com/atguigu/spzx/manger/MangerApplication.class create mode 100644 spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class create mode 100644 spzx-manager/target/classes/com/atguigu/spzx/manger/mapper/SysUserMapper.class create mode 100644 spzx-manager/target/classes/com/atguigu/spzx/manger/service/SysUserService.class create mode 100644 spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.class create mode 100644 spzx-manager/target/classes/logback-spring.xml create mode 100644 spzx-manager/target/classes/mapper/SysUserMapper.xml create mode 100644 spzx-manager/target/classes/mybatis-config.xml delete mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/Result.java delete mode 100644 spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/ResultCodeEnum.java rename {spzx-common/common-util/src/main/java/com/atguigu => spzx-model/src/main/java/com/atguigu/spzx/model/vo}/result/Result.java (98%) rename {spzx-common/common-util/src/main/java/com/atguigu => spzx-model/src/main/java/com/atguigu/spzx/model/vo}/result/ResultCodeEnum.java (93%) create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/OrderInfoDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/ProductSkuDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/UserLoginDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/UserRegisterDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/order/OrderStatisticsDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/product/CategoryBrandDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/product/ProductDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/product/SkuSaleDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/system/AssginMenuDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/system/AssginRoleDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/system/LoginDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/system/SysOperLogDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/system/SysRoleDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/system/SysUserDto.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/base/BaseEntity.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/base/ProductUnit.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/base/Region.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/h5/CartInfo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/order/OrderInfo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/order/OrderItem.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/order/OrderLog.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/order/OrderStatistics.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/pay/PaymentInfo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/product/Brand.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/product/Category.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/product/CategoryBrand.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/product/Product.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductDetails.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductSku.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductSpec.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysMenu.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysOperLog.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysRole.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysRoleUser.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysUser.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/user/UserAddress.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/user/UserInfo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/h5/IndexVo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/h5/ProductItemVo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/h5/TradeVo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/h5/UserInfoVo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/order/OrderStatisticsVo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/product/CategoryExcelVo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/result/Result.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/result/ResultCodeEnum.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/system/LoginVo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/system/SysMenuVo.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/system/ValidateCodeVo.class diff --git a/.idea/compiler.xml b/.idea/compiler.xml index ed9663d..e67f790 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -2,6 +2,7 @@ + diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..cd6416c --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,32 @@ + + + + + redis + true + true + jdbc.RedisDriver + jdbc:redis://106.15.251.123:6379/2 + + + + + + + $ProjectFileDir$ + + + mysql.8 + true + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://106.15.251.123:3305/db_spzx?serverTimezone=GMT + + + + + + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 967a645..3800150 100644 --- a/pom.xml +++ b/pom.xml @@ -1,66 +1,71 @@ - - - - org.springframework.boot - spring-boot-starter-parent - 3.0.5 - - 4.0.0 + + + + org.springframework.boot + spring-boot-starter-parent + 3.0.5 + + 4.0.0 - com.atguigu - spzx-parent - 1.0-SNAPSHOT - pom + com.atguigu + spzx-parent + 1.0-SNAPSHOT + pom - spzx-parent - https://maven.apache.org - - spzx-common - spzx-model - spzx-manager - + spzx-parent + https://maven.apache.org + + spzx-common + spzx-model + spzx-manager + - - 17 - 17 - UTF-8 - 8.0.30 - 2.0.21 - 1.18.20 - 3.0.1 - + + 17 + 17 + UTF-8 + 8.0.32 + 2.0.21 + 1.18.20 + 3.0.1 + 2.1.0 + - - - - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - ${mybatis.version} - + + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + ${mybatis.version} + + + + mysql + mysql-connector-java + ${mysql.version} + - - - mysql - mysql-connector-java - ${mysql.version} - - - - - com.alibaba - fastjson - ${fastjson.version} - - - - - org.projectlombok - lombok - ${lombok.version} - - - + + + com.alibaba + fastjson + ${fastjson.version} + + + + org.projectlombok + lombok + ${lombok.version} + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.version} + + + diff --git a/spzx-common/common-service/pom.xml b/spzx-common/common-service/pom.xml index 7ea1290..0b2adb1 100644 --- a/spzx-common/common-service/pom.xml +++ b/spzx-common/common-service/pom.xml @@ -1,4 +1,4 @@ - 4.0.0 @@ -38,7 +38,6 @@ org.springframework.boot spring-boot-starter-data-redis - provided diff --git a/spzx-common/common-service/src/main/java/com/atguigu/App.java b/spzx-common/common-service/src/main/java/com/atguigu/App.java deleted file mode 100644 index 74498e7..0000000 --- a/spzx-common/common-service/src/main/java/com/atguigu/App.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.atguigu; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } -} diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/Knife4jConfig.java b/spzx-common/common-service/src/main/java/com/atguigu/config/Knife4jConfig.java new file mode 100644 index 0000000..dcadcf1 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/Knife4jConfig.java @@ -0,0 +1,25 @@ +package com.atguigu.config; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Contact; +import io.swagger.v3.oas.models.info.Info; +import org.springdoc.core.models.GroupedOpenApi; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class Knife4jConfig { + @Bean + public GroupedOpenApi adminApi() { + return GroupedOpenApi.builder() // 分组名称 + .group("admin-api").pathsToMatch("/admin/**") // 接口请求路径规则 + .build(); + } + + @Bean + public OpenAPI customOpenAPI() { + return new OpenAPI().info(new Info().title("尚品甑选API接口文档") + .version("1.0").description("尚品甑选API接口文档") + .contact(new Contact().name("atguigu"))); // 设定作者 + } +} \ No newline at end of file diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java b/spzx-common/common-service/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java new file mode 100644 index 0000000..ba175b9 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java @@ -0,0 +1,8 @@ +package com.atguigu.constant; + +public class LocalDateTimeConstant { + public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; + public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm"; + public static final String DEFAULT_DATE_TIME_SECOND_FORMAT = "yyyy-MM-dd HH:mm:ss"; + public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss"; +} diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/MessageConstant.java b/spzx-common/common-service/src/main/java/com/atguigu/constant/MessageConstant.java new file mode 100644 index 0000000..123526d --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/constant/MessageConstant.java @@ -0,0 +1,20 @@ +package com.atguigu.constant; + +/** + * 信息提示常量类 + */ +public class MessageConstant { + public static final String PASSWORD_ERROR = "密码错误"; + public static final String OLD_PASSWORD_ERROR = "旧密码不匹配"; + public static final String OLD_PASSWORD_SAME_NEW_PASSWORD = "旧密码与新密码相同"; + public static final String ACCOUNT_NOT_FOUND = "账号不存在"; + public static final String ACCOUNT_LOCKED = "账号被锁定"; + public static final String UNKNOWN_ERROR = "未知错误"; + public static final String USER_NOT_LOGIN = "用户未登录"; + public static final String USER_TOKEN_OUT_OF_DATE = "用户登录过期"; + public static final String LOGIN_FAILED = "登录失败"; + public static final String UPLOAD_FAILED = "文件上传失败"; + public static final String PASSWORD_EDIT_FAILED = "密码修改失败"; + public static final String ALREADY_EXISTS = "已存在"; + public static final String REQUEST_NOT_EMPTY = "请求不为空"; +} diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/PasswordConstant.java b/spzx-common/common-service/src/main/java/com/atguigu/constant/PasswordConstant.java new file mode 100644 index 0000000..6c4166b --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/constant/PasswordConstant.java @@ -0,0 +1,15 @@ +package com.atguigu.constant; + +/** + * 密码常量 + */ +public class PasswordConstant { + // 默认密码 + public static final String DEFAULT_PASSWORD = "123456"; + // JWT密码 + public static final String DEFAULT_JWT_PASSWORD = "123456"; + // 默认头像 + public static final String AVTAR = "https://oss.aliyuncs.com/aliyun_id_photo_bucket/default_handsome.jpg"; + // 设置token过期时间 + public static final long TOKEN_EXPIRATION = 365L * 24 * 60 * 60 * 1000; +} diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/StatusConstant.java b/spzx-common/common-service/src/main/java/com/atguigu/constant/StatusConstant.java new file mode 100644 index 0000000..eb33661 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/constant/StatusConstant.java @@ -0,0 +1,11 @@ +package com.atguigu.constant; + +/** + * 状态常量,启用或者禁用 + */ +public class StatusConstant { + // 启用为1 + public static final Integer ENABLE = 1; + // 禁用为0 + public static final Integer DISABLE = 0; +} diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/Knife4jConfig.class b/spzx-common/common-service/target/classes/com/atguigu/config/Knife4jConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..652deee7f4f219b08207e4b44a8a542872572ff7 GIT binary patch literal 1851 zcmb_dT~kv>7=D%nPBK~E={UVwPBw?7$!_L+pqK4c zr#E#v?exMs$LYPjiJda-59t4ZPX9!w?V0iR!4lYY$5bxCOzUtvh)hL>Gr(CxtWun!(X&V&Jv>Y>s> z+4$Tyq2x7Fmeq*Qh9;@Y@_b$D$+}{2RuWY$%aCCrH(c85y`ibrtwII|7`jEdru3Mo zD;K?Z!$H==K^$Vpzbqa@XJ7>~%;ZYjJ}<`BmBK6Nb8z^n=(UhC=qJ^@DVvXsSk-TO zIEJ?vyt;^2qa|})#QrM7Z0?KKqQg?WI0nq3B}Jmdy!<<1aK-x?*^d1{Xs}WsqYyw)yD(<_};0_2c({fA#I;LUHT6 zpEvJ4-1_O8tp^XS)rg1pF-po~6;~z0h36(`cSb6gaVpr;<9Umk_i);xI_olwl+pI= zjE4z(wy!KBKUDRY&K;a%II%POw9&EfV;5(wOCJ)bh=W80i9IQJxP;3LX)S7`zVHg_ z+xP{m@gol(W0ENR7AeE^Txn18sDgL4vuPoYK}>u21fP;*n=OW`yAd=m?ttE|4=STs zDkI<2csoAS9CSqm{F+u3Ik855(vEnisa-Jil$4fpNo_@jOJc>QK3g)rs4k08*?s#k z9j~g0YOb^!aDgGyeCwLM=jhEu$EqfmRip@PQfm_nn{mP#`(H1rgp{{CCj8Qhjpf~# zi~mgdloXm^_xni{n_AmXh9P>nUKr~q(O_^FO%nQYMm2qVDhT7Y|1g}}tB_XclCbFk zDe{V1%W%3XqDYcMPP=7Na%ZTy+g}RwN}-F!tF+@ZGnzX`9)tZtiw+cNw2wh;{WBW9 zmI1DzL_4ZG43L$*JV!v*uK!m!+5HXlq<=@>?Ns*2VgpATc>57OYvE;)ru6}`@4+GJ zN=InDjoshIo+BH}JWn&j0&cW-_Xn)tI^nYi!=_@j)s z4FpgZc5&P9_MLNYPW$=w{sG_?$1-Awr;tb^i8Y4Ym_KvH=B}l5hhx+58P;xuEBrf# z`1wUY1&N_-c#gt-D-c$o7@j-zx$7&cXK=g0eNz{XS)X+o3XNu~_NeNEMon)HTHOb& zrZeQ##h{))5w3O3keRFc+zw0$83y@({{V+I1DGh z1-)jy+iA@9kWionf9k5!>C)OOV|E#&$U8cdsCy%mA*%}4>;%rxoalULQzsu~(dQEp z@~oNgp9C3Ss{c=qGLd^;Ffq)Q2z^U`W_%S!i8G|=QvwO>V;wRWHi%+K6K^hYmUwH4 w^TgXryhBPB{tQ(2$U%u1NS5EgUL(sQ)$lbCCoyP5_?$!u2XtpRq#DD~H!|joJ^%m! literal 0 HcmV?d00001 diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..bd8cd10f1e721d9035a70ea3ecde8236d5f60b4c GIT binary patch literal 1096 zcma)*TTc^F5Xa|mkp)Y+h$x~ciU_Ez_e;Dan|5m&mR;;_L7p~C-P9$eO?vSi6U7)% zA1aEHK#VAAq+*CIpz`kL=x)oGFwS;cSbXwja(;9EXU>^_=KTJ%_6q=Rz||TkgYqh< za6l#OB2Yi7+*jz35)RVB$fz2K6WDcK3v2P41j@U*2djW0&=H7?(Mmj+(1Hm%5DCZP zN;ppUtFf38R9!_T;2dB?aY*pFW!C2td;}V~?doDYs)d8s2-KDi3@V|7NM?J;{9q}wnJIm8b@SmAfwmoDk?Ch;o*mjcPQe}mt+s^|7dG z*;3`-e%?%u>r1b(KR@5c3q!nR0tE-LKV$Y&Zf>E}pVKe0zQS#saLdb6a2V_4l8eUU zv?-if*MGhs&|FYSLLbY^f?tvakL+e7mV%?`gr&Bm`Hcx6*5^cYD#2V!@LrFWSGcWF%Khawo(2 zSjIgpvv<6rBvQ~zpjuCVE7{iIV{iLe(ejt=ACQJAIBPnWN*l`$(BEukE%$MaK!q!E zSH%rZ3#)u$Y($Mp%18(^ja($4ga(zUW^yrE5x=L!2y}A)Gn_bgHDV+Y4X7T?tl0F= z@b;R63hhvZzXPBaTA&(gfWU5~GH@U}ZCr=kVB<#QCL8ZX-e=?e$OmlPihRh%ZOBJ# z+>U(A#vRC=Ha>yeZQ~x~Q#L-0OxySjc0$bmj`19JL>CyKvL_8>xzOTyjOMl(FJN>O R)|GG(E+G-PjIj)^`~{LuHKqUn literal 0 HcmV?d00001 diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..075bc8b1917481483ab345a5181741ba9407d12f GIT binary patch literal 584 zcma)(OK;Oa6ot>EaTC&%mQX0q1&fM@P)0l#K#{B_m0GMMN=(Aen%ILg!SO_%F;#z7 zS4b@Q0sN?{*H&AquGk#i@6ODbt8@RJ{{91C7mpjLV5Np?6Ao4xHs|7};E70M-k;88 zXc<;NsZ`m|3@gu`k87wi?1Xy3g^hC+=RDM@u_Cp6AdETES+sZFAhS+)-~HMiU}Q6u#vd8hFP@A=lFK^Q>C;!Q-@JYIo?+|4<8X4-$8pELJFMdtLuY2~ z(tO}t8`BnvI?mJ3w964o2vig-XWHsunukB6<&pd@^27!+kw!)@WP84hX;{DirP~X- z-v$Rm*FWg@7}%jhA=M@)FTqgV(~)G@@Kh>$`C=+FUrZC~v^*V(WGpgO@OiUpXUZ@< z_5Ld=%AhgQc^1ljRaoA+o@Kj84Np*`Z2?u>#|<=Ss5PPrn#4D+@x~S2r1KVTU*6xM oiWU1Ny-Ny%Rw#t_q0;wlTw_X_K)UIFi4Teoet;h( z&Zb2X5qz1;nVG}PnfH&^Hvs22Frgu5K(~-bfuSXDGQ$XPsqATXg%ES8kWV{)2Jd!iJ(Vu6x5pr{0P01Vh;kBGFH$W0BnQ zaY#tbjXfTYcoL|53F`78m@yo?|5&HRP;7hQQWtX=r->(S0>y3rT>MO(k3+gxBfT}$ z)y)*u)v_7Fl<*+2D09d&^7)fzu*a;tMOKxS-6m@-8i-(rvLbfBhEKB!P}W~yJYhAL VIa|>%C>r%@HA3$rWRGGE`=6 4.0.0 @@ -28,7 +28,6 @@ org.springframework.boot spring-boot-starter-web - provided diff --git a/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java b/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java new file mode 100644 index 0000000..5b5d2e0 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java @@ -0,0 +1,30 @@ +package com.atguigu.context; + +public class BaseContext { + public static ThreadLocal threadLocal = new ThreadLocal<>(); + + /** + * 获取当前用户id + * + * @return 用户id + */ + public static Long getUserId() { + return threadLocal.get(); + } + + /** + * 设置用户id + * + * @param userId 用户id + */ + public static void setUserId(Long userId) { + threadLocal.set(userId); + } + + /** + * 移出当前id + */ + public static void removeCurrentId() { + threadLocal.remove(); + } +} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/exception/BunnyException.java b/spzx-common/common-util/src/main/java/com/atguigu/exception/BunnyException.java new file mode 100644 index 0000000..951eca9 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/exception/BunnyException.java @@ -0,0 +1,34 @@ +package com.atguigu.exception; + +import com.atguigu.spzx.model.vo.result.ResultCodeEnum; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.ToString; +import lombok.extern.slf4j.Slf4j; + +@NoArgsConstructor +@Getter +@ToString +@Slf4j +public class BunnyException extends RuntimeException { + + Integer code;// 状态码 + String message;// 描述信息 + + public BunnyException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BunnyException(String message) { + super(message); + log.error("业务异常:{}", message); + } + + public BunnyException(ResultCodeEnum codeEnum) { + super(codeEnum.getMessage()); + this.code = codeEnum.getCode(); + this.message = codeEnum.getMessage(); + } +} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/exception/LoginFailedException.java b/spzx-common/common-util/src/main/java/com/atguigu/exception/LoginFailedException.java new file mode 100644 index 0000000..60eb400 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/exception/LoginFailedException.java @@ -0,0 +1,22 @@ +package com.atguigu.exception; + +import lombok.extern.slf4j.Slf4j; + +/** + * 登录失败 + */ +@Slf4j +public class LoginFailedException extends BunnyException { + /** + * Constructs a new runtime exception with {@code null} as its + * detail message. The cause is not initialized, and may subsequently be + * initialized by a call to {@link #initCause}. + */ + public LoginFailedException() { + } + + public LoginFailedException(String message) { + super(message); + log.error("登录失败:{}", message); + } +} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/exception/PasswordErrorException.java b/spzx-common/common-util/src/main/java/com/atguigu/exception/PasswordErrorException.java new file mode 100644 index 0000000..a5a9ae5 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/exception/PasswordErrorException.java @@ -0,0 +1,22 @@ +package com.atguigu.exception; + +import lombok.extern.slf4j.Slf4j; + +/** + * 密码错误异常 + */ +@Slf4j +public class PasswordErrorException extends BunnyException { + /** + * Constructs a new runtime exception with {@code null} as its + * detail message. The cause is not initialized, and may subsequently be + * initialized by a call to {@link #initCause}. + */ + public PasswordErrorException() { + } + + public PasswordErrorException(String message) { + super(message); + log.error("密码错误异常:{}", message); + } +} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/exception/UserNotLoginException.java b/spzx-common/common-util/src/main/java/com/atguigu/exception/UserNotLoginException.java new file mode 100644 index 0000000..087fdb3 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/exception/UserNotLoginException.java @@ -0,0 +1,22 @@ +package com.atguigu.exception; + +import lombok.extern.slf4j.Slf4j; + +/** + * 用户未登录异常 + */ +@Slf4j +public class UserNotLoginException extends BunnyException { + /** + * Constructs a new runtime exception with {@code null} as its + * detail message. The cause is not initialized, and may subsequently be + * initialized by a call to {@link #initCause}. + */ + public UserNotLoginException() { + } + + public UserNotLoginException(String message) { + super(message); + log.error("用户未登录异常:{}", message); + } +} diff --git a/spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class b/spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class new file mode 100644 index 0000000000000000000000000000000000000000..bb2efeedb15b36ad36a4e2628d6b76e38fcf508d GIT binary patch literal 938 zcmah|NpI6Y6#gcgW5*<+ZCaL=ZY*(t`o<-p2O=RMnMG=e#Bt(`99M}gO~w^Ji$!WB zkPv5n6yl9-uvsJynaO+eEpOgDfBXLF3xLOPEmTl7P_t1-gQ0uI&$+wcQQ*Fuo(W$u zG)7?*s$+&~-Rgi>1;`(u<#9QS);VUuD{xh`HTnaw(VxKP< zw!A|Bv^W@AXrp7GYvU@`7<&IiQ3ZjZf;Re2NhT|EXkde(UGTg(3bg8`jV)Xw>Pl04 z{lA&cMB{GQxTzb^kYX913!SPmm?vQnag|8HP&O^qJ}N0{)8X-up*D_ZMCo{8Bwi%T zsgS39x}eNj+K364p^o!pP0hmQZj!J`9eBMG^4W~Ee(OW(O#r&*Pr!Qlw&}Su zp&KSSzx!w9^!(3-n#Z$OT=Jz*LQ++otRdq>N)ajT+Z_3ed?c)sIFY`18tS`sOAmjf zUjq9yEftzGDof7`?K>1zaEpeG>4BqlmohHxjQ0BA66}2n*`rk-167hiN+tjfa7dAf z+qjdH4^k9heSmR+D_^nxjt~rcv}Ou6;qT%e8Edmgv}@fa;RhG!6@L0#0D3U6S@LY6 z4~Oyt`qdc)+W!8p+7EMkBelP-)iUo)ZJU5Q)P@Hof_4E~pV5AEiS3Ut3Q|^ZjU*lt Hq=KU#z2CsK literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/target/classes/com/atguigu/exception/BunnyException.class b/spzx-common/common-util/target/classes/com/atguigu/exception/BunnyException.class new file mode 100644 index 0000000000000000000000000000000000000000..b3d8918f75e1f3e374c9c9d04c86b3b836b5cc69 GIT binary patch literal 2117 zcmb7FYf~Fl7=8|fY!bFy!li~P1*J3>>{>-_8$cz3MMGPmgQI?0!f{#H?8)q&Fh$2N ze)JbOe)AuAE5(lE59seGf5Y)TyPISKv7;Zd=Q8j6Jm-0DdG`0yzW^*_JA*#-Ye?uA zK$2nVz&tVy$8;@YtLaL+&etB*cthI4Wk@dBt}Ry>Ci2ye-L~{>*D4ow(nuk#A){ju zI>TH|)D2TwP1|Z3yoF+{HeL5P2AZgeJsBx42hUfI~WlF~XqLx$m16S!QFF z5w|kT>KMZ~L%$;|Wh6Yy@SU#~4~(j?6j}Xm`fnI!4oVxwWn|M>h zTRIl;Hc^}p?Ydc$!aHV2lY}rw4A6oO>$Va+*4=wIR1cGaRUxD=J+l!?@rRRG z&)_56)v%%J<74XOPP^OgkvQZ=$Q71MJCi@evl1DGpm$Ao&*A=DRfxl8qkOS|VmDom z504wXhxwN=`&R44t|Ewv={VcA#tVTtzX zKDq`uA)rl0w43Cto;g}95$&%S%}$j5z~z2)c!vV~9Pv&O+LeHFGIVNlj;aYxz=~;r zMsUQk9I<>(t76F&ODA|G(078@ltgvzp>kSHFG8H5**zO$%(WSFSiyT8#+8V%Kvyc9 z2CXUt1H~t}-qDf_F4F;`9vVc5R0Wu)n{Madq5VuKVFE(u;hxU)N6^Fh(s}2Rp3d*L zoo^A9diGH91V#Flo?-zwk1`lT8H(PY!Ut%HpA9f5=h@UL-uMlpDgZ1fqELfQDP0Y8 ZRq!FLsub7g_X#%Xl%d@{Jir!m{{UKa;hq2h literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/target/classes/com/atguigu/exception/LoginFailedException.class b/spzx-common/common-util/target/classes/com/atguigu/exception/LoginFailedException.class new file mode 100644 index 0000000000000000000000000000000000000000..8aa47d00a923f7e35ddcfa715f200b335098e42f GIT binary patch literal 836 zcma))&2G~`5Xb)$$8|nTn}(*P<+IS1Bt`fDCsH_2k&_EZMY(UB#dYM^)!If>h{xc- z9Uh>7R6Ya`zv%=cfPzX7<5MhQ6>7VNEc<{$1%xncwklrI0^+rb{3Oc?>sMX!RcqW`sM830|svz=P zjZP6|*cQ&%n8h5SIX#IR`$5zeK`46@sf;l82~{^%zLSJcZ}%P6`BJqCm?zBrc>U%0 z>#O58hd)2Oz4PK_8E3Izp=M(dON7eFD1s@KiWTAdlu9RRf7IBzNHkk$jj9x>7w6-H>0nUr&S` zp#trXAM@#6kPvRT|Nnn2f;EsyBK#rr)NJ^Rc4WF2_Z|x+1~Qe36BM?*a6I4AZk#Dk zws|Ooi3FmmD2rGKVY#D6xO7VG#y<2<}-)8d&bjU^ym-*DI1D5Ae!4Pt-fm%D?+&qHy4y9^k^AoBD{=sHh0-nE#1;*8ez{OF}7|7wchBXGS mv(hAXfC4uDmbp624-~8Ak2v=pB~7Pcsk##_=FQ1gh5Xb-HkDNb_#4&LK315K(>;&ZssBoYlN-75;C33$$FPF29U zwj*M%<9i)PK6B;c*jJ%*zY~T>+kafb)TST$@jXJaT&WvG#>8g{rE;w$o(Lxpq37(! z+7G>IrJh9|wuLh`rZGdfIXTImh@z)TH@CG`dMsHoP#&RJQ`&Q);L+`tQ&XNNbv1)o z&e-q1{{HUe&o^&>bi4g8ull{-o#!v|IEy(8B^&ctAQVo<64KJ7A>5cy@mLQJ8!hR^ z+(QoMv1nn*#syp?ESx0n2sc*xh>-PUJS>o~Iu73oxWQ`WbRUG&mTF4EOwAAFgHF34 z^?_&v{K8$kBB%@P8-MheiVyvWuu=P;f29#+3%Z x`C-rq$llhwgh&AK69G*~=^pfC(1Vnm0$PRUK3RrkQ=1)Yc4J9dUOf2# zda%j|u)L{<#LoxtJpylG*%P9sAQvw)-BbVmb@z1t{PpDrfZM3#kU-Kx%0?O!gk@K? z9T9sS-|IN?sVg7Hz6zbYoiNCFTR3H75>tfg_#}@askc;ISDqh^Bihe4rj1n;jE2wI8T^6PTUY~tn@x1>q*lE*GO0yg|7!9ifWaUtq@Y{YDW^L>V7D< zI_;*^4@EQJ7jE1YK|^TY_`}Ckyyr)RYxV#5$r{0G%P11wfO=v~{70KI-cvgdgcfZX zOU)TFYi=+cb#7aAv@17!Q`N%QVO=*+Eb_Dyyj`p^^JXi_Hm?_-7udVOH}Rcb?SekA zk-$Yh%^HE_DHL#tE&E8sxXbJrK$aB-u*pE9onEbWVSPldSg3wRF^PY$NtS>&AdMNu zl?K4sqo5&>!?A>A2CuL(P3!;}T=`q(;vheeE#`Ze|Ad^O)1Xw-i4pVe@SQ;UH*1y0 Ad;kCd literal 0 HcmV?d00001 diff --git a/spzx-manager/pom.xml b/spzx-manager/pom.xml index 7c58a92..3193a8f 100644 --- a/spzx-manager/pom.xml +++ b/spzx-manager/pom.xml @@ -1,59 +1,58 @@ - - 4.0.0 - - com.atguigu - spzx-parent - 1.0-SNAPSHOT - + 4.0.0 + + com.atguigu + spzx-parent + 1.0-SNAPSHOT + - spzx-manager - jar + spzx-manager + jar - spzx-manager - https://maven.apache.org + spzx-manager + https://maven.apache.org - - UTF-8 - + + UTF-8 + - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - - - - mysql - mysql-connector-java - - - - com.atguigu - common-service - 1.0-SNAPSHOT - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.3 - - + + + + com.atguigu + common-service + 1.0-SNAPSHOT + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + + mysql + mysql-connector-java + + + + com.github.pagehelper + pagehelper-spring-boot-starter + + diff --git a/spzx-manager/src/main/java/com/atguigu/App.java b/spzx-manager/src/main/java/com/atguigu/App.java deleted file mode 100644 index 74498e7..0000000 --- a/spzx-manager/src/main/java/com/atguigu/App.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.atguigu; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } -} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/MangerApplication.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/MangerApplication.java new file mode 100644 index 0000000..2b3edfe --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/MangerApplication.java @@ -0,0 +1,15 @@ +package com.atguigu.spzx.manger; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.scheduling.annotation.EnableScheduling; + +@SpringBootApplication +@EnableScheduling +@ComponentScan("com.atguigu") +public class MangerApplication { + public static void main(String[] args) { + SpringApplication.run(MangerApplication.class, args); + } +} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java new file mode 100644 index 0000000..f2bae49 --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java @@ -0,0 +1,11 @@ +package com.atguigu.spzx.manger.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "用户接口") +@RestController +@RequestMapping("/admin/system/index") +public class IndexController { +} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysUserMapper.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysUserMapper.java new file mode 100644 index 0000000..402dfe4 --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysUserMapper.java @@ -0,0 +1,7 @@ +package com.atguigu.spzx.manger.mapper; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SysUserMapper { +} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java new file mode 100644 index 0000000..14d717c --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java @@ -0,0 +1,4 @@ +package com.atguigu.spzx.manger.service; + +public interface SysUserService { +} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java new file mode 100644 index 0000000..00ca061 --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java @@ -0,0 +1,7 @@ +package com.atguigu.spzx.manger.service.impl; + +import org.springframework.stereotype.Service; + +@Service +public class SysUserServiceImpl { +} diff --git a/spzx-manager/src/main/resources/application-dev.yml b/spzx-manager/src/main/resources/application-dev.yml new file mode 100644 index 0000000..e72a30c --- /dev/null +++ b/spzx-manager/src/main/resources/application-dev.yml @@ -0,0 +1,16 @@ +bunny: + datasource: + host: 106.15.251.123 + port: 3305 + sqlData: db_spzx + username: root + password: "02120212" + + redis: + host: 106.15.251.123 + port: 6379 + database: 2 + +# jackson: +# date-format: yyyy-MM-dd HH:mm:ss +# time-zone: GMT+8 \ No newline at end of file diff --git a/spzx-manager/src/main/resources/application.yml b/spzx-manager/src/main/resources/application.yml new file mode 100644 index 0000000..8bc2f8d --- /dev/null +++ b/spzx-manager/src/main/resources/application.yml @@ -0,0 +1,41 @@ +server: + port: 8501 +spring: + application: + name: service-spzx + profiles: + active: dev + main: + allow-bean-definition-overriding: true + + datasource: + type: com.zaxxer.hikari.HikariDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + username: ${bunny.datasource.username} + password: "${bunny.datasource.password}" + data: + redis: + host: ${bunny.redis.host} + port: ${bunny.redis.port} + database: ${bunny.redis.database} + +logging: + level: + com.atguigu.mapper: debug + com.atguigu.controller: info + com.atguigu.service: info + com.github.pagehelper: debug + pattern: + dateformat: HH:mm:ss:SSS + file: + path: " logs/${spring.application.name}" + +mybatis: + type-aliases-package: com.atguigu.spzx.model + mapper-locations: classpath:mapper/*.xml + config-location: classpath:mybatis-config.xml +# configuration: +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +# map-underscore-to-camel-case: true +# auto-mapping-behavior: full \ No newline at end of file diff --git a/spzx-manager/src/main/resources/banner.txt b/spzx-manager/src/main/resources/banner.txt new file mode 100644 index 0000000..cc77fc2 --- /dev/null +++ b/spzx-manager/src/main/resources/banner.txt @@ -0,0 +1,16 @@ +-----------------▄██-█▄--------- +-----------------███▄██▄-------- +-----------------███████-------- +-----------------▀███████------- +-------------------██████▄▄----- +-------------------█████████▄--- +-------------------██████▄████-- +-------▄███████████████████████- +-----▄███████████████████████▀-- +---▄██████████████████████------ +---███████████████████████------ +---███████████████████████------ +-▄▄██████████████████████▀------ +-█████████████████▀█████-------- +-▀██████████████▀▀-▀█████▄------ +-------▀▀▀▀▀▀▀▀▀------▀▀▀▀------ \ No newline at end of file diff --git a/spzx-manager/src/main/resources/logback-spring.xml b/spzx-manager/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..eb59d34 --- /dev/null +++ b/spzx-manager/src/main/resources/logback-spring.xml @@ -0,0 +1,56 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spzx-manager/src/main/resources/mapper/SysUserMapper.xml b/spzx-manager/src/main/resources/mapper/SysUserMapper.xml new file mode 100644 index 0000000..1145174 --- /dev/null +++ b/spzx-manager/src/main/resources/mapper/SysUserMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/spzx-manager/src/main/resources/mybatis-config.xml b/spzx-manager/src/main/resources/mybatis-config.xml new file mode 100644 index 0000000..89898c2 --- /dev/null +++ b/spzx-manager/src/main/resources/mybatis-config.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/spzx-manager/target/classes/application-dev.yml b/spzx-manager/target/classes/application-dev.yml new file mode 100644 index 0000000..e72a30c --- /dev/null +++ b/spzx-manager/target/classes/application-dev.yml @@ -0,0 +1,16 @@ +bunny: + datasource: + host: 106.15.251.123 + port: 3305 + sqlData: db_spzx + username: root + password: "02120212" + + redis: + host: 106.15.251.123 + port: 6379 + database: 2 + +# jackson: +# date-format: yyyy-MM-dd HH:mm:ss +# time-zone: GMT+8 \ No newline at end of file diff --git a/spzx-manager/target/classes/application.yml b/spzx-manager/target/classes/application.yml new file mode 100644 index 0000000..8bc2f8d --- /dev/null +++ b/spzx-manager/target/classes/application.yml @@ -0,0 +1,41 @@ +server: + port: 8501 +spring: + application: + name: service-spzx + profiles: + active: dev + main: + allow-bean-definition-overriding: true + + datasource: + type: com.zaxxer.hikari.HikariDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + username: ${bunny.datasource.username} + password: "${bunny.datasource.password}" + data: + redis: + host: ${bunny.redis.host} + port: ${bunny.redis.port} + database: ${bunny.redis.database} + +logging: + level: + com.atguigu.mapper: debug + com.atguigu.controller: info + com.atguigu.service: info + com.github.pagehelper: debug + pattern: + dateformat: HH:mm:ss:SSS + file: + path: " logs/${spring.application.name}" + +mybatis: + type-aliases-package: com.atguigu.spzx.model + mapper-locations: classpath:mapper/*.xml + config-location: classpath:mybatis-config.xml +# configuration: +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +# map-underscore-to-camel-case: true +# auto-mapping-behavior: full \ No newline at end of file diff --git a/spzx-manager/target/classes/banner.txt b/spzx-manager/target/classes/banner.txt new file mode 100644 index 0000000..cc77fc2 --- /dev/null +++ b/spzx-manager/target/classes/banner.txt @@ -0,0 +1,16 @@ +-----------------▄██-█▄--------- +-----------------███▄██▄-------- +-----------------███████-------- +-----------------▀███████------- +-------------------██████▄▄----- +-------------------█████████▄--- +-------------------██████▄████-- +-------▄███████████████████████- +-----▄███████████████████████▀-- +---▄██████████████████████------ +---███████████████████████------ +---███████████████████████------ +-▄▄██████████████████████▀------ +-█████████████████▀█████-------- +-▀██████████████▀▀-▀█████▄------ +-------▀▀▀▀▀▀▀▀▀------▀▀▀▀------ \ No newline at end of file diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/MangerApplication.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/MangerApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..073831e62c2b2a8891b773db5d7f088f600eb348 GIT binary patch literal 911 zcma)5OK%e~5dNIkrb%c^3W4(OElH*N)=Nqyh~Sh0A}AbsayIV9W!H|p-nQajaRPDR z2k@g1<0Z5!u?JT2j65^nJihV%{Pq0@faln2p@M3FS_gGB7`D&Fh2XK!5q~>Bm!V^5 z94W2bF+;UKm<4Du3__D|;i61M8BbTAuXsWLY57U6UaVHJ3WZZfx6nd6K&OLS*kl+Q z8xg=N9i3T`$V+2C@wqXMPjh1dN#$&&8Rq@TO-tigr0M9iV3|6fY&4jZWe$yY^2+hC z(Pz}E74ujYN|4#RM+~*GSxAPhiPG{-mdvI7;A0uO6BCMfCam)JwXx=wDrMN8{5K80 zL?RT8)9aUYKO?`e5hdLzann{#q+6QBJK;%l(o$e+YBC$j*UGoq`-k`gPa4DS`%F8P z$eBu&A6{$Y^2Jbw<5JG@ZHUYnA}=RRu6Og2)>I&mMmj1@kcLaS$YRg3@qe&>hS)!eeR>L(;@NL;()y18 literal 0 HcmV?d00001 diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class new file mode 100644 index 0000000000000000000000000000000000000000..c9ee57fdd8b6b06ffa6c5b26e5314881204c1488 GIT binary patch literal 614 zcmb7B%}x|S5dNCoWp!PC1VjlZZot7x)PspXi6JpD86ZKj7fv;^&CttC_uAdFyZQv4 z^x_*B6R(~~Joo^Q(usGlm zQ^7W;{dAzSs4)A~SQDQsG&Z+-ZQM|JkhzjL=9S4S3d463DkVXC%AAef6@{3uY+p}y zF0ev#$MvGPfSpFlw6;{r?w9{@41FoBS$U{9;4q-v9>Nf2-}1`fcX5NR0@9{gnc zS@!Gwcmh~q7^A~5&vZrHTNW-XriUipP7Zxsj-Q^n$9Q=3auly98MJK!`(?6 zD+&j(%d`ne!AYU>`OCA;?uzg+Fz!^3$>_=XN1X@q52o*y*H>= e5o+iNmgN%H1iRI}Dd&1s->9&Me$}C{348;|*mD&C literal 0 HcmV?d00001 diff --git a/spzx-manager/target/classes/logback-spring.xml b/spzx-manager/target/classes/logback-spring.xml new file mode 100644 index 0000000..eb59d34 --- /dev/null +++ b/spzx-manager/target/classes/logback-spring.xml @@ -0,0 +1,56 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spzx-manager/target/classes/mapper/SysUserMapper.xml b/spzx-manager/target/classes/mapper/SysUserMapper.xml new file mode 100644 index 0000000..1145174 --- /dev/null +++ b/spzx-manager/target/classes/mapper/SysUserMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/spzx-manager/target/classes/mybatis-config.xml b/spzx-manager/target/classes/mybatis-config.xml new file mode 100644 index 0000000..89898c2 --- /dev/null +++ b/spzx-manager/target/classes/mybatis-config.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/Result.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/Result.java deleted file mode 100644 index bb3a851..0000000 --- a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/Result.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.atguigu.spzx.model.vo.common; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -@Data -@Schema(description = "响应结果实体类") -public class Result { - - //返回码 - @Schema(description = "业务状态码") - private Integer code; - - //返回消息 - @Schema(description = "响应消息") - private String message; - - //返回数据 - @Schema(description = "业务数据") - private T data; - - // 私有化构造 - private Result() {} - - // 返回数据 - public static Result build(T body, Integer code, String message) { - Result result = new Result<>(); - result.setData(body); - result.setCode(code); - result.setMessage(message); - return result; - } - - // 通过枚举构造Result对象 - public static Result build(T body , ResultCodeEnum resultCodeEnum) { - return build(body , resultCodeEnum.getCode() , resultCodeEnum.getMessage()) ; - } - -} diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/ResultCodeEnum.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/ResultCodeEnum.java deleted file mode 100644 index d3d1d5b..0000000 --- a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/common/ResultCodeEnum.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.atguigu.spzx.model.vo.common; - -import lombok.Getter; - -@Getter // 提供获取属性值的getter方法 -public enum ResultCodeEnum { - - SUCCESS(200 , "操作成功") , - LOGIN_ERROR(201 , "用户名或者密码错误"), - VALIDATECODE_ERROR(202 , "验证码错误") , - LOGIN_AUTH(208 , "用户未登录"), - USER_NAME_IS_EXISTS(209 , "用户名已经存在"), - SYSTEM_ERROR(9999 , "您的网络有问题请稍后重试"), - NODE_ERROR( 217, "该节点下有子节点,不可以删除"), - DATA_ERROR(204, "数据异常"), - ACCOUNT_STOP( 216, "账号已停用"), - - STOCK_LESS( 219, "库存不足"), - - ; - - private Integer code ; // 业务状态码 - private String message ; // 响应消息 - - private ResultCodeEnum(Integer code , String message) { - this.code = code ; - this.message = message ; - } - -} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/result/Result.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/Result.java similarity index 98% rename from spzx-common/common-util/src/main/java/com/atguigu/result/Result.java rename to spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/Result.java index c0afdee..cc30c54 100644 --- a/spzx-common/common-util/src/main/java/com/atguigu/result/Result.java +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/Result.java @@ -1,4 +1,4 @@ -package com.atguigu.result; +package com.atguigu.spzx.model.vo.result; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/spzx-common/common-util/src/main/java/com/atguigu/result/ResultCodeEnum.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/ResultCodeEnum.java similarity index 93% rename from spzx-common/common-util/src/main/java/com/atguigu/result/ResultCodeEnum.java rename to spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/ResultCodeEnum.java index 2d36800..33f9a56 100644 --- a/spzx-common/common-util/src/main/java/com/atguigu/result/ResultCodeEnum.java +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/ResultCodeEnum.java @@ -1,4 +1,4 @@ -package com.atguigu.result; +package com.atguigu.spzx.model.vo.result; import lombok.Getter; diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/OrderInfoDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/OrderInfoDto.class new file mode 100644 index 0000000000000000000000000000000000000000..6393a2ee40ac7411fd17f1064cff9e97b586ae60 GIT binary patch literal 3688 zcmbVO-*XdH6#j0qo86?_Hf?E26cIFN+NMNNP?8pb{(wpfNTDd8vQ4(h(j*&qH;gzw zJ3cw%la4dK%8bK%f+3!t-bg}5QbJ0>5EO=)s?jQ{ zcD<|DyG5(>$;ZW(QPY~mnr##tM~fHCnr5!Hw~Qs*U>NRNnt7^LGd0Uvt@U zT`zOvBML^5W=L*ndc9$v&S1v8i>rby?K7yTYz!O5T(KL^h#IE5~7L9gQwXfwrz{yMvyKi@aPl<=<%F&XZo%L8T23& z^15Dct9I8Ur%r`5<}16@q}H}|`%cj*0IxEMgYt4jM4z|0_tcRD_iOP&Wk_qghC zYAZUg=rK2CZcjeU8!*+%X~VEB+f+Ml(O9DiR8y!yld#3ldYvKH@6~$ywy~`hUGwho zUs0>JVcuc*I#`Sz&^3BiZP%Kbm8%%WcDGaB?c_U+Ye4Zb6-)&DdccC;kONbmiAA;9 zT-R-_EJJ5l4hEkeD2N4CIM8F34_s!sG{Ecvo2HYr+HPy+VpFv&&5}U(!=WAYL`5y3 z&9ML9p_F`=A{?Z?9iw(D(35Ukl4AUBbl!C7Id8hu!0@IcAIC7sbdA%qL^DNtGkS|N zzkvPdK+5#w%RmzI^i*5`eF&VO5#u)*JqMM4g7gC|#?V(Dj#Q=_EJArWtelQirmHMM zc`U3v5vfd98~GP@dorw?iBNW_dyDoyiBq1D61_R`iJ94-Aw@HnaSD8hSQ`c zG8&|5u!yB7lfzGIl4rYT(j6>gCCcR3)0*Uk(=$2Y*gu1_h&$|6$aF98Np3P8$huoH zI|FxXaFx(*IVI>*>v(^YDcZzk`E8n{FCW)`_9?xGNa_CU%y$rld$Yeo{svc7pD)m&vAhy0cWs{izJDJ(eMsQ2{b9kmq?OeQdO>#B;!kJ2bW1o;w$<% zy+Tq78|23^j7suf7?B`9Mn*!6elmNEy{?$tMfB_R93@BKU%PHnoV@W05P3FuoWWxs zEC8_=C-lDRKkZcr-a^z2=x2El!N!~&^Mj34w`>`97=UjiAP4o*G&^Ykw~#Opw~Z3eH3 eOpmz_o#MC&mEJO0+oXR3w`i0iX`7feko^bjy8L7S literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/ProductSkuDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/ProductSkuDto.class new file mode 100644 index 0000000000000000000000000000000000000000..e9d89cca544d7b326796cb876594a5d432192099 GIT binary patch literal 4666 zcmbtY-*X#R75>&*iLL$NotbT1^=vwgTa;U(#B01Q9DWF;L;yJ*3#BeENdNU z<<#X@OKIwqlm-fu!W4$UOv6JcbZFd+V;FcTGd%Ld3{T8NF@5SkkW#+8dnK*prIQXb z*6QAKzH|26bH01-mH+mi^*;fa!1*v5(5OMx5kOEu>nUT|h-Ho3eC+7lDKlv+2##lR z8T)<(jlF%dVT916A*`brx`MVUJdv}_c{8s-TQ;&q^XStGI(rj+Q(F*YO^9HdhE^SI zXjd?hv=(EAJzvbs7h{E`XP=2JS}8LdOW9T|JrX;Xw^GHVJ+n}J$hH&&tb9tmW&8hd zyhBF^IvK@+xpIbB1??W>jGfQq=A8)c&=JK>0_XBZE|nm#)dQTeBy6{iI|ZycX>fg3 zeq~=GB^K~09eZlz!>;@;9e3Br_a{w7|g z`*ieUKtXukv=5ZSYwz_Y(+N-%Z%D_z!g0_PUJJtfvpV((^9ao+t6>Y(ejT5yS21#- z`n--W)T?Ch_vwgZjKS04Q8)h`HPOi8j|o2$I_}38-QXW77hy*YT$VwE|DcWon565p zQAkg+@D9%s?PTXc9f$C+g04kl!JM>mtiWR#o1k35Hga}B!HPG7(y1q>PLBSMd3jad zyvw&Jh#oKI?98G$n<-@GvgU)ioMjt!hQTQqoXS|S!WmF0G#3 zeEYg9SU+DUxOT2aFnaR`KPs)i`oYHP=Jk!zg;jSN-?!(+^>=Una-;OhOVq}P<@EiZ zz9OdkKiD{@Ky^#8Z7P#9j}#Z@%=`(1s}#G*N*dW&BcBm-DOBxrhRYtB`UG2<>kb!8 zyTXu~-5|5vH_Kf)ZQ5xob7Vn`5s|c*%sTq9B?WwtRjSXs9!4};cEq?Ide@D zN$yUs&k76ZR$&M7_7k~lMO(7dqAlqn6Frrd(&C7#^HxXgX(eo-E~G|Q3v*?payx#3n?r3|+^pRtYP!nCm@>l`?CJTZNcX-Kf&r zU7p@kvyAH03AZ|R!V31tAVNKr7lv%hEj^1oV-@pB^H9cNUCk+QuQ*c_>@EG|EcZug z_2R!T{pRL{H#Xn-)y zb*eL=^pVtwT+Yl-W{pC@ENEC&aL<;M`DH@G%L=+b9!es)X~SNg9Sv;zK|XneL&0Ir zn)#jJ=Su}VLIscPt%@lsct~$mOjE&AdaL3H6+EW5DvnaYTgg_%F^aj(8J&Vh8P_C% z3cp+W--XhzUW0ZOEpJoMfa83&L*+BbXOz#K5SNV^N_5uJQOxQ@j8L>8*Xfr>Hj2tLML^~MojW8M&ajCa)=xA_|L4&h_mU2nX@*O<2qALG6C z#$CR~yodN0x6~W&^fjKvV@#_kU!30#+4={rVtci2Zn}exb*GDv=@!*=Y55gVC0^gq z%19o^6MincZr7ztXz4QQxO~#z<*wUx>23w-@=nL)Q~oZyZ`Y-}iKNRtj?1t5yWD%b zF5T@XUEb}u{2IRQmrKvK`uOs=8&|q)b6oOj?7D1F`Mr&myEV}NCIae}fxjT~GXxs1 z4E!09>B0Ur^f*%vdXEh95m$%)isq>L9@;KLABw7L7%U@V@c<#QcrY3enBaS8zl@e> zAR6?5hT|GR!|_m56QGa;Y0;1eG!kzjXe1tvHVIHzf|{aX4`?*rOwedtk2VXCEloho?CTB8v-{=SV{yFC)!S2tULEG8{GGBJrm<3S*52?*d27 z*uVp{GT0aY$pc`KqZa%NyO8530*moZp+gJZLPSI4Lv(6r;9p4j5O=u4rcX44B*#gT zLlr;BB;W4iaz#4`2v&$Jd7H1d8S}L90jQv#u<(@yoxS7!%;{SSGf!NM--?muA;D@P?V48tU7NH zf(``AfHFp{6-ijo1FItIr4p>wf~$BRg)|9mF{xVl>!cz7W#TT7c<-OHURC@@#a~Tx z=6j`bNjS`0iu*t}i8C%pB?!dNFh3*wjIQG$p#Cs)3G7}yx@9$0JnPW>8}+xWZ{k~2 Wg!r0o^YcBNH@j)JG~+OB?vHcN`OZ1tJ?AEW z{QKY+0Mob{M+o64lmt{n7?Ricb*|UBS=BEuUK3@PA#&0%4fhm7cs#ujgN9fX@dWyi zV91oMhR)q;%c!<=r}^Ruv(Kl&JD}1#7Vd#fgwCc!ZJ6{e%Ru5hT-vmy%%Rb{hm}FPGAJP82YNh zmEJvfJIB)j1K**{Je9!n5<4O!up<%nB=AB9VSY1=5ME4RANEriHSW}AD9bh>b3;Vq zfds~IkYQJYFNqn;EOYl=!zCrtak=R_499~3`~J5_)FViS)RmU$8V#{vIL2aKoHk9% z<*q^43=;*z(w!T;S{1f_{fKUHN9SDyy&)9bM zTmSNN%76Xtr;onVdqL17?o78j{G`cP%XD6Y=(Xr-B`Ei2HNs~ zz*Fed8iTLU74(-}US2Blrk}4me`T(CmR!#fWwvlyb?T2;05LY!HP&3qONSv|vRZao zoHHboJAz$tNcI84ZtpH0ee=`$&$s`&yS8!v*7_H>Hg4Y|9?n>n>$o;=dW1NG5uA_X z0_LK)C=2f`hOurp8Rm6sN$8$uuNKeovTNBl8NLoyp|9wHUf^b>E}XG~Wi7Ru`R%0{ zkZdu$db25dsJ|c3@APLtdEA$z6kfsBAtF|9x z5F;TyrZi^BMyHw4tY+50?zbT)Xq3ltoTO2rkOB^oGH6XN7>!$ve?ase9fr^~?(1nx zk5>=l{-=!xdKw?btK>p@&e1Fhh-9)qBHBCd5l_R9TV~@?^%~i!)UHTUBu9Ef_CG76 zN3st&*oLGh+mG^Znxo{cmd$(zRawdY2JH^i@JjYqXvK-lDw6FjEp}d-pdqJB{*Jzs z@(??gk(f*=tJvMq7|p4qGMbB|RH+krh@oZlr_@xWqok~muW;ZBy!*T0#jwdk4M#CW zsSl%sV|1q>>e5-fPO>mEIECZ1QgEJ%>;$b;6fsJCPZ584!rw<uCP1f8o^1F$6tW7U{&5=kJ z!Jh=7(ws}?Pb$-G689wYHKI^UW|tA2T*clGqC9^c3~W#dVZ5uN}HUEP@a%LA#xZaLcrJ)QtIwQQZNj)qtMY& zwu(rN{GHzHmE#hMG98df%7h-^CE)3%3AXEiAH9MzZK`LUej#RYmJT$6Jx8AcF3~Pd LtIK$s>LT?Yu~qly literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/UserRegisterDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/h5/UserRegisterDto.class new file mode 100644 index 0000000000000000000000000000000000000000..e48a6c6635c0d230cd9a4bbcc1065afeec42a8c5 GIT binary patch literal 3354 zcmb7GZEqA+6n^e@W@mOgeWA346-26weP>hzb(bPgs8rihTPX6PGTj|^hwjd-GqWJZ zFMJ^w(P&~KF`DQXO9%-s3Pe5_{ep@AqXqwii095rce`ClO?GC^ob#OLo_o%@XZFv3 z?)?g22&dzSph1G5Ktzs!mo&#YYuQ<@T%(}PQ<_F*Zi3vovRy$3R|*+gGERzh3f3b*t{KhT z|3O(RFm&`(t>SMe-Fu9KHz?SMrx_Y^y351#gKF>Tt#Sy$;wgGY!Dh}K)j6@l8J<<} zT*xpP1k3eX6g(g5CxUpnzDGeX*GshGuorR!{R##!NFnDnC(o5$mPgyDHmZUb@FK&y zqBf@wTV_Ucj~Fh2Ovlws*I_tOy}2OPmC>(8Q)kl*iK(*b8by7^aE#f4zQ;5zS91+o zpJ8CkuvF))mdok3dS;tyX^yH@0BTXs8k#zt$?HWeO-at`PR2G$+?yfx;HxW(7w;~7 z@fqcF;rfLK-=8O8@$&5l^EVh;7C-rP@!NZUUA^@1`gzYJ_=#y5GfaJ=T%6VILmCCd zTgb|2g&EB@_7FHF=Oubtf$AoFKWqGju@4bvJKiCpDYeklLD-;*Mbh z_-|p^sn}%m!)Mg~)jc0{BZFwUdEI7c;(;eC2c+54S1EizcrF+MKtCI z5*e@0;y%6q(lqUAnYnST6eLlcoEjb9&%j2hGPdrN3p5B~Rk6g9m1See$_irACzM^w zPZ~pf+A7-_eZ=4;Yp)pzTlo-RP!@l>vT)(j!u4Ms-u!`*yw|c^$F;SRpKYflig)99 z5ARDj$3=8U~`yZE{7TBGSBc3>!qxX znx<|K7ijqCj)YSTTUI2c-d-i-88$r`N_F=WgD#p~5gJGW-D&89;U#)&q~|ueUUsmZ z3^cP>8g`I@=Jra%D`cSAz0&Y1nn+1sBD%lEhaf!}J;lDeU^hvKAVqg>=Jzz+IST=> zlfGsknWj43mplIq=>{3Aog3>q(?GA|+*Iq_T-TYVejVr5TIV%&o$1q1$9Zk7b9-Iq zU3i@~$M>9~CofjCum3ir`Wfr=5kbay9{sZJCO?q|7+NWkJ@qM@R!iwOL_pc%QSPlz z*}7Uvzm)>YHji?+KIPigQu<98P7BBc_@Pk;SM&1h^~}KkgilTA#zOgKHBEdln@iq zDo`>d5h$6G6A}l>0Z2;7RiN%vj6mI~cp}C@@cDMMA1>kmNdmpkVU#2hgGYUleL`MiQBL zHTXWO54ArL{QeFn0-p^d6b%a*N4zrA-!4+okzp5zLL#D4YkH?J>zRMay?mrPV~^4eIxNC*5_f+97b zh)KLnk&0A?DUu?T)>D|K4K>i;&v6_gNx&|e$%jc2aTMz?LsHaB{#D42Ng+s(8KZ=Q zvB%_Cd5>^K2gDE%VuazNc;=K1B__^ literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/order/OrderStatisticsDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/order/OrderStatisticsDto.class new file mode 100644 index 0000000000000000000000000000000000000000..29bb4c5f8f291ad549cfc6a15f20ef2eb2ed5859 GIT binary patch literal 2555 zcmbVO&u>&!6#nkan;&hb?NBH%77?UqfAUahg$_lb6ezZUw5f@1yv*FpJUa7UeeVs5 zEB9_pSYV83bYVBdNP;y1HM+sXzriJxxOXYycjvufrZW>`Oxye8+;hHj?sv|)ufP3$ z_a^|;Sn5Os(FBYXVu%Z*ugI&?EJ?dyUbuWk<$QtoG0V36;{ws4;pGk_(UCxB3SCGE z9LhOmQ~HI9Rj8QW>Id(eWhbvnX5M#9$IUC(yr9QLU;38kTRHEP?+EnfTqS+AWR=xP zRj_P8=~h+WAhNY)PRHTLqFiY0th}ktKotp$3p3`0Vgo zTDd=k?btyt1?A5)yWTc5++Y_v*Q{hxct*R3D~<1Ipj|0EtAWy+fT|%y@LUReu$Lhf zrB|FG4OPbG`pEOX6b7+hU`JW5s2Ru3N&ijDr;_dY()K-pBaOj_L9~X|CQ^aSrHbv7 z%4N&5E|=5^+jcbF#1T#>QuSvb?WNWi>Rocyd$gM2M)sURn#Y=MwvkYmD)#fU% zQexYsTV3=th^jzI-wEz5(7EVT+?+aX=@jf}?YaZH!Pq1lAAk1f&Q}{ZzkG0S{oyyC zKlt(bquclB?WE)Qp6|-lfIP1^jx(J&i@5~O>FRx5V6fh!mVMP(QD)#gDCpBN=R58- zflnGsIaCZl&q_OAQr_Ua#q7Y(6mP(73ud+!j z2u!w8Gt`vhX)(5^E+Wy>VwmMWXWPo1DM`;$UIG^d_P6lS?wSc)64?Fks!V&p3HI`p ziSWgU@P{uf1YY2-i}Q>88}cyB1HOr^2P5d9kdHXWQQDZC1?Skv_Yk+MkYgP6u^z`c zY7{Eq0F}WtA4!gzjqf1wEe|888+Wxe=EK;=xVzc7r>*fpyhIn;^Au-IKzwBMJ0#l2 zy*ZDn^xosdy%)b>jEY zw}$RaEEBIO8Mo*w+K_@Ee`kXjp7Kz{VNCGq{aC~#a~fgap291XMKOZoIKq{IGc2;B zT*a_}0rEXT{<6g1!w-A%FZ3jke2nc0MEIK&kFhgYb_j%I93~lt{``hy9HmR0vY2K; zN7`5{L8L*(YL%vIZjyeVB2HH6<=2xUT?D@qBF1?tojqnuS4rHJ&K5~wGCjJ6#P~XP zzoX>?Q-(gs7~x4$6U(Dr?Fl;^poWA+NzF0-52U+hg7i$&YbOrkRqmqL$9jH^E2B!z zIT%kUFi4INBm_b{p;CPx(Sm-&Y6>+SW3z~A^mpQEuN=`(ylIcVq`uHyJP$NCO=G+E jgwY!~S*3cW`Gq)zSso+_dzydqIL}=tR~PUG>mu_HVFM^2 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/product/CategoryBrandDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/product/CategoryBrandDto.class new file mode 100644 index 0000000000000000000000000000000000000000..895af0ce17327d2746cc0648265f7871e3234abd GIT binary patch literal 2479 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 Dvj4i) literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/AssginMenuDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/AssginMenuDto.class new file mode 100644 index 0000000000000000000000000000000000000000..6e61f522f903ec19acf5f89a0fe42fc6414337bf GIT binary patch literal 2844 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 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/LoginDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/LoginDto.class new file mode 100644 index 0000000000000000000000000000000000000000..b74a11748bd4a0dbc41a075b3df30d59e4afee09 GIT binary patch literal 3366 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 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/SysRoleDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/SysRoleDto.class new file mode 100644 index 0000000000000000000000000000000000000000..08142e1102fedef250c05941e22436a878e3a475 GIT binary patch literal 1975 zcmb7EU2hvj6g}gty^iA~ZfH^rp=oK_I(F;@8a`Slh1P9oq$I84DoF6c#2(q(tar`s zI1nED#si`PAt4@kBrg$75TsHO2wp(qcaSze0w{O9n|MPkB$Rl*_TF>vx%bTc{`bS5 z0L)-6fe3nZXh}p7V@TcMYuvE7T{CX3+z}PY5Sun_Q(k81$xJNwB92}ii6r`vWSFct z4TH;C%dE8wuleBzM#HHJ%cx4n@YX#k8b*2DTXHOMO*#y5msX3sAsB|{JCVxLHSJn4 zLD&OH3?fCA6>eXDuf;8f;Y`TXPpUZawlW?{;wcDBx=9HX=KoI*RSI6X+K0NcUxZ~6(t?n6r+SOK)NUzUio{3(;kF08WQaPlE?kCw zmC<-dBLnU8&_RD$^2+K0Zw3^ix0dD>t`qVcb=4JK%Obt@h8*J3@pEEGl%1Aa5woT$ z$Y4j61*Jn$+1~vJkGAjbescHG=UcnqeD%kVpFQ6Gfp}bX9O+4yH+@3hU<}gMtO~;q>Z@j!SES>vGkg)&OJL}O-r#oC65jZ{VWd-%%zg`I*aV4e&bEbHvbg67PY0Fz>=C}* zXy|y8;pBgtQrmpaI8FCCLf4MbNKXsRr)bwl^J)4$@8Jw|TF@g!<2ZdXXl67=vk$cL=DcUKKB~)S$ t2_OGfQ&@_LAQ26(woCIGPSG3^`9%^J=q4}}>30Ps+9hap4YRm`^gq`Rs^S0u literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/SysUserDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/SysUserDto.class new file mode 100644 index 0000000000000000000000000000000000000000..534d9ce558e45f42292bb7b579609a3ccbae794b GIT binary patch literal 2993 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 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/base/ProductUnit.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/base/ProductUnit.class new file mode 100644 index 0000000000000000000000000000000000000000..5d35f92a84b51897b660bc547e62036cb4b66d10 GIT binary patch literal 1998 zcmb7FT~8cU7=F&~46`iTvZZ{u6^pgB!Y(jq@uMtM%L*0+B&A}aHy&nBcBkyltTSg( zyfenjCQTX>7P*Rdu9e0%EoBIp3nC@=Y5{{nZqA{@BIv5 z8gHkOK+=GgfsQtYQOm8HTvnQPrD^(&Pd_p1Zdue!;YeFH>_1>Fdv3XD$#)5aL34OrFmx^4<{R9sai?OgNY8dE#WW$G z&Y%-nhLpvf*^ipM#?Uhq3w>wpwyw!)XSf_sHM+e;LJYZ^P13e5R&C#2tBLE5<4P`VLSh(MuwB#tm{%&oGdHf7F857- z6kygx+2-boRTXt!Wauah-}3B+I!#RW@7{T|wL>z8xpywuj#z5e*MxVA(@jcv*W$HR z?%8S{Eo!oA)79e(|F4>Kz2P5df2>Xi#jE&#gh(>tsFae zYqKF*gntl=Klor`OA$ng*J>-a6vY(YU^pAoWJn1=&4w8=^Nu6DQjPn*@D04laOniu zRvZjaJ1Ouj0^NFC+GuX)Y79u{c|+yp#CEL27O$DK?8cbsJ%>ECiRSZJ^usP z0~#doJhf_DwL{b@6bisF^3)SQbW?l$@OLnFXfuAeqvhcOMkq=ho}^x-+LkYT52N+f zy2>w#^|05(aMieylTt`H%5-p{Tt{A9P;=+bi38gux zimK0ekV=F&9!Nv)Z&a$g1fdboK(;ugO$P$>XNy&$pUM`tV2tkK+=tWst!d}OqY>>S zJ?j&AiGX#S!^<>EAWZ~c31};_7m;|3K4?UiG2#lw9+M(R^8{0_d-c#r6EssMORL28 qa2|NlO>rxxqeL`Z4WyZT(&R-<(MF0Or|DP1tb(S|9B$w($K_gqTvE^0T~!(fT2LR!ZVQRgbWQ#LJ8c28U6-!&0YThls;$ADq7hp;~D9Ez0doe zbDsC(?3e$&_9=i#G}7oow*k$9j+8*I?AP*kSXpr^EBT=Q=Rf6Z{-RUOJ6`C9XY&ho z;N%aoITXzWQu|%c4G#!(k7nn4V4}xB+CncZf$SD+9d|0O?+IvSZX+;QI%S`+^Htlc zs5-<=r#-e7!XL;?FLUW6=4Sw*peS32QBQ7duyIubEN8!g<B>DT}1gk=q5*?vE|}1fx6z?UvMehuTagPdsK}91{Wt z!HSWcZP=JUY4;ur`6hIh#K=S4YvDfZ<6cX4u%z_q!|6eW#m_C=k6#Gvs@coVl<$@8 z@G&i|yyl)42y9LPCoJH5p&y|;)nq3s=U37wS!>vng0c-7rYik!Tu7C3C z`a9}ra+NRo zORne4uGAKs#tEAw$lUPDc6HuvxN;sZYT=SgR>n(P&NY%^1kH$P3-Or$>^#GC#tE1F zMaDLxC3G6xqK`_+Sl^Khfhg3aqBJcdjB&+L9K*v&=q=9^E&TSBkCTkq>W52CgC3IC z8)?h>NYb{HjzDpK_bPcj>xo3=s9vO%L`{@H7711rB~X*TxzH{z&)D^tVEx$f>6t@3 z>NGR8;RGwykWtmPe`+M&O&?Ll^$}&u41L8Z_n7ln8fE9OD?Qn(s@^@a7VwTL1lRul z_P_r5%K8V_$^Jp#4}-8_*OeQB{uG$A&!A#pN#>?2Fw!a{u6M>?cH(-e()F-i4*kYi zf!CAN$3SKDi0v&_onWNo`^zi!;`e52o8pPHb*BUTWWqwTSSFTY6H|7zI_HK?(Zn)e z8%4yZq-|16>}fe#&LoMlkJz0QS?2Gw=Q)k3svQJQV1OCDcM}brZfBq_aQpW|>0U(z zYop0W5zyH3A%nm#IqPNrEB*@siWKlY+AP>l0iU1Ef=LSa3~d%1Kpz+R^s;?`yX4sm z_WIaI5Fc>Rg$LP6v1}h=E6o#tgP3B^+{XmlcI6LYT&6Io+}lx^&sYcLzKzP;Ix6!` z>7cxQqw@BS%6#ZLDDT{;ytAY7uW^W%lXot#m(EI!jsF8iXU2vVB4$kTsN8y(dOFiF za^=G~(#d4sR!ypah)t@=bmvoU->OL!O0mfu(J3FnZ#tcF=T=RsAdF28M<)4QqD+dv zu4gxo}FM*&~jg(H>2Ie_ElK9jCK`! znuxsxoshkSR7RJW)J+VoqA#OoQVCGDU=Wlom>ENY%ot>3%mgS`=piUqNN0K^C>?`( zGU+BryTns>Z_1Rqy3H-WUqJ~o47wq_g;{1#7r)6a;3(I+F^2Ov#*v1Hv5ZGK()o9A zoNWqK9L5|+1{&Pu1V<)bW})~kM?H9r49;_u#$!Ck{pdH$Z?MgP`7MSG+{vFQzQt{7 z*z)bKcd$CK)G!xJ2Jk=AE$k{9a6-E4o)zlH<+czu#1 zorqm{ilbCS{(CUL>CA?Qs&6Qi{+#jsQY) z@>b2Wy;J#PrfcPQ^S0M-D@g6MYqqybL3{teR2mx6Dl$4cpeq=-GgtZk{Fqty3bo@7 zc^a-&FH9@Qj-N13n)!-ZE9J+XT4`92cIoIAj7fKJ% z5z>c_ov@1D@W3Mi{COSy7$8N-@{UN4^z;uz;J!~X7{V46TXozksIv<$3)nb+OAO@- z&M)ZrqTtlXIVt=nI`7l*CEOnj#7^HQs}~IvdPShWtm7*Jt&^ek96wnlsjzQ!AR@QQIS^=6Yt$a}}JAy5IL_tAB%b>*OP-&^eJVIq5t0 zgl5rzN;^i8@wUy%lvQ_ar*@>UM}hL7g3fT}Q)Z=MCAmWJrzprBYH$-)tts2Jk5#PE zTFvoHkEUGWmT}w3yHA)U=5_w$eR;=p^X38|U$v%fGe21@TUB#dLC3V^7VGw`u%=UQ zo&WXx^H*%{MzP_o=eM)hF-$?$(*#d~)rb`3rM5u3nk{<%i6)`PVN0^YmHf zz|CJ=zjfyH{OhN0T%F^_q3O+YFWNyPaC6KHNS<^Zc>v`okFlS{lBo7`cOzfpU3e35>Q1hH1B#g(T)2J7%eYQx=PLU1bEp@LbvkXRa7u@{) z+c&Pgdh6Y*%&FauT^y!@ zCy%9yBUJDJvQ#le1&Du~hLe6+BQZRc!JH=6Q{(M>yd;p9-JJ z!7EVS^;h&L??Mfv@h#rP5(vPz@f|)DamwI*vGIFQFH_lu1>~5#+|LkD`Sm$ zUWhTywi@@w8uQE&W4x->I2UWoQ%8*PnpWd=vBo@w#2Bw@HQo?w%)?WR@rG98&9TPc z#bb<#2$jL7NZ-`p(ECv11Kk@SWS~V71c`0ZF3DE_vYg4Wc*@S@QU+T>Qg-{4MNG%d zGP_*LU^7X|9-q>}@i@v=%cTsqp``5fDN88FQLb4oWw3!Iz~n)OMHwK7ol&>CFU>~BJxI(ki3z~B?Tt+F?uedGndSzBA{)CO3*e# z%c%mSNsyY;BB1R?nxO4QCYKhVj0B}~nFwfy(LvA-L(g>xkS;-#BA^kYlb{i!E7vJN zT@uup>xzIzjc$TQjcl%4fU*+Qoy&%x#3k;S_DC%Z3hAZ5dEx$2Hem)8ZmHFZjw*|5 z8^88$qsG2=4B}sKC?)U!{)SmfNxpRcipMFXc)gE0?<((qfJ;fkD>w&_QW_WV0vePu znBxd1DRtmOSa^bxj=%Hs=SfPP_y_CKDN0=m__BD4Qn!-g+vIzcviLsNa1?7)?ceB9 zq1{HWiXr|qNJAUaE4s zO2}CCQ|)((`y(kbB>E^jyfZQ4C+52BaG7bTWrr?8-8zRokBR=gkr0YpLTWUT ztbuBqk@Qu}Q{PC-B}3JABju}7O%<~@u-aj$zKV$}t<+F8VraffYpR&efz_yy_EpSe zX_fX>>*7=Dc(6E`Qth~oAK-^vdXfQunvz)j75s=EYRBDp8$YI$z%D$4pHNETVOF4L zD5aP>6Zk156=$&x&r;IxTb>}Eqm&lOpp?+{DLWD>G(}+o@I&%b(k`^yM8|3*LqLd0 zEbfx9R0OtwZ0(g`buoAWAES^a+7gomt9YF>ebw2lvq!~$Xv~SPyCVOnllI8Kj5}p_E3IbU+-UyHc25FE6Ni$|<M(jyDvPD z=#KV>qw#bsy&-&8Boz%W#K#g*W>hpc7LTRpGx9Z0U0X~6D)v)}PNk%Otgl3}JDLnH z=b!EIyA$v=n1b2OsG{SZ$ofdQKN9Z=cO>FHbGYL&oyw_#Q6L`c>g$XQL>X1Nc&pOM zm||AxRLz-w(L!f}t7~XVEv-sN(t|1PVVX{D z{8sg3v@050A5HQH!-23)GdK{mfEB%oxIkv6(nT79k>dTXS@po1t19OW|#Fr8ziXr)x8sThQH|jHX2I7wEK*7U8aN{{x7y z)iM57)!QFT$NIyIBk8Dk084aQ%Bebnk>BSA&gK4Z(5YScP+hj_Z_=rQw_B8q4n&fD zoZ6|=a!xJjir|*|E#}QStrYhqt5-%NsYIOfSL?Kf*5Vn8hu)r!4s_tgGCRm?=9GZ^ zNu6$`+jxLQ;!ExwjPx_AZFarQ<#*i^?Mly?dK)KyN~cfLXAllO(exS>^i|DMU33xl zC3Gi6{B)O2UEFnrlNHh%?k>ukN^zf2o$ls7OW|{o3UXfGt5b~b!Cj+%g%xMD8I4(y z#_9b!4RCrH=pr{|uyH7%(>l6Ww$N!OVNHfBm4=+2(kad9ykX&~Gr_CZ>-1T=Pd4Dn z5=IS{qwLJ%s?X{4d9EtA?@lHk$9_wv-{x4IXecNDIAx0yplxG<4M9Q=|_U*=$y3sjlJ;jKD7%He7kY$X%Nx9hYcyIr179Q%q+ zk7aAEl;ZeTb=sZXw8|34ZAcnq%;ImT;$Pp9X&Ac)#UcA9bId7XaWx?_pROyk%e=yZs_CZDtj z6(`v;JFU{~PCBB~i}ZD*TW=)Qy9iU1n1R}>FsXe*r=#>TqxykJUvyC--W5sT5=(;= zPo*RAbc(U>x)W1mnk(~E1fRFYrO6Ifsk`)AG5J}E>FSI}RX#obKjAoWBs=(VWpPg# zJ;_#l1Vg-b_wcBkAYw3j#v=V|qsde(5nt23m=U`X;b*<=wUPe8Xd$A4|Hl{^D>26- zg4f1UvAg=C3*vE1)M-dljHY$O65-TmBR!aP!|P{<6OmLn;t;|E(e79zysE1g(LM*m zV0Sdtm5i<9YNWyGlaCMW+zAV8y)Ta(d=Zsr4nI5e=vRlfzk-3{^y_bo?0SCW z@h_Y{xp(-XXNI=Cit$JihBux#`|Oj#i31I7d;0W=SI$1XQ$R&$-q>;G=y67k!@G{0 zKCyRr_wk{V+uz%`V`kg@p;L!Xzp?+ljXN0)NQWa|J~q7ZL7+1@x|#D2oqGS|K0)3* zw0-B9qX$u(1@x7d?BZ-eMkj~2yfVD&nBZ*Xgu`2hx9kAFjqAB!_wcbTqP=p-JN?>g zLkAxl+VLoc5xZt&*UM*);I3-znxQ9N9C~u&@G}pOeC-t8-N+LUo<8wRi&M@@r8;N$oQhRa#jDGX4?8o^LaXOFMkPdUg^YOmyl=bQxrA_suI43IsrmqvB&yR$}H z?w@x?^i!^gWP|QCgBXqMRfJe6;AKK(k<|JCs{&W0wJON;$JYXxJZlAz=~B)6vUeG? zz4exyA=Y|G?nzz>T~j+EUv!QynlX;TcBXOljK#DrCvSPnSyOgK%W~+(^Bb9p8eMN!Y2-1!0}F zfDTIBE>{RxB)%0Mm6DQCC!2A0u&NoSLN+5bowy;@j9r$^WNcSeGnsX+yRnj?%6&&x zWrOOrM~)a)_dT#OA+z_ghzm(})l>>f(zT?<>yfOi$_%2)n(9oZs;$YO+Syc_Np|Wp z=uV#1W%3;$v(GXGv-&J6Yco7MnVIF;0Wy1TCv8^G?Rxo|5nRsVUA^YaI?)aHj@W+2 znU&I?dhUDy&q(>psFN8YH_R9$t;ZyXf^yLqcDHKljMSF|ca?mCvc?)Atia0{HmZa- z5!cRIU%mCL+8`3Dt8ZCkofL&B|< zoW&t0=K>Pq`KE_5@+hc$S?N*(rbjxIgj|6i3}wc5nO#;e2Il<`okum3R zoUn3S*`cHJTXw=G7|M(U-D*ijfgeTrdP_s@_lO(McwJ@k5jn3akWR=c9JA-D#9*>3 zx-`buE@jKD^StT&v;wn11S`Tq~r?i`eQCwuY_svsPRH|2G`ATZJpGb!&Q?Zk!9PrCcnE^!Kld;jk*eZewhNebdcyzM03Sjkf}h+aeY_6Wp|-mD{f1b08Uf zQk4^YyxI;vUQhuq={Q=I0ndx>uymJ2Sh_1zSh}mMuyoh)uymKLuyog{u;f*)u;fK| zSh^HEEM<|0CAXZgbV_n);brk4t+1TOrXq#g_fy=K_BU0B6v-z@GuY`ExGt=Kyf{oD2K~ z030>v0)GhrN6opwUje{bb1v}L0C3`*3w$2{&YW|B9{|9aGd}-DgwqeR!{|qJB~v7sgQpmW+aBVYY;mKf7$?pi;`(gySWhtyo;}2k+2SToF;1pE z#ACC?Ax|;RtUbg{+2SdlVx0PWh(p=p7Edw01Mmhxoc|@e)rlzBcd>FU}U<;3>xU3LfI?v&A=git){Zhxo>9ai^ykUr>06 zmt~7@_7vkg3=i>&Z1HMOF}~!$7@IxxuF4kQ;vtsv!B5fl&*<-!6BB>=BBZFL^=0yV zkN$O%p+&ENzbt#u&%B3M(j(EFl%-5w{z$uqwgv&GDF30BUQZD_J%kjeH zS#Ot3`MQ*gM&)v%aQP4Pk6zC*l&?#<+*B?n3zz@o?Xo#vmvW)1T($_8|Lh%?t@*l? zOI+nr7JlLFa(ccl<>FYml!f=bUCzwcrCe4km$L9L-Y&1m*QH#LE0?nHuih@N&ex?} z$}5+$@NeEO&3s+TO@MMK3;*uza$deJ<@Q0jl!gDG|MUv=>+*FeHy+C6LJ^n$iJW%j@%XDK|UHWxH_sKi<#s#(Z7MZIW^+3%~U4<+6NT$_*WOxv&_G(s-Y9&-{%d(6qkBu<*F zNRy1oF48`83P}6RW@8E`H7n8-quE7z%A5+)Q)Y`Xm6KW&X{v#^w!?S7*$UErbDGi0 zNz)Xml|N#ebiiyw@qjtq5P2|Nk=l&uF493W4AMb!h7snTW++nFnBgM5V9o^T1#^}$ zlappC(oAEPMJhPtmHZeRM8;YxZr^S?hXWY=48r#yet_~5WOT@vWE$#x)Z*)BK3D~G zy>B@yfK^D#eC-S?bF9?+eJu>X$t6D}eIe$D6`-BILKc8kOnbC*tQb}a9n;=nC9q2A zr1mx|g{9MvwG#}#ccmb`tG&#Eu*w)|yBR*IoE2$1SUIc;Hc7je;b)Rm$y&8ORtc+$ z-Kcf2Dp=KQg|?Jc!>VBkZ3?S_Rm%poCRPipj_uMkRtKw|JO=rDq9IWx$ zGJMT59#)gKiY;PIuqJ3p7Ge`%P1NoKej?2f;Cw?NpG{su%>9= zrXMi;e3qKEck$D(W>{0T5jw)pi}4PMXa{S7)#}5K`dBNhX}(tKW7A-@`DRj-wZWS1 zTR}_NbXZ~ETDp#fVa@OjQWKj2Yo_n>xWAdOX0cg#-BomxKkxyS`6=)r)%od8{0p!T zsX>~>{|`-TvO9;#u7LkqR!(v_(M4n;l?wUn#&gPj4C$Uwtusu%b44maCZ|u>{45ne z2*f9L*TI!=(Fi|VE9T5Cm?tL3(G_!gF(d>kS`U)H?HC=tlh=2f1spI66cXSQri6OT zLIGi}6rzApXhD5uk${S92s5Zu#ZA9}FnKDK--426KtKT-!jvjigJ!XSFqu?1}~ zO9WJ6LzrWw>VC6SK$u>Ys?>rWFm(axHl$n7CNn4?%(qGvw4lvqnSjb{2(z$kYl~Sf zAWXnYRc=9#m=yx5upvy#Qnk&j6cA=)rK+@`oo1DQs%!}Jv{dafs|AE9TB)inXpdPV zpc)&(#4T0(%vu3q&Q_{g3wp||6HuKEVJ4TV{bs#@Fo`Qwy#*aG8wAu~Lzvp7>Y!-| z2(!9U85Z<{IZ8mIYzT8bRHHp73sxcHR81B>?MrMny8=;Ms6EWCgr!l5wuxPZVE19T zi?OR=70`UGlYIhKA>FFYX4k+fqO{h)Ojv%}&OT)L;TI;07ue6)Tv)~Q9rhNR2djkM zVTag!Sf%tUwv$~8OUEF-o?Qnkhym<&wg6Tc>p;yySmmq-!zq3?kI7;arkTaCD%q3t zK3f8-ioJ@Vbt$ZB_I*0eu7_2_enC&M8(`IH#q<#Wo}TKo5cTq3W>UR&EiGd=!D`TM z!(iC~%g_cfi7bOPiVvQ}U!fW2sGbV^6krSkCVshj4iCU7YrLYC3N3=gDafo+v?3SH zVP@AVvOkmT@I3$}3FJr|l{cn@_@8Cu4TA6fC+@d^|GzZeu#%U21n#tcK8A8q`q54t zKOaL$AV1GP^%nAFE9d3;Id^(~0Rq)TMcz#~ ztz4K!HB@;a4LNOHuuL^qb%D(}EnbXLHClb)jXLdKq*ygwb5Tt@tzW!eb)fcQJK*%; zl3b{6V0oNRKB7_2e=1Ke)r;y({iSurc`}#5k?Iom443kJGJqe9WyRR$DAj2 z+1#n_jk-+Tb9#6=J*rMNUcOE`{k+Uh(N%;`r~TFE4r;&}mFRB1wZaw0mBiJJYY^84 zT=(O809OyLK3tn{ZN{|)*CV*L;o6C77p^_H_ThR8*M3|Fa2>?;!fW&rVPEI9C6wo= pcdM0i0b9;lY(>@&X4uVaC4d0BzY5o_>~@q&V10^xhTTcVZvgwmT1)@{ literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/order/OrderItem.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/order/OrderItem.class new file mode 100644 index 0000000000000000000000000000000000000000..b10e8e729956541011cc932756a565061510a0da GIT binary patch literal 4659 zcmb7IZFAgK6@FyzuC!~d?KrWMZPN73Eq<+_1_E*tXq<#>v6B#|E`0$iuN7PI?#f+h z)26(JmX=aN!gNAAg<&YnG+)w^&a}z24ITJWX86b_X86QRT(|!rr94;nu2)`*Vmy{~ z?m5pny7!#t9$ouy|9k9NSR0@qhYkM12OE8*^_Q593Om0fcs6{iMur9 z=G{wbg_2)2vK^;RThDGe|W_n~e&dU|=3PjLR6L*WC27^wETnXi8O?(db zXvj)sw1nO@FN!bX^CrH4FUol_giP+1HE@+)5&KIfzAVrkjD1{XSm?)1?8Y9cXB3s> zZH+LkX%>t8iixk{Ue0~N2^JWwQQlhf7#pkk|2IwRX9z52oLu93$w&WCTlcKz+kD=$C&!G+5oJ$p_=N*1bX(yO{8)~s7Q z?r<$)JNhN&!eK@@R?1Yk;Bj%*CGT^T%;!_)YQj%P%3A?f>@oz<(J@)uo8zEJj?gH9>*Yo|556fdv> z%Akjw>Rj0k`X_yVvA#4OYa5DVG0hsshRWPPshoh3>e4=QP~6 znvMa*q&?cmtx>|2Aj&SpMw*p6N^=8Juk6tV$;e{0>eeR8P7t_(j-P9|b6t*-magL$ z8g_mtMFI`cc9;Jl^P zxsd40!$5-b)>h{oiOxK|Bsgzxb-pFh`9VCyw2Exod|*6^3=h4Ebn4RZUtqk9 zbo-^@Kf{?}cJcCL^Wpqv6_3%M9*m)$|oF54`02#~2j zlwu&;&J$$YorSyrbt+K4(AfZ`E^+DFII4ZeX0%p_y^{x zYsV1&js;37Hs`nCQA%S9f5b^j8I*Azih%5uW+C9EI zwI?Fgj_&aVQp)Haz6gEv3iduK^dojk7z!z6F$B@1$+FXti5!cZj6%9$8nZKzDYI%K z^Q6}H{5Ns!Z&(s+>6c#=|ve)r(JlyscKR(y|=A&RTr4)YT#QaTJxV?p_+&?gMm z9JdKYFVYP_1Cv^-Qm{-6)IKZfz6$4*tv6n+rV{D-Y4svqGD X4F+HHV_rYyJ_gII;dz{8@e2O|TS~eB literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/order/OrderLog.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/order/OrderLog.class new file mode 100644 index 0000000000000000000000000000000000000000..63d98bd5dee7a234d00f8ba3d9f9ef36c7a1bac3 GIT binary patch literal 3681 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 PxJj!#&2Hf<+(z*~)n#9m literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/pay/PaymentInfo.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/pay/PaymentInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..751492e262c5b6734b5e1596dd372c2933b34438 GIT binary patch literal 6407 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 NDM~-XMf@C@{{aGhn}`4a literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/CategoryBrand.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/CategoryBrand.class new file mode 100644 index 0000000000000000000000000000000000000000..fc4f67228fdf2ef852f82ae1e6f3c391b4121b4d GIT binary patch literal 4039 zcmbVPZF3vd6@IR*)vn}Ky6B_aYGYzj}*y$7?!m%jt%0 zc->mF1IIee*O_Q6kU!ye-SDKq@WkY50R{>>iY7*23LL+?uT9@;_8OtJV24i2^RJ)w z?QT;*Uz6WON~23x?Q6Exw!1BB$?LY}r2jo8%F=nU5t}VG<@8 zxmXE(H+C{+V!uQeqO~Mc`Z#E!Dra+TujLgvaj%KP_=bSdu)Ako?AdLBv5Az&XV$Jd zjc{)AvIO66;sHF!jkTOG3PpxcnV3xBqacbnf^i)Wn|MU}9_`1d+%cz)Tq}@HCrnIA zrzJW~^0e5Lnkf_0m=P$aG%DtO18c@nOB2h)H>HW0>`>yR;!zXFr9!7-DT@6F9y9T6 ze21~G+rjz*IS`e2u|n27ZlaDkfdd_T!&&gUO!;$eNKiKj?QR$dTuo;wih6q%Qsa1s zyO~KRGd2^bUg(jG9cR@I+_koIs@wHKJ9N1lf$1gJvx1lGR?G3NYsW3m4lKJ5usTlD zwXK!Ly3?^4(MZz?8os+Jtr`05_g=m8tG8U%(YXEkYj-~Us}xNo-hSupJ2yU{#%Hx$ z-)RmrGmz@YC{Y*HP%?_dQh6*dxn1X6ue0X(7j5oX($s6%?N!@%ta zI7W=67^HZ3&yIpju9ADpPPpzh&)YtU5IR0rE77V?G}0?IR`eP;0dWzeGc#FF!E_EK zmjnc#^f`=AjezEb>yA%L8R+=du`fl_{c$-`C+9k93<{B++B*PJTc`}e)a0K2VrrtC zT29RrB8VzkQEAnnv=Z8ljb(c?u8?;A!s7B7M!3jB>pMZO9g-0JosW#Cw^-U5sbz`^ zs0P}&TEYlDl~WdQ#q0SE=d2qsBq>VNT4rU_U^9xTs2KN$-+l4-_efIK^|a@OLFn6? zs=z@x4>q(-yr{#MhnIyO@An2A^pmO>YyL8(L#+N*A zqqjMC*W){2c=7tClL3D|YCy+Re9QgGAQtfheucdI_#QO=6Z8+LOdFe-#=PS) zj7!^%%bCW!1~ZIDw;NY7jd>wv81LI|JeFz9OEbgxz;@$tdJX$mKIQpS8=;-MUnKja^nEm(OOq z+_zhoisZ4&{gKNH*)9+4)}=ZbvCC@Yl0VK=;NoL`OHA|UQ?>V@jTC6MULa_;UaS@*s2GC^)nW>CtUf}}vAS6uksvb$QA$9$ zn+$Du$MOE93VDlfpJN3VNwG2f6PI}8hcJ#mVwH2lsNwf`j#7?Z-oXzkX;{V^_z|T% z+StHlO1ygD;CV_0-X-r}pj5!G@dSQMsfb(b0Y9NMg1_Nj{FIW3E8N>DRCMD%*rUVv z68m)=;h!PC#6cw%zFy>JqC>L6!sg^J`k2v=GoGju%Zkc0q#Kp$a_ZP6T~7A9OWc@9 zJYI^Z!r#f9;z<@?(1k%qZ;sBL$jwKDI6OMHPC6K)Q#YW`+`_l6$oZr7oK#eEvBr=j zQL0*9i&W%CWMoveL^WH_N2>gmimXvq$Le~dB4J`HJyIRcF7E}k&A7b7cpWy@7=(t` z(4aKLg1m|*V;$zdE9)$rEbmFi{WD4$OZzBVl=291fO=WpD-8VKD1OC>oDM?>76?Lo zMHl_?kenEUmH-k=Zg47we)d}@4V`5gNQ-vzec2I=ebP+Wi-agU F{{zh|FBbp+ literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/Product.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/Product.class new file mode 100644 index 0000000000000000000000000000000000000000..96f9c6a8fb1d9ca559cea793591a86ecf45ff410 GIT binary patch literal 11052 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 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductDetails.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductDetails.class new file mode 100644 index 0000000000000000000000000000000000000000..872c0c263b9c28b034ce3f9c1acadd46ab720365 GIT binary patch literal 2396 zcmbVOT~ixX7=8}f%_ivrX(*IXM6gr?fvz8bZ30!HAgO_3Q*lObJcONOOR^hxPdef+ zar^;t!-dW$&h*03n>yof@Mm~wt?$|0giXnG90xcb?|I&j^StkSmOuV^@(X}9R8kl~ zOoO6BMVw)=>NE{5YHh35HoVr?Ul~p3&}%eKTFhFETH zKZyjA8d5qgL1$QcxviG#9JZ^%*bC;nrr=h?V@QSvr9*~v`4NB2jRv=CM%l4zMd@Nl z$1u_aw3@tTe&R}{OaxdFu0_xkK{Gl=aD^dJ<@V;6ZQfuQ%|)R14<4CSQJnisg2!}R z#W;grGesDbj3JYoi)i>!q%eVN8YXqTBCV&-gA5E3FQ)Y7Nwcr&n8r+Cwsaoxl^(O* zm?v;u$1HA8%ysV7H;8?o+){?}^@ffd<`}Lv`H{Kd*i|k*wFH4|PjFih4=d5z`LRY~ z51mA>6N(s=z|(Nqvd!Ig^T2c;@`DEX&Xk=hZ|rl|lKW7oh`J@cmH$tQi^PT3L-ELk zsOR>H)*VySox?ru@}?vFbNjGidb4H6Icm3x7i%XX=}~-m+%o&XKab!$y%rILCN_AZQL%(sOrXq= z>%D%io250jFx{nZjZq)yCEGULjRyBT)6;OD;l>39`dv)J#|%?1hf)dy7BE9iJV4zy zKtJ@b`73&WXikDk3UM0eX=l*PXjbQc2K&K>nVmF7aaxT>uABu=J_b)qnl&YwVAJi}{WNcmJjkq22NJV{7m>1eV) zVM~G4FpL;cvr7MU$gWu?de+EmiVE>P+Qo34+Tnd#DLy&(pgbpmLgX+;gn+T<1Ulaj zNWm!74xockdPM{ye;-f^f}7qVpRyr`rglPb)V`DN-^k7VA!O; Qk0`02TQKZm4-b(27e5y4Y5)KL literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductSku.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductSku.class new file mode 100644 index 0000000000000000000000000000000000000000..04442a31b9c8bbb9ebf4d3b70710a9e69cdf7986 GIT binary patch literal 8210 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 CF?C7+ literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductSpec.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/product/ProductSpec.class new file mode 100644 index 0000000000000000000000000000000000000000..c1b130a47459a05209890087c00a58efd69ebfb3 GIT binary patch literal 2508 zcmb7F&2Jk;6#tFA>vfz>;)bTJ=?5*Okk2lqrA_0e(1etxBx$Hakl@0^8QI&|yJmM> zC?}8*HzcGA32{K2$R$Fp1VJhV!KFz24IByO58y~CZ@lAp(^wTK@qD~_@AuyOy*IPJ z{&V|B025fsAc3R>!-k0z!)Vd3I$W0OZmI5swfEk2s{V?oIKq>zyzVUXP&kt`OgHun zsk5%<%5x0Kfx)E?q|sp^W1|x`!|_LB)dGK|UX;#4G#6^3$dC?cn&(x)&^vpTU*k@N zdnKnJ1J^6%m4j{@Jqo=;X)f_fU1UhQ%SJCABl{xvrr)mf3PayO4B+zeRZ*1r!8eq0 zpN&1(%g|X8Qn`)%?H(A68EB6gt{`MN7f$qOa-WXLcU&qIf`Gtf4% zGvuz+sZLd~pS5)yi^i_bM1uV^U&cf1*a-jT<#Q#Wl`mM z;%Y^N#lWp8Ys&D?wGaRJ^3LWbAKzQMNwv`1_wO(mQGPwMt|#W})nySZa`LU}=@)rr zi3hIQYoQ^_E(LR9_J8+^iYbiOZ(F@JPlHQTvpFHl{>lOmsI8<3$epbX8wFxu{`PLu z&B9>%vMd6IE)`{et2MhD^0;72K|}VmG_<6vAbD|hj@NYN=E9YkxoL7fLp>CTuwIcw zWDGOYSZnLF^rMs*G6laL6vYKsk(!O&o@1&xsqZ&G{b=*X2f8F*fARYdH}2i~o>V7& zUxqT^wTO_gCxw{|F5wjmv#JZ{82VfN?RwYzRiSTQ)R-4|QToAkhR@TkyMn|C-S(hyU;QYpAny&F0W|V7D5O$7oc?fJMh>ppXKd#c|p(^~%w> z-S`_=H|a2ema*N|n4YpW#$68^_p~*B4kyTk@;pwnA|N$1{4K2Zaqo#VblfVZh^muh zXVN`KmLhq+J!IE^g^WnnkUb4Zdee23f6;7_xAO4NS1^tB;h&NI9A7?$WcMV-RGnZ;A8SCUL z87o0lzl%`}TRfC;3a2UcJ`^xUHBF!&FX0Tyk{H4{;`THQyi84&r4#s4 Z3shmyGs19@e)CwMU4~Y#Qdhi&+`nGe6n6js literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysMenu.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..272c4a4c61746bf2c3c0d640082a49d132a14b34 GIT binary patch literal 4873 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 N$r-&zf1(da{~uSS9o_%{ literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysRole.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysRole.class new file mode 100644 index 0000000000000000000000000000000000000000..01e3a9fe2827cbe842b01d53612fce45b7e27d03 GIT binary patch literal 3017 zcmb7G-E-7b6#v~eyGh%$-L4c^s9J2%en-U*+-*_%0TkPUEffV*(ru;<-A(Ey3)D9s zePD2O#&LXbe6lZ$1CHVhe!t+1e}`KB2oZlb$+Bs?!(gY$J@?$-IrrS(Irn7$`1khD z07hUnq7L;c6deg91qSnO(J=j`vb|I`yw&%w7)5u{Dj1gI+y0udV0xA@%GX3N7f24< zj_n^3sPE~WZ-9md6^%NYpbHE<+?TiJ`Bu@GTk~e!f+e7pILw$uis`9~<|Wf8n9h$rR^HF`o|WL;Ix^TpCrg$uqY1;<(bF358yYigX6NAs+bZ5HOOl1ENYPmT+S;{wf<{pQU=*-9`j z`6mQ2vt?FA(VDkCd!b+*b{y9?WjYwxz?AJ8-eq%X$toF_4j8WK8DayWBta1>Bf(rZhZLx3I6-qwY$GiuY~-xPT7t%Q!Xx8rBfz% zmIdVI8M(>$IggZzzicyQ~{wP6?ll<41u-~vq{%H=bQPJ zX>&DVDsggla(aRhPLk}B<&_J*KtpWfP!9LdyEpmLd^co8pmEMEm-5yTTc$*hF8YwX zFaoVnhQI#e&!0ZoxcLJK9Ccma^GoJx$fVbr#G8$H3ujfFla+s7pu2k8Z0C}@VnyvC zybMRoyziFQ1U`#jg9sQpJ!U$K1Puhn+h{HQL&)I}~^1DA(uyG%W*%P{GY%XHw9AIb3G;vmNc9^h(!-&aT|*ZY5i z_Bj&u*ZY5kHa*aH3y%d;3cF?o_{u7SzoRLm+(Fwq^udgB3wtYw&TN8^&TKN1keK8h zq}S1$No0~SP*+wZs4J^wR0+}|kebmdAmus(s*lx8Saj#ZKp*gb6{8p<k0X>69OZbFQUcRV&M`_!6nL#BDXA!7FOE~v@H+SGhpuY>phbmt4?9(K z@Lv=6usakR;vynKM@gt6f7FD8GHOAI6(O0F2Z>*R@E~C!Rc?>GN8=1ZR6LFcDdNu! zs#u$1h%SC2|K~4>(Pbhsg+b8!Y;f)DG`u)8Oi%p zC?rz|638DT_X)4g>!hL`i3*^CQ8ue0STY8yBDZP@W|*@Nn!+%5l&vZ)X_FN3>AKDG qz}5~CZ*1x4;0oq~1fJU3WKUzB3mRRY;qx}$<*bp?1uS3@ng0NWp=n(J literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysRoleUser.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysRoleUser.class new file mode 100644 index 0000000000000000000000000000000000000000..0e56cb71e51a9de86dac3e90dcfa37cf1c8db88d GIT binary patch literal 2293 zcmb7GT~ixX7=BK&o85#3Qd*#~&{CyJ2sHhm+9rS&3MDn6*i@X+8xP?O*^=yH_M{{J z62~7PH(cn9;!H0by{R+(4gL%-t@S;-o3PMKM+Z0`?|DC-_j%uQmKXm#`xU?fK1m^l zxB<ks&^n z-Auwn(m={WA1sDzZ}#Qwdr~y>)qU@g+Yq06qDAgnv@C5iq{~nEQ=V^dXD45Fot>ic zJz!x_IZm`mxwM@k(HRRvILlzxxU=$An>QGSry{lwx1NZaEM`Af%EJ~$Fv^hJ5mLoe zfrh5C5p_RQ3K_g*;DUuQiASSC|DU>w(vIIAy{?p)t8Au zpPm+;yR$zXJS8Iv7DQ@R0_4ChYtM3>-H)or(GV%1iprXziORb@h=CD)an zZ1KGydv7p-dnv47)xdpK^)-gcLxziQR;4-y$>TEJzZhMq82!+TTHY zT@Ly#>17O2{zbDv(dxPB@1bjlx!+-a2R(k6`weDgX8H(ee@lyV>oYVIwAnw1%)))ECJG>VtN;;PWTkkuwplTdg)1f%UtDp- AtN;K2 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysUser.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysUser.class new file mode 100644 index 0000000000000000000000000000000000000000..fe2fb115526d57d274edb1b7df8c63c6f4f98b79 GIT binary patch literal 4902 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 LSGREo+bI4EXMcN6 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/h5/ProductItemVo.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/h5/ProductItemVo.class new file mode 100644 index 0000000000000000000000000000000000000000..563752876ca2c9cf58fb10dd1b76aeff0d2340ea GIT binary patch literal 5651 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 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/order/OrderStatisticsVo.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/order/OrderStatisticsVo.class new file mode 100644 index 0000000000000000000000000000000000000000..c4310a611f4b9e51a13dd0af217118b23574c6e7 GIT binary patch literal 2884 zcmb7G-*XdH6#j0qo1{tFgg^_ih#&>pq-8}=v1zN&@}rmn5-bWj<0aWimL|J(cT>eD zpVSv;bQniR5k_Z}7lwfu#Thy}`hqk54L(XM?>>rn?(U}9q^YCRX7}#7=f`)xbI#rU z_3t}B0vN|@Q3MbSLyAL2h#`4_FL0&G^|Er}`~|gWGla%8U9%?`f`db|U5KD7jA$G& z#2NM!jhe#ka$PIe6>I+Ox0ISuQme{>p%`XKHI)w^uDuU#Zs@E~?v0}l z8yR9{)t*`jml_;u4=B=4$MJ~p98!f_OW1FY<56MXP4)+TFamfij;+{6Fe==tOj5EA zFViVvb9)>E*uk)|#^=;YLoagsjAoOPZrNP7Erxv_;AX<@cszhkMg`l{^m2}&tDu#2 zZr4o;Hqd4<=A*zfm>`q%DWXoRsk54;ov*3~blng|ASevOdCgF)H+i{C1zOmv7~E2L zQ$eYzC565RQE?-^x_~z0FH|~G_?!6D+XJ}8$16AX8 zMLDRIr_`cW&%S2w&)#LTrdDT442{;AJ8%187<)$W{ zJ)vY*G|FUe{(tu$LD;#f4b~trvzB6~#A24e)z-IDk{g<3=xfd8;(Q~Y zkZ=^5(@Jygs`y3SbO;pZX862ULHXpV>6t?mewqf)RIPfI&Vw$W*VusHJYpMecQb5g zRHb!Dq6MRF7S+R=XqvuN=gw|%(op*?FJArQ#+S>BmzJ(vzIWrw?>}5xzO_h*4;qGT z*(RTND`6!@ZOw=0aGi!|v?M%UeBtI(a%UCw+DcFS?9&{b>$Q9MD{ zxT}CYc#@u|b+D2Aw;F$o@J-qbkiUj;qJy!EdM`Plmq!OD-R(|NYdYCSPM*Tk2s%je ziwb2Yp?1WZ9C!!xAq<|rh)NV1FhPA0paWnE&yg&M3`w4+m4qYIxCdw@V+Q>=NUIPg$^TaRLW=x_o-iU0 z&=*F4{v+%GHo42Ll?sdzDU$fA@yHN$5M`DH3j(RX;rvyWSCGntMj-WSIzb+p_&}kn zXyM<;g-rL+WNu6vcSziv%vFfONHTj3;gQ?e^16`sk4j=AEqOZ;K`d=;?o8M|*Q*C3 zNKH0{Llje{raernfHPc22wD)^X%>#sN^;0K2I(OQBqE0~A_R;*B&FtaKnQvvHxwE= zQmcs6DBd)Vd717Pt|-$Uk)%lI4ju>E2hKn8Jsx@qFE~`^+Ygf&9H)&4xjjL@mvDxj NqO^J$XYnf1{{ZKmfTI8a literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/product/CategoryExcelVo.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/product/CategoryExcelVo.class new file mode 100644 index 0000000000000000000000000000000000000000..817d663af20c6a722e8e6ff8d6b10570e9f17224 GIT binary patch literal 4728 zcmb_f-*X#R75-MzYFEtaUonc1O zo_p?h&fas*ch9~0`+sk~3t$?r=a52LL&kuLtb&KD?poRMms`$qtK3|F?rM3>t=aYR zhFf0u+*+&ZmuD>BUUt1}C$CoR`l72K<p!!tFB;hBJZNA@xGi=PAU$!Nws=ib_!~CxDdDd`f9JxG zgnraO31bR!)Gvfl4eoeX6qi6x7lvxMZrK}lN?1fXIeNHk^4aW zmF=2_4kAt~P}o@F{UY3)T)OM8*dA9T;vW*NM-McC*b^wDmZ6|mPIVN806^LX?Zc4M z(NJ1PEu(GSQRD(^+063NRt}_P)W6!69YqhruddEp>tXfObLVI0PcqC|vcR*Ot-4Rf z1~KG@I?L6DqP69QI?GUp!^$x=e*VgR>_{Erq=x~UsLKibuy}sc1_LPp7 z6+F=u|Atoa1ryJxU_y?{EM!?`Aw^}LRz?*VvyF!B&D5=C({5_`k%FVUl9Uv? zhU*Fre>9ZDlZj&UPw@+6`Q$BtUF|WB2Kbzz=F1nMG^sy1i&Gr(Ku-ibE&!(q;8~ss zm=%Dp5WsUi5%7cn%n`sdJ`pf40A~o`*`5eED*)%v&q*HM{C$#fl=)Odhb{d9$~zQN zIL}|P2A~%U{52#17w{BEyanMHf4hyfZsWd0W1g-F#)WR<{fWlBBP1C2b{ii|H0DJj z!MLy6_})Zg-YXJ}2fK~$OEg}@(@d*KScT6NpV`vb7L?ypilLV2+EoH7^qw+5LB)hWLMe_VDnU^-t@8A+FQhN}$vBXxB;va{9qDozw ze**r28l?;##};f#D(3M!e2Y>Rb-amXN*X*|#|kAKKf@{z%`(rr$xYhSUc*py3EVy7B?;kz(#+i3rJYiR8$L zzgZ!LA7Qwn9jJm8B1<3E4b*m)ROUuxDfGA$(2ajhsCtt2;)u!7(c8tTPp;fyYbCZ|R!YA{8P1xC85MpNUJY%rB=Pmy`js$9{6 zDUvR<(xR!!iXKeq?I}``R)>;_@vMv>3^|S8VjWi)pNikGz*iVy9=}GDX-MNiyab<8 z1}9kf7A2LvaUL6#vYa`FZ&T9n22aJSlyp&Cx`+sOCqWf zAi`vJszO*c2J0ZZwINvB3GUz%CPEW^mr2Jec`h`}B^h>XKXjVr%=fkSQGJ@Z6!(F{ zf>8XH`JEIb;&+7K@tZu^(0v%nZ7y#Qhr?lBsT?uViMou&W#Ag2VE(^w8cO!>qqt>u_)v6T53TxO9oXk;B|AS#m{4 z;vi51N%Ze*u%S$G))r}4q=`6hii8!(6mjJ8|1*EZ!aH{+F1-7c$R}I@()bR|Qur>u Y$EQv=&-433yuy*V4!(-l@MD<&1L=c*d;kCd literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/result/Result.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/result/Result.class new file mode 100644 index 0000000000000000000000000000000000000000..aee880316a4a1e8c0cf78fef0fab61bbc7a67dae GIT binary patch literal 5823 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 literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/result/ResultCodeEnum.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/result/ResultCodeEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..33fbe5303de87ce281182b624453f29d046b9a03 GIT binary patch literal 2360 zcmb7GT})eL7=8}@JCws{%g=z}HW9V$+$zZCv<&D<*{Y?*p0-=vTz4pErP!a@A7Z>P zP7^a1m+WG@Ai)O;~ja0Iz<6Y9wn)2$Go zm7s%OfI$ws-5yyMFznkSjg#?+5?UFLcG~6jF`!L?#DMm&?1}jUp_u2qR}Qh0eG)qO ziR=kRylzj-6AT7|?8Gd=!cL4+u8?a7?vl{WVPD{k*B^6*LuZ-xehIw{Hdo=9z-eCt zSHFYMBf7|vk}9f!D*}#N8?45kuZwmRLMBCiGa=q7v4-kO{h6u@K+_A#A|fDw3^Q=3DUGQXx1o2=!_V{ zDFen?coS5to$zXG>@wcQTi3maaM6t`*Kd_?d}*YMxmgfX0-U?uy}@_gz5%M|CL*F$ z#2KP3e|3Lr?Q0Q|hz=2N3Xm!*H_JEfmVf%Vys;s|BErwWJNGI#zpI1YBHj|vT3K0r zvixX!`BM?SB0>~7y_O%}*-%eU<^v+m5yRHnH@D47qrsKuV3mCQ9_TF|BSKVIAhFn00FPTyO#q^w-3n_CcLOi=< z&$j0VXVuQel~hE@B^hsxT$@qSN{SLICleW^P|Oj9wegz&S5Zn@LM>FI?QWW{x)pgPjhT9zHVD&>+k zD3`P^xuosLC9Oj)Y5#Fan~qCbXvAb;1I#5&C}8Sm8;#x##2dpU@^_iu21&9%V+n_T zz;l}zx<_vU6#CTjGa42e+Bvjv{ZW$4!e|lf8?bIdVEQdh`f);}sut#%Z>aR>1k8WL zRB3#n;ba#{>gdQ~KQge6WA>vDF=Fr2KE#RpgjPu{(9-w)beUeXp$}&CgE=@%wk*gi zJlJ};Rg49!E%zJ|&i z?cr$HLa%9tj{J$YPCX@gG literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/LoginVo.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/LoginVo.class new file mode 100644 index 0000000000000000000000000000000000000000..426926e50212666ff6a1c2b53729c349053597bf GIT binary patch literal 2460 zcma)8ZEsU$7`~qN^krSQmBD~IM3A9dw{cKjgq5K%-i90Cw#-C7=tFmG4{Ohv=bTRQ z7ogE-f)X_bzo^87C?pDI3r4?S;&1Td%Km^KMZBJ#)2-baL$*FI_xpX__x-eg{=4ui zfMHA}5JETxEr|%C0;x-KUg||@<@NIyFBv&cAbP~KOz)^bxVLY*1#z^*kVv8xNrB#+ zUDBnOFPr(Y?#{jUu3oZdjG{ho>+WUOGfMiHoj0v%TOi`uvxX(mIkxIz(sN8JpH)WN zlju+u+Z^L9$8Za8RK*kIY)GOL8wKJyX`Ot#EQ&+XIJ14PDdDapHe(Bg^M*I& zJKWUUS0^2~RB5M^ctRPD8p^7x)VC$^q*6~&eWEdt5S~h62X@kSLAr$z=2?Ygw39&Y zN}>n51-6vrtTAF+IqAJ>dK9u;PgT*>;FBvnY)F*QVqa?Eetuuz3bIduV&BT`$zgd3& zLwcxOx%=SSE&n=D`S{1B#c!8>Sy=vlK|u2}?HDsH<6OCP(Qu|DqfmvkbFw%s9aG%{ zqUIG$hLst6+{R!~ad)Lw4TTL*>YHXg#tpAv&s>m>EE%5R&_#+`4J8r~Y_t0I3Oa+m zXL|+15lE=$dV)r5trBau&MK>+`2;rlB5SB^lb+1Yj?1|q=g5VL(eaaXKT1g1yXB&q znwsJEo;B)m&-OE8Jd<|W$r-0ig=aDtl|5=c1a>Zeu~@nH*@G*eR6h8+a`mIi!l%oN zS07yes`A72rF&PGZ!Z#qzlTY(x5nXdCq7e{(7B!ZFcKOfr$}W zEKZu9k&R=VU797&PY+ZuHnXTL16c~)SG1#!-T;0{}*LF z{q(VuuSAFwAL1XMKnOg;TPycx`RR4hM+RTA^^6Q!NaQQawVygVcfmc9xeIZ-YI1<9 zVyktKtFl4??4dAt=F`TtQTZptZjl+ns&Z>nWj<_8l-t%Sw>MSZi|6P?o`Z-xHMcZg^= z`+rCLOGLsq`+q}xd?0fNsp^%7P3H!<3~7UZpf#=C$A%k74yLs`*jkh59*R(;dnlTY zD4FPeblyN)I+BjogtVLV6|O6RU%xYc3@bPkupbAQdKV^fkTnf)L{H!a(!$8#C=T(Y z;WV41r=$1v-pwv6{~fc>bZmTyJGQR6<&V(k))d7FPeyOA4+A9Xv0+yx23WLLKsi= z-#~2e4z|Ck=-oq_Vx+Zz6IZ~JwXHc|`+chcU|~XYgg;W$)Epo@!}OZKUcAU#7`xcd zFY%;R!8r@<5eXW>5rTj~h({D!y@wQ`3z3>YO-5@ZQH=hMt<1_HWr~@$t0YxI3wRn> oJ2ds<+8#u&;dmA5k+m-1&uw z1}Wc25sFGAC?ryhQT&27r>RBF%&RA+F6cRzQEb344R?r9w5xlvfn;iss8OLNQW*8* ztdgp^`LdBOtIq8Em(-FqtryifOLgWQS1+mAd1p*F%aax((KXzn&M1+oI?1}WVdm4^ zY>Psz+@@e^C7lyCD3qX$jO1LwC{EkDiST^YvTGF8jN!QHM#!}()J~hZoMs+-udEdr zwRMGj_=%*u-{itcg`S|T5YFrFgdfkQuI`X@5D~}aNrj%`hGROn>TvZP3hm_T64b{L zC#UUFsFQXxY65L|HPl4KYB<;kJ*`j|b;Ex_a|*)%%fodvfok+B)JOe{HkY&+eb_Q{ zntR4@A!ItPX1WfemEys)x(lTky~$eWs5wt>M=P0$0GNAIlk5Q5kmcDwxTW#9kuho9d6@*DJ& zk92FsF!k|rX-c;zG-SS>wIGupF?PM25FLDsi}W6R$aYzG;Joib{gx;X|%5hf#i>Y9<_IoSTe>Q1(l-K1$vMjE+Fs zFJBC8aR8LSNdiuMNQObgw*j2M89Rt~1C$ned%h-7xY7F?$)AxJz0vzC$zy#zw`r5N z#bV2NA08>8|95Ii3U_J4A}Rez;WllnNNi7u5ZRuJB}Fb1yGw~hYEFvDSV*WNB|)eo zB_|~=BnLuLQmzOIH|pkm&JT38G7EH+jv<*gxrdlbM5 z{434}6wxuP&?_8Co=EtJgo{@>U;LzvAcWOYjd=ZlPc4vmiT1)o42Dj}(*wewSBP!# zbOB|M>tM(*{RV#TkcM3&R#P-h?^5z#V2i#Z literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/ValidateCodeVo.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/ValidateCodeVo.class new file mode 100644 index 0000000000000000000000000000000000000000..8092131187218f3821886330db9bbb476d1c257f GIT binary patch literal 2466 zcmb7G-ES0C6#w1bnceAjyDfzRYY~eS?I#2BA#^DU<*U#FQc@Fr@v^G6FqU<+8ME(yiDRu3S~+P#|-}ah>p}Kze9+z5^CIvdHDpiM)Va z_Ug6_D-Ea8u!E)d-nHxAf~wieo*i5ZLRGitWzAWTp_-z6-V?}{xj3h;3G~i1ea(fw z<5o%R+z4z@J>hF0#&V>7l0Ze@b-hrA z4zUHsW*oBpj;vIaZ!hn&JsH@tsbJUDf+Ov@a#hu3NuYB<1!dn^($>uIkI&!#{mbi* zKE1xEYf@OktQZZ$(|v z6^Wbs!s>AX*xgh}Bwcf%EHBQ=r6g(d;-%@?lXN}J9`aStsPWQRO~_odOpLA2i}PW| zb6&$Qt5c4qb0g1N?#XU_H3YV=mgC`#4<6q8@X`Gnzuo-g;TJc5{qDx2JNHS*anB2b z(3eXwGeLI-r*k-i=`7CbhCC-Q*t}+ryX-A0JB}dk(NnSM8T|&?_Hl2HHIle>HZfH%(az*U zgdRq+uRUbfe}#-mP9VD@NWSJtlz(#0(pz)gf{Szit`X@3)Q|n|Np!XKKie@phqGa5ruXIZZ z;`*J5V_4;(iv2ji)cY`pgRE(a_w)o_rYwyS9K|8744h_@9p=i!Ec(g!0rFQO{s6y! zt-nyn!g`F&S)}-HiO1L)FFOPhGWL@ULw{=~WE`eTT{2U%pd)QEpILaS%=7P8}avHdMA@1HRALD5J~EKMwr zwzVg0e~g+CmL@ev_)|sSnggU~l3sJzgIBmqV<-FhRj!PPoU<^VP+*W8AxH>>ctWM- zKBWbHFjo{-bd0qks?p!E)w^;?Low5WPEsdy56=TnUz*nIT1cWda6F=V>ggBa1Wxk6 UBJ3%CW^kUn99I|c8vCO74=R-eh5!Hn literal 0 HcmV?d00001 -- 2.43.0 From 919e428e9ec87d94878b863d5cd8dab256630cbe Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 21:05:56 +0800 Subject: [PATCH 05/15] =?UTF-8?q?feat(=E5=88=9D=E5=A7=8B=E5=8C=96):=20?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=AF=B7=E6=B1=82=E5=AE=9E=E7=8E=B0=EF=BC=8C?= =?UTF-8?q?=E5=92=8C=E5=85=A8=E5=B1=80=E5=BC=82=E5=B8=B8=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8D=95=E8=8E=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/inspectionProfiles/Project_Default.xml | 7 ++ spzx-common/common-service/pom.xml | 5 -- .../com/atguigu/config/Knife4jConfig.java | 4 +- .../com/atguigu/exception/BunnyException.java | 2 +- .../com/atguigu/exception/EnumException.java | 12 +++ .../handler/GlobalExceptionHandler.java | 74 ++++++++++++++++++ .../com/atguigu/config/Knife4jConfig.class | Bin 1851 -> 1857 bytes .../atguigu/exception/BunnyException.class | Bin 0 -> 2008 bytes .../com/atguigu/exception/EnumException.class | Bin 0 -> 1127 bytes .../handler/GlobalExceptionHandler.class | Bin 0 -> 4886 bytes spzx-common/common-util/pom.xml | 5 ++ .../exception/LoginFailedException.java | 22 ------ .../exception/PasswordErrorException.java | 22 ------ .../exception/UserNotLoginException.java | 22 ------ .../src/main/java/com/atguigu/utils/MD5.java | 32 ++++++++ .../com/atguigu/utils/StringEmptyUtil.java | 19 +++++ .../atguigu/exception/BunnyException.class | Bin 2117 -> 0 bytes .../exception/LoginFailedException.class | Bin 836 -> 0 bytes .../exception/PasswordErrorException.class | Bin 848 -> 0 bytes .../exception/UserNotLoginException.class | Bin 848 -> 0 bytes .../classes/com/atguigu/utils/MD5.class | Bin 0 -> 2158 bytes .../com/atguigu/utils/StringEmptyUtil.class | Bin 0 -> 852 bytes spzx-manager/pom.xml | 6 ++ .../manger/controller/IndexController.java | 18 +++++ .../spzx/manger/mapper/SysUserMapper.java | 8 ++ .../spzx/manger/service/SysUserService.java | 10 +++ .../service/impl/SysUserServiceImpl.java | 52 +++++++++++- .../main/resources/mapper/SysUserMapper.xml | 12 ++- .../manger/controller/IndexController.class | Bin 614 -> 2016 bytes .../spzx/manger/mapper/SysUserMapper.class | Bin 219 -> 356 bytes .../spzx/manger/service/SysUserService.class | Bin 141 -> 289 bytes .../service/impl/SysUserServiceImpl.class | Bin 436 -> 3221 bytes .../target/classes/mapper/SysUserMapper.xml | 12 ++- .../atguigu/spzx/model/vo/result/Result.java | 42 ++++++++++ .../atguigu/spzx/model/vo/system/LoginVo.java | 12 ++- .../atguigu/spzx/model/vo/result/Result.class | Bin 5823 -> 6571 bytes .../vo/system/LoginVo$LoginVoBuilder.class | Bin 0 -> 1575 bytes .../spzx/model/vo/system/LoginVo.class | Bin 2460 -> 2841 bytes 38 files changed, 317 insertions(+), 81 deletions(-) create mode 100644 .idea/inspectionProfiles/Project_Default.xml rename spzx-common/{common-util => common-service}/src/main/java/com/atguigu/exception/BunnyException.java (94%) create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java create mode 100644 spzx-common/common-service/target/classes/com/atguigu/exception/BunnyException.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/handler/GlobalExceptionHandler.class delete mode 100644 spzx-common/common-util/src/main/java/com/atguigu/exception/LoginFailedException.java delete mode 100644 spzx-common/common-util/src/main/java/com/atguigu/exception/PasswordErrorException.java delete mode 100644 spzx-common/common-util/src/main/java/com/atguigu/exception/UserNotLoginException.java create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/utils/StringEmptyUtil.java delete mode 100644 spzx-common/common-util/target/classes/com/atguigu/exception/BunnyException.class delete mode 100644 spzx-common/common-util/target/classes/com/atguigu/exception/LoginFailedException.class delete mode 100644 spzx-common/common-util/target/classes/com/atguigu/exception/PasswordErrorException.class delete mode 100644 spzx-common/common-util/target/classes/com/atguigu/exception/UserNotLoginException.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/utils/StringEmptyUtil.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/system/LoginVo$LoginVoBuilder.class diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..df280b1 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/spzx-common/common-service/pom.xml b/spzx-common/common-service/pom.xml index 0b2adb1..2611261 100644 --- a/spzx-common/common-service/pom.xml +++ b/spzx-common/common-service/pom.xml @@ -19,11 +19,6 @@ - - com.atguigu - common-util - 1.0-SNAPSHOT - com.atguigu spzx-model diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/Knife4jConfig.java b/spzx-common/common-service/src/main/java/com/atguigu/config/Knife4jConfig.java index dcadcf1..9ce03bc 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/config/Knife4jConfig.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/Knife4jConfig.java @@ -12,7 +12,7 @@ public class Knife4jConfig { @Bean public GroupedOpenApi adminApi() { return GroupedOpenApi.builder() // 分组名称 - .group("admin-api").pathsToMatch("/admin/**") // 接口请求路径规则 + .group("admin请求接口").pathsToMatch("/admin/**") // 接口请求路径规则 .build(); } @@ -20,6 +20,6 @@ public class Knife4jConfig { public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("尚品甑选API接口文档") .version("1.0").description("尚品甑选API接口文档") - .contact(new Contact().name("atguigu"))); // 设定作者 + .contact(new Contact().name("bunny"))); // 设定作者 } } \ No newline at end of file diff --git a/spzx-common/common-util/src/main/java/com/atguigu/exception/BunnyException.java b/spzx-common/common-service/src/main/java/com/atguigu/exception/BunnyException.java similarity index 94% rename from spzx-common/common-util/src/main/java/com/atguigu/exception/BunnyException.java rename to spzx-common/common-service/src/main/java/com/atguigu/exception/BunnyException.java index 951eca9..8848d1a 100644 --- a/spzx-common/common-util/src/main/java/com/atguigu/exception/BunnyException.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/exception/BunnyException.java @@ -23,7 +23,7 @@ public class BunnyException extends RuntimeException { public BunnyException(String message) { super(message); - log.error("业务异常:{}", message); + this.message = message; } public BunnyException(ResultCodeEnum codeEnum) { diff --git a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java b/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java new file mode 100644 index 0000000..f101c43 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java @@ -0,0 +1,12 @@ +package com.atguigu.exception; + + +import lombok.Data; + +@Data +public class EnumException { + public static final String USER_NOT_FOUND = "用户不存在"; + public static final String USERNAME_IS_EMPTY = "用户名不能为空"; + public static final String PASSWORD_ERROR = "密码错误"; + public static final String PASSWORD_IS_EMPTY = "密码不能为空"; +} diff --git a/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java b/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java new file mode 100644 index 0000000..b912b32 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java @@ -0,0 +1,74 @@ +package com.atguigu.handler; + + +import com.atguigu.constant.MessageConstant; +import com.atguigu.exception.BunnyException; +import com.atguigu.spzx.model.vo.result.Result; +import com.atguigu.spzx.model.vo.result.ResultCodeEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import java.nio.file.AccessDeniedException; +import java.sql.SQLIntegrityConstraintViolationException; + +@RestControllerAdvice +@Slf4j +public class GlobalExceptionHandler { + // 自定义异常信息 + @ExceptionHandler(BunnyException.class) + @ResponseBody + public Result exceptionHandler(BunnyException exception) { + log.error("自定义异常信息:{}", exception.getMessage()); + return Result.error(exception.getCode(), exception.getMessage()); + } + + // 运行时异常信息 + @ExceptionHandler(RuntimeException.class) + @ResponseBody + public Result exceptionHandler(RuntimeException exception) { + log.error("运行时异常信息:{}", exception.getMessage()); + return Result.error(500, exception.getMessage()); + } + + // 捕获系统异常 + @ExceptionHandler(Exception.class) + @ResponseBody + public Result error(Exception exception) { + log.error("系统异常信息:{}", exception.getMessage()); + return Result.error(exception.getMessage()); + } + + // 特定异常处理 + @ExceptionHandler(ArithmeticException.class) + @ResponseBody + public Result error(ArithmeticException exception) { + log.error("特定异常信息:{}", exception.getMessage()); + return Result.error(null, exception.getMessage()); + } + + // spring security异常 + @ExceptionHandler(AccessDeniedException.class) + @ResponseBody + public Result error(AccessDeniedException e) throws AccessDeniedException { + return Result.error(ResultCodeEnum.PERMISSION); + } + + // 处理SQL异常 + @ExceptionHandler(SQLIntegrityConstraintViolationException.class) + @ResponseBody + public Result exceptionHandler(SQLIntegrityConstraintViolationException exception) { + log.error("处理SQL异常:{}", exception.getMessage()); + String message = exception.getMessage(); + if (message.contains("Duplicate entry")) { + // 截取用户名 + String username = message.split(" ")[2]; + // 错误信息 + String errorMessage = username + MessageConstant.ALREADY_EXISTS; + return Result.error(exception.getMessage()); + } else { + return Result.error(MessageConstant.UNKNOWN_ERROR); + } + } +} diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/Knife4jConfig.class b/spzx-common/common-service/target/classes/com/atguigu/config/Knife4jConfig.class index 652deee7f4f219b08207e4b44a8a542872572ff7..fc40dd2f77579d61f84809c861e7d1843a874b8c 100644 GIT binary patch delta 41 zcmV+^0M`Gz4#5tPw-OOyWNm3~=&!ftv4ZA~rR9&KvB8Q01_feuZf<$AQv>J&tIHG2 delta 35 rcmX@ex0`Rmb}r7ul-$fb-Nb^-jVHU9IM@?Q(n~YbOE*U{zhDLc^70L6 diff --git a/spzx-common/common-service/target/classes/com/atguigu/exception/BunnyException.class b/spzx-common/common-service/target/classes/com/atguigu/exception/BunnyException.class new file mode 100644 index 0000000000000000000000000000000000000000..bfc725603c1316fb1e10b2a98a443b908151f74a GIT binary patch literal 2008 zcmb7F;d0wV5dO|_EL&0IV5e!E(lmjz*iNV@gwo=qKuppGTwt0`7~q$p9EuWI=aEjC zh9}`MV4x|}A3OjL#jq#IjvSi~{IKqBXZQPVzui6m_4lhk0c_$+9XU*B$QzhMfnnj; zI<-vC@*VSOqI8+qnKNf@1JEr^R_tT4Al(ct}nU6gO&oEHc-Y4gVyC?XgTCr$#|yRIx47Y zm^E+}a|~vdIqd!P-0TvEXPyc(;9=xR^J%=a$-3=FT?XCZ@=2dyw%!;|F>j!T1-c7) zt5_vO*0q0crRkeW&>IXB^~SzVdCaR%wL+pV8+Z$EGhFLhC%i3u+mhe9@`!e!w0s#d zJjlx12OYgqmUE!@`dj)6KFL?Hsl480%MkIjy7NYWk4mLfP~C{YTDiQ!h3uI*W2 z*lKhxN5;iiHL!+vDJf4lst_Yi4D~G7Ywo_!kWVx$cU+%;6?G4I@XR{!;tC7f^7gI3 zRp->0mq#vXbGwr*?!UEFi(%#omq+688!NE7T=IZo*Xu*U|DiLes~L)_Lz6za`@aDw zT#BSRwB4}1bcFOh5d}8iaaF?A;i0&rhKn-T5<-SDuzE=Pw zZAr~Ea>=&kd3&zpts*{WSRPKluJqnyYfI_KZ!&6SW7qe25O*gJH9VrW9YGzJk%nD{ z#n-#i%a){%Wg5~P&FBOcRHxGp>M@H~dWL8%g3(~#Aup3o->cV?)|uwoOR(nZ3uw)? z7r62(*>ZS~z7^!@Tcwy;==405F^9WkSxVyYK0crmA;df^-YKRW)@fhLkr@<(n6{A8 zKB84!bE>(T(qE<~W>38!LNr1~J zQyG-$^!`OWKtK8A7=x-^DgJ?#-_TS7u(*Aa91JSy$8laQY|yHjaFc#*Y|}}n-3}h( H3)KDr#HYNe literal 0 HcmV?d00001 diff --git a/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class b/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class new file mode 100644 index 0000000000000000000000000000000000000000..25dca6c4a35446da07b62b88b66c3ebd79b2817f GIT binary patch literal 1127 zcma)5OHUI~6#i~I(~h+~tbpPZM6?fNTxviQ0wp2oD;>b-rn!_!JJ`H6oezr87pUX`# z#9E3K%hdGB7(>UTp*Jk9Tl2hTs}hbA)$Z!rw+qqxruDLG^3Q# z*~08?34PR#m)Lx|Lb-d7KJIL7@4ne4<-&xb+{zcHO6g)TUzE_#5N&Qe-hK7(`|9(( zjSXVlPx-@mhFbKp+UbNzV^O8HGMcXD?D~Rg&hmvCMPeDF%xm-9)Ew*w1*@tx7=|5JO=4r1nBAs=tmd2K}He^ zAV#>S1@{s@(SlDBKGlLx(|x6rAw=t0VvuQPw2R42u=g(IIa;0H&U&8KsF#2NY6A3q zfg%C7*l->J#RgN!*ARvE)E9(bKn$*@J|mnRNq)c)7Ygf?6vRQ|0k7C6CK?RkA_?@8 zz%ZczE>T^C-kJ0Rondm|GGUP(5*vPmp6#v~m$aY-?7HI`56rs}cFd`3?#X?(3E%pK3S|9jIcW<|$*{HZ>2{Ac7hR(HL$) zjA2E}$jXYH$*Y;XJfi4njhk|(W(+A>$G#NL*{Y#G;yxyM&B!psyA3lVTiWot-Ey~) z$#63f!EFo+uf6fjTB-|0h0xTrorvqcC=B8PTDwX;XB9KRSs|8hZp6HO{o z*q_&JHOqazqga8J5>~~q8uv2HEzb1(B|^p&EzkRg8ETulg3D20B!c@G>aJe6eD(5~ z5ES zlNZ6G470c9bDEk`Y~H|i+Z>Og2fY&dV%UM5Q|go(?+lTYq1&Xt^HUKd8CZkR_gD;rc$~7_B2!f9!m_-1S7~a+sdPRW!&BHrk&;zLIe9}!AEz*I z{8DtAK-?1q;U{G=Y`jMjo|#tC$PddV9kN%w3OXZrjv;pC^fy<}eD%jiC$F757lnc$ z38@&;pgL1Gy?|{~Qnq1^Gt^Kma*HiPV-Q!nrdU>@xwIxTRJp}#cDJhY-h6h5n*+*_ zMrNpjrxa~aF;y}49#+{SDmlGsO03{h>MewQfmdkCS&>0M*>HVOr^{EfIUZRL$*Ud3>9fG$6wfj7kg@1kke^CR&!2eWz9mLy%YD2nD zS=bi`u!relc=o25yN*9QJOjFF$iu3}<b1TJ zOTw!ROPv~hV=;#GO$Ht0#%m2C{R`xm(?H8w|482ArcSj(6!wztL=DH;0{a{3weFm< z;Lz4DTiA%-nzWVFXpfTf`iAMzSeC*WN5XYTjciJ3-k~O%H1cMOZ={<9IijVP$gyUjAae{UN#U)Vn zF=Ld=ZZMEK+G6+({X{S)y@{?;w~<=Qx(#DApG%Z3Y2e8e!GZA{51Ag^{}j$Sr7GGL zO-rgar^Cc4$|yGZikpME6P5uZs6y#6b1^y{mu16TrqQF;A>j{8?|sDxJJo z1c_9&5L27!PnRvIM;jWkl@9kESdUJ}lXYaSk^b;_18N{ z^JwMYrneP1O7AH(|HgWWj$kEO@J@)YZ#lk3@UEZDOGu^o)Wjnbc>V$;kUFe2lN$%;Y0eK#HTch(%or%jxVs_U&+s%hX4Qo literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/pom.xml b/spzx-common/common-util/pom.xml index a379e71..464d825 100644 --- a/spzx-common/common-util/pom.xml +++ b/spzx-common/common-util/pom.xml @@ -40,5 +40,10 @@ minio 8.5.9 + + com.atguigu + common-service + 1.0-SNAPSHOT + diff --git a/spzx-common/common-util/src/main/java/com/atguigu/exception/LoginFailedException.java b/spzx-common/common-util/src/main/java/com/atguigu/exception/LoginFailedException.java deleted file mode 100644 index 60eb400..0000000 --- a/spzx-common/common-util/src/main/java/com/atguigu/exception/LoginFailedException.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.atguigu.exception; - -import lombok.extern.slf4j.Slf4j; - -/** - * 登录失败 - */ -@Slf4j -public class LoginFailedException extends BunnyException { - /** - * Constructs a new runtime exception with {@code null} as its - * detail message. The cause is not initialized, and may subsequently be - * initialized by a call to {@link #initCause}. - */ - public LoginFailedException() { - } - - public LoginFailedException(String message) { - super(message); - log.error("登录失败:{}", message); - } -} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/exception/PasswordErrorException.java b/spzx-common/common-util/src/main/java/com/atguigu/exception/PasswordErrorException.java deleted file mode 100644 index a5a9ae5..0000000 --- a/spzx-common/common-util/src/main/java/com/atguigu/exception/PasswordErrorException.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.atguigu.exception; - -import lombok.extern.slf4j.Slf4j; - -/** - * 密码错误异常 - */ -@Slf4j -public class PasswordErrorException extends BunnyException { - /** - * Constructs a new runtime exception with {@code null} as its - * detail message. The cause is not initialized, and may subsequently be - * initialized by a call to {@link #initCause}. - */ - public PasswordErrorException() { - } - - public PasswordErrorException(String message) { - super(message); - log.error("密码错误异常:{}", message); - } -} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/exception/UserNotLoginException.java b/spzx-common/common-util/src/main/java/com/atguigu/exception/UserNotLoginException.java deleted file mode 100644 index 087fdb3..0000000 --- a/spzx-common/common-util/src/main/java/com/atguigu/exception/UserNotLoginException.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.atguigu.exception; - -import lombok.extern.slf4j.Slf4j; - -/** - * 用户未登录异常 - */ -@Slf4j -public class UserNotLoginException extends BunnyException { - /** - * Constructs a new runtime exception with {@code null} as its - * detail message. The cause is not initialized, and may subsequently be - * initialized by a call to {@link #initCause}. - */ - public UserNotLoginException() { - } - - public UserNotLoginException(String message) { - super(message); - log.error("用户未登录异常:{}", message); - } -} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java b/spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java new file mode 100644 index 0000000..3071662 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java @@ -0,0 +1,32 @@ +package com.atguigu.utils; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public final class MD5 { + public static String encrypt(String strSrc) { + try { + char[] hexChars = {'0', '1', '2', '3', '4', '5', '6', '7', '8', + '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + byte[] bytes = strSrc.getBytes(); + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(bytes); + bytes = md.digest(); + int j = bytes.length; + char[] chars = new char[j * 2]; + int k = 0; + for (byte b : bytes) { + chars[k++] = hexChars[b >>> 4 & 0xf]; + chars[k++] = hexChars[b & 0xf]; + } + return new String(chars); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + throw new RuntimeException("MD5加密出错!!+" + e); + } + } + + public static void main(String[] args) { + System.out.println(MD5.encrypt("111111")); + } +} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/utils/StringEmptyUtil.java b/spzx-common/common-util/src/main/java/com/atguigu/utils/StringEmptyUtil.java new file mode 100644 index 0000000..c74c8e4 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/utils/StringEmptyUtil.java @@ -0,0 +1,19 @@ +package com.atguigu.utils; + +import com.atguigu.exception.BunnyException; +import org.springframework.stereotype.Component; + +@Component +public class StringEmptyUtil { + /** + * 判断内容是否为空 + * + * @param val 值 + * @param errorMessage 如果为空的错误信息 + */ + public void isEmpty(Object val, String errorMessage) { + if (val == null || val.toString().isEmpty()) { + throw new BunnyException(null, errorMessage); + } + } +} diff --git a/spzx-common/common-util/target/classes/com/atguigu/exception/BunnyException.class b/spzx-common/common-util/target/classes/com/atguigu/exception/BunnyException.class deleted file mode 100644 index b3d8918f75e1f3e374c9c9d04c86b3b836b5cc69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2117 zcmb7FYf~Fl7=8|fY!bFy!li~P1*J3>>{>-_8$cz3MMGPmgQI?0!f{#H?8)q&Fh$2N ze)JbOe)AuAE5(lE59seGf5Y)TyPISKv7;Zd=Q8j6Jm-0DdG`0yzW^*_JA*#-Ye?uA zK$2nVz&tVy$8;@YtLaL+&etB*cthI4Wk@dBt}Ry>Ci2ye-L~{>*D4ow(nuk#A){ju zI>TH|)D2TwP1|Z3yoF+{HeL5P2AZgeJsBx42hUfI~WlF~XqLx$m16S!QFF z5w|kT>KMZ~L%$;|Wh6Yy@SU#~4~(j?6j}Xm`fnI!4oVxwWn|M>h zTRIl;Hc^}p?Ydc$!aHV2lY}rw4A6oO>$Va+*4=wIR1cGaRUxD=J+l!?@rRRG z&)_56)v%%J<74XOPP^OgkvQZ=$Q71MJCi@evl1DGpm$Ao&*A=DRfxl8qkOS|VmDom z504wXhxwN=`&R44t|Ewv={VcA#tVTtzX zKDq`uA)rl0w43Cto;g}95$&%S%}$j5z~z2)c!vV~9Pv&O+LeHFGIVNlj;aYxz=~;r zMsUQk9I<>(t76F&ODA|G(078@ltgvzp>kSHFG8H5**zO$%(WSFSiyT8#+8V%Kvyc9 z2CXUt1H~t}-qDf_F4F;`9vVc5R0Wu)n{Madq5VuKVFE(u;hxU)N6^Fh(s}2Rp3d*L zoo^A9diGH91V#Flo?-zwk1`lT8H(PY!Ut%HpA9f5=h@UL-uMlpDgZ1fqELfQDP0Y8 ZRq!FLsub7g_X#%Xl%d@{Jir!m{{UKa;hq2h diff --git a/spzx-common/common-util/target/classes/com/atguigu/exception/LoginFailedException.class b/spzx-common/common-util/target/classes/com/atguigu/exception/LoginFailedException.class deleted file mode 100644 index 8aa47d00a923f7e35ddcfa715f200b335098e42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcma))&2G~`5Xb)$$8|nTn}(*P<+IS1Bt`fDCsH_2k&_EZMY(UB#dYM^)!If>h{xc- z9Uh>7R6Ya`zv%=cfPzX7<5MhQ6>7VNEc<{$1%xncwklrI0^+rb{3Oc?>sMX!RcqW`sM830|svz=P zjZP6|*cQ&%n8h5SIX#IR`$5zeK`46@sf;l82~{^%zLSJcZ}%P6`BJqCm?zBrc>U%0 z>#O58hd)2Oz4PK_8E3Izp=M(dON7eFD1s@KiWTAdlu9RRf7IBzNHkk$jj9x>7w6-H>0nUr&S` zp#trXAM@#6kPvRT|Nnn2f;EsyBK#rr)NJ^Rc4WF2_Z|x+1~Qe36BM?*a6I4AZk#Dk zws|Ooi3FmmD2rGKVY#D6xO7VG#y<2<}-)8d&bjU^ym-*DI1D5Ae!4Pt-fm%D?+&qHy4y9^k^AoBD{=sHh0-nE#1;*8ez{OF}7|7wchBXGS mv(hAXfC4uDmbp624-~8Ak2v=pB~7Pcsk##_=FQ1gh5Xb-HkDNb_#4&LK315K(>;&ZssBoYlN-75;C33$$FPF29U zwj*M%<9i)PK6B;c*jJ%*zY~T>+kafb)TST$@jXJaT&WvG#>8g{rE;w$o(Lxpq37(! z+7G>IrJh9|wuLh`rZGdfIXTImh@z)TH@CG`dMsHoP#&RJQ`&Q);L+`tQ&XNNbv1)o z&e-q1{{HUe&o^&>bi4g8ull{-o#!v|IEy(8B^&ctAQVo<64KJ7A>5cy@mLQJ8!hR^ z+(QoMv1nn*#syp?ESx0n2sc*xh>-PUJS>o~Iu73oxWQ`WbRUG&mTF4EOwAAFgHF34 z^?_&v{K8$kBB%@P8-MheiVyvWuu=P;f29#+3%Z x`C-rq$llhwgh&AK69G*~=^pfC(1Vnm0$PRUK3RrkQ=1)Yc4J9dUOf2# zda%j|u)L{<#LoxtJpylG*%P9sAQvw)-BbVmb@z1t{PpDrfZM3#kU-Kx%0?O!gk@K? z9T9sS-|IN?sVg7Hz6zbYoiNCFTR3H75>tfg_#}@askc;ISDqh^Bihe4rj1n;jE2wI8T^6PTUY~tn@x1>q*lE*GO0yg|7!9ifWaUtq@Y{YDW^L>V7D< zI_;*^4@EQJ7jE1YK|^TY_`}Ckyyr)RYxV#5$r{0G%P11wfO=v~{70KI-cvgdgcfZX zOU)TFYi=+cb#7aAv@17!Q`N%QVO=*+Eb_Dyyj`p^^JXi_Hm?_-7udVOH}Rcb?SekA zk-$Yh%^HE_DHL#tE&E8sxXbJrK$aB-u*pE9onEbWVSPldSg3wRF^PY$NtS>&AdMNu zl?K4sqo5&>!?A>A2CuL(P3!;}T=`q(;vheeE#`Ze|Ad^O)1Xw-i4pVe@SQ;UH*1y0 Ad;kCd diff --git a/spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class b/spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..26fd447baa2a97f97e28f7abbd4180944be3f5b5 GIT binary patch literal 2158 zcma)8OK%fb6#j1f7<)3ogTV=g@@N}qLK2)1FpmHQ8z`Z6pg2zInm(?_7kd(W#+n(U zM5?M*MXl6DS6#Fci>jNhsy-G0K}4l4`%u;X0ah%!>b9%WGcztp6c^R<9N)*e-#OoR z&dm77zwbQ&a2ke;9t0!=6@(CGP#5@3o@#KTmby||5SqgfKBXJFbA}->G(0CGf~W*p zK`)dI?ghuvjT%FwCY;Q&BW#A?&~P~u!4^82KYvt)imejj3btW8!!9q9Ewr|!JIkrO zux(xw=k=PfDQGXDOdGbt4NWji4CU7H@&io``%B#crrcot3I?!)2((*O?hs69sGM;r zsMx7smz#gM>cw+e?RFK|<2hxA=OpZ7IIuCr8MDyV>gO6YlQOP1FDz-I<>)3!xEIeU zc;3}7)*=<0g2T1NS&M5z!hVLGYsp`08;;%-PtL}v3NI)a!Z5=?lP`*_X=vP;rvNl^ z`8y=!sSf`qWdAFbe^v1c*bz#`AVyqrqYQ~|Le52T2q_8U3MO!PV^NoFM>MH^W}AwV z@FmyH)K#CQC3tfxf+Hm4g!hq=#xV)U6`a6HI-r@&6nAQEz1B{(9lc?vs1X<>VQAKJ ziy#klOK5YkWt_rk31<|%=+fBc3A!;4LiMz77}R)Kvr6@j<#a>Lw3`)S&GJfvR^mBR zF&I<79Py zC<}B=(@D*TVT&}Uy#9B6Nom`$3YO+_S!=6KsTumb*30vj$4$Z|374s&dEwN}>Q!#> zrf`HyAlT$ODb+tz-V8H5NBi8Wk=wQ|+YEBSY+IVRsJog*sHBJ7R47iyG#$#1xBP&1 zEDSEA0!>2I?Q(J-T+3QFZkmfCH5a#IQpQMxKV8gdoX93i|y9b z=JeOCY&bZ(+!9^f*E95=c^mGc4n&qW8U@`E)b8|<8z9b)KKlI8*B?Ck@ZKMveD>$+ zd-NS)49c`&2rJv*wk>Q4RPX(p2zTQlp~0}{>8@0KpETX4X?kwEp8%+v5GH$;W-0n* z^cy;O2kcuK^xzy>ciXiYvWoA3EY8y`>fWg2brxX16HqU$Jyg}zP${5}7fV5PqF4&4 zhl{1KI$119>XBk8q8=@l)UcW+E2+oGM%3eEqv{E=vdYQ!sui+|s*&wet7NyRf^1B^ zQOq4&fs~K;-9>C>Y;*;Qu@xlqqYu)-L@-oe4V?@H(&5pQQc`-5js()tL^Kik0^><3 z5uHrS$xtGEE6hd`vh=nZd*?`TZNZz~in1>s|9T&hQZjT0&wP^`S;4dSF<2V8hXcSJ z9Q@uB;3xb{kL`dbPlnzIt`u(){VEBxfIgVm0tYcH(cZh*iuV!6ZF+Nkh3#0S@ek-H zgaQ159rz7NPulB*aU1(^0T&??S`#nf5=E<`j%i#bnHT6@co{j0yM$TfF@qqX=WvDm zLKI^fS7|LwsByf4YhI=gQ6OKSNLLDh$M_hsgop%sNzF@88I94w$Wf}(X bI@un)L1f{E#9MUTAi5v{7<4R>2+4l{NmUUe literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/target/classes/com/atguigu/utils/StringEmptyUtil.class b/spzx-common/common-util/target/classes/com/atguigu/utils/StringEmptyUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..a8bb5061f41223cc5d8b3dab157019e6185588e0 GIT binary patch literal 852 zcmah{+iuf95IviubrYN>4dD{5EiE)@5&nPx5>!P(N&t}(3EnpD;%*!7TI+QopTcMG z(n=t~8xMRGV%AATxJdY6#xpzT?3vm5{^QdZ01wcvpn#%>l8*%}GSm9)<_jGG~1otFXS}at-wds!?KSW>c3H+!91Dn z#)+Ne+;2QI7&by32i!)PjIuzy4@F|7R>9*;smbnHSiuUKPVohXc6;vTr^<>*nC@I^ zCZ;p=aEW1Uo<6g3oCec^T*oU)FqC%mzF?^Jq!Q1vcqGgoAB`!~=;@G;hulaP&ypp3 zAXA3*-hY|944d;}rvv_{RvO4LCn=4&MrP#g8gAjhJr%e>3 ziQ9m;j`p24M?p&DLfc6qf*ljZ7&#H&;AjF@O}12^-_T398;1>7QJ35De{*6FWYpaRg5Yhoj}w{eHOQ@aWL1pCd) A;Q#;t literal 0 HcmV?d00001 diff --git a/spzx-manager/pom.xml b/spzx-manager/pom.xml index 3193a8f..d00067c 100644 --- a/spzx-manager/pom.xml +++ b/spzx-manager/pom.xml @@ -54,5 +54,11 @@ com.github.pagehelper pagehelper-spring-boot-starter + + com.atguigu + common-util + 1.0-SNAPSHOT + compile + diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java index f2bae49..7125688 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java @@ -1,6 +1,15 @@ package com.atguigu.spzx.manger.controller; +import com.atguigu.spzx.manger.service.SysUserService; +import com.atguigu.spzx.model.dto.system.LoginDto; +import com.atguigu.spzx.model.vo.result.Result; +import com.atguigu.spzx.model.vo.result.ResultCodeEnum; +import com.atguigu.spzx.model.vo.system.LoginVo; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -8,4 +17,13 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/admin/system/index") public class IndexController { + @Autowired + private SysUserService sysUserService; + + @Operation(summary = "登录请求", description = "登录请求实现") + @PostMapping("login") + public Result login(@RequestBody LoginDto loginDto) { + LoginVo vo = sysUserService.login(loginDto); + return Result.success(vo, ResultCodeEnum.SUCCESS); + } } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysUserMapper.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysUserMapper.java index 402dfe4..878bd40 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysUserMapper.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysUserMapper.java @@ -1,7 +1,15 @@ package com.atguigu.spzx.manger.mapper; +import com.atguigu.spzx.model.entity.system.SysUser; import org.apache.ibatis.annotations.Mapper; @Mapper public interface SysUserMapper { + /** + * * 根据username查询用户信息 + * + * @param username 用户名 + * @return 用户信息 + */ + SysUser selectByUsername(String username); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java index 14d717c..4f961ba 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java @@ -1,4 +1,14 @@ package com.atguigu.spzx.manger.service; +import com.atguigu.spzx.model.dto.system.LoginDto; +import com.atguigu.spzx.model.vo.system.LoginVo; + public interface SysUserService { + /** + * * 登录请求实现 + * + * @param loginDto 登录请求参数 + * @return 登录后结果 + */ + LoginVo login(LoginDto loginDto); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java index 00ca061..65cc597 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java @@ -1,7 +1,57 @@ package com.atguigu.spzx.manger.service.impl; +import com.atguigu.exception.BunnyException; +import com.atguigu.exception.EnumException; +import com.atguigu.spzx.manger.mapper.SysUserMapper; +import com.atguigu.spzx.manger.service.SysUserService; +import com.atguigu.spzx.model.dto.system.LoginDto; +import com.atguigu.spzx.model.entity.system.SysUser; +import com.atguigu.spzx.model.vo.system.LoginVo; +import com.atguigu.utils.MD5; +import com.atguigu.utils.StringEmptyUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + @Service -public class SysUserServiceImpl { +public class SysUserServiceImpl implements SysUserService { + @Autowired + StringEmptyUtil stringEmptyUtil; + @Autowired + private SysUserMapper sysUserMapper; + @Autowired + private RedisTemplate redisTemplate; + + /** + * * 登录请求实现 + * + * @param loginDto 登录请求参数 + * @return 登录后结果 + */ + @Override + public LoginVo login(LoginDto loginDto) { + String password = loginDto.getPassword(); + String userName = loginDto.getUserName(); + stringEmptyUtil.isEmpty(userName, EnumException.USERNAME_IS_EMPTY); + stringEmptyUtil.isEmpty(password, EnumException.PASSWORD_IS_EMPTY); + + // 根据username查询用户信息 + SysUser sysUser = sysUserMapper.selectByUsername(userName); + if (sysUser == null) { + throw new BunnyException(EnumException.USER_NOT_FOUND); + } + String encryptedPassword = MD5.encrypt(password); + // 比较密码 + if (!encryptedPassword.equals(sysUser.getPassword())) { + throw new BunnyException(EnumException.PASSWORD_ERROR); + } + // 登录成功 + String token = UUID.randomUUID().toString().replaceAll("-", ""); + redisTemplate.opsForValue().set(userName, token, 7, TimeUnit.DAYS); + // 返回loginVo对象 + return LoginVo.builder().token(token).build(); + } } diff --git a/spzx-manager/src/main/resources/mapper/SysUserMapper.xml b/spzx-manager/src/main/resources/mapper/SysUserMapper.xml index 1145174..ee789fe 100644 --- a/spzx-manager/src/main/resources/mapper/SysUserMapper.xml +++ b/spzx-manager/src/main/resources/mapper/SysUserMapper.xml @@ -1,5 +1,15 @@ - + + + id,username userName ,password,name,phone,avatar,description,status,create_time,update_time,is_deleted + + + diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class index c9ee57fdd8b6b06ffa6c5b26e5314881204c1488..d23e1fabbd7f5e57b4d6cd4dba2c98bf68e8000a 100644 GIT binary patch literal 2016 zcmcIl%WfP+6g@TZcw*0xgg88c10>;*v143$LSP)DV1k4+CXpvLNUUnQE1e46RYO(v z*k%bER$&7RHf#_QD@afz^ALOh|6zx(K-_AA<1sUdBf+BUc6Hrz@2%6PZvFn}&%XgU zkJm?0!mbL2YA9ovVc&Jp6+9I>;g{OiW#k!#XOvccmSI(a_%}Gt?-PX((=e?Z%vxg>)Se(D|4H3hCOc8Ejnpi(sorO8BR0@g(0ut!dpFv zMiqOow}O2&Jc|7c(+>w{D5oY-n&G{ApUftfDUZG3RHm01ZwB8ty=hDga_;u}E}6y% z4&bp09*FH_OV(n8FSPMj7@tm6q@1SzFpG zg2FTGZ<UsIItOrM=TNY#|<-TzEX+sWBo$dx3>Fx98Ffr4cybqO;$ z2=i~)(BK=f+Kj zvwfAfEZe-Tbi5@czigbJ7o84Clya84BF%}dqrIx$B(+E0J5RD8Kg^}`Z<{?c#JdpJHw;P|XZQS@~{j;wJoxOexPzUq( zx;zE!e{B0hi+$bWZ;XpLQ~I9{OkB$q9HFbHM3)w+I$S@*>RwcrjdwWXC3NqjLNwJW|5^)DIZ@ z5eIM5=MqAwaBqSdZ5881xWj)#?uH9Vj-gIrt5o#_CdvCa`Io63lbNEYgqMm99HO^r ydbq<0oOC#a(*!&7KA5AL&XQ*(?B(SG@=7tDD}dva@l{%R&7pxAS~$OnoBazvU2p*a delta 179 zcmaFB|BQv})W2Q(7#J9A86+lh>9esja4<3$O`ISx*_>Hw@-wEq$wydKCQoFNVbqv> zfJJ^X2itTu*0RK$($vXw*(3|u8JK{285kIWkd=WANOA&s`d~f-1FP0{2F8s*0VW16 zAPJIY0J6A&BoCO)3Z!|#@_b;DpFsdfOEWMt2m>o B7;pdp diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/mapper/SysUserMapper.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/mapper/SysUserMapper.class index 6927299dbc500571771455ff10d0083542d3aa21..bd10120f9eb570ae2599a6a3dd26eaec57bfd272 100644 GIT binary patch delta 192 zcmcc3_=Jh;)W2Q(7#J9A8F(jhdDROPr{<(4mpE017N-{FCFZ6wGB|1YWF?j*>gOcp zrRxWm6lLb6TWk6x=jZAtmZXK9iQm!#(E2Uiw@ z%&}%<5b#Yc$;eL$NGt-HS&~{*%*en|3b%qQIKQ+gIn^z5Vr;q=BMTz~D+3z?BLh3o YU93QbK#GZh6HIb3a06+OBo6}v0D%WJO8@`> delta 45 ycmaFDbeoau)W2Q(7#J9A88|0$c}+Z3AkM(R#J~y^VParoUff$?3=9mm4BQjBeCk}HU>rpcA&dhfwDk~k%1FPGBI!g0J8x!`v3p{ delta 33 ocmZ3;)XT_q>ff$?3=9mm4D1uRd?sGk;bvf9WMBn~Ffp(J0IDPhQ~&?~ diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.class index c289ff2df98dcfad93e701110c819f8851677211..da3b3d3785a5e4798b4441962a2e7eb9aeafda69 100644 GIT binary patch literal 3221 zcmbVOYjYE26n@?|$);h;C6>Xch?N3uX}chDX~V^q7AUp_NgDxCXPdl)rO9sCOCg9C zL=i<46|dt5KjH@mb(~Oe)Q`^iJE-7)a2U_Ko3fb&lm+o zwR4V^a}=w1`jk>IvOKS3Z9}n2mdy*wkdf2$e%oMJkmL4#)v`_+W|pC;wQXolS;{sw zJ(m>X7s^;9WDE8&i<={Afj3|Y;u0Q_(S)T8n`_mQ#oSbgeNxMCMJp8ZN~&au^C^!u zNF;_umaAx>P_#>9wnmhdLw;cn(JaNYW|k=_VHq*{`S_^}FWQ=+D+9Vy7?^pABEhiq z_LZxDU${Pf`O>YaOLxxwc5CY9?eA~K@Hn23uw2HISi#Wjmlmj%LDDSO28K1QzF2vQ zN%|<2=(VMzXl95{Ups&MyR&}fB7Q4nv|trOBPB+}Wmqj1xyjH~6#y@ZUNj3X$4neO z{^SCzL92u|8SPlh(Bb!EzQa^s7SB^v^_7GLI%Srj&+preCjmCOg~fGSvr99zRmm{r zr<0+@Z^>MK`W#&^`4Xg15qJrr08Rh!)%3SlW9Yzo(E!g-@`9|PvVRsEC2W$h8C!_S zugXi_aQ{Y17}qmqsYp$;I!H`y#$xCZ?UW3Rfag>GvK*Oalb!G4CAsp?sy;621= zdUuwAI(Goi%NP=!8?_D3jwnVLSZ5Ub86b>4AR~oQA&nRFYKHgbsROqJ#Huz_0catr zIxXWx9Hgo?c~-MVId!>eQ&nvkGRz!7l7N+?CKVc?&V-UxZB=nOm5gC><$(VX`EVF7 zNjM_oWxT?${-GrhXcTfXLT$!vMD`}c4(zv7LvjWJH6zvB+*W!+) zw9)4srqtVTBuvUUiBo|C#_h%${rAXW2;0U4*BOTWfte50<`e6hcUs14I71p-hY2wr z!d*hhHwfu#qf!PK!}^zfQ2Rb;MGJbqOJ;e&*^v=C3LblyA#E0VUONBG%CdsM73TS z-N8fq{_}$DTT&TKJUh37HKuGeGeL8`66wXm+&*RygTPChn-uj}%5cmK-=&H4EUT^$ zu~BsiM52BTEC$;DOm5hvB3CL)7#SiD>N+=f=E-SJ3Kmv3BAN-)>%j0j>Ind8+oSt8 z=`KS5Z_$69SYm2uGy-a9ly>*jSvsZATN*(Kw_gYQ$rbZ9U4>Ag(CQQg#JY1ujn`w z@4Ak4e{@V?Lr*vnPK3(nE@SIAm6v_uBan(zL*E zY{Y3=V1&1OJdY~gl5ebK_oYjo;fiy2zo)1j&GYEiHFfs@-FaQ8pBp7A@ diff --git a/spzx-manager/target/classes/mapper/SysUserMapper.xml b/spzx-manager/target/classes/mapper/SysUserMapper.xml index 1145174..ee789fe 100644 --- a/spzx-manager/target/classes/mapper/SysUserMapper.xml +++ b/spzx-manager/target/classes/mapper/SysUserMapper.xml @@ -1,5 +1,15 @@ - + + + id,username userName ,password,name,phone,avatar,description,status,create_time,update_time,is_deleted + + + diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/Result.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/Result.java index cc30c54..9fc15e8 100644 --- a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/Result.java +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/Result.java @@ -95,6 +95,27 @@ public class Result { return build(data, codeEnum); } + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param message 错误信息 + */ + public static Result success(T data, String message) { + return build(data, 200, message); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param code 状态码 + * @param message 错误信息 + */ + public static Result success(T data, Integer code, String message) { + return build(data, code, message); + } + /** * * 操作失败 */ @@ -129,4 +150,25 @@ public class Result { public static Result error(T data, ResultCodeEnum codeEnum) { return build(data, codeEnum); } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param code 状态码 + * @param message 错误信息 + */ + public static Result error(T data, Integer code, String message) { + return build(data, code, message); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param message 错误信息 + */ + public static Result error(T data, String message) { + return build(null, 500, message); + } } diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/LoginVo.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/LoginVo.java index 1c41ad5..9ed1eee 100644 --- a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/LoginVo.java +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/system/LoginVo.java @@ -1,16 +1,20 @@ package com.atguigu.spzx.model.vo.system; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @Schema(description = "登录成功响应结果实体类") public class LoginVo { - @Schema(description = "令牌") - private String token ; + private String token; @Schema(description = "刷新令牌,可以为空") - private String refresh_token ; - + private String refresh_token; } diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/result/Result.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/result/Result.class index aee880316a4a1e8c0cf78fef0fab61bbc7a67dae..1e79694c0083a227710dd440b16bb2174412e9e8 100644 GIT binary patch literal 6571 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 literal 5823 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 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/LoginVo$LoginVoBuilder.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/LoginVo$LoginVoBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..d0af7ca2c4d03a2482bcb2242e8772b2cdd5b18a GIT binary patch literal 1575 zcmbtUZBG+H5Pr7wjau5XB8V@D3epzj@D;S;2bvH}3YtJ_j33OlUE71}ZF9FJ;xF-M zXo4ZZ#2?^~GS2o6Xl+B9n9J?X&doeC^UTiu{&VsRz#3K(2w^0Ka1s$j8H_!Cz)hPw zb@NSSPgE5{^rhuk>J`ICHdh`+9HTKLlDLEHl1S?SW3Kq*3a|08V;;k0 zhU~C06EJW^*EP;CpY4y+ugR4&#L7exleoq(+2s48D4i--?=00I$y3}>9>eNzX#D{g z!bKv8AziW@vE6P~guBZtHfb^?S><+_yOur&%CKr!6z_Ry*qZ<0xxlbBAlKY~;2B#& zHDv8AcX?AN;Zk~$itZ}IVs?07$}Fy=-*JX<^6a|@42d1tcB^8;(gY=gE3~8y$$MLP zYEyc2LydJQm8V?Z@^kajQREWHVw{Md+j*FE!y1k1hp#F>lwpihPgg!22~uxQ-e1R}YfbkQ? z`}`55dW5lKWCkbf*K3^Bdl&ZtoK-4C6p!!(&oK2DVO@Qf literal 0 HcmV?d00001 diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/LoginVo.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/LoginVo.class index 426926e50212666ff6a1c2b53729c349053597bf..965d6d50466ac36cf2c4b98895537be39577bdd4 100644 GIT binary patch literal 2841 zcma)8ZF3V<6n<{Hn{3;(4dpfRVv!0^y^kWxB@%>N+~d>Y<@Nf`%v>5f$iIt9}91wI>Zrpmp%FKCLJ7x|L0i zxJA>-rliv5C|ab(rlRpy(QtBac<=`9tc#)*>jkuoZk>F)q~`@Tc2p=iJAT>7xT(&I z61*{rP1sCu)^JCCgBvj)gKbR@Xi z%F90H{)#|+xMaCz!5A|gb3AVxw=CP$U6Td`x(7{0`5ir*HHyjU{YhJQlKL_rSuiF{ zJvoxe83jEh&^Tc@nW8x*Pt*JPxo;QW|Bx0IuHJp{`AvV>z3}l*^K;+L|1!Jy!>mAL z+|L$)6gggND%7MJO)EZaErX_I43!GwMsZZ9H!@f3jGiCUi>6!$LdDIQbT6@HgS4PI zOX*ORI|1dLV+?NEaC7#=IlZVC4A&^qM2x4Z;w>QT>I@E&kLhi@Iio1hAaBq)j8Po|#PRQ-ROwx#5BINtz#EXjmSlyvs>hadUgkam}@T&jj|Y zEyGAa!-!ofW{gv&WIh`7gT1ma1a>ZdIk#}{vjxCb$ z&EK0@yfw!J8ZsO=ZOHIR?oQaY>$pXI%IDQ-31g@MXK^lqS7cob3$!m+ooP+8T7!n* zm&z$U;n*)|*6#MhK;~3#p4BA*vpGk>u7so@pac{%CU$ z7w)3&Cg%dr@EPU^$oB>NE}s%DPf4ko_!$ui4OKv6c$N}rlK||;0ggiUS3YYGH`N|q zzv|(Gc#bCI;a-mNrr|`_ZA5NyR%yE4JH5$A1g512J~xMmR++|#@g|2?SJ|{yl|HM1 z$`(&0Uo^BVZ}~UJ2*+Gk;(MsdjjrFJeFe4dM%Qo9(%p$WhMBCu^Kja~!x9fU93g*v zxncwj;bzMiK=MLK5l=AJpirk1R!Hy=0<<_><2|M6x4G62FL&tG~ zHdP!%KW8D9!9G$Z3ERbdKFOKlk#h#hBMKCfBLoS75RV92UWcS$Bh)gWj8UpZgwfuq zrCK>mo3f6YrIXU3S;h>tMdOFtuej!=ic=X%KONH?>!_tAaTgt4;Uv0mV@0YrdezhB zLzl9qC8!=A_gYEFi*vnfI57%jE%7UoPZ^oz#z0H8r4(JIwpE*g}^?1=R#wKi&}bAoFzQ`<#JT2q#c3;I|)bBv;ZwSf~!+Br2J)XlG{a zhwFCQxtmEX+p8M!R0y@G6R@0Q+8IhM*aE($=CLx?YzW~r&bY3)?fwu?-ftRrgxf0z z>LY`xR3@ESPp(bc87H-nF7;z1h*69wjO(16?ko94OuB1kyI)~i5F}z&x<6%@=Bz+X z-c(ugoJggXH`Y)`q6Ui^d`b|4KqIXZ&S&{GrP0id(xW!w2rz|R?dR68UG0J zE(h7dQE%(<97he$08E@`G-yOo$?;(J2dKB)G_aptav*yznTM;B-Ov7Lc0V?JWNaHQ z5K$NE;j9Jwl;%*_ zG@6+ELQSix9PW8>lV4#)5-(xJK zdES-ysI-qir|!Q_s_m!#Alh)1mJbbVi~+7>PU|@2E*+9ug`mDHgxFE74*zY#xXulWxHtGs P;1;bQS5uhbMaTXEiuroX -- 2.43.0 From 77cbffcd068b409486babfd54f5d9163cea2a4d4 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 21:19:38 +0800 Subject: [PATCH 06/15] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E8=B7=A8=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atguigu/config/WebMvcConfiguration.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java b/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java new file mode 100644 index 0000000..1381589 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java @@ -0,0 +1,22 @@ +package com.atguigu.config; + +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Component +public class WebMvcConfiguration implements WebMvcConfigurer { + /** + * * 解决跨域 + * + * @param registry 跨域注册表 + */ + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**")// 添加路径规则 + .allowCredentials(true)// 是否允许在跨域的情况下传递Cookie + .allowedOriginPatterns("*")// 允许请求来源的域规则 + .allowedMethods("*") + .allowedHeaders("*");// 允许所有的请求头 + } +} \ No newline at end of file -- 2.43.0 From 486802e293d52c0a0af901563f5a32235b57c43a Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 21:30:22 +0800 Subject: [PATCH 07/15] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=AA=8C=E8=AF=81=E7=A0=81=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/atguigu/config/WebMvcConfiguration.class | Bin 0 -> 1384 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class b/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..c031957b7d5b22baad5412973481dc6520e924e8 GIT binary patch literal 1384 zcmcIk*-{fh6g^D>6XVDd76DgWa1xZk?I}vBsS+O&p@ zr61r&S>B#RmMR}Cqc44XnLg*tz32A#A78!!c#6k)3?btn>tYxq4C8xzpZgJyLw~)w zCt8MKS!Kw0#YPS}n)szs9(kO1;JUbgQHE8eLqF+g8HYQXx5a_dAN&K+^b?`? zBVqiOig#q_^Eg(98>wQyqI9w;LYWwS$dKnjP~)8r0WiGvswXVF^MUL7lT7m%6Js1gNhb`h>he?!m#GO`zLZ8%$zAnFBLh=GBB#ZIObhk!exf( zRD%fCwG3sv!Hp3*CL!D2`~R59t1hlt_R&6jO_*I3Bv#mhiyNnpUI`uuojAC~u-H;< zpPR5N!|pF%Y>8%Vzg0<1($#6P94!7-h0a0=&5*6AKroC|Wh`EI+fAY0@Mc6ig{o@t zsKK?g>;7ie>`F?VSN$`YWdbJeS~vIoOP4F&U~WAu7aI&YecT?;2E`*E^~$rsZGVzK zNM^pSy1FG^N}G(?vx!SWwlMaFd=JhTHV^*ho(fjdy6}Q)Co}OP|3$rNaNTb{P03|HZis3Hq5s1C~ zk${FMt}GRtBb>_~VJ!O<)7zQC#rhHEPR*~JnqS{K;h85UkZm1I(92LDTTc?p6v>)S hxo3L#eQsjHaw>U+ZVfY9*#Ehojt}sVq80uK_zC;BkwX9g literal 0 HcmV?d00001 -- 2.43.0 From c27f4f482b44f7bd6d973dae8a85b93a02fbc2b4 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 21:30:25 +0800 Subject: [PATCH 08/15] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=AA=8C=E8=AF=81=E7=A0=81=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manger/controller/IndexController.java | 16 ++++++-- .../manger/service/ValidateCodeService.java | 12 ++++++ .../service/impl/ValidateCodeServiceImpl.java | 36 ++++++++++++++++++ .../manger/controller/IndexController.class | Bin 2016 -> 2690 bytes .../spzx/model/vo/system/ValidateCodeVo.java | 12 ++++-- .../spzx/model/vo/system/ValidateCodeVo.class | Bin 2466 -> 2882 bytes 6 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/service/ValidateCodeService.java create mode 100644 spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.java diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java index 7125688..d4c6c90 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java @@ -1,17 +1,16 @@ package com.atguigu.spzx.manger.controller; import com.atguigu.spzx.manger.service.SysUserService; +import com.atguigu.spzx.manger.service.ValidateCodeService; import com.atguigu.spzx.model.dto.system.LoginDto; import com.atguigu.spzx.model.vo.result.Result; import com.atguigu.spzx.model.vo.result.ResultCodeEnum; import com.atguigu.spzx.model.vo.system.LoginVo; +import com.atguigu.spzx.model.vo.system.ValidateCodeVo; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @Tag(name = "用户接口") @RestController @@ -19,6 +18,8 @@ import org.springframework.web.bind.annotation.RestController; public class IndexController { @Autowired private SysUserService sysUserService; + @Autowired + private ValidateCodeService validateCodeService; @Operation(summary = "登录请求", description = "登录请求实现") @PostMapping("login") @@ -26,4 +27,11 @@ public class IndexController { LoginVo vo = sysUserService.login(loginDto); return Result.success(vo, ResultCodeEnum.SUCCESS); } + + @Operation(summary = "生成验证码", description = "生成验证码信息") + @GetMapping("generateValidateCode") + public Result generateValidateCode() { + ValidateCodeVo vo = validateCodeService.generateValidateCode(); + return Result.success(vo, ResultCodeEnum.SUCCESS); + } } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/ValidateCodeService.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/ValidateCodeService.java new file mode 100644 index 0000000..d40b649 --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/ValidateCodeService.java @@ -0,0 +1,12 @@ +package com.atguigu.spzx.manger.service; + +import com.atguigu.spzx.model.vo.system.ValidateCodeVo; + +public interface ValidateCodeService { + /** + * 生成验证码信息 + * + * @return 验证码响应结果实体类 + */ + ValidateCodeVo generateValidateCode(); +} diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.java new file mode 100644 index 0000000..d91db0d --- /dev/null +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.java @@ -0,0 +1,36 @@ +package com.atguigu.spzx.manger.service.impl; + +import cn.hutool.captcha.CaptchaUtil; +import cn.hutool.captcha.CircleCaptcha; +import com.atguigu.spzx.manger.service.ValidateCodeService; +import com.atguigu.spzx.model.vo.system.ValidateCodeVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +@Service +public class ValidateCodeServiceImpl implements ValidateCodeService { + @Autowired + private RedisTemplate redisTemplate; + + /** + * 生成验证码信息 + * + * @return 验证码响应结果实体类 + */ + @Override + public ValidateCodeVo generateValidateCode() { + // 1. 通过工具生成验证码 + CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(150, 48, 4, 2); + String code = captcha.getCode(); + String base64Image = "data:image/png;base64," + captcha.getImageBase64(); + // 2. 验证码存储到Redis中,Redis的key为UUID,值为验证码的值 + String key = UUID.randomUUID().toString(); + // 3. 返回ValidateCodeVo + redisTemplate.opsForValue().set(key, code, 1, TimeUnit.MINUTES); + return ValidateCodeVo.builder().codeKey(key).codeValue(base64Image).build(); + } +} diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class index d23e1fabbd7f5e57b4d6cd4dba2c98bf68e8000a..75663be0a9152709fbbe872fc80130a2ef059d92 100644 GIT binary patch delta 748 zcmZva%}*0S7{;I3?ONSd2^2J>B-9ouZGp8@flbrI6w)PJo0^bt z08+Btfh!k8O+XG9uKX1o2*}?+Vti&w01Jnicjn#S^S;l_>|w>%8uQ@q?jC@b7~3-E zw9p;gM!<`Q2nzUSQ(rQZsTr$pYSQ{(rO`JFNCt}7wXCc*0e zL8d=nQclqoN|pghA{8eqtH<-j(~X5cn}w6LfS@BD}*}j8R5SUSC;G=iX36j6|F}!DvLcA-0sHnX@baRH22lEJ^^a zgu!(s9&;zfAK5@>^hKSp`$1j`O{M@pz0@gjpah(YiJ}edEaKtocA%4V7kPs>$I#88 z;fXpz9am2|p4oVggpC*cF$9vIAZ$8#Mba&uzve>lU3;MCm8T(Uq=l;JPt^ZHNMI!P z9ljmZeq&a{rO6=8hLp+sCB?Z(Q(5a}*^-~WazFjj&j8+B_z6=#h(=ldt%ChL^*eqZ OvN4Pi_8q-o-~R*g^o)`K delta 291 zcmX|*O-=$q6okK?$p{W6h7dPkA~=I02*a;GqoW5Q@e;joX+pvY<|M?0i3<+E$|HCT zSH|iNanY|{bydChRwv)b@$UC?3luzW;&t%;8ZN@}tMc<=2&i#{;Y{*@uq_OPk!KyT zOw0(Q{s(5`<#SbMh6ahM8z2KIU7?}Qg;=M|57Rg2jWrUQTGjIYHlcW9?|0oLJ>_at zxuP%kKzd~K4cB@BLx16^x{+RH88fj=nJG43Vyu=f& z`h*XT<1jqQjKiqR2+Y9f=nKyHH~1)`?>>t7-Q8`H{=k8z*?aG~=bm%VcfNBrzy5pg zM*zckFM*iAXu&O8(x0u`vsKHR|M(-T?9Ql?wcuLbWzSb-Yf6^v8R@GL%BS4!rOTsL zyELOJDF_&8n1~C+5800G9~Nlp>78mu63q#u(r7_izZ3wI>s-_1!W(@jZb9jbTLBT6xi@ z+}#k!o~b&%T~<@JXHS>Z5yx?T>DzQ5FfeX2?H|h7SyizX_FAs=ELm5u%4)`z)?}fm z$}%U=GNZgg#h%xv8RlPKfAZ(IR~}uzGN;qkR$DIUq%f1yAy)*(2<>wcVRhQ^4n~My z`?&3>iE4RTRnAI=rRm}pWNAuPY`uZbaXDrzJPF-GC3lmfa&^0RiVDVVz(x9K*QERTwk}b%jXMI_b;8 zTwcycL7S(~jO9n^dW`g}D6d-b$-TPCR4|PWCw(`JM_|{pF^yrTCf#bKppMxZ__egu z&@guE8WGr9qr=0ipFX_z*`xbc|G4($!*8zr{=?Nrx9*cn6Uy`RN@tL$WsbV8@A(xu zA0q0t$1#z@DV$E=ZCxX01iI_hXFCh-oQm2)ST@IG!FMYp;^&QFM2ex&1mLa zVbM!oj5&^~jFhD3DFW2F^jy@36L?o(#|m6l3para%*y|(k}n}P*v5XAWq*qC!%oh2 z-^*1C$3A}hJq&PzeR$=@AhnvY8y2_r@JtsK^ZmUpfbILQrzb_K>cOLENfJBfF=>IiU2Vv0@d K9M0n+vi||z@@J_4 delta 1194 zcmah|O-~b16g_YHrZa7a(ts2zs8AGPiWU_RiYP*r55=OQ8y7lCLqmvFTim$lFK}Vz z9~cuiE;K48EKD>e8eRAo_#pzG*C|k%CZ?VD?zfR(f6DJ-&V8W|lkB{^q1)o78}cVh8euj5La-pv z%~Oc`34T2V^wQ8+&tM}!4_3@I!I&g>!CkjML%c6T_Hk8awVvdv;OT%Q>wZLyDKEbHZJnDH=n5%lcW}RW2 zE_jHL%Go{4YRHEFKz5b8p)kEZS1=pPm>d~mCEVY}ywR4@`_|Cr#?5$XuQ^_8r(uvv zZkJ#V0~jQy7Tm%R6KI@(G|o}ygN+LqrX(?iPK;2}F^4v!DETo;oDKvG^Dn{%%uPfM zX#AUE69+vpAeK;JIY5>YO&&`|jxeWcrk?l;^DTwyd-SM!z1*1sH4j5fEOrow%5`)6 zsY Date: Fri, 22 Mar 2024 22:00:25 +0800 Subject: [PATCH 09/15] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=AA=8C=E8=AF=81=E9=AA=8C=E8=AF=81=E7=A0=81=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/atguigu/exception/EnumException.java | 3 +++ .../com/atguigu/exception/EnumException.class | Bin 1127 -> 1331 bytes .../service/impl/SysUserServiceImpl.java | 15 ++++++++++++++- .../manger/service/ValidateCodeService.class | Bin 0 -> 236 bytes .../service/impl/SysUserServiceImpl.class | Bin 3221 -> 4009 bytes .../impl/ValidateCodeServiceImpl.class | Bin 0 -> 2578 bytes .../spzx/model/dto/system/LoginDto.java | 16 ++++++++++------ ...ValidateCodeVo$ValidateCodeVoBuilder.class | Bin 0 -> 1655 bytes 8 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 spzx-manager/target/classes/com/atguigu/spzx/manger/service/ValidateCodeService.class create mode 100644 spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/vo/system/ValidateCodeVo$ValidateCodeVoBuilder.class diff --git a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java b/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java index f101c43..cb09563 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java @@ -9,4 +9,7 @@ public class EnumException { public static final String USERNAME_IS_EMPTY = "用户名不能为空"; public static final String PASSWORD_ERROR = "密码错误"; public static final String PASSWORD_IS_EMPTY = "密码不能为空"; + public static final String CAPTCHA_IS_EMPTY = "提交验证码不能为空"; + public static final String KEY_IS_EMPTY = "验证码key不能为空"; + public static final String VERIFICATION_CODE_DOES_NOT_MATCH = "验证码不匹配"; } diff --git a/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class b/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class index 25dca6c4a35446da07b62b88b66c3ebd79b2817f..c69e99a98d5bd1f80e212cb77523770b0d869fab 100644 GIT binary patch delta 594 zcmZ{gO-lk%6o%h>XQmOeFhNPA(mu4Ztn5pv7K2VC;Rh*!t68~jN)6Hcr}2<8V_ zHw0ol2CJWzuuK{|X#%9@SfP6}1ljb3Q5iB;sh1dGR)`qxTGJ>@BCcQgUm@SofnzYs z0iM^1UYJA?dYEAu==^dGK^l1p3>lW9xGVnaNStUGa>`uC2B{b}v1PdE0s3wP+sFg0 R;*WQA_a*f9wM{ff=m%v4VSNAq delta 389 zcmZvYJ8l9&5Jaoz!=l9?WMneTE?=`|4I*-2Ba!(8j-B`%9D-{&01+S&Z~#ug4Y&kC z)UYFhHA(e!ch!@6*5R=j?$6sDfKQB9;jgSqswQFCa?25|W%Gm!LkHg%99Ei5Ikp*euI3 zJM+!+b$Kq?T5z@|_V1gT1-1r?WM3=3-(c4t8>EQlf^ z2=Rp$kfL;jP~xN@Mf4ob@t1mz|NP~lgdhI#r*hOgX`pPmbKiZpe)rzlYn~ly{P1`C zbpWOKzTP-hY(PgpfdB-9QES=dp|y7Ps*o#A6X@S7j@DRntc^ZoU;u|HFc5?4ui0#{ z9LsXpP`R89^k-oh$1?)i7%n%nsud#{0(YCX-9NVFPV26Yt=I0fw%&BWQFcs4nQnN$xxD~U*(Ykm=I38LVv1%At6-PN``^a)ykJgM>EE+Q~9bN+^curuZ zi>2R=j+-0ZV8zNqam&E-n9VUqU@qn{^y~DJu)~q=wBih!wJs5g#N`E+CAxFXrI-uk z&z{`u7YX2AoCu`5JKG+7u*<-FR0^ngiJ^avJg%gsEjCbu#R5yPlw8(W5zDs7W%`iE zp_m?xMyya>v0HVOz;e7S|77LVCtSd)r&w z*yj)2J$%N%>!{^eB@o7HS?ZmqMd0IjgDi{uC5XC}uBEixK4j%q>4-6it{HjIaImAP z$$*Un$9jPccvB8lCgj<8OWU8%dQP(+W^S>gR6kQrP zj|+5UXu?H`O4jTzQZz{RN4^6-k4T^SL{fqZ(bS-t*NpVSzz_$SE>{p3(ao7kAg6~_ z19@F+frBxo+JO+%Poir z3vW<>0#kLcXbEx43fu6C2SIM~+ucglu2MlOte|e{CU>yLL0ylBb?#*=;tn_b+2x8+K}F#U9h=V4s7-7pZP9T(GK;PINe-I)cy`i4^3JBo~>; zqi;SYpn$L+g-VQ})hNPxjKyY>?w}XcK1{+POvXtRldn<=P=;I7r=RGhaSs)41CnIa z337J>2yR@$Wom?q-*E-a)C>b1_?kE`1^*2WaSEmID_V$CDezHp+)T~dN2Ah)c5n(d z6IV&5Q>ZK&^=A0+4V94(V` z8s9lFK)*nSgJX^0%4sOxD=7Q_gr#-HRN)a*X$f$H{J8D!neT7ue5)@JgB_l*0+e!Vh0Ae0|0z!y1FbopwG}SFw&xO_!mYyX;c8 zKb|A5xjV!f_iF87x3;;Ldo}9~_i?|XdMJM|-#(l#47P78?%!J&RJeOa4&;YN?Kf^+ zYJHgBOmE~7!=o65SKL>I@YteIS&zpQ_)^R#4BL3p zcIrMqq`TelG&}5Iq_1LtXEeJE&+?p|i;N{5DSr6qI4|&`<|V@(URI>+C7rStbZgZs z?9~hzUS(LZ*3L&7>`*jeuj;K;1@>uPH;k}f(IR|XY{A=HRpfx?py3VP40|~4b=!Zu z0k6m*!`qD6-SKW$Gp=a6(O>VvU-9phJzp_m+sx?15+W$xAu4&v9Ed(4nk(yJStDWV zZn6o#n`}yY6y7=_x7uZu;^3rbQ9oUWc~@lU4uc#OY03wfc#rpGtC-{ii6*yImmJh$ zn`{lx{UR#2q<^M5n^+!D7iyWr%CdHQ_99IYaW1@y&{^WafX#{i#MXeva}%y0J{7Ptn{;c~eV+V923<{y_^(} cqXaq3_%o3a?0@Z?mi;ODe2H45z~{vO1&)Q+3;+NC diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..9f9270620958c9fd45d155e5254339ed8b110dfd GIT binary patch literal 2578 zcmb_eYj+bx7=ETryKTDAQa~)XS}Bm0%Ya;M0HvXYK-y|^LB-o-GbBScJ8^eXtUtu# zfAEWXJQexi5Aa8Md?y>r*5-hCXwS~ zCt^czUj%i&R(&Ep!!Ue91QsnGLfZ-?P@CQpBJg+9tj!E73PG45c(#Xd|jOus^&!Kq7=(>2L(ATw8Z zah0M8RZ#ERJK*A=HMW;T^DR-Aiz1R&FHaI1hg`gkDTYHW(UdtIc)~nXra^C!5rK&q zPGxo*?R(A<9CdKa#c@p2QC%P%B7~RA`8y2hPy{vIiWigrAl()qoJTO@;$4e##ON6P zC}wfe!6_G~kzu&u=@u8J-cj`qkJ{gT%Uk3$8S+Sm8_JVhwc0+f2w&B#1BjGjypgBx z40}RZQ&CCMg0>kh6?9l9JC>)%p=imcI&5-M6}&6SJsnEEo>U^3^El(+tc!Cv&v5az zEijDfcC@TRg4rPu*NBS$Vx%j+)|R0#iky=j#RXh+@SclHxJ*I$f^Uz!*a<@!7+z8> zS*AdyC|Sv`mP<=Tim2F~UFQ3UX2)<9*Bo4T@je!ar2heq(k7C0=-p)K#Hp1{1XJ(J z{Z|0833vlH9o%y90X}3Pzx+E4$kjgI&^+3VjBM=)fr_TvS3AnD$&evWbibzhY%-uK zdNDRdk+6uIgF7yku*|UZMywK4kM8n7ZZbSdve(PzHwpfpi@ZfXYESHjm%Y*h7X_>^ z40S0Z|Gz$ASqE#RxSNoj$(p3Km!}L<>z%+*)K*las=mA(1lq(A&v3nOqEw{_BK}x- zMu(eRY%B2FRHL6N%H%9VDz1>@1r^BEPOB=zk|6U8lLhSwzam0q*S(J^(@<3TZuN zlgr9p?`ZPmL@_*XjWJ~UGD;~FN^LgVlJ`{TE)$Ddo5+Nsy&_FR*P`)Zcxlui9Xz&8 zq|Pw=0-_2wbd&VEO(^aw%dv|XenY2z1-!Cd7vm;Q{32g&dP_|9-HZ{b@cqOEXXqK6!kI1XS)pP7 zbG!wtKEvTHyt9y+{}m^;FgKMtoBjp-cU&39Gi0YyTey903wO70|0gmu0DJghG7D<+ zV>pTl9HaF#_4^rIq0s`m93R>PG=>Fyf=>z31W9~`M`YzN&fs%;8zhYr_=4V2^#5h| jgs-;Q_?p&&o)OZm($l~bT1}GvA~ljGM&Tns8&iJ+M&I@e literal 0 HcmV?d00001 diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/LoginDto.java b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/LoginDto.java index 2db92bf..e3ee746 100644 --- a/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/LoginDto.java +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/dto/system/LoginDto.java @@ -1,22 +1,26 @@ package com.atguigu.spzx.model.dto.system; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @Schema(description = "用户登录请求参数") public class LoginDto { - @Schema(description = "用户名") - private String userName ; + private String userName; @Schema(description = "密码") - private String password ; + private String password; @Schema(description = "提交验证码") - private String captcha ; + private String captcha; @Schema(description = "验证码key") - private String codeKey ; - + private String codeKey; } diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/ValidateCodeVo$ValidateCodeVoBuilder.class b/spzx-model/target/classes/com/atguigu/spzx/model/vo/system/ValidateCodeVo$ValidateCodeVoBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..fcdeed61a99854629e638b68c27c5be07309fb25 GIT binary patch literal 1655 zcmb_cZBG+H5Pr6_Tw4o0%bWO$TBI$=srW)H_yHnftY`wMF?`y#n{sfyZSJ;2{3ZSj zO)w;w_yhb=#@XHpt!)S-=5o6;vop`U?9Bf9ef$%^GM*(7!GM8i3NZ{an7e$RTMl>Y z*1O8Cs49lRCEK;t3xi&rQ%k(`e3UaqI|_&AziXvvC(Q>x^j4oNa4S>;Zdd$#67VN~td8+C`I%W&(UDf*~ycjyOmTI?)E2(ii?XVX@q7>C8M^iL(a z*>Dtd;UF%vxv7&;TV{EN)N9uj-m1fWU(h9v^))xJz%boYt$sx?@Py&!*{byT1Qo+= zdIKUfh!Ohe>CjgT%}bX14&$?H5Dk}I&Kih2<|3n zY2#uW9xw{C-)Z?uqF(cHl95Vit|=W4!!44=G@40Fxaxm>&y=6zU;{j*#geaFDNglJ6bd4RIDJ6^%3e7vmUXz*#86AxackvWs9E_u9LO c8QSB7mZN_j4~Waqd7L7Dhy)(tF`i=b4?FLhj{pDw literal 0 HcmV?d00001 -- 2.43.0 From 8cb99adc5e4c5663784fce60594f96b56fe9cde1 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 22 Mar 2024 22:00:32 +0800 Subject: [PATCH 10/15] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=AA=8C=E8=AF=81=E9=AA=8C=E8=AF=81=E7=A0=81=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spzx/model/dto/system/LoginDto.class | Bin 3366 -> 3829 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/LoginDto.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/LoginDto.class index b74a11748bd4a0dbc41a075b3df30d59e4afee09..028de6990b1c008ea31d810a4f8dc6f23b3b5ab9 100644 GIT binary patch literal 3829 zcmb_fTW=f375;|WW@ZQp<0^{Ps_*TRHS8Wp=8RO+_U-DhDk z(lMfCc{xknehUYXr*Xw@oqnxjHv}eU`u2Ht^P;Q-3xyXI_`N{(PquI8C|X_|9fSKGkZufgLzJguvX2Lw>z(*J{!$U3#?S+J4FI z0ZL6-b?nl5r7oNH0xM9Je#LXz%32_E_m_XV^Y+c#@BNHvy?yPiyT5-!VEoRz@BQo6 zAO8KpJD**9Bh*-3c}rdu$%Z$TN;&!C2BLA69KZ;6TLJyTAG5_Fvxr?ApycAH8||-8b*N{~?RDCjDSlDhjc5 zxl^ti_10$zr z?N+rRebU<9>a-WW^p0;cyl}ZKhrnOz^N_U9K2_{u(QY)>oj@*_xF~Qu$$%c101lqEdK zK75#+RYOWWYJB;=$=N8!U)$-{DPg~Jf#eNh5NBiDT@m{$8n4s z=6|rqfcZJ53>@ZvQ+$pCk(jxMh`1b}}sHq1-~9r8IN1S76NFz}zcJf3&Qrg}fH8n5w|h z(y_80F0r4KLE!=qz!OM$p7_*x*TZmf?9yDW>&Re4hc0 z;3!M-0ws-cJc1V~>74J!OO(=K@;`w21r?eBQwSy;LVQ8P-aMrglh6}Dg3-3CVpzHl z)xb9?K*b!i_x%AJ{DPZFU-NXQPNZR!YLje44<@- zP*UAQ3u(4j3)`sbd#X`IorQlMMwAPw7rjh8&|t5!!o9b@OgetZ9a8ww;A8s=Y%Zu| b32ag_Iac^_NEdML6lIeM$dE`bUPJzW`^^IS literal 3366 zcma)8Yi|@~6n@_A%+Bm~dZEz53L@3T-dPnz-BJV!l}cMGg(4S~>F%&Qba!T*nFVY7 z0v`+?R4|cvNlg4;#1IlLQAjWv{ep?V!xsDxBA$0HyVG_gO?GC^d(Ly7Iqx~=J+puQ zd-qoWLpYs83=I+l1tQ`Mt*6y9YNn(bh0KAO(^}49h;P>o-Pys=(A_hgfQ*EMq=H5$ z481wCoKc-ZRWDRCcIAWjGi5Wcl`?t9%-D0bqm?sbW((e}_jL5S{n}iTbZZr?LyDYp zsAIA&_A^s^QoSC&JtFqg@{VN;DDMW=I{Z8jfDprgdANDQUY5!*oMa^Pp;&G?zC#BidhZG(lI3Nr@psr9{2LG@Sp+`_# z`{p2^z+78TIcjcpT&?(d6ekakj_;+wN2ykpW>-rz5)z?!66yM@<#g>eBnFhSV|vM> zTuhl&E2oXW%-EOri3EH#>Ydc@?K8RNs}x_vq_*keE`7l0<9Y9 zxs|RLZM;MV8sWSvq@=GB-CyPNke-a5V(%TWnW$){{{DTkveSFe=PYeJv0-KC^&zL!h(Aw3%@C%5`~zlSJX>-!z@ z*AN@7_5B8UyubH0I@~1*PfYaFEh`NCfyR_@538;~8Au7Yu`xh&W<`Q@X5%T5W8(MF zb_Go-F%=Ji(piZ>>8zZRI7s$EQc4biy0QrZb!C&O1P3L3P$HEKK*BYOx?$N#sd&4o z)%_OsU@w)r9p7MtPEQPJe2Uje*MMGJz&?@$TF+vXBoX7#@CHe7lnB3{BncLFVvHmi zpV6QgCnW9%7v*CjLhxUbh?fP*DW_C(kPi zH8~@ROuQO=pW#F8O$4vMgNeXr!w5yg0>%-y%=8b8RCHw6M?@hJQKfZoyD;Pyb3^N3 zkxD7I_FaKAa2vfRxxOEe6-|5e9OhJszpez@4-wKGr*U zIe6;nO4HSK7h8a(Loxgz= Date: Sat, 23 Mar 2024 00:36:54 +0800 Subject: [PATCH 11/15] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20Redis?= =?UTF-8?q?=E4=B9=B1=E7=A0=81=E9=97=AE=E9=A2=98=EF=BC=8C=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E7=99=BB=E5=BD=95=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=8C=E7=94=A8=E6=88=B7=E9=80=80=E5=87=BA=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/inspectionProfiles/Project_Default.xml | 7 ++ .../atguigu/config/RedisConfiguration.java | 90 ++++++++++++++++++ .../com/atguigu/exception/EnumException.java | 1 + .../handler/GlobalExceptionHandler.java | 2 +- .../com/atguigu/exception/EnumException.class | Bin 1331 -> 1409 bytes .../handler/GlobalExceptionHandler.class | Bin 4886 -> 4902 bytes .../spzx/manger/MangerApplication.java | 2 + .../manger/controller/IndexController.java | 32 +++++-- .../spzx/manger/service/SysUserService.java | 16 ++++ .../service/impl/SysUserServiceImpl.java | 34 ++++++- .../manger/controller/IndexController.class | Bin 2690 -> 3398 bytes .../spzx/manger/service/SysUserService.class | Bin 289 -> 451 bytes .../service/impl/SysUserServiceImpl.class | Bin 4009 -> 4475 bytes .../spzx/model/entity/system/SysUser.java | 36 +++---- .../atguigu/spzx/model/vo/result/Result.java | 2 +- .../dto/system/LoginDto$LoginDtoBuilder.class | Bin 0 -> 1922 bytes .../atguigu/spzx/model/vo/result/Result.class | Bin 6571 -> 6564 bytes 17 files changed, 190 insertions(+), 32 deletions(-) create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/config/RedisConfiguration.java create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/dto/system/LoginDto$LoginDtoBuilder.class diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index df280b1..4cccdb3 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -1,6 +1,13 @@ diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/RedisConfiguration.java b/spzx-common/common-service/src/main/java/com/atguigu/config/RedisConfiguration.java new file mode 100644 index 0000000..155eee0 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/RedisConfiguration.java @@ -0,0 +1,90 @@ +package com.atguigu.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.CacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +@Configuration +@Slf4j +public class RedisConfiguration { + /** + * 使用StringRedisSerializer序列化为字符串 + */ + @Bean + public RedisTemplate redisTemplate(LettuceConnectionFactory factory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(factory); + // 设置key序列化为String + redisTemplate.setKeySerializer(new StringRedisSerializer()); + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + // 设置value序列化为JSON,使用GenericJackson2JsonRedisSerializer替换默认的序列化 + redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); + redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); + return redisTemplate; + } + + /** + * 解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题 + */ + @Bean + @SuppressWarnings("all") + public CacheManager cacheManager(RedisConnectionFactory factory) { + StringRedisSerializer redisSerializer = new StringRedisSerializer(); + // json序列化 + Jackson2JsonRedisSerializer serializer = jsonRedisSerializer(); + // 配置序列化 + RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig(); + RedisCacheConfiguration redisCacheConfiguration = config + .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)) + .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(serializer)); + + return RedisCacheManager.builder(factory).cacheDefaults(redisCacheConfiguration).build(); + } + + /** + * 指定的日期模式 + */ + public Jackson2JsonRedisSerializer jsonRedisSerializer() { + // LocalDatetime序列化,默认不兼容jdk8日期序列化 + JavaTimeModule javaTimeModule = new JavaTimeModule(); + javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + ObjectMapper mapper = new ObjectMapper(); + // 设置Object访问权限 + mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + // 记录序列化之后的数据类型,方便反序列化 + mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL); + // 关闭默认的日期格式化方式,默认UTC日期格式 yyyy-MM-dd’T’HH:mm:ss.SSS + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + mapper.registerModule(javaTimeModule); + + return new Jackson2JsonRedisSerializer<>(mapper, Object.class); + } +} \ No newline at end of file diff --git a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java b/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java index cb09563..ce52e32 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java @@ -12,4 +12,5 @@ public class EnumException { public static final String CAPTCHA_IS_EMPTY = "提交验证码不能为空"; public static final String KEY_IS_EMPTY = "验证码key不能为空"; public static final String VERIFICATION_CODE_DOES_NOT_MATCH = "验证码不匹配"; + public static final String VERIFICATION_CODE_IS_EMPTY = "验证码失效或不存在"; } diff --git a/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java b/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java index b912b32..d2dbe8c 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java @@ -29,7 +29,7 @@ public class GlobalExceptionHandler { @ResponseBody public Result exceptionHandler(RuntimeException exception) { log.error("运行时异常信息:{}", exception.getMessage()); - return Result.error(500, exception.getMessage()); + return Result.error(500, "出错了啦"); } // 捕获系统异常 diff --git a/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class b/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class index c69e99a98d5bd1f80e212cb77523770b0d869fab..7346b589f4edcadb221e6b0f1ffc0311fdf6c21f 100644 GIT binary patch delta 466 zcmdnY)yU0t>ff$?3=9mm3^p6N7@2IO!d!zq-8`KgLp=Tc;+_3nT;n~1<6V6NLLxaB zG#DAAU#{wTvA*&7g2tyyHa?r$@vLLolO4TJ*Uor4XT@etCQ(L4j>+=Og%OerY77Dl zj0}Q6vzZvw8CZdARt7d8sRxvjEZ{4J<4+ zENg%?69aYwS)c|o0achWm;-e&0`*!l*g=fZ1q(1RFbnZ+z-kI4beN&0Ffv$yRapZ7 D)tWZ@ delta 371 zcmZ{gOAY}+6h-f=>eA9a5yF^Bqy7IR%-MjM9hg{xE$Dp+F_0KofHjG@MaMvx+*hA- zPp4~}ICpRiznp)JvFefGz7Hg(|m_ZIr|7NZw6 FeggbD8PNa$ diff --git a/spzx-common/common-service/target/classes/com/atguigu/handler/GlobalExceptionHandler.class b/spzx-common/common-service/target/classes/com/atguigu/handler/GlobalExceptionHandler.class index f713d2a888a851f4ee1b2e434a336d3e67cf794c..471382fb9980ed0de2a812b0d9f94c31069360e1 100644 GIT binary patch delta 1304 zcmZ{jNl+6(6o&s!W|%OHQ3g%K!WcvY3KW8ZN)#1WkVRZ@0m=pUeP6**MBEo_L8G`Y z2dga9RHb6d(u)Vnvp26s^yI~(W%+stfzolRy61KGTfTnpb*JyCPyP5i@)p2!JbJ0N z+lFY-Gm-Dt179L-(T=AM6!3s8EpZZ(6%;b0@S4OFRfQLmHKbw+|7e0X#$aC3hepwzjaxH`Qwd+~Wy(e_5Z{6K08nIr%1`QjrDfmgACrfP%8N6N1 z2+m3>vpG9e+`vr*0paNuzd7hV>*5Vg54*>koa3bj3?6PcJ^X{y$2RjHPFLm@N?!sP z%{sQyteLWmZP-pLh8@@m37dJ&;A}(as<6@Qh7-e0eV4f&5z_}oU>A0i-5%1C87+Xl zG;G+1{q)yKIzYz<>%baG@eu8aAcsW|k{83?>+ls6eN1);zSkILM>6{vhA~dh3uDv^ z(_KHyC}Q#cm*t2R%TWuKBQcg#9E-73#aLW|B|kf4V4?{_R1?D}`kNz@II;$CxZ*i+ zQ5u@8IGQaun&KSCV;t2n4#O=#rc!vn$-#tVk&rwBnJ@sv9S3m}h+zeC!UDvIgPepc zietb}wxayXE0lyWr#}O|9W;4BP$eEzK?_ciVJjI*^grF#8!fca+Z$&r!k>!w#@SdN z%7c^$nT-4*5A*5vWqtK1tIW|WLZ}KLEk|D(Lakg-l^ek-pjZ-mqFnl#Skdg*!aaJ1 zA=-TsIUI{2IEVA(JQogJAW0HI;ur8!)-Dow3YGT~o!W4j&K+RCP^i!g{-@QiSX}3# zc^wC?ny*c?dTl!S6knq52xDCk%1c@>^uNet0%@l`8?KoiMV2|OuhXFL=%8^McW9-O LbQkyW5UGCvoTkq< delta 1277 zcmZvb$x{6{P-P*cii#Yxtn%c|tA7CM!J9|R^7RlxN@uFN=e_Q?eEs_M>$u@K<@2A}_W(BH z<&-k0<8O3PrgVhKSj!O3V@=_T0w*%fh(s3usmo{Uc$(gB$`K~H4ADGBi4HN5d!CF< zW^Be5?$&oHTZKab!=VKJQSag|LozGkHHHY&HsQFP!NorWyOtZVlOeRAv#q(QuC}Az zS>Mvp-mRb%Wiram*oEEviy<#`F9UOm<$Y#UVn26CSwRQQs6sWbk_y>jJ}xCjA7L=h zjZSzEJF$&VOYjv5#kA-2>HaG@>Yw3 zJ?8_K)rK(!2OqRJ_*Y9DYv3%@7T-t}3Ie0qiW4-ORart4PLjrO3e7N}f#-!LxrMC) z9nBH2V3}%fQ}rmHJrIS{Xd%B=vXU4nKpPDm&Y+$CR+7%rc1JZ>9T|4gnn-d^Bq6y1 zdNrVZ8nSg|(hTC>VW}Qr?3WkrM4@{T^HvSGNE1Ue&Hx&_pTfd)VZJ-AYozbyi6c}-vB!fue zKR_;3t)IZd>3Z+bt`2u;-w5^_nKC`z|C;@t#&P=9;}|iZzBkeAm9Z34d?u^Wi=!UM pQ=~8~zR55Gxle04JWwNwDi4zWkOrj(r!j(Oq$wng;swSL`4`*TzWo3I diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/MangerApplication.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/MangerApplication.java index 2b3edfe..74257de 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/MangerApplication.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/MangerApplication.java @@ -2,10 +2,12 @@ package com.atguigu.spzx.manger; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.ComponentScan; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication +@EnableCaching @EnableScheduling @ComponentScan("com.atguigu") public class MangerApplication { diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java index d4c6c90..8d68933 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java @@ -3,8 +3,8 @@ package com.atguigu.spzx.manger.controller; import com.atguigu.spzx.manger.service.SysUserService; import com.atguigu.spzx.manger.service.ValidateCodeService; import com.atguigu.spzx.model.dto.system.LoginDto; +import com.atguigu.spzx.model.entity.system.SysUser; import com.atguigu.spzx.model.vo.result.Result; -import com.atguigu.spzx.model.vo.result.ResultCodeEnum; import com.atguigu.spzx.model.vo.system.LoginVo; import com.atguigu.spzx.model.vo.system.ValidateCodeVo; import io.swagger.v3.oas.annotations.Operation; @@ -21,17 +21,31 @@ public class IndexController { @Autowired private ValidateCodeService validateCodeService; - @Operation(summary = "登录请求", description = "登录请求实现") - @PostMapping("login") - public Result login(@RequestBody LoginDto loginDto) { - LoginVo vo = sysUserService.login(loginDto); - return Result.success(vo, ResultCodeEnum.SUCCESS); - } - @Operation(summary = "生成验证码", description = "生成验证码信息") @GetMapping("generateValidateCode") public Result generateValidateCode() { ValidateCodeVo vo = validateCodeService.generateValidateCode(); - return Result.success(vo, ResultCodeEnum.SUCCESS); + return Result.success(vo); + } + + @Operation(summary = "登录请求", description = "登录请求实现") + @PostMapping("login") + public Result login(@RequestBody LoginDto loginDto) { + LoginVo vo = sysUserService.login(loginDto); + return Result.success(vo); + } + + @Operation(summary = "获取登录用户信息", description = "获取当前登录用户信息") + @GetMapping("getUserInfo") + public Result getUserInfo(@RequestHeader(name = "token") String token) { + SysUser sysUser = sysUserService.getUserInfo(token); + return Result.success(sysUser); + } + + @Operation(summary = "用户退出", description = "用户退出接口") + @GetMapping(value = "/logout") + public Result logout(@RequestHeader(value = "token") String token) { + sysUserService.logout(token); + return Result.success(); } } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java index 4f961ba..7cc553a 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java @@ -1,6 +1,7 @@ package com.atguigu.spzx.manger.service; import com.atguigu.spzx.model.dto.system.LoginDto; +import com.atguigu.spzx.model.entity.system.SysUser; import com.atguigu.spzx.model.vo.system.LoginVo; public interface SysUserService { @@ -11,4 +12,19 @@ public interface SysUserService { * @return 登录后结果 */ LoginVo login(LoginDto loginDto); + + /** + * * 获取当前登录用户信息 + * + * @param token token值 + * @return 用户信息 + */ + SysUser getUserInfo(String token); + + /** + * * 用户退出接口 + * + * @param token token值 + */ + void logout(String token); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java index ec6fcda..ea9ac96 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java @@ -24,7 +24,7 @@ public class SysUserServiceImpl implements SysUserService { @Autowired private SysUserMapper sysUserMapper; @Autowired - private RedisTemplate redisTemplate; + private RedisTemplate redisTemplate; /** * * 登录请求实现 @@ -38,12 +38,14 @@ public class SysUserServiceImpl implements SysUserService { String userName = loginDto.getUserName(); String captcha = loginDto.getCaptcha(); String key = loginDto.getCodeKey(); + // 得到Redis中验证码 + String code = (String) redisTemplate.opsForValue().get(key); stringEmptyUtil.isEmpty(userName, EnumException.USERNAME_IS_EMPTY); stringEmptyUtil.isEmpty(password, EnumException.PASSWORD_IS_EMPTY); stringEmptyUtil.isEmpty(captcha, EnumException.CAPTCHA_IS_EMPTY); stringEmptyUtil.isEmpty(key, EnumException.KEY_IS_EMPTY); - // 得到Redis中验证码 - String code = (String) redisTemplate.opsForValue().get(key); + stringEmptyUtil.isEmpty(code, EnumException.VERIFICATION_CODE_IS_EMPTY); + // 验证码不匹配 assert code != null; if ((!Objects.equals(code.toLowerCase(), captcha.toLowerCase()))) { @@ -63,8 +65,32 @@ public class SysUserServiceImpl implements SysUserService { } // 登录成功 String token = UUID.randomUUID().toString().replaceAll("-", ""); - redisTemplate.opsForValue().set(userName, token, 7, TimeUnit.DAYS); + redisTemplate.opsForValue().set(token, userName, 7, TimeUnit.DAYS); // 返回loginVo对象 return LoginVo.builder().token(token).build(); } + + /** + * * 获取当前登录用户信息 + * + * @param token token值 + * @return 用户信息 + */ + @Override + public SysUser getUserInfo(String token) { + String username = (String) redisTemplate.opsForValue().get(token); + SysUser sysUser = sysUserMapper.selectByUsername(username); + sysUser.setPassword("******"); + return sysUser; + } + + /** + * * 用户退出接口 + * + * @param token token值 + */ + @Override + public void logout(String token) { + redisTemplate.delete(token); + } } diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class index 75663be0a9152709fbbe872fc80130a2ef059d92..4452344e4078b041b608747ab1f3742ad338dd8e 100644 GIT binary patch literal 3398 zcmcInT~ixX7=BM6gpUXaw6?a^mRcJ=+J(~EDzp`-P&5=IG_6+aEXg6=Hrd79lK@^7 zy|B(Gb;jz9H-3!cjN^s0GtSV~sowiL4A4K}_?*oqY{CYpqZi4^*?m8r^SmGD&7Xfi z{GEtS(|fh#qly4k2FXuVj2f@28C6NDdO{hSy3S*QQB|L&YvK%}icnj$hN`J1K(#@t zqadSWF(aj@B9Yb-X~mlPU`|Ovm77Y;(1mFvllVEJ$NAh~Vb7>Jqb9YuD)^ug=MipZ zv>0b}B3#avl@n2-8`XO2sGb@E)EK0vsfkg~zp%lmCBb!W0+8DSjD^}fFadK?$ry?? zZwa0%0u?oSYpI2H1ZZcFo}pcg4sXPh*EhM9P6}nhUKj@WQUPkr6coFOsIPUT|PcB}0jw3}Hpm!fVAE5m~IzX+Aj&3~8X6lUmNh6`@ zj4p>fJljmfMS;q&lszYmO;794Zp(si3Gjs=9ikT*)g`!)#~sn94MqcQ8Y9Bg^h9~X zTo;;{&&Sju!8RTWQX93S3UCr5jdIxGWj8A0-YJ8Agi*()c~cxNM!P4{aGv5(&C;fl zykFN1p$g5=kqW26hM7QJN$}IAn&PvDc|)1vs%|OMYD^gByrLEql>W3ZW;K(?dl^;A z;$qYg)^vU$oton2qzdzln!-j*O-5BylY8f3rMRZS-*Jy9ZB@_k<;#HYZV%mjt~)_< zmltBks3xK%bXBBH;JUhf*7}~<)fqTz3u{QVSv4X1Q>I5TRLe!4rHswU9suGYi)u`z zRC68#uHN}}<<{qqfBtlBX<_xd1*BP=TQO6ck)lY4lJ|f8@%_relBCirbhCU)nbP#Q z%ds-d#i%+nBl8mlgWi}18<+mGf+@|nYP%#+W{f(^@#s~QjM~eIuXn?IS>hrY<>HzV zA6I4C3T`61KKg&ow2f@Y!;)zbT>bjD?4vK&mX=rUeTZ^!Z?nIAv$}X!-bLFD-ne18 zqSsnn%Z0-i74`OwPw@BC+!6yud>+7y?uD%y8bVSUc)u`iaAa(g>w0m_$b`=|e)RZq zQTFbUj8a|=v7C`oTxEmj?M()7*V^K8_V!n~xUJs#Y30^(zUcPlUS%JBk^ST|FM*TW z4y?odd9KE}39pqp@>ph%?eOu6Fvwj|VqrA(@_IXKSqe!Oo7uNE_bELxwyVChLz?HpY1P|b=OPicDou0%8A zbC?dQF-Hnko5&%Um4T{vh&=40`_xey#x8`h+ZD$80*&>sCqX*oNoX<)U6H&fAw^w~E)_#M gD^2s_jh;im+l3Ru6R^zMoR~07|FdU%|DNzkl z6%76zYZjV|rXoa&FwGcMF}Ma+H!TCy8v%eDN2xbLNq|8TgT}jYjAn*8O$S)0wg*=s zhbrrE378mogZ8)RTA_6TMwWvr;Dr-DGq1Ph*~}w1j^hO7I$^^}oFesU(u<6ife1AL zXUtpqXmpm^kdAYR>KLX6!*Jmim`+d^D8PA&4xOUq|uaMJL}N-Rs%&q>Tn*AFf! z%FIi*)|{9iVV{~;l37xzUtC#SlA5a@Tv-g#W6j9GT9Tign#ah%mXn{JUs}S*Ad1a| yu!&doT$ova${E-g7#Y}s*0VA)a4;|cg*X|w5JKEwAsz-^6d@po52%HSfgb?A^D5;4 delta 53 zcmX@iypW0O)W2Q(7#J9A8Mr5Mot+%as3XV7!pOkNz{bGHzz&pPWn|z0Qj83oK$3}p F3jj_P2hsol diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.class index 9ce603ec7f8d2021d367d11c1c1871aa1c40061b..bc70e3d8ba1dbc62b4433826f8bb3f35d2540840 100644 GIT binary patch delta 1826 zcmZWpS#(oX6x}y@Q(j+dNr4b(p@o8Jnove7VJcIhND(MdTd@!q3qzn!X1!YwM zMK2(&$RH?#LV@DzfCVQ6QPdBYU#{g3ZQ;WYmp?8A^}Ls~#bs93ednHg?iuzz=bj$+ z*Kqab-|bfbOvMiu)GWrUEyXEW7%F3!hHT{Uc1vyA2;|BbsbLfzW*E;qEV+EGwPDef;KpiufYQ^AIW^IfUjb%QDYefbniRWRo~LNchBwCJ$H6= z+-_~}KHaWjJSNDPsNoS5@^h@xIf=pE*|f9!Xx)Q$3MTU$OZMEU41?~T*?p&}jttfX zw*J>V6O)6NqYy7t$1)gK_6&a($Q51leno1tMQX7L-=%;GuZt1tT*(P$tNs}6_e zL?YpcirKKLaABT?5@-x5vG9WM=0IeYKN?W+7#7GV)vyqcbGJ~!7W0^p$IAF&!J#a| zG7Tb@^A2IKl7%NURG^aoA{0t1G(3eWo+-{sTLr(2r!_o-)eIg!M)dFou`+uN!$S$2 zdXrZ1EUIO!)vylhd4^PK3&AEMY+S2V9DJMPP+Zt(L-F*#rnwnH> z!e$v;G;GE5{3mImdlO#N@RCuL5(_6-QxIohUIldwFzVi+;bpwSC(31Mui`ZsyEN>^ z9)>J_Mb6^Qa=tPGZ)n(yH+h%5B#mRAjQtu8;B5vMCFbHGWqw)%8fCnr;Skn5Gs|x?q7EHC3RR=@Sr)CktEUgJbf(&ng7!b z#t=HWV4h!m&^~>T(Rid6>5gc6X{KEP?Fe#+?iR4bwM(=$f&c^XG2(!huz-#hQZlrn zjbhMki%Nzn>F($2kV|PvT}Vs1PoOo!C%P|TppHzZ*oNU2dXdZMbqch!Vtyl1FJn=KeMt+J zUNxdRMIGhkBt7YE!%7Q$vQxgEGzu6-o>l~Xic@jQIyUHduE#^vIBZ3Yju-5;_H8=G zZ1>p=k47CfZ-4B(i263XE)fcEIc+))>NsrBVTFNP6&!p-WiO1w*q1XPNjuYNQGaKmH%{zsA3#65L&wQR$U@0U2-ap4^@T_bRDTm;5f-h85m(=kBMZLm9n)L1|IWyf L95#UCd)WR36)dn9 delta 1398 zcmZXTS!`5Q7{`BSwsU8C80rKlQz!zmly(Y~#eqWE_f4P*Qbnv~pNKsW{MR}Q%%jNQ=V|+^FVo3qkzp~NfoAj$F`{Zv-1TM?6mRt?Y_A&Pa_@0`E#xNNjg(W;nAtFVZVX z@0@zN#UcYbP}CR6z7PG8oOT#XGBoOM;zQA4K-%v%zf-@w8a$sddQlRUFn(2~3+mU<}AQGK<#!|P?&E7nM9ffIG2I?1Xe z<@Zy(;T|?pnPgq$-N^e%))xfbjM7nFG}whr=h)oDwg8Rnj0ThJOLF*(+|Y~5N-^DJ z?Jrymkb4g#ooulTqBl9@RFlg{VnXU*iWn+d&1Vh6STEMC#M#Fv4l$ZzjFDu8Qehld zWB}LX_qxfH6xGYy>Fl6dh~+HjQseoP^VAFNA=>y(kXMTTPEwFhTKI(qs_Uh%B5EaZ zz075wXrPH^v=p1p1+h6&s*k9zo*>`LJ#z8=BVB4uhQ`s1efWXsJ^E=@-=nA4xhMgC zCG8-2F14#g@Q9Q);IT-?{3J(e(7xmNyyqF`dU{f { * @return Result */ public static Result success() { - return Result.success(null); + return Result.success(null, ResultCodeEnum.SUCCESS); } /** diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/LoginDto$LoginDtoBuilder.class b/spzx-model/target/classes/com/atguigu/spzx/model/dto/system/LoginDto$LoginDtoBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..e8455efd36dbe9d24edf3dbc03c485ab9dd93dc4 GIT binary patch literal 1922 zcmb_dZBG+H5Pr54uGC^{fdalDDr#Gh^ZkW_F<=M=L=p(b=$ED4v3ZswV}XJ_Vq{5<>)U>@^vM9^a(nm{l57*acYkDE4k z%I2%>9Z^&aeRGy$sizD*+1yq?V(2#zPv8s^46{X9HMuI+t#aM;Y9BwCRap|YSyIyU z8lDnWb5)it=ed%TO<|#K*(KpJ#Oj`K*LYPhq*ssPZYbAs$^{+iYywFgCRXE~_g=as ztvr`NS}Tnruc=~%Yu!)+!-0;%uZV_$5r%yC$;FYun5N)7!%DV2nZMKIw$eoM#RM*4 zoMEKOcg3P~id?<6RD~o@aYuO!@BUxJ_Cy(?i$n@Ta@BIgTD`h0+)ci1`>e|%x3{=! z>2s)zs)|K9&8>FN-pQ*iFsyg@q};zjrd|qFk)?I+QpqUcQj)#fx|SGbvVVe2>BW=` z%8X%%eA|kTA-*B&Zc!{*ny7(h?apXRa$ggkT9zJlM`}SzW7=SKwr(_F{c$T~MTA@APW18O_Hybt4 z!Tjwp`=HGW$4Lkw7P)P2SV|OPc)+mK;-D#njht<^@jRQJXf~>r!~XQepe^TFjv?{F zafG{QQ%eiF!{iA#15X&Pw=vd<2m^GLc=QOX?T$o(bL7>X`uK! z4H4Q6S~Ly8aG4~NcBVD?1F$b7L@+^5{Thf9EXc_>z*StM6C?OZveM24+I3JPKlPO! zpGjc$4qy|Om&T^d23;&eazv`n1fwo z>N{v*4*QrlaFbM;&xMfp(QnAS$?p@T`xu~=qBVGc(ar>GKwz|WKUw5Lyk}Gn`d#KE w)*&tcr=ev+v?%iAAHfu+{XK(Qw8sc_hSq&Nq*I#S$LJUH2>p1BSAg)>ANx>Vcxbzd!%ElcYF}tqe@`FNrr$niMjFd9ODtBrEX|p7_SyT}dw+Y+ z(fs>=AN~!%INnbnqHwTKS;{%yLcO?9&()Ui+{!Ig=G{_mwUVp4wR*|RUC@_qD8y`7 zh%3a$ishnrR3Vxkyd(=r8(rvDNYq^Kq~kdX{prc;&Z?6uIpu}ixw-3Z!5cNQwvDaW zreMw0i=}ym@ph7v9ikfTMh|)u=(Di{I~8&r?wg>Gr^@vuLSAq^xf95PAg~L?itx#VbFo7_}7CyHuhqlLN^spxwV?JK;1jn>7Mbb#qxqy{hW6YX0V0{XI5BZ*W=7$~PD2&Atj&Jb#zCaTqk5r0kP79nM}ESd zSoL71J2Z%lFd^NIAq*#Q$VLt?DD*aIPQBo7>J@R$V#(8{+aLHy<+3Ts?fRe|IjaghIltrhuXv&2BA>YSlbJ@n1@w&q9 zCFh1aQ7IQ3?{d+jP`TzgWsmeb8_rq~uZ@8T&G?qXbZFF79x;Wknc_m(@#5@||%Dq1sH~mkcb5@g}>owh84zwNWlwD(l zdX!+d&UjAY#+0+{!|9oFy~WD>d8g_uxt?2P(DGxmBO4=fG))a1V-C#4<|^~Ig-4Cf zcxQ9%o%$m2mNxt3aLSJ{-em3OM0sNWv+U3vK0KJ5)0@ESSVs`{tLaXyK6xyO^X4Wv zKRKg;W9PyJ?bm9Et54i>6|QXJ3)%h@iUYisTdh{A>=E8#k)>s&2X)Jc>ted3pemfK zc#AG&x->fM)G1=hbL^W= z4m8YI14e7otC%n=jD)kXdDVpC7_?Wqp6zV2bR9~k+ox%xYQ}D+Qm+==(?#jQTg*B0 zkW@DxO(!Z9ujW;qWz+U*+vE6gH-3V<3H(%^CO=acXf}dkd9`xG%^7#i1Lm|-@G4cd zwD-gCeL z1AN@)`LK>6A}1M+B63vGSDr+;dPR?~@_eh$@Ra-tXTDCk2(LT-3ibL2h)!l6A(_pr zA(8zfr(^gkzx#LvQb=MCH}6F+p2eG-*=4rMQHOU)Y{4}+G&Q$w?P_DKz_odOr#_N{ zzk6U!s%fm z>mME>w&7N6hpG1!bTc{InI4H=#%ye0>(z-8Fs;yQl~h0Uy#HR^yjlT;|) z#xvQ6*ns&>t)H!hg%EC4&}{4mF*k4F`BZGnF42&yuoRsZnRb1whqUug- zXF79@`1n%FR~sVN104PneJ~F-(_s^#D93%TrCZ5UKHN5BP5k$J?Ge7_Q1W`JosrQ_ zjkNZr79-=@2;UwOu>|N6jY%71-+h2rJ2hg?CsO1=Pd1*2ms0MbV?vMLQ#?-cEr{_= z&GOpC?RT@8KfsFJ&;A4Icd(-Ovww%08sceYLf>+5W|~juGb6F#e_~52_6WWAU=OEa zYj`b?m>RJtGBpxUSt1jEguZ*&nzB;ykkIr( zYJfKKco%hjI_t+Rtm*^F0E)QDxhM|^1=uG@2O0%ah9Q% z99t4)adI=V1|=#ds#U@ZlQk$-pRB8zM|=TAA@WEaqlGwCU+ftji;e5F?dus`WYUs7 z*?UL~ui?TqnV%Yo$wDgTuOuavW@&oF(o4*u-jqyPdTC$##2hsS{lr9Z0pGwk3CH3q zv}+tiNbu1TwMpQ@&U{B-WH{oux2=f2Yv}r)g1|YM%sBg2vDEhb&gK_At|HOh4`OLm_q9 zoG~5N!n@Qd6@QC?k@N4)%m;Wws{U|h=mADE!)@w6sXLiD_U`nxb7$i?veQ3~$ei?q z@Ud6q#kN_y$~FJkD}7Gd&~biDbN#N)niSpoo=t$Q9jU9Mo*nZQe-GcM{Rn=5AM%={ VfgkbnbNrHb^1Ag`_zm7e>i-~56kq@V literal 6571 zcmcIoTXz%J75>lz4y2G zIhud|=i|Qs7{iBgbSONNFRu(c-cqfwR2#0Y-nucoQeJe6!`I5g6}MU|dc$Y*R~Hnb zHY~&xVxxsp!5deIqz2B(Lc&HTx)kD7*E{BTjzV85cg4Bp3>Tf!((tK;D{kH!F|xLe zt=OhuEz}CdMTN0elDRffjdY8+&X#iM&> zlxF1W((8if3!C75*2Y2f3zAwsPvr_1Q|-no@OfmQ-5n#H^yhOnoCK3ZQH*gSuW7p@ zWFTOoh<(|{VH}}PD**|6Ly|re5uC7b49BT&QCDtQ%1@8P@MRmXV2Y)lcS^_Ks5!+= zYW#H(?&(4f({Y@%aY{CIH^O36vWK{$q$<*TwbTvXV-;#_qn%B8&HoiBJ4DpftFa4U1pLXpe8xpLkqo^vV%dG;q` zrqL?2&uS8My{4P1fwn{KvTKx3#|d`ptmovfPCKhUobGAYTP`ooI2C8b_1p@BHZ?kz z-58Pa6g9MsIWQMpC@x;x&`uU^7DLuq^gSDFz<&pi*@F-~Wlwxuw zH-Xo-jv(yUH&N6smj6A%r@|HI7gLB#kK7a$E^Oip>G&9mgGgC!rBbf2h`r?kxo@Qg zbWO)J+s`SeGAGO4vP+pxk?9vI^9a{-{)4R->aBOHS*t&reWv01`^>{&yZIPROYK@S zXQrmvyA_+P<(p3Q*Ueb{Mr*<=n=mV6!`axJ)}c5C{g19^+S@E`fzqkgY1*iov70T| zDtULZAWd?Mxp5wn^5fZYv|RS8Ud358eW|)VhTC2EF@6%qPo>@eOrgI~sfE(D@>O@( zxNA;;Nhj}>E9^NRgyH*wM(Ha~X|d>5`*Y>;)!J$c7KK2s+c?L@+d}+8NIr;PXv$YH z;S`Ir1!9jN2(;)0i6E?`KhllEpDKpkPmxN^WJM=v1q2HI82^JiWp7RvyLi zfx=S{7v-63+{Xc)$2p#+5p>8^gQE_)OXzQ26}b8}J-)=7uD;Dva-K79QLcmEJN^vy z+DC}w(hrcxq}LG7{GQWMIQ+kt-#`)x?BV7o(Sv*o5HDh~`dS5~pFNWKZ)!5QzV;x(MPMi{DI&~e~VQZ9;5Xzo9 zN?E&17=m(ZM57$#@Gw6n*DFMN5G5j<=iENJEq^R^9|r`T(vgel=?Q;JS#R0qJ9ms* zWm6*kM?8HW0}Y?duAKJ6HZnd7B=?OOiD%0k^CyvS;d=1W?kVQ$RFOj(~74fL`WpeF}}p$&t=frEI%_uve_#h{(; z!9VWf5Y2v}IaGy^S$%n@yaY;W)D(;fnyfXMJxoE9(26!2Q13j=3cKU!%wP+Pp0;QT zAYOMgUME>x+cpJYY>QN2n}iaVHxjDal2BWk3H4@(P*t=d)Qc^W^G+z+2_JJKB{CD> z+t4(stqG+$8z$84kco#9s#@h&TD`1{vlS+_wW2OIuY;ytGp}bk}*t?;-qM@$LT;`0D7db7|jW?^?)}}iCz-4XE zQ*{{K(PnksZK*R=Tq8cdoAT9$$aN3dKhTgl(M*SphoT(wy_RkzM|`+#$eQ@?_u5gu z1XA*rs+E!Pc8xUmrY0kYwGqBVBw`8BIU4i(?mZlB*NC~CG;R!m5%E&WJ#;Zc3U~AG!#zI1;vvCTY&L)y^5lZ+%@nj+piryt4 zb9V~o@uC4*&*N=e*H^PX+~8lijr5~{o1BaA4wJ_%j-q%OlX#OO3)5`bU*{->A}@Sz zaTG^|jQ<8liO?P4w$BEm_nXu!x2_EAc;XXmr{>HwZ6G)}UB@vfj`<;_D#_&9j6L(?X1@&vuWDM#ps8 z_I8gfGiizL%pJss)^K)S=4Y}|Sx83xm4u|yES=6;dWl)on-WP&FYRrem~ms!PfP@7 z@GZPeI2LA@2D#&P(e-cBj|k8G=kXnmq8Mixzr&FgYD8!K&`ZFtBlampq71lF3^Kny zrGmzDhfMUr3Iqa~==v#NEEW=LNH)(>n83eV?}8_3QJQM61X6;=&*_ix8qnOsOs_Hh zwAT+s1zjDzv*N$ zl6E89+Nlrz@SRuW#kN_yMC<;YSNfc^p=11*=K8MAniSnU#gFjYoG1j?+>tul>e*3W i@q73_6?WhU_#wX&RQn@-evV)ANnVEj3h(1LNd6Zg2pK^D -- 2.43.0 From 56f7d4a8a59c1a69b6f83e8776ce199075c97493 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sat, 23 Mar 2024 14:35:02 +0800 Subject: [PATCH 12/15] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20knife4j?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=AE=BF=E9=97=AE=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E5=B0=86=E6=8E=92=E5=87=BA=E9=80=89=E9=A1=B9=E6=94=BE=E5=85=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spzx-common/common-service/pom.xml | 8 +- .../atguigu/config/ResourceConfiguration.java | 15 ++++ .../atguigu/config/WebMvcConfiguration.java | 61 +++++++++++-- .../interceptor/LoginAuthInterceptor.java | 83 ++++++++++++++++++ .../atguigu/config/RedisConfiguration.class | Bin 0 -> 7362 bytes .../config/ResourceConfiguration.class | Bin 0 -> 1589 bytes spzx-common/common-util/pom.xml | 10 +-- spzx-manager/pom.xml | 12 +-- .../manger/controller/IndexController.java | 5 +- .../spzx/manger/service/SysUserService.java | 9 -- .../service/impl/SysUserServiceImpl.java | 37 +++----- .../service/impl/ValidateCodeServiceImpl.java | 2 +- .../src/main/resources/application-dev.yml | 5 ++ .../target/classes/application-dev.yml | 5 ++ .../spzx/manger/MangerApplication.class | Bin 911 -> 970 bytes .../manger/controller/IndexController.class | Bin 3398 -> 3366 bytes .../spzx/manger/service/SysUserService.class | Bin 451 -> 349 bytes .../service/impl/SysUserServiceImpl.class | Bin 4475 -> 4371 bytes .../impl/ValidateCodeServiceImpl.class | Bin 2578 -> 2589 bytes spzx-model/pom.xml | 2 +- .../spzx/model/entity/base/BaseEntity.java | 6 +- .../spzx/model/vo/result/ResultCodeEnum.java | 2 +- .../spzx/model/entity/base/BaseEntity.class | Bin 3650 -> 3518 bytes .../system/SysUser$SysUserBuilder.class | Bin 0 -> 2529 bytes .../spzx/model/entity/system/SysUser.class | Bin 4902 -> 5505 bytes .../spzx/model/vo/result/ResultCodeEnum.class | Bin 2360 -> 2366 bytes 26 files changed, 201 insertions(+), 61 deletions(-) create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/config/ResourceConfiguration.java create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/interceptor/LoginAuthInterceptor.java create mode 100644 spzx-common/common-service/target/classes/com/atguigu/config/RedisConfiguration.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/config/ResourceConfiguration.class create mode 100644 spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysUser$SysUserBuilder.class diff --git a/spzx-common/common-service/pom.xml b/spzx-common/common-service/pom.xml index 2611261..9d8c274 100644 --- a/spzx-common/common-service/pom.xml +++ b/spzx-common/common-service/pom.xml @@ -11,7 +11,7 @@ jar common-service - http://maven.apache.org + https://maven.apache.org UTF-8 @@ -34,5 +34,11 @@ org.springframework.boot spring-boot-starter-data-redis + + com.atguigu + common-util + 1.0-SNAPSHOT + compile + diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/ResourceConfiguration.java b/spzx-common/common-service/src/main/java/com/atguigu/config/ResourceConfiguration.java new file mode 100644 index 0000000..d2999b0 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/ResourceConfiguration.java @@ -0,0 +1,15 @@ +package com.atguigu.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; + +@Configuration +@Slf4j +public class ResourceConfiguration extends WebMvcConfiguration { + protected void addResourceHandlers(ResourceHandlerRegistry registry) { + log.info("ResourceConfiguration===>设置静态资源映射......"); + registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + } +} diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java b/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java index 1381589..27d0e12 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java @@ -1,22 +1,71 @@ package com.atguigu.config; +import com.atguigu.constant.LocalDateTimeConstant; +import com.atguigu.interceptor.LoginAuthInterceptor; +import com.atguigu.json.JacksonObjectMapper; +import com.atguigu.properties.InterceptorsProperties; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; + +import java.text.SimpleDateFormat; +import java.util.List; @Component -public class WebMvcConfiguration implements WebMvcConfigurer { +@Slf4j +public class WebMvcConfiguration extends WebMvcConfigurationSupport { + @Autowired + private LoginAuthInterceptor loginAuthInterceptor; + @Autowired + private InterceptorsProperties interceptorsProperties; + /** * * 解决跨域 * * @param registry 跨域注册表 */ - @Override - public void addCorsMappings(CorsRegistry registry) { + protected void addCorsMappings(CorsRegistry registry) { + log.info("开始跨域注册表..."); registry.addMapping("/**")// 添加路径规则 .allowCredentials(true)// 是否允许在跨域的情况下传递Cookie .allowedOriginPatterns("*")// 允许请求来源的域规则 - .allowedMethods("*") - .allowedHeaders("*");// 允许所有的请求头 + .allowedMethods("*").allowedHeaders("*");// 允许所有的请求头 + } + + /** + * 注册自定义拦截器 + * + * @param registry InterceptorRegistry + */ + protected void addInterceptors(InterceptorRegistry registry) { + log.info("开始注册自定义拦截器..."); + // 需要拦截的 + String[] addPathPatters = {"/admin/**"}; + registry.addInterceptor(loginAuthInterceptor).addPathPatterns(addPathPatters) + .excludePathPatterns(interceptorsProperties.getNoAuthUrls()); + System.out.println(interceptorsProperties.getNoAuthUrls()); + } + + /** + * 扩展Spring MVC框架的消息转化器 + * + * @param converters 转换器 + */ + public void extendMessageConverters(List> converters) { + log.info("扩展消息转换器..."); + // 创建一个消息转换器对象 + MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); + // 需要为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为json数据 + converter.setObjectMapper(new JacksonObjectMapper()); + // 添加条件判断,只应用于特定的请求路径 + converter.getObjectMapper().setDateFormat(new SimpleDateFormat(LocalDateTimeConstant.DEFAULT_DATE_TIME_SECOND_FORMAT)); + + // 将自己的消息转化器加入容器中 + converters.add(converter); } } \ No newline at end of file diff --git a/spzx-common/common-service/src/main/java/com/atguigu/interceptor/LoginAuthInterceptor.java b/spzx-common/common-service/src/main/java/com/atguigu/interceptor/LoginAuthInterceptor.java new file mode 100644 index 0000000..1cb2fe2 --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/interceptor/LoginAuthInterceptor.java @@ -0,0 +1,83 @@ +package com.atguigu.interceptor; + +import com.alibaba.fastjson.JSON; +import com.atguigu.context.BaseContext; +import com.atguigu.spzx.model.entity.system.SysUser; +import com.atguigu.spzx.model.vo.result.Result; +import com.atguigu.spzx.model.vo.result.ResultCodeEnum; +import com.atguigu.utils.InterceptorUtil; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.lang.NonNull; +import org.springframework.lang.Nullable; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.concurrent.TimeUnit; + +@Configuration +@Slf4j +public class LoginAuthInterceptor implements HandlerInterceptor { + @Autowired + RedisTemplate redisTemplate; + + @Override + public boolean preHandle(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler) throws Exception { + String method = request.getMethod(); + String token = request.getHeader("token"); + + // 判断当前拦截到的是Controller方法还是其它资源 + if ("OPTIONS".equals(method) || !(handler instanceof HandlerMethod)) return true; + + // 当前token为空 + if (StringUtils.isEmpty(token)) { + InterceptorUtil.unLoginInterceptor(response); + return false; + } + + // 获取用户信息不存在 + String userinfoString = (String) redisTemplate.opsForValue().get(token); + if (StringUtils.isEmpty(userinfoString)) { + InterceptorUtil.unLoginInterceptor(response); + return false; + } + + // 将用户信息放到ThreadLocal中 + SysUser sysUser = JSON.parseObject(userinfoString, SysUser.class); + BaseContext.setSysUser(sysUser); + + // 更新Redis过期时间 + redisTemplate.expire(token, 7, TimeUnit.DAYS); + + // 放行 + return true; + } + + /** + * 请求完成后删除ThreadLocal + */ + @Override + public void afterCompletion(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler, @Nullable Exception ex) throws Exception { + log.info("删除ThreadLocal..."); + BaseContext.removeSysUser(); + } + + // 响应208状态码给前端 + private void responseNoLoginInfo(HttpServletResponse response) { + Result result = Result.error(ResultCodeEnum.LOGIN_AUTH); + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/html; charset=utf-8"); + try (PrintWriter writer = response.getWriter()) { + writer.print(JSON.toJSONString(result)); + } catch (IOException e) { + log.error("出错了===>{}", e.getMessage()); + } + } +} diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/RedisConfiguration.class b/spzx-common/common-service/target/classes/com/atguigu/config/RedisConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..0fd0c6edd33f4b72630fd47a2850427606f9aaa3 GIT binary patch literal 7362 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 CrGa<= literal 0 HcmV?d00001 diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/ResourceConfiguration.class b/spzx-common/common-service/target/classes/com/atguigu/config/ResourceConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..76c9f3f501894c8b9fc1990f31b674307f5b8fdf GIT binary patch literal 1589 zcmb_d+fEZv6kVq+&a@Q4a#8S#B9b4^ovSse!%hW30lIyySGy|MY@>&DNQFSedM z-G0Bm_2t>t^H<+rulI+)dNkpXhEx*GXklooMQ4av&Z5iEn$9hYRl#lHn0!`wmSbjn z<}|d?qgsQGBMfn#ca8ofRj?E2z)=myk~oeN47WlbD*?iyCkpbR>pkEP`FxF$A)mg#N312{_Q7o!60v@Y;e=re-(L}G zX_!ylxO=_t*7PLz%HPlD37p0m4P8l`4HBQ)uf)s3YN<*-=NjRuuj3p;eZc3k@O+-h z=;#T=`p-Zsw-e~ac@2F@^n)`Tu2sXNFq9kc9yg^b$&cY|wK66GKiQtYRZ2pdaPyL( zF=sh)x>#6{-d(X^(+O$X5cZt#tYBY0jHxBdXUOFKw?eWE%~gbyr9u$X>3#e3Yb1FF z-P_UM?R|u%LYk6l$<5ypL0Ks2QSkbRVVB!SVm53GlUBf4M@99!xspzx-model 1.0-SNAPSHOT + + + + + org.springframework.boot @@ -40,10 +45,5 @@ minio 8.5.9 - - com.atguigu - common-service - 1.0-SNAPSHOT - diff --git a/spzx-manager/pom.xml b/spzx-manager/pom.xml index d00067c..3035841 100644 --- a/spzx-manager/pom.xml +++ b/spzx-manager/pom.xml @@ -24,6 +24,12 @@ common-service 1.0-SNAPSHOT + + com.atguigu + common-util + 1.0-SNAPSHOT + compile + org.springframework.boot @@ -54,11 +60,5 @@ com.github.pagehelper pagehelper-spring-boot-starter - - com.atguigu - common-util - 1.0-SNAPSHOT - compile - diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java index 8d68933..6183201 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/IndexController.java @@ -1,5 +1,6 @@ package com.atguigu.spzx.manger.controller; +import com.atguigu.context.BaseContext; import com.atguigu.spzx.manger.service.SysUserService; import com.atguigu.spzx.manger.service.ValidateCodeService; import com.atguigu.spzx.model.dto.system.LoginDto; @@ -37,8 +38,8 @@ public class IndexController { @Operation(summary = "获取登录用户信息", description = "获取当前登录用户信息") @GetMapping("getUserInfo") - public Result getUserInfo(@RequestHeader(name = "token") String token) { - SysUser sysUser = sysUserService.getUserInfo(token); + public Result getUserInfo() { + SysUser sysUser = BaseContext.getSysUser(); return Result.success(sysUser); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java index 7cc553a..1df55dc 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysUserService.java @@ -1,7 +1,6 @@ package com.atguigu.spzx.manger.service; import com.atguigu.spzx.model.dto.system.LoginDto; -import com.atguigu.spzx.model.entity.system.SysUser; import com.atguigu.spzx.model.vo.system.LoginVo; public interface SysUserService { @@ -13,14 +12,6 @@ public interface SysUserService { */ LoginVo login(LoginDto loginDto); - /** - * * 获取当前登录用户信息 - * - * @param token token值 - * @return 用户信息 - */ - SysUser getUserInfo(String token); - /** * * 用户退出接口 * diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java index ea9ac96..bcecf18 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.java @@ -1,13 +1,14 @@ package com.atguigu.spzx.manger.service.impl; +import com.alibaba.fastjson.JSON; +import com.atguigu.constant.ExceptionConstant; import com.atguigu.exception.BunnyException; -import com.atguigu.exception.EnumException; +import com.atguigu.lib.MD5; import com.atguigu.spzx.manger.mapper.SysUserMapper; import com.atguigu.spzx.manger.service.SysUserService; import com.atguigu.spzx.model.dto.system.LoginDto; import com.atguigu.spzx.model.entity.system.SysUser; import com.atguigu.spzx.model.vo.system.LoginVo; -import com.atguigu.utils.MD5; import com.atguigu.utils.StringEmptyUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -40,50 +41,36 @@ public class SysUserServiceImpl implements SysUserService { String key = loginDto.getCodeKey(); // 得到Redis中验证码 String code = (String) redisTemplate.opsForValue().get(key); - stringEmptyUtil.isEmpty(userName, EnumException.USERNAME_IS_EMPTY); - stringEmptyUtil.isEmpty(password, EnumException.PASSWORD_IS_EMPTY); - stringEmptyUtil.isEmpty(captcha, EnumException.CAPTCHA_IS_EMPTY); - stringEmptyUtil.isEmpty(key, EnumException.KEY_IS_EMPTY); - stringEmptyUtil.isEmpty(code, EnumException.VERIFICATION_CODE_IS_EMPTY); + stringEmptyUtil.isEmpty(userName, ExceptionConstant.USERNAME_IS_EMPTY); + stringEmptyUtil.isEmpty(password, ExceptionConstant.PASSWORD_IS_EMPTY); + stringEmptyUtil.isEmpty(captcha, ExceptionConstant.CAPTCHA_IS_EMPTY); + stringEmptyUtil.isEmpty(key, ExceptionConstant.KEY_IS_EMPTY); + stringEmptyUtil.isEmpty(code, ExceptionConstant.VERIFICATION_CODE_IS_EMPTY); // 验证码不匹配 assert code != null; if ((!Objects.equals(code.toLowerCase(), captcha.toLowerCase()))) { - throw new BunnyException(EnumException.VERIFICATION_CODE_DOES_NOT_MATCH); + throw new BunnyException(ExceptionConstant.VERIFICATION_CODE_DOES_NOT_MATCH); } // 比较完成后删除验证码 redisTemplate.delete(key); // 根据username查询用户信息 SysUser sysUser = sysUserMapper.selectByUsername(userName); if (sysUser == null) { - throw new BunnyException(EnumException.USER_NOT_FOUND); + throw new BunnyException(ExceptionConstant.USER_NOT_FOUND); } String encryptedPassword = MD5.encrypt(password); // 比较密码 if (!encryptedPassword.equals(sysUser.getPassword())) { - throw new BunnyException(EnumException.PASSWORD_ERROR); + throw new BunnyException(ExceptionConstant.PASSWORD_ERROR); } // 登录成功 String token = UUID.randomUUID().toString().replaceAll("-", ""); - redisTemplate.opsForValue().set(token, userName, 7, TimeUnit.DAYS); + redisTemplate.opsForValue().set(token, JSON.toJSONString(sysUser), 7, TimeUnit.DAYS); // 返回loginVo对象 return LoginVo.builder().token(token).build(); } - /** - * * 获取当前登录用户信息 - * - * @param token token值 - * @return 用户信息 - */ - @Override - public SysUser getUserInfo(String token) { - String username = (String) redisTemplate.opsForValue().get(token); - SysUser sysUser = sysUserMapper.selectByUsername(username); - sysUser.setPassword("******"); - return sysUser; - } - /** * * 用户退出接口 * diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.java index d91db0d..627740f 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.java @@ -30,7 +30,7 @@ public class ValidateCodeServiceImpl implements ValidateCodeService { // 2. 验证码存储到Redis中,Redis的key为UUID,值为验证码的值 String key = UUID.randomUUID().toString(); // 3. 返回ValidateCodeVo - redisTemplate.opsForValue().set(key, code, 1, TimeUnit.MINUTES); + redisTemplate.opsForValue().set(key, code, 10, TimeUnit.MINUTES); return ValidateCodeVo.builder().codeKey(key).codeValue(base64Image).build(); } } diff --git a/spzx-manager/src/main/resources/application-dev.yml b/spzx-manager/src/main/resources/application-dev.yml index e72a30c..599866c 100644 --- a/spzx-manager/src/main/resources/application-dev.yml +++ b/spzx-manager/src/main/resources/application-dev.yml @@ -11,6 +11,11 @@ bunny: port: 6379 database: 2 + + spzx: + noAuthUrls: + - /admin/system/index/login + - /admin/system/index/generateValidateCode # jackson: # date-format: yyyy-MM-dd HH:mm:ss # time-zone: GMT+8 \ No newline at end of file diff --git a/spzx-manager/target/classes/application-dev.yml b/spzx-manager/target/classes/application-dev.yml index e72a30c..599866c 100644 --- a/spzx-manager/target/classes/application-dev.yml +++ b/spzx-manager/target/classes/application-dev.yml @@ -11,6 +11,11 @@ bunny: port: 6379 database: 2 + + spzx: + noAuthUrls: + - /admin/system/index/login + - /admin/system/index/generateValidateCode # jackson: # date-format: yyyy-MM-dd HH:mm:ss # time-zone: GMT+8 \ No newline at end of file diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/MangerApplication.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/MangerApplication.class index 073831e62c2b2a8891b773db5d7f088f600eb348..9ecda2a89eb666d35b9bd91f3d13b1df08a4f5a8 100644 GIT binary patch delta 109 zcmeBYKgG^<>ff$?3=9mm3`!fhteF^1CSDX%Oia#5)lbaJ%P&bR$;{8wcg;&o%1Lzw z3TNh}TQf4)OuQ&MIhtt=BkyDmW_wnC26hI4$v(_F(ozg83^G8|WPw-?h~*g=85E)! I7>gMc0UO8~WB>pF delta 68 zcmX@b-p|f;>ff$?3=9mm42m1MteF^XCSDYsJc(%yBll!`W_wm%26hI%$<53<;$jTU W3^G84vOp}yz{nsU&A?d9pa1}DG!3x; diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/controller/IndexController.class index 4452344e4078b041b608747ab1f3742ad338dd8e..f4806d79656abfc2a3f39a0f9479cd5cca42b277 100644 GIT binary patch delta 832 zcmZ8fO-~b16g_X+(#~{JFeDl(#x{V~8D-k~fe2MT6sb}b0l%ukh+}m@n=mEORoAZH z#$VvlKqRrc(47nZjeo#!-gE*@7c=kPdFR}7?!EIj{WWbI{QvbEKnZX5j6d3pfl-Xb zan8hfCCylH{Xc`jGEV6`Q)$p-nKwKCwIk=9Eha* zEE6^^%6w$Z7&mbWj)1Lht?!>BcGOIgra0yLyN2vfl(cG2ZX~{llB^`A<-d4FPU_=g zLJA`vU-aC!-u9IA^yOHz?rwQj%VM zK)KAfDgX@P3g4;#0l125JOxgW6hToQ7@2j2H7ElN^E?yaPX>8^h&RZbz;*H_iPCT* zFf+_(iqEvq3E%W_3o}H_Rv~=W7sz6cyrL{8v#n!|5w_ZlB?GlP zth~VcnBZrG!gqUx7nN`s_l|_KxKDIk4P=RdKt*-hf|}DTQ`M&4#>kT0#^5d!4aeRr zM7dZsuTKAZ=q*Y|5AcxmPXCX3Z7eGrkGuM>5Nl(F^_1{Ji!w?%W$k0g{)r13+PKs! zU*PzQUGk};(WJ17HI@tqvdU8Gcj(%{6XoD(mxE`)AWSug=O}P5K5J-rL7IkYKtIg| SyyX2WAFr{_iw!27{keziDrr;z delta 869 zcmZ{hO-~b17=_QB&M@uFSicekN{kh%^aB|DLInkjd|E(JL_};z9F2?CgmL4lKf%TQ z4<;HHHkt@7bYon&@}IbLXFT_I($*#{X5M?}zVA8DocpHlN1yZa@0YItuAy9az8NVO zCo$+DgEIo|v*6`=80;=qpS}<%%6IXC{9|`Js%OYU7CBjrWx5I;PGI2DKZ9lmX>^uo}Cj`vuP9>0L!k5*=s{EdK zUmGD+7X(IG4Y=^QZvSR+Z|M%79i!X{Rx9@zqOM2A_*MeIF`VOD39td@ae-CfD25S( z8lLCQU_G4s1bZKc1WI}N+ews_grkpAto>T1yU`lSI262yOB5JquYt>&v7f6ee6EI= zz+}jDud`!n3nHYgKpNAW^W}z{uC+W)^DhUq$0>pVMOmMlR{%{fP1byLZR^Q?hA8PA&4xOUq|uaGLl~WMYDZTxwoPW=W-f zab!l2GVn0)GB7f*0}W+mWZ(u; Mj0}80l8J#I04~EEp#T5? diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/SysUserServiceImpl.class index bc70e3d8ba1dbc62b4433826f8bb3f35d2540840..dcccba822752b9c049e1c5672fbfe4a4813c1a93 100644 GIT binary patch delta 903 zcmZWnTSyd982)DVGP~2bnbmp;dyrDg%LZ#0m1UVE28s#_h0-c18?{@xLT}bfH!HJ~ znReNv`9!ag6Q?sdR+CM#=zP}zt2@%QCcEF3;18YZ&M7#r;Q}s-4|cctvV?3=W=Rm$6KtWyYMU%R zYI{~)f|+B44mA+mDs<1V8bHUHU?FpZvm!yg(SADe)sD4^ZU9E(w9K)j4`y01oS z0#1a9HTuDbYZ&A%VF<&lI6y)Nvs9WSk>q&SoTv<9+Z62X$KD|vurm5kqCJdbVVu-u znxGf1K|I$~mP=!5I$|-4G#Oko;bu#D$VL%dsK6Y?y0H;C*owJm!928MKDx1h16#;O z7ExS2?qLbWuncd|T!=4NZYZvgsER74K3vBQqst$-i4m$-@fEj-Ocd}Lw~5S@@dBdPNxs*F)Aa2 z;-F=|fI52s&Wtdssv-xbPee65Wh_^2h<8RJ|A?nwCzB8@-NO_coh)z6*{WtbOy?g)w delta 1050 zcmZXSTTB#Z6vuzx>}6($DdCQ-7?lFjg_T5%q$NbGw`yWrsq#QAgu+TTfkoZj=-ak0 zOT zx7-|mJa!dm;;$hyqgA}z)!$dw8ShC%dJ=Wv9bMrq@koEPZe=vlxALi%y05+EDJY&9 znTSVvW2rU%R<+N_$^C>+b#_{O#xBJidzmrEUSfp&do1=cU`LFWT$}wm2P_V9NKtL8 zK(#$-tj!(dh|W=qV;omB2;5+Q5NInL15T0$tk70WN@cXDdHNBeWwOU#y=A@_cGW_;c(UT3-B zKFRU9RZ`;BiKiSiIEu=qjfm@zKrxr81S=asno$82-;)sz$<|B>GzI(5UYh%NGE~Gz z!+e}!w_jrRy%-rQD*K32EvcE0`p?O60=ktfDEkqKz?r5Y;{&@grA6 zxyeJWiscaj54a|lS7iLdb+LRR<}NqH@(bN2ZVHJmwN~?!V1`i5m(93BfS-k{2Jio( zQr9Wfv8(dtC4Ujrr-afO)UR}B2gMFKooB2Fj!=@OtR_RbCWO`N1bDYLLx;wjp@P$C z&W5s&>&&ab%~?-AEtJVr%Guzy7|hn1Zn46Zq$IAYkl#d|CgFyw-NTfkW3Hm#X>}CY zZF#ek4udJ4^DY58+{z`cZ%$V>rz+1VVlY0vJ&WDVfc%2eH0O_?d(Y$bq-cJ2lZxDN e`OvIpC3F8nNat$Yo?g%i0q(eZ6oc6ON#F_Dx6s7^ diff --git a/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.class b/spzx-manager/target/classes/com/atguigu/spzx/manger/service/impl/ValidateCodeServiceImpl.class index 9f9270620958c9fd45d155e5254339ed8b110dfd..06ef4fa83f09af9c516d793092472a2328a8e551 100644 GIT binary patch delta 486 zcmX|-$xd4_6ox3L=B@BvCL#0R{ArONC4UjTJ3G+M;rDblJp{-bS)4o7gSYm4uJn;tW7 zpG6Y%dGynxa98$L*QS=X57q)C81xuo*i<-eYV>@^c~C*w{={d^y2mRv%%Z+iTc+6G zq4vy%zs&xkh?rkGVlMo7KSxkllu#->CfCjo9v8NRowS+|6&0m~ow7^RY5I6lFqI71 zObL2V2~0C1N-@i@V9NYQ@>0Ljoy$>9m3FSs1LaAw1_ex)8!ikHJ)`=Xcm`KAhwUUC zl}UP&44jC~V$%F@Uw@BNlx|e>RP4D?CQZ!oURvc4XPys|UqB@vCGv@*m<5S!nTzRK gOE0fn7QG_NFWyyIn{1296Muphc5vBcpRa`f1FDru-T(jq delta 480 zcmX|+OHWf#6otQYdv8zg?d2H;R1!3Tfk5O{DuS&*p&;0T%KN1tl(!ZK3>-OChn~d5 z0f}>CBAOI*z`!taf~TfZ#Dh0}d~$xP(p8T&vYK_DYBtQ4K2=+$B{X2a zP~0+~L$zLgI+xqo-_zvGK`8oW424Aljlz%Q3qj$>!j`a8R8K^;ic-Q((-G>h_&gz4 zFhd!Wg8qepDW*j!X2=K@!e7Ma2&XFeSl*_cV|2PXPf13=jJuKR-gjDm5({$7y@;Ks z|8}0?Jfq(vWHDjhxizn2+$^r?ycl)4CQJ{r%*mp1V$8E3{%bU|C|y7jbu39|%XwOy g_3Y}8%c57LLXv$hwaK=qO35dQvxCbnFWDn<4uvXA2><{9 diff --git a/spzx-model/pom.xml b/spzx-model/pom.xml index 9fc4036..fef7b0b 100644 --- a/spzx-model/pom.xml +++ b/spzx-model/pom.xml @@ -1,4 +1,4 @@ - 4.0.0 diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/BaseEntity.java b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/BaseEntity.java index 130dee0..74d2286 100644 --- a/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/BaseEntity.java +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/entity/base/BaseEntity.java @@ -1,6 +1,5 @@ package com.atguigu.spzx.model.entity.base; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -13,15 +12,14 @@ public class BaseEntity implements Serializable { @Schema(description = "唯一标识") private Long id; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Schema(description = "创建时间") private Date createTime; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Schema(description = "修改时间") private Date updateTime; @Schema(description = "是否删除") private Integer isDeleted; - } \ No newline at end of file diff --git a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/ResultCodeEnum.java b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/ResultCodeEnum.java index 33f9a56..3defdb3 100644 --- a/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/ResultCodeEnum.java +++ b/spzx-model/src/main/java/com/atguigu/spzx/model/vo/result/ResultCodeEnum.java @@ -12,7 +12,7 @@ public enum ResultCodeEnum { USE_NOT_EXIST(500, "失败"), SERVICE_ERROR(2012, "服务异常"), DATA_ERROR(204, "数据异常"), - LOGIN_AUTH(208, "未登陆"), + LOGIN_AUTH(208, "需要先登陆"), LOGIN_MOBLE_ERROR(208, "登录验证失败"), ACCOUNT_DEACTIVATION(208, "账户停用"), PERMISSION(209, "没有权限"); diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/base/BaseEntity.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/base/BaseEntity.class index aa4998f6fb3de0e4dae50bb577a2a7c6ddf92fde..23bdb8cc47650006befd56a96d0a715981a72fd9 100644 GIT binary patch delta 1139 zcma)*$!-%t5Qe`Qd&WCpk&J;LBbE?hgjmD@vYJ3b0&&<^vxkHwKumZ5iyIOW5}E@i z4!l7eKu8>N0K|a@Ktkdb5Ih0mpBc*-dk`GDySl6Xzy7N3ez$h1EBWc?+a+Lt`C9V3 z`EoomXD*vgGQ*7+H`DCqmiy8AV9dIY?UHfN{bCoQ6@$F{)y})!vA${wgS{HP59r5a zB`dVqBgQ7jfE*6FcE=zY9a`9$hlJU#)zE4c-eA;Zm=ra8Zb-0Cb23ThX1N=x#Q9sojOR(^Hh#pvYCBu?HAY zF+=XRc&`6G+yA(B;=zPQGuev!Y(WVxv)u zOi)s9I(g2dUX#fto^V8G5nb#fj>?LvbF&x%0PDo*tHFbqQQqEtl(rPHQq{~xSCz$k0+`&%&-3+H6mWwK= z`E!g(5>)C05$%Pq zAuo`S_yZQCfRI>3Vpy?9d;lN7k{#ka+e$((B2xU$eeVwE+;?B4=i|1}mtXHI0ETd< z9Qq+oN2k(xBetZQrN!bsBO6=M)2n7a7t?dOd`T}Y6Hd||&le57l#mc8=q0-5B(&e> zFPch4Gnt*qWZW>~ruq7(ye7Ba4q+K90jxIT5VF=?<+GHt5^73XvmU7tzbT>DdaU+Z zU)98V2V@+Dgdr2haD*Uk;yCx(v6;qUGWGHpriX?u*CWi;4LyMt8VXc?M;ILADsfdJ z?;w>4WSrzz90MVYu5)R2JTQiFS|o=Z{QepJ27y;RtdDNRs7LUAL_C698iU*1;7*%d zwRF^pwzdSd{u)osv(jGd6P2v#ptfG~?e_GYK$6^rq&QcZs~Q=2i-1Q*c&0fXE-TTk zu-&9nJX0hZ;%X*w8a_9r^*z{@s&QanJ+o}G1Kljb5Z5a%uQ~t{rku3aU{hC}s()p4 zro_!C43CT{OnYhX_^K+L34{}wuW8k5jm}IO`rZ^S)e3fquRX<%wU!xJMjW@ z95ESt@C5VR^YOMH;tY`=6IjJrA_XZd;vA8REWOVY1yIB=E)WIr6n(fz)P!f`a0#=1 zj`3w{dpNP=GMphpKejpy$wa&iapTIs2LxXd)DLleW0fjpg+v8qH{+bG`2YsFHDXo5 z4;C8lI!TT|!A;bAH)qJg*v*R6RDK)yty2> oiL_m7zNLSxv6k~(wQ8-5EoqVY!Tw0N#lL|(tq@Uxy(^*nH|Fe)6aWAK diff --git a/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysUser$SysUserBuilder.class b/spzx-model/target/classes/com/atguigu/spzx/model/entity/system/SysUser$SysUserBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..545c713c52f1c2e4f665c34033c0356f5ed7cc64 GIT binary patch literal 2529 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 Date: Sat, 23 Mar 2024 14:35:11 +0800 Subject: [PATCH 13/15] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E9=A1=B9=E7=9B=AE=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/atguigu/utils/InterceptorUtil.java | 41 ++++++++++++++ .../com/atguigu/utils/StringEmptyUtil.java | 0 .../atguigu/config/WebMvcConfiguration.class | Bin 1384 -> 3999 bytes .../constant/LocalDateTimeConstant.class | Bin 613 -> 0 bytes .../atguigu/constant/MessageConstant.class | Bin 1096 -> 0 bytes .../atguigu/constant/PasswordConstant.class | Bin 584 -> 0 bytes .../com/atguigu/constant/StatusConstant.class | Bin 522 -> 0 bytes .../com/atguigu/exception/EnumException.class | Bin 1409 -> 0 bytes .../interceptor/LoginAuthInterceptor.class | Bin 0 -> 4977 bytes .../com/atguigu/utils/InterceptorUtil.class | Bin 0 -> 2075 bytes .../com/atguigu/utils/StringEmptyUtil.class | Bin .../atguigu/constant/ExceptionConstant.java} | 4 +- .../constant/LocalDateTimeConstant.java | 0 .../com/atguigu/constant/MessageConstant.java | 0 .../atguigu/constant/PasswordConstant.java | 0 .../com/atguigu/constant/StatusConstant.java | 0 .../java/com/atguigu/context/BaseContext.java | 53 ++++++++++++++++-- .../com/atguigu/json/JacksonObjectMapper.java | 46 +++++++++++++++ .../java/com/atguigu/{utils => lib}/MD5.java | 2 +- .../properties/InterceptorsProperties.java | 14 +++++ .../com/atguigu/context/BaseContext.class | Bin 938 -> 2050 bytes .../properties/InterceptorsProperties.class | Bin 0 -> 2269 bytes .../classes/com/atguigu/utils/MD5.class | Bin 2158 -> 0 bytes .../src/main/resources/application.yml | 10 ++-- spzx-manager/target/classes/application.yml | 10 ++-- 25 files changed, 162 insertions(+), 18 deletions(-) create mode 100644 spzx-common/common-service/src/main/java/com/atguigu/utils/InterceptorUtil.java rename spzx-common/{common-util => common-service}/src/main/java/com/atguigu/utils/StringEmptyUtil.java (100%) delete mode 100644 spzx-common/common-service/target/classes/com/atguigu/constant/LocalDateTimeConstant.class delete mode 100644 spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class delete mode 100644 spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class delete mode 100644 spzx-common/common-service/target/classes/com/atguigu/constant/StatusConstant.class delete mode 100644 spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/interceptor/LoginAuthInterceptor.class create mode 100644 spzx-common/common-service/target/classes/com/atguigu/utils/InterceptorUtil.class rename spzx-common/{common-util => common-service}/target/classes/com/atguigu/utils/StringEmptyUtil.class (100%) rename spzx-common/{common-service/src/main/java/com/atguigu/exception/EnumException.java => common-util/src/main/java/com/atguigu/constant/ExceptionConstant.java} (91%) rename spzx-common/{common-service => common-util}/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java (100%) rename spzx-common/{common-service => common-util}/src/main/java/com/atguigu/constant/MessageConstant.java (100%) rename spzx-common/{common-service => common-util}/src/main/java/com/atguigu/constant/PasswordConstant.java (100%) rename spzx-common/{common-service => common-util}/src/main/java/com/atguigu/constant/StatusConstant.java (100%) create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/json/JacksonObjectMapper.java rename spzx-common/common-util/src/main/java/com/atguigu/{utils => lib}/MD5.java (97%) create mode 100644 spzx-common/common-util/src/main/java/com/atguigu/properties/InterceptorsProperties.java create mode 100644 spzx-common/common-util/target/classes/com/atguigu/properties/InterceptorsProperties.class delete mode 100644 spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class diff --git a/spzx-common/common-service/src/main/java/com/atguigu/utils/InterceptorUtil.java b/spzx-common/common-service/src/main/java/com/atguigu/utils/InterceptorUtil.java new file mode 100644 index 0000000..558b0ac --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/utils/InterceptorUtil.java @@ -0,0 +1,41 @@ +package com.atguigu.utils; + +import com.alibaba.fastjson.JSON; +import com.atguigu.constant.MessageConstant; +import com.atguigu.spzx.model.vo.result.Result; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; + +@Slf4j +public class InterceptorUtil { + /** + * 用户未登录返回响应 + * + * @param response 返回体 + */ + public static void unLoginInterceptor(HttpServletResponse response) throws IOException { + log.warn("InterceptorUtil===>用户未登录"); + customLoginInterceptor(response, MessageConstant.USER_NOT_LOGIN, ""); + } + + /** + * 构建用户登录失败 + * + * @param response HttpServletResponse + * @param message 消息 + * @param data 内容 + */ + public static void customLoginInterceptor(HttpServletResponse response, String message, String data) throws IOException { + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + response.setContentType("application/json"); + response.setCharacterEncoding("UTF-8"); + Result result = new Result<>(); + result.setCode(HttpServletResponse.SC_UNAUTHORIZED); + result.setData(data); + result.setMessage(message); + // 将消息写入响应体 + response.getWriter().write(JSON.toJSONString(result)); + } +} \ No newline at end of file diff --git a/spzx-common/common-util/src/main/java/com/atguigu/utils/StringEmptyUtil.java b/spzx-common/common-service/src/main/java/com/atguigu/utils/StringEmptyUtil.java similarity index 100% rename from spzx-common/common-util/src/main/java/com/atguigu/utils/StringEmptyUtil.java rename to spzx-common/common-service/src/main/java/com/atguigu/utils/StringEmptyUtil.java diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class b/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class index c031957b7d5b22baad5412973481dc6520e924e8..188f997aaa044d874e1ac866e88ad8bc54c0f33c 100644 GIT binary patch literal 3999 zcmb_f`*Raj6#i}>Y#J5{p_GRruTuM>3y4Zdtw4AbNK2v6QV?a6+@@PLyK#5ZQlEgz ztKb`F^cO~dP-Gk(zzHJaAK>3%JNy-n=kBKIHUulBooROOb*xt(u`ZZ49M#^*t2`ph7}W#$3n@wQ)10s7^AYB{LIh zi|8U*-AposJZO6V=0PQDCX?I>2QZ&u>DV7<#(o%mc=yKG_3PtzZj7D3^6=Xm&CSho zu>cDtgk&s26~hAeWIl0*GR^2W85Y+?2h|}}(N!a!s{&=AB@ER(QY z#xr=9q3y{%6frIP5Kn5hV~sEb)kLC0O{d8W!_i{4XAlIR2{!`aAfCfY39DqR#u|nl zPlei5NiI}%-5icsJi!e|Q+1nRPu;Ql*?=pdhV&PPA%I#2MiF=pbu#MFK*4e`@WcU2 zOKL`!>Nwmo2uNSu@gh;24QRr8lZ^Gk`uv>r4(<$?30o{FGB)^^+PRwGmL0$*hSeT7 zbF92@bL{7D{=Ro>hvGf@yX}#OfY^MwoBL{BZ8d_duQXMIpSB+X^CnBlXN>dTXcKeX#^8?%h-c< zhH7mx%66A!rn%*4oJg-s;X*pUqWHA>1c(g#uwOz{Mh7|>*87<>tu({DBzHPZ!N?<) zxcs5IdhgC<98FiEl;6n0Hgw52h(ipE`02QwN${zjJCVzHlQOeOf(jhQ5eYpqdU14W zMj5dko}!d)W~eYN_JC`q(na~+p{&o<6rn$c;}TwzaRRT?0o;5vbq|9is-vSD1%=~4 zY>>wtw{V=Ksx*G-$FW=2#EO1lCOOqxZ(|UuDBzr-#ve{sJSXQt6S}w+L;|HkWvT$220imiLUq)bW+W8T+jHb^lmjyX^+Zg1(DCI`wZ*+RWqWiwmp$ae3D^?Wrs3Us8YN~ zv$dGcx96J{BJY->`6|X$!&dq|qy8?3SZ@w%RQgD5S;S0`zbm7f!8$2}h>Su8%fmzMf!&qQnre@=eILqNo4w zMsJEfx?5fm>{3OaNK7G^0=Pf*FzlNNaG#2aisRznGXv1Ybcs6dPw0evQIYO}*vL;i z+(;B&IkErIEJh9v=C3bpSx}f8iNpDIhK{0#nPCzj(o{!HKlet`6a4Eez|s1D3>V8Z ztqpDAHnLRFttAcB$ymhrgN1&0O6@L9TjP4}vmw}RW~lSot%=*Uw8+;%v&c0J4Moo+ z@)tK9a)lBxQ)$znwlz%saDcvffKn_MA0qTtA{s6*4Ac7@dY*RYsPq=hmD8BMlIVAY zb|~~@^ek_<3wFyDd5eC;cyHm4?=JXYsu6z0vpH+&gJ;IoSkOB8XL3NXJ`&HPkDwMGILYx&9w+<8(nBQ!!LAqG&cN-7qe(-%Hmae-Ic}O zEDrSEMt6SHSBR{MkTs)<99BcEaw9g9vp2cOR(Xc<$XW=@M}({j>u??y2#^mW!$n*o z0pY&$^b{Ct1;#gAjQ64T-9@~k={^$l(w{}LvFRR8mB4jXDMWCp$?d`cL9`--HgZ*j zOzrf6sm+6_#bt~Vm=M9af~y4PW0LhkD%L)kbm3)M_>}%j@EMWo^E^dX(-!ep5eoc< bH}60au3;_`k0v1!`GV$3@MWHT*MNTkQ3%eU delta 490 zcmY+A$xZ@65QhIAmSJg-U0D=2WK+R~ctH{lCLS~zNH87;ncxr{5*X2&#y242-HQjW z#)KFXeE<(Whd1BASc4w$QuSANSAG50UHsEgdH;TS1F(&P0|HDU%p4Y289XhiFXh^j z+RPo)Tk?sAvgAA?X=VA8Smye=Etvg zWvL-|dmY7nxrWmwWojZ zd~kuhGbCscMkfChlX}?|x=PWRQ2{ojDe{rFAcHJb49i%do+Rl@>JupEvp#VMyLpHS z^DBbKCf{Uri13)69@Dc&kJKZ;;6#W7awx(}OY_kN{5ymRAcx=x9{L6R!3l*`x?_|9 T3!}oAv^I+C*r06ud=vNqK5S6^ diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/LocalDateTimeConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/LocalDateTimeConstant.class deleted file mode 100644 index c33655fa9040d51a9c5e523bf8175c1a0d58f7bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcma))Nl(I16ot=YkXk_y91!Q760v(662cHnT1cd_C6Ch7M>-_Xn)tI^nYi!=_@j)s z4FpgZc5&P9_MLNYPW$=w{sG_?$1-Awr;tb^i8Y4Ym_KvH=B}l5hhx+58P;xuEBrf# z`1wUY1&N_-c#gt-D-c$o7@j-zx$7&cXK=g0eNz{XS)X+o3XNu~_NeNEMon)HTHOb& zrZeQ##h{))5w3O3keRFc+zw0$83y@({{V+I1DGh z1-)jy+iA@9kWionf9k5!>C)OOV|E#&$U8cdsCy%mA*%}4>;%rxoalULQzsu~(dQEp z@~oNgp9C3Ss{c=qGLd^;Ffq)Q2z^U`W_%S!i8G|=QvwO>V;wRWHi%+K6K^hYmUwH4 w^TgXryhBPB{tQ(2$U%u1NS5EgUL(sQ)$lbCCoyP5_?$!u2XtpRq#DD~H!|joJ^%m! diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class deleted file mode 100644 index bd8cd10f1e721d9035a70ea3ecde8236d5f60b4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1096 zcma)*TTc^F5Xa|mkp)Y+h$x~ciU_Ez_e;Dan|5m&mR;;_L7p~C-P9$eO?vSi6U7)% zA1aEHK#VAAq+*CIpz`kL=x)oGFwS;cSbXwja(;9EXU>^_=KTJ%_6q=Rz||TkgYqh< za6l#OB2Yi7+*jz35)RVB$fz2K6WDcK3v2P41j@U*2djW0&=H7?(Mmj+(1Hm%5DCZP zN;ppUtFf38R9!_T;2dB?aY*pFW!C2td;}V~?doDYs)d8s2-KDi3@V|7NM?J;{9q}wnJIm8b@SmAfwmoDk?Ch;o*mjcPQe}mt+s^|7dG z*;3`-e%?%u>r1b(KR@5c3q!nR0tE-LKV$Y&Zf>E}pVKe0zQS#saLdb6a2V_4l8eUU zv?-if*MGhs&|FYSLLbY^f?tvakL+e7mV%?`gr&Bm`Hcx6*5^cYD#2V!@LrFWSGcWF%Khawo(2 zSjIgpvv<6rBvQ~zpjuCVE7{iIV{iLe(ejt=ACQJAIBPnWN*l`$(BEukE%$MaK!q!E zSH%rZ3#)u$Y($Mp%18(^ja($4ga(zUW^yrE5x=L!2y}A)Gn_bgHDV+Y4X7T?tl0F= z@b;R63hhvZzXPBaTA&(gfWU5~GH@U}ZCr=kVB<#QCL8ZX-e=?e$OmlPihRh%ZOBJ# z+>U(A#vRC=Ha>yeZQ~x~Q#L-0OxySjc0$bmj`19JL>CyKvL_8>xzOTyjOMl(FJN>O R)|GG(E+G-PjIj)^`~{LuHKqUn diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class deleted file mode 100644 index 075bc8b1917481483ab345a5181741ba9407d12f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcma)(OK;Oa6ot>EaTC&%mQX0q1&fM@P)0l#K#{B_m0GMMN=(Aen%ILg!SO_%F;#z7 zS4b@Q0sN?{*H&AquGk#i@6ODbt8@RJ{{91C7mpjLV5Np?6Ao4xHs|7};E70M-k;88 zXc<;NsZ`m|3@gu`k87wi?1Xy3g^hC+=RDM@u_Cp6AdETES+sZFAhS+)-~HMiU}Q6u#vd8hFP@A=lFK^Q>C;!Q-@JYIo?+|4<8X4-$8pELJFMdtLuY2~ z(tO}t8`BnvI?mJ3w964o2vig-XWHsunukB6<&pd@^27!+kw!)@WP84hX;{DirP~X- z-v$Rm*FWg@7}%jhA=M@)FTqgV(~)G@@Kh>$`C=+FUrZC~v^*V(WGpgO@OiUpXUZ@< z_5Ld=%AhgQc^1ljRaoA+o@Kj84Np*`Z2?u>#|<=Ss5PPrn#4D+@x~S2r1KVTU*6xM oiWU1Ny-Ny%Rw#t_q0;wlTw_X_K)UIFi4Teoet;h( z&Zb2X5qz1;nVG}PnfH&^Hvs22Frgu5K(~-bfuSXDGQ$XPsqATXg%ES8kWV{)2Jd!iJ(Vu6x5pr{0P01Vh;kBGFH$W0BnQ zaY#tbjXfTYcoL|53F`78m@yo?|5&HRP;7hQQWtX=r->(S0>y3rT>MO(k3+gxBfT}$ z)y)*u)v_7Fl<*+2D09d&^7)fzu*a;tMOKxS-6m@-8i-(rvLbfBhEKB!P}W~yJYhAL VIa|>%C>r%@HA3$rWRGGE`=61~<)6Chb6(!7^iXNsNXC zL>6e&xNu<%8cby)NTSiLzk~Al561Y-!!iX-+}z2z^PTgZ`^}mA^Y_{}0Js5tPOyO0 z0h9}DU?<=nqP>GRH=9< z#$=+&3=B;7s z>FtG=Tcr{zR!VjhkD*1qs#?w+4h^Qlw?d}oCkeD{Je^-(d%OK%cB?dv%GDg#ZD!b1 ze~Lg;rE;8qSY6zjW)jic9;c5kwa7Ag(vz2E<29xCwEy3AZ3VZo(%Jx0-Mp;&u~0jrfcSpT$2JCj)j| zedr*FPl8XIe+9_0X33AM`dVEBxVrQL=!7mr1iEp@qLC%_dceK5fd3uXsHMOUaJ&MW zbt&*29I;OSXE>liY6*+1uv@rQCmX^jgKo}Yg9dESgUu{(9(hi@f#_dQ>%a+KKx`ve z<_1c=Jq#b$kfaXRrW#OtS@!g5)C(%TY}i5VWhnM&Bf1Eea7!J_RYQ@Y`ZV+Z5~K`4 k3(8-HE65_qRsEq;N3)es?YU90N-10UH+U;qFB diff --git a/spzx-common/common-service/target/classes/com/atguigu/interceptor/LoginAuthInterceptor.class b/spzx-common/common-service/target/classes/com/atguigu/interceptor/LoginAuthInterceptor.class new file mode 100644 index 0000000000000000000000000000000000000000..0a3455277aec188548a5b6d8ecbb0d53da1a23bf GIT binary patch literal 4977 zcmcgw`ClAo9e&NMNK%o5(_xP)JA#q%06q6Wd`KmVw=!?aXWl zt+AeM)p*r~1Gw-~|_k6y` z%d7vo`ZEAs_-hm)R4E9nh@e{FrfL0*u4VLGS{oXlHd3xYb*Gs#-Gc&EP0eFyy>42M)|(}sJ@aHp&ZfwfJ|1K0T^ zUE9p16E$cMh`82_k&{erQgJh4{<$NDK4I7bJDc8oY*|Wc1(c!VBmF~z$tc!igMy7J z;@DK7pU;>2QA9oC2&@Z|_q9(n->={nfjyR;)||W)bkf$d#;j$}XtTz+mi1K9j_A3G zjA8o=G{4g%|SVO zrgS?gjhIUrlqQNhutUL46}!+Ru$2Tg-AxzFbU`afLRx>$HSCm;cP(2|7Kjyc16JD1 z1r`KaC661q&dF0&aviHh3wA5mqoNgUv__Dtd7Yo;@#!wOQx&}GZDYc8MvQDeqq~N{ z-ht(;IiV9q-cDM{Hnid3p+ppKLA!!GRqVw+f%gBJf>cls=QOwSZ3#C~FMHAKAa zLwUp2U6a;G)ZuRIS8zbZThT#X{s$V2BnHD0IG6AiKzMOVLFW>aJNbvtYFTT-$Y@5+ zHQhPQnR8qtt0m{0QAT1E2k|xqZ&%TcLjrNnT^Vy+AJ?@>-EpTKE2kYz4h_;MdEIu5 zQmF3_BCi;i0fBlly5l5*5myv3ihIzjpijkN91*xZh>w&-fSh%;L%L)1_+x>nW4J|O z>CC2q;DH-yM?6NDyX22jivb){FsNb(#|3WnvWkoYVknm?*f#B>jhIldCGnX;Mx2CS5xX=`h%!zr9r@Gcb(;6dgy4}XE9 zRMN~%T1&E7(U;9*(o^FqQZm;wF0VQ;RGrB4Tj4)+f}&^=`F%Y3eTaeS6Q(ws_44^OJ%L=}t;%R)9#$FnKeRQs6vx>`x$B$-#9YNxy zEV}e$Lc!Ms?p&^*$WEiwVHI1AiV9nsG}AfVEyz4|a#dxmqPlhla{P*_A55^43>R2$ zvc{O{nDktCE@!!ZT@*O5EZ=daJcmWcGm55{4`}QXtXU@336c%VBtowZm^ovxkR3Pd z5eW=0GcxOq>9#4qi<4n@%4EOPRuQ{|T&e3>whJMbTB6D~p1_oJ$c@?`uX9bTVq>vS z3RtlO7iMwAF15fiqE^RKpoS6PbzcH4t2kDafZV41PE^|NdW&5YhtORXKK2g^1fw03>c)l)Oa^nB54(Q<@33VvFOT`v=qS6I&c4*EEA zBqcR$`gvO==E_SI;M=w=_&n-^R&KD6$xx&<`XovASnNX$nJNU%{eNH(@I+Zx<}iVf z!Q8)Y*=2$4|3N1zBqM@KHI{%fXnEatzgPULXN$$4NW3yh^O#_CU0)02Pp(yyBrChX z>dT|Rdapq#hbrq+(ebA$;xvGqrB%6ewHr$ds{RIi7nk`Z@I8DVVR=~WBcU43 z&F)@=BG3`u9jjl&nh-i7vBr3K9_ub5+WHbUUqmE)IUZTStrt+cX93%*F1I|7=6PuG z$Rh3v;TqO=RL84>8{*Zm!~(jmAAu1)BFUYM@)|vc61$Qr@`K<{Af; z&tGyTgjeW_kcXCTN>$Cd(^oLDfaznqWBEncA?%LLE@F=FMZ8;Ju$B0D?>s)(`UeuZC? z{vgfs8@%cn`E=Q!r#&;WJYfvK#qX%}@5x67k3aJV&PYsjp!y9m3M*()z_K%=uqzb` z&cDIUk>D)nyoH*-BXmf?lMNnVBEkbp4gOdT;;m#Ne`;eb3;5!57?n^Efk56w-hbj; M2!Af;g1-R&27(x&oB#j- literal 0 HcmV?d00001 diff --git a/spzx-common/common-service/target/classes/com/atguigu/utils/InterceptorUtil.class b/spzx-common/common-service/target/classes/com/atguigu/utils/InterceptorUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..17b5ef00adc62101e9f85900219f78ed0ef002c1 GIT binary patch literal 2075 zcmb7F>vG#f6#mvuBF9nF#z|9BZq40x>Z(8s1;^pyCN#ylv`$>geJyVkrLyFa)@jQV z@Ru3*!3+<;@DG^Dg-&?@-h=in7|zO~QIZZ5erPXe&z}9xcP{$#@8ACbP=c360!a;B zI=a!raAu2dbHm}TWvtYUX#4A-57d?Tk8FL+?U)4gum?w zX>3Z_GH%dN?Fep*phd5V;&G(MB?|imhU`g=_Tg2G=@`cZLvJ8tRdU%5h@R|Xu9m_S zamQON$2PgNJ=fR@JXc-G>c}Z#`{@c%A%!c~9=1dZGYsA9YYT;IN~@sblF}MdTASSG zCdGN)HN6JWtl=`lbe!X$_4Naz={1C7Y?K@}8zN3?$Qd16MR$)$u0YVi-6G zoT8M{gF)NoPFt*O5aZ-PjGjoNs0_WW;~f-9IRxJjO8GgextdZg>6pX29p&p>@*^qJ z$#_Z`rTe~)50t-YG92ZJqT#xZc`OjWmXLRRn>b)NmyOWbp0P?<7ab738(7qEQ^!ZB zFpPx!ICh=axv{|msRCf!tgb9G=+aY*PSP?=#eMh}R?Mv^xzkw2iiTAkw-nUDki^3v zD1`SF%rvT4)3C0ihC2lLXb~+?JU#zm$FWXw z7Ef5B6#MxHs*_Q%1RBg3!HX-;PN=AsgxvHRt5g$BK?y;=Y0XY&Q4Abpb`&+@s}Uw& zPp2#xa)+q+kJ2GRh7VIpg&NUXI;oM_S>YM1!?}Gh8iv;e{sE$GEpM+zmfKTxm?RxP! zzCbd(JWsPa8~hbo=F~n;Cy>va%Z%*d#RF6Qq(myznun0V*_g>ee2K52-^axS9>KV~i`SM5q_BtAcW|w6aR;-7 znH{`G8fAvU9zNW`lERe?U7VsPK%Jr&7cf9PjbMz%am-)>mobT}n5NE>4e{nX&qsI( z2n04l*UPYIm7tqr*n~~Cx5%naXC28sk{tH$R5J8WkeWqb3eK}&jD{x3_e^RJw||4C P(6U%S`e@fASpx1q$_W~v literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/target/classes/com/atguigu/utils/StringEmptyUtil.class b/spzx-common/common-service/target/classes/com/atguigu/utils/StringEmptyUtil.class similarity index 100% rename from spzx-common/common-util/target/classes/com/atguigu/utils/StringEmptyUtil.class rename to spzx-common/common-service/target/classes/com/atguigu/utils/StringEmptyUtil.class diff --git a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/ExceptionConstant.java similarity index 91% rename from spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/ExceptionConstant.java index ce52e32..2dcd39e 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java +++ b/spzx-common/common-util/src/main/java/com/atguigu/constant/ExceptionConstant.java @@ -1,10 +1,10 @@ -package com.atguigu.exception; +package com.atguigu.constant; import lombok.Data; @Data -public class EnumException { +public class ExceptionConstant { public static final String USER_NOT_FOUND = "用户不存在"; public static final String USERNAME_IS_EMPTY = "用户名不能为空"; public static final String PASSWORD_ERROR = "密码错误"; diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java similarity index 100% rename from spzx-common/common-service/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/MessageConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/MessageConstant.java similarity index 100% rename from spzx-common/common-service/src/main/java/com/atguigu/constant/MessageConstant.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/MessageConstant.java diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/PasswordConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/PasswordConstant.java similarity index 100% rename from spzx-common/common-service/src/main/java/com/atguigu/constant/PasswordConstant.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/PasswordConstant.java diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/StatusConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/StatusConstant.java similarity index 100% rename from spzx-common/common-service/src/main/java/com/atguigu/constant/StatusConstant.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/StatusConstant.java diff --git a/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java b/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java index 5b5d2e0..3885860 100644 --- a/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java +++ b/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java @@ -1,12 +1,15 @@ package com.atguigu.context; +import com.atguigu.spzx.model.entity.system.SysUser; +import com.atguigu.spzx.model.entity.user.UserInfo; + public class BaseContext { public static ThreadLocal threadLocal = new ThreadLocal<>(); + public static ThreadLocal sysUserThreadLocal = new ThreadLocal<>(); + public static ThreadLocal userInfoThreadLocal = new ThreadLocal<>(); /** * 获取当前用户id - * - * @return 用户id */ public static Long getUserId() { return threadLocal.get(); @@ -14,17 +17,57 @@ public class BaseContext { /** * 设置用户id - * - * @param userId 用户id */ public static void setUserId(Long userId) { threadLocal.set(userId); } + /** + * 获取当前 系统用户实体类 + */ + public static SysUser getSysUser() { + return sysUserThreadLocal.get(); + } + + /** + * 设置当前 系统用户实体类 + */ + public static void setSysUser(SysUser sysUser) { + sysUserThreadLocal.set(sysUser); + } + + /** + * 获取当前 用户实体类 + */ + public static UserInfo getUserInfo() { + return userInfoThreadLocal.get(); + } + + /** + * 设置当前 用户实体类 + */ + public static void setUserInfo(UserInfo userInfo) { + userInfoThreadLocal.set(userInfo); + } + /** * 移出当前id */ - public static void removeCurrentId() { + public static void remove() { threadLocal.remove(); } + + /** + * 移出当前 系统用户实体类 + */ + public static void removeSysUser() { + sysUserThreadLocal.remove(); + } + + /** + * 移出当前 用户实体类 + */ + public static void removeUserInfo() { + userInfoThreadLocal.remove(); + } } diff --git a/spzx-common/common-util/src/main/java/com/atguigu/json/JacksonObjectMapper.java b/spzx-common/common-util/src/main/java/com/atguigu/json/JacksonObjectMapper.java new file mode 100644 index 0000000..b1abf54 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/json/JacksonObjectMapper.java @@ -0,0 +1,46 @@ +package com.atguigu.json; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + +import static com.atguigu.constant.LocalDateTimeConstant.*; +import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES; + +/** + * 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象 + * 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] + * 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] + */ +public class JacksonObjectMapper extends ObjectMapper { + public JacksonObjectMapper() { + super(); + // 收到未知属性时不报异常 + this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false); + + // 反序列化时,属性不存在的兼容处理 + this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + SimpleModule simpleModule = new SimpleModule() + .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) + .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))) + .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) + .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))); + + // 注册功能模块 例如,可以添加自定义序列化器和反序列化器 + this.registerModule(simpleModule); + } +} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java b/spzx-common/common-util/src/main/java/com/atguigu/lib/MD5.java similarity index 97% rename from spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java rename to spzx-common/common-util/src/main/java/com/atguigu/lib/MD5.java index 3071662..4241dee 100644 --- a/spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java +++ b/spzx-common/common-util/src/main/java/com/atguigu/lib/MD5.java @@ -1,4 +1,4 @@ -package com.atguigu.utils; +package com.atguigu.lib; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; diff --git a/spzx-common/common-util/src/main/java/com/atguigu/properties/InterceptorsProperties.java b/spzx-common/common-util/src/main/java/com/atguigu/properties/InterceptorsProperties.java new file mode 100644 index 0000000..08e3d82 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/properties/InterceptorsProperties.java @@ -0,0 +1,14 @@ +package com.atguigu.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.List; + +@Configuration +@ConfigurationProperties(prefix = "bunny.spzx") +@Data +public class InterceptorsProperties { + private List noAuthUrls; +} diff --git a/spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class b/spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class index bb2efeedb15b36ad36a4e2628d6b76e38fcf508d..b6e8f61a49e4905fc884e7f2a464cd35409319ac 100644 GIT binary patch literal 2050 zcmbVNX;0fg5Pi#K5(1>0r7cjdHk{_@1>vUUkkUhA`tzu_Uz7^_hvjh{`2?8F91u}4xWGc{!gw;{208><%D9A+O{u6| z5p?4&p?L-Ej8!7Nr0zvCc_bos87_8lNskks;ydq(5{`z zT5cgH1^i|4u`T*?R%MAV#|5^0n*rbJRR#0Zkv9J?QXoGasBVK56=+S^S^1`rIp9aI z4$|Cd)7`Ug44xGd@+UM*5GPqqEGX<~+~^gX6Hw*@!22s&V8OG!*@Fyr`t_ z(ew|l()ZGT9t)N9J=N%kNk0;xk7Kb+AJ_CtSgxe+)AR#Z>BmXGg4Ig;zH0Qdq@N4W zuVKARzozLqV~g}dx|D#Si$A1l=~dpV8-CUmH!CJ<`0`;I>;@sNxKGH{{TWt)p-B_ delta 375 zcmYk1PcH*e6vcmU%yg#HQB9;06xC9UKi!C3S5|xjd$U9`!M2I7F!3e2Qj)eI5o zoj7ksw2ODnd-vXR&V3KHfggVUyuJfHy2H>lK}eOAh}CRj&a+47tG19PS2y>`>0O#8 z*SBYv*|&S#H)mt>8p#%>oJH5%ptrQm*H(A0G?k9CtBLjgP&i&%3JOWr4DrX4UppIY;m_c?_Z;kgZ8) z>5D)%1%@Xh!wy#EsZX`>P#))SUSObZskIK|p~7#kPjElUk zA^k?h-L^uRD?<#-pF6F5Q(&Z<+XYJTe z*q>X0}=ofq4A?Cx4-6f)k$ep!|^ zz5x3I-*mQcY#4#wlg@V2@+YdUyBoC19eIx1q2r{>@gd8rhxun6_R$Mg?rh2!q9U8k z4O>~|EbdW6@61iMOKM(B3FKEC$MPyo>HC(S!AAnuPO0xDDuY#lOaE=k97GYo6~1c; zK0ksZ-&oF8nrXUN`VkpTA=!ZvQ5cCVVhWmGq^U^jh@L*V zLfjHhQfxsKV!_iq6P2Er{DXV<1V z+%aZ;NB^kt8_qsOerD7-#BgX~91!L-)0+|eG1CfWFiQ%<98Cr=!KjSmHSUrqVid1) zW#A2B4I`b&{)sagWdFiQ1_}OUj|I(8f}wxYVj;JQsiT(C3N)3@(02yyC~rE0W=JIt zkx49}f3`U4(0ok@gY$TyJZH>@0T?Tk80?1=C_stPm6mAzm;d?R`S%x_le&#OySfF2kHA_MG@kWiQcD tHRNI<25yH|cTna$$b05E&l73E$Gdosn=Chr{Qm$e+~v6X5LK*U^dE7m1Bn0t literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class b/spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class deleted file mode 100644 index 26fd447baa2a97f97e28f7abbd4180944be3f5b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2158 zcma)8OK%fb6#j1f7<)3ogTV=g@@N}qLK2)1FpmHQ8z`Z6pg2zInm(?_7kd(W#+n(U zM5?M*MXl6DS6#Fci>jNhsy-G0K}4l4`%u;X0ah%!>b9%WGcztp6c^R<9N)*e-#OoR z&dm77zwbQ&a2ke;9t0!=6@(CGP#5@3o@#KTmby||5SqgfKBXJFbA}->G(0CGf~W*p zK`)dI?ghuvjT%FwCY;Q&BW#A?&~P~u!4^82KYvt)imejj3btW8!!9q9Ewr|!JIkrO zux(xw=k=PfDQGXDOdGbt4NWji4CU7H@&io``%B#crrcot3I?!)2((*O?hs69sGM;r zsMx7smz#gM>cw+e?RFK|<2hxA=OpZ7IIuCr8MDyV>gO6YlQOP1FDz-I<>)3!xEIeU zc;3}7)*=<0g2T1NS&M5z!hVLGYsp`08;;%-PtL}v3NI)a!Z5=?lP`*_X=vP;rvNl^ z`8y=!sSf`qWdAFbe^v1c*bz#`AVyqrqYQ~|Le52T2q_8U3MO!PV^NoFM>MH^W}AwV z@FmyH)K#CQC3tfxf+Hm4g!hq=#xV)U6`a6HI-r@&6nAQEz1B{(9lc?vs1X<>VQAKJ ziy#klOK5YkWt_rk31<|%=+fBc3A!;4LiMz77}R)Kvr6@j<#a>Lw3`)S&GJfvR^mBR zF&I<79Py zC<}B=(@D*TVT&}Uy#9B6Nom`$3YO+_S!=6KsTumb*30vj$4$Z|374s&dEwN}>Q!#> zrf`HyAlT$ODb+tz-V8H5NBi8Wk=wQ|+YEBSY+IVRsJog*sHBJ7R47iyG#$#1xBP&1 zEDSEA0!>2I?Q(J-T+3QFZkmfCH5a#IQpQMxKV8gdoX93i|y9b z=JeOCY&bZ(+!9^f*E95=c^mGc4n&qW8U@`E)b8|<8z9b)KKlI8*B?Ck@ZKMveD>$+ zd-NS)49c`&2rJv*wk>Q4RPX(p2zTQlp~0}{>8@0KpETX4X?kwEp8%+v5GH$;W-0n* z^cy;O2kcuK^xzy>ciXiYvWoA3EY8y`>fWg2brxX16HqU$Jyg}zP${5}7fV5PqF4&4 zhl{1KI$119>XBk8q8=@l)UcW+E2+oGM%3eEqv{E=vdYQ!sui+|s*&wet7NyRf^1B^ zQOq4&fs~K;-9>C>Y;*;Qu@xlqqYu)-L@-oe4V?@H(&5pQQc`-5js()tL^Kik0^><3 z5uHrS$xtGEE6hd`vh=nZd*?`TZNZz~in1>s|9T&hQZjT0&wP^`S;4dSF<2V8hXcSJ z9Q@uB;3xb{kL`dbPlnzIt`u(){VEBxfIgVm0tYcH(cZh*iuV!6ZF+Nkh3#0S@ek-H zgaQ159rz7NPulB*aU1(^0T&??S`#nf5=E<`j%i#bnHT6@co{j0yM$TfF@qqX=WvDm zLKI^fS7|LwsByf4YhI=gQ6OKSNLLDh$M_hsgop%sNzF@88I94w$Wf}(X bI@un)L1f{E#9MUTAi5v{7<4R>2+4l{NmUUe diff --git a/spzx-manager/src/main/resources/application.yml b/spzx-manager/src/main/resources/application.yml index 8bc2f8d..2dcaf49 100644 --- a/spzx-manager/src/main/resources/application.yml +++ b/spzx-manager/src/main/resources/application.yml @@ -34,8 +34,8 @@ logging: mybatis: type-aliases-package: com.atguigu.spzx.model mapper-locations: classpath:mapper/*.xml - config-location: classpath:mybatis-config.xml -# configuration: -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl -# map-underscore-to-camel-case: true -# auto-mapping-behavior: full \ No newline at end of file + # config-location: classpath:mybatis-config.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + map-underscore-to-camel-case: true + auto-mapping-behavior: full \ No newline at end of file diff --git a/spzx-manager/target/classes/application.yml b/spzx-manager/target/classes/application.yml index 8bc2f8d..2dcaf49 100644 --- a/spzx-manager/target/classes/application.yml +++ b/spzx-manager/target/classes/application.yml @@ -34,8 +34,8 @@ logging: mybatis: type-aliases-package: com.atguigu.spzx.model mapper-locations: classpath:mapper/*.xml - config-location: classpath:mybatis-config.xml -# configuration: -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl -# map-underscore-to-camel-case: true -# auto-mapping-behavior: full \ No newline at end of file + # config-location: classpath:mybatis-config.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + map-underscore-to-camel-case: true + auto-mapping-behavior: full \ No newline at end of file -- 2.43.0 From d13bb2dbab0b7ef2c9762a885506a67a3915d5bc Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sat, 23 Mar 2024 14:42:38 +0800 Subject: [PATCH 14/15] =?UTF-8?q?feat(=E4=BF=AE=E6=94=B9):=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=AF=B7=E6=B1=82=E6=8E=92=E5=87=BA=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atguigu/config/WebMvcConfiguration.java | 4 +--- .../atguigu/config/WebMvcConfiguration.class | Bin 3999 -> 4197 bytes .../atguigu/constant/ExceptionConstant.class | Bin 0 -> 1423 bytes .../constant/LocalDateTimeConstant.class | Bin 0 -> 613 bytes .../atguigu/constant/MessageConstant.class | Bin 0 -> 1096 bytes .../atguigu/constant/PasswordConstant.class | Bin 0 -> 584 bytes .../com/atguigu/constant/StatusConstant.class | Bin 0 -> 522 bytes .../atguigu/json/JacksonObjectMapper.class | Bin 0 -> 2465 bytes .../target/classes/com/atguigu/lib/MD5.class | Bin 0 -> 2154 bytes .../src/main/resources/application-dev.yml | 1 + .../target/classes/application-dev.yml | 1 + 11 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 spzx-common/common-util/target/classes/com/atguigu/constant/ExceptionConstant.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/constant/LocalDateTimeConstant.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/constant/MessageConstant.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/constant/PasswordConstant.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/constant/StatusConstant.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/json/JacksonObjectMapper.class create mode 100644 spzx-common/common-util/target/classes/com/atguigu/lib/MD5.class diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java b/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java index 27d0e12..97a9c3c 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java @@ -45,10 +45,8 @@ public class WebMvcConfiguration extends WebMvcConfigurationSupport { protected void addInterceptors(InterceptorRegistry registry) { log.info("开始注册自定义拦截器..."); // 需要拦截的 - String[] addPathPatters = {"/admin/**"}; - registry.addInterceptor(loginAuthInterceptor).addPathPatterns(addPathPatters) + registry.addInterceptor(loginAuthInterceptor).addPathPatterns("/**") .excludePathPatterns(interceptorsProperties.getNoAuthUrls()); - System.out.println(interceptorsProperties.getNoAuthUrls()); } /** diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class b/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class index 188f997aaa044d874e1ac866e88ad8bc54c0f33c..5b7146fd156b2c27b2ae8c4e32374187dfd0b3c3 100644 GIT binary patch delta 1009 zcmZ9LZBr9h6vuy?2XT(I|*W1xuBvZB&fUYgjQz2$BWG7DIjP zBdy*lYF~7w-@xhwm9g)9QQ!Ire9^Drcs4NLbZ2(XIrpA(?r;C+?w_mvYcSuufB6s4 z#^Wbu$!}I;&}^}lZR#)oz9rk)q0?f~%1(_gHL2ICNi(6^1JgCTXxG_o(ZT2HUEsCZ zY0<@AjryE=7pzmSgUw62`BG<}#eRA;V(Q;uOf^@nGj?&n;vk1qwrb38@U=Rluhb5! z3H?x28oy4jdaE~uj^Z~-bKK$tCsno4)#!z%EzWROV`;zR9y~YTWZjfKJnW2U#Md{e zRYt6&b53K$fIVi%UFV7$Pv`Q(gHEUII(rKvdE3?L)7X$LT;H?EwYbq*0T0zM%q5)>iz2Q%VI*qCxU6%kyK>RM=j$;(|K zwa|#kYCd5ND_KhupR$9`D)se}4K4Hao_CX5((|^g1~m!1rg!+>YbyR#iTq-tf1`&J zFIeg$@QO7Vf4DB4ifnksmNLm`nKp4td&+!KCe`~y3Ve7p^+F08g=Q1AB!p!%5w=uF z8s-`=kVNJ1AB3cq<^0G`(%~Z}ji32N3OuGi=9!Wn(^nOyS<;!A5=T5l{OuLBHA+Vh?sIHF?lM9GRrubD5!y@Q! z+!e%o!ZSCLB&ViOi%L$(&hPU2xG%rugSnAP+$bsDQyn&*Gx`+WQ%kGhc=rPNejn3f LeLP&aEsx*>7?ZjF delta 950 zcmZvbYjaCc6o#MOljJ0ET11&)rdmpA8lvvis#aT68!bV_Jv2zPDV4V3mb%}s8{>=d z8O8>W?AHM(_dHL3#Gv<0(t?-58 z{e#JLI2iQdWv#_J)@yBSFWW$)Ns}e&W<`e{_q6M<>s46`ttOi-+GtmF%5tZk@6LL* zSZrmRe(jEwZKunm+akga#WMZTy-Y9mEb+F`Yq67EdbejZ=VLc}O!ivzu}?806(5a< z2jc0I;b`_;CNZcmhDI`q+1<`gawyz8oJ?n;nc+lyu+h(c4wxLYIK*Matp8{f<{7(U zAT3Rn7P>h7dyb_N$IVP*?OrcO^>zJZTf3>Q0%3A966UQ(~=vK3~v>(IHPgx{M z=`pjTbQ%K;nxrj;IHN0k_0xtqXOgiPVf0aA09K}Nd)%;KVqRzbieE=%U(3OQ+<)h%URIa@nV)KH0^DrT~P3KmjJ zH4Q9s>gR|WHvF!)XX9Lzp4Vj6tt7FVUgw70ROa_3GbA=lUFm>(n1#d^BM)Tkf1H6T;6pNE2yJhd|K(CRTWMuqBRK3 zO+hPXF}JuaM1Mgl?r>KMY{**@1u{pCO?kwj{6su9$?-_&6a6wdk>_MxXo}M%^w~rP zwpnw;d)op(O$2Bbv)bgW_P=OqiZnIc6E~FT%6Y&;p?M^=h3l~Q9uq6Ncu#ho$Wy{o m`I(*-?{|T7dEg6pKXCRPrj4Q;l)@bcq(nP~&x@bV3-|@_KcGJV diff --git a/spzx-common/common-util/target/classes/com/atguigu/constant/ExceptionConstant.class b/spzx-common/common-util/target/classes/com/atguigu/constant/ExceptionConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..2b0ed227e3fd9137a751c01204ca54a3455d0dcc GIT binary patch literal 1423 zcma)6O-~b16uqyV(y+oCT`y3ygB!r^X}YvKYy=(1ArSaXaf_N zt-#p90yP926T*GLlM%8h4?i{`CKUoTgHl#fZW1s%U2!Y01iF&)lt)lf1u0eVB;{;g z5wePhdyo{T6-mze^c@>m!DfepU?;#Pg)DckAY=$MJBN3h47l#HP)DF~kA~Alpl&3} zMG_%CmKfqkLVf}b27#!Old`D+0=0i_<3gq&vd~DNesgiDJiEHFHedSqqV#%+z#%FX z@&>s?Ae!KU;n*k(Ef`57mKNrbyY=Yn#@hPk`*m~= zo0;v!ms`amDpn{vibpY`#;TTc_`Knm@0QnKeu6-I`RT&O`rGXfb6dq3RIaYE-{wXQ z{F4M)E6hppVKuoU&P4)40iQP(;6n)?@8=SJo{Orz3wqI-g)^9~B7oJUxi8y~=Lxj! zE!{bg6H``-N^e)n&t}WB&uO*ZSH>rgi`ejCDJzBwQ)6N-CX8ipr(sx53YoZ&lPK0V z86_>{2{?!UZ;tTe)`)a=u!hLhpI;kNWLRV+E#`0xqKc553<}e_mm?@DX?Z*>4r`m zeiQy;I5SWW4!}u4WP%37O$OYI_^<)DB5pI_cEraF_&DMY1MWn8%79NJ?lR!B_+Mjp zpaxeLCh*{s;M3B*3S>o%)Qu~BO;-_Xn)tI^nYi!=_@j)s z4FpgZc5&P9_MLNYPW$=w{sG_?$1-Awr;tb^i8Y4Ym_KvH=B}l5hhx+58P;xuEBrf# z`1wUY1&N_-c#gt-D-c$o7@j-zx$7&cXK=g0eNz{XS)X+o3XNu~_NeNEMon)HTHOb& zrZeQ##h{))5w3O3keRFc+zw0$83y@({{V+I1DGh z1-)jy+iA@9kWionf9k5!>C)OOV|E#&$U8cdsCy%mA*%}4>;%rxoalULQzsu~(dQEp z@~oNgp9C3Ss{c=qGLd^;Ffq)Q2z^U`W_%S!i8G|=QvwO>V;wRWHi%+K6K^hYmUwH4 w^TgXryhBPB{tQ(2$U%u1NS5EgUL(sQ)$lbCCoyP5_?$!u2XtpRq#DD~H!|joJ^%m! literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/target/classes/com/atguigu/constant/MessageConstant.class b/spzx-common/common-util/target/classes/com/atguigu/constant/MessageConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..bd8cd10f1e721d9035a70ea3ecde8236d5f60b4c GIT binary patch literal 1096 zcma)*TTc^F5Xa|mkp)Y+h$x~ciU_Ez_e;Dan|5m&mR;;_L7p~C-P9$eO?vSi6U7)% zA1aEHK#VAAq+*CIpz`kL=x)oGFwS;cSbXwja(;9EXU>^_=KTJ%_6q=Rz||TkgYqh< za6l#OB2Yi7+*jz35)RVB$fz2K6WDcK3v2P41j@U*2djW0&=H7?(Mmj+(1Hm%5DCZP zN;ppUtFf38R9!_T;2dB?aY*pFW!C2td;}V~?doDYs)d8s2-KDi3@V|7NM?J;{9q}wnJIm8b@SmAfwmoDk?Ch;o*mjcPQe}mt+s^|7dG z*;3`-e%?%u>r1b(KR@5c3q!nR0tE-LKV$Y&Zf>E}pVKe0zQS#saLdb6a2V_4l8eUU zv?-if*MGhs&|FYSLLbY^f?tvakL+e7mV%?`gr&Bm`Hcx6*5^cYD#2V!@LrFWSGcWF%Khawo(2 zSjIgpvv<6rBvQ~zpjuCVE7{iIV{iLe(ejt=ACQJAIBPnWN*l`$(BEukE%$MaK!q!E zSH%rZ3#)u$Y($Mp%18(^ja($4ga(zUW^yrE5x=L!2y}A)Gn_bgHDV+Y4X7T?tl0F= z@b;R63hhvZzXPBaTA&(gfWU5~GH@U}ZCr=kVB<#QCL8ZX-e=?e$OmlPihRh%ZOBJ# z+>U(A#vRC=Ha>yeZQ~x~Q#L-0OxySjc0$bmj`19JL>CyKvL_8>xzOTyjOMl(FJN>O R)|GG(E+G-PjIj)^`~{LuHKqUn literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/target/classes/com/atguigu/constant/PasswordConstant.class b/spzx-common/common-util/target/classes/com/atguigu/constant/PasswordConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..075bc8b1917481483ab345a5181741ba9407d12f GIT binary patch literal 584 zcma)(OK;Oa6ot>EaTC&%mQX0q1&fM@P)0l#K#{B_m0GMMN=(Aen%ILg!SO_%F;#z7 zS4b@Q0sN?{*H&AquGk#i@6ODbt8@RJ{{91C7mpjLV5Np?6Ao4xHs|7};E70M-k;88 zXc<;NsZ`m|3@gu`k87wi?1Xy3g^hC+=RDM@u_Cp6AdETES+sZFAhS+)-~HMiU}Q6u#vd8hFP@A=lFK^Q>C;!Q-@JYIo?+|4<8X4-$8pELJFMdtLuY2~ z(tO}t8`BnvI?mJ3w964o2vig-XWHsunukB6<&pd@^27!+kw!)@WP84hX;{DirP~X- z-v$Rm*FWg@7}%jhA=M@)FTqgV(~)G@@Kh>$`C=+FUrZC~v^*V(WGpgO@OiUpXUZ@< z_5Ld=%AhgQc^1ljRaoA+o@Kj84Np*`Z2?u>#|<=Ss5PPrn#4D+@x~S2r1KVTU*6xM oiWU1Ny-Ny%Rw#t_q0;wlTw_X_K)UIFi4Teoet;h( z&Zb2X5qz1;nVG}PnfH&^Hvs22Frgu5K(~-bfuSXDGQ$XPsqATXg%ES8kWV{)2Jd!iJ(Vu6x5pr{0P01Vh;kBGFH$W0BnQ zaY#tbjXfTYcoL|53F`78m@yo?|5&HRP;7hQQWtX=r->(S0>y3rT>MO(k3+gxBfT}$ z)y)*u)v_7Fl<*+2D09d&^7)fzu*a;tMOKxS-6m@-8i-(rvLbfBhEKB!P}W~yJYhAL VIa|>%C>r%@HA3$rWRGGE`=6!sJO#1`+d-}Q4bC<*<3bUGIW|Mo8=bZDL*Za?ZfBp?%3EyiNV2Bo-n#pCk zVU-(Z(Xl zvSSV;7xHKt<}A8H62IERlICc5KO zQ3SV+i1yMOrqJzE2$fsqNS~&kOa}qGjryLRH*f)C3}a;>-v|?>jXYww7YS5*ERytJ z#HSiA8TbsB8ScDaJlp0+ezfE>ry*Ne^BC%pr$Id5aHxfi^+`m-RfhQh_iIk6Q59y^ zs@1C^=^u1lQ3ZdU;X;K!=cc4)=xq%RHyGAW)+}Gvg<0|3+qZ6-B~`_}@D5Gk4q=L6 z^d-G!lgZgq>FUPDVy&iQ8c_{120q6u!?lhd`;J@V(rhHeyRqq+qlCp!b_!YdJHeRU0JPi z&x-|>!4~yfx02ujI3|lR4PP*v>u`QO+%(){Sm`T!-Chl0kwNcdPR9aF4NGquRnt_% zgMN%EXs^)~h9SR37CleLvNE~$&YIsU#cXTB3RlM}OqI%q1~#zCaE4OZ`I+H)e~Ij< z=r@gz7?$2GTRrqThIMSIFs0sKj|zXco}>!VD84bU4O%v5T~W5wCOjG(47tD^aP-gM zQ1py^hR~{0q8&4muxycP)b@nC!}qEr3HxQ8F@WhY6Q#ude GyZ-_C{|tWs literal 0 HcmV?d00001 diff --git a/spzx-common/common-util/target/classes/com/atguigu/lib/MD5.class b/spzx-common/common-util/target/classes/com/atguigu/lib/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..ac439c501ae81c06bdfd975e9ad33c6224d606fa GIT binary patch literal 2154 zcma)8OK%fb6#j1f7<)3ogM$f%LTDRkLINfP%p*X-21=+MD2_v2)5rDrVozevSTkdk zNLAIUsFk|ts*6@)QFYT*)yE>B5T#O=eW+^x04o+J_j_>2#@0{;D zXJ-84-^;52&cKk-gMfsff)K(C>Kwn#Qw?s^QdcW;LUS0xr*%Vj&N2jsM`mS25S1V+ z=!LSuz2I27QDcbIgp*lxgv}5f9w}!c*g{A17mmqLu~kA`K|i)J?D8VnLTg*PvzW>Y z+vYWKL9Yp$g7y;1lwmvE&;-NyaBeLxKhWfeztkOI(has#RW~Y9Ni=d2l1SO z=Ux3`EmFZLI9!{bvA8BA>|@xumi+a$;pk2A5uPR;vJ3`4A!l+Abj3LoY$k`|kAtm9kf^i(#Sky(^5lyO}*`}f- ze93h)b?tNsWaa_U)1t)Qep<;0fQtA&01^` z;QnsuY%aBo(>NpHtb!L^68)Z>8?zu(Px*#HZI?BxRP9(!H^g+iSrOI@uQX^So-;Mx znB|u4&O3`ir>>L4iCmXlCmC3Ut_-zxT`Xkl+#=VWa+cbp;`ew@nKpZxRfgS9ZAe0y zqic#zYCa5`r#WTyziUe>+m2PRG?&R*OLfZ3(C4*Xp0_+^5-v-)Le&F zBU}Q(Cf7-)?Zf5GFe9_H&#fA{^>^83kPBwp(!?d*RWw2cJ>;fBaWbaqP=37S2ee~h za2XY75~^;8ll#zG*1B=qoEIrSdB5o|am_KUMTSq;w?)U%2ffUVYD3sVIn$hPw^YjH=$FxN z=)gU&Z)wnj^JLv^*Jj8nz5}wjK(nZOlakjtfc;KDy|ngFRaZi#fO@!C3aaD9Qb;{g zEQQsHVo6eu7E2NJSh1vr)iha2Jx(^Fo*)}lPm+~YPPSLAkX2NTY@b>syG0dbW9qG9 z?!XeHe7x^IV$%o5mXJ8Ogk*kfH62U@L-m!=sZbyt9y=u^rPXvKkd7vziO3f?oRkvL ziL{&yCBk>YY&0QDZ>zC)juzJzyy=}N`||Ox4-hFOL-+8^H@VRzJo^AcrO{>V2kzm( z_nrVh;b(ee2RwN)^fqv%c$4T?NuW9O!Ne9gh+%>D-o;kDk2vnqTk9)q!wQXmz;;3y zz%ST=-;ngAy-65%u@@I{2{NHI@e(dmv?}VD!WEKvj_!q*k)yZ^m_Z)X2oib@SII9# zF{W^h*207u$1Aw*W%>{W@&$@?r4V?Gk0DElNT3(g4GAiv5nVT^`S2Ge9#axDjksnI zuhO9qBLtUU39tF3_Db%ygz_B@#wYIM*b*k!+Qt1p0PG<(2G_NWf--K>dIz#h!vJ0< Z+k-cVEZmTIi>_Nl7bF0Kj(HLx`42Y%4=Vrw literal 0 HcmV?d00001 diff --git a/spzx-manager/src/main/resources/application-dev.yml b/spzx-manager/src/main/resources/application-dev.yml index 599866c..b494140 100644 --- a/spzx-manager/src/main/resources/application-dev.yml +++ b/spzx-manager/src/main/resources/application-dev.yml @@ -16,6 +16,7 @@ bunny: noAuthUrls: - /admin/system/index/login - /admin/system/index/generateValidateCode + - /v3/** # jackson: # date-format: yyyy-MM-dd HH:mm:ss # time-zone: GMT+8 \ No newline at end of file diff --git a/spzx-manager/target/classes/application-dev.yml b/spzx-manager/target/classes/application-dev.yml index 599866c..b494140 100644 --- a/spzx-manager/target/classes/application-dev.yml +++ b/spzx-manager/target/classes/application-dev.yml @@ -16,6 +16,7 @@ bunny: noAuthUrls: - /admin/system/index/login - /admin/system/index/generateValidateCode + - /v3/** # jackson: # date-format: yyyy-MM-dd HH:mm:ss # time-zone: GMT+8 \ No newline at end of file -- 2.43.0 From 8d13f48c70ec7b5bf6c92c0e5eb13c83f44a7560 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sat, 23 Mar 2024 14:53:44 +0800 Subject: [PATCH 15/15] =?UTF-8?q?feat(=E9=AA=8C=E8=AF=81):=20=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=8F=92=E4=BB=B6=E8=BE=93=E5=87=BAlogo=E5=88=86?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atguigu/config/ResourceConfiguration.java | 2 +- .../atguigu/config/WebMvcConfiguration.java | 6 +++--- .../com/atguigu/exception/BunnyException.java | 1 - .../handler/GlobalExceptionHandler.java | 13 ++++++------ .../interceptor/LoginAuthInterceptor.java | 19 +---------------- .../atguigu/config/RedisConfiguration.class | Bin 7362 -> 7022 bytes .../config/ResourceConfiguration.class | Bin 1589 -> 1586 bytes .../atguigu/config/WebMvcConfiguration.class | Bin 4197 -> 4211 bytes .../atguigu/exception/BunnyException.class | Bin 2008 -> 2008 bytes .../handler/GlobalExceptionHandler.class | Bin 4902 -> 5109 bytes .../interceptor/LoginAuthInterceptor.class | Bin 4977 -> 3465 bytes spzx-common/common-util/pom.xml | 5 ----- spzx-manager/Dockerfile | 20 ++++++++++++++++++ .../src/main/resources/application.yml | 1 - spzx-manager/target/classes/application.yml | 1 - 15 files changed, 32 insertions(+), 36 deletions(-) create mode 100644 spzx-manager/Dockerfile diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/ResourceConfiguration.java b/spzx-common/common-service/src/main/java/com/atguigu/config/ResourceConfiguration.java index d2999b0..af41f00 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/config/ResourceConfiguration.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/ResourceConfiguration.java @@ -8,7 +8,7 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry @Slf4j public class ResourceConfiguration extends WebMvcConfiguration { protected void addResourceHandlers(ResourceHandlerRegistry registry) { - log.info("ResourceConfiguration===>设置静态资源映射......"); + log.info("ResourceConfiguration===>设置静态资源映射..."); registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } diff --git a/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java b/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java index 97a9c3c..0998452 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java @@ -30,7 +30,7 @@ public class WebMvcConfiguration extends WebMvcConfigurationSupport { * @param registry 跨域注册表 */ protected void addCorsMappings(CorsRegistry registry) { - log.info("开始跨域注册表..."); + log.info("WebMvcConfiguration===>开始跨域注册表..."); registry.addMapping("/**")// 添加路径规则 .allowCredentials(true)// 是否允许在跨域的情况下传递Cookie .allowedOriginPatterns("*")// 允许请求来源的域规则 @@ -43,7 +43,7 @@ public class WebMvcConfiguration extends WebMvcConfigurationSupport { * @param registry InterceptorRegistry */ protected void addInterceptors(InterceptorRegistry registry) { - log.info("开始注册自定义拦截器..."); + log.info("WebMvcConfiguration===>开始注册自定义拦截器..."); // 需要拦截的 registry.addInterceptor(loginAuthInterceptor).addPathPatterns("/**") .excludePathPatterns(interceptorsProperties.getNoAuthUrls()); @@ -55,7 +55,7 @@ public class WebMvcConfiguration extends WebMvcConfigurationSupport { * @param converters 转换器 */ public void extendMessageConverters(List> converters) { - log.info("扩展消息转换器..."); + log.info("WebMvcConfiguration===>扩展消息转换器..."); // 创建一个消息转换器对象 MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); // 需要为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为json数据 diff --git a/spzx-common/common-service/src/main/java/com/atguigu/exception/BunnyException.java b/spzx-common/common-service/src/main/java/com/atguigu/exception/BunnyException.java index 8848d1a..62732c9 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/exception/BunnyException.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/exception/BunnyException.java @@ -11,7 +11,6 @@ import lombok.extern.slf4j.Slf4j; @ToString @Slf4j public class BunnyException extends RuntimeException { - Integer code;// 状态码 String message;// 描述信息 diff --git a/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java b/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java index d2dbe8c..202e696 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/handler/GlobalExceptionHandler.java @@ -20,7 +20,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(BunnyException.class) @ResponseBody public Result exceptionHandler(BunnyException exception) { - log.error("自定义异常信息:{}", exception.getMessage()); + log.error("GlobalExceptionHandler===>自定义异常信息:{}", exception.getMessage()); return Result.error(exception.getCode(), exception.getMessage()); } @@ -28,7 +28,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(RuntimeException.class) @ResponseBody public Result exceptionHandler(RuntimeException exception) { - log.error("运行时异常信息:{}", exception.getMessage()); + log.error("GlobalExceptionHandler===>运行时异常信息:{}", exception.getMessage()); return Result.error(500, "出错了啦"); } @@ -36,7 +36,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) @ResponseBody public Result error(Exception exception) { - log.error("系统异常信息:{}", exception.getMessage()); + log.error("GlobalExceptionHandler===>系统异常信息:{}", exception.getMessage()); return Result.error(exception.getMessage()); } @@ -44,14 +44,15 @@ public class GlobalExceptionHandler { @ExceptionHandler(ArithmeticException.class) @ResponseBody public Result error(ArithmeticException exception) { - log.error("特定异常信息:{}", exception.getMessage()); + log.error("GlobalExceptionHandler===>特定异常信息:{}", exception.getMessage()); return Result.error(null, exception.getMessage()); } // spring security异常 @ExceptionHandler(AccessDeniedException.class) @ResponseBody - public Result error(AccessDeniedException e) throws AccessDeniedException { + public Result error(AccessDeniedException exception) throws AccessDeniedException { + log.error("GlobalExceptionHandler===>spring security异常:{}", exception.getMessage()); return Result.error(ResultCodeEnum.PERMISSION); } @@ -59,7 +60,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(SQLIntegrityConstraintViolationException.class) @ResponseBody public Result exceptionHandler(SQLIntegrityConstraintViolationException exception) { - log.error("处理SQL异常:{}", exception.getMessage()); + log.error("GlobalExceptionHandler===>处理SQL异常:{}", exception.getMessage()); String message = exception.getMessage(); if (message.contains("Duplicate entry")) { // 截取用户名 diff --git a/spzx-common/common-service/src/main/java/com/atguigu/interceptor/LoginAuthInterceptor.java b/spzx-common/common-service/src/main/java/com/atguigu/interceptor/LoginAuthInterceptor.java index 1cb2fe2..73af3e9 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/interceptor/LoginAuthInterceptor.java +++ b/spzx-common/common-service/src/main/java/com/atguigu/interceptor/LoginAuthInterceptor.java @@ -3,8 +3,6 @@ package com.atguigu.interceptor; import com.alibaba.fastjson.JSON; import com.atguigu.context.BaseContext; import com.atguigu.spzx.model.entity.system.SysUser; -import com.atguigu.spzx.model.vo.result.Result; -import com.atguigu.spzx.model.vo.result.ResultCodeEnum; import com.atguigu.utils.InterceptorUtil; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -18,8 +16,6 @@ import org.springframework.lang.Nullable; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; -import java.io.IOException; -import java.io.PrintWriter; import java.util.concurrent.TimeUnit; @Configuration @@ -52,7 +48,7 @@ public class LoginAuthInterceptor implements HandlerInterceptor { // 将用户信息放到ThreadLocal中 SysUser sysUser = JSON.parseObject(userinfoString, SysUser.class); BaseContext.setSysUser(sysUser); - + // 更新Redis过期时间 redisTemplate.expire(token, 7, TimeUnit.DAYS); @@ -65,19 +61,6 @@ public class LoginAuthInterceptor implements HandlerInterceptor { */ @Override public void afterCompletion(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler, @Nullable Exception ex) throws Exception { - log.info("删除ThreadLocal..."); BaseContext.removeSysUser(); } - - // 响应208状态码给前端 - private void responseNoLoginInfo(HttpServletResponse response) { - Result result = Result.error(ResultCodeEnum.LOGIN_AUTH); - response.setCharacterEncoding("UTF-8"); - response.setContentType("text/html; charset=utf-8"); - try (PrintWriter writer = response.getWriter()) { - writer.print(JSON.toJSONString(result)); - } catch (IOException e) { - log.error("出错了===>{}", e.getMessage()); - } - } } diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/RedisConfiguration.class b/spzx-common/common-service/target/classes/com/atguigu/config/RedisConfiguration.class index 0fd0c6edd33f4b72630fd47a2850427606f9aaa3..7b1ee255b629cfcaeeae56dce46111ccb3109649 100644 GIT binary patch delta 1496 zcmY+E`*%}C5XV0^kKUVfleFR0@JQ2wAZ^+jK(GNy3ql_>P!XsBM5|P&w4xMLKn;qA zA1u<+_5H@T_<~l`NE8qi1ySU8&e6YsbNB~5&P__ed(PgSot^p4cV=hzZ0*(g-V6Vp zJOwP~(g|rWV~Vm6LrFI$X`OpWU^ukQwQw+%qn4q;udD=LD%u>5^hz@W~RZo-p-v}9o=1fJJ)w~@9ykv z@7lG^OC?d0Dn&Il2J=TlW&JVcn9Nno<9379qv}ceaKULS#sbA1)arF+qidnTJY5!; zto?;bpEHXJ;y6v}^cAzjsMpuLvvt^-7G7%L-6LOBB2l$viV6Hd?&IS*uvbdi}Sj&$vf#_fB$3lO%j2WTdGn-qREB?e&tR#pFJrw!*X779TLE6z|FjUOI4k=;R@jt%_}Q z8N_shD$`dAi}Z=YI{$XMO?niMu)`oOTXDTWHCi1!rr1fZKB$KMyLsH?3B{A_F=!Ux zQhmx-p$B{${rh;z^q<$YKA$l+=XohGUJnG; z%XXjQ5HIShfnHhkD+V~CyNbG9+RpumW4X`EATQh1d&QtZAN7~%`hZU-izgJm#_J|; zDBk2Py{EX%3i6KPUEUkMT%0Lz{bsQ2rVdj2uacPSqCt(MSEJ{JB2$7mq*VqlTpo4#C}VlVgxxne(zE%Nw6O4r?Fbp+ z6{M8!I4NbDA=<1+?y)5ER^N+NKFL%r%l~I5?}*^p**2>`GEK8EX zh78L_Xin4Go>R45SFK5Nx2W2)B$L67Ijei~R-)Q`U3I^0m8By&lH$QcbciiOJe=my zb`f_Cu{X_rTYNsv3+?tP9~R@mWHjg);U$}^BX{1_6pGv=b!(Qlu0>9KB@MK)RxbV~ z+N5FD$i-UAUb*r6X}_r-`bO($kvhN+oRUIrqK4C)5$ODp|0u9$b4P9$qD(C8&l3!0 zcy*Y!^L=omc}t~EKZ${ZpT~OT7g?W^Q7$JD=2y-ac!xdG`JF%NLzw&I-T1RU F^dBqDE$9FM delta 1771 zcmZvc`B#)>6vsdBFvB~`JHt4lfD7P=$xfuHfS{xajx3rAVwz4eDF&zvn$m)0ol}vT zJ?)#hw3jK=fKsNmn6_`WTm9BKozpq}1J-?KMzCexGw*Ysd%ySI@4e4`pFgIZDsi5@ zaO^lx&d*1jnOeGz&tN3U8s2cIb3tg^;!sCRu(hQt)S*$K_9T?#g*wV|8l32iHb^m% z$%3p7hS&WAt&^sqg2|ccmn4^76>66_Yt-*a@Hk9>`p>SR)e`pfE77qqpmLW*=Q zHz?+czKs@(X3u7-!Iex?T?vN^vzcK~!ZeMM;fpm#lZG2xI@dWVW2R2IK?Sokaft;^ zQM;@MJ(XOgGsj>qS8LQqO{;9@?3Gj*R5M?dCstV(XiQbV8e`N>hoKH7di?|_Z`bs7vB zS*9xVc6U9?4QyPiF*&NkD2HKhsu$65Z#bOz)X1QGI9%r5BW^U2B)!;U|HA>^AES2G^vTx#cgFD!v z+FgBWy2q`}7juTHGwyQraG%ajgI(-a=Z(7sy2s!FlxlaM@jS%CI*%AU%3~T+qCWke zWVO}PAh;(Cp5!TY&J&i+UV~@Yrxqo(Y6sNuq=0=t&zfz0PIyH{maqekqTxw>wAB%i&8e>cck!&K{NR;;x z*%isEncCcbG*e-rSKg)>CeSBuBL?7g-jJO}gnq11=L00j17(BgP5n4(^YbD&^9S+B z&KqHbh~05{l*p-~9ur~gu$Z22Qc8&COqb6PCSxZXH@T$BM>UZG3gsygq9&KjSiU$H z$;<#pg_E5r!t0o@9~6|yIHq}%ZVPXT%BBet%)7_J+nkWqtns9*8mD+i;+oa>i#1W! z;&=_Uxe+GR4KTUXnr6)(pdiAOg6J~6)Rs3uX__s<>C}GlRmM;s3F?v} zPe=hn#dVuEmc%ow`%^s4^XeHSAV*PCljo})q`t|wXn@82G(}j^7*(ylsJcGF8d0qs zq@~GsV-(dELy4;WqH3dw8f25i4AMhD@-=t4`T%YGDrqQ delta 19 bcmdnQvz2GUaz^vX6PZOP?v>woGm;emO5F#5 diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class b/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class index 5b7146fd156b2c27b2ae8c4e32374187dfd0b3c3..8b293efbd0d2adae27c558e8b13ff8830fcff703 100644 GIT binary patch delta 396 zcmZ{dO)Erk6vlsZ@4OjmbSIjPy2!#P3}qyDsH?1IHH*m-F-Dmw85?maDU6pf-pZ%A zu5KvGRu;a5g)Q02nNh4}@jw6bJm)#T^QM35q37@WN5J5+9D0iOW#(p5tFvYyKcCAM zm#0^9g}h-HN&DqWi4NBpItyx6t-I>H`aitRd*hd4E#gCwW3g)jTKtZ%LQm|5L6?O0 zfzByaYe~BpVwoBRtWj1S>o|&E#wPhUGGPAM+Eh)}SYNh1pscA?%n2|`Mq`Zw8^Y$s` zkx-OVUqikCCywOaNDl7q`@Zhq|N4If-U9BIuZJff$z|F7teCaeD^&^FRV}M2rtNpW z>!B7albNszvr>hb{Gx(ydTicWwxSDGE*ni3@^iVYt$RMz?p1U&kwva?8nJu4D*7Xx zQ<~vVr@}oq#BWJNDgm!K-i||py}0S4jTj;N2@|I%H1H!~gH72)#}+#%k~7(550!19 z4n;76_c^Gncqfa4B1>X0LbHtazh9ID ook*#i;-X5EoYrLzHp0+sxb9f8an>rSR-f;z5j|&3dOdmp-~ZS^H2?qr diff --git a/spzx-common/common-service/target/classes/com/atguigu/exception/BunnyException.class b/spzx-common/common-service/target/classes/com/atguigu/exception/BunnyException.class index bfc725603c1316fb1e10b2a98a443b908151f74a..4aa49a637907da8a58c3d1ead3fbc23a9e7b2d50 100644 GIT binary patch delta 75 zcmcb?e}jKR0V}T%11p0t0~dn`13!c4I@ykW76AGs4e|g0 diff --git a/spzx-common/common-service/target/classes/com/atguigu/handler/GlobalExceptionHandler.class b/spzx-common/common-service/target/classes/com/atguigu/handler/GlobalExceptionHandler.class index 471382fb9980ed0de2a812b0d9f94c31069360e1..77fa4b24fd304015769650051cd35bb75c587ccc 100644 GIT binary patch delta 1307 zcmZ{jNla5w6o&uXzSmb?9|elELa?HSf>NSYz=5=Y3ZgPN58wa-BFbbbA`Vm(XGQVi z0M6sWg#%4UB}8N5Mt5#??5-Ja+DT`Vl*@w!3g3a#=dx}NZGo<7fDL>_}yz@ZjsYxOoX*Qd1A z)wFvXe4U?1kA4mYe~bQd^OecnzP>#$zJ1_c|j ziN6;-F%=9fMg6=*!B%YJb}`3LrJx!+c!gNVYWW>;=9HZb%9k6DzutcMy?@}_)2A|a zp+UlK1$)pK_##G&y3`Ur$25Z{o6LHKT7Fk9=f4zNVAS-9nXkzhz@UWdYTX@M#$&l2u4*mg zrRK`ek+s2$$y&Zui<8Fkfh73QPW$#zmdGdoI%w#yADuK?$U8vG2P?s9DDe<|Qz3^n z$lHG)QwfstUr1LZh(7|PYYdWzBN}8~Y+6_+X#`0RgIGhISV??$B*@VSknRxVm9ato&%R%Hkv(%}U_Uoa_wnHMDN3!z~Pok2s z1gR)QCW?@aVy%@d;-w-MXK{{pWx|N_rH0noSAdxJC8d*?QdhHufJ#K0PM!A zeyN*Tr{1?Q$-4BpZ)v=DVQ_|zYr?ooXk!+>EOgR5qDc=9LOL=;?2)k-`*?x2QOcAN zf&C064&JX#Pg45io&tzwK zkABO>G6s2J^xfjvn;!$iOA`|kTsSA9T*i4+c)sa_bpk8r-`6E+M0D{;ZLB9$&K5$R zNEpPBh+*Zvr@SKM3mfI}MjIRBImWHpaRwXDH`@51F_u;GIb*oJit42YquGoLG|Q^2 z!$nk+#&8KW(4vz6GRBoEwh{!IEeOE|)jnL+t*iEc6_-& z1>X_~(i#BL;)ArQkRg-9{kL4(2(sM|V(~#N1aSv~+zbG5`yjWVLnW0im0Xp6h|@^( z!Z}HzfYp||N!jHG6@5?S}Ag)t4$ zoE0~N>X$R9>zy!prsj_G#fC(Pm$kfK%2y-1!kmnt*)Yt)!+5J^s> zTBRcl8Hl7O83QL0kclK@sj2KFUJOFfjUMt!fC2YN(ke0d(o3b9_JXO|pps>8Dk|Bf8MO a@~}8<4A3Av9@7}XGtwlIp5p~xBH|D99>lKz diff --git a/spzx-common/common-service/target/classes/com/atguigu/interceptor/LoginAuthInterceptor.class b/spzx-common/common-service/target/classes/com/atguigu/interceptor/LoginAuthInterceptor.class index 0a3455277aec188548a5b6d8ecbb0d53da1a23bf..09fccf0de9a59023fc1067317e9071aa88986a08 100644 GIT binary patch delta 679 zcmY+BYfBVS9L9e$JL|f`xYh<{MuFf3w31bWD1w402=Rqw7p+{Yam?1HowYT)?Ur4% zxAQ#$**DUQK7a&$mcBsroY`e%51jx1IsfbPaQ=?$o^%iX{rm-7=KG#oPLH}=+s$+%$kHyYXBw)MVI_ikG8L2hH}F*XCHUHjoI=k$ImWaG0U--SgW@5rZ< z*J@nu?Hhg8%E58gggxa^#dAvX7VErF&uaXmcc*4*FOrizMK`C(GsrMQ+BQsq5vHW! zI^)c8hB-xVD_Uey49@e43(5RBb;4$AzCj@`lbxHCiNx2$Dr}HaWvITY_UAPtHz1hS zf`SUFl28=o*KCpDP5kFbf96x}yXGHE)bk_z`qTT%6@S z`_IUi0BZ2ZaqmW#w-9sCreYQDwf=Th^m%Z9=veia7(A5MdS5)ESd@igGE@4 zb_EZrScA0!SLsF~ludOkSRbm_6A8@_a3<3oy1_6QO3)NTw6v$~G_V z#5xr*xCJH|T9@9VHE+(gW;LS_8afmtRCE$TAY|=zP7CztAw$b{r_4~3y)4z^T5Y;X~*npIRE){98wAm86VxqTzOEV0e9jvx?JIl%^ z+DB7|D`m2I6U|`{HWH$>Wm(m2MaaTb(5<3Jk`%Clo(iKbTSxvz+qapU#DIL8xx-O-8(T_bU_TpKNJsOWUcV{x3 zYgUW1cUveOd8LenP%H|pQ8-qxqOo>UOv{)_J?+7B0>$Tdj9l1%;LnlmH8nMhw`}!d zA6`)LB2Vsa&BErP>oNya}#elorL-v^20Z& zfXE;whz6YGe@OwYr??sa{0d*o7J1&u^e(Qx0krz>8^!|;CWuN12W0a;76pFbyr{(_ zRw4;okc+^vKASP=G}@7GtRr8(BWXR2ZNpWpJtfiq;@ zAGmVLs;K1*Pj`N;lNyf?=UuV9mc}~k*aw^cytg?RGqDwv}nt6+n|Pnb~9e~I3%%TIY`8$5r( zafgC^K3g;{VGG8CUvgK3kTaM?{uTP?4B?d%Xq9phwjAW00&krIzj7^h;J2}>_B-$| D{!PKP diff --git a/spzx-common/common-util/pom.xml b/spzx-common/common-util/pom.xml index 75ccf7e..a379e71 100644 --- a/spzx-common/common-util/pom.xml +++ b/spzx-common/common-util/pom.xml @@ -24,11 +24,6 @@ spzx-model 1.0-SNAPSHOT - - - - - org.springframework.boot diff --git a/spzx-manager/Dockerfile b/spzx-manager/Dockerfile new file mode 100644 index 0000000..421b7e4 --- /dev/null +++ b/spzx-manager/Dockerfile @@ -0,0 +1,20 @@ +FROM openjdk:18 + +#系统编码 +ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 + +# 设置时区,构建镜像时执行的命令 +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +RUN echo "Asia/Shanghai" > /etc/timezone + +# 设定工作目录 +WORKDIR /home/bunny + +# 复制jar包 +COPY target/sky-server-1.0-SNAPSHOT.jar /home/bunny/app.jar + +#启动容器时的进程 +ENTRYPOINT ["java","-jar","/home/bunny/app.jar"] + +#暴露 8080 端口 +EXPOSE 8080 \ No newline at end of file diff --git a/spzx-manager/src/main/resources/application.yml b/spzx-manager/src/main/resources/application.yml index 2dcaf49..6ee6c3b 100644 --- a/spzx-manager/src/main/resources/application.yml +++ b/spzx-manager/src/main/resources/application.yml @@ -25,7 +25,6 @@ logging: com.atguigu.mapper: debug com.atguigu.controller: info com.atguigu.service: info - com.github.pagehelper: debug pattern: dateformat: HH:mm:ss:SSS file: diff --git a/spzx-manager/target/classes/application.yml b/spzx-manager/target/classes/application.yml index 2dcaf49..6ee6c3b 100644 --- a/spzx-manager/target/classes/application.yml +++ b/spzx-manager/target/classes/application.yml @@ -25,7 +25,6 @@ logging: com.atguigu.mapper: debug com.atguigu.controller: info com.atguigu.service: info - com.github.pagehelper: debug pattern: dateformat: HH:mm:ss:SSS file: -- 2.43.0