diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponExpiringSchedule.java index 688d94c91..fad1da827 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponExpiringSchedule.java @@ -124,20 +124,22 @@ public class CouponExpiringSchedule { wxGame.setStatus(EnumGameStatus.STATUS_THROW_IN.getCode()); List 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); + } + }); + } } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index 5744c83ee..805707ca3 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -66,15 +66,17 @@ public class CouponOrderExpiringSchedule { List malls = getMalls(); for (WxMall mall: malls) { List 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 malls = getMalls(); for (WxMall mall: malls) { List 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); + } + }); + } } } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java index c0ce0698a..8a3b99467 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java +++ b/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); + } } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 2a6b0e592..980bed148 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/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 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 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 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 _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)) { diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java index fe81c1909..5eefd5672 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java @@ -67,15 +67,17 @@ public class PowerBillAutoBuildSchedule { logger.info("自动生成电费账单开始...."); int dayOfMonth = LocalDate.now().getDayOfMonth(); List 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 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); + } } } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java index c9e308188..69e5a4131 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java +++ b/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 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()); + } + }); + } } } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java index b7eb7b277..ba5a76232 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java +++ b/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())); }