diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebGoodsServiceImpl.java index 54dbf4fab..00a966c23 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebGoodsServiceImpl.java @@ -3,9 +3,7 @@ package com.iformall.douyin.web.api.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonObject; +import com.google.gson.*; import com.iformall.douyin.web.api.*; import com.iformall.douyin.web.bean.*; import lombok.AllArgsConstructor; @@ -37,17 +35,19 @@ public class TtWebGoodsServiceImpl implements TtWebGoodsService { param += "&account_id=" + account_id; } String result = this.service.execute(getExecutor, apiUrl, param); - JsonObject asJsonObject = GSON.toJsonTree(result).getAsJsonObject(); - JsonObject data = asJsonObject.getAsJsonObject("data"); - int error_code = data.get("error_code").getAsInt(); - if(error_code == 0){ - List list = GSON.fromJson(asJsonObject.getAsJsonArray("category_list"), - new TypeReference>() {}.getType()); - return list; - }else{ - String description = data.get("description").getAsString(); - throw new WxErrorException(WxError.builder().errorCode(error_code).errorMsg(description).build()); - } + JsonObject jsonObject = GSON.fromJson(result, JsonObject.class); +// JsonElement jsonElement = GSON.toJsonTree(result); +// JsonObject asJsonObject = null; +// if(jsonElement.isJsonPrimitive()){ +// asJsonObject = jsonElement.getAsJsonPrimitive().getAsJsonObject(); +// }else{ +// asJsonObject = jsonElement.getAsJsonObject(); +// } + + JsonArray category_list = jsonObject.getAsJsonArray("category_list"); + List list = GSON.fromJson(category_list, + new TypeReference>() {}.getType()); + return list; } @Override diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumGoodsCategoryRate.java b/mallinkService/src/main/java/com/iformall/enums/EnumGoodsCategoryRate.java new file mode 100644 index 000000000..7dcc93ff6 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumGoodsCategoryRate.java @@ -0,0 +1,59 @@ +package com.iformall.enums; + +public enum EnumGoodsCategoryRate { + /** + * 类目费率 + * 1000000美食2.50% + * 8000000住宿4.50% + * 18000000游玩2.00% + * 4000000休闲娱乐3.50% + * 17000000丽人3.50% + * 22000000结婚8.00% + * 21000000亲子4.50% + * 7000000教育培训4.50% + * 其他3.50% + */ + + OTHER(0, "其他",350), + FINE_FOOD(1000000, "美食",250), + GET_ACCOMMODATION(8000000, "住宿",450), + PLAY(18000000, "游玩",200), + RECREATION_ENTERTAINMENT(4000000, "休闲娱乐",350), + BEAUTY(17000000, "丽人",350), + MARRY(22000000, "结婚",800), + PARENTING(21000000, "亲子",450), + EDUCATION(7000000, "教育培训",450), + + ; + + public static EnumGoodsCategoryRate getEnum(Integer code) { + for (EnumGoodsCategoryRate value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + private Integer rate; + + EnumGoodsCategoryRate(Integer code, String message,Integer rate) { + this.code = code; + this.message = message; + this.rate = rate; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } + + public Integer getRate() { + return rate; + } +} 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 d849ba392..e51c59c51 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java @@ -9,6 +9,7 @@ import com.iformall.douyin.web.api.TtWebService; import com.iformall.douyin.web.bean.GoodsCategory; import com.iformall.douyin.web.bean.GoodsTemplateGet; import com.iformall.enums.EnumCouponValidType; +import com.iformall.enums.EnumGoodsCategoryRate; import com.iformall.enums.EnumYesOrNo; import com.iformall.mapper.TtGoodsCategoryMapper; import com.iformall.service.TtGoodsCategoryService; @@ -471,7 +472,7 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { @Override public void syncGet() { TtWebService ttWebService = ttMerchantPoiService.getTtWebService(null); - handSyncCategory(ttWebService,0,new Date()); + handSyncCategory(ttWebService,0,null,new Date()); } /** @@ -480,7 +481,7 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { * @param category_id * @param now */ - private void handSyncCategory(TtWebService ttWebService,Integer category_id,Date now){ + private void handSyncCategory(TtWebService ttWebService,Integer category_id,EnumGoodsCategoryRate categoryRate,Date now){ try { List goodsCategories = ttWebService.getGoodsService().categoryGet(category_id, null); if(goodsCategories != null){ @@ -488,12 +489,21 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { record.setParentId(category_id); List listAll = ttGoodsCategoryMapper.findIdAll(record); for (GoodsCategory gc:goodsCategories) { + if(category_id.intValue() == 0){ + categoryRate = EnumGoodsCategoryRate.getEnum(gc.getCategoryId()); + if(categoryRate == null){ + categoryRate = EnumGoodsCategoryRate.OTHER; + } + } + TtGoodsCategory updgc = new TtGoodsCategory(); updgc.setId(gc.getCategoryId()); updgc.setLevel(gc.getLevel()); + updgc.setName(gc.getName()); updgc.setParentId(gc.getParentId()); updgc.setEnable(gc.getEnable()?EnumYesOrNo.YES.getCode():EnumYesOrNo.NO.getCode()); updgc.setIsLeaf(gc.getEnable()?EnumYesOrNo.YES.getCode():EnumYesOrNo.NO.getCode()); + updgc.setServiceFee(categoryRate.getRate()); updgc.setIsDel(EnumYesOrNo.NO.getCode()); updgc.setUpdateDate(now); if(listAll.contains(gc.getCategoryId())){ @@ -504,7 +514,7 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { ttGoodsCategoryMapper.insert(updgc); } if(!gc.getIsLeaf()){ - handSyncCategory(ttWebService,gc.getCategoryId(),now); + handSyncCategory(ttWebService,gc.getCategoryId(),categoryRate,now); } } updateDelByIds(listAll,now);