| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import com.alibaba.fastjson2.JSON
- import com.dderp.common.api.BusinessExecutor
- import com.dderp.common.datas.BusinessOrderStatus
- import com.dderp.common.datas.ERPModule
- import com.dderp.common.entity.base.ProcessStringItem
- import com.dderp.common.entity.express.SFCreateOrderResult
- import com.dderp.common.entity.express.SFOrder
- import com.dderp.common.entity.express.SFOrderDetail
- import com.dderp.common.entity.express.SFOrderProductDetail
- import com.dderp.common.entity.express.SFOrderReceive
- import com.dderp.common.entity.order.BusinessOrder
- import com.dderp.common.entity.order.OrderFinances
- import com.dderp.common.http.HttpTools
- import com.dySweetFishPlugin.sql.TableIdService
- import com.sweetfish.convert.json.JsonConvert
- import com.sweetfish.service.RetResult
- import groovy.json.JsonSlurper
- import org.apache.logging.log4j.LogManager
- import org.apache.logging.log4j.Logger
- import javax.annotation.Resource
- import java.math.RoundingMode
- import java.nio.charset.StandardCharsets
- import java.time.LocalDateTime
- import java.time.ZoneOffset
- import java.util.concurrent.CompletableFuture
- import java.util.concurrent.ExecutionException
- import java.util.concurrent.TimeUnit
- import java.util.concurrent.TimeoutException
- @SuppressWarnings("unused")
- class BE_Order_CreateOrder_Douyin implements BusinessExecutor<ProcessStringItem, BusinessOrder> {
- private final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
- @Resource
- private JsonConvert jsonConvert
- @Resource
- private TableIdService tableIdService
- @Override
- String scriptName() {
- return "抖音来客创建订单"
- }
- @Override
- ERPModule module() {
- return ERPModule.ORDER_API
- }
- RetResult<BusinessOrder> execute(ProcessStringItem source) {
- //秒级时间戳,groovy里面不让用system
- long currentTime = LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8))
- String dataSourceId = source.dataSourceId
- long supplierCode = source.supplierCode
- def jsonSlurper = new JsonSlurper()
- def invokeOrder = jsonSlurper.parseText(source.itemValue)
- BusinessOrder businessOrder = new BusinessOrder()
- businessOrder.setId(tableIdService.getTableIdMulti("deBusinessOrder.id", 1, dataSourceId, String.valueOf(supplierCode)))
- businessOrder.setOrderName(invokeOrder["merchant"]["account_name"] as String)
- businessOrder.setOrderCode(tableIdService.getTableCodeMulti("deBusinessOrder.code", dataSourceId, String.valueOf(supplierCode)))
- businessOrder.setOrderStatus(BusinessOrderStatus.init.value)
- //todo 商户平台需求一个绑定逻辑,用以判断该平台适用于哪一个脚本
- //businessOrder.setIncomePlatformId(0)
- //businessOrder.setIncomePlatformName("")
- businessOrder.setIncomePlatformOrderCode(invokeOrder["order"]["order_id"] as String)
- businessOrder.setIncomePlatformOrderTimeLong(invokeOrder["order"]["pay_time"] as long * 1000)//抖音传过来的时间戳单位是秒
- businessOrder.setIncomePlatformOrderTime(new Date(businessOrder.incomePlatformOrderTimeLong))
- //抖音传过来的格式为起始时间戳(单位秒)- 截止时间戳(单位秒),示例:1669370006-1669371206,目前先取起始时间
- long suggestTimeLong = (invokeOrder["order"]["sys_expect_time"] as String).split("-")[0] as long
- businessOrder.setSuggestDeliverTimeLong(suggestTimeLong * 1000)
- businessOrder.setSuggestDeliverTime(new Date(businessOrder.suggestDeliverTimeLong))
- //todo 商户id同上
- //businessOrder.setIdStore(0)
- //businessOrder.setStoreName("")
- BigDecimal deliverFee = new BigDecimal((invokeOrder["amount_info"]["freight_pay_amount"] as int) / 100).setScale(2, RoundingMode.CEILING)
- businessOrder.setDeliverFee(deliverFee)
- String address = "[" + invokeOrder["receiver_info"]["city"] + "]" + invokeOrder["receiver_info"]["province"] +
- invokeOrder["receiver_info"]["city"] +
- invokeOrder["receiver_info"]["district"] +
- invokeOrder["receiver_info"]["location_address"] +
- invokeOrder["receiver_info"]["location_name"] + "-" +
- invokeOrder["receiver_info"]["receiver_name"]
- businessOrder.setDeliverAddressAll(address)
- //订单金额类信息
- OrderFinances orderFinances = new OrderFinances()
- // orderFinances.setId(tableIdService.)
- return null;
- }
- }
|