Просмотр исходного кода

[砍价][修改]:砍价支付超时时间1小时

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
1ad64c0b40
3 измененных файлов: 41 добавлений и 14 удалений
  1. +23
    -14
      mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java
  2. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java
  3. +16
    -0
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 23
- 14
mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java Просмотреть файл

@@ -2,10 +2,7 @@ package com.iformall.schedule;

import com.iformall.domain.po.WxAppinfo;
import com.iformall.domain.po.WxOrder;
import com.iformall.enums.EnumAppType;
import com.iformall.enums.EnumOrderStatus;
import com.iformall.enums.EnumOrderType;
import com.iformall.enums.EnumRefundStatus;
import com.iformall.enums.*;
import com.iformall.mapper.WxAppinfoMapper;
import com.iformall.mapper.WxOrderGroupMapper;
import com.iformall.mapper.WxOrderMapper;
@@ -29,7 +26,8 @@ import java.util.Map;
public class OrderExpiringSchedule {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

private final int TIME_OUT_VALUE = 15 * 60 * 1000; //15分钟
private final int NORMAL_TIME_OUT = 15 * 60 * 1000; //普通券 必须15分钟内支付
private final int PRESS_TIME_OUT = 15 * 60 * 1000; //砍价券 必须60分钟内支付

@Autowired
WxOrderMapper wxOrderMapper;
@@ -55,7 +53,7 @@ public class OrderExpiringSchedule {

Map dateMap = new HashMap();
Date curDate = new Date();
Date expireDate = new Date(curDate.getTime() - TIME_OUT_VALUE );
Date expireDate = new Date(curDate.getTime() - NORMAL_TIME_OUT );

// 券相关订单, 15分钟未支付, 订单过期
dateMap.put("type", EnumOrderType.COUPON.getCode());
@@ -65,19 +63,32 @@ public class OrderExpiringSchedule {
try {
orderExpired(o);
} catch (Exception e) {
logger.error(e.getMessage());
logger.error("券过期失败" + e.getMessage());
}
});

// 砍价相关订单, 已超过砍价结束时间, 订单过期
// 砍价相关订单,
// 1. 如果已经砍价完成,必须60分钟内支付, 未支付,订单过期
Date pressExpireDate = new Date(curDate.getTime() - PRESS_TIME_OUT );
dateMap.put("type", EnumOrderType.COUPON.getCode());
dateMap.put("endDate", pressExpireDate);
List<WxOrder> orderPresss = wxOrderMapper.findListOfUnCompletePressOrderByDate(dateMap);
orderPresss.stream().forEach( o -> {
try {
orderPressExpired(o);
} catch (Exception e) {
logger.error("砍价券支付过期失败" + e.getMessage());
}
});
// 2. 当前已超过砍价结束时间, 订单过期
dateMap.put("type", EnumOrderType.COUPON.getCode());
dateMap.put("endDate", curDate);
List<WxOrder> orderPresss = wxOrderMapper.findListOfUnpaidPressOrderByDate(dateMap);
orderPresss = wxOrderMapper.findListOfUnpaidPressOrderByDate(dateMap);
orderPresss.stream().forEach( o -> {
try {
orderPressExpired(o);
} catch (Exception e) {
logger.error(e.getMessage());
logger.error("砍价券过期失败" +e.getMessage());
}
});

@@ -131,9 +142,7 @@ public class OrderExpiringSchedule {
// 微信 关单
wxOrderService.orderClose(updateOrder);

logger.info("\nFound " + order.getId() + "\n"
+ " create at " + order.getCreateDate() +"\n"
+ " expired at " + new Date());
logger.info("券订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + new Date());
}

@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
@@ -148,7 +157,7 @@ public class OrderExpiringSchedule {
// 库存退回
wxOrderService.stockBack(order);

logger.info("\n砍价订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + curDate);
logger.info("砍价订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + curDate);
}

@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})


+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java Просмотреть файл

@@ -15,7 +15,9 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> {
Integer countList(WxOrder wxOrder);

List<WxOrder> findListOfUnpaidOrderByDate(Map dateMap);

List<WxOrder> findListOfUnpaidPressOrderByDate(Map dateMap);
List<WxOrder> findListOfUnCompletePressOrderByDate(Map dateMap);

List<WxOrderCouponVo> findListOfCUser(WxOrder wxOrder);
WxOrderCouponVo selectDetailOfCUser(WxOrder wxOrder);


+ 16
- 0
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Просмотреть файл

@@ -164,6 +164,22 @@
</if>
</select>

<select id="findListOfUnCompletePressOrderByDate" parameterType="map" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from wx_order
where press_end_date is not null and order_status = 6
<if test="type != null">
AND type = #{type,jdbcType=TINYINT}
</if>
<if test="startDate != null">
AND unix_timestamp(`create_date`) &gt; unix_timestamp(#{startDate,jdbcType=TIMESTAMP})
</if>
<if test="endDate != null">
AND unix_timestamp(`press_end_date`) &lt; unix_timestamp(#{endDate,jdbcType=TIMESTAMP})
</if>
</select>


<sql id="allCUserOrderListColumns">
o.id,o.order_number,o.tenant_id,o.c_user_id,o.coupon_channel_id,o.product_id,o.payment_type,o.payment,o.payment_time,o.order_status,o.create_date,o.update_date,


Загрузка…
Отмена
Сохранить