| | |
| | | import com.ruoyi.order.model.OrderBalancePayment; |
| | | import com.ruoyi.order.model.OrderGood; |
| | | import com.ruoyi.order.model.RefundPass; |
| | | import com.ruoyi.order.service.CommissionService; |
| | | import com.ruoyi.order.service.OrderBalancePaymentService; |
| | | import com.ruoyi.order.service.OrderService; |
| | | import com.ruoyi.order.service.RefundPassService; |
| | | import com.ruoyi.order.service.*; |
| | | import com.ruoyi.order.util.ExpressDeliveryUtil; |
| | | import com.ruoyi.order.util.payment.PaymentUtil; |
| | | import com.ruoyi.order.util.payment.model.RefundCallbackResult; |
| | |
| | | |
| | | @Resource |
| | | private RefundPassService refundPassService; |
| | | @Resource |
| | | private TechnicianSubscribeClient technicianSubscribeClient; |
| | | @Resource |
| | | private ShopBalanceStatementClient shopBalanceStatementClient; |
| | | |
| | | @Resource |
| | | private OrderGoodService orderGoodService; |
| | | |
| | | |
| | | |
| | |
| | | orderGoodsVO.setGoodsName(goods.getName()); |
| | | orderGoodsVO.setType(goods.getType()); |
| | | orderGoodsVO.setGoodsPic(goods.getHomePagePicture()); |
| | | orderGoodsVO.setSellingPrice(goods.getSellingPrice()); |
| | | orderGoodsVO.setSellingPrice(orderGood.getSellingPrice()); |
| | | orderGoodsVO.setIntegral(orderGood.getIntegral()); |
| | | orderGoodsVO.setOriginalPrice(goods.getOriginalPrice()); |
| | | goodsList.add(orderGoodsVO); |
| | | } |
| | |
| | | order.setIsCommission(0); |
| | | order.setAfterSaleTime(LocalDateTime.now().plusDays(days)); |
| | | order.setEndTime(LocalDateTime.now()); |
| | | order.setCancellerAppUserId(loginUserApplet.getUserid()); |
| | | orderMapper.updateById(order); |
| | | } |
| | | |
| | |
| | | balanceChangeRecord.setDelFlag(0); |
| | | balanceChangeRecord.setCreateTime(LocalDateTime.now()); |
| | | balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord); |
| | | |
| | | //退回获得的消费积分 |
| | | //需要先检查会员等级时候回回退,使用回退后的会员等级查询配置 |
| | | Integer lavePoint = appUser.getLavePoint(); |
| | | |
| | | UserPoint userPoint1 = new UserPoint(); |
| | | userPoint1.setType(1); |
| | | userPoint1.setAppUserId(appUser.getId()); |
| | | userPoint1.setObjectId(order.getId()); |
| | | UserPoint userPoint2 = userPointClient.getUserPointList(userPoint1).getData().get(0); |
| | | JSONObject jsonObject = JSON.parseObject(userPoint2.getExtention()); |
| | | Integer shopPoint = jsonObject.getInteger("shopPoint"); |
| | | Integer availablePoint = jsonObject.getInteger("availablePoint"); |
| | | Integer transferablePoint = jsonObject.getInteger("transferablePoint"); |
| | | appUser.setShopPoint(appUser.getShopPoint() - shopPoint); |
| | | appUser.setLavePoint(appUser.getLavePoint() - shopPoint); |
| | | appUser.setAvailablePoint(appUser.getAvailablePoint() - availablePoint); |
| | | appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() - availablePoint); |
| | | if(null != transferablePoint){ |
| | | appUser.setTransferablePoint(appUser.getTransferablePoint() - transferablePoint); |
| | | } |
| | | appUser.setTotalPoint(appUser.getTotalPoint() - shopPoint); |
| | | |
| | | boolean vipDemotion = vipDemotion(appUser.getShopPoint(), appUser.getVipId()); |
| | | if(vipDemotion){ |
| | | appUser.setVipId(appUser.getVipId() - 1); |
| | | } |
| | | |
| | | //构建积分流水明细 |
| | | UserPoint userPoint = new UserPoint(); |
| | | userPoint.setType(1); |
| | | userPoint.setHistoricalPoint(lavePoint); |
| | | userPoint.setVariablePoint(shopPoint); |
| | | userPoint.setBalance(appUser.getLavePoint()); |
| | | userPoint.setCreateTime(LocalDateTime.now()); |
| | | userPoint.setAppUserId(order.getAppUserId()); |
| | | userPoint.setObjectId(order.getId()); |
| | | userPointClient.saveUserPoint(userPoint); |
| | | appUserClient.editAppUserById(appUser); |
| | | } |
| | | if(3 == payMethod){ |
| | | //开始运费退款,积分支付,运费是单独进行支付的,所以需要单独退款 |
| | |
| | | userPoint.setObjectId(order.getId()); |
| | | userPointClient.saveUserPoint(userPoint); |
| | | } |
| | | //退回获得的消费积分 |
| | | //需要先检查会员等级时候回回退,使用回退后的会员等级查询配置 |
| | | Integer lavePoint = appUser.getLavePoint(); |
| | | Integer getPoint = order.getGetPoint(); |
| | | boolean vipDemotion = vipDemotion(appUser.getShopPoint() - getPoint, appUser.getVipId()); |
| | | PointSetting pointSetting = pointSettingClient.getPointSetting(vipDemotion ? appUser.getVipId() - 1 : appUser.getVipId()).getData(); |
| | | int earnPoint1 = 0; |
| | | if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){ |
| | | earnPoint1 = new BigDecimal(getPoint).divide(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue(); |
| | | } |
| | | appUser.setShopPoint(appUser.getShopPoint() - getPoint); |
| | | appUser.setLavePoint(appUser.getLavePoint() - getPoint); |
| | | appUser.setAvailablePoint(appUser.getAvailablePoint() - earnPoint1); |
| | | appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() - earnPoint1); |
| | | if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){ |
| | | appUser.setTransferablePoint(appUser.getTransferablePoint() - earnPoint1); |
| | | } |
| | | appUser.setTotalPoint(appUser.getTotalPoint() - getPoint); |
| | | if(vipDemotion){ |
| | | appUser.setVipId(appUser.getVipId() - 1); |
| | | } |
| | | |
| | | //构建积分流水明细 |
| | | UserPoint userPoint = new UserPoint(); |
| | | userPoint.setType(1); |
| | | userPoint.setHistoricalPoint(lavePoint); |
| | | userPoint.setVariablePoint(getPoint); |
| | | userPoint.setBalance(appUser.getLavePoint()); |
| | | userPoint.setCreateTime(LocalDateTime.now()); |
| | | userPoint.setAppUserId(order.getAppUserId()); |
| | | userPoint.setObjectId(order.getId()); |
| | | userPointClient.saveUserPoint(userPoint); |
| | | appUserClient.editAppUserById(appUser); |
| | | |
| | | order.setRefundStatus(2); |
| | | order.setRefundTime(LocalDateTime.now()); |
| | |
| | | order.setRefundStatus(2); |
| | | order.setRefundTime(LocalDateTime.now()); |
| | | this.updateById(order); |
| | | |
| | | //退回获得的消费积分 |
| | | //需要先检查会员等级时候回回退,使用回退后的会员等级查询配置 |
| | | AppUser appUser = appUserClient.getAppUserById(order.getAppUserId()); |
| | | Integer lavePoint = appUser.getLavePoint(); |
| | | Integer getPoint = order.getGetPoint(); |
| | | boolean vipDemotion = vipDemotion(appUser.getShopPoint() - getPoint, appUser.getVipId()); |
| | | PointSetting pointSetting = pointSettingClient.getPointSetting(vipDemotion ? appUser.getVipId() - 1 : appUser.getVipId()).getData(); |
| | | int earnPoint1 = 0; |
| | | if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){ |
| | | earnPoint1 = new BigDecimal(getPoint).divide(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue(); |
| | | UserPoint userPoint1 = new UserPoint(); |
| | | userPoint1.setType(1); |
| | | userPoint1.setAppUserId(appUser.getId()); |
| | | userPoint1.setObjectId(order.getId()); |
| | | UserPoint userPoint2 = userPointClient.getUserPointList(userPoint1).getData().get(0); |
| | | JSONObject jsonObject = JSON.parseObject(userPoint2.getExtention()); |
| | | Integer shopPoint = jsonObject.getInteger("shopPoint"); |
| | | Integer availablePoint = jsonObject.getInteger("availablePoint"); |
| | | Integer transferablePoint = jsonObject.getInteger("transferablePoint"); |
| | | appUser.setShopPoint(appUser.getShopPoint() - shopPoint); |
| | | appUser.setLavePoint(appUser.getLavePoint() - shopPoint); |
| | | appUser.setAvailablePoint(appUser.getAvailablePoint() - availablePoint); |
| | | appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() - availablePoint); |
| | | if(null != transferablePoint){ |
| | | appUser.setTransferablePoint(appUser.getTransferablePoint() - transferablePoint); |
| | | } |
| | | appUser.setShopPoint(appUser.getShopPoint() - getPoint); |
| | | appUser.setLavePoint(appUser.getLavePoint() - getPoint); |
| | | appUser.setAvailablePoint(appUser.getAvailablePoint() - earnPoint1); |
| | | appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() - earnPoint1); |
| | | if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){ |
| | | appUser.setTransferablePoint(appUser.getTransferablePoint() - earnPoint1); |
| | | } |
| | | appUser.setTotalPoint(appUser.getTotalPoint() - getPoint); |
| | | appUser.setTotalPoint(appUser.getTotalPoint() - shopPoint); |
| | | |
| | | boolean vipDemotion = vipDemotion(appUser.getShopPoint(), appUser.getVipId()); |
| | | if(vipDemotion){ |
| | | appUser.setVipId(appUser.getVipId() - 1); |
| | | } |
| | |
| | | UserPoint userPoint = new UserPoint(); |
| | | userPoint.setType(1); |
| | | userPoint.setHistoricalPoint(lavePoint); |
| | | userPoint.setVariablePoint(getPoint); |
| | | userPoint.setVariablePoint(shopPoint); |
| | | userPoint.setBalance(appUser.getLavePoint()); |
| | | userPoint.setCreateTime(LocalDateTime.now()); |
| | | userPoint.setAppUserId(order.getAppUserId()); |
| | |
| | | userPoint.setAppUserId(order.getAppUserId()); |
| | | userPoint.setObjectId(order.getId()); |
| | | userPointClient.saveUserPoint(userPoint); |
| | | |
| | | //退回获得的消费积分 |
| | | //需要先检查会员等级时候回回退,使用回退后的会员等级查询配置 |
| | | lavePoint = appUser.getLavePoint(); |
| | | Integer getPoint = order.getGetPoint(); |
| | | boolean vipDemotion = vipDemotion(appUser.getShopPoint() - getPoint, appUser.getVipId()); |
| | | PointSetting pointSetting = pointSettingClient.getPointSetting(vipDemotion ? appUser.getVipId() - 1 : appUser.getVipId()).getData(); |
| | | int earnPoint1 = 0; |
| | | if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){ |
| | | earnPoint1 = new BigDecimal(getPoint).divide(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue(); |
| | | } |
| | | appUser.setShopPoint(appUser.getShopPoint() - getPoint); |
| | | appUser.setLavePoint(appUser.getLavePoint() - getPoint); |
| | | appUser.setAvailablePoint(appUser.getAvailablePoint() - earnPoint1); |
| | | appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() - earnPoint1); |
| | | if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){ |
| | | appUser.setTransferablePoint(appUser.getTransferablePoint() - earnPoint1); |
| | | } |
| | | appUser.setTotalPoint(appUser.getTotalPoint() - getPoint); |
| | | if(vipDemotion){ |
| | | appUser.setVipId(appUser.getVipId() - 1); |
| | | } |
| | | |
| | | //构建积分流水明细 |
| | | userPoint = new UserPoint(); |
| | | userPoint.setType(1); |
| | | userPoint.setHistoricalPoint(lavePoint); |
| | | userPoint.setVariablePoint(getPoint); |
| | | userPoint.setBalance(appUser.getLavePoint()); |
| | | userPoint.setCreateTime(LocalDateTime.now()); |
| | | userPoint.setAppUserId(order.getAppUserId()); |
| | | userPoint.setObjectId(order.getId()); |
| | | userPointClient.saveUserPoint(userPoint); |
| | | appUserClient.editAppUserById(appUser); |
| | | |
| | | order.setRefundStatus(2); |
| | | order.setRefundTime(LocalDateTime.now()); |
| | | return null; |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | |
| | | orderInfo.setUserName(appUser.getName()); |
| | | orderInfo.setPhone(appUser.getPhone()); |
| | | } |
| | | orderInfo.setOrderType(order.getOrderType() == 1 ? "服务" : (StringUtils.isNotEmpty(order.getExpressJson()) ? "单品-快递配送" : "单品-自提")); |
| | | orderInfo.setOrderType(order.getOrderType() == 1 ? "服务" : (StringUtils.isNotEmpty(order.getAddressJson()) ? "单品-快递配送" : "单品-上门自提")); |
| | | Shop shop = shopClient.getShopById(order.getShopId()).getData(); |
| | | if(null != shop){ |
| | | orderInfo.setShopName(shop.getName()); |
| | |
| | | orderInfo.setDiscountAmount(order.getDiscountTotalAmount()); |
| | | orderInfo.setExpressAmount(order.getExpressAmount()); |
| | | orderInfo.setPaymentAmount(order.getPaymentAmount()); |
| | | orderInfo.setPoint(order.getGetPoint()); |
| | | orderInfo.setGetPoint(order.getGetPoint()); |
| | | if(StringUtils.isNotEmpty(order.getAddressJson())){ |
| | | UserAddress userAddress = JSON.parseObject(order.getAddressJson(), UserAddress.class); |
| | | orderInfo.setRecipient(userAddress.getRecieveName() + "-" + userAddress.getRecievePhone()); |
| | |
| | | goodsJson.add(map); |
| | | } |
| | | orderInfo.setGoodsJson(JSON.toJSONString(goodsJson)); |
| | | orderInfo.setPoint(order.getPoint()); |
| | | if(null != order.getAfterSaleTime()){ |
| | | orderInfo.setAfterSaleTime(order.getAfterSaleTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
| | | } |
| | | if(StringUtils.isNotEmpty(order.getActivityJson())){ |
| | | OrderActivityInfo activityInfo = JSON.parseObject(order.getActivityJson(), OrderActivityInfo.class); |
| | | orderInfo.setActivityName(activityInfo.getActivityName()); |
| | | } |
| | | if(null != order.getEndTime()){ |
| | | AppUser user = appUserClient.getAppUserById(order.getCancellerAppUserId()); |
| | | orderInfo.setCanceller(user.getName()); |
| | | orderInfo.setWriteOffTime(order.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
| | | } |
| | | if(order.getOrderType() == 1){ |
| | | List<TechnicianSubscribe> technicianSubscribes = technicianSubscribeClient.getTechnicianSubscribeList(order.getId()).getData(); |
| | | if(technicianSubscribes.size() > 0){ |
| | | Set<Integer> collect = technicianSubscribes.stream().map(TechnicianSubscribe::getTechnicianId).collect(Collectors.toSet()); |
| | | List<Technician> data = technicianClient.getTechnicianByIds(collect).getData(); |
| | | orderInfo.setTechnicianName(data.stream().map(Technician::getName).collect(Collectors.joining(","))); |
| | | } |
| | | } |
| | | List<ShopBalanceStatement> data = shopBalanceStatementClient.getShopBalanceStatementList(Arrays.asList(1, 2, 3), order.getId()).getData(); |
| | | BigDecimal reduce = data.stream().map(ShopBalanceStatement::getVariableAmount).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | orderInfo.setSubcommission(reduce); |
| | | return orderInfo; |
| | | } |
| | | |