diff --git a/core/common/src/main/java/com/qihang/common/api/ShopApiParams.java b/core/common/src/main/java/com/qihang/common/api/ShopApiParams.java index 8b2182e3..ca6513dd 100644 --- a/core/common/src/main/java/com/qihang/common/api/ShopApiParams.java +++ b/core/common/src/main/java/com/qihang/common/api/ShopApiParams.java @@ -1,67 +1,14 @@ package com.qihang.common.api; +import lombok.Data; + +@Data public class ShopApiParams { private String appKey; private String appSecret; private String accessToken; - private String apiRequestUrl; - private String tokenRequestUrl; + private String redirectUrl; private String serverUrl; - private String sellerId; + private Long sellerShopId; - public String getSellerId() { - return sellerId; - } - - public void setSellerId(String sellerId) { - this.sellerId = sellerId; - } - - public String getServerUrl() { - return serverUrl; - } - - public void setServerUrl(String serverUrl) { - this.serverUrl = serverUrl; - } - - public String getTokenRequestUrl() { - return tokenRequestUrl; - } - - public void setTokenRequestUrl(String tokenRequestUrl) { - this.tokenRequestUrl = tokenRequestUrl; - } - - public String getAppKey() { - return appKey; - } - - public void setAppKey(String appKey) { - this.appKey = appKey; - } - - public String getAppSecret() { - return appSecret; - } - - public void setAppSecret(String appSecret) { - this.appSecret = appSecret; - } - - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public String getApiRequestUrl() { - return apiRequestUrl; - } - - public void setApiRequestUrl(String apiRequestUrl) { - this.apiRequestUrl = apiRequestUrl; - } } diff --git a/core/common/src/main/java/com/qihang/common/common/ResultVoEnum.java b/core/common/src/main/java/com/qihang/common/common/ResultVoEnum.java index ab280d74..ca6b8a9d 100644 --- a/core/common/src/main/java/com/qihang/common/common/ResultVoEnum.java +++ b/core/common/src/main/java/com/qihang/common/common/ResultVoEnum.java @@ -8,7 +8,7 @@ package com.qihang.common.common; */ public enum ResultVoEnum { SUCCESS("成功", 0), - TokenFail("Token失效",401), + TokenFail("Token失效",1401), NotFound("NotFound", 404),//没有找到 Unable("Unable", 403),//无法处理 // NotLogin("未登录", 400),//未登录 diff --git a/open-api/dou-api/libs/dou-api-0.3.jar b/open-api/dou-api/libs/dou-api-0.3.jar new file mode 100644 index 00000000..13452ea0 Binary files /dev/null and b/open-api/dou-api/libs/dou-api-0.3.jar differ diff --git a/open-api/dou-api/libs/doudian-sdk-java-1.1.0-20240217120650.jar b/open-api/dou-api/libs/doudian-sdk-java-1.1.0-20240217120650.jar deleted file mode 100644 index ce1f56ba..00000000 Binary files a/open-api/dou-api/libs/doudian-sdk-java-1.1.0-20240217120650.jar and /dev/null differ diff --git a/open-api/dou-api/libs/doudian-sdk-java-1.1.0-20240311114923.jar b/open-api/dou-api/libs/doudian-sdk-java-1.1.0-20240311114923.jar deleted file mode 100644 index 5cd54848..00000000 Binary files a/open-api/dou-api/libs/doudian-sdk-java-1.1.0-20240311114923.jar and /dev/null differ diff --git a/open-api/dou-api/pom.xml b/open-api/dou-api/pom.xml index d33d2938..a67d31e7 100644 --- a/open-api/dou-api/pom.xml +++ b/open-api/dou-api/pom.xml @@ -25,79 +25,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + doudian - doudian-sdk-java - 1.1.0-20240217120650 + dou-api + 0.3 system - ${project.basedir}/libs/doudian-sdk-java-1.1.0-20240217120650.jar + ${project.basedir}/libs/dou-api-0.3.jar - - - - - - + - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/config/MybatisPlusConfig.java b/open-api/dou-api/src/main/java/com/qihang/dou/config/MybatisPlusConfig.java new file mode 100644 index 00000000..1bc1b9ce --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/config/MybatisPlusConfig.java @@ -0,0 +1,19 @@ +package com.qihang.dou.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan("com.qihang.dou.mapper") +public class MybatisPlusConfig { + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); //注意使用哪种数据库 + return interceptor; + } +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouApiHelper.java b/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouApiHelper.java new file mode 100644 index 00000000..1ee798ac --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouApiHelper.java @@ -0,0 +1,54 @@ +package com.qihang.dou.controller; + +import cn.qihangerp.open.dou.common.ApiResultVo; +import com.qihang.common.api.ShopApiParams; +import com.qihang.common.common.ResultVoEnum; +import com.qihang.common.enums.EnumShopType; +import com.qihang.dou.service.SShopPlatformService; +import com.qihang.dou.service.SShopService; +import lombok.AllArgsConstructor; +import lombok.extern.java.Log; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +@AllArgsConstructor +@Log +@Component +public class DouApiHelper { + private final SShopService shopService; + private final SShopPlatformService platformService; + + public ApiResultVo checkBefore(Long shopId) { + log.info("/**************主动更新dou 参数检查****************/"); + var shop = shopService.selectShopById(shopId); + + if (shop == null) return ApiResultVo.error(ResultVoEnum.ParamsError.getIndex(), "参数错误,没有找到店铺"); + + if (shop.getPlatform() != EnumShopType.DOU.getIndex()) + return ApiResultVo.error(ResultVoEnum.ParamsError.getIndex(), "参数错误,店铺不是dou店铺"); + + if(shop.getSellerShopId()==null || shop.getSellerShopId()<=0) return ApiResultVo.error(ResultVoEnum.ParamsError.getIndex(), "店铺配置错误,请配置店铺平台shop_id"); + + var thirdConfig = platformService.getById(shop.getPlatform().longValue()); + if (thirdConfig == null) return ApiResultVo.error(ResultVoEnum.SystemException.getIndex(), "系统错误,没有找到第三方平台的配置信息"); + else if (StringUtils.isEmpty(thirdConfig.getAppKey())) + return ApiResultVo.error(ResultVoEnum.SystemException.getIndex(), "系统错误,第三方平台配置信息不完整,缺少appkey"); + else if (StringUtils.isEmpty(thirdConfig.getAppSecret())) + return ApiResultVo.error(ResultVoEnum.SystemException.getIndex(), "系统错误,第三方平台配置信息不完整,缺少appSecret"); +// else if (StringUtils.isEmpty(thirdConfig.getServerUrl())) +// return new ApiResult<>(ResultVoEnum.SystemException.getIndex(), "系统错误,第三方平台配置信息不完整,缺少server_url"); + + ShopApiParams params = new ShopApiParams(); + params.setAppKey(thirdConfig.getAppKey()); + params.setAppSecret(thirdConfig.getAppSecret()); + params.setAccessToken(shop.getAccessToken()); + params.setServerUrl(thirdConfig.getServerUrl()); + params.setRedirectUrl(thirdConfig.getRedirectUrl()); + params.setSellerShopId(shop.getSellerShopId()); + if (!StringUtils.hasText(shop.getAccessToken())) + return ApiResultVo.error(ResultVoEnum.TokenFail.getIndex(), "Token已过期,请重新授权",params); + + return ApiResultVo.success(params); + } +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouGoodsApiController.java b/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouGoodsApiController.java new file mode 100644 index 00000000..2be9a041 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouGoodsApiController.java @@ -0,0 +1,100 @@ +package com.qihang.dou.controller; + + +import cn.qihangerp.open.dou.DouGoodsApiHelper; +import cn.qihangerp.open.dou.DouTokenApiHelper; +import cn.qihangerp.open.dou.common.ApiResultVo; +import cn.qihangerp.open.dou.model.GoodsListResultVo; +import cn.qihangerp.open.dou.model.Token; +import com.qihang.common.common.AjaxResult; +import com.qihang.common.common.ResultVoEnum; +import com.qihang.common.enums.HttpStatus; +import com.qihang.dou.domain.OmsDouGoods; +import com.qihang.dou.domain.OmsDouGoodsSku; +import com.qihang.dou.domain.bo.DouRequest; +import com.qihang.dou.service.OmsDouGoodsService; +import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@AllArgsConstructor +@RequestMapping("/goods") +@RestController +public class DouGoodsApiController { + private static Logger logger = LoggerFactory.getLogger(DouGoodsApiController.class); + private final DouApiHelper douApiHelper; + private final OmsDouGoodsService goodsService; + + @RequestMapping(value = "/pull_goods", method = RequestMethod.POST) + public AjaxResult getOrderList(@RequestBody DouRequest req) throws Exception { + if (req.getShopId() == null || req.getShopId() <= 0) { + return AjaxResult.error(HttpStatus.PARAMS_ERROR, "参数错误,没有店铺Id"); + } + var checkResult = douApiHelper.checkBefore(req.getShopId()); + if (checkResult.getCode() != ResultVoEnum.SUCCESS.getIndex()) { + return AjaxResult.error(checkResult.getCode(), checkResult.getMsg(), checkResult.getData()); + } + String accessToken = checkResult.getData().getAccessToken(); + String url = checkResult.getData().getServerUrl(); + String appKey = checkResult.getData().getAppKey(); + String appSercet = checkResult.getData().getAppSecret(); + + ApiResultVo token = DouTokenApiHelper.getToken(appKey, appSercet,checkResult.getData().getSellerShopId()); + if(token.getCode()==0) { + accessToken = token.getData().getAccessToken(); + }else{ + return AjaxResult.error(token.getMsg()); + } + + int insertSuccess = 0;//新增成功的订单 + int totalError = 0; + int hasExistOrder = 0;//已存在的订单数 + ApiResultVo apiResultVo = DouGoodsApiHelper.getGoodsList(appKey, appSercet, accessToken, 1, 10); + if (apiResultVo.getCode() != 0) return AjaxResult.error(apiResultVo.getCode(), apiResultVo.getMsg()); + //成功 + if (apiResultVo.getData().getGoodsList() != null) { + for (var g : apiResultVo.getData().getGoodsList()) { + OmsDouGoods goods = new OmsDouGoods(); + BeanUtils.copyProperties(g, goods); + // TODO:转换goods + goods.setShopId(req.getShopId()); + goods.setPullTime(new Date()); + List skuList = new ArrayList<>(); + for (var s : g.getSkuList()) { + OmsDouGoodsSku sku = new OmsDouGoodsSku(); + BeanUtils.copyProperties(s, sku); + sku.setShopId(req.getShopId()); + sku.setName(g.getName()); + sku.setImg(g.getImg()); + skuList.add(sku); + } + goods.setSkuList(skuList); + + int result = goodsService.saveAndUpdateGoods(req.getShopId(), goods); + if (result == ResultVoEnum.DataExist.getIndex()) { + //已经存在 + hasExistOrder++; + } else if (result == ResultVoEnum.SUCCESS.getIndex()) { + insertSuccess++; + } else { + totalError++; + } + } + } + String msg = "成功,总共找到:" + apiResultVo.getData().getGoodsList().size() + "条商品数据,新增:" + insertSuccess + "条,添加错误:" + totalError + "条,更新:" + hasExistOrder + "条"; + logger.info(msg); +// return new ApiResult<>(EnumResultVo.SUCCESS.getIndex(), msg); + return AjaxResult.success(msg); + } + + +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouGoodsController.java b/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouGoodsController.java new file mode 100644 index 00000000..f022627c --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/controller/DouGoodsController.java @@ -0,0 +1,55 @@ +package com.qihang.dou.controller; + + +import com.qihang.common.bo.LinkErpGoodsSkuBo; +import com.qihang.common.common.AjaxResult; +import com.qihang.common.common.PageQuery; +import com.qihang.common.common.PageResult; +import com.qihang.common.common.TableDataInfo; +import com.qihang.dou.domain.OmsDouGoods; +import com.qihang.dou.domain.OmsDouGoodsSku; +import com.qihang.dou.service.OmsDouGoodsService; +import com.qihang.dou.service.OmsDouGoodsSkuService; +import com.qihang.security.common.BaseController; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +@RequestMapping("/goods") +@RestController +@AllArgsConstructor +public class DouGoodsController extends BaseController { + private final OmsDouGoodsService goodsService; + private final OmsDouGoodsSkuService skuService; + @RequestMapping(value = "/list", method = RequestMethod.GET) + public TableDataInfo goodsList(OmsDouGoods bo, PageQuery pageQuery) { + PageResult result = goodsService.queryPageList(bo, pageQuery); + + return getDataTable(result); + } + + @RequestMapping(value = "/skuList", method = RequestMethod.GET) + public TableDataInfo skuList(OmsDouGoodsSku bo, PageQuery pageQuery) { + PageResult result = skuService.queryPageList(bo, pageQuery); + + return getDataTable(result); + } + + /** + * 获取店铺订单详细信息 + */ + @GetMapping(value = "/sku/{id}") + public AjaxResult getSkuInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(skuService.getById(id)); + } + @PostMapping(value = "/sku/linkErp") + public AjaxResult linkErp(@RequestBody LinkErpGoodsSkuBo bo) + { + OmsDouGoodsSku sku = new OmsDouGoodsSku(); + sku.setId(bo.getId()); + sku.setErpGoodsSkuId(Long.parseLong(bo.getErpGoodsSkuId())); + skuService.updateById(sku); + return success(); + } + +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/controller/HomeController.java b/open-api/dou-api/src/main/java/com/qihang/dou/controller/HomeController.java index 9a365ac9..98f0999e 100644 --- a/open-api/dou-api/src/main/java/com/qihang/dou/controller/HomeController.java +++ b/open-api/dou-api/src/main/java/com/qihang/dou/controller/HomeController.java @@ -1,14 +1,5 @@ package com.qihang.dou.controller; -import com.doudian.open.api.order_searchList.OrderSearchListRequest; -import com.doudian.open.api.order_searchList.OrderSearchListResponse; -import com.doudian.open.api.order_searchList.param.OrderSearchListParam; -import com.doudian.open.api.token_create.TokenCreateRequest; -import com.doudian.open.api.token_create.TokenCreateResponse; -import com.doudian.open.api.token_create.param.TokenCreateParam; -import com.doudian.open.core.AccessToken; -import com.doudian.open.core.AccessTokenBuilder; -import com.doudian.open.core.GlobalConfig; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -18,40 +9,7 @@ import org.springframework.web.bind.annotation.RestController; public class HomeController { @GetMapping("/") public String home() { - //设置appKey和appSecret,全局设置一次 - String appkey = "7005157746437834253"; - String appSecret = "8104c8b8-9085-4a80-9248-629759b4f1a3"; - appkey = "7344938657423296019"; - appSecret = "4e704882-832a-42e5-845f-6af991ce0ce2"; - GlobalConfig.initAppKey(appkey); - GlobalConfig.initAppSecret(appSecret); - //获取access_token方法 - AccessToken accessToken = AccessTokenBuilder.build(90158786L); //入参为shopId 4463798L - if ("50002".equals(accessToken.getCode())) { - return accessToken.getSubMsg(); - } - - OrderSearchListRequest request = new OrderSearchListRequest(); - OrderSearchListParam param = request.getParam(); - param.setProduct("3473196049974326153"); - param.setBType(2L); - param.setAfterSaleStatusDesc("refund_success"); - param.setTrackingNo("435435"); - param.setPresellType(1L); - param.setOrderType(1L); -// param.setCreateTimeStart(1617355413L); -// param.setCreateTimeEnd(1617355413L); - param.setAbnormalOrder(1L); - param.setTradeType(1L); - param.setUpdateTimeStart(1709222400L); - param.setUpdateTimeEnd(System.currentTimeMillis()/1000); - param.setSize(20L); - param.setPage(0L); - param.setOrderBy("create_time"); - param.setOrderAsc(false); - param.setFulfilStatus("no_accept"); - OrderSearchListResponse response = request.execute(accessToken); return "{'code':0,'msg':'dou-api请通过api访问'}"; } } diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/domain/OmsDouGoods.java b/open-api/dou-api/src/main/java/com/qihang/dou/domain/OmsDouGoods.java new file mode 100644 index 00000000..7531e595 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/domain/OmsDouGoods.java @@ -0,0 +1,109 @@ +package com.qihang.dou.domain; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +/** + * 抖店商品表 + * @TableName oms_dou_goods + */ +@Data +public class OmsDouGoods implements Serializable { + /** + * + */ + private Long id; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 商品ID,抖店系统生成,店铺下唯一 + */ + private Long productId; + + /** + * 商品类型;0-普通;1-新客商品;3-虚拟;6-玉石闪购;7-云闪购 ;127-其他类型; + */ + private Integer productType; + + /** + * 商品标题。 + */ + private String name; + + /** + * 商品主图的第一张图 + */ + private String img; + + /** + * 商品审核状态: 1-未提交;2-待审核;3-审核通过;4-审核未通过;5-封禁;7-审核通过待上架; + */ + private Integer checkStatus; + + /** + * 商品在店铺中状态: 0-在线;1-下线;2-删除; + */ + private Integer status; + + /** + * 商品规格,全局唯一 + */ + private Long specId; + + /** + * 商品创建时间,unix时间戳,单位:秒; + */ + private Integer createTime; + + /** + * 商品更新时间,unix时间戳,单位:秒; + */ + private Integer updateTime; + + /** + * 商品详情,最大支持50张图片,单张详情图宽高比不超2000*2000px,大小5M内,仅支持jpg/jpeg/png格式; + */ + private String description; + + /** + * 类目详情;商品类目id可使用【/shop/getShopCategory】查询 + */ + private String categoryDetail; + + /** + * 外部商家编码,商家自定义字段,支持最多 255个字符 + */ + private String outerProductId; + + /** + * 是否是组合商品,true-是,false-不是; + */ + private String isPackageProduct; + + /** + * erp商品id + */ + private Long erpGoodsId; + + /** + * 拉取时间 + */ + private Date pullTime; + + /** + * 更新时间 + */ + private Date modifyTime; + + @TableField(exist = false) + private List skuList; + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/domain/OmsDouGoodsSku.java b/open-api/dou-api/src/main/java/com/qihang/dou/domain/OmsDouGoodsSku.java new file mode 100644 index 00000000..c0edda8d --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/domain/OmsDouGoodsSku.java @@ -0,0 +1,161 @@ +package com.qihang.dou.domain; + +import java.io.Serializable; +import lombok.Data; + +/** + * 抖店商品Sku表 + * @TableName oms_dou_goods_sku + */ +@Data +public class OmsDouGoodsSku implements Serializable { + /** + * 商品sku_id;抖店系统生成。 + */ + private String id; + + /** + * 商品ID;抖店系统生成。 + */ + private Long productId; + + /** + * 规格ID + */ + private Long specId; + + /** + * sku外部编码 + */ + private String code; + + /** + * 库存类型;0-普通;1-区域库存;10-阶梯库存; + */ + private Integer skuType; + + /** + * sku状态 true上架 false下架 + */ + private String skuStatus; + + /** + * 外部的skuId;商家自定义;未设置返回为0。 + */ + private Long outSkuId; + + /** + * 第一级子规格 + */ + private Long specDetailId1; + + /** + * 第二级子规格 + */ + private Long specDetailId2; + + /** + * +第三级子规格 + */ + private Long specDetailId3; + + /** + * 第一级子规格名 + */ + private String specDetailName1; + + /** + * 第二级子规格名 + */ + private String specDetailName2; + + /** + * +第三级子规格名 + */ + private String specDetailName3; + + /** + * 商品价格,单位:分 + */ + private Integer price; + + /** + * 创建时间,时间戳:单位秒; + */ + private Integer createTime; + + /** + * ku_type=0时,表示普通库存数量 ;sku_type=1时,使用stock_map,表示区域库存数量 + */ + private Integer stockNum; + + /** + * sku_type=0时,表示预占库存数量; sku_type=1时,表示区域库存数量,使用prehold_stock_map + */ + private Integer preholdStockNum; + + /** + * 活动库存 + */ + private Integer promStockNum; + + /** + * +阶梯库存 + */ + private Integer stepStockNum; + + /** + * 预占阶梯库存 + */ + private Integer preholdStepStockNum; + + /** + * 活动阶梯库存 + */ + private Integer promStepStockNum; + + /** + * 库存模型V2新增 普通库存 非活动可售 + */ + private Integer normalStockNum; + + /** + * 库存模型V2新增 渠道库存 + */ + private Integer channelStockNum; + + /** + * 销售属性,代替spec_detail_id123、spec_detail_name123 + */ + private String sellProperties; + + /** + * 商品id(o_goods外键) + */ + private Long erpGoodsId; + + /** + * 商品skuid(o_goods_sku外键) + */ + private Long erpGoodsSkuId; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 商品标题。 + */ + private String name; + + /** + * 商品主图的第一张图 + */ + private String img; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShop.java b/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShop.java new file mode 100644 index 00000000..15a5801d --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShop.java @@ -0,0 +1,114 @@ +package com.qihang.dou.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 电商平台店铺表 + * @TableName s_shop + */ +@Data +public class SShop implements Serializable { + /** + * 主键 + */ + private Integer id; + + /** + * 店铺名 + */ + private String name; + + /** + * 店铺别名 + */ + private String nickName; + + /** + * 标识 + */ + private String ename; + + /** + * 店铺主题 + */ + private String company; + + /** + * 对应第三方平台Id + */ + private Integer platform; + + /** + * 店铺url + */ + private String shopUrl; + + /** + * 排序 + */ + private Integer orderNum; + + /** + * 是否删除0否1是 + */ + private Integer isDelete; + + /** + * 描述 + */ + private String remark; + + /** + * 第三方平台店铺id + */ + private Long sellerShopId; + + /** + * Appkey(微信视频号小店专用) + */ + private String appKey; + + /** + * Appsercet(微信视频号小店专用) + */ + private String appSercet; + + /** + * 第三方平台sessionKey(access_token) + */ + private String accessToken; + + /** + * accessToken到期(秒) + */ + private Long accessExpiresIn; + + /** + * access_token开始时间 + */ + private Long accessTokenBegin; + + /** + * 刷新token + */ + private String refreshToken; + + /** + * 刷新token过期时间 + */ + private Long refreshTokenTimeout; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPlatform.java b/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPlatform.java new file mode 100644 index 00000000..aa0ab35e --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPlatform.java @@ -0,0 +1,59 @@ +package com.qihang.dou.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 电商平台配置表 + * @TableName s_shop_platform + */ +@Data +public class SShopPlatform implements Serializable { + /** + * 主键 + */ + private Integer id; + + /** + * 平台名 + */ + private String name; + + /** + * appKey + */ + private String appKey; + + /** + * appSecret + */ + private String appSecret; + + /** + * 描述 + */ + private String remark; + + /** + * 服务url + */ + private String serverUrl; + + /** + * 回调url + */ + private String redirectUrl; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPullLasttime.java b/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPullLasttime.java new file mode 100644 index 00000000..0c223640 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPullLasttime.java @@ -0,0 +1,44 @@ +package com.qihang.dou.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 店铺更新最后时间记录 + * @TableName s_shop_pull_lasttime + */ +@Data +public class SShopPullLasttime implements Serializable { + /** + * + */ + private Integer id; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 类型(ORDER:订单,REFUND:退款) + */ + private Object pullType; + + /** + * 最后更新时间 + */ + private Date lasttime; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPullLogs.java b/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPullLogs.java new file mode 100644 index 00000000..b27ad11f --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/domain/SShopPullLogs.java @@ -0,0 +1,59 @@ +package com.qihang.dou.domain; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * 店铺更新日志表 + * @TableName s_shop_pull_logs + */ +@Data +public class SShopPullLogs implements Serializable { + /** + * 主键Id + */ + private Long id; + + /** + * 店铺id + */ + private Integer shopId; + + /** + * 平台id + */ + private Integer shopType; + + /** + * 类型(ORDER订单,GOODS商品,REFUND退款) + */ + private Object pullType; + + /** + * 拉取方式(主动拉取、定时任务) + */ + private String pullWay; + + /** + * 拉取参数 + */ + private String pullParams; + + /** + * 拉取结果 + */ + private String pullResult; + + /** + * 拉取时间 + */ + private Date pullTime; + + /** + * 耗时(毫秒) + */ + private Long duration; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/domain/bo/DouRequest.java b/open-api/dou-api/src/main/java/com/qihang/dou/domain/bo/DouRequest.java new file mode 100644 index 00000000..809978ec --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/domain/bo/DouRequest.java @@ -0,0 +1,49 @@ +package com.qihang.dou.domain.bo; + +public class DouRequest { + private Long shopId;//店铺Id + private Long orderId;//订单id + private Integer updType;//更新类型0拉取新订单1更新订单 + private String startDate; + private String endDate; + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public Integer getUpdType() { + return updType; + } + + public void setUpdType(Integer updType) { + this.updType = updType; + } + + public Long getOrderId() { + return orderId; + } + + public void setOrderId(Long orderId) { + this.orderId = orderId; + } + + public Long getShopId() { + return shopId; + } + + public void setShopId(Long shopId) { + this.shopId = shopId; + } +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/mapper/OmsDouGoodsMapper.java b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/OmsDouGoodsMapper.java new file mode 100644 index 00000000..4dafb02f --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/OmsDouGoodsMapper.java @@ -0,0 +1,18 @@ +package com.qihang.dou.mapper; + +import com.qihang.dou.domain.OmsDouGoods; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_dou_goods(抖店商品表)】的数据库操作Mapper +* @createDate 2024-06-11 14:49:40 +* @Entity com.qihang.dou.domain.OmsDouGoods +*/ +public interface OmsDouGoodsMapper extends BaseMapper { + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/mapper/OmsDouGoodsSkuMapper.java b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/OmsDouGoodsSkuMapper.java new file mode 100644 index 00000000..ca4786c3 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/OmsDouGoodsSkuMapper.java @@ -0,0 +1,18 @@ +package com.qihang.dou.mapper; + +import com.qihang.dou.domain.OmsDouGoodsSku; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【oms_dou_goods_sku(抖店商品Sku表)】的数据库操作Mapper +* @createDate 2024-06-11 14:49:40 +* @Entity com.qihang.dou.domain.OmsDouGoodsSku +*/ +public interface OmsDouGoodsSkuMapper extends BaseMapper { + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopMapper.java b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopMapper.java new file mode 100644 index 00000000..6a1a207e --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopMapper.java @@ -0,0 +1,18 @@ +package com.qihang.dou.mapper; + +import com.qihang.dou.domain.SShop; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【s_shop(电商平台店铺表)】的数据库操作Mapper +* @createDate 2024-06-11 14:40:36 +* @Entity com.qihang.dou.domain.SShop +*/ +public interface SShopMapper extends BaseMapper { + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPlatformMapper.java b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPlatformMapper.java new file mode 100644 index 00000000..644d7576 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPlatformMapper.java @@ -0,0 +1,18 @@ +package com.qihang.dou.mapper; + +import com.qihang.dou.domain.SShopPlatform; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【s_shop_platform(电商平台配置表)】的数据库操作Mapper +* @createDate 2024-06-11 14:40:36 +* @Entity com.qihang.dou.domain.SShopPlatform +*/ +public interface SShopPlatformMapper extends BaseMapper { + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPullLasttimeMapper.java b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPullLasttimeMapper.java new file mode 100644 index 00000000..d1ba0ee6 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPullLasttimeMapper.java @@ -0,0 +1,18 @@ +package com.qihang.dou.mapper; + +import com.qihang.dou.domain.SShopPullLasttime; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【s_shop_pull_lasttime(店铺更新最后时间记录)】的数据库操作Mapper +* @createDate 2024-06-11 14:40:36 +* @Entity com.qihang.dou.domain.SShopPullLasttime +*/ +public interface SShopPullLasttimeMapper extends BaseMapper { + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPullLogsMapper.java b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPullLogsMapper.java new file mode 100644 index 00000000..dbe8f16f --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/mapper/SShopPullLogsMapper.java @@ -0,0 +1,18 @@ +package com.qihang.dou.mapper; + +import com.qihang.dou.domain.SShopPullLogs; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【s_shop_pull_logs(店铺更新日志表)】的数据库操作Mapper +* @createDate 2024-06-11 14:40:36 +* @Entity com.qihang.dou.domain.SShopPullLogs +*/ +public interface SShopPullLogsMapper extends BaseMapper { + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/OmsDouGoodsService.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/OmsDouGoodsService.java new file mode 100644 index 00000000..352c9bc2 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/OmsDouGoodsService.java @@ -0,0 +1,17 @@ +package com.qihang.dou.service; + +import com.qihang.common.common.PageQuery; +import com.qihang.common.common.PageResult; +import com.qihang.dou.domain.OmsDouGoods; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_dou_goods(抖店商品表)】的数据库操作Service +* @createDate 2024-06-11 14:49:40 +*/ +public interface OmsDouGoodsService extends IService { + PageResult queryPageList(OmsDouGoods bo, PageQuery pageQuery); + + int saveAndUpdateGoods(Long shopId,OmsDouGoods goods); +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/OmsDouGoodsSkuService.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/OmsDouGoodsSkuService.java new file mode 100644 index 00000000..4095914e --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/OmsDouGoodsSkuService.java @@ -0,0 +1,15 @@ +package com.qihang.dou.service; + +import com.qihang.common.common.PageQuery; +import com.qihang.common.common.PageResult; +import com.qihang.dou.domain.OmsDouGoodsSku; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【oms_dou_goods_sku(抖店商品Sku表)】的数据库操作Service +* @createDate 2024-06-11 14:49:40 +*/ +public interface OmsDouGoodsSkuService extends IService { + PageResult queryPageList(OmsDouGoodsSku bo, PageQuery pageQuery); +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPlatformService.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPlatformService.java new file mode 100644 index 00000000..bbd3939c --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPlatformService.java @@ -0,0 +1,13 @@ +package com.qihang.dou.service; + +import com.qihang.dou.domain.SShopPlatform; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【s_shop_platform(电商平台配置表)】的数据库操作Service +* @createDate 2024-06-11 14:40:36 +*/ +public interface SShopPlatformService extends IService { + +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPullLasttimeService.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPullLasttimeService.java new file mode 100644 index 00000000..218fec8d --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPullLasttimeService.java @@ -0,0 +1,13 @@ +package com.qihang.dou.service; + +import com.qihang.dou.domain.SShopPullLasttime; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【s_shop_pull_lasttime(店铺更新最后时间记录)】的数据库操作Service +* @createDate 2024-06-11 14:40:36 +*/ +public interface SShopPullLasttimeService extends IService { + +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPullLogsService.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPullLogsService.java new file mode 100644 index 00000000..aa1b801d --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopPullLogsService.java @@ -0,0 +1,13 @@ +package com.qihang.dou.service; + +import com.qihang.dou.domain.SShopPullLogs; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【s_shop_pull_logs(店铺更新日志表)】的数据库操作Service +* @createDate 2024-06-11 14:40:36 +*/ +public interface SShopPullLogsService extends IService { + +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopService.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopService.java new file mode 100644 index 00000000..d774fb74 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/SShopService.java @@ -0,0 +1,14 @@ +package com.qihang.dou.service; + +import com.qihang.dou.domain.SShop; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author TW +* @description 针对表【s_shop(电商平台店铺表)】的数据库操作Service +* @createDate 2024-06-11 14:40:36 +*/ +public interface SShopService extends IService { + SShop selectShopById(Long shopId); + void updateSessionKey(Integer shopId, String ownerId, String sessionKey, String refreshToken, Long expiresIn); +} diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/OmsDouGoodsServiceImpl.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/OmsDouGoodsServiceImpl.java new file mode 100644 index 00000000..5cde9989 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/OmsDouGoodsServiceImpl.java @@ -0,0 +1,106 @@ +package com.qihang.dou.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.common.common.PageQuery; +import com.qihang.common.common.PageResult; +import com.qihang.common.common.ResultVoEnum; +import com.qihang.dou.domain.OmsDouGoods; +import com.qihang.dou.domain.OmsDouGoodsSku; +import com.qihang.dou.mapper.OmsDouGoodsSkuMapper; +import com.qihang.dou.service.OmsDouGoodsService; +import com.qihang.dou.mapper.OmsDouGoodsMapper; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** +* @author TW +* @description 针对表【oms_dou_goods(抖店商品表)】的数据库操作Service实现 +* @createDate 2024-06-11 14:49:40 +*/ +@AllArgsConstructor +@Service +public class OmsDouGoodsServiceImpl extends ServiceImpl + implements OmsDouGoodsService{ + private final OmsDouGoodsMapper mapper; + private final OmsDouGoodsSkuMapper skuMapper; + @Override + public PageResult queryPageList(OmsDouGoods bo, PageQuery pageQuery) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(bo.getShopId()!=null,OmsDouGoods::getShopId,bo.getShopId()); + + Page goodsPage = mapper.selectPage(pageQuery.build(), queryWrapper); + return PageResult.build(goodsPage); + } + + @Override + public int saveAndUpdateGoods(Long shopId, OmsDouGoods goods) { + List goodsList = mapper.selectList(new LambdaQueryWrapper().eq(OmsDouGoods::getProductId, goods.getProductId())); + if(goodsList!=null && goodsList.size()>0){ + // 存在,更新 + goods.setShopId(shopId); + goods.setId(goodsList.get(0).getId()); + goods.setModifyTime(new Date()); + mapper.updateById(goods); + + // 删除sku + skuMapper.delete(new LambdaQueryWrapper().eq(OmsDouGoodsSku::getProductId,goods.getProductId())); + + // 重新插入sku + if(goods.getSkuList()!=null) { + for (var sku : goods.getSkuList()) { + sku.setShopId(shopId); + sku.setImg(goods.getImg()); + sku.setName(goods.getName()); + sku.setErpGoodsId(0L); + sku.setErpGoodsSkuId(0L); + // 根据OuterId查找ERP系统中的skuid +// if(StringUtils.isNotEmpty(sku.getCode())) { +// ErpGoodsSpecVo erpGoodsSpecVo = skuMapper.selectGoodsSpecBySpecNum(sku.getCode()); +// if(erpGoodsSpecVo!=null ){ +// sku.setErpGoodsId(erpGoodsSpecVo.getGoodsId()); +// sku.setErpGoodsSkuId(erpGoodsSpecVo.getId()); +//// sku.setErpSupplierId(erpGoodsSpecVo.getSupplierId()); +// } +// } + skuMapper.insert(sku); + } + } + return ResultVoEnum.DataExist.getIndex(); + }else { + // 不存在,新增 + goods.setShopId(shopId); + goods.setPullTime(new Date()); + mapper.insert(goods); + // 插入sku + if(goods.getSkuList()!=null) { + for (var sku : goods.getSkuList()) { + sku.setShopId(shopId); + sku.setImg(goods.getImg()); + sku.setName(goods.getName()); + sku.setErpGoodsId(0L); + sku.setErpGoodsSkuId(0L); + // 根据OuterId查找ERP系统中的skuid +// if(StringUtils.isNotEmpty(sku.getCode())) { +// ErpGoodsSpecVo erpGoodsSpecVo = skuMapper.selectGoodsSpecBySpecNum(sku.getCode()); +// if(erpGoodsSpecVo!=null ){ +// sku.setErpGoodsId(erpGoodsSpecVo.getGoodsId()); +// sku.setErpGoodsSkuId(erpGoodsSpecVo.getId()); +//// sku.setErpSupplierId(erpGoodsSpecVo.getSupplierId()); +// } +// } + skuMapper.insert(sku); + } + } + return 0; + } + } +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/OmsDouGoodsSkuServiceImpl.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/OmsDouGoodsSkuServiceImpl.java new file mode 100644 index 00000000..601235fe --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/OmsDouGoodsSkuServiceImpl.java @@ -0,0 +1,36 @@ +package com.qihang.dou.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.common.common.PageQuery; +import com.qihang.common.common.PageResult; +import com.qihang.dou.domain.OmsDouGoodsSku; +import com.qihang.dou.service.OmsDouGoodsSkuService; +import com.qihang.dou.mapper.OmsDouGoodsSkuMapper; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【oms_dou_goods_sku(抖店商品Sku表)】的数据库操作Service实现 +* @createDate 2024-06-11 14:49:40 +*/ +@AllArgsConstructor +@Service +public class OmsDouGoodsSkuServiceImpl extends ServiceImpl + implements OmsDouGoodsSkuService{ + private final OmsDouGoodsSkuMapper mapper; + @Override + public PageResult queryPageList(OmsDouGoodsSku bo, PageQuery pageQuery) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(bo.getShopId()!=null,OmsDouGoodsSku::getShopId,bo.getShopId()); + + Page goodsSkuPage = mapper.selectPage(pageQuery.build(), queryWrapper); + return PageResult.build(goodsSkuPage); + } +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPlatformServiceImpl.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPlatformServiceImpl.java new file mode 100644 index 00000000..73647661 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPlatformServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.dou.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.dou.domain.SShopPlatform; +import com.qihang.dou.service.SShopPlatformService; +import com.qihang.dou.mapper.SShopPlatformMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【s_shop_platform(电商平台配置表)】的数据库操作Service实现 +* @createDate 2024-06-11 14:40:36 +*/ +@Service +public class SShopPlatformServiceImpl extends ServiceImpl + implements SShopPlatformService{ + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPullLasttimeServiceImpl.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPullLasttimeServiceImpl.java new file mode 100644 index 00000000..015b4655 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPullLasttimeServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.dou.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.dou.domain.SShopPullLasttime; +import com.qihang.dou.service.SShopPullLasttimeService; +import com.qihang.dou.mapper.SShopPullLasttimeMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【s_shop_pull_lasttime(店铺更新最后时间记录)】的数据库操作Service实现 +* @createDate 2024-06-11 14:40:36 +*/ +@Service +public class SShopPullLasttimeServiceImpl extends ServiceImpl + implements SShopPullLasttimeService{ + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPullLogsServiceImpl.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPullLogsServiceImpl.java new file mode 100644 index 00000000..cdcc1fd3 --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopPullLogsServiceImpl.java @@ -0,0 +1,22 @@ +package com.qihang.dou.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.dou.domain.SShopPullLogs; +import com.qihang.dou.service.SShopPullLogsService; +import com.qihang.dou.mapper.SShopPullLogsMapper; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【s_shop_pull_logs(店铺更新日志表)】的数据库操作Service实现 +* @createDate 2024-06-11 14:40:36 +*/ +@Service +public class SShopPullLogsServiceImpl extends ServiceImpl + implements SShopPullLogsService{ + +} + + + + diff --git a/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopServiceImpl.java b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopServiceImpl.java new file mode 100644 index 00000000..f57145cc --- /dev/null +++ b/open-api/dou-api/src/main/java/com/qihang/dou/service/impl/SShopServiceImpl.java @@ -0,0 +1,39 @@ +package com.qihang.dou.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qihang.dou.domain.SShop; +import com.qihang.dou.service.SShopService; +import com.qihang.dou.mapper.SShopMapper; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** +* @author TW +* @description 针对表【s_shop(电商平台店铺表)】的数据库操作Service实现 +* @createDate 2024-06-11 14:40:36 +*/ +@AllArgsConstructor +@Service +public class SShopServiceImpl extends ServiceImpl + implements SShopService{ + private SShopMapper mapper; + @Override + public SShop selectShopById(Long shopId) { + return mapper.selectById(shopId); + } + + @Override + public void updateSessionKey(Integer shopId, String ownerId, String sessionKey, String refreshToken, Long expiresIn) { + SShop shop = new SShop(); + shop.setId(shopId); + shop.setAccessToken(sessionKey); + shop.setRefreshToken(refreshToken); + shop.setAccessExpiresIn(expiresIn); + shop.setAccessTokenBegin(System.currentTimeMillis() / 1000); + mapper.updateById(shop); + } +} + + + + diff --git a/open-api/dou-api/src/main/resources/mapper/OmsDouGoodsMapper.xml b/open-api/dou-api/src/main/resources/mapper/OmsDouGoodsMapper.xml new file mode 100644 index 00000000..1b088acb --- /dev/null +++ b/open-api/dou-api/src/main/resources/mapper/OmsDouGoodsMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + id,shop_id,product_id, + product_type,name,img, + check_status,status,spec_id, + create_time,update_time,description, + category_detail,outer_product_id,is_package_product, + erp_goods_id,pull_time,modify_time + + diff --git a/open-api/dou-api/src/main/resources/mapper/OmsDouGoodsSkuMapper.xml b/open-api/dou-api/src/main/resources/mapper/OmsDouGoodsSkuMapper.xml new file mode 100644 index 00000000..400b6b5e --- /dev/null +++ b/open-api/dou-api/src/main/resources/mapper/OmsDouGoodsSkuMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,product_id,spec_id, + code,sku_type,sku_status, + out_sku_id,spec_detail_id1,spec_detail_id2, + spec_detail_id3,spec_detail_name1,spec_detail_name2, + spec_detail_name3,price,create_time, + stock_num,prehold_stock_num,prom_stock_num, + step_stock_num,prehold_step_stock_num,prom_step_stock_num, + normal_stock_num,channel_stock_num,sell_properties, + erp_goods_id,erp_goods_sku_id,shop_id, + name,img + + diff --git a/open-api/dou-api/src/main/resources/mapper/SShopMapper.xml b/open-api/dou-api/src/main/resources/mapper/SShopMapper.xml new file mode 100644 index 00000000..68336d2a --- /dev/null +++ b/open-api/dou-api/src/main/resources/mapper/SShopMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,name,nick_name, + ename,company,platform, + shop_url,order_num,is_delete, + remark,seller_shop_id,app_key, + app_sercet,access_token,access_expires_in, + access_token_begin,refresh_token,refresh_token_timeout, + create_time,update_time + + diff --git a/open-api/dou-api/src/main/resources/mapper/SShopPlatformMapper.xml b/open-api/dou-api/src/main/resources/mapper/SShopPlatformMapper.xml new file mode 100644 index 00000000..2e01a0a4 --- /dev/null +++ b/open-api/dou-api/src/main/resources/mapper/SShopPlatformMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + id,name,app_key, + app_secret,remark,server_url, + redirect_url,create_time,update_time + + diff --git a/open-api/dou-api/src/main/resources/mapper/SShopPullLasttimeMapper.xml b/open-api/dou-api/src/main/resources/mapper/SShopPullLasttimeMapper.xml new file mode 100644 index 00000000..612cdbf9 --- /dev/null +++ b/open-api/dou-api/src/main/resources/mapper/SShopPullLasttimeMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + id,shop_id,pull_type, + lasttime,create_time,update_time + + diff --git a/open-api/dou-api/src/main/resources/mapper/SShopPullLogsMapper.xml b/open-api/dou-api/src/main/resources/mapper/SShopPullLogsMapper.xml new file mode 100644 index 00000000..18a8bd33 --- /dev/null +++ b/open-api/dou-api/src/main/resources/mapper/SShopPullLogsMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + id,shop_id,shop_type, + pull_type,pull_way,pull_params, + pull_result,pull_time,duration + + diff --git a/vue/src/views/shop/dou/goods/index.vue b/vue/src/views/shop/dou/goods/index.vue index ccd6559e..cf0eb03b 100644 --- a/vue/src/views/shop/dou/goods/index.vue +++ b/vue/src/views/shop/dou/goods/index.vue @@ -86,12 +86,12 @@ - - - + + + + + +