提交修改

This commit is contained in:
quyixiao 2025-11-09 22:35:53 +08:00
parent b1091f24c5
commit e166af40ab
32 changed files with 371 additions and 168 deletions

View File

@ -58,4 +58,12 @@ public interface VvReverseOrderDao extends BaseMapper<VvReverseOrderEntity> {
@OrderBy(VvReverseOrderEntity.id_)
@LIMIT
VvReverseOrderEntity selectVvReverseOrderByTradeOrderId(Long tradeOrderId);
}
@OrderBy(VvReverseOrderEntity.id_)
@LIMIT
VvReverseOrderEntity selectVvReverseOrderByTrackNumber(String trackNumber);
}

View File

@ -26,7 +26,7 @@ private static final long serialVersionUID = 1L;
public final static String create_time = CLASS_NAME + "create_time"; // 创建时间
public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间
public final static String trade_order_id = CLASS_NAME + "trade_order_id"; // 订单号
public final static String status_ = CLASS_NAME + "status"; // 状态 buyer_apply_reverse_wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
public final static String status_ = CLASS_NAME + "status"; // 订单取消:cancel,买家申请退款等待卖家同意:buyer_apply_reverse_wait_seller_agree,卖家同意退货买家邮寄:seller_agree_return_wait_buyer_post,运送中:shipping,已签收:shipped,拒绝签收:reject_shipped,质检完成:qa_check_finished,同意退款:agree_refund,拒绝退款:reject_refund,微信退款中:weixin_refunding,退款完成:refunded,退款关闭:close
public final static String refund_amount = CLASS_NAME + "refund_amount"; // 退款金额
public final static String refund_trade_order_line_count = CLASS_NAME + "refund_trade_order_line_count"; // 退款子单笔数
public final static String refund_type = CLASS_NAME + "refund_type"; // 退款类型1 仅退款 2 退款退货
@ -47,8 +47,7 @@ private static final long serialVersionUID = 1L;
public final static String gmt_close = CLASS_NAME + "gmt_close"; // 退款关闭时间
public final static String gmt_refunded = CLASS_NAME + "gmt_refunded"; // 退款完成时间
public final static String gmt_agree_refund = CLASS_NAME + "gmt_agree_refund"; // 同意退款时间
public final static String gmt_reject_delivered = CLASS_NAME + "gmt_reject_delivered"; // 拒绝妥投时间
public final static String gmt_delivered = CLASS_NAME + "gmt_delivered"; // 妥投时间
public final static String gmt_shipped = CLASS_NAME + "gmt_shipped"; // 妥投时间
public final static String gmt_buyer_post = CLASS_NAME + "gmt_buyer_post"; // 买家邮寄时间
public final static String gmt_seller_agree_return = CLASS_NAME + "gmt_seller_agree_return"; // 卖家同意退款
public final static String gmt_buyer_apply_refund = CLASS_NAME + "gmt_buyer_apply_refund"; // 买家申请退款时间
@ -57,12 +56,20 @@ private static final long serialVersionUID = 1L;
public final static String close_user = CLASS_NAME + "close_user"; // 逆向订单关闭的卖家
public final static String refunded_user = CLASS_NAME + "refunded_user"; // 退款完成的操作卖家
public final static String agree_refund_user = CLASS_NAME + "agree_refund_user"; // 同意退款的卖家
public final static String reject_delivered_user = CLASS_NAME + "reject_delivered_user"; // 拒绝妥投的买家
public final static String delivered_user = CLASS_NAME + "delivered_user"; // 同意妥投的买家
public final static String shipped_user = CLASS_NAME + "shipped_user"; // 同意妥投的买家
public final static String buyer_post_user = CLASS_NAME + "buyer_post_user"; // 邮寄的买家
public final static String seller_agree_return_user = CLASS_NAME + "seller_agree_return_user"; // 同意退货退款的卖家
public final static String buyer_apply_refund_user = CLASS_NAME + "buyer_apply_refund_user"; // 买家申请退款的买家
public final static String close_reason = CLASS_NAME + "close_reason"; // 订单关闭原因
public final static String gmt_reject_shipped = CLASS_NAME + "gmt_reject_shipped"; // 拒绝签收时间
public final static String reject_shipped_user = CLASS_NAME + "reject_shipped_user"; // 拒绝签收用户
public final static String reject_shipped_reason = CLASS_NAME + "reject_shipped_reason"; // 拒绝签收原因
public final static String gmt_qa_check_finished = CLASS_NAME + "gmt_qa_check_finished"; // 质检完成时间
public final static String qa_check_finished_user = CLASS_NAME + "qa_check_finished_user"; // 质检完成用户
public final static String qa_check_finished_comment = CLASS_NAME + "qa_check_finished_comment"; // 质检完成评论
public final static String gmt_reject_refund = CLASS_NAME + "gmt_reject_refund"; // 拒绝退款时间
public final static String reject_refund_user = CLASS_NAME + "reject_refund_user"; // 拒绝退款用户
public final static String reject_refund_reason = CLASS_NAME + "reject_refund_reason"; // 拒绝退款原因
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ -74,7 +81,7 @@ private static final long serialVersionUID = 1L;
private Date modifyTime;
//订单号
private Long tradeOrderId;
//状态 buyer_apply_reverse_wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
//订单取消:cancel,买家申请退款等待卖家同意:buyer_apply_reverse_wait_seller_agree,卖家同意退货买家邮寄:seller_agree_return_wait_buyer_post,运送中:shipping,已签收:shipped,拒绝签收:reject_shipped,质检完成:qa_check_finished,同意退款:agree_refund,拒绝退款:reject_refund,微信退款中:weixin_refunding,退款完成:refunded,退款关闭:close
private String status;
//退款金额
private BigDecimal refundAmount;
@ -116,10 +123,8 @@ private static final long serialVersionUID = 1L;
private Date gmtRefunded;
//同意退款时间
private Date gmtAgreeRefund;
//拒绝妥投时间
private Date gmtRejectDelivered;
//妥投时间
private Date gmtDelivered;
private Date gmtShipped;
//买家邮寄时间
private Date gmtBuyerPost;
//卖家同意退款
@ -136,10 +141,8 @@ private static final long serialVersionUID = 1L;
private String refundedUser;
//同意退款的卖家
private String agreeRefundUser;
//拒绝妥投的买家
private String rejectDeliveredUser;
//同意妥投的买家
private String deliveredUser;
private String shippedUser;
//邮寄的买家
private String buyerPostUser;
//同意退货退款的卖家
@ -148,6 +151,24 @@ private static final long serialVersionUID = 1L;
private String buyerApplyRefundUser;
//订单关闭原因
private String closeReason;
//拒绝签收时间
private Date gmtRejectShipped;
//拒绝签收用户
private String rejectShippedUser;
//拒绝签收原因
private String rejectShippedReason;
//质检完成时间
private Date gmtQaCheckFinished;
//质检完成用户
private String qaCheckFinishedUser;
//质检完成评论
private String qaCheckFinishedComment;
//拒绝退款时间
private Date gmtRejectRefund;
//拒绝退款用户
private String rejectRefundUser;
//拒绝退款原因
private String rejectRefundReason;
/**
*
* @return
@ -224,14 +245,14 @@ private static final long serialVersionUID = 1L;
}
/**
* 状态 buyer_apply_reverse_wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
* 订单取消:cancel,买家申请退款等待卖家同意:buyer_apply_reverse_wait_seller_agree,卖家同意退货买家邮寄:seller_agree_return_wait_buyer_post,运送中:shipping,已签收:shipped,拒绝签收:reject_shipped,质检完成:qa_check_finished,同意退款:agree_refund,拒绝退款:reject_refund,微信退款中:weixin_refunding,退款完成:refunded,退款关闭:close
* @return
*/
public String getStatus() {
return status;
}
/**
* 状态 buyer_apply_reverse_wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
* 订单取消:cancel,买家申请退款等待卖家同意:buyer_apply_reverse_wait_seller_agree,卖家同意退货买家邮寄:seller_agree_return_wait_buyer_post,运送中:shipping,已签收:shipped,拒绝签收:reject_shipped,质检完成:qa_check_finished,同意退款:agree_refund,拒绝退款:reject_refund,微信退款中:weixin_refunding,退款完成:refunded,退款关闭:close
* @param status
*/
public void setStatus(String status) {
@ -538,34 +559,19 @@ private static final long serialVersionUID = 1L;
this.gmtAgreeRefund = gmtAgreeRefund;
}
/**
* 拒绝妥投时间
* @return
*/
public Date getGmtRejectDelivered() {
return gmtRejectDelivered;
}
/**
* 拒绝妥投时间
* @param gmtRejectDelivered
*/
public void setGmtRejectDelivered(Date gmtRejectDelivered) {
this.gmtRejectDelivered = gmtRejectDelivered;
}
/**
* 妥投时间
* @return
*/
public Date getGmtDelivered() {
return gmtDelivered;
public Date getGmtShipped() {
return gmtShipped;
}
/**
* 妥投时间
* @param gmtDelivered
* @param gmtShipped
*/
public void setGmtDelivered(Date gmtDelivered) {
this.gmtDelivered = gmtDelivered;
public void setGmtShipped(Date gmtShipped) {
this.gmtShipped = gmtShipped;
}
/**
@ -688,34 +694,19 @@ private static final long serialVersionUID = 1L;
this.agreeRefundUser = agreeRefundUser;
}
/**
* 拒绝妥投的买家
* @return
*/
public String getRejectDeliveredUser() {
return rejectDeliveredUser;
}
/**
* 拒绝妥投的买家
* @param rejectDeliveredUser
*/
public void setRejectDeliveredUser(String rejectDeliveredUser) {
this.rejectDeliveredUser = rejectDeliveredUser;
}
/**
* 同意妥投的买家
* @return
*/
public String getDeliveredUser() {
return deliveredUser;
public String getShippedUser() {
return shippedUser;
}
/**
* 同意妥投的买家
* @param deliveredUser
* @param shippedUser
*/
public void setDeliveredUser(String deliveredUser) {
this.deliveredUser = deliveredUser;
public void setShippedUser(String shippedUser) {
this.shippedUser = shippedUser;
}
/**
@ -778,6 +769,141 @@ private static final long serialVersionUID = 1L;
this.closeReason = closeReason;
}
/**
* 拒绝签收时间
* @return
*/
public Date getGmtRejectShipped() {
return gmtRejectShipped;
}
/**
* 拒绝签收时间
* @param gmtRejectShipped
*/
public void setGmtRejectShipped(Date gmtRejectShipped) {
this.gmtRejectShipped = gmtRejectShipped;
}
/**
* 拒绝签收用户
* @return
*/
public String getRejectShippedUser() {
return rejectShippedUser;
}
/**
* 拒绝签收用户
* @param rejectShippedUser
*/
public void setRejectShippedUser(String rejectShippedUser) {
this.rejectShippedUser = rejectShippedUser;
}
/**
* 拒绝签收原因
* @return
*/
public String getRejectShippedReason() {
return rejectShippedReason;
}
/**
* 拒绝签收原因
* @param rejectShippedReason
*/
public void setRejectShippedReason(String rejectShippedReason) {
this.rejectShippedReason = rejectShippedReason;
}
/**
* 质检完成时间
* @return
*/
public Date getGmtQaCheckFinished() {
return gmtQaCheckFinished;
}
/**
* 质检完成时间
* @param gmtQaCheckFinished
*/
public void setGmtQaCheckFinished(Date gmtQaCheckFinished) {
this.gmtQaCheckFinished = gmtQaCheckFinished;
}
/**
* 质检完成用户
* @return
*/
public String getQaCheckFinishedUser() {
return qaCheckFinishedUser;
}
/**
* 质检完成用户
* @param qaCheckFinishedUser
*/
public void setQaCheckFinishedUser(String qaCheckFinishedUser) {
this.qaCheckFinishedUser = qaCheckFinishedUser;
}
/**
* 质检完成评论
* @return
*/
public String getQaCheckFinishedComment() {
return qaCheckFinishedComment;
}
/**
* 质检完成评论
* @param qaCheckFinishedComment
*/
public void setQaCheckFinishedComment(String qaCheckFinishedComment) {
this.qaCheckFinishedComment = qaCheckFinishedComment;
}
/**
* 拒绝退款时间
* @return
*/
public Date getGmtRejectRefund() {
return gmtRejectRefund;
}
/**
* 拒绝退款时间
* @param gmtRejectRefund
*/
public void setGmtRejectRefund(Date gmtRejectRefund) {
this.gmtRejectRefund = gmtRejectRefund;
}
/**
* 拒绝退款用户
* @return
*/
public String getRejectRefundUser() {
return rejectRefundUser;
}
/**
* 拒绝退款用户
* @param rejectRefundUser
*/
public void setRejectRefundUser(String rejectRefundUser) {
this.rejectRefundUser = rejectRefundUser;
}
/**
* 拒绝退款原因
* @return
*/
public String getRejectRefundReason() {
return rejectRefundReason;
}
/**
* 拒绝退款原因
* @param rejectRefundReason
*/
public void setRejectRefundReason(String rejectRefundReason) {
this.rejectRefundReason = rejectRefundReason;
}
@Override
public String toString() {
return "VvReverseOrderEntity{" +
@ -807,8 +933,7 @@ private static final long serialVersionUID = 1L;
",gmtClose=" + gmtClose +
",gmtRefunded=" + gmtRefunded +
",gmtAgreeRefund=" + gmtAgreeRefund +
",gmtRejectDelivered=" + gmtRejectDelivered +
",gmtDelivered=" + gmtDelivered +
",gmtShipped=" + gmtShipped +
",gmtBuyerPost=" + gmtBuyerPost +
",gmtSellerAgreeReturn=" + gmtSellerAgreeReturn +
",gmtBuyerApplyRefund=" + gmtBuyerApplyRefund +
@ -817,12 +942,20 @@ private static final long serialVersionUID = 1L;
",closeUser=" + closeUser +
",refundedUser=" + refundedUser +
",agreeRefundUser=" + agreeRefundUser +
",rejectDeliveredUser=" + rejectDeliveredUser +
",deliveredUser=" + deliveredUser +
",shippedUser=" + shippedUser +
",buyerPostUser=" + buyerPostUser +
",sellerAgreeReturnUser=" + sellerAgreeReturnUser +
",buyerApplyRefundUser=" + buyerApplyRefundUser +
",closeReason=" + closeReason +
",gmtRejectShipped=" + gmtRejectShipped +
",rejectShippedUser=" + rejectShippedUser +
",rejectShippedReason=" + rejectShippedReason +
",gmtQaCheckFinished=" + gmtQaCheckFinished +
",qaCheckFinishedUser=" + qaCheckFinishedUser +
",qaCheckFinishedComment=" + qaCheckFinishedComment +
",gmtRejectRefund=" + gmtRejectRefund +
",rejectRefundUser=" + rejectRefundUser +
",rejectRefundReason=" + rejectRefundReason +
"}";
}
}

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum ApprovalEnums {
//apply申请 reject:拒绝 agree:同意

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum BuyerAddressEnums {

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum CommentStatusEnums {
// 状态 待审批 wait_approval 待审批, approval_pass审批通过 , approval_not_pass 审批未通过如果审批未通过即自己可见但别人不可见

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum OrderStatusEnums {
create("create","订单创建"),

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum ProductStatusEnums {

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum RefundTypeEnums {

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum ResourceEnums {

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum ReverseStatusEnums {
@ -10,6 +10,7 @@ public enum ReverseStatusEnums {
// agree_refunded 同意退款 ,
// refunded 退款完成
// close 退款关闭
cancel("cancel", "订单取消"),
buyer_apply_reverse_wait_seller_agree("buyer_apply_reverse_wait_seller_agree", "买家申请退款,等待卖家同意,"),
@ -18,11 +19,15 @@ public enum ReverseStatusEnums {
shipping("shipping", "运送中"),
delivered("delivered", "已签收"),
shipped("shipped", "已签收"),
reject_delivered("reject_delivered", "拒绝接"),
reject_shipped("reject_shipped", "拒绝签"),
agree_refunded("agree_refunded", "同意退款"),
qa_check_finished("qa_check_finished", "质检完成"),
agree_refund("agree_refund", "同意退款"),
reject_refund("reject_refund", "拒绝退款"),
weixin_refunding("weixin_refunding", "微信退款中"),
@ -39,6 +44,7 @@ public enum ReverseStatusEnums {
private String desc;
// 订单取消:cancel,买家申请退款等待卖家同意:buyer_apply_reverse_wait_seller_agree,卖家同意退货买家邮寄:seller_agree_return_wait_buyer_post,运送中:shipping,已签收:shipped,拒绝签收:reject_shipped,质检完成:qa_check_finished,同意退款:agree_refund,拒绝退款:reject_refund,微信退款中:weixin_refunding,退款完成:refunded,退款关闭:close
public String getStatus() {
return status;

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum ReverseUploadSceneEnums {

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum SettleStatusEnums {

View File

@ -1,4 +1,4 @@
package com.heyu.api.alibaba.request.mm.enums;
package com.heyu.api.data.enums;
public enum ShippingTypeEnums {

View File

@ -12,13 +12,17 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.heyu.api.data.dao.vv.VvPackageDao;
import com.heyu.api.data.dao.vv.VvReverseOrderDao;
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
import com.heyu.api.data.dto.PackageDelivedDelayDTO;
import com.heyu.api.data.dto.vv.KuaiDi100DTO;
import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import com.heyu.api.data.enums.DelayTypeEnums;
import com.heyu.api.data.enums.KuaiDi100StateEnums;
import com.heyu.api.data.enums.ReverseStatusEnums;
import com.heyu.api.data.enums.ShippingTypeEnums;
import com.heyu.api.data.kuaidi100.KuaiDi100Utils;
import com.heyu.api.data.kuaidi100.LogisticsMapUtils;
import com.heyu.api.data.service.vv.VvPackageService;
@ -57,6 +61,9 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
@Autowired
private VvTradeOrderLineDao tradeOrderLineDao;
@Autowired
private VvReverseOrderDao vvReverseOrderDao;
@Override
public VvPackageEntity selectVvPackageById(Long id) {
@ -113,8 +120,7 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
vvPackageEntity.setLogisticsCompany(LogisticsMapUtils.getLogisticsCompanyName(kuaiDi100DTO.getCom()));
}
if (kuaiDi100DTO.getRouteInfo() != null
&& kuaiDi100DTO.getRouteInfo().getFrom() != null
) {
&& kuaiDi100DTO.getRouteInfo().getFrom() != null) {
vvPackageEntity.setShippingFrom(kuaiDi100DTO.getRouteInfo().getFrom().getName());
}
// 如果查询出来包裹状态已经签收
@ -129,32 +135,39 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
Date timeAfter15 = DateUtils.addDays(time, 15);
// 设置签收时间
vvPackageEntity.setGmtSignReceipt(time);
PackageDelivedDelayDTO dto = new PackageDelivedDelayDTO();
dto.setPackageId(vvPackageEntity.getId() );
dto.setRole(role);
dto.setSendTime(DateUtils.formatDate(new Date(), com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
dto.setDelayTime(DateUtils.formatDate(timeAfter15, com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
dto.setType(DelayTypeEnums.delivered.getType());
int second = DateUtils.betweenSecond(time, timeAfter15);
log.info("VvPackageServiceImpl delay send :{}",JSON.toJSONString(dto));
// 通过广播模式发布延时消息 延时30分钟 持久化消息 消费后销毁 这里无需指定路由会广播至每个绑定此交换机的队列
rabbitTemplate.convertAndSend(delayExchangeName, "", JSON.toJSONString(dto), message -> {
message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);
message.getMessageProperties().setDelay((second) * 1000); // 毫秒为单位指定此消息的延时时长 ,+ 1 尽量保证机器人跑完了再发送消息
return message;
});
// 设置已经发送消息了
vvPackageEntity.setIscheck("2");
vvPackageEntity.setGmtSendMqDelivered(new Date());
List<VvTradeOrderLineEntity> tradeOrderLineEntities = tradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(trackNumber);
for (VvTradeOrderLineEntity tradeOrderLineEntity : tradeOrderLineEntities) {
tradeOrderLineEntity.setGmtSignReceipt(time);
tradeOrderLineEntity.setState(kuaiDi100DTO.getState());
// 如果是正向订单
if(ShippingTypeEnums.order.getType().equals(vvPackageEntity.getShippingType())){
PackageDelivedDelayDTO dto = new PackageDelivedDelayDTO();
dto.setPackageId(vvPackageEntity.getId() );
dto.setRole(role);
dto.setSendTime(DateUtils.formatDate(new Date(), com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
dto.setDelayTime(DateUtils.formatDate(timeAfter15, com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
dto.setType(DelayTypeEnums.delivered.getType());
int second = DateUtils.betweenSecond(time, timeAfter15);
log.info("VvPackageServiceImpl delay send :{}",JSON.toJSONString(dto));
tradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity);
// 通过广播模式发布延时消息 延时30分钟 持久化消息 消费后销毁 这里无需指定路由会广播至每个绑定此交换机的队列
rabbitTemplate.convertAndSend(delayExchangeName, "", JSON.toJSONString(dto), message -> {
message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);
message.getMessageProperties().setDelay((second) * 1000); // 毫秒为单位指定此消息的延时时长 ,+ 1 尽量保证机器人跑完了再发送消息
return message;
});
// 设置已经发送消息了
vvPackageEntity.setIscheck("2");
vvPackageEntity.setGmtSendMqDelivered(new Date());
List<VvTradeOrderLineEntity> tradeOrderLineEntities = tradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(trackNumber);
for (VvTradeOrderLineEntity tradeOrderLineEntity : tradeOrderLineEntities) {
tradeOrderLineEntity.setGmtSignReceipt(time);
tradeOrderLineEntity.setState(kuaiDi100DTO.getState());
tradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity);
}
}else{
VvReverseOrderEntity vvReverseOrderEntity = vvReverseOrderDao.selectVvReverseOrderByTrackNumber(trackNumber);
vvReverseOrderEntity.setStatus(ReverseStatusEnums.shipped.getStatus());
}
}
}
}

View File

@ -30,9 +30,24 @@ public class VvApproveRequest extends AdminBaseDTO {
private String status ;
/***
* 关闭订单原因
*/
private String closeReason;
/***
* 拒绝退款原因
*/
private String rejectRefundReason;
/***
* 拒绝签收原因
*/
private String rejectShippedReason;
/***
* 质检完成评论
*/
private String qaCheckFinishedComment;
}

View File

@ -1,10 +1,11 @@
package com.heyu.api.alibaba.request.mm.reverse;
import com.heyu.api.alibaba.request.mm.AdminBaseDTO;
import lombok.Data;
@Data
public class VvReverseListRequest {
public class VvReverseListRequest extends AdminBaseDTO {
private Integer pageNum = 1 ;
@ -19,7 +20,7 @@ public class VvReverseListRequest {
//订单号
private Long tradeOrderId;
//状态 wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
//状态 buyer_apply_reverse_wait_seller_agree 等待卖家同意 , wait_buyer_post 等待买家寄东西, shipping 运送中, delivered 妥投, reject_delivered 拒绝妥投, agree_refunded 同意退款 ,refunded 退款完成 close 退款关闭
private String status;

View File

@ -1,5 +1,6 @@
package com.heyu.api.alibaba.request.mm.reverse;
import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderProveEntity;
@ -25,6 +26,8 @@ public class VvReverseOrderDTO extends VvReverseOrderEntity {
private VvPackageEntity vvPackageEntity;;
}

View File

@ -1,7 +1,7 @@
package com.heyu.api.service.impl;
import com.heyu.api.alibaba.request.mm.enums.ReverseUploadSceneEnums;
import com.heyu.api.data.enums.ReverseUploadSceneEnums;
import com.heyu.api.alibaba.request.mm.order.ResourceDTO;
import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseRequest;
import com.heyu.api.data.dao.vv.*;

View File

@ -97,8 +97,6 @@ public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertServic
vvOrderListResp.setPackageList(packageList);
vvOrderListResps.add(vvOrderListResp);
}
return vvOrderListResps;
}
}

View File

@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.VvDrawCashRecordAgreeRequest;
import com.heyu.api.alibaba.request.mm.VvDrawCashRecordRejectRequest;
import com.heyu.api.alibaba.request.mm.VvDrawCashRecordRequest;
import com.heyu.api.alibaba.request.mm.enums.ApprovalEnums;
import com.heyu.api.data.enums.ApprovalEnums;
import com.heyu.api.data.dao.vv.VvBuyerDao;
import com.heyu.api.data.dao.vv.VvDrawCashRecordDao;
import com.heyu.api.data.dao.vv.VvPromoterAwardLineDao;

View File

@ -4,10 +4,10 @@ package com.heyu.api.controller.mm;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.VvUnPackDTO;
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
import com.heyu.api.alibaba.request.mm.enums.RefundTypeEnums;
import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums;
import com.heyu.api.alibaba.request.mm.enums.ShippingTypeEnums;
import com.heyu.api.data.enums.OrderStatusEnums;
import com.heyu.api.data.enums.RefundTypeEnums;
import com.heyu.api.data.enums.ReverseStatusEnums;
import com.heyu.api.data.enums.ShippingTypeEnums;
import com.heyu.api.alibaba.request.mm.order.*;
import com.heyu.api.alibaba.request.mm.order.resp.VVOrderDetailResp;
import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp;

View File

@ -3,32 +3,31 @@ package com.heyu.api.controller.mm;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums;
import com.heyu.api.data.enums.ReverseStatusEnums;
import com.heyu.api.alibaba.request.mm.reverse.VvApproveRequest;
import com.heyu.api.alibaba.request.mm.reverse.VvReverseListRequest;
import com.heyu.api.alibaba.request.mm.reverse.VvReverseOrderDTO;
import com.heyu.api.data.dao.vv.*;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderProveEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import com.heyu.api.data.entity.vv.*;
import com.heyu.api.data.enums.RoleEnums;
import com.heyu.api.data.service.vv.VvPackageService;
import com.heyu.api.data.utils.R;
import com.heyu.api.data.utils.SanUtils;
import com.heyu.api.data.utils.StringUtils;
import com.heyu.api.jsapi.JsapiPrepay;
import com.heyu.api.jsapi.dto.refund.Refund;
import com.heyu.api.service.ReverseOrderService;
import com.heyu.api.utils.ISelect;
import com.heyu.api.utils.PPageUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
@Slf4j
@RestController
@ -58,9 +57,14 @@ public class AdminReverseController {
@Autowired
private JsapiPrepay jsapiPrepay;
@Autowired
private VvPackageDao vvPackageDao;
@Autowired
private VvPackageService vvPackageService ;
/***
* 逆向列表
* 逆向列表 https://api.1024api.com/api-interface/mm/reverse/list
* @param vvReverseListRequest
* @return
*/
@ -81,80 +85,104 @@ public class AdminReverseController {
);
}
});
List<VvReverseOrderEntity> vvReverseOrderEntities = pageUtils.getRows();
List<Long> reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId);
List<VvReverseOrderLineEntity> reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderIds(reverseOrderIds);
Map<Long, List<VvReverseOrderLineEntity>> vvReverseOrderLineEntityMap = SanUtils.list2GroupBy(reverseOrderLineEntities, VvReverseOrderLineEntity::getReverseOrderId);
List<VvReverseOrderProveEntity> vvReverseOrderProveEntities = vvReverseOrderProveDao.selectVvReverseOrderProveByReverseOrderId(reverseOrderIds);
Map<Long, List<VvReverseOrderProveEntity>> vvProveMap = SanUtils.list2GroupBy(vvReverseOrderProveEntities, VvReverseOrderProveEntity::getReverseOrderId);
List<String> trackNumbers = new ArrayList<>();
for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) {
if(StringUtils.isNotEmpty(vvReverseOrderEntity.getTrackNumber())){
trackNumbers.add(vvReverseOrderEntity.getTrackNumber());
vvPackageService.selectVvKuaidiAndUpdateData(vvReverseOrderEntity.getTrackNumber(), RoleEnums.admin.getRole());
}
}
Map<String, VvPackageEntity> vvPackageEntityMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(trackNumbers)) {
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
for (VvPackageEntity packageEntity : packageEntities) {
vvPackageEntityMap.put(packageEntity.getTrackNumber(), packageEntity);
}
}
List<VvReverseOrderDTO> vvReverseOrderDTOS = new ArrayList<>();
for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) {
VvReverseOrderDTO vvReverseOrderDTO = new VvReverseOrderDTO();
BeanUtils.copyProperties(vvReverseOrderEntity, vvReverseOrderDTO);
vvReverseOrderDTO.setVvReverseOrderLineEntities(vvReverseOrderLineEntityMap.get(vvReverseOrderEntity.getId()));
vvReverseOrderDTO.setVvReverseOrderProveEntities(vvProveMap.get(vvReverseOrderEntity.getId()));
vvReverseOrderDTO.setVvPackageEntity(vvPackageEntityMap.get(vvReverseOrderEntity.getTrackNumber()));
vvReverseOrderDTOS.add(vvReverseOrderDTO);
}
pageUtils.setRows(vvReverseOrderDTOS);
return R.ok().put("page", pageUtils);
}
/***
* seller_agree_return_wait_buyer_post 卖家同意退货买家邮寄
*
*
* delivered 妥投成功
*
*
* agree_refunded 同意 退款
*
* reject_delivered 拒绝妥投
*
*
* close 关闭逆向
* 卖家同意退货买家邮寄:seller_agree_return_wait_buyer_post
* 拒绝签收:reject_shipped,
* 质检完成:qa_check_finished,
* 同意退款:agree_refund,
* 拒绝退款:reject_refund
* 退款关闭:close
*/
@RequestMapping("/approve")
public R approve(@RequestBody VvApproveRequest vvApproveRequest) {
VvReverseOrderEntity vvReverseOrderEntity = vvReverseOrderDao.selectVvReverseOrderById(vvApproveRequest.getReverseOrderId());
vvReverseOrderEntity.setStatus(vvApproveRequest.getStatus());
vvReverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity);
if (ReverseStatusEnums.seller_agree_return_wait_buyer_post.getStatus().equals(vvApproveRequest.getStatus())) {
if (!ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus().equals(vvReverseOrderEntity.getStatus())) {
return R.error("逆向订单状态不是 seller_agree_return_wait_buyer_post");
}
vvReverseOrderEntity.setGmtSellerAgreeReturn(new Date());
vvReverseOrderEntity.setSellerAgreeReturnUser(vvApproveRequest.getUserName());
} else if (ReverseStatusEnums.delivered.getStatus().equals(vvApproveRequest.getStatus())) {
} else if (ReverseStatusEnums.shipped.getStatus().equals(vvApproveRequest.getStatus())) {
if (!ReverseStatusEnums.shipping.getStatus().equals(vvReverseOrderEntity.getStatus())) {
return R.error("逆向订单状态不是 shipping");
}
vvReverseOrderEntity.setGmtDelivered(new Date());
vvReverseOrderEntity.setDeliveredUser(vvApproveRequest.getUserName());
} else if (!ReverseStatusEnums.reject_delivered.getStatus().equals(vvApproveRequest.getStatus())) {
if (ReverseStatusEnums.shipping.getStatus().equals(vvReverseOrderEntity.getStatus())) {
vvReverseOrderEntity.setGmtShipped(new Date());
vvReverseOrderEntity.setShippedUser(vvApproveRequest.getUserName());
} else if (ReverseStatusEnums.reject_shipped.getStatus().equals(vvApproveRequest.getStatus())) {
if (!ReverseStatusEnums.shipping.getStatus().equals(vvReverseOrderEntity.getStatus())
&& !ReverseStatusEnums.shipped.getStatus().equals(vvReverseOrderEntity.getStatus())) {
return R.error("逆向订单状态不是 shipping");
}
vvReverseOrderEntity.setGmtRejectDelivered(new Date());
vvReverseOrderEntity.setDeliveredUser(vvApproveRequest.getUserName());
} else if (!ReverseStatusEnums.agree_refunded.getStatus().equals(vvApproveRequest.getStatus())) {
if (ReverseStatusEnums.delivered.getStatus().equals(vvReverseOrderEntity.getStatus())) {
return R.error("逆向订单状态不是 delivered");
vvReverseOrderEntity.setGmtRejectShipped(new Date());
vvReverseOrderEntity.setRejectShippedUser(vvApproveRequest.getUserName());
vvReverseOrderEntity.setRejectShippedReason(vvApproveRequest.getRejectRefundReason());
} else if (ReverseStatusEnums.qa_check_finished.getStatus().equals(vvApproveRequest.getStatus())) {
if (!ReverseStatusEnums.shipped.getStatus().equals(vvReverseOrderEntity.getStatus())) {
return R.error("逆向订单状态不是 shipped");
}
vvReverseOrderEntity.setGmtQaCheckFinished(new Date());
vvReverseOrderEntity.setQaCheckFinishedUser(vvApproveRequest.getUserName());
vvReverseOrderEntity.setQaCheckFinishedComment(vvApproveRequest.getQaCheckFinishedComment());
} else if (ReverseStatusEnums.agree_refund.getStatus().equals(vvApproveRequest.getStatus())) {
if (!ReverseStatusEnums.qa_check_finished.getStatus().equals(vvReverseOrderEntity.getStatus())
&& !ReverseStatusEnums.cancel.getDesc().equals(vvApproveRequest.getStatus())) {
return R.error("逆向订单状态不是 qa_check_finished 或 cancel ");
}
vvReverseOrderEntity.setGmtAgreeRefund(new Date());
vvReverseOrderEntity.setDeliveredUser(vvApproveRequest.getUserName());
} else if (ReverseStatusEnums.close.getStatus().equals(vvApproveRequest.getStatus())) {
vvReverseOrderEntity.setAgreeRefundUser(vvApproveRequest.getUserName());
}else if (ReverseStatusEnums.reject_refund.getStatus().equals(vvApproveRequest.getStatus())) {
if (!ReverseStatusEnums.qa_check_finished.getStatus().equals(vvReverseOrderEntity.getStatus())) {
return R.error("逆向订单状态不是 buyer_apply_reverse_wait_seller_agree");
}
vvReverseOrderEntity.setGmtRejectRefund(new Date());
vvReverseOrderEntity.setRejectRefundUser(vvApproveRequest.getUserName());
vvReverseOrderEntity.setRejectRefundReason(vvApproveRequest.getRejectRefundReason());
}else if (ReverseStatusEnums.close.getStatus().equals(vvApproveRequest.getStatus())) {
if (!ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus().equals(vvReverseOrderEntity.getStatus())) {
return R.error("逆向订单状态不是 buyer_apply_reverse_wait_seller_agree");
}
vvReverseOrderEntity.setGmtClose(new Date());
vvReverseOrderEntity.setDeliveredUser(vvApproveRequest.getUserName());
vvReverseOrderEntity.setCloseUser(vvApproveRequest.getUserName());
vvReverseOrderEntity.setCloseReason(vvApproveRequest.getCloseReason());
}
vvReverseOrderEntity.setStatus(vvApproveRequest.getStatus());
vvReverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity);
List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvApproveRequest.getReverseOrderId());
List<Long> tradeOrderLineIds = SanUtils.list2list(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds);
@ -162,8 +190,7 @@ public class AdminReverseController {
vvTradeOrderLineEntity.setReverseStatus(vvReverseOrderEntity.getStatus());
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
}
if(ReverseStatusEnums.agree_refunded.getStatus().equals(vvApproveRequest.getStatus())){
if(ReverseStatusEnums.agree_refund.getStatus().equals(vvApproveRequest.getStatus())){
Refund refund = jsapiPrepay.refund(vvReverseOrderEntity.getTradeOrderId(), vvReverseOrderEntity.getId());
log.info("AdminReverseController reverseOrderEntity id:{} refund:{}",vvReverseOrderEntity.getId(), JSON.toJSONString(refund));
vvReverseOrderEntity.setWeixinFundsAccount(JSON.toJSONString(refund.getFundsAccount()));

View File

@ -2,7 +2,7 @@ package com.heyu.api.controller.vv;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.enums.BuyerAddressEnums;
import com.heyu.api.data.enums.BuyerAddressEnums;
import com.heyu.api.alibaba.request.vv.AppBuyerAddressRequest;
import com.heyu.api.common.annotation.Describe;
import com.heyu.api.data.dao.vv.VvBuyerAddressDao;

View File

@ -3,7 +3,7 @@ package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.enums.CommentStatusEnums;
import com.heyu.api.data.enums.CommentStatusEnums;
import com.heyu.api.alibaba.request.mm.order.resp.PropertyNameValue;
import com.heyu.api.alibaba.request.vv.*;
import com.heyu.api.common.annotation.Describe;

View File

@ -3,7 +3,7 @@ package com.heyu.api.controller.vv;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.VvProductDetailRequest;
import com.heyu.api.alibaba.request.mm.enums.ProductStatusEnums;
import com.heyu.api.data.enums.ProductStatusEnums;
import com.heyu.api.alibaba.request.vv.AppIndexPageRequest;
import com.heyu.api.common.annotation.Describe;
import com.heyu.api.data.dao.vv.*;

View File

@ -3,7 +3,7 @@ package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
import com.heyu.api.data.enums.OrderStatusEnums;
import com.heyu.api.alibaba.request.mm.order.AppCloseDTO;
import com.heyu.api.alibaba.request.mm.order.AppDeliveredDTO;
import com.heyu.api.alibaba.request.mm.order.VvTradeOrderLineTrackNumberDTO;
@ -121,7 +121,6 @@ public class AppOrderController {
);
}
});
// 获取子单
List<VvTradeOrderLineEntity> vvTradeOrderLineEntitiesGroupByTradeOrderId = pageUtils.getRows();
// 获取订单

View File

@ -2,9 +2,9 @@ package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSON;
import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums;
import com.heyu.api.alibaba.request.mm.enums.ReverseUploadSceneEnums;
import com.heyu.api.alibaba.request.mm.enums.ShippingTypeEnums;
import com.heyu.api.data.enums.ReverseStatusEnums;
import com.heyu.api.data.enums.ReverseUploadSceneEnums;
import com.heyu.api.data.enums.ShippingTypeEnums;
import com.heyu.api.alibaba.request.mm.order.ResourceDTO;
import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseCloseRequest;
import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseProveRequest;

View File

@ -4,7 +4,7 @@ package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
import com.heyu.api.data.enums.OrderStatusEnums;
import com.heyu.api.common.annotation.Describe;
import com.heyu.api.data.dao.vv.VvTradeOrderDao;
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;

View File

@ -2,7 +2,7 @@ package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSONObject;
import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums;
import com.heyu.api.data.enums.ReverseStatusEnums;
import com.heyu.api.data.dao.vv.VvReverseOrderDao;
import com.heyu.api.data.dao.vv.VvReverseOrderLineDao;
import com.heyu.api.data.dao.vv.VvTradeOrderDao;

View File

@ -2,7 +2,7 @@ package com.heyu.api.listener.delay.handler;
import com.alibaba.fastjson.JSONObject;
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
import com.heyu.api.data.enums.OrderStatusEnums;
import com.heyu.api.data.dao.vv.VvPackageDao;
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
import com.heyu.api.data.dto.PackageDelivedDelayDTO;

View File

@ -1,7 +1,7 @@
package com.heyu.api.listener.delay.handler;
import com.alibaba.fastjson.JSONObject;
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
import com.heyu.api.data.enums.OrderStatusEnums;
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
import com.heyu.api.data.dto.WeiXinPayDelayDTO;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;

View File

@ -1,7 +1,7 @@
package com.api.test;
import com.alibaba.fastjson.JSON;
import com.heyu.api.alibaba.request.mm.enums.BuyerAddressEnums;
import com.heyu.api.data.enums.BuyerAddressEnums;
import com.heyu.api.data.entity.vv.VvBuyerAddressEntity;
import org.junit.Test;