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

Commit 4d015335 authored by jiangxiulong's avatar jiangxiulong

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

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