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

Commit 4d015335 authored by jiangxiulong's avatar jiangxiulong

GoblinNftOrderCallBackVo-》GoblinNftOrderRefundVo;去掉无用的赋值;增加退款中订单状态

parent ce22bb7d
......@@ -18,10 +18,10 @@ import java.time.LocalDateTime;
* @author jiangxiulong
* @since 2022-03-24
*/
@ApiModel(value = "GoblinNftOrderCallBackVo", description = "退款订单vo")
@ApiModel(value = "GoblinNftOrderRefundVo", description = "退款订单vo")
@Data
@EqualsAndHashCode(callSuper = false)
public class GoblinNftOrderCallBackVo implements Serializable, Cloneable {
public class GoblinNftOrderRefundVo implements Serializable, Cloneable {
private static final long serialVersionUID = -3788885753222249948L;
......@@ -61,7 +61,7 @@ public class GoblinNftOrderCallBackVo implements Serializable, Cloneable {
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedAt;
public GoblinNftOrderCallBackVo copy(GoblinNftOrderRefund source) {
public GoblinNftOrderRefundVo copy(GoblinNftOrderRefund source) {
this.setOrderRefundId(source.getOrderRefundId());
this.setRefundCode(source.getRefundCode());
this.setOrderId(source.getOrderId());
......@@ -74,14 +74,14 @@ public class GoblinNftOrderCallBackVo implements Serializable, Cloneable {
return this;
}
private static final GoblinNftOrderCallBackVo obj = new GoblinNftOrderCallBackVo();
private static final GoblinNftOrderRefundVo obj = new GoblinNftOrderRefundVo();
public static GoblinNftOrderCallBackVo getNew() {
public static GoblinNftOrderRefundVo getNew() {
try {
return (GoblinNftOrderCallBackVo) obj.clone();
return (GoblinNftOrderRefundVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new GoblinNftOrderCallBackVo();
return new GoblinNftOrderRefundVo();
}
}
......@@ -28,7 +28,7 @@ db.createCollection("GoblinOrderSkuVo");
db.createCollection("GoblinSelfMarketingVo");
db.createCollection("GoblinStoreOrderVo");
db.createCollection("GoblinNftOrderVo");
db.createCollection("GoblinNftOrderCallBackVo");
db.createCollection("GoblinNftOrderRefundVo");
// ================================================== 创建索引
......@@ -77,11 +77,11 @@ db.GoblinNftOrderVo.createIndex({orderId:"hashed"});
db.GoblinNftOrderVo.createIndex({orderCode:"hashed"});
db.GoblinNftOrderVo.createIndex({skuId:"hashed"});
db.GoblinNftOrderVo.createIndex({userId:"hashed"});
db.GoblinNftOrderCallBackVo.createIndex({orderRefundId:"hashed"});
db.GoblinNftOrderCallBackVo.createIndex({refundCode:"hashed"});
db.GoblinNftOrderCallBackVo.createIndex({orderId:"hashed"});
db.GoblinNftOrderCallBackVo.createIndex({orderCode:"hashed"});
db.GoblinNftOrderCallBackVo.createIndex({userId:"hashed"});
db.GoblinNftOrderRefundVo.createIndex({orderRefundId:"hashed"});
db.GoblinNftOrderRefundVo.createIndex({refundCode:"hashed"});
db.GoblinNftOrderRefundVo.createIndex({orderId:"hashed"});
db.GoblinNftOrderRefundVo.createIndex({orderCode:"hashed"});
db.GoblinNftOrderRefundVo.createIndex({userId:"hashed"});
......@@ -115,4 +115,4 @@ sh.shardCollection("test_ln_scene.GoblinOrderSkuVo",{"orderSkuId":"hashed"});
sh.shardCollection("test_ln_scene.GoblinStoreOrderVo",{"orderId":"hashed"});
sh.shardCollection("test_ln_scene.GoblinSelfMarketingVo",{"selfMarketId":"hashed"});
sh.shardCollection("test_ln_scene.GoblinNftOrderVo",{"orderId":"hashed"});
sh.shardCollection("test_ln_scene.GoblinNftOrderCallBackVo",{"orderRefundId":"hashed"});
sh.shardCollection("test_ln_scene.GoblinNftOrderRefundVo",{"orderRefundId":"hashed"});
......@@ -468,40 +468,45 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
if (Objects.equals(1, syncOrderParam.getStatus())) {
String uid = orderVo.getUserId();
LocalDateTime now = LocalDateTime.now();
if (Objects.equals(orderVo.getStatus(), GoblinStatusConst.NftStatus.ORDER_STATUS_3.getValue())) {// 超时支付
log.error("Nft订单超时支付 param:[orderCode:{}]", orderCode);
log.info("Nft订单超时支付 param:[orderCode:{}]", orderCode);
// 处理为退款中
orderVo.setStatus(GoblinStatusConst.NftStatus.ORDER_STATUS_4.getValue());
orderVo.setUpdatedAt(now);
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlDataOrder = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("goblin_nft_order.update.refund"));
sqlDataOrder.add(new Object[]{
orderVo.getStatus(), now, orderId, now, now
});
nftOrderUtils.setNftOrder(orderVo);
// mongo
goblinMongoUtils.updateGoblinNftOrderVo(orderVo);
// mysql
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.getKey(),
SqlMapping.gets(sqls, sqlDataOrder));
// 退款
nftOrderUtils.refundOrderSku(orderId, syncOrderParam.getPaymentId(), syncOrderParam.getPaymentType());
} else {// 正常流程
LocalDateTime now = LocalDateTime.now();
GoblinNftOrder nftOrder = GoblinNftOrder.getNew();
nftOrder.setPaymentType(syncOrderParam.getPaymentType());
nftOrder.setPaymentId(syncOrderParam.getPaymentId());
nftOrder.setPayCode(syncOrderParam.getCode());
orderVo.setPaymentType(syncOrderParam.getPaymentType());
orderVo.setPaymentId(syncOrderParam.getPaymentId());
orderVo.setPayCode(syncOrderParam.getCode());
LocalDateTime payTime = LocalDateTime.parse(syncOrderParam.getPaymentAt(), DTF_YMD_HMS);
nftOrder.setPayTime(payTime);
nftOrder.setStatus(GoblinStatusConst.NftStatus.ORDER_STATUS_2.getValue());
nftOrder.setUpdatedAt(now);
orderVo.setPayTime(payTime);
orderVo.setStatus(GoblinStatusConst.NftStatus.ORDER_STATUS_2.getValue());
orderVo.setUpdatedAt(now);
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlDataOrder = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("goblin_nft_order.update.pay"));
sqlDataOrder.add(new Object[]{
nftOrder.getPaymentType(), nftOrder.getPaymentId(), nftOrder.getPayCode(),
nftOrder.getPayTime(), nftOrder.getStatus(), nftOrder.getUpdatedAt(),
orderVo.getPaymentType(), orderVo.getPaymentId(), orderVo.getPayCode(),
orderVo.getPayTime(), orderVo.getStatus(), orderVo.getUpdatedAt(),
orderId, now, now
});
// redis
orderVo.setPaymentType(syncOrderParam.getPaymentType());
orderVo.setPaymentId(syncOrderParam.getPaymentId());
orderVo.setPayCode(syncOrderParam.getCode());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parsedDate = LocalDateTime.parse(syncOrderParam.getPaymentAt(), formatter);
orderVo.setPayTime(parsedDate);
orderVo.setStatus(GoblinStatusConst.NftStatus.ORDER_STATUS_2.getValue());
orderVo.setUpdatedAt(now);
nftOrderUtils.setNftOrder(orderVo);
// mongo
goblinMongoUtils.updateGoblinNftOrderVo(orderVo);
......@@ -523,7 +528,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
public String refundSyncOrder(GoblinNftOrderRefundCallbackParam refundCallbackParam) {
LocalDateTime now = LocalDateTime.now();
log.info("NftRefundCallback订单退款回调参数: [RefundCallbackParam={}]", refundCallbackParam);
GoblinNftOrderCallBackVo nftOrderRefundVo = goblinMongoUtils.getGoblinNftOrderRefundVo(refundCallbackParam.getOrderRefundCode());
GoblinNftOrderRefundVo nftOrderRefundVo = goblinMongoUtils.getGoblinNftOrderRefundVo(refundCallbackParam.getOrderRefundCode());
if (nftOrderRefundVo == null) {
log.info("NftRefundCallback: 退款订单查询失败,编号{}", refundCallbackParam.getOrderRefundCode());
return "fail";
......
......@@ -121,17 +121,17 @@ public class GoblinMongoUtils {
}
//添加 订单退款数据
public GoblinNftOrderCallBackVo insertGoblinNftOrderRefundVo(GoblinNftOrderCallBackVo vo) {
return mongoTemplate.insert(vo, GoblinNftOrderCallBackVo.class.getSimpleName());
public GoblinNftOrderRefundVo insertGoblinNftOrderRefundVo(GoblinNftOrderRefundVo vo) {
return mongoTemplate.insert(vo, GoblinNftOrderRefundVo.class.getSimpleName());
}
//获取 订单退款数据
public GoblinNftOrderCallBackVo getGoblinNftOrderRefundVo(String refundCode) {
return mongoTemplate.findOne(Query.query(Criteria.where("refundCode").is(refundCode)), GoblinNftOrderCallBackVo.class, GoblinNftOrderCallBackVo.class.getSimpleName());
public GoblinNftOrderRefundVo getGoblinNftOrderRefundVo(String refundCode) {
return mongoTemplate.findOne(Query.query(Criteria.where("refundCode").is(refundCode)), GoblinNftOrderRefundVo.class, GoblinNftOrderRefundVo.class.getSimpleName());
}
//修改 订单退款数据
public UpdateResult updateGoblinNftOrderRefundVo(GoblinNftOrderCallBackVo data) {
public UpdateResult updateGoblinNftOrderRefundVo(GoblinNftOrderRefundVo data) {
BasicDBObject object = ObjectUtil.cloneBasicDBObject().append("$set", mongoConverter.convertToMongoType(data));
return mongoTemplate.getCollection(GoblinNftOrderCallBackVo.class.getSimpleName()).updateOne(
return mongoTemplate.getCollection(GoblinNftOrderRefundVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderRefundId").is(data.getOrderRefundId())).getQueryObject(),
object);
}
......
......@@ -9,7 +9,7 @@ import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.candy.vo.CandyUseResultVo;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderCallBackVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderRefundVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo;
......@@ -109,7 +109,7 @@ public class GoblinNftOrderUtils {
}
// 退款订单vo
public void setBackOrderVo(GoblinNftOrderCallBackVo vo) {
public void setBackOrderVo(GoblinNftOrderRefundVo vo) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_ORDER_REFUND_INFO.concat(vo.getOrderId());
redisUtil.set(redisKey, vo);
}
......@@ -247,18 +247,16 @@ public class GoblinNftOrderUtils {
BigDecimal refundPrice = nftOrder.getPriceActual();
//记录退款单
String refundCode = IDGenerator.storeRefundCode(nftOrder.getOrderCode());
GoblinNftOrderRefund nftBackOrder = GoblinNftOrderRefund.getNew();
nftBackOrder.setOrderRefundId(IDGenerator.nextTimeId2());
nftBackOrder.setRefundCode(refundCode);
nftBackOrder.setOrderId(orderId);
nftBackOrder.setOrderCode(nftOrder.getOrderCode());
nftBackOrder.setStoreId(nftOrder.getStoreId());
nftBackOrder.setUserId(nftOrder.getUserId());
nftBackOrder.setPrice(refundPrice);
nftBackOrder.setStatus(GoblinStatusConst.NftStatus.ORDER_REFUND_STATUS_1.getValue());
nftBackOrder.setCreatedAt(now);
GoblinNftOrderCallBackVo backOrderVo = GoblinNftOrderCallBackVo.getNew().copy(nftBackOrder);
GoblinNftOrderRefundVo backOrderVo = GoblinNftOrderRefundVo.getNew();
backOrderVo.setOrderRefundId(IDGenerator.nextTimeId2());
backOrderVo.setRefundCode(refundCode);
backOrderVo.setOrderId(orderId);
backOrderVo.setOrderCode(nftOrder.getOrderCode());
backOrderVo.setStoreId(nftOrder.getStoreId());
backOrderVo.setUserId(nftOrder.getUserId());
backOrderVo.setPrice(refundPrice);
backOrderVo.setStatus(GoblinStatusConst.NftStatus.ORDER_REFUND_STATUS_1.getValue());
backOrderVo.setCreatedAt(now);
backOrderVo.setErrorReason("");
// 调用退款 超时支付回调可能还未完成 所以redisVo没有此俩个参数
......@@ -283,9 +281,9 @@ public class GoblinNftOrderUtils {
queueUtils.sendMsgByRedis(// mysql
MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.getKey(),
SqlMapping.get("goblin_nft_order_refund.insert",
nftBackOrder.getOrderRefundId(), nftBackOrder.getRefundCode(), nftBackOrder.getOrderId(),
nftBackOrder.getOrderCode(), nftBackOrder.getStoreId(), nftBackOrder.getUserId(),
nftBackOrder.getPrice(), backOrderVo.getStatus(),
backOrderVo.getOrderRefundId(), backOrderVo.getRefundCode(), backOrderVo.getOrderId(),
backOrderVo.getOrderCode(), backOrderVo.getStoreId(), backOrderVo.getUserId(),
backOrderVo.getPrice(), backOrderVo.getStatus(),
backOrderVo.getErrorReason()
)
);
......
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