From 156e141e55a8abf486157d1fa89d25e23f4a06a3 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 25 八月 2023 19:32:30 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 149 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 111 insertions(+), 38 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index a77412b..6ff0f42 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsRequest; -import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult; -import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult; -import com.github.binarywang.wxpay.bean.ecommerce.TransactionsResult; +import com.github.binarywang.wxpay.bean.ecommerce.*; import com.github.binarywang.wxpay.bean.ecommerce.enums.TradeTypeEnum; import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult; import com.github.binarywang.wxpay.config.WxPayConfig; @@ -16,6 +13,7 @@ import com.github.binarywang.wxpay.service.WxPayService; import com.google.common.base.Joiner; import com.google.gson.Gson; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; @@ -754,11 +752,12 @@ goodsName = String.join(",", goodsNameList); } - // 小程序微信下单支付 - /*createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo, - orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(), - appPlaceOrderDto.getSpbillCreateIp(), goodsNameList);*/ - + if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){ + // 小程序微信下单支付 + createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo, + orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(), + appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1); + } //减去优惠券 if (StringUtils.isNotBlank(memberCouponSJ.toString())) { @@ -797,11 +796,11 @@ public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId, String goodsName, String orderNo, String orderId, BigDecimal payMoney, - String openid, String payerClientIp, List<String> goodsNameList){ + String openid, String payerClientIp, List<String> goodsNameList,Integer orderFrom){ try { // 创建支付订单 - //R<String> resultMch = remoteShopService.getShopSubMchId(shopId); - String subMchId = "1650744551"; + R<String> resultMch = remoteShopService.getShopSubMchId(shopId); + String subMchId = resultMch.getData(); if (StringUtils.isEmpty(subMchId)) { throw new ServiceException("获取微信商户号失败"); } @@ -820,7 +819,11 @@ request.setNotifyUrl(config.getNotifyUrl()); // 结算信息 PartnerTransactionsRequest.SettleInfo settleInfo = new PartnerTransactionsRequest.SettleInfo(); - settleInfo.setProfitSharing(true); + if(orderFrom==2){ + settleInfo.setProfitSharing(true); + }else{ + settleInfo.setProfitSharing(false); + } settleInfo.setSubsidyAmount(BigDecimal.ZERO); request.setSettleInfo(settleInfo); @@ -1134,7 +1137,18 @@ appPlaceOrderVo.setPackageStr(res.getPackageVal()); appPlaceOrderVo.setTradeType(res.getSignType()); appPlaceOrderVo.setPaySign(res.getPaySign()); + */ + List<String> goodsNameList = new ArrayList<>(); + goodsNameList.add(orderGoods.getGoodsName()); + + + if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){ + // 小程序微信下单支付 + createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo, + orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(), + appPlaceActivityDto.getSpbillCreateIp(), goodsNameList,2); + } //生成活动参加记录 ActivityRecord activityRecord = new ActivityRecord(); activityRecord.setDelFlag(0); @@ -3490,6 +3504,9 @@ merTotalDto.setShopIdList(shopIdList); merTotalDto.setShopId(null); } + if(merTotalDto.getGoodsType()!=null&&merTotalDto.getGoodsType()==0){ + merTotalDto.setGoodsType(null); + } MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); // 获取订单年龄用户列表 //List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData(); @@ -3537,10 +3554,10 @@ } }*/ List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listMerOrderDistributionTotal(merTotalDto); + String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()]; + Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()]; if (mgtMapTotalPlusVoList != null && !mgtMapTotalPlusVoList.isEmpty()) { - String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()]; - Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()]; - BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()]; MgtMapTotalPlusVo mgtMapTotalPlusVo; for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) { mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i); @@ -3549,6 +3566,10 @@ orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond(); } orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue); + }else{ + orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); + orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); + orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); } // 返回订单分布总数对象 return orderDistributionTotalVo; @@ -3574,28 +3595,44 @@ List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { - MgtMapIntTotalVo MgtMapIntTotalVo; + MgtMapIntTotalVo mgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; + Integer intTotal = 0; + BigDecimal bigTotal = BigDecimal.ZERO; + for(MgtMapTotalPlusVo mgtMapTotalPlusVo : MgtMapIntTotalVoGoodsType){ + intTotal = intTotal + mgtMapTotalPlusVo.getMapValueFirst(); + bigTotal = bigTotal.add(mgtMapTotalPlusVo.getMapValueSecond()); + } + BigDecimal hundredBig = new BigDecimal("100"); + BigDecimal intTotalBig = hundredBig; + if(intTotal!=0){ + intTotalBig = new BigDecimal(intTotal.toString()); + } + if(bigTotal.compareTo(BigDecimal.ZERO)<1){ + bigTotal = hundredBig; + } // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { - MgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapIntTotalVo.setMapPercent(BigDecimal.valueOf(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()).divide(intTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig)); mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); + mgtMapBigTotalVo.setMapPercent(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond().divide(bigTotal,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig)); if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { - MgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { - MgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { - MgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { - MgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } - goodsTypeTotalList.add(MgtMapIntTotalVo); + goodsTypeTotalList.add(mgtMapIntTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); @@ -4104,7 +4141,7 @@ BigDecimal onlinePayMoney = order.getOnlinePayMoney(); if(BigDecimal.ZERO.compareTo(onlinePayMoney) < 0){ // 订单支付金额大于0,可发起退款 - //orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund); + orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund); } orderRefund.setRefundStatus(1); @@ -4114,7 +4151,7 @@ /** * 申请退款API */ - /*private void orderWxApplyRefund(String orderId, String outRefundNo, BigDecimal payMoney, OrderRefund orderRefund){ + private void orderWxApplyRefund(String orderId, String outRefundNo, BigDecimal payMoney, OrderRefund orderRefund){ try { // 创建支付订单 OrderPayment orderPayment = orderPaymentService.getByOrderId(orderId); @@ -4153,7 +4190,7 @@ } catch (WxPayException e) { throw new ServiceException(e.getMessage()); } - }*/ + } /** * @param staffTotalDto @@ -4200,6 +4237,9 @@ */ @Override public MerOrderDistributionTotalVo getStaffOrderDistributionTotal(StaffTotalDto staffTotalDto) { + if(staffTotalDto.getGoodsType()!=null&&staffTotalDto.getGoodsType()==0){ + staffTotalDto.setGoodsType(null); + } MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); // 获取订单年龄用户列表 //MerTotalDto merTotalDto = new MerTotalDto(); @@ -4255,10 +4295,10 @@ }*/ if(staffTotalDto.getActivityFrom()==1){ List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listStaffActivityOrderDistributionTotal(staffTotalDto); + String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()]; + Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()]; if (mgtMapTotalPlusVoList != null && !mgtMapTotalPlusVoList.isEmpty()) { - String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()]; - Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()]; - BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()]; MgtMapTotalPlusVo mgtMapTotalPlusVo; for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) { mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i); @@ -4267,6 +4307,10 @@ orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond(); } orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue); + }else{ + orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); + orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); + orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); } } // 返回订单分布总数对象 @@ -4341,28 +4385,44 @@ List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { - MgtMapIntTotalVo MgtMapIntTotalVo; + MgtMapIntTotalVo mgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; + Integer intTotal = 0; + BigDecimal bigTotal = BigDecimal.ZERO; + for(MgtMapTotalPlusVo mgtMapTotalPlusVo : MgtMapIntTotalVoGoodsType){ + intTotal = intTotal + mgtMapTotalPlusVo.getMapValueFirst(); + bigTotal = bigTotal.add(mgtMapTotalPlusVo.getMapValueSecond()); + } + BigDecimal hundredBig = new BigDecimal("100"); + BigDecimal intTotalBig = hundredBig; + if(intTotal!=0){ + intTotalBig = new BigDecimal(intTotal.toString()); + } + if(bigTotal.compareTo(BigDecimal.ZERO)<1){ + bigTotal = hundredBig; + } // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { - MgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapIntTotalVo.setMapPercent(BigDecimal.valueOf(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()).divide(intTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig)); mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); + mgtMapBigTotalVo.setMapPercent(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond().divide(bigTotal,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig)); if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { - MgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { - MgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { - MgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { - MgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } - goodsTypeTotalList.add(MgtMapIntTotalVo); + goodsTypeTotalList.add(mgtMapIntTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); @@ -4691,4 +4751,17 @@ MerHomeShopTotalVo serviceTotalVo = orderMapper.getMerHomeShopServiceTotalVo(shopId); return serviceTotalVo; } + + /** + * @description 获取区域统计 + * @author jqs + * @date 2023/8/25 11:49 + * @param shopIdList + * @return AgencyTotalVo + */ + @Override + public AgencyTotalVo getAgencyTotalVo(List<Long> shopIdList){ + AgencyTotalVo agencyTotalVo = orderMapper.getAgencyTotalVo(shopIdList); + return agencyTotalVo; + } } -- Gitblit v1.7.1