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

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

release_toaliyun_real
xhxu 5 лет назад
Родитель
Сommit
d40c5576b8
8 измененных файлов: 72 добавлений и 12 удалений
  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 Просмотреть файл

@@ -193,7 +193,10 @@ public class WxPayOrderController extends BaseController {
//拼团的订单,如果查询到是拼团待付款的,则重新查询是否已经真的支付,其他的直接返回订单信息 //拼团的订单,如果查询到是拼团待付款的,则重新查询是否已经真的支付,其他的直接返回订单信息
if (wxPayOrderService.isOrderGroupCoupon(payOrder, wxCoupon)) { 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); return new ResultData(Result.SUCCESS, "支付状态更新成功", order);
} }
}else { }else {


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

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


// 拼团取消 // 拼团取消
WxOrder order = new WxOrder(); 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 { try {
proxy.orderGroupExpired((WxOrder) o,true,true,payWay);
proxy.orderGroupExpired(o,true,true,payWay);
} catch (Exception e) { } catch (Exception e) {
logger.error("拼团取消失败" + e.getMessage());
logger.error("砍价券支付过期失败" + e.getMessage());
} }
}); });


//更新拼团过期状态 //更新拼团过期状态
wxOrderMapper.updateOrderStatusForGroup(); 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}) @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void expiredAndReturnMoney(WxOrder wxOrder,boolean checkRealPay,EnumPayWay payWay) throws MallinkException, Exception { public void expiredAndReturnMoney(WxOrder wxOrder,boolean checkRealPay,EnumPayWay payWay) throws MallinkException, Exception {
orderGroupExpired(wxOrder,checkRealPay,false,payWay); orderGroupExpired(wxOrder,checkRealPay,false,payWay);
@@ -341,7 +373,7 @@ public class OrderExpiringSchedule {
payOrderQ.updateTenantInfo(order); payOrderQ.updateTenantInfo(order);
payOrderQ.setCUserId(order.getCUserId()); payOrderQ.setCUserId(order.getCUserId());
payOrderQ.setOrderId(order.getId()); payOrderQ.setOrderId(order.getId());
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
//payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());


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


+ 3
- 1
mallinkService/src/main/java/com/iformall/enums/EnumOrderStatus.java Просмотреть файл

@@ -24,7 +24,9 @@ public enum EnumOrderStatus {
ORDER_STATUS_COOPERATING_FAILD(14, "参团失败"), ORDER_STATUS_COOPERATING_FAILD(14, "参团失败"),
ORDER_STATUS_COOPERATING_UNPAID(15, "拼团待付款"),//占库存 ORDER_STATUS_COOPERATING_UNPAID(15, "拼团待付款"),//占库存
ORDER_STATUS_COOPERATING_BREAK(16, "拼团取消"), 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) { public static EnumOrderStatus getEnum(Integer code) {
for (EnumOrderStatus value : values()) { for (EnumOrderStatus value : values()) {


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

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


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




+ 8
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java Просмотреть файл

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


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java Просмотреть файл

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


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


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

@@ -95,7 +95,7 @@
<if test=" null != orderGroupId "> <if test=" null != orderGroupId ">
and o.order_group_id=#{orderGroupId} and o.order_group_id=#{orderGroupId}
</if> </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 order by o.id desc,o.order_status
</select> </select>


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

@@ -218,6 +218,22 @@
AND unix_timestamp(`update_date`) &lt; unix_timestamp(#{endDate,jdbcType=TIMESTAMP}) AND unix_timestamp(`update_date`) &lt; unix_timestamp(#{endDate,jdbcType=TIMESTAMP})
</if> </if>
</select> </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"> <sql id="allCUserOrderDetailColumns">


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