From d19655db23f99e501658a4d262f46299d7ccbfa1 Mon Sep 17 00:00:00 2001 From: danmo <775144922@qq.com> Date: Mon, 6 May 2024 14:12:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=BA=93=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dyj/applet/DyAppletClient.java | 122 +++++++- .../dyj/applet/client/LifeServicesClient.java | 103 +++++++ .../com/dyj/applet/domain/CategoryInfo.java | 82 +++++ .../com/dyj/applet/domain/ProductAttr.java | 94 ++++++ .../com/dyj/applet/domain/ProductDraft.java | 57 ++++ .../com/dyj/applet/domain/ProductOnline.java | 44 +++ .../com/dyj/applet/domain/ProductStruct.java | 284 ++++++++++++++++++ .../java/com/dyj/applet/domain/SkuStruct.java | 167 ++++++++++ .../com/dyj/applet/domain/StockStruct.java | 58 ++++ .../domain/query/BatchSaveGoodsSkuQuery.java | 93 ++++++ .../query/FreeAuditGoodsProductQuery.java | 126 ++++++++ .../query/OperateGoodsProductQuery.java | 95 ++++++ .../domain/query/SaveGoodsProductQuery.java | 93 ++++++ .../domain/query/SyncGoodsStockQuery.java | 87 ++++++ .../dyj/applet/domain/vo/GoodsCategoryVo.java | 24 ++ .../applet/domain/vo/GoodsProductDraftVo.java | 47 +++ .../domain/vo/GoodsProductOnlineVo.java | 46 +++ .../dyj/applet/domain/vo/GoodsTemplateVo.java | 37 +++ .../applet/domain/vo/SaveGoodsProductVo.java | 20 ++ .../applet/handler/LifeServiceHandler.java | 135 ++++++++- .../com/dyj/common/domain/DyProductBase.java | 70 +++++ .../dyj/common/domain/DyProductResult.java | 28 ++ .../dyj/common/enums/DyAppletUrlPathEnum.java | 22 ++ 23 files changed, 1929 insertions(+), 5 deletions(-) create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/CategoryInfo.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/ProductAttr.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/ProductDraft.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/ProductOnline.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/ProductStruct.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/SkuStruct.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/StockStruct.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/query/BatchSaveGoodsSkuQuery.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/query/FreeAuditGoodsProductQuery.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/query/OperateGoodsProductQuery.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/query/SaveGoodsProductQuery.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/query/SyncGoodsStockQuery.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsCategoryVo.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsProductDraftVo.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsProductOnlineVo.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsTemplateVo.java create mode 100644 dy-java-applet/src/main/java/com/dyj/applet/domain/vo/SaveGoodsProductVo.java create mode 100644 dy-java-common/src/main/java/com/dyj/common/domain/DyProductBase.java create mode 100644 dy-java-common/src/main/java/com/dyj/common/domain/DyProductResult.java diff --git a/dy-java-applet/src/main/java/com/dyj/applet/DyAppletClient.java b/dy-java-applet/src/main/java/com/dyj/applet/DyAppletClient.java index dfd5572..e8eaddf 100644 --- a/dy-java-applet/src/main/java/com/dyj/applet/DyAppletClient.java +++ b/dy-java-applet/src/main/java/com/dyj/applet/DyAppletClient.java @@ -9,10 +9,7 @@ import com.dyj.applet.handler.*; import com.dyj.common.client.BaseClient; import com.dyj.common.config.AgentConfiguration; import com.dyj.common.config.DyConfiguration; -import com.dyj.common.domain.DyAppletResult; -import com.dyj.common.domain.DyResult; -import com.dyj.common.domain.DySimpleResult; -import com.dyj.common.domain.UserTokenInfo; +import com.dyj.common.domain.*; import com.dyj.common.domain.vo.*; import java.util.List; @@ -804,6 +801,123 @@ public class DyAppletClient extends BaseClient { return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).spuQuery(spuExtId, needSpuDraft, spuDraftCount, supplierIdsForFilterReason); } + /** + * 创建/修改团购商品 + * + * @param query 入参 + * @return DyProductResult + */ + public DyProductResult saveGoodsProduct(SaveGoodsProductQuery query) { + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).saveGoodsProduct(query); + } + + /** + * 免审修改商品 + * + * @param query 入参 + * @return DyProductResult + */ + public DyProductResult freeAuditGoodsProduct(FreeAuditGoodsProductQuery query) { + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).freeAuditGoodsProduct(query); + } + + /** + * 上下架商品 + * + * @param productId 商品ID + * @param outId 商品外部ID + * @param opType 操作类型 1-上线 2-下线 + * @return DyProductResult + */ + public DyProductResult operateGoodsProduct(String productId, String outId, Integer opType) { + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).operateGoodsProduct(productId, outId, opType); + } + + /** + * 同步库存 + * + * @param query 入参 + * @return DyProductResult + */ + public DyProductResult syncGoodsStock(SyncGoodsStockQuery query) { + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).syncGoodsStock(query); + } + + /** + * 查询商品模板 + * + * @param categoryId 行业类目;详细见; 商品类目表 + * @param productType 商品类型 1 : 团购套餐 3 : 预售券 4 : 日历房 5 : 门票 7 : 旅行跟拍 8 : 一日游 11 : 代金券 + * @return DyProductResult + */ + public DyProductResult getGoodsTemplate(String categoryId, Integer productType) { + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).getGoodsTemplate(categoryId, productType); + } + + /** + * 查询商品草稿数据 + * + * @param productIds 商品ID列表(逗号分隔) + * @param outIds 外部商品ID列表(逗号分隔) + * @return DyProductResult + */ + public DyProductResult getGoodsProductDraft(String productIds, String outIds) { + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).getGoodsProductDraft(productIds, outIds); + } + + /** + * 查询商品线上数据 + * + * @param productIds 商品ID列表(逗号分隔) + * @param outIds 外部商品ID列表(逗号分隔) + * @return DyProductResult + */ + public DyProductResult getGoodsProductOnline(String productIds, String outIds) { + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).getGoodsProductOnline(productIds, outIds); + } + + /** + * 查询商品线上数据列表 + * + * @param cursor 第一页不传,之后用前一次返回的next_cursor传入进行翻页 + * @param count 分页数量,不传默认为5 + * @param status 过滤在线状态 1-在线 2-下线 3-封禁 + * @return DyProductResult + */ + public DyProductResult queryGoodsProductOnlineList(String cursor, Integer count, Integer status) { + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).queryGoodsProductOnlineList(cursor, count, status); + } + + /** + * 查询商品草稿数据列表 + * @param cursor 第一页不传,之后用前一次返回的next_cursor传入进行翻页 + * @param count 分页数量,不传默认为5 + * @param status 过滤草稿状态,10-审核中 12-审核失败 1-审核通过 + * @return DyProductResult + */ + public DyProductResult queryGoodsProductDraftList(String cursor, Integer count, Integer status){ + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).queryGoodsProductDraftList(cursor, count, status); + } + + /** + * 创建/更新多SKU商品的SKU列表 + * @param query 入参 + * @return DyProductResult + */ + public DyProductResult batchSaveGoodsSku(BatchSaveGoodsSkuQuery query){ + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).batchSaveGoodsSku(query); + } + + /** + * 查询商品品类 + * @param categoryId 行业类目ID,返回当前id下的直系子类目信息;传0或者不传,均返回所有一级行业类目 + * @param accountId 服务商的入驻商户ID/代运营的商户ID,不传时默认为服务商身份 + * @return GoodsCategoryVo + */ + public GoodsCategoryVo getGoodsCategory(String categoryId, String accountId){ + return new LifeServiceHandler(configuration().getAgentByTenantId(tenantId, clientKey)).getGoodsCategory(categoryId, accountId); + } + /** * 查询用户可用券信息 diff --git a/dy-java-applet/src/main/java/com/dyj/applet/client/LifeServicesClient.java b/dy-java-applet/src/main/java/com/dyj/applet/client/LifeServicesClient.java index a007aff..cc9ca81 100644 --- a/dy-java-applet/src/main/java/com/dyj/applet/client/LifeServicesClient.java +++ b/dy-java-applet/src/main/java/com/dyj/applet/client/LifeServicesClient.java @@ -4,9 +4,12 @@ import com.dtflys.forest.annotation.*; import com.dtflys.forest.backend.ContentType; import com.dyj.applet.domain.query.*; import com.dyj.applet.domain.vo.*; +import com.dyj.common.domain.DyProductResult; import com.dyj.common.domain.DyResult; import com.dyj.common.domain.query.BaseQuery; import com.dyj.common.domain.vo.BaseVo; +import com.dyj.applet.domain.vo.SaveGoodsProductVo; +import com.dyj.common.interceptor.ClientQueryTokenInterceptor; import com.dyj.common.interceptor.ClientTokenInterceptor; import java.util.List; @@ -161,5 +164,105 @@ public interface LifeServicesClient { DyResult spuQuery(@Var("query") BaseQuery query, @Query("spu_ext_id") String spuExtId, @Query("need_spu_draft") Boolean needSpuDraft, @Query("spu_draft_count") Integer spuDraftCount, @Query("supplier_ids_for_filter_reason") List supplierIdsForFilterReason); + /** + * 创建/修改团购商品 + * @param query 入参 + * @return DyProductResult + */ + @Post(url = "${saveGoodsProduct}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult saveGoodsProduct(@JSONBody SaveGoodsProductQuery query); + /** + * 免审修改商品 + * @param query 入参 + * @return DyProductResult + */ + @Post(url = "${freeAuditGoodsProduct}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult freeAuditGoodsProduct(@JSONBody FreeAuditGoodsProductQuery query); + + /** + * 上下架商品 + * @param query 入参 + * @return DyProductResult + */ + @Post(url = "${operateGoodsProduct}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult operateGoodsProduct(@JSONBody OperateGoodsProductQuery query); + + /** + * 同步库存 + * @param query 入参 + * @return DyProductResult + */ + @Post(url = "${syncGoodsStock}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult syncGoodsStock(@JSONBody SyncGoodsStockQuery query); + + /** + * 查询商品模板 + * @param query 应用信息 + * @param categoryId 行业类目;详细见; 商品类目表 + * @param productType 商品类型 1 : 团购套餐 3 : 预售券 4 : 日历房 5 : 门票 7 : 旅行跟拍 8 : 一日游 11 : 代金券 + * @return DyProductResult + */ + @Get(url = "${getGoodsTemplate}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult getGoodsTemplate(@Var("query") BaseQuery query, @Query("category_id") String categoryId, @Query("product_type") Integer productType); + + /** + * 查询商品草稿数据 + * @param query 应用信息 + * @param productIds 商品ID列表(逗号分隔) + * @param outIds 外部商品ID列表(逗号分隔) + * @return DyProductResult + */ + @Get(url = "${getGoodsProductDraft}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult getGoodsProductDraft(@Var("query") BaseQuery query, @Query("product_ids") String productIds,@Query("out_ids") String outIds); + + /** + * 查询商品线上数据 + * @param query 应用信息 + * @param productIds 商品ID列表(逗号分隔) + * @param outIds 外部商品ID列表(逗号分隔) + * @return DyProductResult + */ + @Get(url = "${getGoodsProductOnline}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult getGoodsProductOnline(@Var("query") BaseQuery query, @Query("product_ids") String productIds,@Query("out_ids") String outIds); + + /** + * 查询商品线上数据列表 + * @param query 应用信息 + * @param cursor 第一页不传,之后用前一次返回的next_cursor传入进行翻页 + * @param count 分页数量,不传默认为5 + * @param status 过滤在线状态 1-在线 2-下线 3-封禁 + * @return DyProductResult + */ + @Get(url = "${queryGoodsProductOnlineList}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult queryGoodsProductOnlineList(@Var("query") BaseQuery query, @Query("cursor") String cursor, @Query("count") Integer count, @Query("status") Integer status); + + /** + * 查询商品草稿数据列表 + * @param query 应用信息 + * @param cursor 第一页不传,之后用前一次返回的next_cursor传入进行翻页 + * @param count 分页数量,不传默认为5 + * @param status 过滤草稿状态,10-审核中 12-审核失败 1-审核通过 + * @return DyProductResult + */ + @Get(url = "${queryGoodsProductDraftList}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult queryGoodsProductDraftList(@Var("query") BaseQuery query, @Query("cursor") String cursor, @Query("count") Integer count, @Query("status") Integer status); + + /** + * 创建/更新多SKU商品的SKU列表 + * @param query 入参 + * @return DyProductResult + */ + @Post(url = "${batchSaveGoodsSku}", interceptor = ClientQueryTokenInterceptor.class) + DyProductResult batchSaveGoodsSku(@JSONBody BatchSaveGoodsSkuQuery query); + + /** + * 查询商品品类 + * @param query 应用信息 + * @param categoryId 行业类目ID,返回当前id下的直系子类目信息;传0或者不传,均返回所有一级行业类目 + * @param accountId 服务商的入驻商户ID/代运营的商户ID,不传时默认为服务商身份 + * @return GoodsCategoryVo + */ + @Get(url = "${getGoodsCategory}", interceptor = ClientQueryTokenInterceptor.class) + GoodsCategoryVo getGoodsCategory(@Var("query") BaseQuery query, @Query("category_id") String categoryId, @Query("account_id") String accountId); } diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/CategoryInfo.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/CategoryInfo.java new file mode 100644 index 0000000..d243411 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/CategoryInfo.java @@ -0,0 +1,82 @@ +package com.dyj.applet.domain; + +/** + * @author danmo + * @date 2024-05-06 13:53 + **/ +public class CategoryInfo { + + /** + * + * 类目ID + */ + private Long category_id; + /** + * 类目名称 + */ + private String name; + /** + * 父类目ID + */ + private Long parent_id; + /** + * 类目层级 + */ + private Integer level; + /** + * 是否是叶子结点 + */ + private Boolean is_leaf; + /** + * 类目是否开放 + */ + private Boolean enable; + + public Long getCategory_id() { + return category_id; + } + + public void setCategory_id(Long category_id) { + this.category_id = category_id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getParent_id() { + return parent_id; + } + + public void setParent_id(Long parent_id) { + this.parent_id = parent_id; + } + + public Integer getLevel() { + return level; + } + + public void setLevel(Integer level) { + this.level = level; + } + + public Boolean getIs_leaf() { + return is_leaf; + } + + public void setIs_leaf(Boolean is_leaf) { + this.is_leaf = is_leaf; + } + + public Boolean getEnable() { + return enable; + } + + public void setEnable(Boolean enable) { + this.enable = enable; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductAttr.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductAttr.java new file mode 100644 index 0000000..70f8f88 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductAttr.java @@ -0,0 +1,94 @@ +package com.dyj.applet.domain; + +/** + * @author danmo + * @date 2024-05-06 11:29 + **/ +public class ProductAttr { + + /** + * 属性描述 + */ + private String desc; + /** + * + * 是否列表 + */ + private Boolean is_multi; + /** + * 是否必填 + */ + private Boolean is_required; + /** + * 属性key + */ + private String key; + /** + * 属性名称 + */ + private String name; + /** + * 属性类型 + */ + private String value_type; + /** + * 属性样例 + */ + private String value_demo; + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public Boolean getIs_multi() { + return is_multi; + } + + public void setIs_multi(Boolean is_multi) { + this.is_multi = is_multi; + } + + public Boolean getIs_required() { + return is_required; + } + + public void setIs_required(Boolean is_required) { + this.is_required = is_required; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue_type() { + return value_type; + } + + public void setValue_type(String value_type) { + this.value_type = value_type; + } + + public String getValue_demo() { + return value_demo; + } + + public void setValue_demo(String value_demo) { + this.value_demo = value_demo; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductDraft.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductDraft.java new file mode 100644 index 0000000..596832f --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductDraft.java @@ -0,0 +1,57 @@ +package com.dyj.applet.domain; + +/** + * @author danmo + * @date 2024-05-06 11:35 + **/ +public class ProductDraft { + /** + * 草稿状态 + * 10-审核中 + * 12-审核失败 + * 1-审核通过 + * 11-审核通过(老库存量数据,新接口保存后擦除) + */ + private Integer draft_status; + + /** + * 审核失败原因 + */ + private String audit_msg; + + private ProductStruct product; + + private SkuStruct sku; + + public Integer getDraft_status() { + return draft_status; + } + + public void setDraft_status(Integer draft_status) { + this.draft_status = draft_status; + } + + public String getAudit_msg() { + return audit_msg; + } + + public void setAudit_msg(String audit_msg) { + this.audit_msg = audit_msg; + } + + public ProductStruct getProduct() { + return product; + } + + public void setProduct(ProductStruct product) { + this.product = product; + } + + public SkuStruct getSku() { + return sku; + } + + public void setSku(SkuStruct sku) { + this.sku = sku; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductOnline.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductOnline.java new file mode 100644 index 0000000..4f3056a --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductOnline.java @@ -0,0 +1,44 @@ +package com.dyj.applet.domain; + +/** + * @author danmo + * @date 2024-05-06 13:37 + **/ +public class ProductOnline { + /** + * 在线状态 1-在线 2-下线 3-封禁 + */ + private Integer online_status; + /** + * 商品 + */ + private ProductStruct product; + /** + * 售卖单元 + */ + private SkuStruct sku; + + public Integer getOnline_status() { + return online_status; + } + + public void setOnline_status(Integer online_status) { + this.online_status = online_status; + } + + public ProductStruct getProduct() { + return product; + } + + public void setProduct(ProductStruct product) { + this.product = product; + } + + public SkuStruct getSku() { + return sku; + } + + public void setSku(SkuStruct sku) { + this.sku = sku; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductStruct.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductStruct.java new file mode 100644 index 0000000..aa153f2 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/ProductStruct.java @@ -0,0 +1,284 @@ +package com.dyj.applet.domain; + +import java.util.List; +import java.util.Map; + +/** + * 商品 + * @author danmo + * @date 2024-05-06 10:26 + **/ +public class ProductStruct { + + /** + * 商品Id,创建时不必填写,更新时如有 out_id 可不填写 + */ + private String product_id; + /** + * 外部商品id + */ + private String out_id; + /** + * 商品名 + */ + private String product_name; + /** + * 品类全名,保存时不必填写 + */ + private String category_full_name; + /** + * 品类id + */ + private Integer category_id; + /** + * 商品类型: + * 1 : 团购套餐 + * 3 : 预售券 + * 4 : 日历房 + * 5 : 门票 + * 7 : 旅行跟拍 + * 8 : 一日游 + * 11 : 代金券 + * 14: x项目 + */ + private Integer product_type; + /** + * 业务线: + * 1:闭环自研开发者 + * 3:直连服务商 + * 5:小程序 + */ + private Integer biz_line; + /** + * 商家名 + */ + private String account_name; + /** + * 售卖开始时间 + */ + private Long sold_start_time; + /** + * 售卖结束时间 + */ + private Long sold_end_time; + /** + * 第三方跳转链接,小程序商品必填 + */ + private String out_url; + /** + * 店铺列表 + */ + private List> poi_list; + /** + * 商品属性 KV,填写时参考下文「attr_key_value_map 的格式」 + */ + private Map attr_key_value_map; + + private List telephone; + + public static ProductStructBuilder builder() { + return new ProductStructBuilder(); + } + public static class ProductStructBuilder { + private String productId; + private String outId; + private String productName; + private String categoryFullName; + private Integer categoryId; + private Integer productType; + private Integer bizLine; + private String accountName; + private Long soldStartTime; + private Long soldEndTime; + private String outUrl; + private List> poiList; + private Map attrKeyValueMap; + private List telephone; + public ProductStructBuilder productId(String productId) { + this.productId = productId; + return this; + } + public ProductStructBuilder outId(String outId) { + this.outId = outId; + return this; + } + public ProductStructBuilder productName(String productName) { + this.productName = productName; + return this; + } + public ProductStructBuilder categoryFullName(String categoryFullName) { + this.categoryFullName = categoryFullName; + return this; + } + public ProductStructBuilder categoryId(Integer categoryId) { + this.categoryId = categoryId; + return this; + } + public ProductStructBuilder productType(Integer productType) { + this.productType = productType; + return this; + } + public ProductStructBuilder bizLine(Integer bizLine) { + this.bizLine = bizLine; + return this; + } + public ProductStructBuilder accountName(String accountName) { + this.accountName = accountName; + return this; + } + public ProductStructBuilder soldStartTime(Long soldStartTime) { + this.soldStartTime = soldStartTime; + return this; + } + public ProductStructBuilder soldEndTime(Long soldEndTime) { + this.soldEndTime = soldEndTime; + return this; + } + public ProductStructBuilder outUrl(String outUrl) { + this.outUrl = outUrl; + return this; + } + public ProductStructBuilder poiList(List> poiList) { + this.poiList = poiList; + return this; + } + public ProductStructBuilder attrKeyValueMap(Map attrKeyValueMap) { + this.attrKeyValueMap = attrKeyValueMap; + return this; + } + public ProductStructBuilder telephone(List telephone) { + this.telephone = telephone; + return this; + } + public ProductStruct build() { + ProductStruct productStruct = new ProductStruct(); + productStruct.setProduct_id(productId); + productStruct.setOut_id(outId); + productStruct.setProduct_name(productName); + productStruct.setCategory_full_name(categoryFullName); + productStruct.setCategory_id(categoryId); + productStruct.setProduct_type(productType); + productStruct.setBiz_line(bizLine); + productStruct.setAccount_name(accountName); + productStruct.setSold_start_time(soldStartTime); + productStruct.setSold_end_time(soldEndTime); + productStruct.setOut_url(outUrl); + productStruct.setPoi_list(poiList); + productStruct.setAttr_key_value_map(attrKeyValueMap); + productStruct.setTelephone(telephone); + return productStruct; + } + } + + public String getProduct_id() { + return product_id; + } + + public void setProduct_id(String product_id) { + this.product_id = product_id; + } + + public String getOut_id() { + return out_id; + } + + public void setOut_id(String out_id) { + this.out_id = out_id; + } + + public String getProduct_name() { + return product_name; + } + + public void setProduct_name(String product_name) { + this.product_name = product_name; + } + + public String getCategory_full_name() { + return category_full_name; + } + + public void setCategory_full_name(String category_full_name) { + this.category_full_name = category_full_name; + } + + public Integer getCategory_id() { + return category_id; + } + + public void setCategory_id(Integer category_id) { + this.category_id = category_id; + } + + public Integer getProduct_type() { + return product_type; + } + + public void setProduct_type(Integer product_type) { + this.product_type = product_type; + } + + public Integer getBiz_line() { + return biz_line; + } + + public void setBiz_line(Integer biz_line) { + this.biz_line = biz_line; + } + + public String getAccount_name() { + return account_name; + } + + public void setAccount_name(String account_name) { + this.account_name = account_name; + } + + public Long getSold_start_time() { + return sold_start_time; + } + + public void setSold_start_time(Long sold_start_time) { + this.sold_start_time = sold_start_time; + } + + public Long getSold_end_time() { + return sold_end_time; + } + + public void setSold_end_time(Long sold_end_time) { + this.sold_end_time = sold_end_time; + } + + public String getOut_url() { + return out_url; + } + + public void setOut_url(String out_url) { + this.out_url = out_url; + } + + public List> getPoi_list() { + return poi_list; + } + + public void setPoi_list(List> poi_list) { + this.poi_list = poi_list; + } + + public Map getAttr_key_value_map() { + return attr_key_value_map; + } + + public void setAttr_key_value_map(Map attr_key_value_map) { + this.attr_key_value_map = attr_key_value_map; + } + + public List getTelephone() { + return telephone; + } + + public void setTelephone(List telephone) { + this.telephone = telephone; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/SkuStruct.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/SkuStruct.java new file mode 100644 index 0000000..c9a9c86 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/SkuStruct.java @@ -0,0 +1,167 @@ +package com.dyj.applet.domain; + +import java.util.Map; + +/** + * 售卖单元 + * @author danmo + * @date 2024-05-06 10:38 + **/ +public class SkuStruct { + + /** + * sku id,创建时不必填写 + */ + private String sku_id; + /** + * sku名 + */ + private String sku_name; + /** + * 原价,团购创建时如有commodity属性可不填,会根据菜品搭配计算原价 + */ + private Integer origin_amount; + /** + * 实际支付价格 + */ + private Integer actual_amount; + /** + * 库存信息 + */ + private StockStruct stock; + /** + * 第三方id + */ + private String out_sku_id; + /** + * 状态。1:在线 -1-删除; 默认传1 + */ + private Integer status; + /** + * sku属性KV,填写时参考下文「attr_key_value_map的格式」 + */ + private Map attr_key_value_map; + + public static SkuStructBuilder builder() { + return new SkuStructBuilder(); + } + + public static class SkuStructBuilder { + private String skuId; + private String skuName; + private Integer originAmount; + private Integer actualAmount; + private StockStruct stock; + private String outSkuId; + private Integer status; + private Map attrKeyValueMap; + public SkuStructBuilder skuId(String skuId) { + this.skuId = skuId; + return this; + } + public SkuStructBuilder skuName(String skuName) { + this.skuName = skuName; + return this; + } + public SkuStructBuilder originAmount(Integer originAmount) { + this.originAmount = originAmount; + return this; + } + public SkuStructBuilder actualAmount(Integer actualAmount) { + this.actualAmount = actualAmount; + return this; + } + public SkuStructBuilder stock(StockStruct stock) { + this.stock = stock; + return this; + } + public SkuStructBuilder outSkuId(String outSkuId) { + this.outSkuId = outSkuId; + return this; + } + public SkuStructBuilder status(Integer status) { + this.status = status; + return this; + } + public SkuStructBuilder attrKeyValueMap(Map attrKeyValueMap) { + this.attrKeyValueMap = attrKeyValueMap; + return this; + } + public SkuStruct build() { + SkuStruct skuStruct = new SkuStruct(); + skuStruct.setSku_id(skuId); + skuStruct.setSku_name(skuName); + skuStruct.setOrigin_amount(originAmount); + skuStruct.setActual_amount(actualAmount); + skuStruct.setStock(stock); + skuStruct.setOut_sku_id(outSkuId); + skuStruct.setStatus(status); + skuStruct.setAttr_key_value_map(attrKeyValueMap); + return skuStruct; + } +} + + public String getSku_id() { + return sku_id; + } + + public void setSku_id(String sku_id) { + this.sku_id = sku_id; + } + + public String getSku_name() { + return sku_name; + } + + public void setSku_name(String sku_name) { + this.sku_name = sku_name; + } + + public Integer getOrigin_amount() { + return origin_amount; + } + + public void setOrigin_amount(Integer origin_amount) { + this.origin_amount = origin_amount; + } + + public Integer getActual_amount() { + return actual_amount; + } + + public void setActual_amount(Integer actual_amount) { + this.actual_amount = actual_amount; + } + + public StockStruct getStock() { + return stock; + } + + public void setStock(StockStruct stock) { + this.stock = stock; + } + + public String getOut_sku_id() { + return out_sku_id; + } + + public void setOut_sku_id(String out_sku_id) { + this.out_sku_id = out_sku_id; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Map getAttr_key_value_map() { + return attr_key_value_map; + } + + public void setAttr_key_value_map(Map attr_key_value_map) { + this.attr_key_value_map = attr_key_value_map; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/StockStruct.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/StockStruct.java new file mode 100644 index 0000000..038d4f4 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/StockStruct.java @@ -0,0 +1,58 @@ +package com.dyj.applet.domain; + +/** + * 库存信息 + * @author danmo + * @date 2024-05-06 10:37 + **/ +public class StockStruct { + + /** + * 上限类型,为2时stock_qty和avail_qty字段无意义 1-有限库存 2-无限库存 + */ + private Integer limit_type; + + /** + * 总库存,limit_type=2时无意义 + */ + private Integer stock_qty; + + public static StockStructBuilder builder() { + return new StockStructBuilder(); + } + + public static class StockStructBuilder { + private Integer limitType; + private Integer stockQty; + public StockStructBuilder limitType(Integer limitType) { + this.limitType = limitType; + return this; + } + public StockStructBuilder stockQty(Integer stockQty) { + this.stockQty = stockQty; + return this; + } + public StockStruct build() { + StockStruct stockStruct = new StockStruct(); + stockStruct.setLimit_type(limitType); + stockStruct.setStock_qty(stockQty); + return stockStruct; + } + } + + public Integer getLimit_type() { + return limit_type; + } + + public void setLimit_type(Integer limit_type) { + this.limit_type = limit_type; + } + + public Integer getStock_qty() { + return stock_qty; + } + + public void setStock_qty(Integer stock_qty) { + this.stock_qty = stock_qty; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/query/BatchSaveGoodsSkuQuery.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/BatchSaveGoodsSkuQuery.java new file mode 100644 index 0000000..2a93e56 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/BatchSaveGoodsSkuQuery.java @@ -0,0 +1,93 @@ +package com.dyj.applet.domain.query; + +import com.dyj.applet.domain.SkuStruct; +import com.dyj.common.domain.query.BaseQuery; + +import java.util.List; + +/** + * @author danmo + * @date 2024-05-06 13:47 + **/ +public class BatchSaveGoodsSkuQuery extends BaseQuery { + /** + * 商品id + */ + private String product_id; + /** + * + * 商品外部id + */ + private String out_id; + /** + * SKU列表 + */ + private List sku_list; + + public static BatchSaveGoodsSkuQueryBuilder builder() { + return new BatchSaveGoodsSkuQueryBuilder(); + } + + public static class BatchSaveGoodsSkuQueryBuilder { + private String productId; + private String outId; + private List skuList; + private Integer tenantId; + private String clientKey; + + public BatchSaveGoodsSkuQueryBuilder productId(String productId) { + this.productId = productId; + return this; + } + public BatchSaveGoodsSkuQueryBuilder outId(String outId) { + this.outId = outId; + return this; + } + public BatchSaveGoodsSkuQueryBuilder skuList(List skuList) { + this.skuList = skuList; + return this; + } + public BatchSaveGoodsSkuQueryBuilder tenantId(Integer tenantId) { + this.tenantId = tenantId; + return this; + } + public BatchSaveGoodsSkuQueryBuilder clientKey(String clientKey) { + this.clientKey = clientKey; + return this; + } + public BatchSaveGoodsSkuQuery build() { + BatchSaveGoodsSkuQuery batchSaveGoodsSkuQuery = new BatchSaveGoodsSkuQuery(); + batchSaveGoodsSkuQuery.setProduct_id(productId); + batchSaveGoodsSkuQuery.setOut_id(outId); + batchSaveGoodsSkuQuery.setSku_list(skuList); + batchSaveGoodsSkuQuery.setTenantId(tenantId); + batchSaveGoodsSkuQuery.setClientKey(clientKey); + return batchSaveGoodsSkuQuery; + } + + } + + public String getProduct_id() { + return product_id; + } + + public void setProduct_id(String product_id) { + this.product_id = product_id; + } + + public String getOut_id() { + return out_id; + } + + public void setOut_id(String out_id) { + this.out_id = out_id; + } + + public List getSku_list() { + return sku_list; + } + + public void setSku_list(List sku_list) { + this.sku_list = sku_list; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/query/FreeAuditGoodsProductQuery.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/FreeAuditGoodsProductQuery.java new file mode 100644 index 0000000..6c08fea --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/FreeAuditGoodsProductQuery.java @@ -0,0 +1,126 @@ +package com.dyj.applet.domain.query; + +import com.dyj.common.domain.query.BaseQuery; + +/** + * @author danmo + * @date 2024-05-06 11:07 + **/ +public class FreeAuditGoodsProductQuery extends BaseQuery { + + /** + * 商品id (商品id或商品外部id 选其一) + */ + private String product_id; + + /** + * 商品外部id (商品id或商品外部id 选其一) + */ + private String out_id; + /** + * 售卖结束时间 + */ + private Long sold_end_time; + /** + * 总库存 + */ + private Long stock_qty; + /** + * 商品归属账户ID,非必传;传入时须与该商家满足商服关系 + */ + private String owner_account_id; + + public static FreeAuditGoodsProductQueryBuilder build() { + return new FreeAuditGoodsProductQueryBuilder(); + } + + public static class FreeAuditGoodsProductQueryBuilder { + private String productId; + private String outId; + private Long soldEndTime; + private Long stockQty; + private String ownerAccountId; + private Integer tenantId; + private String clientKey; + + public FreeAuditGoodsProductQueryBuilder productId(String productId) { + this.productId = productId; + return this; + } + public FreeAuditGoodsProductQueryBuilder outId(String outId) { + this.outId = outId; + return this; + } + public FreeAuditGoodsProductQueryBuilder soldEndTime(Long soldEndTime) { + this.soldEndTime = soldEndTime; + return this; + } + public FreeAuditGoodsProductQueryBuilder stockQty(Long stockQty) { + this.stockQty = stockQty; + return this; + } + public FreeAuditGoodsProductQueryBuilder ownerAccountId(String ownerAccountId) { + this.ownerAccountId = ownerAccountId; + return this; + } + public FreeAuditGoodsProductQueryBuilder tenantId(Integer tenantId) { + this.tenantId = tenantId; + return this; + } + public FreeAuditGoodsProductQueryBuilder clientKey(String clientKey) { + this.clientKey = clientKey; + return this; + } + public FreeAuditGoodsProductQuery build() { + FreeAuditGoodsProductQuery freeAuditGoodsProductQuery = new FreeAuditGoodsProductQuery(); + freeAuditGoodsProductQuery.setProduct_id(productId); + freeAuditGoodsProductQuery.setOut_id(outId); + freeAuditGoodsProductQuery.setSold_end_time(soldEndTime); + freeAuditGoodsProductQuery.setStock_qty(stockQty); + freeAuditGoodsProductQuery.setOwner_account_id(ownerAccountId); + freeAuditGoodsProductQuery.setTenantId(tenantId); + freeAuditGoodsProductQuery.setClientKey(clientKey); + return freeAuditGoodsProductQuery; + } + } + + public String getProduct_id() { + return product_id; + } + + public void setProduct_id(String product_id) { + this.product_id = product_id; + } + + public String getOut_id() { + return out_id; + } + + public void setOut_id(String out_id) { + this.out_id = out_id; + } + + public Long getSold_end_time() { + return sold_end_time; + } + + public void setSold_end_time(Long sold_end_time) { + this.sold_end_time = sold_end_time; + } + + public Long getStock_qty() { + return stock_qty; + } + + public void setStock_qty(Long stock_qty) { + this.stock_qty = stock_qty; + } + + public String getOwner_account_id() { + return owner_account_id; + } + + public void setOwner_account_id(String owner_account_id) { + this.owner_account_id = owner_account_id; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/query/OperateGoodsProductQuery.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/OperateGoodsProductQuery.java new file mode 100644 index 0000000..7a75433 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/OperateGoodsProductQuery.java @@ -0,0 +1,95 @@ +package com.dyj.applet.domain.query; + +import com.dyj.common.domain.query.BaseQuery; + +/** + * @author danmo + * @date 2024-05-06 11:13 + **/ +public class OperateGoodsProductQuery extends BaseQuery { + /** + * + * 商品id(若有第三方id可不传) + */ + private String product_id; + + /** + * 商品第三方id + */ + private String out_id; + /** + * 1-上线 2-下线 + */ + private Integer op_type; + + public static OperateGoodsProductQueryBuilder build() { + return new OperateGoodsProductQueryBuilder(); + } + + public static final class OperateGoodsProductQueryBuilder { + private String productId; + private String outId; + private Integer opType; + private Integer tenantId; + private String clientKey; + + public OperateGoodsProductQueryBuilder productId(String productId) { + this.productId = productId; + return this; + } + + public OperateGoodsProductQueryBuilder outId(String outId) { + this.outId = outId; + return this; + } + + public OperateGoodsProductQueryBuilder opType(Integer opType) { + this.opType = opType; + return this; + } + + public OperateGoodsProductQueryBuilder tenantId(Integer tenantId) { + this.tenantId = tenantId; + return this; + } + + public OperateGoodsProductQueryBuilder clientKey(String clientKey) { + this.clientKey = clientKey; + return this; + } + + public OperateGoodsProductQuery build() { + OperateGoodsProductQuery operateGoodsProductQuery = new OperateGoodsProductQuery(); + operateGoodsProductQuery.setProduct_id(productId); + operateGoodsProductQuery.setOut_id(outId); + operateGoodsProductQuery.setOp_type(opType); + operateGoodsProductQuery.setTenantId(tenantId); + operateGoodsProductQuery.setClientKey(clientKey); + return operateGoodsProductQuery; + } + } + + public String getProduct_id() { + return product_id; + } + + public void setProduct_id(String product_id) { + this.product_id = product_id; + } + + public String getOut_id() { + return out_id; + } + + public void setOut_id(String out_id) { + this.out_id = out_id; + } + + public Integer getOp_type() { + return op_type; + } + + public void setOp_type(Integer op_type) { + this.op_type = op_type; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/query/SaveGoodsProductQuery.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/SaveGoodsProductQuery.java new file mode 100644 index 0000000..e19f61d --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/SaveGoodsProductQuery.java @@ -0,0 +1,93 @@ +package com.dyj.applet.domain.query; + +import com.dyj.applet.domain.ProductStruct; +import com.dyj.applet.domain.SkuStruct; +import com.dyj.common.domain.query.BaseQuery; + +/** + * @author danmo + * @date 2024-05-06 10:48 + **/ +public class SaveGoodsProductQuery extends BaseQuery { + + /** + * 商品 + */ + private ProductStruct product; + + /** + * 售卖单元 + */ + private SkuStruct sku; + + /** + * 商品归属账户ID,非必传;传入时须与该商家满足商服关系;没有还没有商户ID,可以先不传 + */ + private String owner_account_id; + + public static SaveGoodsProductQueryBuilder builder() { + return new SaveGoodsProductQueryBuilder(); + } + + public static class SaveGoodsProductQueryBuilder { + private ProductStruct product; + private SkuStruct sku; + private String ownerAccountId; + private Integer tenantId; + private String clientKey; + + public SaveGoodsProductQueryBuilder product(ProductStruct product) { + this.product = product; + return this; + } + public SaveGoodsProductQueryBuilder sku(SkuStruct sku) { + this.sku = sku; + return this; + } + public SaveGoodsProductQueryBuilder ownerAccountId(String ownerAccountId) { + this.ownerAccountId = ownerAccountId; + return this; + } + public SaveGoodsProductQueryBuilder tenantId(Integer tenantId) { + this.tenantId = tenantId; + return this; + } + public SaveGoodsProductQueryBuilder clientKey(String clientKey) { + this.clientKey = clientKey; + return this; + } + public SaveGoodsProductQuery build() { + SaveGoodsProductQuery saveGoodsProductQuery = new SaveGoodsProductQuery(); + saveGoodsProductQuery.setProduct(product); + saveGoodsProductQuery.setSku(sku); + saveGoodsProductQuery.setOwner_account_id(ownerAccountId); + saveGoodsProductQuery.setTenantId(tenantId); + saveGoodsProductQuery.setClientKey(clientKey); + return saveGoodsProductQuery; + } + } + + public ProductStruct getProduct() { + return product; + } + + public void setProduct(ProductStruct product) { + this.product = product; + } + + public SkuStruct getSku() { + return sku; + } + + public void setSku(SkuStruct sku) { + this.sku = sku; + } + + public String getOwner_account_id() { + return owner_account_id; + } + + public void setOwner_account_id(String owner_account_id) { + this.owner_account_id = owner_account_id; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/query/SyncGoodsStockQuery.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/SyncGoodsStockQuery.java new file mode 100644 index 0000000..b4e185a --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/query/SyncGoodsStockQuery.java @@ -0,0 +1,87 @@ +package com.dyj.applet.domain.query; + +import com.dyj.applet.domain.StockStruct; +import com.dyj.common.domain.query.BaseQuery; + +/** + * @author danmo + * @date 2024-05-06 11:16 + **/ +public class SyncGoodsStockQuery extends BaseQuery { + + private String product_id; + private String out_id; + private StockStruct stock; + + public static SyncGoodsStockQueryBuilder build() { + return new SyncGoodsStockQueryBuilder(); + } + + public static final class SyncGoodsStockQueryBuilder { + private String productId; + private String outId; + private StockStruct stock; + private Integer tenantId; + private String clientKey; + + public SyncGoodsStockQueryBuilder productId(String productId) { + this.productId = productId; + return this; + } + + public SyncGoodsStockQueryBuilder outId(String outId) { + this.outId = outId; + return this; + } + + public SyncGoodsStockQueryBuilder stock(StockStruct stock) { + this.stock = stock; + return this; + } + + public SyncGoodsStockQueryBuilder tenantId(Integer tenantId) { + this.tenantId = tenantId; + return this; + } + + public SyncGoodsStockQueryBuilder clientKey(String clientKey) { + this.clientKey = clientKey; + return this; + } + + public SyncGoodsStockQuery build() { + SyncGoodsStockQuery syncGoodsStockQuery = new SyncGoodsStockQuery(); + syncGoodsStockQuery.setProduct_id(productId); + syncGoodsStockQuery.setOut_id(outId); + syncGoodsStockQuery.setStock(stock); + syncGoodsStockQuery.setTenantId(tenantId); + syncGoodsStockQuery.setClientKey(clientKey); + return syncGoodsStockQuery; + } + + } + + public String getProduct_id() { + return product_id; + } + + public void setProduct_id(String product_id) { + this.product_id = product_id; + } + + public String getOut_id() { + return out_id; + } + + public void setOut_id(String out_id) { + this.out_id = out_id; + } + + public StockStruct getStock() { + return stock; + } + + public void setStock(StockStruct stock) { + this.stock = stock; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsCategoryVo.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsCategoryVo.java new file mode 100644 index 0000000..39eca76 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsCategoryVo.java @@ -0,0 +1,24 @@ +package com.dyj.applet.domain.vo; + +import com.dyj.applet.domain.CategoryInfo; +import com.dyj.common.domain.DyResult; +import com.dyj.common.domain.vo.BaseVo; + +import java.util.List; + +/** + * @author danmo + * @date 2024-05-06 13:52 + **/ +public class GoodsCategoryVo extends DyResult { + + private List category_list; + + public List getCategory_list() { + return category_list; + } + + public void setCategory_list(List category_list) { + this.category_list = category_list; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsProductDraftVo.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsProductDraftVo.java new file mode 100644 index 0000000..52bfc38 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsProductDraftVo.java @@ -0,0 +1,47 @@ +package com.dyj.applet.domain.vo; + +import com.dyj.applet.domain.ProductDraft; + +import java.util.List; + +/** + * @author danmo + * @date 2024-05-06 11:34 + **/ +public class GoodsProductDraftVo { + + /** + * 用于查询下一页 + */ + private String next_cursor; + /** + * 是否有下一页 + */ + private Boolean has_more; + + private List product_draft_list; + + public String getNext_cursor() { + return next_cursor; + } + + public void setNext_cursor(String next_cursor) { + this.next_cursor = next_cursor; + } + + public Boolean getHas_more() { + return has_more; + } + + public void setHas_more(Boolean has_more) { + this.has_more = has_more; + } + + public List getProduct_draft_list() { + return product_draft_list; + } + + public void setProduct_draft_list(List product_draft_list) { + this.product_draft_list = product_draft_list; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsProductOnlineVo.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsProductOnlineVo.java new file mode 100644 index 0000000..5a78f15 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsProductOnlineVo.java @@ -0,0 +1,46 @@ +package com.dyj.applet.domain.vo; + +import com.dyj.applet.domain.ProductOnline; + +import java.util.List; + +/** + * @author danmo + * @date 2024-05-06 13:36 + **/ +public class GoodsProductOnlineVo { + /** + * 用于查询下一页 + */ + private String next_cursor; + /** + * 是否有下一页 + */ + private Boolean has_more; + + private List product_online_list; + + public String getNext_cursor() { + return next_cursor; + } + + public void setNext_cursor(String next_cursor) { + this.next_cursor = next_cursor; + } + + public Boolean getHas_more() { + return has_more; + } + + public void setHas_more(Boolean has_more) { + this.has_more = has_more; + } + + public List getProduct_online_list() { + return product_online_list; + } + + public void setProduct_online_list(List product_online_list) { + this.product_online_list = product_online_list; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsTemplateVo.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsTemplateVo.java new file mode 100644 index 0000000..4451d20 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/GoodsTemplateVo.java @@ -0,0 +1,37 @@ +package com.dyj.applet.domain.vo; + +import com.dyj.applet.domain.ProductAttr; + +import java.util.List; + +/** + * @author danmo + * @date 2024-05-06 11:29 + **/ +public class GoodsTemplateVo { + + /** + * 商品属性列表 + */ + private List product_attrs; + /** + * SKU属性列表 + */ + private List sku_attrs; + + public List getProduct_attrs() { + return product_attrs; + } + + public void setProduct_attrs(List product_attrs) { + this.product_attrs = product_attrs; + } + + public List getSku_attrs() { + return sku_attrs; + } + + public void setSku_attrs(List sku_attrs) { + this.sku_attrs = sku_attrs; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/SaveGoodsProductVo.java b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/SaveGoodsProductVo.java new file mode 100644 index 0000000..d12c0f7 --- /dev/null +++ b/dy-java-applet/src/main/java/com/dyj/applet/domain/vo/SaveGoodsProductVo.java @@ -0,0 +1,20 @@ +package com.dyj.applet.domain.vo; + +/** + * @author danmo + * @date 2024-05-06 10:56 + **/ +public class SaveGoodsProductVo { + /** + * 创建/更新商品成功后产生,与老接口spu_id一致 + */ + private String product_id; + + public String getProduct_id() { + return product_id; + } + + public void setProduct_id(String product_id) { + this.product_id = product_id; + } +} diff --git a/dy-java-applet/src/main/java/com/dyj/applet/handler/LifeServiceHandler.java b/dy-java-applet/src/main/java/com/dyj/applet/handler/LifeServiceHandler.java index 91b9b6f..ba6d10b 100644 --- a/dy-java-applet/src/main/java/com/dyj/applet/handler/LifeServiceHandler.java +++ b/dy-java-applet/src/main/java/com/dyj/applet/handler/LifeServiceHandler.java @@ -1,9 +1,14 @@ package com.dyj.applet.handler; +import com.dtflys.forest.annotation.JSONBody; +import com.dtflys.forest.annotation.Query; +import com.dtflys.forest.annotation.Var; import com.dyj.applet.domain.query.*; import com.dyj.applet.domain.vo.*; import com.dyj.common.config.AgentConfiguration; +import com.dyj.common.domain.DyProductResult; import com.dyj.common.domain.DyResult; +import com.dyj.common.domain.query.BaseQuery; import com.dyj.common.domain.vo.BaseVo; import java.util.List; @@ -147,8 +152,9 @@ public class LifeServiceHandler extends AbstractAppletHandler { /** * (老版本)多门店SPU库存同步 + * * @param spuExtId 接入方商品ID - * @param stock 库存 + * @param stock 库存 * @return DyResult */ public DyResult spuStockSync(String spuExtId, Long stock) { @@ -172,4 +178,131 @@ public class LifeServiceHandler extends AbstractAppletHandler { public DyResult spuQuery(String spuExtId, Boolean needSpuDraft, Integer spuDraftCount, List supplierIdsForFilterReason) { return getLifeServicesClient().spuQuery(baseQuery(), spuExtId, needSpuDraft, spuDraftCount, supplierIdsForFilterReason); } + + /** + * 创建/修改团购商品 + * + * @param query 入参 + * @return DyProductResult + */ + public DyProductResult saveGoodsProduct(SaveGoodsProductQuery query) { + baseQuery(query); + return getLifeServicesClient().saveGoodsProduct(query); + } + + /** + * 免审修改商品 + * + * @param query 入参 + * @return DyProductResult + */ + public DyProductResult freeAuditGoodsProduct(FreeAuditGoodsProductQuery query) { + baseQuery(query); + return getLifeServicesClient().freeAuditGoodsProduct(query); + } + + /** + * 上下架商品 + * + * @param productId 商品ID + * @param outId 商品外部ID + * @param opType 操作类型 1-上线 2-下线 + * @return DyProductResult + */ + public DyProductResult operateGoodsProduct(String productId, String outId, Integer opType) { + return getLifeServicesClient().operateGoodsProduct(OperateGoodsProductQuery.build() + .productId(productId) + .outId(outId) + .opType(opType) + .tenantId(agentConfiguration.getTenantId()) + .clientKey(agentConfiguration.getClientKey()) + .build()); + } + + /** + * 同步库存 + * + * @param query 入参 + * @return DyProductResult + */ + public DyProductResult syncGoodsStock(SyncGoodsStockQuery query) { + baseQuery(query); + return getLifeServicesClient().syncGoodsStock(query); + } + + /** + * 查询商品模板 + * + * @param categoryId 行业类目;详细见; 商品类目表 + * @param productType 商品类型 1 : 团购套餐 3 : 预售券 4 : 日历房 5 : 门票 7 : 旅行跟拍 8 : 一日游 11 : 代金券 + * @return DyProductResult + */ + public DyProductResult getGoodsTemplate(String categoryId, Integer productType) { + return getLifeServicesClient().getGoodsTemplate(baseQuery(), categoryId, productType); + } + + /** + * 查询商品草稿数据 + * + * @param productIds 商品ID列表(逗号分隔) + * @param outIds 外部商品ID列表(逗号分隔) + * @return DyProductResult + */ + public DyProductResult getGoodsProductDraft(String productIds, String outIds) { + return getLifeServicesClient().getGoodsProductDraft(baseQuery(), productIds, outIds); + } + + /** + * 查询商品线上数据 + * + * @param productIds 商品ID列表(逗号分隔) + * @param outIds 外部商品ID列表(逗号分隔) + * @return DyProductResult + */ + public DyProductResult getGoodsProductOnline(String productIds, String outIds) { + return getLifeServicesClient().getGoodsProductOnline(baseQuery(), productIds, outIds); + } + + /** + * 查询商品线上数据列表 + * + * @param cursor 第一页不传,之后用前一次返回的next_cursor传入进行翻页 + * @param count 分页数量,不传默认为5 + * @param status 过滤在线状态 1-在线 2-下线 3-封禁 + * @return DyProductResult + */ + public DyProductResult queryGoodsProductOnlineList(String cursor, Integer count, Integer status) { + return getLifeServicesClient().queryGoodsProductOnlineList(baseQuery(), cursor, count, status); + } + + /** + * 查询商品草稿数据列表 + * @param cursor 第一页不传,之后用前一次返回的next_cursor传入进行翻页 + * @param count 分页数量,不传默认为5 + * @param status 过滤草稿状态,10-审核中 12-审核失败 1-审核通过 + * @return DyProductResult + */ + public DyProductResult queryGoodsProductDraftList(String cursor, Integer count, Integer status){ + return getLifeServicesClient().queryGoodsProductDraftList(baseQuery(), cursor, count, status); + } + + /** + * 创建/更新多SKU商品的SKU列表 + * @param query 入参 + * @return DyProductResult + */ + public DyProductResult batchSaveGoodsSku(BatchSaveGoodsSkuQuery query){ + baseQuery(query); + return getLifeServicesClient().batchSaveGoodsSku(query); + } + + /** + * 查询商品品类 + * @param categoryId 行业类目ID,返回当前id下的直系子类目信息;传0或者不传,均返回所有一级行业类目 + * @param accountId 服务商的入驻商户ID/代运营的商户ID,不传时默认为服务商身份 + * @return GoodsCategoryVo + */ + public GoodsCategoryVo getGoodsCategory(String categoryId, String accountId){ + return getLifeServicesClient().getGoodsCategory(baseQuery(), categoryId, accountId); + } } diff --git a/dy-java-common/src/main/java/com/dyj/common/domain/DyProductBase.java b/dy-java-common/src/main/java/com/dyj/common/domain/DyProductBase.java new file mode 100644 index 0000000..84472df --- /dev/null +++ b/dy-java-common/src/main/java/com/dyj/common/domain/DyProductBase.java @@ -0,0 +1,70 @@ +package com.dyj.common.domain; + +/** + * @author danmo + * @date 2024-05-06 10:54 + **/ +public class DyProductBase { + /** + * 请求日志ID + */ + private String log_id; + /** + * + * 网关状态码 + */ + private String gateway_code; + /** + * 网关状态信息 + */ + private String gateway_msg; + /** + * 业务状态码 + */ + private String biz_code; + /** + * + * 业务状态信息 + */ + private String biz_msg; + + public String getLog_id() { + return log_id; + } + + public void setLog_id(String log_id) { + this.log_id = log_id; + } + + public String getGateway_code() { + return gateway_code; + } + + public void setGateway_code(String gateway_code) { + this.gateway_code = gateway_code; + } + + public String getGateway_msg() { + return gateway_msg; + } + + public void setGateway_msg(String gateway_msg) { + this.gateway_msg = gateway_msg; + } + + public String getBiz_code() { + return biz_code; + } + + public void setBiz_code(String biz_code) { + this.biz_code = biz_code; + } + + public String getBiz_msg() { + return biz_msg; + } + + public void setBiz_msg(String biz_msg) { + this.biz_msg = biz_msg; + } +} diff --git a/dy-java-common/src/main/java/com/dyj/common/domain/DyProductResult.java b/dy-java-common/src/main/java/com/dyj/common/domain/DyProductResult.java new file mode 100644 index 0000000..ed5d549 --- /dev/null +++ b/dy-java-common/src/main/java/com/dyj/common/domain/DyProductResult.java @@ -0,0 +1,28 @@ +package com.dyj.common.domain; + +/** + * @author danmo + * @date 2024-05-06 10:53 + **/ +public class DyProductResult { + + private DyProductBase base; + + private T data; + + public DyProductBase getBase() { + return base; + } + + public void setBase(DyProductBase base) { + this.base = base; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } +} diff --git a/dy-java-common/src/main/java/com/dyj/common/enums/DyAppletUrlPathEnum.java b/dy-java-common/src/main/java/com/dyj/common/enums/DyAppletUrlPathEnum.java index 397fe8c..c9b1838 100644 --- a/dy-java-common/src/main/java/com/dyj/common/enums/DyAppletUrlPathEnum.java +++ b/dy-java-common/src/main/java/com/dyj/common/enums/DyAppletUrlPathEnum.java @@ -148,6 +148,28 @@ public enum DyAppletUrlPathEnum { SPU_STOCK_SYNC("spuStockSync", "/poi/v2/spu/stock_update/"), //(老版本)多门店SPU信息查询 SPU_QUERY("spuQuery", "/poi/v2/spu/get/"), + //创建/修改团购商品 + SAVE_GOODS_PRODUCT("saveGoodsProduct", "/life/goods/product/save/"), + //免审修改商品 + FREE_AUDIT_GOODS_PRODUCT("freeAuditGoodsProduct", "/life/goods/product/free_audit/"), + //上下架商品 + OPERATE_GOODS_PRODUCT("operateGoodsProduct", "/life/goods/product/operate/"), + //同步库存 + SYNC_GOODS_STOCK("syncGoodsStock", "/life/goods/stock/sync/"), + //查询商品模板 + GET_GOODS_TEMPLATE("getGoodsTemplate", "/life/goods/template/get/"), + //查询商品草稿数据 + GET_GOODS_PRODUCT_DRAFT("getGoodsProductDraft", "/life/goods/product/draft/get/"), + //查询商品线上数据 + GET_GOODS_PRODUCT_ONLINE("getGoodsProductOnline", "/life/goods/product/online/get/"), + //查询商品线上数据列表 + QUERY_GOODS_PRODUCT_ONLINE_LIST("queryGoodsProductOnlineList", "/life/goods/product/online/list/"), + //查询商品草稿数据列表 + QUERY_GOODS_PRODUCT_DRAFT_LIST("queryGoodsProductDraftList", "/life/goods/product/draft/list/"), + //创建/更新多SKU商品的SKU列表 + BATCH_SAVE_GOODS_SKU("batchSaveGoodsSku", "/life/goods/sku/batch_save/"), + //查询商品品类 + GET_GOODS_CATEGORY("getGoodsCategory", "/life/goods/category/get/"), /**