商品分类的迁移,完成并测试

This commit is contained in:
YunaiV 2020-07-25 19:31:02 +08:00
parent b1313bf52e
commit 2b8459680b
9 changed files with 36 additions and 27 deletions

View File

@ -11,6 +11,7 @@ import org.apache.dubbo.rpc.cluster.router.tag.TagRouter;
/** /**
* 基于 Dubbo 标签路由规则(http://dubbo.apache.org/zh-cn/docs/user/demos/routing-rule.html)实现如下功能 * 基于 Dubbo 标签路由规则(http://dubbo.apache.org/zh-cn/docs/user/demos/routing-rule.html)实现如下功能
* 1. 本地开发调试时在带有 Dubbo Tag 的情况下优先调用指定 Tag 的服务提供者这样我们可以将本地启动的服务提供者打上相应的 Tag即可优先调用本地 * 1. 本地开发调试时在带有 Dubbo Tag 的情况下优先调用指定 Tag 的服务提供者这样我们可以将本地启动的服务提供者打上相应的 Tag即可优先调用本地
* 并且前端在调用开发环境上的 Dubbo 服务时因为不带有 Dubbo Tag所以不会调用到后端开发本地启动的 Dubbo 服务提供者
* 2. TODO 优化点蓝绿发布灰度发布 * 2. TODO 优化点蓝绿发布灰度发布
* *
* 实现逻辑为 * 实现逻辑为

View File

@ -0,0 +1,7 @@
### /product-category/tree 成功
GET {{baseUrl}}/product-category/tree
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {{accessToken}}
dubbo-tag: {{dubboTag}}
###

View File

@ -2,19 +2,19 @@ package cn.iocoder.mall.managementweb.controller.product;
import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.managementweb.controller.product.vo.category.ProductCategoryCreateReqVO; import cn.iocoder.mall.managementweb.controller.product.vo.category.ProductCategoryCreateReqVO;
import cn.iocoder.mall.managementweb.controller.product.vo.category.ProductCategoryTreeNodeRespVO;
import cn.iocoder.mall.managementweb.controller.product.vo.category.ProductCategoryUpdateReqVO; import cn.iocoder.mall.managementweb.controller.product.vo.category.ProductCategoryUpdateReqVO;
import cn.iocoder.mall.managementweb.manager.product.ProductCategoryManager; import cn.iocoder.mall.managementweb.manager.product.ProductCategoryManager;
import cn.iocoder.security.annotations.RequiresPermissions;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List;
import static cn.iocoder.common.framework.vo.CommonResult.success; import static cn.iocoder.common.framework.vo.CommonResult.success;
@ -22,7 +22,7 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
* 商品分类 Controller * 商品分类 Controller
*/ */
@RestController @RestController
@RequestMapping("/product_category") @RequestMapping("/product-category")
@Api(tags = "商品分类") @Api(tags = "商品分类")
@Validated @Validated
public class ProductCategoryController { public class ProductCategoryController {
@ -32,12 +32,14 @@ public class ProductCategoryController {
@PostMapping("/create") @PostMapping("/create")
@ApiOperation("创建商品分类") @ApiOperation("创建商品分类")
@RequiresPermissions("product:category:create")
public CommonResult<Integer> createProductCategory(@Valid ProductCategoryCreateReqVO createVO) { public CommonResult<Integer> createProductCategory(@Valid ProductCategoryCreateReqVO createVO) {
return success(productCategoryManager.createProductCategory(createVO)); return success(productCategoryManager.createProductCategory(createVO));
} }
@PostMapping("/update") @PostMapping("/update")
@ApiOperation("更新商品分类") @ApiOperation("更新商品分类")
@RequiresPermissions("product:category:update")
public CommonResult<Boolean> updateProductCategory(@Valid ProductCategoryUpdateReqVO updateVO) { public CommonResult<Boolean> updateProductCategory(@Valid ProductCategoryUpdateReqVO updateVO) {
productCategoryManager.updateProductCategory(updateVO); productCategoryManager.updateProductCategory(updateVO);
return success(true); return success(true);
@ -45,10 +47,18 @@ public class ProductCategoryController {
@PostMapping("/delete") @PostMapping("/delete")
@ApiOperation("删除商品分类") @ApiOperation("删除商品分类")
@RequiresPermissions("product:category:delete")
@ApiImplicitParam(name = "productCategoryId", value = "商品分类编号", required = true) @ApiImplicitParam(name = "productCategoryId", value = "商品分类编号", required = true)
public CommonResult<Boolean> deleteProductCategory(@RequestParam("productCategoryId") Integer productCategoryId) { public CommonResult<Boolean> deleteProductCategory(@RequestParam("productCategoryId") Integer productCategoryId) {
productCategoryManager.deleteProductCategory(productCategoryId); productCategoryManager.deleteProductCategory(productCategoryId);
return success(true); return success(true);
} }
@GetMapping("/tree")
@ApiOperation("获得资源树")
@RequiresPermissions("product:category:tree")
public CommonResult<List<ProductCategoryTreeNodeRespVO>> treeProductCategory() {
return success(productCategoryManager.treeProductCategory());
}
} }

View File

@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date;
@ApiModel("商品分类 Response VO") @ApiModel("商品分类 Response VO")
@Data @Data
public class ProductCategoryRespVO { public class ProductCategoryRespVO {
@ -22,5 +24,7 @@ public class ProductCategoryRespVO {
private Integer sort; private Integer sort;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举") @ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
private Integer status; private Integer status;
@ApiModelProperty(value = "创建时间", required = true)
private Date createTime;
} }

View File

@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
@ApiModel("商品分类 Response VO") @ApiModel("商品分类 Response VO")
@ -24,6 +25,8 @@ public class ProductCategoryTreeNodeRespVO {
private Integer sort; private Integer sort;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举") @ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
private Integer status; private Integer status;
@ApiModelProperty(value = "创建时间", required = true)
private Date createTime;
/** /**
* 子节点 * 子节点

View File

@ -3,12 +3,14 @@ package cn.iocoder.mall.productservice.rpc.category.dto;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.io.Serializable;
/** /**
* 商品分类列表查询 DTO * 商品分类列表查询 DTO
*/ */
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
public class ProductCategoryListQueryReqDTO { public class ProductCategoryListQueryReqDTO implements Serializable {
/** /**
* 父编号 * 父编号

View File

@ -1,7 +1,7 @@
spring: spring:
# 数据源配置项 # 数据源配置项
datasource: datasource:
url: jdbc:mysql://400-infra.server.iocoder.cn:3306/mall_system?useSSL=false&useUnicode=true&characterEncoding=UTF-8 url: jdbc:mysql://400-infra.server.iocoder.cn:3306/mall_product?useSSL=false&useUnicode=true&characterEncoding=UTF-8
driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
username: root username: root
password: 3WLiVUBEwTbvAfsh password: 3WLiVUBEwTbvAfsh

View File

@ -1,7 +1,7 @@
spring: spring:
# 数据源配置项 # 数据源配置项
datasource: datasource:
url: jdbc:mysql://400-infra.server.iocoder.cn:3306/mall_system?useSSL=false&useUnicode=true&characterEncoding=UTF-8 url: jdbc:mysql://400-infra.server.iocoder.cn:3306/mall_product?useSSL=false&useUnicode=true&characterEncoding=UTF-8
driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
username: root username: root
password: 3WLiVUBEwTbvAfsh password: 3WLiVUBEwTbvAfsh

View File

@ -34,25 +34,7 @@ dubbo:
provider: provider:
filter: -exception filter: -exception
validation: true # 开启 Provider 参数校验 validation: true # 开启 Provider 参数校验
OAuth2Rpc: ProductCategoryRpc:
version: 1.0.0
AdminRpc:
version: 1.0.0
ResourceRpc:
version: 1.0.0
RoleRpc:
version: 1.0.0
PermissionRpc:
version: 1.0.0
DepartmentRpc:
version: 1.0.0
DataDictRpc:
version: 1.0.0
ProductExceptionLogRpc:
version: 1.0.0
ProductAccessLogRpc:
version: 1.0.0
ErrorCodeRpc:
version: 1.0.0 version: 1.0.0
# Dubbo 服务消费者的配置 # Dubbo 服务消费者的配置
consumer: consumer: