Browse Source

Merge branch 'release_real_200809' of https://git.malls.iformall.com/server/formallProject into release_real_200809

release_toaliyun_real
xhxu 5 years ago
parent
commit
d40c5576b8
8 changed files with 72 additions and 12 deletions
  1. +4
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java
  2. +37
    -5
      mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java
  3. +3
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java
  5. +8
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java
  6. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java
  7. +1
    -1
      mallinkService/src/main/resources/mapper/WxOrderGroupMapper.xml
  8. +16
    -0
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 4
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java View File

@@ -193,7 +193,10 @@ public class WxPayOrderController extends BaseController {
//拼团的订单,如果查询到是拼团待付款的,则重新查询是否已经真的支付,其他的直接返回订单信息
if (wxPayOrderService.isOrderGroupCoupon(payOrder, wxCoupon)) {
if (order.getOrderStatus()!=EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()) {
if(order.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode())) {
return new ResultData(Result.SUCCESS, "拼团失败:人员已满,将稍后退款。");
}
if (!order.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode())) {
return new ResultData(Result.SUCCESS, "支付状态更新成功", order);
}
}else {


+ 37
- 5
mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java View File

@@ -140,14 +140,26 @@ public class OrderExpiringSchedule {

// 拼团取消
WxOrder order = new WxOrder();
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode());
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
// order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode());
// wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
// try {
// proxy.orderGroupExpired((WxOrder) o,true,true,payWay);
// } catch (Exception e) {
// logger.error("拼团取消失败" + e.getMessage());
// }
// });
Date groupExpireDate = new Date(curDate.getTime() - NORMAL_TIME_OUT );
dateMap.put("type", EnumOrderType.COUPON.getCode());
dateMap.put("endDate", groupExpireDate);
List<WxOrder> orderGroups = wxOrderMapper.findListOfUnpaidGroupOrderByDate(dateMap);
orderGroups.stream().forEach( o -> {
try {
proxy.orderGroupExpired((WxOrder) o,true,true,payWay);
proxy.orderGroupExpired(o,true,true,payWay);
} catch (Exception e) {
logger.error("拼团取消失败" + e.getMessage());
logger.error("砍价券支付过期失败" + e.getMessage());
}
});

//更新拼团过期状态
wxOrderMapper.updateOrderStatusForGroup();
@@ -192,8 +204,28 @@ public class OrderExpiringSchedule {
}
});
//此处是拼团完成后,会将其他失效的订单置成该状态。需要查询是否已经付款,如果已经付款,则退款,退款回回滚库存。如果没付款,则主动回滚库存
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode());
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try {
proxy.expiredCheckAndReturnMoney((WxOrder) o,payWay);
} catch (Exception e) {
logger.error("参团失败退款失败" + e.getMessage());
}
});

}
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void expiredCheckAndReturnMoney(WxOrder wxOrder,EnumPayWay payWay) throws MallinkException, Exception {
if (wxPaySuccess(wxOrder, false, payWay)) {
orderGroupExpired(wxOrder,false,false,payWay);
returnMoney(wxOrder,payWay);
}else {
orderGroupExpired(wxOrder,false,true,payWay);
}
}
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void expiredAndReturnMoney(WxOrder wxOrder,boolean checkRealPay,EnumPayWay payWay) throws MallinkException, Exception {
orderGroupExpired(wxOrder,checkRealPay,false,payWay);
@@ -341,7 +373,7 @@ public class OrderExpiringSchedule {
payOrderQ.updateTenantInfo(order);
payOrderQ.setCUserId(order.getCUserId());
payOrderQ.setOrderId(order.getId());
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
//payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());

WxPayOrder payOrder = null;
List<WxPayOrder> list = wxPayOrderMapper.findList(payOrderQ);


+ 3
- 1
mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java View File

@@ -24,7 +24,9 @@ public enum EnumOrderStatus {
ORDER_STATUS_COOPERATING_FAILD(14, "参团失败"),
ORDER_STATUS_COOPERATING_UNPAID(15, "拼团待付款"),//占库存
ORDER_STATUS_COOPERATING_BREAK(16, "拼团取消"),
ORDER_STATUS_COOPERATING_SCHEDU_REFUND(99,"订单定时状态-需要返款和回滚库存,无需再次查询真实支付状态")
ORDER_STATUS_COOPERATING_SCHEDU_REFUND(99,"订单定时状态-需要返款和回滚库存,无需再次查询真实支付状态"),
ORDER_STATUS_COOPERATING_COMPLETE_REFUND(98,"拼团完成会更新未支付的为此状态,未有效的订单统一置成该状态")
;
public static EnumOrderStatus getEnum(Integer code) {
for (EnumOrderStatus value : values()) {


+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java View File

@@ -21,6 +21,8 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> {
List<WxOrder> findListOfUnpaidPressOrderByDate(Map dateMap);
List<WxOrder> findListOfCompleteUnPaidPressOrderByDate(Map dateMap);

List<WxOrder> findListOfUnpaidGroupOrderByDate(Map dateMap);
List<WxOrderCouponVo> findListOfCUser(WxOrder wxOrder);
List<WxOrderCouponVo> selectDetailOfCUser(WxOrder wxOrder);



+ 8
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java View File

@@ -84,6 +84,9 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService {
//此处拼团数量应从订单总数查询,支付成功的就算一个,没支付成功的不算. 提高拼团的成功率
int ordercount = wxOrderService.countGroupOrder(order.getOrderGroupId(),true);
Integer remainPeople = wxCoupon.getPressLimitNum()-ordercount-1;
if (remainPeople < 0) {
throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团失败,参团人数已满,将稍后退款.");
}
//Integer remainPeople = wxOrderGroup.getRemainPeople()-1;
wxOrderGroup.setStatus(remainPeople <= 0 ? EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode() : wxOrderGroup.getStatus());
wxOrderGroup.setUpdateDate(new Date());
@@ -132,9 +135,11 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService {
//此处不要抛出异常,会导致事务回滚,状态写不上
return;
}else {
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode());
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode());
wxOrderMapper.updateById(order);
throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团人数已满,将稍后退款。");
//此处不要抛出异常,会导致事务回滚,状态写不上
//throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团人数已满,将稍后退款。");
return;
}
}
@@ -244,7 +249,7 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService {
//temp.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_BREAK.getCode());
//拼团取消。定时会处理退款
temp.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_CANCEL.getCode());
temp.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode());
wxOrderMapper.updateById(temp);
}
}


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java View File

@@ -599,7 +599,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
payOrderQ.updateTenantInfo(wxOrder);
payOrderQ.setCUserId(wxOrder.getCUserId());
payOrderQ.setOrderId(wxOrder.getId());
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
//payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());

WxPayOrder payOrder = null;
List<WxPayOrder> list = wxPayOrderMapper.findList(payOrderQ);


+ 1
- 1
mallinkService/src/main/resources/mapper/WxOrderGroupMapper.xml View File

@@ -95,7 +95,7 @@
<if test=" null != orderGroupId ">
and o.order_group_id=#{orderGroupId}
</if>
and o.order_status in(10,11,12,13,14,15,16)
and o.order_status in(10,11,12,13,14,15,16,98,99)
order by o.id desc,o.order_status
</select>


+ 16
- 0
mallinkService/src/main/resources/mapper/WxOrderMapper.xml View File

@@ -218,6 +218,22 @@
AND unix_timestamp(`update_date`) &lt; unix_timestamp(#{endDate,jdbcType=TIMESTAMP})
</if>
</select>
<select id="findListOfUnpaidGroupOrderByDate" parameterType="map" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from wx_order
where order_status = 15 and press_end_date is null
<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(`create_date`) &lt; unix_timestamp(#{endDate,jdbcType=TIMESTAMP})
</if>
</select>


<sql id="allCUserOrderDetailColumns">


Loading…
Cancel
Save