3.新增淘宝店铺对外接口-根据淘宝 UserID(mallId)获取 ERP 店铺 ID,根据 ERP 店铺 ID 获取运费模板 ID (还未联调) from:shaoyx
This commit is contained in:
parent
bce68368ce
commit
861eb69545
@ -0,0 +1,47 @@
|
|||||||
|
package org.dromara.zhishu.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.zhishu.domain.vo.TaoBaoShopInfoVo;
|
||||||
|
import org.dromara.zhishu.domain.vo.TaoBaoTemplateInfoVo;
|
||||||
|
import org.dromara.zhishu.service.ITaoBaoService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘宝店铺对外接口(供 Go 分销系统调用)
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/api/taobao")
|
||||||
|
public class TaoBaoController extends BaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private final ITaoBaoService taoBaoService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据淘宝 UserID(mallId)获取 ERP 店铺 ID
|
||||||
|
*/
|
||||||
|
@SaIgnore
|
||||||
|
@GetMapping("/getShopId")
|
||||||
|
public R<TaoBaoShopInfoVo> getShopId(@NotNull(message = "mallId不能为空") @RequestParam Long mallId) {
|
||||||
|
return R.ok(taoBaoService.getShopByMallId(mallId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据 ERP 店铺 ID 获取运费模板 ID (还未联调)
|
||||||
|
*/
|
||||||
|
@SaIgnore
|
||||||
|
@GetMapping("/getTemplateId")
|
||||||
|
public R<TaoBaoTemplateInfoVo> getTemplateId(@NotNull(message = "shopId不能为空") @RequestParam Long shopId) {
|
||||||
|
return R.ok(taoBaoService.getTemplateByShopId(shopId));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package org.dromara.zhishu.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘宝店铺信息(供 Go 分销系统)
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TaoBaoShopInfoVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ERP 店铺 ID
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘宝 UserID
|
||||||
|
*/
|
||||||
|
private Long mallId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店铺 Token
|
||||||
|
*/
|
||||||
|
private String token;
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package org.dromara.zhishu.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘宝运费模板信息(供 Go 分销系统)
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TaoBaoTemplateInfoVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ERP 店铺 ID
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运费模板 ID
|
||||||
|
*/
|
||||||
|
private Long templateId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店铺 Token
|
||||||
|
*/
|
||||||
|
private String token;
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
package org.dromara.zhishu.mapper;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.dromara.zhishu.domain.vo.TaoBaoShopInfoVo;
|
||||||
|
import org.dromara.zhishu.domain.vo.TaoBaoTemplateInfoVo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘宝店铺 Mapper
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface TaoBaoMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据淘宝 UserID 查询店铺信息
|
||||||
|
*/
|
||||||
|
TaoBaoShopInfoVo selectShopByMallId(@Param("mallId") Long mallId, @Param("shopType") String shopType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据 ERP 店铺 ID 查询运费模板信息
|
||||||
|
*/
|
||||||
|
TaoBaoTemplateInfoVo selectTemplateByShopId(@Param("shopId") Long shopId, @Param("shopType") String shopType);
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package org.dromara.zhishu.service;
|
||||||
|
|
||||||
|
import org.dromara.zhishu.domain.vo.TaoBaoShopInfoVo;
|
||||||
|
import org.dromara.zhishu.domain.vo.TaoBaoTemplateInfoVo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘宝店铺 Service
|
||||||
|
*/
|
||||||
|
public interface ITaoBaoService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据淘宝 UserID 获取 ERP 店铺信息
|
||||||
|
*/
|
||||||
|
TaoBaoShopInfoVo getShopByMallId(Long mallId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据 ERP 店铺 ID 获取运费模板信息
|
||||||
|
*/
|
||||||
|
TaoBaoTemplateInfoVo getTemplateByShopId(Long shopId);
|
||||||
|
}
|
||||||
@ -597,6 +597,30 @@ public class ShopServiceImpl implements IShopService {
|
|||||||
* 同步孔夫子/闲鱼/淘宝等店铺的订阅状态(统一走 Go 接口)
|
* 同步孔夫子/闲鱼/淘宝等店铺的订阅状态(统一走 Go 接口)
|
||||||
*/
|
*/
|
||||||
private void syncShopSubscriptionStatus(ShopVo shopVo) {
|
private void syncShopSubscriptionStatus(ShopVo shopVo) {
|
||||||
|
if (isTaobaoShopType(shopVo.getShopType())) {
|
||||||
|
syncTaobaoShopSubscriptionStatus(shopVo);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
applyGoSubscriptionSync(shopVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘宝店铺:未订阅时保持本地状态,避免 Go 孔夫子接口误标为已订阅;
|
||||||
|
* 仅在已订阅/已到期后走 Go 同步续期信息。
|
||||||
|
*/
|
||||||
|
private void syncTaobaoShopSubscriptionStatus(ShopVo shopVo) {
|
||||||
|
String currentStatus = StringUtils.isBlank(shopVo.getIsExpiration()) ? "0" : shopVo.getIsExpiration();
|
||||||
|
if ("0".equals(currentStatus)) {
|
||||||
|
if (StringUtils.isBlank(shopVo.getIsExpiration())) {
|
||||||
|
updateShopSubscribeStatusQuietly(shopVo.getId(), null, "0", null);
|
||||||
|
}
|
||||||
|
shopVo.setIsExpiration("0");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
applyGoSubscriptionSync(shopVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void applyGoSubscriptionSync(ShopVo shopVo) {
|
||||||
String result2 = InterfaceUtils.getInterface(UrlUtil.getServiceGoUrl(),
|
String result2 = InterfaceUtils.getInterface(UrlUtil.getServiceGoUrl(),
|
||||||
"/api/user/getKfzUserRecbusiness?userId=" + shopVo.getId());
|
"/api/user/getKfzUserRecbusiness?userId=" + shopVo.getId());
|
||||||
Map resultMap = JSONObject.parseObject(result2, Map.class);
|
Map resultMap = JSONObject.parseObject(result2, Map.class);
|
||||||
|
|||||||
@ -0,0 +1,44 @@
|
|||||||
|
package org.dromara.zhishu.service.impl;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.zhishu.domain.vo.TaoBaoShopInfoVo;
|
||||||
|
import org.dromara.zhishu.domain.vo.TaoBaoTemplateInfoVo;
|
||||||
|
import org.dromara.zhishu.mapper.TaoBaoMapper;
|
||||||
|
import org.dromara.zhishu.service.ITaoBaoService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 淘宝店铺 Service 实现
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class TaoBaoServiceImpl implements ITaoBaoService {
|
||||||
|
|
||||||
|
private static final String TB_SHOP_TYPE = "6";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private final TaoBaoMapper taoBaoMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaoBaoShopInfoVo getShopByMallId(Long mallId) {
|
||||||
|
TaoBaoShopInfoVo shopInfo = taoBaoMapper.selectShopByMallId(mallId, TB_SHOP_TYPE);
|
||||||
|
if (shopInfo == null || shopInfo.getShopId() == null) {
|
||||||
|
throw new ServiceException("未查询到淘宝店铺");
|
||||||
|
}
|
||||||
|
return shopInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaoBaoTemplateInfoVo getTemplateByShopId(Long shopId) {
|
||||||
|
TaoBaoTemplateInfoVo templateInfo = taoBaoMapper.selectTemplateByShopId(shopId, TB_SHOP_TYPE);
|
||||||
|
if (templateInfo == null || templateInfo.getShopId() == null) {
|
||||||
|
throw new ServiceException("未查询到淘宝店铺");
|
||||||
|
}
|
||||||
|
if (templateInfo.getTemplateId() == null) {
|
||||||
|
throw new ServiceException("店铺未设置运费模板");
|
||||||
|
}
|
||||||
|
return templateInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.zhishu.mapper.TaoBaoMapper">
|
||||||
|
|
||||||
|
<select id="selectShopByMallId" resultType="org.dromara.zhishu.domain.vo.TaoBaoShopInfoVo">
|
||||||
|
select id as shopId, mall_id as mallId, token
|
||||||
|
from t_shop
|
||||||
|
where mall_id = #{mallId}
|
||||||
|
and shop_type = #{shopType}
|
||||||
|
and del_flag = '0'
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectTemplateByShopId" resultType="org.dromara.zhishu.domain.vo.TaoBaoTemplateInfoVo">
|
||||||
|
select s.id as shopId, s.token, d.template_id as templateId
|
||||||
|
from t_shop s
|
||||||
|
left join t_shop_detail d on d.shop_id = s.id
|
||||||
|
where s.id = #{shopId}
|
||||||
|
and s.shop_type = #{shopType}
|
||||||
|
and s.del_flag = '0'
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue
Block a user