优化tao订单拉取

This commit is contained in:
启航 2026-01-17 17:39:12 +08:00
parent a959a0c822
commit 668690957d
9 changed files with 145 additions and 69 deletions

Binary file not shown.

Binary file not shown.

View File

@ -98,7 +98,7 @@
<artifactId>open-sdk</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/open-sdk-2.1.7.jar</systemPath>
<systemPath>${project.basedir}/libs/open-sdk-2.1.8.jar</systemPath>
</dependency>
<dependency>

View File

@ -71,39 +71,72 @@ public class OrderAssembleHelper {
order.setOaid(trade.getOaid());
List<TaoOrderItem> items = new ArrayList<>();
for (var item : trade.getOrders()) {
// TaoOrderItem orderItem = new TaoOrderItem();
// orderItem.setTitle(item.getTitle());
// orderItem.setTid(Long.parseLong(trade.getTid()));
// orderItem.setOid(Long.parseLong(item.getOid()));
// orderItem.setTotalFee(StringUtils.hasText(item.getTotal_fee()) ? BigDecimal.valueOf(Double.parseDouble(item.getTotal_fee())): BigDecimal.valueOf(0));
// orderItem.setDiscountFee(StringUtils.hasText(item.getDiscount_fee()) ? BigDecimal.valueOf(Double.parseDouble(item.getDiscount_fee())): BigDecimal.valueOf(0));
// orderItem.setAdjustFee(StringUtils.hasText(item.getAdjust_fee()) ?BigDecimal.valueOf(Double.parseDouble(item.getAdjust_fee())): BigDecimal.valueOf(0));
// orderItem.setDivideOrderFee( StringUtils.hasText(item.getDivide_order_fee()) ? Double.parseDouble(item.getDivide_order_fee()):null);
// orderItem.setPartMjzDiscount(StringUtils.hasText(item.getPart_mjz_discount()) ? Double.parseDouble(item.getPart_mjz_discount()):0.0);
// orderItem.setPayment(StringUtils.hasText(item.getPayment()) ? Double.parseDouble(item.getPayment()):0.0);
// orderItem.setPrice(StringUtils.hasText(item.getPrice()) ? BigDecimal.valueOf(Double.parseDouble(item.getPrice())): BigDecimal.valueOf(0));
// orderItem.setPicPath(item.getPic_path());
// orderItem.setNumIid(item.getNum_iid()+"");
// orderItem.setSkuId(item.getSku_id());
//// orderItem.setOuterIid(item.getOuterIid());
// orderItem.setOuterSkuId(item.getOuter_sku_id());
// orderItem.setSkuPropertiesName(item.getSku_properties_name());
//// orderItem.setItemMealId(item.getItemMealId() == null ? "" : item.getItemMealId() + "");
//// orderItem.setItemMealName(item.getItemMealName());
// orderItem.setNum(item.getNum());
// orderItem.setRefundStatus(item.getRefund_status());
// orderItem.setStatus(item.getStatus());
//// orderItem.setBuyerRate(item.getBuyerRate() + "");
//// orderItem.setSellerRate(item.getSellerRate() + "");
//// orderItem.setRefundId(item.getRefundId());
// orderItem.setSellerType(item.getSeller_type());
// orderItem.setCid(item.getCid());
// orderItem.setEndTime(item.getEnd_time());
// orderItem.setConsignTime(item.getConsign_time());
// orderItem.setShippingType(item.getShipping_type());
// orderItem.setLogisticsCompany(item.getLogistics_company());
// orderItem.setInvoiceNo(item.getInvoice_no());
TaoOrderItem orderItem = new TaoOrderItem();
orderItem.setTitle(item.getTitle());
orderItem.setTid(Long.parseLong(trade.getTid()));
orderItem.setOid(Long.parseLong(item.getOid()));
orderItem.setTotalFee(StringUtils.hasText(item.getTotal_fee()) ? BigDecimal.valueOf(Double.parseDouble(item.getTotal_fee())): BigDecimal.valueOf(0));
orderItem.setDiscountFee(StringUtils.hasText(item.getDiscount_fee()) ? BigDecimal.valueOf(Double.parseDouble(item.getDiscount_fee())): BigDecimal.valueOf(0));
orderItem.setAdjustFee(StringUtils.hasText(item.getAdjust_fee()) ?BigDecimal.valueOf(Double.parseDouble(item.getAdjust_fee())): BigDecimal.valueOf(0));
orderItem.setDivideOrderFee( StringUtils.hasText(item.getDivide_order_fee()) ? Double.parseDouble(item.getDivide_order_fee()):null);
orderItem.setPartMjzDiscount(StringUtils.hasText(item.getPart_mjz_discount()) ? Double.parseDouble(item.getPart_mjz_discount()):0.0);
orderItem.setPayment(StringUtils.hasText(item.getPayment()) ? Double.parseDouble(item.getPayment()):0.0);
orderItem.setPrice(StringUtils.hasText(item.getPrice()) ? BigDecimal.valueOf(Double.parseDouble(item.getPrice())): BigDecimal.valueOf(0));
orderItem.setPicPath(item.getPic_path());
orderItem.setNumIid(item.getNum_iid()+"");
orderItem.setSkuId(item.getSku_id());
// orderItem.setOuterIid(item.getOuterIid());
orderItem.setOuterSkuId(item.getOuter_sku_id());
orderItem.setSkuPropertiesName(item.getSku_properties_name());
// orderItem.setItemMealId(item.getItemMealId() == null ? "" : item.getItemMealId() + "");
// orderItem.setItemMealName(item.getItemMealName());
orderItem.setTotalFee(StringUtils.hasText(item.getTotalFee()) ? BigDecimal.valueOf(Double.parseDouble(item.getTotalFee())) : BigDecimal.valueOf(0));
orderItem.setDiscountFee(StringUtils.hasText(item.getDiscountFee()) ? BigDecimal.valueOf(Double.parseDouble(item.getDiscountFee())) : BigDecimal.valueOf(0));
orderItem.setAdjustFee(StringUtils.hasText(item.getAdjustFee()) ? BigDecimal.valueOf(Double.parseDouble(item.getAdjustFee())) : BigDecimal.valueOf(0));
orderItem.setDivideOrderFee(StringUtils.hasText(item.getDivideOrderFee()) ? Double.parseDouble(item.getDivideOrderFee()) : null);
orderItem.setPartMjzDiscount(StringUtils.hasText(item.getPartMjzDiscount()) ? Double.parseDouble(item.getPartMjzDiscount()) : 0.0);
orderItem.setPayment(StringUtils.hasText(item.getPayment()) ? Double.parseDouble(item.getPayment()) : 0.0);
orderItem.setPrice(StringUtils.hasText(item.getPrice()) ? BigDecimal.valueOf(Double.parseDouble(item.getPrice())) : BigDecimal.valueOf(0));
orderItem.setPicPath(item.getPicPath());
orderItem.setNumIid(item.getNumIid());
orderItem.setSkuId(item.getSkuId());
orderItem.setOuterIid(item.getOuterIid());
orderItem.setOuterSkuId(item.getOuterSkuId());
orderItem.setSkuPropertiesName(item.getSkuPropertiesName());
orderItem.setItemMealId(item.getItemMealId());
orderItem.setItemMealName(item.getItemMealName());
orderItem.setNum(item.getNum());
orderItem.setRefundStatus(item.getRefund_status());
orderItem.setStatus(item.getStatus());
// orderItem.setBuyerRate(item.getBuyerRate() + "");
// orderItem.setSellerRate(item.getSellerRate() + "");
// orderItem.setRefundId(item.getRefundId());
orderItem.setSellerType(item.getSeller_type());
orderItem.setCid(item.getCid());
orderItem.setEndTime(item.getEnd_time());
orderItem.setConsignTime(item.getConsign_time());
orderItem.setShippingType(item.getShipping_type());
orderItem.setLogisticsCompany(item.getLogistics_company());
orderItem.setInvoiceNo(item.getInvoice_no());
orderItem.setIsShShip(item.getIsShShip()!=null?item.getIsShShip().toString():"");
orderItem.setRefundStatus(item.getRefundStatus());
orderItem.setStatus(item.getStatus());
orderItem.setBuyerRate(item.getBuyerRate() + "");
orderItem.setSellerRate(item.getSellerRate() + "");
orderItem.setRefundId(item.getRefundId());
// orderItem.setSellerType(item.getSeller_type());
orderItem.setCid(item.getCid());
orderItem.setEndTime(item.getEndTime());
orderItem.setConsignTime(item.getConsignTime());
// orderItem.setShippingType(item.getShippingType());
orderItem.setLogisticsCompany(item.getLogisticsCompany());
orderItem.setInvoiceNo(item.getLogisticsCode());
items.add(orderItem);
}
order.setItems(items);
@ -185,6 +218,7 @@ public class OrderAssembleHelper {
orderItem.setItemMealId(item.getItemMealId());
orderItem.setItemMealName(item.getItemMealName());
orderItem.setNum(item.getNum());
orderItem.setIsShShip(item.getIsShShip().toString());
orderItem.setRefundStatus(item.getRefundStatus());
orderItem.setStatus(item.getStatus());
orderItem.setBuyerRate(item.getBuyerRate() + "");

View File

@ -8,6 +8,16 @@ public class TaoRequest {
private Integer pullType;//拉取类型0或不传全量1更新用于拉取商品的条件
private String orderDate;
public String getOrderDate() {
return orderDate;
}
public void setOrderDate(String orderDate) {
this.orderDate = orderDate;
}
public Integer getPullType() {
return pullType;
}

View File

@ -25,6 +25,7 @@ import cn.qihangerp.open.tao.response.TaoOrderListResponse;
import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
@ -81,11 +82,14 @@ public class TaoOrderApiController {
// 获取最后更新时间
LocalDateTime startTime = null;
LocalDateTime endTime = null;
OShopPullLasttime lasttime = pullLasttimeService.getLasttimeByShop(req.getShopId(), "ORDER");
if(lasttime == null){
OShopPullLasttime lasttime = null;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
if(StringUtils.isEmpty(req.getOrderDate())) {
lasttime = pullLasttimeService.getLasttimeByShop(req.getShopId(), "ORDER");
if (lasttime == null) {
endTime = LocalDateTime.now();
startTime = endTime.minusDays(1);
}else {
} else {
startTime = lasttime.getLasttime().minusHours(1);//取上次结束一个小时前
Duration duration = Duration.between(startTime, LocalDateTime.now());
long hours = duration.toHours();
@ -100,6 +104,12 @@ public class TaoOrderApiController {
// endTime = LocalDateTime.now();
// }
}
}else {
// 使用条件传过来的时间
// 将时间字符串转换为 LocalDateTime
startTime = LocalDateTime.parse(req.getOrderDate() + " 00:00:01", formatter);
endTime = LocalDateTime.parse(req.getOrderDate() + " 23:59:59", formatter);
}
//第一次获取
// ApiResultVo<TaoOrderResponse> upResult = OrderApiHelper.pullIncrementOrder(startTime,endTime,pageIndex, pageSize, url, appKey, appSecret, sessionKey);
@ -156,7 +166,7 @@ public class TaoOrderApiController {
pullLasttimeService.updateById(updateLasttime);
}
}
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
OShopPullLogs logs = new OShopPullLogs();
logs.setShopType(EnumShopType.TAO.getIndex());
logs.setShopId(req.getShopId());

View File

@ -220,11 +220,21 @@ PAY_PENDING(国际信用卡支付付款确认中)
*/
private String remark;
private String isShShip;
private String oGoodsId;
private String oGoodsSkuId;
private static final long serialVersionUID = 1L;
public String getIsShShip() {
return isShShip;
}
public void setIsShShip(String isShShip) {
this.isShShip = isShShip;
}
public String getoGoodsId() {
return oGoodsId;
}

View File

@ -46,6 +46,7 @@
<result property="oGoodsId" column="o_goods_id" jdbcType="VARCHAR"/>
<result property="oGoodsSkuId" column="o_goods_sku_id" jdbcType="VARCHAR"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
<result property="isShShip" column="is_sh_ship" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
@ -62,6 +63,6 @@
is_service_order,consign_time,shipping_type,
logistics_company,invoice_no,bind_oid,
status,refund_status,refund_id,o_goods_id,o_goods_sku_id,
remark
remark,is_sh_ship
</sql>
</mapper>

View File

@ -475,13 +475,25 @@ export default {
}
},
handlePull() {
if(this.queryParams.shopId){
if (!this.orderTime) {
this.$modal.msgError("请选择订单时间")
return
}
if (!this.queryParams.shopId) {
this.$modal.msgSuccess("请先选择店铺");
return;
}
const orderDate = this.orderTime[0]
this.pullLoading = true
pullOrder({shopId:this.queryParams.shopId,updType:0}).then(response => {
console.log('拉取淘宝订单接口返回=====',response)
if(response.code === 1401) {
MessageBox.confirm('Token已过期需要重新授权请前往店铺列表重新获取授权', '系统提示', { confirmButtonText: '前往授权', cancelButtonText: '取消', type: 'warning' }).then(() => {
this.$router.push({path:"/shop/shop_list",query:{type:1}})
pullOrder({shopId: this.queryParams.shopId, updType: 0, orderDate: orderDate}).then(response => {
console.log('拉取淘宝订单接口返回=====', response)
if (response.code === 1401) {
MessageBox.confirm('Token已过期需要重新授权请前往店铺列表重新获取授权', '系统提示', {
confirmButtonText: '前往授权',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$router.push({path: "/shop/shop_list", query: {type: 1}})
// isRelogin.show = false;
// store.dispatch('LogOut').then(() => {
// location.href = response.data.tokenRequestUrl+'?shopId='+this.queryParams.shopId
@ -491,14 +503,13 @@ export default {
});
// return Promise.reject('')
}else{
} else {
this.$modal.msgSuccess(JSON.stringify(response));
this.getList()
}
this.pullLoading = false
})
}else{
this.$modal.msgSuccess("请先选择店铺");
}
// this.$modal.msgSuccess("API");
},