记得上下班打卡 | git大法好,push需谨慎

Commit d47dfbd5 authored by 胡佳晨's avatar 胡佳晨

提交 同步订单 方法

parent 53761540
......@@ -78,9 +78,6 @@ public class GoblinOrderSkuVo implements Serializable, Cloneable {
@ApiModelProperty(value = "erp-仓库号")
private String erpWarehouseNo;
@ApiModelProperty(value = "仓库编号")
private String warehouseNo;
public String getPushTime() {
return pushTime==null?"":pushTime;
}
......@@ -108,6 +105,7 @@ public class GoblinOrderSkuVo implements Serializable, Cloneable {
this.setSkuErpCode(source.getSkuErpCode());
this.setErpType(source.getErpType());
this.setErpWarehouseNo(source.getErpWarehouseNo());
this.setErpHosting(source.getErpHosting());
this.setCreatedAt(source.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
return this;
......
......@@ -6,4 +6,6 @@ public interface IGoblinErpService {
ResponseDto<Boolean> initErpStock(String spuId,int min);
ResponseDto<Boolean> pushTrade(String orderId);
}
package com.liquidnet.service.erp.utils;
import com.liquidnet.service.erp.param.OrderListParam;
import com.liquidnet.service.erp.param.TradeListParam;
import com.liquidnet.service.erp.vo.SyncStockVo;
import org.springframework.stereotype.Component;
......@@ -18,6 +20,8 @@ import java.util.HashMap;
public class ErpObjectUtil {
private static final HashMap<String, SyncStockVo> syncStockVo = new HashMap<String, SyncStockVo>();
private static final ArrayList<SyncStockVo> syncStockVoList = new ArrayList();
private static final ArrayList<TradeListParam> tradeListParam = new ArrayList<>();
private static final ArrayList<OrderListParam> orderListParam = new ArrayList<>();
public static HashMap<String, SyncStockVo> syncStockVo() {
return (HashMap<String, SyncStockVo>) syncStockVo.clone();
......@@ -27,4 +31,10 @@ public class ErpObjectUtil {
return (ArrayList<SyncStockVo>) syncStockVoList.clone();
}
public static ArrayList<TradeListParam> tradeListParam() {
return (ArrayList<TradeListParam>) tradeListParam.clone();
}
public static ArrayList<OrderListParam> orderListParam() {
return (ArrayList<OrderListParam>) orderListParam.clone();
}
}
......@@ -150,7 +150,6 @@ public class GoblinOrderSku implements Serializable,Cloneable {
*/
private String erpWarehouseNo;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
......
......@@ -128,65 +128,4 @@ public class GoblinOrderUtils {
return returnMap;
}
public List<TradeListParam> getErpOrder(String orderId) {
List<TradeListParam> listOrder = ObjectUtil.tradeListParam();
TradeListParam tradeListParam = TradeListParam.getNew();
GoblinStoreOrderVo orderVo = redisUtils.getGoblinOrder(orderId);
List<String> orderSkuIds = orderVo.getOrderSkuVoIds();
List<OrderListParam> listOrderSku = ObjectUtil.orderListParam();
String warehouseNo = "";
//配置sku维度数据
for (String orderSkuId : orderSkuIds) {
OrderListParam orderSkuParam = OrderListParam.getNew();
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderSkuId);
orderSkuParam.setOid(orderSkuVo.getOrderSkuId());
orderSkuParam.setNum(BigDecimal.valueOf(orderSkuVo.getNum()));
orderSkuParam.setPrice(orderSkuVo.getSkuPrice());
orderSkuParam.setStatus(ErpEnum.WdtStatus.STATUS_UN_SEND.WdtStatus());
orderSkuParam.setRefund_status(0);
orderSkuParam.setGoods_id(orderSkuVo.getSpuId());
orderSkuParam.setSpec_id(orderSkuVo.getSkuId());
orderSkuParam.setGoods_no(orderSkuVo.getSpuErpCode());
orderSkuParam.setSpec_no(orderSkuVo.getSkuErpCode());
orderSkuParam.setGoods_name(orderSkuVo.getSpuName());
orderSkuParam.setAdjust_amount(BigDecimal.ZERO);
orderSkuParam.setDiscount(BigDecimal.ZERO);
orderSkuParam.setShare_discount(orderSkuVo.getPriceVoucher());
warehouseNo = orderSkuVo.getWarehouseNo();
listOrderSku.add(orderSkuParam);
}
//配置订单维度数据
tradeListParam.setOrder_list(listOrderSku);
tradeListParam.setTid(orderVo.getOrderCode());
tradeListParam.setTrade_status(ErpEnum.WdtStatus.STATUS_UN_SEND.WdtStatus());
tradeListParam.setPay_status(2);
tradeListParam.setDelivery_term(1);
tradeListParam.setTrade_time(orderVo.getCreatedAt());
tradeListParam.setPay_time(orderVo.getPayTime());
tradeListParam.setBuyer_nick(orderVo.getUserName());
tradeListParam.setPay_id(orderVo.getPayCode());
tradeListParam.setReceiver_name(orderVo.getOrderAttrVo().getExpressContacts());
String[] address = orderVo.getOrderAttrVo().getExpressAddress().split(" ");
if (address.length > 0) {
tradeListParam.setReceiver_province(address[0]);
}
if (address.length > 1) {
tradeListParam.setReceiver_city(address[1]);
}
if (address.length > 2) {
tradeListParam.setReceiver_district(address[2]);
}
tradeListParam.setReceiver_address(orderVo.getOrderAttrVo().getExpressAddress());
tradeListParam.setReceiver_mobile(orderVo.getOrderAttrVo().getExpressPhone());
tradeListParam.setPost_amount(orderVo.getPriceExpress());
tradeListParam.setExt_cod_fee(BigDecimal.ZERO);
tradeListParam.setOther_amount(BigDecimal.ZERO);
tradeListParam.setPaid(orderVo.getPriceActual());
tradeListParam.setWarehouse_no(warehouseNo);
listOrder.add(tradeListParam);
return listOrder;
}
}
......@@ -103,8 +103,6 @@ public class ObjectUtil {
private static final ArrayList<GoblinMixAppListVo> goblinMixAppListVo = new ArrayList<>();
private static final ArrayList<CouponCountVo> couponCountVos = new ArrayList<>();
private static final ArrayList<GoblinMixDetailsVo> goblinMixDetailsVo = new ArrayList<>();
private static final ArrayList<OrderListParam> orderListParam = new ArrayList<>();
private static final ArrayList<TradeListParam> tradeListParam = new ArrayList<>();
private static final HashMap<String, String[]> mixIdMap = new HashMap();
......@@ -112,13 +110,7 @@ public class ObjectUtil {
return (HashMap<String, String[]>) mixIdMap.clone();
}
public static ArrayList<OrderListParam> orderListParam() {
return (ArrayList<OrderListParam>) orderListParam.clone();
}
public static ArrayList<TradeListParam> tradeListParam() {
return (ArrayList<TradeListParam>) tradeListParam.clone();
}
public static ArrayList<CouponCountVo> couponCountVos() {
return (ArrayList<CouponCountVo>) couponCountVos.clone();
......
......@@ -292,6 +292,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
orderSku.setSkuErpCode(skuVo.getSkuErpCode());
orderSku.setErpType(spuVo.getErpType());
orderSku.setErpWarehouseNo(skuVo.getErpWarehouseNo());
orderSku.setErpHosting(skuVo.getErpHosting());
orderSku.setSkuImage(skuVo.getSkuPic());
orderSku.setSkuSpecs(JSON.toJSONString(skuVo.getSkuSpecList()));
......@@ -594,7 +595,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
}
sqlDataSku.add(new Object[]{
orderSku.getOrderSkuId(), orderSku.getOrderId(), orderSku.getSpuId(), orderSku.getSpuName(), orderSku.getSpuPic(), orderSku.getSkuId(), orderSku.getNum(), orderSku.getSkuPrice(), orderSku.getSkuPriceActual(), orderSku.getSkuName(),
orderSku.getSkuNo(), orderSku.getSkuImage(), orderSku.getSkuSpecs(), orderSku.getPriceVoucher(), orderSku.getCreatedAt()
orderSku.getSkuNo(), orderSku.getSkuImage(), orderSku.getSkuSpecs(), orderSku.getPriceVoucher(), orderSku.getSpuErpCode(), orderSku.getSkuErpCode(), orderSku.getErpType(), orderSku.getErpWarehouseNo(), orderSku.getErpHosting(), orderSku.getCreatedAt()
});
//订单 orderSku Vo
GoblinOrderSkuVo orderSkuVo = GoblinOrderSkuVo.getNew().copy(orderSku);
......
......@@ -32,7 +32,7 @@ kylin_order_refund_entities.overtimeRefund=INSERT INTO kylin_order_refund_entiti
#-------- \u5546\u57CE -------
goblin.order.create.order_insert=INSERT INTO goblin_store_order (`master_order_code`,`order_id`,`store_id`,`store_name`,`order_code`,`user_id`,`user_name`,`user_mobile`,`price_total`,`pay_code`,`price_actual`,`price_refund`,`price_express`,`price_coupon`,`store_price_coupon`,`price_voucher`,`status`,`ucoupon_id`,`store_coupon_id`,`pay_type`,`device_from`,`source`,`version`,`is_member`,`order_type`,`write_off_code`,`pay_countdown_minute`,`ip_address`,`market_id`,`market_type`,`created_at`,`mix_id`,`mix_code`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin.order.create.attr_insert=INSERT INTO goblin_order_attr (`order_attr_id`,`order_id`,`express_contacts`,`express_address`,`express_address_detail`,`express_phone`,`express_type`,`created_at`) VALUES (?,?,?,?,?,?,?,?)
goblin.order.create.sku_insert=INSERT INTO goblin_order_sku (`order_sku_id`,`order_id`,`spu_id`,`spu_name`,`spu_pic`,`sku_id`,`num`,`sku_price`,`sku_price_actual`,`sku_name`,`sku_no`,`sku_image`,`sku_specs`,`price_voucher`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin.order.create.sku_insert=INSERT INTO goblin_order_sku (`order_sku_id`,`order_id`,`spu_id`,`spu_name`,`spu_pic`,`sku_id`,`num`,`sku_price`,`sku_price_actual`,`sku_name`,`sku_no`,`sku_image`,`sku_specs`,`price_voucher`,`spu_erp_code`,`sku_erp_code`,`erp_type`,`erp_warehouse_no`,`erp_hosting`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
#---- \u518D\u6B21\u652F\u4ED8
goblin_order.pay.again=UPDATE goblin_store_order SET pay_type = ? ,device_from = ? ,pay_code = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
#---- \u8BA2\u5355\u521B\u5EFA&\u652F\u4ED8
......
......@@ -21,8 +21,8 @@ public class WdtController {
@ApiOperation("同步库存")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "spuId", value = "spuId"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "min", value = "间隔时间"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "spuId", value = "spuId"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "min", value = "间隔时间"),
})
public ResponseDto<Boolean> initErpStock(@RequestParam(value = "spuId", required = false) String spuId,
@RequestParam(value = "min", required = false) Integer min) {
......@@ -32,4 +32,15 @@ public class WdtController {
return goblinErpService.initErpStock(spuId, min);
}
@PostMapping("pushErpTrade")
@ApiOperation("同步库存")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "orderId", value = "orderId"),
})
public ResponseDto<Boolean> pushTrade(@RequestParam(value = "orderId") String orderId) {
return goblinErpService.pushTrade(orderId);
}
}
package com.liquidnet.service.platform.service.impl.erp;
import com.alibaba.fastjson.JSON;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
......@@ -8,15 +9,21 @@ import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.erp.config.ErpWdtClient;
import com.liquidnet.service.erp.constant.ErpEnum;
import com.liquidnet.service.erp.param.OrderListParam;
import com.liquidnet.service.erp.param.TradeListParam;
import com.liquidnet.service.erp.utils.ErpObjectUtil;
import com.liquidnet.service.erp.vo.StockQueryBaseVo;
import com.liquidnet.service.erp.vo.StockQueryVo;
import com.liquidnet.service.erp.vo.SyncStockVo;
import com.liquidnet.service.erp.vo.TradePushVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinOrderSkuVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderVo;
import com.liquidnet.service.goblin.mapper.GoblinGoodsSkuMapper;
import com.liquidnet.service.goblin.service.IGoblinErpService;
import com.liquidnet.service.platform.utils.GoblinRedisUtils;
import com.liquidnet.service.platform.utils.ObjectUtil;
import com.liquidnet.service.platform.utils.QueueUtils;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
......@@ -154,4 +161,81 @@ public class WdtServiceImpl implements IGoblinErpService {
}
}
@Override
public ResponseDto<Boolean> pushTrade(String orderId) {
List<TradeListParam> listOrder = ErpObjectUtil.tradeListParam();
TradeListParam tradeListParam = TradeListParam.getNew();
GoblinStoreOrderVo orderVo = goblinRedisUtils.getGoblinOrder(orderId);
List<String> orderSkuIds = orderVo.getOrderSkuVoIds();
List<OrderListParam> listOrderSku = ErpObjectUtil.orderListParam();
String warehouseNo = "";
int erpHosting = 0;
//配置sku维度数据
for (String orderSkuId : orderSkuIds) {
OrderListParam orderSkuParam = OrderListParam.getNew();
GoblinOrderSkuVo orderSkuVo = goblinRedisUtils.getGoblinOrderSkuVo(orderSkuId);
if (orderSkuVo.getErpHosting() == 0) {
continue;
} else {
erpHosting = 1;
}
orderSkuParam.setOid(orderSkuVo.getOrderSkuId());
orderSkuParam.setNum(BigDecimal.valueOf(orderSkuVo.getNum()));
orderSkuParam.setPrice(orderSkuVo.getSkuPrice());
orderSkuParam.setStatus(ErpEnum.WdtStatus.STATUS_UN_SEND.WdtStatus());
orderSkuParam.setRefund_status(0);
orderSkuParam.setGoods_id(orderSkuVo.getSpuId());
orderSkuParam.setSpec_id(orderSkuVo.getSkuId());
orderSkuParam.setGoods_no(orderSkuVo.getSpuErpCode());
orderSkuParam.setSpec_no(orderSkuVo.getSkuErpCode());
orderSkuParam.setGoods_name(orderSkuVo.getSpuName());
orderSkuParam.setAdjust_amount(BigDecimal.ZERO);
orderSkuParam.setDiscount(BigDecimal.ZERO);
orderSkuParam.setShare_discount(orderSkuVo.getPriceVoucher());
warehouseNo = orderSkuVo.getErpWarehouseNo();
listOrderSku.add(orderSkuParam);
}
//配置订单维度数据
tradeListParam.setOrder_list(listOrderSku);
tradeListParam.setTid(orderVo.getOrderCode());
tradeListParam.setTrade_status(ErpEnum.WdtStatus.STATUS_UN_SEND.WdtStatus());
tradeListParam.setPay_status(2);
tradeListParam.setDelivery_term(1);
tradeListParam.setTrade_time(orderVo.getCreatedAt());
tradeListParam.setPay_time(orderVo.getPayTime());
tradeListParam.setBuyer_nick(orderVo.getUserName());
tradeListParam.setPay_id(orderVo.getPayCode());
tradeListParam.setReceiver_name(orderVo.getOrderAttrVo().getExpressContacts());
String[] address = orderVo.getOrderAttrVo().getExpressAddress().split(" ");
if (address.length > 0) {
tradeListParam.setReceiver_province(address[0]);
}
if (address.length > 1) {
tradeListParam.setReceiver_city(address[1]);
}
if (address.length > 2) {
tradeListParam.setReceiver_district(address[2]);
}
tradeListParam.setReceiver_address(orderVo.getOrderAttrVo().getExpressAddress());
tradeListParam.setReceiver_mobile(orderVo.getOrderAttrVo().getExpressPhone());
tradeListParam.setPost_amount(orderVo.getPriceExpress());
tradeListParam.setExt_cod_fee(BigDecimal.ZERO);
tradeListParam.setOther_amount(BigDecimal.ZERO);
tradeListParam.setPaid(orderVo.getPriceActual());
tradeListParam.setWarehouse_no(warehouseNo);
if (erpHosting == 1) {
listOrder.add(tradeListParam);
}
//执行同步订单
Map<String, String> param = CollectionUtil.linkMapStringString();
param.put("shop_no", "mdtk2-test");
param.put("trade_list", JSON.toJSONString(listOrder));
String json = erpWdtClient.execute(ErpEnum.WdtAPI.TRADE_PUSH.getUri(), param);
TradePushVo data = JsonUtils.fromJson(json, TradePushVo.class);
return ResponseDto.success();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment