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

Commit 9beb92d3 authored by 胡佳晨's avatar 胡佳晨

提交 混合售相关下单接口 除回调

parent b6dfd2f4
......@@ -19,6 +19,8 @@ public class GoblinMixDetailsItemVo implements Serializable, Cloneable {
private String skuPic;
@ApiModelProperty(value = "sku名称")
private String skuName;
@ApiModelProperty(value = "spu名称")
private String spuName;
@ApiModelProperty(value = "商品类型[1-商城|2-数字藏品]")
private String position;
@ApiModelProperty(value = "sku原价")
......
......@@ -142,6 +142,20 @@ public class GoblinNftOrderVo implements Serializable, Cloneable {
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedAt;
@ApiModelProperty(value = "混合售id")
private String mixId;
@ApiModelProperty(value = "混合售名称")
private String mixName;
public String getMixId() {
return mixId == null ? "" : mixId;
}
public String getMixName() {
return mixName == null ? "" : mixName;
}
public GoblinNftOrderVo copy(GoblinNftOrder source) {
if (null == source) return this;
this.setOrderId(source.getOrderId());
......@@ -180,6 +194,46 @@ public class GoblinNftOrderVo implements Serializable, Cloneable {
return this;
}
public GoblinNftOrderVo copyMix(GoblinNftOrder source,String mixId,String mixName) {
if (null == source) return this;
this.setOrderId(source.getOrderId());
this.setSpuId(source.getSpuId());
this.setSkuId(source.getSkuId());
this.setSkuTitle(source.getSkuTitle());
this.setBoxSkuId(source.getBoxSkuId());
this.setNum(source.getNum());
this.setStoreId(source.getStoreId());
this.setStoreName(source.getStoreName());
this.setOrderCode(source.getOrderCode());
this.setUserId(source.getUserId());
this.setUserName(source.getUserName());
this.setUserMobile(source.getUserMobile());
this.setListId(source.getListId());
this.setExCode(source.getExCode());
this.setPriceTotal(source.getPriceTotal());
this.setPriceCoupon(source.getPriceCoupon());
this.setStorePriceCoupon(source.getStorePriceCoupon());
this.setPriceRedEnvelope(source.getPriceRedEnvelope());
this.setPriceVoucher(source.getPriceVoucher());
this.setPriceActual(source.getPriceActual());
this.setUcouponId(source.getUcouponId());
this.setStoreCouponId(source.getStoreCouponId());
this.setRedEnvelopeCode(source.getRedEnvelopeCode());
this.setStatus(source.getStatus());
this.setSource(source.getSource());
this.setOrderType(source.getOrderType());
this.setPayType(source.getPayType());
this.setDeviceFrom(source.getDeviceFrom());
this.setVersion(source.getVersion());
this.setPayCountdownMinute(source.getPayCountdownMinute());
this.setPayCode(source.getPayCode());
this.setIpAddress(source.getIpAddress());
this.setCreatedAt(source.getCreatedAt());
this.setMixId(mixId);
this.setMixName(mixName);
return this;
}
private static final GoblinNftOrderVo obj = new GoblinNftOrderVo();
public static GoblinNftOrderVo getNew() {
......
......@@ -121,6 +121,11 @@ public class GoblinStoreOrderVo implements Serializable, Cloneable {
@ApiModelProperty(value = "orderSkuId")
private List<String> orderSkuVoIds;
@ApiModelProperty(value = "混合售id")
private String mixId;
@ApiModelProperty(value = "混合售名称")
private String mixName;
public BigDecimal getPriceModify() {
if (priceModify == null) {
return BigDecimal.ZERO;
......@@ -135,6 +140,14 @@ public class GoblinStoreOrderVo implements Serializable, Cloneable {
return priceVoucher;
}
public String getMixId() {
return mixId == null ? "" : mixId;
}
public String getMixName() {
return mixName == null ? "" : mixName;
}
public GoblinStoreOrderVo copy(GoblinStoreOrder source) {
if (null == source) return this;
......@@ -186,6 +199,53 @@ public class GoblinStoreOrderVo implements Serializable, Cloneable {
return this;
}
public GoblinStoreOrderVo copyMix(GoblinStoreOrder source,String mixId,String mixName) {
if (null == source) return this;
this.setOrderId(source.getOrderId());
this.setStoreId(source.getStoreId());
this.setStoreName(source.getStoreName());
this.setMasterOrderCode(source.getMasterOrderCode());
this.setOrderCode(source.getOrderCode());
this.setPayCode(source.getPayCode());
this.setUserId(source.getUserId());
this.setUserName(source.getUserName());
this.setUserMobile(source.getUserMobile());
this.setPriceTotal(source.getPriceTotal());
this.setPriceActual(source.getPriceActual());
this.setPriceRefund(source.getPriceRefund());
this.setPriceExpress(source.getPriceExpress());
this.setPriceModify(source.getPriceModify());
this.setPriceCoupon(source.getPriceCoupon());
this.setStorePriceCoupon(source.getStorePriceCoupon());
this.setPriceVoucher(source.getPriceVoucher());
this.setStatus(source.getStatus());
this.setZhengzaiStatus(source.getZhengzaiStatus());
this.setUcouponId(source.getUcouponId());
this.setStoreCouponId(source.getStoreCouponId());
this.setPayType(source.getPayType());
this.setDeviceFrom(source.getDeviceFrom());
this.setCancelReason(source.getCancelReason());
this.setSource(source.getSource());
this.setVersion(source.getVersion());
this.setIsMember(source.getIsMember());
this.setOrderType(source.getOrderType());
this.setLotteryStatus(source.getLotteryStatus());
this.setWriteOffCode(source.getWriteOffCode());
this.setPayCountdownMinute(source.getPayCountdownMinute());
this.setMailNo(source.getMailNo());
this.setLogisticsCompany(source.getLogisticsCompany());
this.setLogisticsCode(source.getLogisticsCode());
this.setIpAddress(source.getIpAddress());
this.setPaymentId(source.getPaymentId());
this.setPaymentType(source.getPaymentType());
this.setMarketType(source.getMarketType());
this.setMarketId(source.getMarketId());
this.setCreatedAt(source.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
this.setMixId(mixId);
this.setMixName(mixName);
return this;
}
private static final GoblinStoreOrderVo obj = new GoblinStoreOrderVo();
public static GoblinStoreOrderVo getNew() {
......
......@@ -91,11 +91,13 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
if (durationToMillis >= 0) {
switch (type) {
case "GOBLIN":
return checkOrderTime(orderCode, type);
return checkOrderTime(orderCode);
case "NFT":
return checkNftOrderTime(orderCode);
case "TICKET":
return checkTicketOrderTime(orderCode);
case "MIX":
return checkMixOrderTime(orderCode);
default:
return false;
}
......@@ -118,10 +120,9 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
protected abstract String getRedisStreamGroup();
public boolean checkOrderTime(String valueData, String type) {
public boolean checkOrderTime(String valueData) {
LocalDateTime now = LocalDateTime.now();
try {
if (type.equals("GOBLIN")) {
String[] orderIds = getMasterCode(valueData);
for (String orderId : orderIds) {
GoblinStoreOrderVo orderVo = getGoblinOrder(orderId);
......@@ -170,7 +171,6 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
SqlMapping.gets(sqls, sqlDataOrder, sqlDataSku));
}
}
}
} catch (Exception e) {
log.error("库存回滚异常valueData={}", valueData, e);
}
......@@ -198,7 +198,7 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
}*/
GoblinListCollectVo goblinListCollectVo = goblinNftUtils.getCollectByNowNext(nowTime, nftOrder.getSkuId());
String listId = (null == goblinListCollectVo) ? null : goblinListCollectVo.getListId();
log.debug("listId : {}",listId);
log.debug("listId : {}", listId);
if (StringUtils.isEmpty(nftOrder.getBoxSkuId())) {// 购买藏品
goblinNftUtils.incrSkuStock(listId, nftOrder.getSkuId(), nftOrder.getNum());
} else {// 购买盲盒
......@@ -228,6 +228,72 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
}
}
public boolean checkMixOrderTime(String orderCode) {
LocalDateTime now = LocalDateTime.now();
try {
HashMap<String, String[]> map = getMixMasterCode(orderCode);
String[] nft = map.get("nft");
String[] goblin = map.get("goblin");
for (String orderId : goblin) {
GoblinStoreOrderVo orderVo = getGoblinOrder(orderId);
if (orderVo.getStatus().equals(GoblinStatusConst.Status.ORDER_STATUS_0.getValue())) {//订单回滚
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlDataOrder = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> sqlDataSku = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("goblin_order.close.order"));
sqls.add(SqlMapping.get("goblin_order.close.sku"));
for (String orderSkuId : orderVo.getOrderSkuVoIds()) {
GoblinOrderSkuVo skuVo = getGoblinOrderSkuVo(orderSkuId);
//订单详情
skuVo.setStatus(GoblinStatusConst.Status.ORDER_STATUS_5.getValue());
updateGoblinOrderSkuVo(skuVo.getOrderSkuId(), skuVo);
setGoblinOrderSku(skuVo.getOrderSkuId(), skuVo);
//库存&限购&&待支付订单
String pre = GoblinStatusConst.MarketPreStatus.getPre(skuVo.getSkuId());
incrSkuStock(pre, skuVo.getSkuId(), skuVo.getNum());
decrSkuCountByUid(orderVo.getUserId(), skuVo.getSkuId(), skuVo.getNum());
//mysql
sqlDataSku.add(new Object[]{
skuVo.getStatus(), now, skuVo.getOrderSkuId(), now, now
});
}
//订单
orderVo.setStatus(GoblinStatusConst.Status.ORDER_STATUS_5.getValue());
updateGoblinStoreOrderVo(orderVo.getOrderId(), orderVo);
setGoblinOrder(orderVo.getOrderId(), orderVo);
//店铺券退券
if (!(orderVo.getStoreCouponId().equals("") || orderVo.getStoreCouponId() == null)) {
BackCouponParam backCouponParam = BackCouponParam.getNew();
backCouponParam.setuCouponIds(orderVo.getStoreCouponId());
backCouponParam.setUid(orderVo.getUserId());
backStoreCoupon(backCouponParam);
}
//平台券
if (!(orderVo.getUcouponId().equals("") || orderVo.getUcouponId() == null)) {
backCoupon(orderVo.getUcouponId(), orderVo.getUserId());
}
//mysql
sqlDataOrder.add(new Object[]{
orderVo.getStatus(), now, now, "超时关闭", orderVo.getOrderId(), now, now
});
//执行sql
sendMsgByRedis(MQConst.GoblinQueue.GOBLIN_ORDER_CLOSE.getKey(),
SqlMapping.gets(sqls, sqlDataOrder, sqlDataSku));
}
}
for (String orderId : nft) {
checkNftOrderTime(orderId);
}
} catch (Exception e) {
log.error("MIX库存回滚异常valueData={}", orderCode, e);
}
return true;
}
public boolean checkTicketOrderTime(String orderId) {
LocalDateTime now = LocalDateTime.now();
try {
......@@ -326,6 +392,22 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
}
}
public HashMap<String, String[]> getMixMasterCode(String masterCode) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_ORDER_MASTER.concat(masterCode);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return null;
} else {
String[] a = ((String) obj).split("&&");
String[] nftA = a[0].split(",");
String[] goblinA = a[1].split(",");
HashMap<String, String[]> map = mixIdMap();
map.put("nft", nftA);
map.put("goblin", goblinA);
return map;
}
}
// 获取 订单相关vo
public GoblinStoreOrderVo getGoblinOrder(String orderId) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_ORDER.concat(orderId);
......@@ -447,6 +529,7 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
private static final BasicDBObject basicDBObject = new BasicDBObject();
private static final ArrayList<GoblinUserCouponVo> goblinUserCouponVo = new ArrayList<>();
private static final HashMap<String, String[]> mixIdMap = new HashMap();
public static BasicDBObject cloneBasicDBObject() {
......@@ -457,4 +540,8 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
return (ArrayList<GoblinUserCouponVo>) goblinUserCouponVo.clone();
}
public static HashMap<String, String[]> mixIdMap() {
return (HashMap<String, String[]>) mixIdMap.clone();
}
}
\ No newline at end of file
......@@ -82,8 +82,11 @@ public class GoblinMixAppServiceImpl implements IGoblinMixAppService {
int stock = 0;
for (GoblinMixDetailsItemVo item : vo.getItem()) {
GoblinGoodsSkuInfoVo skuInfoVo = redisUtils.getGoodsSkuInfoVo(item.getSkuId());
GoblinGoodsInfoVo spuInfoVo = redisUtils.getGoodsInfoVo(skuInfoVo.getSpuId());
item.setSkuPic(skuInfoVo.getSkuPic());
item.setStock(0);
item.setSkuName(skuInfoVo.getName());
item.setSpuName(spuInfoVo.getName());
if (skuInfoVo.getUnbox().equals("1")) {
List<String> relationIds = redisUtils.getGoblinMixRelationBox(item.getSkuId(), vo.getMixId());
for (String skuId : relationIds) {
......@@ -115,8 +118,11 @@ public class GoblinMixAppServiceImpl implements IGoblinMixAppService {
GoblinMixDetailsVo baseVo = redisUtils.getMixDetails(mixId);
for (GoblinMixDetailsItemVo item : baseVo.getItem()) {
GoblinGoodsSkuInfoVo skuInfoVo = redisUtils.getGoodsSkuInfoVo(item.getSkuId());
GoblinGoodsInfoVo spuInfoVo = redisUtils.getGoodsInfoVo(skuInfoVo.getSpuId());
item.setStock(0);
item.setSkuPic(skuInfoVo.getSkuPic());
item.setSkuName(skuInfoVo.getName());
item.setSpuName(spuInfoVo.getName());
}
return ResponseDto.success(baseVo.getItem());
}
......
......@@ -494,7 +494,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
nftOrder.getNum(), nftOrder.getStoreId(), nftOrder.getStoreName(), nftOrder.getOrderCode(), nftOrder.getUserId(), nftOrder.getUserName(), nftOrder.getUserMobile(), nftOrder.getPriceTotal(), nftOrder.getPriceCoupon(),
nftOrder.getStorePriceCoupon(), nftOrder.getPriceRedEnvelope(), nftOrder.getPriceVoucher(), nftOrder.getPriceActual(), nftOrder.getUcouponId(), nftOrder.getStoreCouponId(), nftOrder.getRedEnvelopeCode(), nftOrder.getStatus(), nftOrder.getSource(),
nftOrder.getOrderType(), nftOrder.getPayType(), nftOrder.getDeviceFrom(), nftOrder.getVersion(), nftOrder.getPayCountdownMinute(), nftOrder.getIpAddress(), nftOrder.getCreatedAt(), nftOrder.getPayCode(),
nftOrder.getSkuTitle(), nftOrder.getListId(), nftOrder.getExCode()
nftOrder.getSkuTitle(), nftOrder.getListId(), nftOrder.getExCode(),""
});
// 订单vo
......@@ -889,7 +889,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
nftOrder.getNum(), nftOrder.getStoreId(), nftOrder.getStoreName(), nftOrder.getOrderCode(), nftOrder.getUserId(), nftOrder.getUserName(), nftOrder.getUserMobile(), nftOrder.getPriceTotal(), nftOrder.getPriceCoupon(),
nftOrder.getStorePriceCoupon(), nftOrder.getPriceRedEnvelope(), nftOrder.getPriceVoucher(), nftOrder.getPriceActual(), nftOrder.getUcouponId(), nftOrder.getStoreCouponId(), nftOrder.getRedEnvelopeCode(), orderVo.getStatus(), nftOrder.getSource(),
nftOrder.getOrderType(), orderVo.getPayType(), nftOrder.getDeviceFrom(), nftOrder.getVersion(), nftOrder.getPayCountdownMinute(), nftOrder.getIpAddress(), nftOrder.getCreatedAt(), orderVo.getPayCode(),
nftOrder.getSkuTitle(), nftOrder.getListId(), nftOrder.getExCode()
nftOrder.getSkuTitle(), nftOrder.getListId(), nftOrder.getExCode(),""
});
String sqlData = SqlMapping.gets(sqls, sqlDataCode, sqlDataOrder);
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.GOBLIN_NFT_ORDER.getKey(), sqlData);
......
......@@ -573,7 +573,7 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
sqlDataOrder.add(new Object[]{
storeOrder.getMasterOrderCode(), storeOrder.getOrderId(), storeOrder.getStoreId(), storeOrder.getStoreName(), storeOrder.getOrderCode(), storeOrder.getUserId(), storeOrder.getUserName(), storeOrder.getUserMobile(), storeOrder.getPriceTotal(), storeOrder.getPayCode(),
storeOrder.getPriceActual(), storeOrder.getPriceRefund(), storeOrder.getPriceExpress(), storeOrder.getPriceCoupon(), storeOrder.getStorePriceCoupon(), storeOrder.getPriceVoucher(), storeOrder.getStatus(), storeOrder.getUcouponId(), storeOrder.getStoreCouponId(), storeOrder.getPayType(), storeOrder.getDeviceFrom(),
storeOrder.getSource(), storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getMarketId(), storeOrder.getMarketType(), storeOrder.getCreatedAt()
storeOrder.getSource(), storeOrder.getVersion(), storeOrder.getIsMember(), storeOrder.getOrderType(), storeOrder.getWriteOffCode(), storeOrder.getPayCountdownMinute(), storeOrder.getIpAddress(), storeOrder.getMarketId(), storeOrder.getMarketType(), storeOrder.getCreatedAt(),""
});
GoblinOrderAttr orderAttr = item.getOrderAttr();
sqlDataAttr.add(new Object[]{
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.order.utils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.dto.GoblinQueueBizMongoDto;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinIpAreaVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.StreamRecords;
......@@ -89,10 +90,31 @@ public class QueueUtils {
HashMap<String, String> map = ObjectUtil.cloneHashMapStringAndString();
map.put("id", masterOrderCode);
map.put("type", type);
map.put("time", createTime.plusMinutes(getPayCountdownMinute-5).toString());
map.put("time", createTime.plusMinutes(getPayCountdownMinute - 5).toString());
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(streamKey));
}
/**
* mongo操作入队列
*
* @param collect Mongo集合名
* @param column Mongo集合中的字段属性名称
* @param bizId Mongo集合中的字段属性值
* @param prefix Redis缓存中的Key前缀
* @param opType 操作类型[1-insert|2-update]
*/
public void setMongoList(String collect, String column, String bizId, String prefix, int opType) {
GoblinQueueBizMongoDto goblinQueueBizMongoDto = GoblinQueueBizMongoDto.getNew();
goblinQueueBizMongoDto.setCollect(collect);
goblinQueueBizMongoDto.setColumn(column);
goblinQueueBizMongoDto.setBizId(bizId);
goblinQueueBizMongoDto.setPrefix(prefix);
goblinQueueBizMongoDto.setOpType(opType);
HashMap<String, String> map = ObjectUtil.cloneHashMapStringAndString();
map.put(MQConst.QUEUE_MESSAGE_KEY, goblinQueueBizMongoDto.toJson());
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(MQConst.GoblinQueue.BIZ_NFT_MONGO.getKey()));
}
public void pushPvUv(String uid, String accessType, String performanceId, String orderId, String orderCode, String ipAddress) {
try {
KylinIpAreaVo vo = dataUtils.getKylinIpAreaVo(ipAddress);
......
......@@ -30,7 +30,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`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
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`) 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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
#---- \u518D\u6B21\u652F\u4ED8
......@@ -47,7 +47,7 @@ goblin_order.store.refundLog=INSERT INTO goblin_back_order_log (`back_order_log_
goblin_order.store.backOrder=INSERT INTO goblin_back_order (`back_order_id`,`back_code`,`order_id`,`order_code`,`store_id`,`user_id`,`sku_id_nums`,`type`,`reason`,`describes`,`real_back_price`,`status`,`created_at`,`audit_at`,`error_reason`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
#-------- NFT -------
goblin_nft_order.insert=INSERT INTO goblin_nft_order (`order_id`,`spu_id`,`sku_id`,`box_sku_id`,`num`,`store_id`,`store_name`,`order_code`,`user_id`,`user_name`,`user_mobile`,`price_total`,`price_coupon`,`store_price_coupon`,`price_red_envelope`,`price_voucher`,`price_actual`,`ucoupon_id`,`store_coupon_id`,`red_envelope_code`,`status`,`source`,`order_type`,`pay_type`,`device_from`,`version`,`pay_countdown_minute`,`ip_address`,`created_at`,`pay_code`,sku_title,list_id,ex_code) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_nft_order.insert=INSERT INTO goblin_nft_order (`order_id`,`spu_id`,`sku_id`,`box_sku_id`,`num`,`store_id`,`store_name`,`order_code`,`user_id`,`user_name`,`user_mobile`,`price_total`,`price_coupon`,`store_price_coupon`,`price_red_envelope`,`price_voucher`,`price_actual`,`ucoupon_id`,`store_coupon_id`,`red_envelope_code`,`status`,`source`,`order_type`,`pay_type`,`device_from`,`version`,`pay_countdown_minute`,`ip_address`,`created_at`,`pay_code`,sku_title,list_id,ex_code,mix_id) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_nft_order.update.pay=UPDATE goblin_nft_order SET payment_type = ?, payment_id=?, pay_code = ?, pay_time = ?, status = ?, updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
goblin_nft_order.update.refund=UPDATE goblin_nft_order SET status = ?, updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
goblin_nft_order_refund.insert=INSERT INTO goblin_nft_order_refund (`order_refund_id`,`refund_code`,`order_id`,`order_code`,`store_id`,`user_id`,`price`,`status`,`error_reason`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?)
......
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