diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/CommonStatusEnum.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/CommonStatusEnum.java similarity index 56% rename from common/common-framework/src/main/java/cn/iocoder/common/framework/constant/CommonStatusEnum.java rename to common/common-framework/src/main/java/cn/iocoder/common/framework/enums/CommonStatusEnum.java index 633a25c98..e9f0843bb 100644 --- a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/CommonStatusEnum.java +++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/CommonStatusEnum.java @@ -1,4 +1,4 @@ -package cn.iocoder.common.framework.constant; +package cn.iocoder.common.framework.enums; import cn.iocoder.common.framework.core.IntArrayValuable; @@ -17,11 +17,11 @@ public enum CommonStatusEnum implements IntArrayValuable { /** * 状态值 */ - private Integer value; + private final Integer value; /** * 状态名 */ - private String name; + private final String name; CommonStatusEnum(Integer value, String name) { this.value = value; @@ -32,29 +32,10 @@ public enum CommonStatusEnum implements IntArrayValuable { return value; } - public CommonStatusEnum setValue(Integer value) { - this.value = value; - return this; - } - public String getName() { return name; } - public CommonStatusEnum setName(String name) { - this.name = name; - return this; - } - - @Deprecated - public static boolean isValid(Integer status) { - if (status == null) { - return false; - } - return ENABLE.value.equals(status) - || DISABLE.value.equals(status); - } - @Override public int[] array() { return ARRAYS; diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/MallConstants.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/MallConstants.java similarity index 95% rename from common/common-framework/src/main/java/cn/iocoder/common/framework/constant/MallConstants.java rename to common/common-framework/src/main/java/cn/iocoder/common/framework/enums/MallConstants.java index 9994bff06..a32154ba4 100644 --- a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/MallConstants.java +++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/MallConstants.java @@ -1,4 +1,4 @@ -package cn.iocoder.common.framework.constant; +package cn.iocoder.common.framework.enums; /** * Mall 全局枚举 diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/ModuleErrorCodeInterval.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/ModuleErrorCodeInterval.java similarity index 94% rename from common/common-framework/src/main/java/cn/iocoder/common/framework/constant/ModuleErrorCodeInterval.java rename to common/common-framework/src/main/java/cn/iocoder/common/framework/enums/ModuleErrorCodeInterval.java index d4649b533..457fc0d6e 100644 --- a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/ModuleErrorCodeInterval.java +++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/ModuleErrorCodeInterval.java @@ -1,4 +1,4 @@ -package cn.iocoder.common.framework.constant; +package cn.iocoder.common.framework.enums; /** * 模块错误码区间 diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/SysErrorCodeEnum.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/SysErrorCodeEnum.java similarity index 92% rename from common/common-framework/src/main/java/cn/iocoder/common/framework/constant/SysErrorCodeEnum.java rename to common/common-framework/src/main/java/cn/iocoder/common/framework/enums/SysErrorCodeEnum.java index cdf3a8126..82af150b6 100644 --- a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/SysErrorCodeEnum.java +++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/SysErrorCodeEnum.java @@ -1,4 +1,4 @@ -package cn.iocoder.common.framework.constant; +package cn.iocoder.common.framework.enums; /** * 错误码枚举类 diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/UserTypeEnum.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/UserTypeEnum.java similarity index 69% rename from common/common-framework/src/main/java/cn/iocoder/common/framework/constant/UserTypeEnum.java rename to common/common-framework/src/main/java/cn/iocoder/common/framework/enums/UserTypeEnum.java index f763373bd..7dd694b24 100644 --- a/common/common-framework/src/main/java/cn/iocoder/common/framework/constant/UserTypeEnum.java +++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/enums/UserTypeEnum.java @@ -1,4 +1,4 @@ -package cn.iocoder.common.framework.constant; +package cn.iocoder.common.framework.enums; import cn.iocoder.common.framework.core.IntArrayValuable; @@ -17,11 +17,11 @@ public enum UserTypeEnum implements IntArrayValuable { /** * 类型 */ - private Integer value; + private final Integer value; /** * 类型名 */ - private String name; + private final String name; UserTypeEnum(Integer value, String name) { this.value = value; @@ -32,20 +32,10 @@ public enum UserTypeEnum implements IntArrayValuable { return value; } - public UserTypeEnum setValue(Integer value) { - this.value = value; - return this; - } - public String getName() { return name; } - public UserTypeEnum setName(String name) { - this.name = name; - return this; - } - @Override public int[] array() { return ARRAYS; diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/util/MallUtils.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/util/MallUtils.java index 09b23a4be..d28e3e319 100644 --- a/common/common-framework/src/main/java/cn/iocoder/common/framework/util/MallUtils.java +++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/util/MallUtils.java @@ -1,6 +1,6 @@ package cn.iocoder.common.framework.util; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import org.apache.skywalking.apm.toolkit.trace.TraceContext; diff --git a/common/mall-spring-boot-starter-web/src/main/java/cn/iocoder/mall/web/core/handler/GlobalExceptionHandler.java b/common/mall-spring-boot-starter-web/src/main/java/cn/iocoder/mall/web/core/handler/GlobalExceptionHandler.java index 5dd933263..69abb6e3b 100644 --- a/common/mall-spring-boot-starter-web/src/main/java/cn/iocoder/mall/web/core/handler/GlobalExceptionHandler.java +++ b/common/mall-spring-boot-starter-web/src/main/java/cn/iocoder/mall/web/core/handler/GlobalExceptionHandler.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.web.core.handler; -import cn.iocoder.common.framework.constant.SysErrorCodeEnum; +import cn.iocoder.common.framework.enums.SysErrorCodeEnum; import cn.iocoder.common.framework.exception.ServiceException; import cn.iocoder.common.framework.util.ExceptionUtil; import cn.iocoder.common.framework.util.HttpUtil; diff --git a/demo/demo-business/src/main/java/cn/iocoder/mall/demo/business/service/DemoOrderServiceImpl.java b/demo/demo-business/src/main/java/cn/iocoder/mall/demo/business/service/DemoOrderServiceImpl.java index 1cfa589a3..10282d5c5 100644 --- a/demo/demo-business/src/main/java/cn/iocoder/mall/demo/business/service/DemoOrderServiceImpl.java +++ b/demo/demo-business/src/main/java/cn/iocoder/mall/demo/business/service/DemoOrderServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.demo.business.service; -import cn.iocoder.common.framework.constant.DeletedStatusEnum; +import cn.iocoder.common.framework.enums.DeletedStatusEnum; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.mall.demo.business.api.DemoOrderService; import cn.iocoder.mall.demo.business.api.DemoProductService; diff --git a/order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/ErrorCodeInterval.java b/order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/ErrorCodeInterval.java index 0ab045ea9..7c0675292 100644 --- a/order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/ErrorCodeInterval.java +++ b/order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/ErrorCodeInterval.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.order.biz.enums.order; -import cn.iocoder.common.framework.constant.ModuleErrorCodeInterval; +import cn.iocoder.common.framework.enums.ModuleErrorCodeInterval; /** * 错误码区间 diff --git a/order/order-rest/src/main/java/cn/iocoder/mall/order/rest/controller/comment/OrderCommentReplyController.java b/order/order-rest/src/main/java/cn/iocoder/mall/order/rest/controller/comment/OrderCommentReplyController.java index f5e927865..15fe5515e 100644 --- a/order/order-rest/src/main/java/cn/iocoder/mall/order/rest/controller/comment/OrderCommentReplyController.java +++ b/order/order-rest/src/main/java/cn/iocoder/mall/order/rest/controller/comment/OrderCommentReplyController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.order.rest.controller.comment; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/order/order-rest/src/main/java/cn/iocoder/mall/order/rest/controller/comment/UsersOrderCommentController.java b/order/order-rest/src/main/java/cn/iocoder/mall/order/rest/controller/comment/UsersOrderCommentController.java index 16a45a21e..9570cdd19 100644 --- a/order/order-rest/src/main/java/cn/iocoder/mall/order/rest/controller/comment/UsersOrderCommentController.java +++ b/order/order-rest/src/main/java/cn/iocoder/mall/order/rest/controller/comment/UsersOrderCommentController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.order.rest.controller.comment; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.common.framework.vo.PageResult; import cn.iocoder.mall.order.biz.dto.comment.OrderCommentPageDTO; diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/ErrorCodeInterval.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/ErrorCodeInterval.java index 3a885e707..55380992a 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/ErrorCodeInterval.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/ErrorCodeInterval.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.order.api.constant; -import cn.iocoder.common.framework.constant.ModuleErrorCodeInterval; +import cn.iocoder.common.framework.enums.ModuleErrorCodeInterval; /** * 错误码区间 diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/CartServiceImpl.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/CartServiceImpl.java index bc4056b8d..bb62f7728 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/CartServiceImpl.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/CartServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.order.biz.service; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.mall.order.api.CartService; import cn.iocoder.mall.order.api.bo.CalcOrderPriceBO; diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderLogisticsServiceImpl.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderLogisticsServiceImpl.java index 170d43ba4..6630ad288 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderLogisticsServiceImpl.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderLogisticsServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.order.biz.service; -import cn.iocoder.common.framework.constant.DeletedStatusEnum; +import cn.iocoder.common.framework.enums.DeletedStatusEnum; import cn.iocoder.common.framework.util.DateUtil; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.vo.CommonResult; diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnServiceImpl.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnServiceImpl.java index cc456a7d8..73289f36b 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnServiceImpl.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.order.biz.service; -import cn.iocoder.common.framework.constant.DeletedStatusEnum; +import cn.iocoder.common.framework.enums.DeletedStatusEnum; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.system.api.DataDictService; diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderServiceImpl.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderServiceImpl.java index 87a23ba3d..ade3d8188 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderServiceImpl.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.order.biz.service; -import cn.iocoder.common.framework.constant.DeletedStatusEnum; +import cn.iocoder.common.framework.enums.DeletedStatusEnum; import cn.iocoder.common.framework.util.DateUtil; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.vo.CommonResult; diff --git a/pay/pay-service-impl/src/main/java/cn/iocoder/mall/pay/biz/service/PayAppServiceImpl.java b/pay/pay-service-impl/src/main/java/cn/iocoder/mall/pay/biz/service/PayAppServiceImpl.java index fcd524050..16e9ed4dc 100644 --- a/pay/pay-service-impl/src/main/java/cn/iocoder/mall/pay/biz/service/PayAppServiceImpl.java +++ b/pay/pay-service-impl/src/main/java/cn/iocoder/mall/pay/biz/service/PayAppServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.pay.biz.service; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.mall.pay.api.constant.PayErrorCodeEnum; import cn.iocoder.mall.pay.biz.dao.PayAppMapper; diff --git a/product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/attr/ProductAttrService.java b/product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/attr/ProductAttrService.java index 32ade77fa..a2c965f8e 100644 --- a/product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/attr/ProductAttrService.java +++ b/product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/attr/ProductAttrService.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.product.biz.service.attr; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.validator.InEnum; import cn.iocoder.common.framework.vo.PageResult; import cn.iocoder.mall.product.biz.bo.attr.ProductAttrBO; diff --git a/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/controller/category/AdminsProductCategoryController.java b/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/controller/category/AdminsProductCategoryController.java index 77cb69d27..278e6a287 100644 --- a/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/controller/category/AdminsProductCategoryController.java +++ b/product/product-rest/src/main/java/cn/iocoder/mall/product/rest/controller/category/AdminsProductCategoryController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.product.rest.controller.category; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.product.biz.bo.category.ProductCategoryBO; import cn.iocoder.mall.product.biz.dto.category.ProductCategoryAddDTO; diff --git a/product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductAttrService.java b/product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductAttrService.java index afad70ff6..286de763d 100644 --- a/product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductAttrService.java +++ b/product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductAttrService.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.product.api; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.validator.InEnum; import cn.iocoder.mall.product.api.bo.ProductAttrBO; import cn.iocoder.mall.product.api.bo.ProductAttrPageBO; diff --git a/product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductCategoryService.java b/product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductCategoryService.java index 695ee8c45..97d9a534f 100644 --- a/product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductCategoryService.java +++ b/product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductCategoryService.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.product.api; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.validator.InEnum; import cn.iocoder.mall.product.api.bo.ProductCategoryBO; import cn.iocoder.mall.product.api.dto.ProductCategoryAddDTO; diff --git a/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/BannerDO.java b/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/BannerDO.java index 49f4091c3..7d3ce53a9 100644 --- a/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/BannerDO.java +++ b/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/BannerDO.java @@ -34,7 +34,7 @@ public class BannerDO extends DeletableDO { /** * 状态 * - * {@link cn.iocoder.common.framework.constant.CommonStatusEnum} + * {@link cn.iocoder.common.framework.enums.CommonStatusEnum} */ private Integer status; /** diff --git a/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/service/banner/BannerService.java b/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/service/banner/BannerService.java index c526c9339..d76a27e19 100644 --- a/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/service/banner/BannerService.java +++ b/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/service/banner/BannerService.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.biz.service.banner; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.validator.InEnum; import cn.iocoder.common.framework.vo.PageResult; import cn.iocoder.mall.promotion.biz.bo.banner.BannerListBO; diff --git a/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/service/banner/BannerServiceImpl.java b/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/service/banner/BannerServiceImpl.java index 830a9fe7f..81f58d114 100644 --- a/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/service/banner/BannerServiceImpl.java +++ b/promotion/promotion-biz/src/main/java/cn/iocoder/mall/promotion/biz/service/banner/BannerServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.biz.service.banner; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.vo.PageResult; import cn.iocoder.mall.mybatis.enums.DeletedStatusEnum; diff --git a/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/BannerService.java b/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/BannerService.java index 118e6eca4..bf3a05e9f 100644 --- a/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/BannerService.java +++ b/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/BannerService.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.api; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.validator.InEnum; import cn.iocoder.mall.promotion.api.bo.BannerBO; import cn.iocoder.mall.promotion.api.bo.BannerPageBO; diff --git a/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/ProductRecommendService.java b/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/ProductRecommendService.java index 8ecc22472..d173ebc3b 100644 --- a/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/ProductRecommendService.java +++ b/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/ProductRecommendService.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.api; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.exception.ServiceException; import cn.iocoder.common.framework.validator.InEnum; import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO; diff --git a/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/bo/ProductRecommendBO.java b/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/bo/ProductRecommendBO.java index 6357d7c3a..1a25869cc 100644 --- a/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/bo/ProductRecommendBO.java +++ b/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/bo/ProductRecommendBO.java @@ -35,7 +35,7 @@ public class ProductRecommendBO implements Serializable { /** * 状态 * - * {@link cn.iocoder.common.framework.constant.CommonStatusEnum} + * {@link cn.iocoder.common.framework.enums.CommonStatusEnum} */ private Integer status; /** diff --git a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/BannerDO.java b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/BannerDO.java index 49f4091c3..7d3ce53a9 100644 --- a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/BannerDO.java +++ b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/BannerDO.java @@ -34,7 +34,7 @@ public class BannerDO extends DeletableDO { /** * 状态 * - * {@link cn.iocoder.common.framework.constant.CommonStatusEnum} + * {@link cn.iocoder.common.framework.enums.CommonStatusEnum} */ private Integer status; /** diff --git a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/ProductRecommendDO.java b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/ProductRecommendDO.java index 0294450ab..094f3116b 100644 --- a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/ProductRecommendDO.java +++ b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/ProductRecommendDO.java @@ -35,7 +35,7 @@ public class ProductRecommendDO extends DeletableDO { /** * 状态 * - * {@link cn.iocoder.common.framework.constant.CommonStatusEnum} + * {@link cn.iocoder.common.framework.enums.CommonStatusEnum} */ private Integer status; /** diff --git a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/BannerServiceImpl.java b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/BannerServiceImpl.java index 0c1f6d867..283a7b565 100644 --- a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/BannerServiceImpl.java +++ b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/BannerServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.biz.service; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.mall.mybatis.enums.DeletedStatusEnum; import cn.iocoder.mall.promotion.api.BannerService; diff --git a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/CouponServiceImpl.java b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/CouponServiceImpl.java index 2c30b132b..53928c5f3 100644 --- a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/CouponServiceImpl.java +++ b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/CouponServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.biz.service; -import cn.iocoder.common.framework.constant.SysErrorCodeEnum; +import cn.iocoder.common.framework.enums.SysErrorCodeEnum; import cn.iocoder.common.framework.util.DateUtil; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.util.StringUtil; diff --git a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/ProductRecommendServiceImpl.java b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/ProductRecommendServiceImpl.java index 4e0a728f6..9d441de00 100644 --- a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/ProductRecommendServiceImpl.java +++ b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/ProductRecommendServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.biz.service; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.mall.mybatis.enums.DeletedStatusEnum; import cn.iocoder.mall.product.rpc.api.ProductSpuRpc; diff --git a/promotion/promotion-start/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersBannerController.java b/promotion/promotion-start/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersBannerController.java index 68619434a..cdde1f7bd 100644 --- a/promotion/promotion-start/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersBannerController.java +++ b/promotion/promotion-start/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersBannerController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.application.controller.users; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.promotion.api.BannerService; import cn.iocoder.mall.promotion.api.bo.BannerBO; diff --git a/promotion/promotion-start/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersProductRecommendController.java b/promotion/promotion-start/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersProductRecommendController.java index e9bf154b0..2029fc517 100644 --- a/promotion/promotion-start/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersProductRecommendController.java +++ b/promotion/promotion-start/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersProductRecommendController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.promotion.application.controller.users; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.product.api.ProductSpuService; import cn.iocoder.mall.product.api.bo.ProductSpuBO; diff --git a/search/search-rest/src/main/java/cn/iocoder/mall/search/rest/controller/user/UsersProductSearchController.java b/search/search-rest/src/main/java/cn/iocoder/mall/search/rest/controller/user/UsersProductSearchController.java index 9a44420be..899801fca 100644 --- a/search/search-rest/src/main/java/cn/iocoder/mall/search/rest/controller/user/UsersProductSearchController.java +++ b/search/search-rest/src/main/java/cn/iocoder/mall/search/rest/controller/user/UsersProductSearchController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.search.rest.controller.user; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.util.StringUtil; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.common.framework.vo.SortingField; diff --git a/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/OAuth2Rpc.java b/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/OAuth2Rpc.java index fcfacb25d..6d509fb63 100644 --- a/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/OAuth2Rpc.java +++ b/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/OAuth2Rpc.java @@ -1,4 +1,16 @@ package cn.iocoder.mall.systemservice.rpc.oauth; +import cn.iocoder.common.framework.vo.CommonResult; +import cn.iocoder.mall.systemservice.rpc.oauth.dto.OAuth2CreateAccessTokenDTO; +import cn.iocoder.mall.systemservice.rpc.oauth.dto.OAuth2RefreshAccessTokenDTO; +import cn.iocoder.mall.systemservice.rpc.oauth.vo.OAuth2AccessTokenVO; + public interface OAuth2Rpc { + + CommonResult createAccessToken(OAuth2CreateAccessTokenDTO createAccessTokenDTO); + + CommonResult checkAccessToken(String accessToken); + + CommonResult refreshAccessToken(OAuth2RefreshAccessTokenDTO refreshAccessTokenDTO); + } diff --git a/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/dto/OAuth2CreateAccessTokenDTO.java b/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/dto/OAuth2CreateAccessTokenDTO.java new file mode 100644 index 000000000..af75a8b1c --- /dev/null +++ b/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/dto/OAuth2CreateAccessTokenDTO.java @@ -0,0 +1,28 @@ +package cn.iocoder.mall.systemservice.rpc.oauth.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * OAuth2.0 访问令牌创建 DTO + */ +@Data +@Accessors(chain = true) +public class OAuth2CreateAccessTokenDTO implements Serializable { + + /** + * 用户编号 + */ + private Integer userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 创建 IP + */ + private String createIp; + +} diff --git a/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/dto/OAuth2RefreshAccessTokenDTO.java b/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/dto/OAuth2RefreshAccessTokenDTO.java new file mode 100644 index 000000000..bb4cccb6b --- /dev/null +++ b/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/dto/OAuth2RefreshAccessTokenDTO.java @@ -0,0 +1,24 @@ +package cn.iocoder.mall.systemservice.rpc.oauth.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * OAuth2.0 访问令牌创建 DTO + */ +@Data +@Accessors(chain = true) +public class OAuth2RefreshAccessTokenDTO implements Serializable { + + /** + * 刷新令牌 + */ + private String refreshToken; + /** + * 创建 IP + */ + private String createIp; + +} diff --git a/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/vo/OAuth2AccessTokenVO.java b/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/vo/OAuth2AccessTokenVO.java new file mode 100644 index 000000000..9b8c5d020 --- /dev/null +++ b/system-service-project/system-service-api/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/vo/OAuth2AccessTokenVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.mall.systemservice.rpc.oauth.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * OAuth2.0 访问令牌 VO + */ +@Data +@Accessors(chain = true) +public class OAuth2AccessTokenVO implements Serializable { + + /** + * 访问令牌 + */ + private String accessToken; + /** + * 刷新令牌 + */ + private String refreshToken; + /** + * 用户编号 + */ + private Integer userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 过期时间 + */ + private Date expiresTime; + + +} diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/convert/oauth/OAuth2Convert.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/convert/oauth/OAuth2Convert.java new file mode 100644 index 000000000..54486a8af --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/convert/oauth/OAuth2Convert.java @@ -0,0 +1,20 @@ +package cn.iocoder.mall.systemservice.convert.oauth; + +import cn.iocoder.mall.systemservice.dal.mysql.dataobject.oauth.OAuth2AccessTokenDO; +import cn.iocoder.mall.systemservice.rpc.oauth.vo.OAuth2AccessTokenVO; +import cn.iocoder.mall.systemservice.service.oauth.bo.OAuth2AccessTokenBO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface OAuth2Convert { + + OAuth2Convert INSTANCE = Mappers.getMapper(OAuth2Convert.class); + + @Mapping(source = "id", target = "accessToken") + OAuth2AccessTokenBO convert(OAuth2AccessTokenDO bean); + + OAuth2AccessTokenVO convert(OAuth2AccessTokenBO bean); + +} diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/convert/package-info.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/convert/package-info.java new file mode 100644 index 000000000..c57c3b722 --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/convert/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.mall.systemservice.convert; diff --git a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/oauth2/OAuth2AccessTokenDO.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/oauth/OAuth2AccessTokenDO.java similarity index 65% rename from system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/oauth2/OAuth2AccessTokenDO.java rename to system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/oauth/OAuth2AccessTokenDO.java index dfd70b1fd..a5baa0f6c 100644 --- a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/oauth2/OAuth2AccessTokenDO.java +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/oauth/OAuth2AccessTokenDO.java @@ -1,7 +1,7 @@ -package cn.iocoder.mall.system.biz.dataobject.oauth2; +package cn.iocoder.mall.systemservice.dal.mysql.dataobject.oauth; +import cn.iocoder.common.framework.enums.UserTypeEnum; import cn.iocoder.mall.mybatis.dataobject.BaseDO; -import cn.iocoder.mall.system.biz.dataobject.account.AccountDO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -13,6 +13,9 @@ import java.util.Date; /** * OAuth2 访问令牌 + * + * idx_userId 索引:对应 {@link #userId} 字段 + * idx_refreshToken 索引:对应 {@link #refreshToken} 字段 */ @TableName("oauth2_access_token") @Data @@ -25,25 +28,29 @@ public class OAuth2AccessTokenDO extends BaseDO { */ @TableId(type = IdType.INPUT) private String id; + /** + * 用户编号 + */ + private Integer userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; /** * 刷新令牌 * * 关联 {@link OAuth2RefreshTokenDO#getId()} */ private String refreshToken; - /** - * 账号编号 - * - * 关联 {@link AccountDO#getId()} - */ - private Integer accountId; /** * 过期时间 */ private Date expiresTime; /** - * 是否有效 + * 创建 IP */ - private Boolean valid; + private String createIp; } diff --git a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/oauth2/OAuth2RefreshTokenDO.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/oauth/OAuth2RefreshTokenDO.java similarity index 56% rename from system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/oauth2/OAuth2RefreshTokenDO.java rename to system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/oauth/OAuth2RefreshTokenDO.java index 56358d1c5..bf8d3adc1 100644 --- a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/oauth2/OAuth2RefreshTokenDO.java +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/oauth/OAuth2RefreshTokenDO.java @@ -1,7 +1,7 @@ -package cn.iocoder.mall.system.biz.dataobject.oauth2; +package cn.iocoder.mall.systemservice.dal.mysql.dataobject.oauth; -import cn.iocoder.mall.mybatis.dataobject.BaseDO; -import cn.iocoder.mall.system.biz.dataobject.account.AccountDO; +import cn.iocoder.common.framework.enums.UserTypeEnum; +import cn.iocoder.mall.mybatis.dataobject.DeletableDO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -14,13 +14,13 @@ import java.util.Date; /** * OAuth2 刷新令牌 * - * idx_uid + * idx_userId 索引:对应 {@link #userId} 字段 */ @TableName("oauth2_refresh_token") @Data @EqualsAndHashCode(callSuper = true) @Accessors(chain = true) -public class OAuth2RefreshTokenDO extends BaseDO { +public class OAuth2RefreshTokenDO extends DeletableDO { /** * 刷新令牌 @@ -28,18 +28,22 @@ public class OAuth2RefreshTokenDO extends BaseDO { @TableId(type = IdType.INPUT) private String id; /** - * 账号编号 - * - * 关联 {@link AccountDO#getId()} + * 用户编号 */ - private Integer accountId; + private Integer userId; /** - * 是否有效 + * 用户类型 + * + * 枚举 {@link UserTypeEnum} */ - private Boolean valid; + private Integer userType; /** * 过期时间 */ private Date expiresTime; + /** + * 创建 IP + */ + private String createIp; } diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/package-info.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/package-info.java new file mode 100644 index 000000000..d1cbe1201 --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/dataobject/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.mall.systemservice.dal.mysql.dataobject; diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/oauth/OAuth2AccessTokenMapper.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/oauth/OAuth2AccessTokenMapper.java new file mode 100644 index 000000000..6569df688 --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/oauth/OAuth2AccessTokenMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.mall.systemservice.dal.mysql.mapper.oauth; + +import cn.iocoder.mall.systemservice.dal.mysql.dataobject.oauth.OAuth2AccessTokenDO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +@Repository +public interface OAuth2AccessTokenMapper extends BaseMapper { + + default int deleteByUserIdAndUserType(Integer userId, Integer userType) { + return delete(new QueryWrapper() + .eq("user_id", userId).eq("user_type", userType)); + } + + default int deleteByRefreshToken(String refreshToken) { + return delete(new QueryWrapper().eq("refresh_token", refreshToken)); + } + +} diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/oauth/OAuth2RefreshTokenMapper.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/oauth/OAuth2RefreshTokenMapper.java new file mode 100644 index 000000000..0e73588ca --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/oauth/OAuth2RefreshTokenMapper.java @@ -0,0 +1,16 @@ +package cn.iocoder.mall.systemservice.dal.mysql.mapper.oauth; + +import cn.iocoder.mall.systemservice.dal.mysql.dataobject.oauth.OAuth2RefreshTokenDO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +@Repository +public interface OAuth2RefreshTokenMapper extends BaseMapper { + + default int deleteByUserIdAndUserType(Integer userId, Integer userType) { + return delete(new QueryWrapper() + .eq("user_id", userId).eq("user_type", userType)); + } + +} diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/package-info.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/package-info.java new file mode 100644 index 000000000..4b7810037 --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/dal/mysql/mapper/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.mall.systemservice.dal.mysql.mapper; diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/manager/oauth/OAuth2Manager.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/manager/oauth/OAuth2Manager.java new file mode 100644 index 000000000..45d71546c --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/manager/oauth/OAuth2Manager.java @@ -0,0 +1,38 @@ +package cn.iocoder.mall.systemservice.manager.oauth; + +import cn.iocoder.mall.systemservice.convert.oauth.OAuth2Convert; +import cn.iocoder.mall.systemservice.rpc.oauth.dto.OAuth2CreateAccessTokenDTO; +import cn.iocoder.mall.systemservice.rpc.oauth.dto.OAuth2RefreshAccessTokenDTO; +import cn.iocoder.mall.systemservice.rpc.oauth.vo.OAuth2AccessTokenVO; +import cn.iocoder.mall.systemservice.service.oauth.OAuth2Service; +import cn.iocoder.mall.systemservice.service.oauth.bo.OAuth2AccessTokenBO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * OAuth2.0 Manager + */ +@Service +public class OAuth2Manager { + + @Autowired + private OAuth2Service oauth2Service; + + public OAuth2AccessTokenVO createAccessToken(OAuth2CreateAccessTokenDTO createAccessTokenDTO) { + OAuth2AccessTokenBO accessTokenBO = oauth2Service.createAccessToken(createAccessTokenDTO.getUserId(), + createAccessTokenDTO.getUserType(), createAccessTokenDTO.getCreateIp()); + return OAuth2Convert.INSTANCE.convert(accessTokenBO); + } + + public OAuth2AccessTokenVO checkAccessToken(String accessToken) { + OAuth2AccessTokenBO accessTokenBO = oauth2Service.checkAccessToken(accessToken); + return OAuth2Convert.INSTANCE.convert(accessTokenBO); + } + + public OAuth2AccessTokenVO refreshAccessToken(OAuth2RefreshAccessTokenDTO refreshAccessTokenDTO) { + OAuth2AccessTokenBO accessTokenBO = oauth2Service.refreshAccessToken(refreshAccessTokenDTO.getRefreshToken(), + refreshAccessTokenDTO.getCreateIp()); + return OAuth2Convert.INSTANCE.convert(accessTokenBO); + } + +} diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/manager/package-info.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/manager/package-info.java new file mode 100644 index 000000000..4e0936108 --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/manager/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.mall.systemservice.manager; diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/OAuth2RpcImpl.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/OAuth2RpcImpl.java index 22d4933b3..dbe050812 100644 --- a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/OAuth2RpcImpl.java +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/rpc/oauth/OAuth2RpcImpl.java @@ -1,7 +1,34 @@ package cn.iocoder.mall.systemservice.rpc.oauth; +import cn.iocoder.common.framework.vo.CommonResult; +import cn.iocoder.mall.systemservice.manager.oauth.OAuth2Manager; +import cn.iocoder.mall.systemservice.rpc.oauth.dto.OAuth2CreateAccessTokenDTO; +import cn.iocoder.mall.systemservice.rpc.oauth.dto.OAuth2RefreshAccessTokenDTO; +import cn.iocoder.mall.systemservice.rpc.oauth.vo.OAuth2AccessTokenVO; import org.apache.dubbo.config.annotation.Service; +import org.springframework.beans.factory.annotation.Autowired; + +import static cn.iocoder.common.framework.vo.CommonResult.success; @Service(version = "${dubbo.provider.OAuth2Rpc.version}", validation = "false") public class OAuth2RpcImpl implements OAuth2Rpc { + + @Autowired + private OAuth2Manager oauth2Manager; + + @Override + public CommonResult createAccessToken(OAuth2CreateAccessTokenDTO createAccessTokenDTO) { + return success(oauth2Manager.createAccessToken(createAccessTokenDTO)); + } + + @Override + public CommonResult checkAccessToken(String accessToken) { + return success(oauth2Manager.checkAccessToken(accessToken)); + } + + @Override + public CommonResult refreshAccessToken(OAuth2RefreshAccessTokenDTO refreshAccessTokenDTO) { + return success(oauth2Manager.refreshAccessToken(refreshAccessTokenDTO)); + } + } diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/oauth/OAuth2Service.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/oauth/OAuth2Service.java new file mode 100644 index 000000000..c60bf0bab --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/oauth/OAuth2Service.java @@ -0,0 +1,112 @@ +package cn.iocoder.mall.systemservice.service.oauth; + +import cn.iocoder.common.framework.util.ServiceExceptionUtil; +import cn.iocoder.common.framework.util.StringUtils; +import cn.iocoder.mall.systemservice.convert.oauth.OAuth2Convert; +import cn.iocoder.mall.systemservice.dal.mysql.dataobject.oauth.OAuth2AccessTokenDO; +import cn.iocoder.mall.systemservice.dal.mysql.dataobject.oauth.OAuth2RefreshTokenDO; +import cn.iocoder.mall.systemservice.dal.mysql.mapper.oauth.OAuth2AccessTokenMapper; +import cn.iocoder.mall.systemservice.dal.mysql.mapper.oauth.OAuth2RefreshTokenMapper; +import cn.iocoder.mall.systemservice.service.oauth.bo.OAuth2AccessTokenBO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; + +import static cn.iocoder.mall.systemservice.enums.SystemErrorCodeEnum.*; + +/** + * OAuth2.0 Service + */ +@Service +public class OAuth2Service { + + /** + * 访问令牌过期时间,单位:毫秒 + */ + @Value("${modules.oauth2-service.access-token-expire-time-millis}") + private int accessTokenExpireTimeMillis; + /** + * 刷新令牌过期时间,单位:毫秒 + */ + @Value("${modules.oauth2-service.refresh-token-expire-time-millis}") + private int refreshTokenExpireTimeMillis; + + @Autowired + private OAuth2AccessTokenMapper oauth2AccessTokenMapper; + @Autowired + private OAuth2RefreshTokenMapper oauth2RefreshTokenMapper; + + @Transactional + public OAuth2AccessTokenBO createAccessToken(Integer userId, Integer userType, String createIp) { + // 创建刷新令牌 + 访问令牌 + OAuth2RefreshTokenDO refreshTokenDO = createOAuth2RefreshToken(userId, userType, createIp); + OAuth2AccessTokenDO accessTokenDO = createOAuth2AccessToken(refreshTokenDO, createIp); + // 返回访问令牌 + return OAuth2Convert.INSTANCE.convert(accessTokenDO); + } + + @Transactional + public OAuth2AccessTokenBO checkAccessToken(String accessToken) { + OAuth2AccessTokenDO accessTokenDO = oauth2AccessTokenMapper.selectById(accessToken); + if (accessTokenDO == null) { // 不存在 + throw ServiceExceptionUtil.exception(OAUTH2_ACCESS_TOKEN_NOT_FOUND); + } + if (accessTokenDO.getExpiresTime().getTime() < System.currentTimeMillis()) { // 已过期 + throw ServiceExceptionUtil.exception(OAUTH2_ACCESS_TOKEN_TOKEN_EXPIRED); + } + // 返回访问令牌 + return OAuth2Convert.INSTANCE.convert(accessTokenDO); + } + + @Transactional + public OAuth2AccessTokenBO refreshAccessToken(String refreshToken, String createIp) { + OAuth2RefreshTokenDO refreshTokenDO = oauth2RefreshTokenMapper.selectById(refreshToken); + // 校验刷新令牌是否合法 + if (refreshTokenDO == null) { // 不存在 + throw ServiceExceptionUtil.exception(OAUTH2_REFRESH_TOKEN_NOT_FOUND); + } + if (refreshTokenDO.getExpiresTime().getTime() < System.currentTimeMillis()) { // 已过期 + throw ServiceExceptionUtil.exception(OAUTH_REFRESH_TOKEN_EXPIRED); + } + // 标记 refreshToken 对应的 accessToken 都不合法 + // 这块的实现,参考了 Spring Security OAuth2 的代码 + oauth2AccessTokenMapper.deleteByRefreshToken(refreshToken); + // 创建访问令牌 + OAuth2AccessTokenDO oauth2AccessTokenDO = createOAuth2AccessToken(refreshTokenDO, createIp); + // 返回访问令牌 + return OAuth2Convert.INSTANCE.convert(oauth2AccessTokenDO); + } + + private OAuth2AccessTokenDO createOAuth2AccessToken(OAuth2RefreshTokenDO refreshTokenDO, String createIp) { + OAuth2AccessTokenDO accessToken = new OAuth2AccessTokenDO() + .setId(generateAccessToken()) + .setUserId(refreshTokenDO.getUserId()).setUserType(refreshTokenDO.getUserType()) + .setRefreshToken(refreshTokenDO.getId()) + .setExpiresTime(new Date(System.currentTimeMillis() + accessTokenExpireTimeMillis)) + .setCreateIp(createIp); + oauth2AccessTokenMapper.insert(accessToken); + return accessToken; + } + + private OAuth2RefreshTokenDO createOAuth2RefreshToken(Integer userId, Integer userType, String createIp) { + OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO() + .setId(generateRefreshToken()) + .setUserId(userId).setUserType(userType) + .setExpiresTime(new Date(System.currentTimeMillis() + refreshTokenExpireTimeMillis)) + .setCreateIp(createIp); + oauth2RefreshTokenMapper.insert(refreshToken); + return refreshToken; + } + + private String generateAccessToken() { + return StringUtils.uuid(true); + } + + private String generateRefreshToken() { + return StringUtils.uuid(true); + } + +} diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/oauth/bo/OAuth2AccessTokenBO.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/oauth/bo/OAuth2AccessTokenBO.java new file mode 100644 index 000000000..c76db62b3 --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/oauth/bo/OAuth2AccessTokenBO.java @@ -0,0 +1,36 @@ +package cn.iocoder.mall.systemservice.service.oauth.bo; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * OAuth2.0 访问令牌 BO + */ +@Data +@Accessors(chain = true) +public class OAuth2AccessTokenBO { + + /** + * 访问令牌 + */ + private String accessToken; + /** + * 刷新令牌 + */ + private String refreshToken; + /** + * 用户编号 + */ + private Integer userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 过期时间 + */ + private Date expiresTime; + +} diff --git a/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/package-info.java b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/package-info.java new file mode 100644 index 000000000..960445f36 --- /dev/null +++ b/system-service-project/system-service-app/src/main/java/cn/iocoder/mall/systemservice/service/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.mall.systemservice.service; diff --git a/system-service-project/system-service-app/src/main/resources/application.properties b/system-service-project/system-service-app/src/main/resources/application.properties new file mode 100644 index 000000000..2d05e65c9 --- /dev/null +++ b/system-service-project/system-service-app/src/main/resources/application.properties @@ -0,0 +1,4 @@ +##################### 业务模块 ##################### +## OAuth2CodeService +modules.oauth2-service.access-token-expire-time-millis = 2880000 +modules.oauth2-service.refresh-token-expire-time-millis = 43200000 diff --git a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dao/oauth2/OAuth2AccessTokenMapper.java b/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dao/oauth2/OAuth2AccessTokenMapper.java deleted file mode 100644 index c8de98178..000000000 --- a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dao/oauth2/OAuth2AccessTokenMapper.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.iocoder.mall.system.biz.dao.oauth2; - -import cn.iocoder.mall.system.biz.dataobject.oauth2.OAuth2AccessTokenDO; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.springframework.stereotype.Repository; - -@Repository -public interface OAuth2AccessTokenMapper extends BaseMapper { - - default int updateToInvalid(Integer accountId) { - QueryWrapper query = new QueryWrapper() - .eq("account_id", accountId) - .eq("valid", true); - return update(new OAuth2AccessTokenDO().setValid(false), query); - } - - default int updateToInvalidByRefreshToken(String refreshToken) { - QueryWrapper query = new QueryWrapper() - .eq("refresh_token", refreshToken).eq("valid", true); - return update(new OAuth2AccessTokenDO().setValid(false), query); - } - -} diff --git a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dao/oauth2/OAuth2RefreshTokenMapper.java b/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dao/oauth2/OAuth2RefreshTokenMapper.java deleted file mode 100644 index ebb7c9240..000000000 --- a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dao/oauth2/OAuth2RefreshTokenMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package cn.iocoder.mall.system.biz.dao.oauth2; - -import cn.iocoder.mall.system.biz.dataobject.oauth2.OAuth2RefreshTokenDO; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.springframework.stereotype.Repository; - -@Repository -public interface OAuth2RefreshTokenMapper extends BaseMapper { - - default int updateToInvalid(Integer accountId) { - QueryWrapper query = new QueryWrapper() - .eq("account_id", accountId) - .eq("valid", true); - return update(new OAuth2RefreshTokenDO().setValid(false), query); - } - -} diff --git a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/account/AccountDO.java b/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/account/AccountDO.java index 06a07689d..c8597181d 100644 --- a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/account/AccountDO.java +++ b/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/dataobject/account/AccountDO.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.biz.dataobject.account; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.mall.mybatis.dataobject.DeletableDO; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; diff --git a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/account/AccountServiceImpl.java b/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/account/AccountServiceImpl.java index 4ca97697d..6578ab741 100644 --- a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/account/AccountServiceImpl.java +++ b/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/account/AccountServiceImpl.java @@ -1,12 +1,11 @@ package cn.iocoder.mall.system.biz.service.account; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.mall.system.biz.bo.account.AccountBO; import cn.iocoder.mall.system.biz.convert.account.AccountConvert; import cn.iocoder.mall.system.biz.dao.account.AccountMapper; import cn.iocoder.mall.system.biz.dataobject.account.AccountDO; import cn.iocoder.mall.system.biz.dto.account.AccountCreateDTO; -import cn.iocoder.mall.system.biz.service.account.AccountService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/oauth2/OAuth2Service.java b/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/oauth2/OAuth2Service.java deleted file mode 100644 index ec081b784..000000000 --- a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/oauth2/OAuth2Service.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.iocoder.mall.system.biz.service.oauth2; - -import cn.iocoder.mall.system.biz.bo.ouath2.OAuth2AuthenticateBO; -import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2AccessTokenAuthenticateDTO; -import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2MobileCodeAuthenticateDTO; -import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2RefreshTokenAuthenticateDTO; -import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2UsernameAuthenticateDTO; - -/** - * OAuth2 Service 接口 - */ -public interface OAuth2Service { - - OAuth2AuthenticateBO authenticate(OAuth2UsernameAuthenticateDTO authenticateDTO); - - OAuth2AuthenticateBO authenticate(OAuth2MobileCodeAuthenticateDTO authenticateDTO); - - OAuth2AuthenticateBO authenticate(OAuth2AccessTokenAuthenticateDTO authenticateDTO); - - OAuth2AuthenticateBO authenticate(OAuth2RefreshTokenAuthenticateDTO authenticateDTO); - -} diff --git a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/oauth2/OAuth2ServiceImpl.java b/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/oauth2/OAuth2ServiceImpl.java deleted file mode 100644 index d19e7d5be..000000000 --- a/system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/oauth2/OAuth2ServiceImpl.java +++ /dev/null @@ -1,168 +0,0 @@ -package cn.iocoder.mall.system.biz.service.oauth2; - -import cn.iocoder.common.framework.constant.SysErrorCodeEnum; -import cn.iocoder.common.framework.util.ServiceExceptionUtil; -import cn.iocoder.common.framework.util.ValidationUtil; -import cn.iocoder.mall.system.biz.bo.account.AccountBO; -import cn.iocoder.mall.system.biz.bo.ouath2.OAuth2AuthenticateBO; -import cn.iocoder.mall.system.biz.convert.oauth2.OAuth2Convert; -import cn.iocoder.mall.system.biz.dao.oauth2.OAuth2AccessTokenMapper; -import cn.iocoder.mall.system.biz.dao.oauth2.OAuth2RefreshTokenMapper; -import cn.iocoder.mall.system.biz.dataobject.oauth2.OAuth2AccessTokenDO; -import cn.iocoder.mall.system.biz.dataobject.oauth2.OAuth2RefreshTokenDO; -import cn.iocoder.mall.system.biz.dto.account.AccountCreateDTO; -import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2AccessTokenAuthenticateDTO; -import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2MobileCodeAuthenticateDTO; -import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2RefreshTokenAuthenticateDTO; -import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2UsernameAuthenticateDTO; -import cn.iocoder.mall.system.biz.service.account.AccountService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Date; -import java.util.UUID; - -import static cn.iocoder.mall.system.biz.enums.SystemErrorCodeEnum.*; - -@Service -public class OAuth2ServiceImpl implements OAuth2Service { - - /** - * 访问令牌过期时间,单位:毫秒 - */ - @Value("${modules.oauth2-code-service.access-token-expire-time-millis}") - private int accessTokenExpireTimeMillis; - /** - * 刷新令牌过期时间,单位:毫秒 - */ - @Value("${modules.oauth2-code-service.refresh-token-expire-time-millis}") - private int refreshTokenExpireTimeMillis; - - @Autowired - private AccountService accountService; - @Autowired - private OAuth2MobileCodeService oauth2MobileCodeService; - - @Autowired - private OAuth2AccessTokenMapper oauth2AccessTokenMapper; - @Autowired - private OAuth2RefreshTokenMapper oauth2RefreshTokenMapper; - - @Override - @Transactional - public OAuth2AuthenticateBO authenticate(OAuth2UsernameAuthenticateDTO authenticateDTO) { - // 获得账号 - AccountBO accountBO = accountService.getByUsername(authenticateDTO.getUsername()); - if (accountBO == null) { - throw ServiceExceptionUtil.exception(OAUTH2_ACCOUNT_NOT_FOUND); - } - // 校验密码 - if (!accountService.matchPassword(authenticateDTO.getPassword(), accountBO.getPassword())) { - throw ServiceExceptionUtil.exception(OAUTH2_ACCOUNT_PASSWORD_ERROR); - } - // TODO 记录账号最后登陆时间和 ip 等 - // 创建刷新令牌 + 访问令牌 - OAuth2RefreshTokenDO oauth2RefreshTokenDO = createOAuth2RefreshToken(accountBO.getId()); - OAuth2AccessTokenDO oauth2AccessTokenDO = createOAuth2AccessToken(accountBO.getId(), oauth2RefreshTokenDO.getId()); - // 返回访问令牌 - return OAuth2Convert.INSTANCE.convert(oauth2AccessTokenDO); - } - - @Override - @Transactional - public OAuth2AuthenticateBO authenticate(OAuth2MobileCodeAuthenticateDTO authenticateDTO) { - // 校验手机格式 - if (!ValidationUtil.isMobile(authenticateDTO.getMobile())) { - throw ServiceExceptionUtil.exception(SysErrorCodeEnum.VALIDATION_REQUEST_PARAM_ERROR.getCode(), "手机格式不正确"); // TODO 有点搓 - } - // 使用手机验证码。如果验证不通过,则会抛出异常 - oauth2MobileCodeService.use(authenticateDTO.getMobile(), authenticateDTO.getCode()); - // 获得账号 - AccountBO accountBO = accountService.getByMobile(authenticateDTO.getMobile()); - if (accountBO == null) { // 账号不存时,自动创建 - // 创建账号 - accountBO = accountService.create(new AccountCreateDTO() - .setMobile(authenticateDTO.getMobile()) - .setCreateIp(authenticateDTO.getIp()) - ); - } - // TODO 记录账号最后登陆时间和 ip 等 - // 创建刷新令牌 + 访问令牌 - OAuth2RefreshTokenDO oauth2RefreshTokenDO = createOAuth2RefreshToken(accountBO.getId()); - OAuth2AccessTokenDO oauth2AccessTokenDO = createOAuth2AccessToken(accountBO.getId(), oauth2RefreshTokenDO.getId()); - // 返回访问令牌 - return OAuth2Convert.INSTANCE.convert(oauth2AccessTokenDO); - } - - @Override - public OAuth2AuthenticateBO authenticate(OAuth2AccessTokenAuthenticateDTO authenticateDTO) { - OAuth2AccessTokenDO oauth2AccessTokenDO = oauth2AccessTokenMapper.selectById(authenticateDTO.getAccessToken()); - if (oauth2AccessTokenDO == null) { // 不存在 - throw ServiceExceptionUtil.exception(OAUTH2_ACCESS_TOKEN_NOT_FOUND); - } - if (oauth2AccessTokenDO.getExpiresTime().getTime() < System.currentTimeMillis()) { // 已过期 - throw ServiceExceptionUtil.exception(OAUTH2_ACCESS_TOKEN_TOKEN_EXPIRED); - } - if (!oauth2AccessTokenDO.getValid()) { // 无效 - throw ServiceExceptionUtil.exception(OAUTH2_ACCESS_TOKEN_INVALID); - } - // 转换返回 - return OAuth2Convert.INSTANCE.convert(oauth2AccessTokenDO); - } - - @Override - @Transactional - public OAuth2AuthenticateBO authenticate(OAuth2RefreshTokenAuthenticateDTO authenticateDTO) { - OAuth2RefreshTokenDO refreshTokenDO = oauth2RefreshTokenMapper.selectById(authenticateDTO.getRefreshToken()); - // 校验刷新令牌是否合法 - if (refreshTokenDO == null) { // 不存在 - throw ServiceExceptionUtil.exception(OAUTH2_REFRESH_TOKEN_NOT_FOUND); - } - if (refreshTokenDO.getExpiresTime().getTime() < System.currentTimeMillis()) { // 已过期 - throw ServiceExceptionUtil.exception(OAUTH_REFRESH_TOKEN_EXPIRED); - } - if (!refreshTokenDO.getValid()) { // 无效 - throw ServiceExceptionUtil.exception(OAUTH_REFRESH_TOKEN_INVALID); - } - // 标记 refreshToken 对应的 accessToken 都不合法 - // 这块的实现,参考了 Spring Security OAuth2 的代码 - oauth2AccessTokenMapper.updateToInvalidByRefreshToken(authenticateDTO.getRefreshToken()); - // 创建访问令牌 - OAuth2AccessTokenDO oauth2AccessTokenDO = createOAuth2AccessToken(refreshTokenDO.getAccountId(), - refreshTokenDO.getId()); - // 转换返回 - return OAuth2Convert.INSTANCE.convert(oauth2AccessTokenDO); - } - - private OAuth2AccessTokenDO createOAuth2AccessToken(Integer accountId, String refreshToken) { - OAuth2AccessTokenDO accessToken = new OAuth2AccessTokenDO() - .setId(generateAccessToken()) - .setAccountId(accountId) - .setRefreshToken(refreshToken) - .setExpiresTime(new Date(System.currentTimeMillis() + accessTokenExpireTimeMillis)) - .setValid(true); - oauth2AccessTokenMapper.insert(accessToken); - return accessToken; - } - - private OAuth2RefreshTokenDO createOAuth2RefreshToken(Integer accountId) { - OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO() - .setId(generateRefreshToken()) - .setAccountId(accountId) - .setExpiresTime(new Date(System.currentTimeMillis() + refreshTokenExpireTimeMillis)) - .setValid(true); - oauth2RefreshTokenMapper.insert(refreshToken); - return refreshToken; - } - - private String generateAccessToken() { - return UUID.randomUUID().toString().replaceAll("-", ""); - } - - private String generateRefreshToken() { - return UUID.randomUUID().toString().replaceAll("-", ""); - } - -} diff --git a/system/system-biz/src/main/resources/biz.properties b/system/system-biz/src/main/resources/biz.properties index 197907aff..1041f6a3b 100644 --- a/system/system-biz/src/main/resources/biz.properties +++ b/system/system-biz/src/main/resources/biz.properties @@ -1,8 +1,4 @@ ##################### 业务模块 ##################### -## OAuth2CodeService +## OAuth2Service modules.oauth2-code-service.access-token-expire-time-millis = 2880000 modules.oauth2-code-service.refresh-token-expire-time-millis = 43200000 -## OAuth2MobileCodeService -modules.oauth2-mobile-code-service.code-expire-time-millis = 600000 -modules.oauth2-mobile-code-service.send-maximum-quantity-per-day = 10 -modules.oauth2-mobile-code-service.send-frequency = 60000 diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/admin/AdminsAdminController.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/admin/AdminsAdminController.java index b3fb5df36..73db2e86c 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/admin/AdminsAdminController.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/admin/AdminsAdminController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.admin; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.common.framework.vo.PageResult; import cn.iocoder.mall.security.core.annotation.RequiresPermissions; diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/admin/AdminsUserController.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/admin/AdminsUserController.java index 627dd35a9..bb27c4c94 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/admin/AdminsUserController.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/admin/AdminsUserController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.admin; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.common.framework.vo.PageResult; import cn.iocoder.mall.system.biz.bo.user.UserBO; diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsAuthorizationController.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsAuthorizationController.java index 35f94ec0f..468a020d7 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsAuthorizationController.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsAuthorizationController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.authorization; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.security.core.annotation.RequiresPermissions; import cn.iocoder.mall.security.core.context.AdminSecurityContextHolder; diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsResourceController.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsResourceController.java index 2be846d6e..9245ef3d0 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsResourceController.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsResourceController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.authorization; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.security.core.annotation.RequiresPermissions; import cn.iocoder.mall.security.core.context.AdminSecurityContextHolder; diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsRoleController.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsRoleController.java index be2e8efe6..4398ca43a 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsRoleController.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/authorization/AdminsRoleController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.authorization; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.common.framework.vo.PageResult; import cn.iocoder.mall.security.core.annotation.RequiresPermissions; diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/datadict/AdminsDataDictController.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/datadict/AdminsDataDictController.java index 8a29ba8ed..9f60ccda8 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/datadict/AdminsDataDictController.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/datadict/AdminsDataDictController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.datadict; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/errorCode/SystemErrorCodeController.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/errorCode/SystemErrorCodeController.java index 4023f36b7..9abb68938 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/errorCode/SystemErrorCodeController.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/errorCode/SystemErrorCodeController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.errorCode; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.common.framework.vo.PageResult; import cn.iocoder.mall.security.core.annotation.RequiresPermissions; diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/oauth2/AdminsOAuth2Controller.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/oauth2/AdminsOAuth2Controller.java index 76f3858a0..c8421fccc 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/oauth2/AdminsOAuth2Controller.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/oauth2/AdminsOAuth2Controller.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.oauth2; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.security.core.annotation.RequiresNone; diff --git a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/oauth2/UsersOAuth2Controller.java b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/oauth2/UsersOAuth2Controller.java index ff06d188d..2677bf67e 100644 --- a/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/oauth2/UsersOAuth2Controller.java +++ b/system/system-rest/src/main/java/cn/iocoder/mall/system/rest/controller/oauth2/UsersOAuth2Controller.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.rest.controller.oauth2; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.mall.system.biz.service.oauth2.OAuth2MobileCodeService; import cn.iocoder.mall.system.biz.service.oauth2.OAuth2Service; import cn.iocoder.mall.system.biz.service.user.UserService; diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/system/api/dto/admin/AdminUpdateStatusDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/system/api/dto/admin/AdminUpdateStatusDTO.java index 288841217..0643e9d0a 100644 --- a/system/system-service-api/src/main/java/cn/iocoder/mall/system/api/dto/admin/AdminUpdateStatusDTO.java +++ b/system/system-service-api/src/main/java/cn/iocoder/mall/system/api/dto/admin/AdminUpdateStatusDTO.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.api.dto.admin; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.validator.InEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java index 48bdebb6f..b8e377c00 100644 --- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java +++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java @@ -1,8 +1,8 @@ package cn.iocoder.mall.admin.service; -import cn.iocoder.common.framework.constant.CommonStatusEnum; -import cn.iocoder.common.framework.constant.DeletedStatusEnum; -import cn.iocoder.common.framework.constant.UserTypeEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; +import cn.iocoder.common.framework.enums.DeletedStatusEnum; +import cn.iocoder.common.framework.enums.UserTypeEnum; import cn.iocoder.common.framework.util.CollectionUtil; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.vo.PageResult; diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java index 48e7afe54..5c0ffe32d 100644 --- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java +++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.admin.service; -import cn.iocoder.common.framework.constant.DeletedStatusEnum; +import cn.iocoder.common.framework.enums.DeletedStatusEnum; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.system.api.DataDictService; diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/SmsServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/SmsServiceImpl.java index 6c37b399c..b8c0a8da8 100644 --- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/SmsServiceImpl.java +++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/SmsServiceImpl.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.admin.service; -import cn.iocoder.common.framework.constant.DeletedStatusEnum; +import cn.iocoder.common.framework.enums.DeletedStatusEnum; import cn.iocoder.common.framework.exception.ServiceException; import cn.iocoder.mall.system.api.SmsService; import cn.iocoder.mall.system.api.bo.sms.PageSmsSignBO; diff --git a/system/system-start/src/main/java/cn/iocoder/mall/system/application/controller/admins/AdminController.java b/system/system-start/src/main/java/cn/iocoder/mall/system/application/controller/admins/AdminController.java index 86151f6d2..3031cd9d9 100644 --- a/system/system-start/src/main/java/cn/iocoder/mall/system/application/controller/admins/AdminController.java +++ b/system/system-start/src/main/java/cn/iocoder/mall/system/application/controller/admins/AdminController.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.system.application.controller.admins; -import cn.iocoder.common.framework.constant.MallConstants; +import cn.iocoder.common.framework.enums.MallConstants; import cn.iocoder.common.framework.util.CollectionUtil; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.common.framework.vo.PageResult; diff --git a/user-service-project/user-service-api/src/main/java/cn/iocoder/mall/userservice/rpc/user/vo/UserVO.java b/user-service-project/user-service-api/src/main/java/cn/iocoder/mall/userservice/rpc/user/vo/UserVO.java index f0a7cd6bb..e7fa288f2 100644 --- a/user-service-project/user-service-api/src/main/java/cn/iocoder/mall/userservice/rpc/user/vo/UserVO.java +++ b/user-service-project/user-service-api/src/main/java/cn/iocoder/mall/userservice/rpc/user/vo/UserVO.java @@ -1,12 +1,16 @@ package cn.iocoder.mall.userservice.rpc.user.vo; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; +import lombok.Data; +import lombok.experimental.Accessors; import java.io.Serializable; /** * 用户响应 */ +@Data +@Accessors(chain = true) public class UserVO implements Serializable { /** diff --git a/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/dal/mysql/dataobject/user/UserDO.java b/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/dal/mysql/dataobject/user/UserDO.java index 13ed10413..62c0c44f5 100644 --- a/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/dal/mysql/dataobject/user/UserDO.java +++ b/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/dal/mysql/dataobject/user/UserDO.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.userservice.dal.mysql.dataobject.user; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.mall.mybatis.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; diff --git a/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/sms/UserSmsCodeService.java b/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/sms/UserSmsCodeService.java index 8e7ef0095..fef5d148c 100644 --- a/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/sms/UserSmsCodeService.java +++ b/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/sms/UserSmsCodeService.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.userservice.service.sms; -import cn.iocoder.common.framework.constant.SysErrorCodeEnum; +import cn.iocoder.common.framework.enums.SysErrorCodeEnum; import cn.iocoder.common.framework.exception.ServiceException; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.util.ValidationUtil; diff --git a/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/user/UserService.java b/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/user/UserService.java index f3b36c02f..c8da0629b 100644 --- a/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/user/UserService.java +++ b/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/user/UserService.java @@ -1,6 +1,6 @@ package cn.iocoder.mall.userservice.service.user; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; import cn.iocoder.common.framework.util.DigestUtils; import cn.iocoder.common.framework.util.StringUtils; import cn.iocoder.mall.userservice.convert.user.UserConvert; diff --git a/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/user/bo/UserBO.java b/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/user/bo/UserBO.java index b8f4eaea2..e366f8e2c 100644 --- a/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/user/bo/UserBO.java +++ b/user-service-project/user-service-app/src/main/java/cn/iocoder/mall/userservice/service/user/bo/UserBO.java @@ -1,10 +1,14 @@ package cn.iocoder.mall.userservice.service.user.bo; -import cn.iocoder.common.framework.constant.CommonStatusEnum; +import cn.iocoder.common.framework.enums.CommonStatusEnum; +import lombok.Data; +import lombok.experimental.Accessors; /** * 用户信息 */ +@Data +@Accessors(chain = true) public class UserBO { /** diff --git a/user-web-app/pom.xml b/user-web-app/pom.xml index 4b365e4f1..2106dca8d 100644 --- a/user-web-app/pom.xml +++ b/user-web-app/pom.xml @@ -43,6 +43,12 @@ user-service-api 1.0-SNAPSHOT + + + cn.iocoder.mall + system-service-api + 1.0-SNAPSHOT + diff --git a/user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/passport/vo/UserPassportVO.java b/user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/passport/vo/UserPassportVO.java index 039fdcb17..74771609c 100644 --- a/user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/passport/vo/UserPassportVO.java +++ b/user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/passport/vo/UserPassportVO.java @@ -27,10 +27,6 @@ public class UserPassportVO { * 刷新令牌 */ private String refreshToken; - /** - * 账号编号 - */ - private Integer accountId; /** * 过期时间 */ diff --git a/user-web-app/src/main/java/cn/iocoder/mall/userweb/convert/passport/UserPassportConvert.java b/user-web-app/src/main/java/cn/iocoder/mall/userweb/convert/passport/UserPassportConvert.java index 2fb8ff27f..8a7dd6033 100644 --- a/user-web-app/src/main/java/cn/iocoder/mall/userweb/convert/passport/UserPassportConvert.java +++ b/user-web-app/src/main/java/cn/iocoder/mall/userweb/convert/passport/UserPassportConvert.java @@ -1,5 +1,6 @@ package cn.iocoder.mall.userweb.convert.passport; +import cn.iocoder.mall.systemservice.rpc.oauth.vo.OAuth2AccessTokenVO; import cn.iocoder.mall.userservice.rpc.sms.vo.UserSendSmsCodeDTO; import cn.iocoder.mall.userservice.rpc.sms.vo.UserVerifySmsCodeDTO; import cn.iocoder.mall.userservice.rpc.user.dto.UserCreateDTO; @@ -16,10 +17,13 @@ public interface UserPassportConvert { UserPassportConvert INSTANCE = Mappers.getMapper(UserPassportConvert.class); UserVerifySmsCodeDTO convert(UserPassportLoginBySmsDTO bean); - UserCreateDTO convert02(UserPassportLoginBySmsDTO bean); - UserPassportVO convert(UserVO userVO); + default UserPassportVO convert(UserVO userVO, OAuth2AccessTokenVO accessTokenVO) { + return new UserPassportVO().setUser(convert(userVO)).setAuthorization(convert(accessTokenVO)); + } + UserPassportVO.User convert(UserVO userVO); + UserPassportVO.Authentication convert(OAuth2AccessTokenVO accessTokenVO); UserSendSmsCodeDTO convert(UserPassportSendSmsCodeDTO bean); diff --git a/user-web-app/src/main/java/cn/iocoder/mall/userweb/manager/passport/UserPassportManager.java b/user-web-app/src/main/java/cn/iocoder/mall/userweb/manager/passport/UserPassportManager.java index 72f755bc7..8e88a2f06 100644 --- a/user-web-app/src/main/java/cn/iocoder/mall/userweb/manager/passport/UserPassportManager.java +++ b/user-web-app/src/main/java/cn/iocoder/mall/userweb/manager/passport/UserPassportManager.java @@ -1,6 +1,10 @@ package cn.iocoder.mall.userweb.manager.passport; +import cn.iocoder.common.framework.enums.UserTypeEnum; import cn.iocoder.common.framework.vo.CommonResult; +import cn.iocoder.mall.systemservice.rpc.oauth.OAuth2Rpc; +import cn.iocoder.mall.systemservice.rpc.oauth.dto.OAuth2CreateAccessTokenDTO; +import cn.iocoder.mall.systemservice.rpc.oauth.vo.OAuth2AccessTokenVO; import cn.iocoder.mall.userservice.enums.sms.UserSmsSceneEnum; import cn.iocoder.mall.userservice.rpc.sms.UserSmsCodeRpc; import cn.iocoder.mall.userservice.rpc.user.UserRpc; @@ -19,21 +23,30 @@ public class UserPassportManager { private UserSmsCodeRpc userSmsCodeRpc; @Reference(version = "${dubbo.consumer.UserRpc.version}", validation = "false") private UserRpc userRpc; + @Reference(version = "${dubbo.consumer.OAuth2Rpc.version}", validation = "false") + private OAuth2Rpc oauth2Rpc; public UserPassportVO loginBySms(UserPassportLoginBySmsDTO loginBySmsDTO, String ip) { // 校验验证码 - CommonResult verifySmsCodeResult = userSmsCodeRpc.verifySmsCode(UserPassportConvert.INSTANCE.convert(loginBySmsDTO) - .setScene(UserSmsSceneEnum.LOGIN_BY_SMS.getValue()).setIp(ip)); + CommonResult verifySmsCodeResult = userSmsCodeRpc.verifySmsCode( + UserPassportConvert.INSTANCE.convert(loginBySmsDTO).setScene(UserSmsSceneEnum.LOGIN_BY_SMS.getValue()).setIp(ip)); verifySmsCodeResult.checkError(); // 获得用户 - CommonResult createUserResult = userRpc.createUserIfAbsent(UserPassportConvert.INSTANCE.convert02(loginBySmsDTO).setIp(ip)); + CommonResult createUserResult = userRpc.createUserIfAbsent( + UserPassportConvert.INSTANCE.convert02(loginBySmsDTO).setIp(ip)); createUserResult.checkError(); // 创建访问令牌 - return UserPassportConvert.INSTANCE.convert(createUserResult.getData()); + CommonResult createAccessTokenResult = oauth2Rpc.createAccessToken( + new OAuth2CreateAccessTokenDTO().setUserId(createUserResult.getData().getId()) + .setUserType(UserTypeEnum.USER.getValue()).setCreateIp(ip)); + createAccessTokenResult.checkError(); + // 返回 + return UserPassportConvert.INSTANCE.convert(createUserResult.getData(), createAccessTokenResult.getData()); } public void sendSmsCode(UserPassportSendSmsCodeDTO sendSmsCodeDTO, String ip) { - CommonResult sendSmsCodeResult = userSmsCodeRpc.sendSmsCode(UserPassportConvert.INSTANCE.convert(sendSmsCodeDTO).setIp(ip)); + CommonResult sendSmsCodeResult = userSmsCodeRpc.sendSmsCode( + UserPassportConvert.INSTANCE.convert(sendSmsCodeDTO).setIp(ip)); sendSmsCodeResult.checkError(); } diff --git a/user-web-app/src/main/resources/application.yml b/user-web-app/src/main/resources/application.yml index 2ea3d1561..6e32b063a 100644 --- a/user-web-app/src/main/resources/application.yml +++ b/user-web-app/src/main/resources/application.yml @@ -16,7 +16,7 @@ spring: dubbo: # Spring Cloud Alibaba Dubbo 专属配置 cloud: - subscribed-services: 'user-service' # 设置订阅的应用列表,默认为 * 订阅所有应用 + subscribed-services: 'user-service, system-service' # 设置订阅的应用列表,默认为 * 订阅所有应用 # Dubbo 服务消费者的配置 consumer: timeout: 10000 @@ -24,3 +24,5 @@ dubbo: version: 1.0.0 UserRpc: version: 1.0.0 + OAuth2Rpc: + version: 1.0.0