diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java index 0a65df784..a299f8f98 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java @@ -117,7 +117,7 @@ public class TtCouponGoodsController extends DouyinBaseController { ttGoodsCategoryService.handTemplate(goodsTemplateGet,coupon); return new ResultData(goodsTemplateGet); }else { - GoodsTemplateGet goodsTemplateGet = ttMerchantPoiService.getTtGoodLifeSassService(getTenantInfo()).getGoodLifeSaasGoodsService().templateGet(categoryId, productType); + GoodsTemplateGet goodsTemplateGet = ttMerchantPoiService.getTtGoodLifeSassService(getTenantInfo()).getGoodsService().templateGet(categoryId, productType); ttGoodsCategoryService.adminIsShow(goodsTemplateGet); ttGoodsCategoryService.handTemplate(goodsTemplateGet,coupon); return new ResultData(goodsTemplateGet); @@ -145,10 +145,12 @@ public class TtCouponGoodsController extends DouyinBaseController { } try { - return ttCouponGoodsService.productSave(coupon); - } catch (Exception e) { - return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); - } + boolean isSaas = this.isGoodLifeSaas(); + return ttCouponGoodsService.productSave(coupon,isSaas); + } catch (Exception e) { + logger.error("allTreeList error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } } @ApiOperation("实时查询审核状态") @@ -158,7 +160,14 @@ public class TtCouponGoodsController extends DouyinBaseController { if (id == null) { return new ResultData(ResultData.ERROR, "缺少id"); } - return ttCouponGoodsService.productDraftGet(getTenantInfo(),id); + try { + boolean isSaas = this.isGoodLifeSaas(); + return ttCouponGoodsService.productDraftGet(getTenantInfo(),id,isSaas); + } catch (Exception e) { + logger.error("allTreeList error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } + } @ApiOperation("实时查询线上商品状态") @@ -168,7 +177,14 @@ public class TtCouponGoodsController extends DouyinBaseController { if (id == null) { return new ResultData(ResultData.ERROR, "缺少id"); } - return ttCouponGoodsService.productOnlineGet(getTenantInfo(),id); + try { + boolean isSaas = this.isGoodLifeSaas(); + return ttCouponGoodsService.productOnlineGet(getTenantInfo(),id,isSaas); + } catch (Exception e) { + logger.error("allTreeList error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } + } @ApiOperation("实时同步上下架状态") @@ -178,7 +194,14 @@ public class TtCouponGoodsController extends DouyinBaseController { if (id == null) { return new ResultData(ResultData.ERROR, "缺少id"); } - return ttCouponGoodsService.productOperate(getTenantInfo(),id); + try { + boolean isSaas = this.isGoodLifeSaas(); + return ttCouponGoodsService.productOperate(getTenantInfo(),id,isSaas); + } catch (Exception e) { + logger.error("allTreeList error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } + } @ApiOperation("实时同步库存") @@ -188,7 +211,14 @@ public class TtCouponGoodsController extends DouyinBaseController { if (id == null) { return new ResultData(ResultData.ERROR, "缺少id"); } - return ttCouponGoodsService.productStockSync(getTenantInfo(),id); + try { + boolean isSaas = this.isGoodLifeSaas(); + return ttCouponGoodsService.productStockSync(getTenantInfo(),id,isSaas); + } catch (Exception e) { + logger.error("allTreeList error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } + } diff --git a/mallinkAdmin/src/main/resources/db/migration/V2023053000001_douyin.sql b/mallinkAdmin/src/main/resources/db/migration/V2023053000001_douyin.sql index d7587487a..1b4f40bd6 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2023053000001_douyin.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2023053000001_douyin.sql @@ -6,5 +6,8 @@ CREATE TABLE `wx_mall_version` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='商场'; +###现有的抖音版本都要设置该表 -create table tt_goods_category_new like tt_goods_category; \ No newline at end of file +create table tt_goods_category_new like tt_goods_category; + +ALTER TABLE `mallink`.`wx_appinfo` ADD COLUMN `laike_id` varchar(30) COMMENT '来客ID'; \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxAppinfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxAppinfo.java index 2eeea5809..d9bc796e5 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAppinfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAppinfo.java @@ -51,6 +51,8 @@ public class WxAppinfo extends BaseTenantEntity { private String businessLicense; @io.swagger.annotations.ApiModelProperty(value="主体ICP证",name="icp") private String icp; + @io.swagger.annotations.ApiModelProperty(value="抖音来客ID",name="laikeId") + private String laikeId; public WxAppinfo(){} public WxAppinfo(Integer mouldType){ diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/TtGoodLifeSaasGoodsService.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/TtGoodLifeSaasGoodsService.java index e77abc9c4..7377d9ce9 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/TtGoodLifeSaasGoodsService.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/TtGoodLifeSaasGoodsService.java @@ -78,7 +78,7 @@ public interface TtGoodLifeSaasGoodsService { * product_ids string TRUE 商品ID列表(逗号分隔) * out_ids string TRUE 外部商品ID列表(逗号分隔) */ - List productDraftGet(String product_ids, String out_ids) throws WxErrorException ; + List productDraftGet(String accountId,String product_ids, String out_ids) throws WxErrorException ; /** * - 查询本client_key(或绑定的账号)对应的商品草稿列表 @@ -88,7 +88,7 @@ public interface TtGoodLifeSaasGoodsService { * status int FALSE 过滤草稿状态,10-审核中 12-审核失败 1-审核通过 * */ - ProductPage productDraftListGet(String cursor,Integer count,Integer status) throws WxErrorException ; + ProductPage productDraftListGet(String accountId,String cursor,Integer count,Integer status) throws WxErrorException ; /** * - - 使用商品ID或外部商品ID查询商品线上数据 @@ -96,7 +96,7 @@ public interface TtGoodLifeSaasGoodsService { * product_ids string TRUE 商品ID列表(逗号分隔) * out_ids string TRUE 外部商品ID列表(逗号分隔) */ - List productOnlineGet(String product_ids, String out_ids) throws WxErrorException ; + List productOnlineGet(String accountId,String product_ids, String out_ids) throws WxErrorException ; /** * - 查询本client_key(或绑定的账号)对应的商品线上列表 @@ -106,7 +106,7 @@ public interface TtGoodLifeSaasGoodsService { * status int FALSE 过滤在线状态 1-在线 2-下线 3-封禁 * */ - ProductPage productOnlineListGet(String cursor,Integer count,Integer status) throws WxErrorException ; + ProductPage productOnlineListGet(String accountId,String cursor,Integer count,Integer status) throws WxErrorException ; /** * - 创建或更新商品 @@ -123,7 +123,7 @@ public interface TtGoodLifeSaasGoodsService { * sold_end_time int64 FALSE 售卖结束时间 * stock_qty int64 FALSE 总库存 */ - boolean productFreeAudit(String productId,String outId,Long soldEndTime,Integer stockQty) throws WxErrorException ; + boolean productFreeAudit(String accountId,String productId,String outId,Long soldEndTime,Integer stockQty) throws WxErrorException ; /** * 创建/更新多SKU商品的SKU列表(团购/代金券不用对接这个接口) @@ -139,7 +139,7 @@ public interface TtGoodLifeSaasGoodsService { * op_type int64 TRUE 1-上线 2-下线 * @return */ - boolean productOperate(String product_id,String out_id,Integer op_type) throws WxErrorException ; + boolean productOperate(String accountId,String product_id,String out_id,Integer op_type) throws WxErrorException ; /** * 同步库存 @@ -149,6 +149,6 @@ public interface TtGoodLifeSaasGoodsService { * - limit_type int TRUE 库存上限类型,为2时stock_qty和avail_qty字段无意义 1-有限库存 2-无限库存 * - stock_qty int TRUE 总库存,limit_type=2时无意义 */ - boolean stockSync(String product_id,String out_id,Integer stock) throws WxErrorException ; + boolean stockSync(String accountId,String product_id,String out_id,Integer stock) throws WxErrorException ; } diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/TtGoodLifeSaasService.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/TtGoodLifeSaasService.java index 73832ac38..7c5e604a8 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/TtGoodLifeSaasService.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/TtGoodLifeSaasService.java @@ -10,5 +10,5 @@ import com.iformall.douyin.web.api.web.TtWebShopMatchService; */ public interface TtGoodLifeSaasService extends TtBasicService{ - TtGoodLifeSaasGoodsService getGoodLifeSaasGoodsService(); + TtGoodLifeSaasGoodsService getGoodsService(); } diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/impl/TtGoodLifeSaasGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/impl/TtGoodLifeSaasGoodsServiceImpl.java index 602d00ddb..737d2f430 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/impl/TtGoodLifeSaasGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/impl/TtGoodLifeSaasGoodsServiceImpl.java @@ -68,21 +68,21 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic } @Override - public List productDraftGet(String product_ids, String out_ids) throws WxErrorException { + public List productDraftGet(String accountId,String product_ids, String out_ids) throws WxErrorException { TtWebGoodsGetRequestExecutor getExecutor = new TtWebGoodsGetRequestExecutor(this.service.getRequestHttp()); String apiUrl = this.service.getTtWebConfig().getApiBegin().getPrefix() + this.PRODUCT_DRAFT_GET; String param = "" ; if(StringUtils.isNotBlank(product_ids)){ param = "product_ids=" + product_ids; - }else if(StringUtils.isNotBlank(out_ids)){ + }if(StringUtils.isNotBlank(out_ids)){ param = "out_ids=" + out_ids; } - String result = this.service.execute(getExecutor, apiUrl, param); + String result = this.service.execute(getExecutor, apiUrl, param+"&account_id="+accountId); BaseGoodsResult baseResult = GSON.fromJson(result, BaseGoodsResult.class); if(baseResult.isSuccess()){ Map map = (Map) baseResult.getData(); if(map != null){ - Object product_draft_list = map.get("product_draft_list"); + Object product_draft_list = map.get("product_drafts"); List list = GSON.fromJson(GSON.toJson(product_draft_list), new TypeReference>() {}.getType()); return list; @@ -94,7 +94,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic } @Override - public ProductPage productDraftListGet(String cursor, Integer count, Integer status) throws WxErrorException { + public ProductPage productDraftListGet(String accountId,String cursor, Integer count, Integer status) throws WxErrorException { TtWebGoodsGetRequestExecutor getExecutor = new TtWebGoodsGetRequestExecutor(this.service.getRequestHttp()); String apiUrl = this.service.getTtWebConfig().getApiBegin().getPrefix() + this.PRODUCT_DRAFT_LIST; String param = "" ; @@ -109,7 +109,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic if(status != null){ param += "&status=" + status; } - String result = this.service.execute(getExecutor, apiUrl, param); + String result = this.service.execute(getExecutor, apiUrl, param+"&account_id="+accountId); BaseGoodsResult baseResult = GSON.fromJson(result, new TypeReference>() {}.getType()); if(baseResult.isSuccess()){ @@ -120,7 +120,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic } @Override - public List productOnlineGet(String product_ids, String out_ids) throws WxErrorException { + public List productOnlineGet(String accountId,String product_ids, String out_ids) throws WxErrorException { TtWebGoodsGetRequestExecutor getExecutor = new TtWebGoodsGetRequestExecutor(this.service.getRequestHttp()); String apiUrl = this.service.getTtWebConfig().getApiBegin().getPrefix() + this.PRODUCT_ONLINE_GET; String param = "" ; @@ -129,12 +129,12 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic }else if(StringUtils.isNotBlank(out_ids)){ param = "out_ids=" + out_ids; } - String result = this.service.execute(getExecutor, apiUrl, param); + String result = this.service.execute(getExecutor, apiUrl, param+"&account_id="+accountId); BaseGoodsResult baseResult = GSON.fromJson(result, BaseGoodsResult.class); if(baseResult.isSuccess()){ Map map = (Map) baseResult.getData(); if(map != null){ - Object product_online_list = map.get("product_online_list"); + Object product_online_list = map.get("product_onlines"); List list = GSON.fromJson(GSON.toJson(product_online_list), new TypeReference>() {}.getType()); return list; @@ -146,7 +146,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic } @Override - public ProductPage productOnlineListGet(String cursor, Integer count, Integer status) throws WxErrorException { + public ProductPage productOnlineListGet(String accountId,String cursor, Integer count, Integer status) throws WxErrorException { TtWebGoodsGetRequestExecutor getExecutor = new TtWebGoodsGetRequestExecutor(this.service.getRequestHttp()); String apiUrl = this.service.getTtWebConfig().getApiBegin().getPrefix() + this.PRODUCT_ONLINE_LIST; String param = "" ; @@ -161,7 +161,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic if(status != null){ param += "&status=" + status; } - String result = this.service.execute(getExecutor, apiUrl, param); + String result = this.service.execute(getExecutor, apiUrl, param+"&account_id="+accountId); BaseGoodsResult baseResult = GSON.fromJson(result, new TypeReference>() {}.getType()); if(baseResult.isSuccess()){ @@ -186,7 +186,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic } @Override - public boolean productFreeAudit(String productId, String outId, Long soldEndTime, Integer stockQty) throws WxErrorException { + public boolean productFreeAudit(String accountId,String productId, String outId, Long soldEndTime, Integer stockQty) throws WxErrorException { TtWebGoodsPostRequestExecutor postExecutor = new TtWebGoodsPostRequestExecutor(this.service.getRequestHttp()); String apiUrl = this.service.getTtWebConfig().getApiBegin().getPrefix() + this.PRODUCT_FREE_AUDIT; Map map = new HashMap<>(); @@ -201,6 +201,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic if(stockQty != null){ map.put("stock_qty",stockQty); } + map.put("account_id",accountId); String result = this.service.execute(postExecutor, apiUrl, GSON.toJson(map)); BaseGoodsResult baseResult = GSON.fromJson(result, BaseGoodsResult.class); if(baseResult.isSuccess()){ @@ -224,7 +225,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic } @Override - public boolean productOperate(String product_id, String out_id, Integer op_type) throws WxErrorException { + public boolean productOperate(String accountId,String product_id, String out_id, Integer op_type) throws WxErrorException { TtWebGoodsPostRequestExecutor postExecutor = new TtWebGoodsPostRequestExecutor(this.service.getRequestHttp()); String apiUrl = this.service.getTtWebConfig().getApiBegin().getPrefix() + this.PRODUCT_OPERATE; Map map = new HashMap<>(); @@ -234,6 +235,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic map.put("out_id",out_id); } map.put("op_type",op_type); + map.put("account_id",accountId); String result = this.service.execute(postExecutor, apiUrl, GSON.toJson(map)); BaseGoodsResult baseResult = GSON.fromJson(result, BaseGoodsResult.class); if(baseResult.isSuccess()){ @@ -244,7 +246,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic } @Override - public boolean stockSync(String product_id, String out_id, Integer stock) throws WxErrorException { + public boolean stockSync(String accountId,String product_id, String out_id, Integer stock) throws WxErrorException { TtWebGoodsPostRequestExecutor postExecutor = new TtWebGoodsPostRequestExecutor(this.service.getRequestHttp()); String apiUrl = this.service.getTtWebConfig().getApiBegin().getPrefix() + this.STOCK_SYNC; Map map = new HashMap<>(); @@ -261,6 +263,7 @@ public class TtGoodLifeSaasGoodsServiceImpl implements TtGoodLifeSaasGoodsServic stockStruct.put("stock_qty",stock); } map.put("stock",stockStruct); + map.put("account_id",accountId); String result = this.service.execute(postExecutor, apiUrl, GSON.toJson(map)); BaseGoodsResult baseResult = GSON.fromJson(result, BaseGoodsResult.class); if(baseResult.isSuccess()){ diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/impl/TtGoodLifeSaasServiceImpl.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/impl/TtGoodLifeSaasServiceImpl.java index 5c4348504..8d6b65661 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/impl/TtGoodLifeSaasServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/goodlifesaas/impl/TtGoodLifeSaasServiceImpl.java @@ -13,7 +13,7 @@ public class TtGoodLifeSaasServiceImpl extends TtBasicServiceImpl implements TtG private TtGoodLifeSaasGoodsService shopMatchService = new TtGoodLifeSaasGoodsServiceImpl(this); @Override - public TtGoodLifeSaasGoodsService getGoodLifeSaasGoodsService() { + public TtGoodLifeSaasGoodsService getGoodsService() { return this.shopMatchService; } diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/bean/Product.java b/mallinkService/src/main/java/com/iformall/douyin/web/bean/Product.java index 177c9ab8a..891df11f7 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/bean/Product.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/bean/Product.java @@ -19,6 +19,12 @@ public class Product implements Serializable { private static final long serialVersionUID = -1L; + /** + * 抖音来客ID + */ + @SerializedName(value = "account_id") + private String accountId; + /** * 草稿状态 10-审核中 12-审核失败 1-审核通过 */ @@ -125,6 +131,8 @@ public class Product implements Serializable { @SerializedName(value = "poi_list") private List poiList; + @SerializedName(value = "pois") + private List pois; /** * 商品属性KV */ diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/bean/ProductSku.java b/mallinkService/src/main/java/com/iformall/douyin/web/bean/ProductSku.java index 184b26794..1d074c0f7 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/bean/ProductSku.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/bean/ProductSku.java @@ -19,6 +19,12 @@ public class ProductSku implements Serializable { private static final long serialVersionUID = -1L; + /** + * 来客ID + */ + @SerializedName(value = "account_id") + private String accountId; + /** * 商品Id * 创建时不必填写,更新时如有out_id可不填写 diff --git a/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java b/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java index 07fb6875a..7ae554d3c 100644 --- a/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java +++ b/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java @@ -18,19 +18,19 @@ public interface TtCouponGoodsService { // // ResultData channelList(TtCouponChannelVo ttChannelVo, Integer pageNum, Integer pageSize); - ResultData productSave(WxCoupon coupon) throws Exception; + ResultData productSave(WxCoupon coupon,boolean isSaas) throws Exception; int handlerTtGoodsAudit(TtCouponChannelPoi couponChannelPoi); - ResultData productDraftGet(TenantEntity tenantEntity,Long id); + ResultData productDraftGet(TenantEntity tenantEntity,Long id,boolean isSaas); - ResultData productOnlineGet(TenantEntity tenantEntity,Long id); + ResultData productOnlineGet(TenantEntity tenantEntity,Long id,boolean isSaas); - ResultData productOperate(TenantEntity tenantInfo, Long id); + ResultData productOperate(TenantEntity tenantInfo, Long id,boolean isSaas); - ResultData productStockSync(TenantEntity tenantInfo, Long id); + ResultData productStockSync(TenantEntity tenantInfo, Long id,boolean isSaas); - ResultData productFreeAudit(TenantEntity tenantInfo, Long id); + ResultData productFreeAudit(TenantEntity tenantInfo, Long id,boolean isSaas); //cps 佣金 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index a12d894a1..90e20d7e1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -165,7 +165,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { @Override @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) - public ResultData productSave(WxCoupon coupon) throws Exception { + public ResultData productSave(WxCoupon coupon,boolean isSaas) throws Exception { TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(coupon.getTenantId(),coupon.getId()); if(ttCouponChannelPoi != null && (EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) @@ -260,7 +260,11 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { List poiList = new ArrayList(); for (TtMerchantPoi poi: pois) { Product.PoiStruct poiStruct = new Product.PoiStruct(); - poiStruct.setSupplierExtId(poi.getSupplierExtId()); + if (!isSaas) { + poiStruct.setSupplierExtId(poi.getSupplierExtId()); + }else { + poiStruct.setPoiId(Long.parseLong(poi.getPoiId())); + } poiList.add(poiStruct); } @@ -342,7 +346,6 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { //提交审核 try { - TtWebService ttWebService = ttMerchantPoiService.getTtWebService(coupon); Product product = new Product(); Product.ProductStruct prostruct = new Product.ProductStruct(); prostruct.setOutId(coupon.getId().toString()); @@ -356,7 +359,11 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { prostruct.setSoldEndTime((long) DateUtils.getSecondTimestamp(wxCouponChannel.getEndTime())); prostruct.setOutUrl(getGoodsEntrySchema(coupon,wxCouponChannel.getId())); - prostruct.setPoiList(poiList); + if (isSaas) { + prostruct.setPois(poiList); + }else { + prostruct.setPoiList(poiList); + } Map productAttrKeyValueMap = ttattrs.getProductAttrKeyValueMap(); productAttrKeyValueMap.put("trade_url",getUpOrderEntrySchema(coupon,wxCouponChannel.getId())); prostruct.setAttrKeyValueMap(productAttrKeyValueMap); @@ -373,8 +380,17 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { skuStruct.setStatus(1); skuStruct.setAttrKeyValueMap(ttattrs.getSkuAttrKeyValueMap()); product.setSku(skuStruct); + + if (isSaas) { + product.setAccountId(getDouyinLaikeId(coupon)); + } - String productId = ttWebService.getGoodsService().productSave(product); + String productId = null; + if (isSaas) { + productId = ttMerchantPoiService.getTtGoodLifeSassService(coupon).getGoodsService().productSave(product); + }else { + productId = ttMerchantPoiService.getTtWebService(coupon).getGoodsService().productSave(product); + } if(StringUtils.isBlank(productId)){ throw new Exception("未获取到抖音商品product_id"); @@ -395,21 +411,35 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } } + private String getDouyinLaikeId(TenantEntity tenantEntity) throws Exception { + WxAppinfo appinfo = wxAppinfoService.getCAppInfo(tenantEntity, EnumAppPlat.TOUTIAO); + if (null == appinfo || StringUtils.isBlank(appinfo.getLaikeId())) { + throw new Exception("appinfo未配置laikeId"); + } + return appinfo.getLaikeId(); + } + + @Override public int handlerTtGoodsAudit(TtCouponChannelPoi couponChannelPoi) { return ttCouponChannelPoiMapper.updateBySpuId(couponChannelPoi); } @Override - public ResultData productDraftGet(TenantEntity tenantEntity,Long id) { + public ResultData productDraftGet(TenantEntity tenantEntity,Long id,boolean isSaas) { TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantEntity.getTenantId(),id); if(ttCouponChannelPoi == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该券未提交审核"); } try { - TtWebService ttWebService = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi); - List products = ttWebService.getGoodsService().productDraftGet(null, ttCouponChannelPoi.getId().toString()); - if(products.size() > 0){ + List products = null; + if (isSaas) { + products = ttMerchantPoiService.getTtGoodLifeSassService(ttCouponChannelPoi).getGoodsService().productDraftGet(getDouyinLaikeId(tenantEntity),null, ttCouponChannelPoi.getId().toString()); + }else { + products = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi).getGoodsService().productDraftGet(null, ttCouponChannelPoi.getId().toString()); + } + + if(null != products && products.size() > 0){ Product product = products.get(0); if(product.getDraftStatus().intValue() == 12 && !EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ ttCouponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_rejection.getCode()); @@ -433,18 +463,25 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } catch (WxErrorException e) { e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getError().getErrorMsg()); - } + } catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getMessage()); + } } @Override - public ResultData productOnlineGet(TenantEntity tenantEntity,Long id) { + public ResultData productOnlineGet(TenantEntity tenantEntity,Long id,boolean isSaas) { TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantEntity.getTenantId(),id); if(ttCouponChannelPoi == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该券未提交审核"); } try { - TtWebService ttWebService = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi); - List products = ttWebService.getGoodsService().productOnlineGet(null, ttCouponChannelPoi.getId().toString()); + List products = null; + if (isSaas) { + products = ttMerchantPoiService.getTtGoodLifeSassService(ttCouponChannelPoi).getGoodsService().productOnlineGet(getDouyinLaikeId(ttCouponChannelPoi),null, ttCouponChannelPoi.getId().toString()); + }else { + products = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi).getGoodsService().productOnlineGet(null, ttCouponChannelPoi.getId().toString()); + } + if(products.size() > 0){ Product product = products.get(0); if(product.getOnlineStatus().intValue() == 1 && !EnumSpuSyncStatus.sync_put_on.getCode().equals(ttCouponChannelPoi.getStatus())){ @@ -470,11 +507,13 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } catch (WxErrorException e) { e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getError().getErrorMsg()); - } + } catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getMessage()); + } } @Override - public ResultData productOperate(TenantEntity tenantInfo, Long id) { + public ResultData productOperate(TenantEntity tenantInfo, Long id,boolean isSaas) { WxCoupon wxCoupon = wxCouponMapper.selectById(id, tenantInfo.getTenantId()); if(wxCoupon == null){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未找到"); @@ -505,8 +544,13 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } try { - TtWebService ttWebService = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi); - boolean b = ttWebService.getGoodsService().productOperate(null,wxCoupon.getId().toString(),op_type); + boolean b = false; + if (isSaas) { + b = ttMerchantPoiService.getTtGoodLifeSassService(ttCouponChannelPoi).getGoodsService().productOperate(getDouyinLaikeId(wxCoupon),null,wxCoupon.getId().toString(),op_type); + }else { + b = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi).getGoodsService().productOperate(null,wxCoupon.getId().toString(),op_type); + } + if(b){ TtCouponChannelPoi ccPoi = new TtCouponChannelPoi(); ccPoi.setId(ttCouponChannelPoi.getId()); @@ -522,11 +566,13 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } catch (WxErrorException e) { e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getError().getErrorMsg()); - } + } catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getMessage()); + } } @Override - public ResultData productStockSync(TenantEntity tenantInfo, Long id) { + public ResultData productStockSync(TenantEntity tenantInfo, Long id,boolean isSaas) { WxCoupon wxCoupon = wxCouponMapper.selectById(id, tenantInfo.getTenantId()); if(wxCoupon == null){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未找到"); @@ -537,8 +583,12 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { - TtWebService ttWebService = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi); - boolean b = ttWebService.getGoodsService().stockSync(null,wxCoupon.getId().toString(),wxCoupon.getInventory()); + boolean b = false; + if (isSaas) { + b = ttMerchantPoiService.getTtGoodLifeSassService(ttCouponChannelPoi).getGoodsService().stockSync(getDouyinLaikeId(ttCouponChannelPoi),null,wxCoupon.getId().toString(),wxCoupon.getInventory()); + } else { + b = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi).getGoodsService().stockSync(null,wxCoupon.getId().toString(),wxCoupon.getInventory()); + } if(b){ return new ResultData(); }else{ @@ -548,11 +598,13 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } catch (WxErrorException e) { e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getError().getErrorMsg()); - } + } catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getMessage()); + } } @Override - public ResultData productFreeAudit(TenantEntity tenantInfo, Long id) { + public ResultData productFreeAudit(TenantEntity tenantInfo, Long id,boolean isSaas) { WxCoupon wxCoupon = wxCouponMapper.selectById(id, tenantInfo.getTenantId()); if(wxCoupon == null){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未找到"); @@ -563,9 +615,15 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { - TtWebService ttWebService = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi); - boolean b = ttWebService.getGoodsService().productFreeAudit(null,wxCoupon.getId().toString(), - null,wxCoupon.getInventory()); + boolean b = false; + if (isSaas) { + b = ttMerchantPoiService.getTtGoodLifeSassService(ttCouponChannelPoi).getGoodsService().productFreeAudit(getDouyinLaikeId(ttCouponChannelPoi),null,wxCoupon.getId().toString(), + null,wxCoupon.getInventory()); + }else { + b = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi).getGoodsService().productFreeAudit(null,wxCoupon.getId().toString(), + null,wxCoupon.getInventory()); + } + if(b){ return new ResultData(); }else{ @@ -575,7 +633,10 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } catch (WxErrorException e) { e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getError().getErrorMsg()); - } + } catch (Exception e) { + e.printStackTrace(); + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),e.getMessage()); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java index 580add406..0106167a4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java @@ -607,7 +607,7 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { TenantEntity defaultEntity = new TenantEntity(); defaultEntity.setTenantId("789"); TtGoodLifeSaasService ttWebService = ttMerchantPoiService.getTtGoodLifeSassService(defaultEntity); - goodsCategories = ttWebService.getGoodLifeSaasGoodsService().categoryGet(categoryId, null); + goodsCategories = ttWebService.getGoodsService().categoryGet(categoryId, null); }else { TtWebService ttWebService = ttMerchantPoiService.getTtWebService(null); goodsCategories = ttWebService.getGoodsService().categoryGet(categoryId, null); @@ -715,7 +715,7 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { private void handSyncCategoryForNew(TtGoodLifeSaasService ttWebService,Integer category_id,Date now){ try { - List goodsCategories = ttWebService.getGoodLifeSaasGoodsService().categoryGet(category_id, null); + List goodsCategories = ttWebService.getGoodsService().categoryGet(category_id, null); if(goodsCategories != null){ TtGoodsCategoryNew record = new TtGoodsCategoryNew(); record.setParentId(category_id); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index 586cb65b4..519db7e98 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -1465,7 +1465,6 @@ public class WxCouponServiceImpl implements WxCouponService { } private void spuStockSync(TenantEntity tenantEntity,Long couponId){ - FmInsideProductPushMsg productPush = new FmInsideProductPushMsg(); productPush.setDelayTimeLevel(3); productPush.setMsgType(EnumMsgRecordType.INSIDE_PRODUCT_PUSH.getCode()); @@ -1479,7 +1478,6 @@ public class WxCouponServiceImpl implements WxCouponService { } private void spuFreeAuditSync(TenantEntity tenantEntity,Long couponId){ - FmInsideProductPushMsg productPush = new FmInsideProductPushMsg(); productPush.setDelayTimeLevel(3); productPush.setMsgType(EnumMsgRecordType.INSIDE_PRODUCT_PUSH.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideProductPushMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideProductPushMsgServiceImpl.java index 4beb160dd..3927d7697 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideProductPushMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideProductPushMsgServiceImpl.java @@ -1,11 +1,14 @@ package com.iformall.service.msg.impl; +import com.iformall.domain.po.WxMallVersion; import com.iformall.domain.po.msg.BaseMsg; import com.iformall.domain.po.msg.FmInsideProductPushMsg; +import com.iformall.enums.EnumDouyinApplicationVersion; import com.iformall.enums.EnumPushType; import com.iformall.service.TtCouponGoodsService; import com.iformall.service.TtGoodsCategoryService; import com.iformall.service.TtMerchantPoiService; +import com.iformall.service.WxMallService; import com.iformall.service.msg.MsgSendService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,6 +30,9 @@ public class FmInsideProductPushMsgServiceImpl implements MsgSendService { @Autowired private TtCouponGoodsService ttCouponGoodsService; + + @Autowired + private WxMallService wxMallService; @Override public void send(BaseMsg baseMsg) throws Exception{ @@ -36,14 +42,20 @@ public class FmInsideProductPushMsgServiceImpl implements MsgSendService { Thread.currentThread().sleep(1000);//延时秒 }catch(Exception e){} + WxMallVersion mallVersion = wxMallService.getMallVersion(msg.getTenantInfo()); + boolean isSaas = false; + if (null != mallVersion && null != mallVersion.getDouyinApplicationVersion()) { + isSaas = EnumDouyinApplicationVersion.isSaas(mallVersion.getDouyinApplicationVersion()); + } + if(EnumPushType.SPU_STATUS_SYNC.equals(msg.getSyncType())){ - ttCouponGoodsService.productOperate(msg.getTenantInfo(),msg.getCouponId()); + ttCouponGoodsService.productOperate(msg.getTenantInfo(),msg.getCouponId(),isSaas); // poiService.spuStatusSync(msg.getTenantInfo(),msg.getCouponId()); }else if(EnumPushType.SPU_STOCK_SYNC.equals(msg.getSyncType())){ - ttCouponGoodsService.productStockSync(msg.getTenantInfo(),msg.getCouponId()); + ttCouponGoodsService.productStockSync(msg.getTenantInfo(),msg.getCouponId(),isSaas); // poiService.spuStockSync(msg.getTenantInfo(),msg.getCouponId()); }else if(EnumPushType.SPU_FREE_AUDIT_SYNC.equals(msg.getSyncType())){ - ttCouponGoodsService.productFreeAudit(msg.getTenantInfo(),msg.getCouponId()); + ttCouponGoodsService.productFreeAudit(msg.getTenantInfo(),msg.getCouponId(),isSaas); } } diff --git a/mallinkService/src/main/resources/mapper/WxAppinfoMapper.xml b/mallinkService/src/main/resources/mapper/WxAppinfoMapper.xml index b896b433b..e89c51a5a 100644 --- a/mallinkService/src/main/resources/mapper/WxAppinfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAppinfoMapper.xml @@ -24,13 +24,14 @@ + `id`,`tenant_id`,`app_id`,`parent_app_id`,`name`, `secret`,`token`,`aes_key`,`msg_data_format`,`access_token`,`last_token_time`,`expires_in`, - `pay_id`,`type`,`mould_type`,`enable`,`plat`,`sort_url`,`business_license`,`icp` + `pay_id`,`type`,`mould_type`,`enable`,`plat`,`sort_url`,`business_license`,`icp`,`laike_id` @@ -109,7 +110,7 @@