소스 검색

fix order

release_toaliyun_real
xiaohanzi 4 년 전
부모
커밋
44238bceb0
7개의 변경된 파일204개의 추가작업 그리고 164개의 파일을 삭제
  1. +16
    -14
      mallinkSchedule/src/main/java/com/iformall/schedule/CouponExpiringSchedule.java
  2. +20
    -16
      mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java
  3. +24
    -22
      mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java
  4. +87
    -65
      mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java
  5. +15
    -11
      mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java
  6. +33
    -29
      mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java
  7. +9
    -7
      mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java

+ 16
- 14
mallinkSchedule/src/main/java/com/iformall/schedule/CouponExpiringSchedule.java 파일 보기

@@ -124,20 +124,22 @@ public class CouponExpiringSchedule {
wxGame.setStatus(EnumGameStatus.STATUS_THROW_IN.getCode());

List<WxGame> list = wxGameMapper.findList(wxGame);
list.stream().forEach(g->{
WxCouponChannel couponChannel = new WxCouponChannel();
couponChannel.updateTenantInfo(g);
couponChannel.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_GAME.getCode());
couponChannel.setSubTargetId(g.getId());
couponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode());
int count = wxCouponChannelMapper.countCouponChannel(couponChannel);
if (count == 0) {
WxGame record = new WxGame();
record.setId(g.getId());
record.setStatus(EnumGameStatus.STATUS_TAKE_OFFF.getCode());
wxGameMapper.updateById(record);
}
});
if (null != list && list.size() > 0 ) {
list.stream().forEach(g->{
WxCouponChannel couponChannel = new WxCouponChannel();
couponChannel.updateTenantInfo(g);
couponChannel.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_GAME.getCode());
couponChannel.setSubTargetId(g.getId());
couponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode());
int count = wxCouponChannelMapper.countCouponChannel(couponChannel);
if (count == 0) {
WxGame record = new WxGame();
record.setId(g.getId());
record.setStatus(EnumGameStatus.STATUS_TAKE_OFFF.getCode());
wxGameMapper.updateById(record);
}
});
}
}



+ 20
- 16
mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java 파일 보기

@@ -66,15 +66,17 @@ public class CouponOrderExpiringSchedule {
List<WxMall> malls = getMalls();
for (WxMall mall: malls) {
List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredFreeCouponOrderByValidDate(mall.getTenantId());
list.stream().forEach(co -> {
// 券过期,更改状态及库存退回
try {
proxy.couponOrderExpire(co, true);
} catch (Exception e) {
logger.error(e.getMessage(),e);
}
});
if (null != list && list.size() > 0 ) {
list.stream().forEach(co -> {
// 券过期,更改状态及库存退回
try {
proxy.couponOrderExpire(co, true);
} catch (Exception e) {
logger.error(e.getMessage(),e);
}
});
}
}

}
@@ -86,13 +88,15 @@ public class CouponOrderExpiringSchedule {
List<WxMall> malls = getMalls();
for (WxMall mall: malls) {
List<WxCouponOrder> list = wxCouponOrderMapper.findExpiredCouponOrderByValidDate(mall.getTenantId());
list.stream().forEach(co -> {
try {
proxy.refund(co);
}catch(Exception e) {
logger.error(e.getMessage(),e);
}
});
if (null != list && list.size() > 0 ) {
list.stream().forEach(co -> {
try {
proxy.refund(co);
}catch(Exception e) {
logger.error(e.getMessage(),e);
}
});
}
}
}



+ 24
- 22
mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java 파일 보기

@@ -70,28 +70,30 @@ public class DaliyAmountSchedule {
wxDateAmountRecordService.saveAmount(dateAmountRecord);

list = wxCouponOrderMapper.findListOfVerifiedByDate(dateMap);
logger.info("\nfind " + list.size() + " coupon order from " + startDate + " to " + endDate);
total_price = list.stream().mapToInt(p -> p.getCouponPrice()).sum();
logger.info("\nFound " + list.size() + " coupon orders \n" +
"for merchantId:" + merchant.getId() + "\n" +
"from " + startDate + " to " + endDate + "\n" +
"TOTAL VERIFIED=" + total_price);

dateAmountRecord.setPayPrice(total_price);
dateAmountRecord.setType(EnumDateAmtType.VERIFY_RECORD.getCode());
wxDateAmountRecordService.saveAmount(dateAmountRecord);

Map microPayMap = wxOrderMapper.dayMicroPayAmountList(dateMap);
Long countMic = (Long) microPayMap.get("count");
BigDecimal totalPriceMic = (BigDecimal) microPayMap.get("total_price");
logger.info("\nFound " + countMic + " order " + "\n" +
"for merchantId:" + merchant.getId() + "\n" +
"from " + startDate + " to " + endDate + "\n" +
"TOTAL Payment=" + totalPriceMic);

dateAmountRecord.setPayPrice(totalPriceMic.intValue());
dateAmountRecord.setType(EnumDateAmtType.MICROPAY_RECORD.getCode());
wxDateAmountRecordService.saveAmount(dateAmountRecord);
if (null != list && list.size() > 0) {
logger.info("\nfind " + list.size() + " coupon order from " + startDate + " to " + endDate);
total_price = list.stream().mapToInt(p -> p.getCouponPrice()).sum();
logger.info("\nFound " + list.size() + " coupon orders \n" +
"for merchantId:" + merchant.getId() + "\n" +
"from " + startDate + " to " + endDate + "\n" +
"TOTAL VERIFIED=" + total_price);
dateAmountRecord.setPayPrice(total_price);
dateAmountRecord.setType(EnumDateAmtType.VERIFY_RECORD.getCode());
wxDateAmountRecordService.saveAmount(dateAmountRecord);
Map microPayMap = wxOrderMapper.dayMicroPayAmountList(dateMap);
Long countMic = (Long) microPayMap.get("count");
BigDecimal totalPriceMic = (BigDecimal) microPayMap.get("total_price");
logger.info("\nFound " + countMic + " order " + "\n" +
"for merchantId:" + merchant.getId() + "\n" +
"from " + startDate + " to " + endDate + "\n" +
"TOTAL Payment=" + totalPriceMic);
dateAmountRecord.setPayPrice(totalPriceMic.intValue());
dateAmountRecord.setType(EnumDateAmtType.MICROPAY_RECORD.getCode());
wxDateAmountRecordService.saveAmount(dateAmountRecord);
}

}



+ 87
- 65
mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java 파일 보기

@@ -123,13 +123,15 @@ public class OrderExpiringSchedule {
dateMap.put("endDate", expireDate);
dateMap.put("tenantId", tenantId);
List<WxOrder> orderCoupons = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap);
orderCoupons.stream().forEach( o -> {
try {
proxy.orderExpired(o,true,payWay);
} catch (Exception e) {
logger.error("券过期失败" + e.getMessage());
}
});
if (null != orderCoupons && orderCoupons.size() > 0) {
orderCoupons.stream().forEach( o -> {
try {
proxy.orderExpired(o,true,payWay);
} catch (Exception e) {
logger.error("券过期失败" + e.getMessage());
}
});
}

// 砍价相关订单,
// 1. 如果已经砍价完成,必须60分钟内支付, 未支付,订单过期
@@ -138,25 +140,29 @@ public class OrderExpiringSchedule {
dateMap.put("endDate", pressExpireDate);
dateMap.put("tenantId", tenantId);
List<WxOrder> orderPresss = wxOrderMapper.findListOfCompleteUnPaidPressOrderByDate(dateMap);
orderPresss.stream().forEach( o -> {
try {
proxy.orderPressExpired(o, true,true,payWay);
} catch (Exception e) {
logger.error("砍价券支付过期失败" + e.getMessage());
}
});
if (null != orderPresss && orderPresss.size() > 0) {
orderPresss.stream().forEach( o -> {
try {
proxy.orderPressExpired(o, true,true,payWay);
} catch (Exception e) {
logger.error("砍价券支付过期失败" + e.getMessage());
}
});
}
// 2. 当前已超过砍价结束时间, 订单过期
dateMap.put("type", EnumOrderType.COUPON.getCode());
dateMap.put("endDate", curDate);
dateMap.put("tenantId", tenantId);
orderPresss = wxOrderMapper.findListOfUnpaidPressOrderByDate(dateMap);
orderPresss.stream().forEach( o -> {
try {
proxy.orderPressExpired(o, false,true,payWay);
} catch (Exception e) {
logger.error("砍价券过期失败" +e.getMessage());
}
});
if (null != orderPresss && orderPresss.size() > 0) {
orderPresss.stream().forEach( o -> {
try {
proxy.orderPressExpired(o, false,true,payWay);
} catch (Exception e) {
logger.error("砍价券过期失败" +e.getMessage());
}
});
}


// 拼团取消
@@ -174,13 +180,15 @@ public class OrderExpiringSchedule {
dateMap.put("endDate", groupExpireDate);
dateMap.put("tenantId", tenantId);
List<WxOrder> orderGroups = wxOrderMapper.findListOfUnpaidGroupOrderByDate(dateMap);
orderGroups.stream().forEach( o -> {
try {
proxy.orderGroupExpired(o,true,true,payWay);
} catch (Exception e) {
logger.error("砍价券支付过期失败" + e.getMessage());
}
});
if (null != orderGroups && orderGroups.size() > 0) {
orderGroups.stream().forEach( o -> {
try {
proxy.orderGroupExpired(o,true,true,payWay);
} catch (Exception e) {
logger.error("砍价券支付过期失败" + e.getMessage());
}
});
}

//更新拼团过期状态
@@ -188,57 +196,71 @@ public class OrderExpiringSchedule {
//拼团过期
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_OVERTIME.getCode());
order.setTenantId(tenantId);
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try {
proxy.expiredAndReturnMoney((WxOrder) o,false,payWay);
} catch (Exception e) {
logger.error("拼团过期退款失败" + e.getMessage());
}
});
List<WxOrder> _orderList = wxOrderMapper.selectList(new QueryWrapper(order));
if (null != _orderList && _orderList.size() > 0) {
_orderList.stream().forEach(o -> {
try {
proxy.expiredAndReturnMoney((WxOrder) o,false,payWay);
} catch (Exception e) {
logger.error("拼团过期退款失败" + e.getMessage());
}
});
}


//拼团券下架
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_CANCEL.getCode());
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try {
proxy.returnMoney((WxOrder) o,payWay);
} catch (Exception e) {
logger.error("拼团券下架退款失败" + e.getMessage());
}
});
_orderList = wxOrderMapper.selectList(new QueryWrapper(order));
if (null != _orderList && _orderList.size() > 0) {
_orderList.stream().forEach(o -> {
try {
proxy.returnMoney((WxOrder) o,payWay);
} catch (Exception e) {
logger.error("拼团券下架退款失败" + e.getMessage());
}
});
}

//参团失败
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_FAILD.getCode());
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try {
proxy.expiredAndReturnMoney((WxOrder) o,true,payWay);
} catch (Exception e) {
logger.error("参团失败退款失败" + e.getMessage());
}
});
_orderList = wxOrderMapper.selectList(new QueryWrapper(order));
if (null != _orderList && _orderList.size() > 0) {
_orderList.stream().forEach(o -> {
try {
proxy.expiredAndReturnMoney((WxOrder) o,true,payWay);
} catch (Exception e) {
logger.error("参团失败退款失败" + e.getMessage());
}
});
}

//无需查询付款状态的订单-退款,回滚库存
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_SCHEDU_REFUND.getCode());
wxOrderMapper.selectList(new QueryWrapper(order)).stream().forEach(o -> {
try {
proxy.expiredAndReturnMoney((WxOrder) o,false,payWay);
} catch (Exception e) {
logger.error("参团失败退款失败" + e.getMessage());
}
});
_orderList = wxOrderMapper.selectList(new QueryWrapper(order));
if (null != _orderList && _orderList.size() > 0) {
_orderList.stream().forEach(o -> {
try {
proxy.expiredAndReturnMoney((WxOrder) o,false,payWay);
} catch (Exception e) {
logger.error("参团失败退款失败" + e.getMessage());
}
});
}
//此处是拼团完成后,会将其他失效的订单置成该状态。需要查询是否已经付款,如果已经付款,则退款,退款回回滚库存。如果没付款,则主动回滚库存
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());
}
});

_orderList = wxOrderMapper.selectList(new QueryWrapper(order));
if (null != _orderList && _orderList.size() > 0) {
_orderList.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)) {


+ 15
- 11
mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java 파일 보기

@@ -67,15 +67,17 @@ public class PowerBillAutoBuildSchedule {
logger.info("自动生成电费账单开始....");
int dayOfMonth = LocalDate.now().getDayOfMonth();
List<WxPowerBillAutoConfig> wxPowerBillAutoConfigs = wxPowerBillAutoConfigMapper.selectList(new QueryWrapper(null));
wxPowerBillAutoConfigs = wxPowerBillAutoConfigs.stream().filter(config -> StringUtils.isNotEmpty(config.getUnitPrice())
&& StringUtils.isNotEmpty(config.getBuildDay())
&& StringUtils.isNotEmpty(config.getReceiveDay()))
.collect(Collectors.toList());
for (int i = 0; i < wxPowerBillAutoConfigs.size(); i++) {
WxPowerBillAutoConfig wxPowerBillAutoConfig = wxPowerBillAutoConfigs.get(i);
if (String.valueOf(dayOfMonth).equals(wxPowerBillAutoConfig.getBuildDay())) {
merchantPowerBillConfigStart(wxPowerBillAutoConfig);
}
if (null != wxPowerBillAutoConfigs) {
wxPowerBillAutoConfigs = wxPowerBillAutoConfigs.stream().filter(config -> StringUtils.isNotEmpty(config.getUnitPrice())
&& StringUtils.isNotEmpty(config.getBuildDay())
&& StringUtils.isNotEmpty(config.getReceiveDay()))
.collect(Collectors.toList());
for (int i = 0; i < wxPowerBillAutoConfigs.size(); i++) {
WxPowerBillAutoConfig wxPowerBillAutoConfig = wxPowerBillAutoConfigs.get(i);
if (String.valueOf(dayOfMonth).equals(wxPowerBillAutoConfig.getBuildDay())) {
merchantPowerBillConfigStart(wxPowerBillAutoConfig);
}
}
}
logger.info("自动生成电费账单结束....");
}
@@ -84,8 +86,10 @@ public class PowerBillAutoBuildSchedule {
WxMerchantPowerBillConfig wxMerchantPowerBillConfig = new WxMerchantPowerBillConfig();
wxMerchantPowerBillConfig.updateTenantInfo(wxPowerBillAutoConfig);
List<WxMerchantPowerBillConfig> wxMerchantPowerBillConfigs = wxMerchantPowerBillConfigMapper.selectList(new QueryWrapper(wxMerchantPowerBillConfig));
for (int i = 0; i < wxMerchantPowerBillConfigs.size(); i++) {
buildPowerBill(wxMerchantPowerBillConfigs.get(i), wxPowerBillAutoConfig);
if (null != wxMerchantPowerBillConfigs) {
for (int i = 0; i < wxMerchantPowerBillConfigs.size(); i++) {
buildPowerBill(wxMerchantPowerBillConfigs.get(i), wxPowerBillAutoConfig);
}
}
}



+ 33
- 29
mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java 파일 보기

@@ -52,40 +52,44 @@ public class SharingOrderRedoSchedule {
wxProfitSharingOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode());
wxProfitSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_APPLY_FAILED.getCode());
List<WxProfitSharingOrder> list = wxProfitSharingOrderMapper.findList(wxProfitSharingOrder);
list.stream().forEach(sharingOrder->{
try {
ResultData result = wxProfitSharingOrderService.redoSharingOrder(sharingOrder);
if (result.code != ResultData.SUCCESS) {
logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage()
+ " ID:" +sharingOrder.getId()
+ " RES:" + result.message);
}
} catch (Exception e){
logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage()
+ " ID:" +sharingOrder.getId()
+ " MSG:" + e.getMessage());
}
});
if (null != list) {
list.stream().forEach(sharingOrder->{
try {
ResultData result = wxProfitSharingOrderService.redoSharingOrder(sharingOrder);
if (result.code != ResultData.SUCCESS) {
logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage()
+ " ID:" +sharingOrder.getId()
+ " RES:" + result.message);
}
} catch (Exception e){
logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage()
+ " ID:" +sharingOrder.getId()
+ " MSG:" + e.getMessage());
}
});
}
wxProfitSharingOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode());
wxProfitSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_APPLY_FAILED.getCode());
list = wxProfitSharingOrderMapper.findList(wxProfitSharingOrder);
list.stream().forEach(sharingOrder->{
try {
ResultData result = wxProfitSharingOrderService.redoSharingOrder(sharingOrder);
if (result.code != ResultData.SUCCESS) {
logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getMessage()
+ " ID:" +sharingOrder.getId()
+ " RES:" + result.message);
}
} catch (Exception e){
logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getMessage()
+ " ID:" +sharingOrder.getId()
+ " MSG:" + e.getMessage());
}
});
if (null != list) {
list.stream().forEach(sharingOrder->{
try {
ResultData result = wxProfitSharingOrderService.redoSharingOrder(sharingOrder);
if (result.code != ResultData.SUCCESS) {
logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getMessage()
+ " ID:" +sharingOrder.getId()
+ " RES:" + result.message);
}
} catch (Exception e){
logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getMessage()
+ " ID:" +sharingOrder.getId()
+ " MSG:" + e.getMessage());
}
});
}
}

}

+ 9
- 7
mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java 파일 보기

@@ -63,13 +63,15 @@ public class WxCUserTagsSchedule {
PageInfo page;
do{
page = wxCUserBasicInfoService.listAsPage(wxCUserBasicInfo, pageIndex++, pageSize);
page.getList().stream().forEach(cubi -> {
try {
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_SCAN, new WxCUserBasicTagVo((WxCUserBasicInfo)cubi,mall.getTenantId()),mall,null);
}catch(Exception e) {
logger.error("wxCUserTagsSchedule error."+cubi.toString(),e);
}
});
if (null != page && null != page.getList()) {
page.getList().stream().forEach(cubi -> {
try {
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_SCAN, new WxCUserBasicTagVo((WxCUserBasicInfo)cubi,mall.getTenantId()),mall,null);
}catch(Exception e) {
logger.error("wxCUserTagsSchedule error."+cubi.toString(),e);
}
});
}
} while ((page.isHasNextPage()));
}


불러오는 중...
취소
저장