diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java index 30526074f..2f3e2bf10 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java @@ -102,15 +102,15 @@ public class WxOrderController extends BaseController { return new ResultData(); } - @ApiOperation("根据id删除接口") - @GetMapping("/del") - @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) - @SystemControllerLog(description = "订单管理-删除") - public ResultData delete(Long id) { - logger.debug("[" + getIpAddr() + "] WxOrderController::delete"); - wxOrderService.deleteById(id); - return new ResultData(Result.SUCCESS, "删除成功", null); - } +// @ApiOperation("根据id删除接口") +// @GetMapping("/del") +// @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) +// @SystemControllerLog(description = "订单管理-删除") +// public ResultData delete(Long id) { +// logger.debug("[" + getIpAddr() + "] WxOrderController::delete"); +// wxOrderService.deleteById(id); +// return new ResultData(Result.SUCCESS, "删除成功", null); +// } @ApiOperation("根据id查询接口") @GetMapping("/findById") @@ -118,7 +118,7 @@ public class WxOrderController extends BaseController { @SystemControllerLog(description = "订单管理-id查询") public ResultData findById(Long id) { logger.debug("[" + getIpAddr() + "] WxOrderController::findById"); - return new ResultData(Result.SUCCESS, "查询成功", wxOrderService.getById(id)); + return new ResultData(Result.SUCCESS, "查询成功", wxOrderService.getById(id,getTenantInfo().getTenantId())); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index 481268820..8abaa5e57 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -425,7 +425,7 @@ public class WxMicroPayController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - WxOrder microOrder = wxOrderService.getById(orderId); + WxOrder microOrder = wxOrderService.getById(orderId,wxMerchantBUser.getTenantId()); if (microOrder == null) { return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 6d3bf2531..9344d774c 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -102,7 +102,7 @@ public class WxOrderController extends BaseController { } //判断是否是拼团订单,如果是拼团订单,判断现在进行中的,和已完成的数量是否超出券的限制 if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) { - int ordercount = wxOrderService.countUserCouponGroupOrder(cUserId,coupon.getId()); + int ordercount = wxOrderService.countUserCouponGroupOrder(cUserId,coupon.getId(),coupon.getTenantId()); if (ordercount>=coupon.getUseLimitQuantity()) { return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF.getCode(),"您当前此券的有效拼团数量达到券的限购次数。"); } @@ -244,7 +244,7 @@ public class WxOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "orderId: " + orderIdStr + ", e: " + e.getMessage()); } try { - WxOrder order = wxOrderService.getById(orderId); + WxOrder order = wxOrderService.getById(orderId,getTenantInfo().getTenantId()); if (order != null) { wxOrderService.updateOrderStatus(order, EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL); } @@ -273,7 +273,7 @@ public class WxOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "退款订单ID转换失败"); } try { - WxOrder order = wxOrderService.getById(orderId); + WxOrder order = wxOrderService.getById(orderId,getTenantInfo().getTenantId()); if (order != null) { wxOrderService.updateOrderStatus(order, EnumOrderStatus.ORDER_STATUS_REFUND_SUCCESS); } @@ -385,7 +385,7 @@ public class WxOrderController extends BaseController { } WxOrder order = null; try { - order = wxOrderService.getById(id); + order = wxOrderService.getById(id,getTenantInfo().getTenantId()); if (order != null) { return new ResultData(Result.SUCCESS, "查询成功", order); } else { diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java index 4b40dbc53..11d382c8b 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java @@ -182,7 +182,7 @@ public class WxPayOrderController extends BaseController { if (null == payOrder) { return new ResultData(ErrorCode.PAY_ORDER_ERROR, "未查询到payOrder."); } - WxOrder order = wxOrderService.getById(orderId); + WxOrder order = wxOrderService.getById(orderId,payOrder.getTenantId()); if (null == order) { return new ResultData(ErrorCode.PAY_ORDER_ERROR, "未查询到Order["+orderId+"]."); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java index 22e8c46a9..8233805de 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java @@ -92,7 +92,7 @@ public class WxPressOrderController extends BaseController { order = operations.get(key); } else { // 订单没有入缓存,需要从数据库中读取 - order = wxOrderService.getById(orderId); + order = wxOrderService.getById(orderId,getTenantInfo().getTenantId()); if (order != null) { // 订单优化,进缓存 orderRedisTemplate.opsForValue().set(key, order, 3600, TimeUnit.SECONDS); @@ -243,7 +243,7 @@ public class WxPressOrderController extends BaseController { logger.error("orderId convert error, " + orderId + ", e:" + e.getMessage()); return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), "orderId: " + orderId + ", e:" + e.getMessage()); } - WxOrder order = wxOrderService.getById(orderIdL); + WxOrder order = wxOrderService.getById(orderIdL,getTenantInfo().getTenantId()); if(order == null) { logger.error("订单不存在:" + orderId); return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java index b2ee3d1fa..5b8794f2c 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java @@ -45,6 +45,7 @@ public class DaliyAmountSchedule { dateMap.put("startDate", startDate); dateMap.put("endDate", endDate); dateMap.put("merchantId", merchant.getId()); + dateMap.put("tenantId", merchant.getTenantId()); List list = wxCouponOrderMapper.findListOfOrderedByDate(dateMap); logger.info("find " + list.size() + " coupon order from " + startDate + " to " + endDate); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index e921ae31e..1ca3e16eb 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -75,23 +75,35 @@ public class OrderExpiringSchedule { @Autowired WxPayAccountMapper wxPayAccountMapper; + @Autowired + WxMallMapper wxMallMapper; + @Autowired WxPayOrderService wxPayOrderService; @Autowired PayServiceFactory payServiceFactory; + private List getMalls() { + WxMall wxMall =new WxMall(); + return wxMallMapper.findList(wxMall); + } + + @Scheduled(cron = "0 */5 * * * *?") // 每5分钟检查一次 //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 public void orderExpireSchedule() { - for (EnumPayWay payWay: EnumPayWay.values()) { - if(null != payWay.getPlat()) { - orderExpireSchedule(payWay); - } + List malls = getMalls(); + for (WxMall mall : malls) { + for (EnumPayWay payWay: EnumPayWay.values()) { + if(null != payWay.getPlat()) { + orderExpireSchedule(payWay,mall.getTenantId()); + } + } } } - private void orderExpireSchedule(EnumPayWay payWay) { + private void orderExpireSchedule(EnumPayWay payWay,String tenantId) { Map dateMap = new HashMap(); Date curDate = new Date(); @@ -103,6 +115,7 @@ public class OrderExpiringSchedule { // 券相关订单, 15分钟未支付, 订单过期 dateMap.put("type", EnumOrderType.COUPON.getCode()); dateMap.put("endDate", expireDate); + dateMap.put("tenantId", tenantId); List orderCoupons = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap); orderCoupons.stream().forEach( o -> { try { @@ -117,6 +130,7 @@ public class OrderExpiringSchedule { Date pressExpireDate = new Date(curDate.getTime() - PRESS_TIME_OUT ); dateMap.put("type", EnumOrderType.COUPON.getCode()); dateMap.put("endDate", pressExpireDate); + dateMap.put("tenantId", tenantId); List orderPresss = wxOrderMapper.findListOfCompleteUnPaidPressOrderByDate(dateMap); orderPresss.stream().forEach( o -> { try { @@ -128,6 +142,7 @@ public class OrderExpiringSchedule { // 2. 当前已超过砍价结束时间, 订单过期 dateMap.put("type", EnumOrderType.COUPON.getCode()); dateMap.put("endDate", curDate); + dateMap.put("tenantId", tenantId); orderPresss = wxOrderMapper.findListOfUnpaidPressOrderByDate(dateMap); orderPresss.stream().forEach( o -> { try { @@ -151,6 +166,7 @@ public class OrderExpiringSchedule { Date groupExpireDate = new Date(curDate.getTime() - NORMAL_TIME_OUT ); dateMap.put("type", EnumOrderType.COUPON.getCode()); dateMap.put("endDate", groupExpireDate); + dateMap.put("tenantId", tenantId); List orderGroups = wxOrderMapper.findListOfUnpaidGroupOrderByDate(dateMap); orderGroups.stream().forEach( o -> { try { @@ -162,9 +178,10 @@ public class OrderExpiringSchedule { //更新拼团过期状态 - wxOrderMapper.updateOrderStatusForGroup(); + wxOrderMapper.updateOrderStatusForGroup(tenantId); //拼团过期 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); @@ -236,6 +253,7 @@ public class OrderExpiringSchedule { public boolean wxPaySuccess(WxOrder order,boolean autoReHandle,EnumPayWay payWay) throws MallinkException, Exception { WxPayOrder payOrderq = new WxPayOrder(); payOrderq.setOrderId(order.getId()); + payOrderq.setTenantId(order.getTenantId()); List payorderlist = wxPayOrderMapper.findList(payOrderq); if (null == payorderlist || payorderlist.size() <=0 ) { return false; @@ -300,6 +318,7 @@ public class OrderExpiringSchedule { updateOrder.setId(order.getId()); updateOrder.setUpdateDate(new Date()); updateOrder.setOrderStatus(EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL.getCode()); + updateOrder.updateTenantInfo(order); wxOrderMapper.updateById(updateOrder); logger.info("券订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + new Date()); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java index 224151a8f..0b730a78a 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java @@ -9,8 +9,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.ibatis.annotations.Param; + public interface WxOrderMapper extends CommonMapper { + WxOrder selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + List findList(WxOrder wxOrder); Integer countList(WxOrder wxOrder); @@ -58,6 +62,6 @@ public interface WxOrderMapper extends CommonMapper { void updateOrderGroupStatusByCouponChannelId(WxOrder updateOrder); - void updateOrderStatusForGroup(); + void updateOrderStatusForGroup(@Param("tenantId")String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index 41b5481dd..b412a1ca1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -120,7 +120,7 @@ public interface WxOrderService { * @param id * @return */ - WxOrder getById(Long id); + WxOrder getById(Long id,String tenantId); /** * 根据Id获得实体 @@ -128,7 +128,7 @@ public interface WxOrderService { * @param id * @return */ - WxOrder getPressOrderById(Long id); + WxOrder getPressOrderById(Long id,String tenantId); /** * 保存或更新实体 @@ -142,7 +142,7 @@ public interface WxOrderService { * * @param id */ - void deleteById(Long id); + //void deleteById(Long id); /** * 条件查询不分页 * @param record @@ -235,8 +235,8 @@ public interface WxOrderService { Long saveOuterOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId); - int countGroupOrder(Long groupId,boolean ignoreUnPay); + int countGroupOrder(Long groupId,boolean ignoreUnPay,String tenantId); - int countUserCouponGroupOrder(Long cuserId,Long couponId); + int countUserCouponGroupOrder(Long cuserId,Long couponId,String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java index a727c7237..277c7ffdc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java @@ -678,6 +678,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { } else { params.put("endTime", addDay(1)); } + params.put("tenantId", wxOrderReportDto.getTenantId()); List list = wxOrderMapper.listMicroPayOrderReportByDateAndMerchant(params); String startdate = DateUtils.getTimeBefore(30, new Date()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java index faf42d675..4f5443f72 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java @@ -82,7 +82,7 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { } if (stocksetlock) { //此处拼团数量应从订单总数查询,支付成功的就算一个,没支付成功的不算. 提高拼团的成功率 - int ordercount = wxOrderService.countGroupOrder(order.getOrderGroupId(),true); + int ordercount = wxOrderService.countGroupOrder(order.getOrderGroupId(),true,order.getTenantId()); Integer remainPeople = wxCoupon.getPressLimitNum()-ordercount-1; if (remainPeople < 0) { throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团失败,参团人数已满,将稍后退款."); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 40ad21f9b..76e7536cf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -280,6 +280,7 @@ public class WxOrderServiceImpl implements WxOrderService { dateMap.put("endDate", endDate); dateMap.put("merchantId", wxMerchant.getId()); dateMap.put("type", type); + dateMap.put("tenantId", wxMerchantBUser.getTenantId()); Map resultMap = new HashMap(); @@ -342,6 +343,7 @@ public class WxOrderServiceImpl implements WxOrderService { dateMap.put("endDate", endDate); dateMap.put("merchantId", wxMerchant.getId()); dateMap.put("type", type); + dateMap.put("tenantId", wxMerchantBUser.getTenantId()); Map resultMap = new HashMap(); @@ -1658,14 +1660,13 @@ public class WxOrderServiceImpl implements WxOrderService { } @Override - public WxOrder getById(Long id) { - return wxOrderMapper.selectById(id); + public WxOrder getById(Long id,String tenantId) { + return wxOrderMapper.selectById(id,tenantId); } @Override - public WxOrder getPressOrderById(Long id) { - - return wxOrderMapper.selectById(id); + public WxOrder getPressOrderById(Long id,String tenantId) { + return wxOrderMapper.selectById(id,tenantId); } @Override @@ -1680,10 +1681,10 @@ public class WxOrderServiceImpl implements WxOrderService { } } - @Override - public void deleteById(Long id) { - wxOrderMapper.deleteById(id); - } +// @Override +// public void deleteById(Long id) { +// wxOrderMapper.deleteById(id); +// } @Override public List findList(WxOrder record) { @@ -2332,7 +2333,7 @@ public class WxOrderServiceImpl implements WxOrderService { } //判断拼团人数是否已经超出限制 - int groupCount = countGroupOrder(orderGroupId,true); + int groupCount = countGroupOrder(orderGroupId,true,group.getTenantId()); if (groupCount>=coupon.getPressLimitNum()) { throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FINISHED.getCode(),"下单人数超出优惠券人数限制!"); } @@ -2353,7 +2354,7 @@ public class WxOrderServiceImpl implements WxOrderService { } @Override - public int countGroupOrder(Long groupId,boolean ignoreUnPay) { + public int countGroupOrder(Long groupId,boolean ignoreUnPay,String tenantId) { WxOrder query = new WxOrder(); query.setOrderGroupId(groupId); List statusS = new ArrayList(); @@ -2364,11 +2365,12 @@ public class WxOrderServiceImpl implements WxOrderService { statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); } query.setStatusS(statusS); + query.setTenantId(tenantId); return wxOrderMapper.countList(query); } @Override - public int countUserCouponGroupOrder(Long cuserId, Long couponId) { + public int countUserCouponGroupOrder(Long cuserId, Long couponId,String tenantId) { WxOrder query = new WxOrder(); query.setCUserId(cuserId); query.setProductId(couponId); @@ -2376,8 +2378,8 @@ public class WxOrderServiceImpl implements WxOrderService { statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode()); query.setStatusS(statusS); + query.setTenantId(tenantId); return wxOrderMapper.countList(query); } - } diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderSuccessMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderSuccessMsgServiceImpl.java index d56451922..328dddda4 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderSuccessMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderSuccessMsgServiceImpl.java @@ -44,7 +44,7 @@ public class FmInsideOrderSuccessMsgServiceImpl implements MsgSendService { @Override public void send(BaseMsg baseMsg) throws Exception{ FmInsideOrderSuccessMsg msg = (FmInsideOrderSuccessMsg)baseMsg; - WxOrder record = orderService.getById(msg.getOrderId()); + WxOrder record = orderService.getById(msg.getOrderId(),msg.getTenantId()); if(record == null) { logger.error("订单未找到: " + msg.getOrderId()); throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(), "订单未找到" + msg.getOrderId()); diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index 0507938de..2c66bd872 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -129,6 +129,10 @@ order by ${sortColumns} + +