Browse Source

//取消支付

private_deployment
xhxu 1 year ago
parent
commit
242150766c
6 changed files with 93 additions and 2 deletions
  1. +47
    -0
      suimangSchedule/src/main/java/com/iformall/schedule/ProductOrderSchedule.java
  2. +3
    -0
      suimangService/src/main/java/com/iformall/domain/po/ProductOrder.java
  3. +1
    -0
      suimangService/src/main/java/com/iformall/service/ProductOrderService.java
  4. +35
    -0
      suimangService/src/main/java/com/iformall/service/impl/ProductOrderServiceImpl.java
  5. +1
    -1
      suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java
  6. +6
    -1
      suimangService/src/main/resources/mapper/ProductOrderMapper.xml

+ 47
- 0
suimangSchedule/src/main/java/com/iformall/schedule/ProductOrderSchedule.java View File

@@ -0,0 +1,47 @@
package com.iformall.schedule;

import com.iformall.domain.po.ProductOrder;
import com.iformall.domain.po.ProductOrderSharing;
import com.iformall.enums.EnumProductOrderSettleStatus;
import com.iformall.enums.EnumProductOrderStatus;
import com.iformall.enums.EnumProfitSharing;
import com.iformall.service.ProductOrderService;
import com.iformall.service.ProductOrderSharingService;
import com.iformall.utils.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;

@Component
public class ProductOrderSchedule {

private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private ProductOrderService productOrderService;

@Autowired
private ProductOrderSharingService productOrderSharingService;

@Scheduled(cron = "0 1/10 * * * *?")
public void productOrderSharingSchedule() {
ProductOrder productOrderQ = new ProductOrder();
productOrderQ.setOrderStatus(EnumProductOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode());
productOrderQ.setStartDate(DateUtils.getHourDateBefore(1,new Date()));
List<ProductOrder> orderList = productOrderService.findList(productOrderQ);
for (ProductOrder order: orderList) {
try{
productOrderService.handldTimeOut(order.getId());
}catch(Exception e){
logger.error("分账失败:" + e.getMessage());
}

}
}

}

+ 3
- 0
suimangService/src/main/java/com/iformall/domain/po/ProductOrder.java View File

@@ -95,4 +95,7 @@ public class ProductOrder extends TenantEntity {
@TableField(exist = false) @TableField(exist = false)
private Date payEndDate; private Date payEndDate;


@TableField(exist = false)
private Integer isOrderStatus;

} }

+ 1
- 0
suimangService/src/main/java/com/iformall/service/ProductOrderService.java View File

@@ -34,4 +34,5 @@ public interface ProductOrderService {


void handldSharing(ProductOrder order); void handldSharing(ProductOrder order);


void handldTimeOut(Long id);
} }

+ 35
- 0
suimangService/src/main/java/com/iformall/service/impl/ProductOrderServiceImpl.java View File

@@ -20,6 +20,7 @@ import com.iformall.service.pay.service.pay.PayAdapterService;
import com.iformall.service.pay.service.pay.entity.PayAdapterResult; import com.iformall.service.pay.service.pay.entity.PayAdapterResult;
import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult;
import com.iformall.service.pay.service.share.PayShareAdapterService; import com.iformall.service.pay.service.share.PayShareAdapterService;
import com.iformall.utils.DateUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -153,6 +154,7 @@ public class ProductOrderServiceImpl implements ProductOrderService {
productOrder.setPaymentTime(result.getPayTime()); productOrder.setPaymentTime(result.getPayTime());
productOrder.setPayWay(result.getWay()); productOrder.setPayWay(result.getWay());
productOrder.setOrderStatus(productOrderStatus); productOrder.setOrderStatus(productOrderStatus);
productOrder.setIsOrderStatus(EnumProductOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode());
productOrder.setUpdateDate(new Date()); productOrder.setUpdateDate(new Date());
int num = productOrderMapper.orderPayUpdStatus(productOrder); int num = productOrderMapper.orderPayUpdStatus(productOrder);


@@ -234,4 +236,37 @@ public class ProductOrderServiceImpl implements ProductOrderService {


} }


@Override
public void handldTimeOut(Long id) {
ProductOrder productOrder = productOrderMapper.selectById(id);
if(productOrder == null){
return;
}
if(!EnumProductOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode().equals(productOrder.getOrderStatus())){
return;
}
Date hourDateBefore = DateUtils.getHourDateBefore(1, new Date());
if(productOrder.getCreateDate().after(hourDateBefore)){

}
PayAdapterService payAdapterService = payServiceFactory.getPayAdapterService(productOrder.getPayVendor());
EnumProductOrderPayVendor payVendoEnum = EnumProductOrderPayVendor.getEnum(productOrder.getPayVendor());

WxAppinfo appinfo = wxAppinfoService.getProjectCAppInfoFromRedis(productOrder.getProjectType(), payVendoEnum.getPlat());
WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appinfo.getPayId());
ResultData resultData = handleProductOrderByQuery(appinfo,payAccount,productOrder,payAdapterService);
if(ResultData.SUCCESS != resultData.code){
return;
}
if(!EnumProductOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode().equals(productOrder.getProfitSharing())){
return;
}

productOrder.setOrderStatus(EnumProductOrderStatus.ORDER_STATUS_OVERTIME_CANCEL.getCode());
productOrder.setIsOrderStatus(EnumProductOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode());
productOrder.setUpdateDate(new Date());
int num = productOrderMapper.orderPayUpdStatus(productOrder);

}

} }

+ 1
- 1
suimangService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java View File

@@ -234,7 +234,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen
preOrder.setTotalAmount(order.getOrderPrice()); preOrder.setTotalAmount(order.getOrderPrice());
preOrder.setSubject(appInfo.getName()+"-"+order.getProductTitle()); preOrder.setSubject(appInfo.getName()+"-"+order.getProductTitle());
preOrder.setBody(appInfo.getName()+"-"+order.getProductTitle()); preOrder.setBody(appInfo.getName()+"-"+order.getProductTitle());
preOrder.setValidTime(30*60);
preOrder.setValidTime(60*60);
// preOrder.setNotifyUrl();//回调地址 // preOrder.setNotifyUrl();//回调地址
// preOrder.setThirdpartyId();//第三方服务商ID // preOrder.setThirdpartyId();//第三方服务商ID
// preOrder.setStoreId(record.getStoreId()); // preOrder.setStoreId(record.getStoreId());


+ 6
- 1
suimangService/src/main/resources/mapper/ProductOrderMapper.xml View File

@@ -135,7 +135,12 @@
<if test=" null != payWay"> <if test=" null != payWay">
,`pay_way` = #{payWay} ,`pay_way` = #{payWay}
</if> </if>
where id = #{id} and `order_status` != #{orderStatus}
where id = #{id}
and `order_status` != #{orderStatus}
<if test=" null != isOrderStatus">
and `order_status` = #{isOrderStatus}
</if>

</update> </update>
</mapper> </mapper>

Loading…
Cancel
Save