| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | BigDecimal orderPayMoney = new BigDecimal("0.00"); |
| | | // 创建订单ID和订单号 |
| | | String orderId = IdUtils.simpleUUID(); |
| | | |
| | | String orderNo = CodeFactoryUtil.getShopOrderNo(); |
| | | OrderGoods orderGoods; |
| | | String orderGoodsId; |
| | |
| | | order.setOrderRemark(appPlaceOrderDto.getOrderRemark()); |
| | | order.setGoodsNum(goodsNum); |
| | | order.setCreateTime(new Date()); |
| | | if(appPlaceOrderDto.getNewMemberFlag()!=null&&appPlaceOrderDto.getNewMemberFlag()==1){ |
| | | order.setNewMemberFlag(1); |
| | | } |
| | | // 保存订单 |
| | | this.save(order); |
| | | // 更新用户商品类型 |
| | |
| | | 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){ |
| | | String outTradeNo = IdUtils.simpleUUID(); |
| | | |
| | | // 保存订单 交易流水 |
| | | order.setOutTradeNo(outTradeNo); |
| | | this.saveOrUpdate(order); |
| | | |
| | | // 小程序微信下单支付 |
| | | createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, outTradeNo, |
| | | orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(), |
| | | appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1); |
| | | } |
| | | |
| | | //减去优惠券 |
| | | if (StringUtils.isNotBlank(memberCouponSJ.toString())) { |
| | |
| | | * @param userId |
| | | * @param shopId |
| | | * @param goodsName |
| | | * @param orderNo |
| | | * @param outTradeNo |
| | | * @param orderId |
| | | * @param payMoney |
| | | * @param openid |
| | |
| | | * @param goodsNameList |
| | | */ |
| | | public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId, |
| | | String goodsName, String orderNo, |
| | | String goodsName, String outTradeNo, |
| | | 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("获取微信商户号失败"); |
| | | } |
| | |
| | | String description = goodsName + "-商品购买"; |
| | | |
| | | request.setDescription(description); |
| | | request.setOutTradeNo(orderNo); |
| | | request.setOutTradeNo(outTradeNo); |
| | | 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); |
| | | |
| | |
| | | paymentMessageService.savePaymentMessage("1", orderId, payRequestJson, payResponseJson); |
| | | |
| | | // 保存支付订单统一下单支付记录 |
| | | orderPaymentService.saveOrderPayment(userId, shopId, subMchId, orderId, payMoney, |
| | | orderPaymentService.saveOrderPayment(userId, shopId, subMchId, orderId, outTradeNo, payMoney, |
| | | appPlaceOrderVo.getEndTime(), "Y", openid, |
| | | Joiner.on(";").join(goodsNameList), result.getPackageValue()); |
| | | |
| | | } catch (WxPayException e) { |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | |
| | | order.setOrderRemark(appPlaceActivityDto.getOrderRemark()); |
| | | order.setGoodsNum(goodsNum); |
| | | order.setCreateTime(new Date()); |
| | | if(appPlaceActivityDto.getNewMemberFlag()!=null&&appPlaceActivityDto.getNewMemberFlag()==1){ |
| | | order.setNewMemberFlag(1); |
| | | } |
| | | // 保存订单 |
| | | this.save(order); |
| | | // 更新用户商品类型 |
| | |
| | | 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){ |
| | | |
| | | String outTradeNo = IdUtils.simpleUUID(); |
| | | |
| | | // 保存订单 交易流水 |
| | | order.setOutTradeNo(outTradeNo); |
| | | this.saveOrUpdate(order); |
| | | |
| | | // 小程序微信下单支付 |
| | | createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo, |
| | | orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(), |
| | | appPlaceActivityDto.getSpbillCreateIp(), goodsNameList,2); |
| | | } |
| | | //生成活动参加记录 |
| | | ActivityRecord activityRecord = new ActivityRecord(); |
| | | activityRecord.setDelFlag(0); |
| | |
| | | @Override |
| | | public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { |
| | | Long shopId = merHomeShopTotalVo.getShopId(); |
| | | //获取今日到店 |
| | | Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); |
| | | //获取待处理订单和营业额 |
| | | merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); |
| | | //获取服务统计 |
| | | MerHomeShopTotalVo serviceTotalVo = orderMapper.getMerHomeShopServiceTotalVo(shopId); |
| | | merHomeShopTotalVo.setTodayShop(todayShop); |
| | | merHomeShopTotalVo.setCycleSurp(serviceTotalVo.getCycleSurp()); |
| | | merHomeShopTotalVo.setExplorationSurp(serviceTotalVo.getExplorationSurp()); |
| | | return merHomeShopTotalVo; |
| | | } |
| | | |
| | |
| | | // 调用remoteMemberService的getMember方法获取Member对象 |
| | | Member member = remoteMemberService.getMember(userId).getData(); |
| | | //如果是商户优惠券,验证商户一致 |
| | | if (memberCoupon.getCouponFrom() == 2 && !memberCoupon.getShopId().equals(shopId)) { |
| | | if (memberCoupon.getCouponFrom() == 2) { |
| | | if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR); |
| | | } |
| | | if(memberCoupon.getShopId().equals(shopId)){ |
| | | if(!memberCoupon.getShopId().equals(shopId)){ |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | } |
| | | //如果是平台优惠券,当用户绑定商户时验证商户一致 |
| | | if (memberCoupon.getCouponFrom() == 1 && member.getBindingFlag() == 1) { |
| | | if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ |
| | | /*if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ |
| | | throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR); |
| | | } |
| | | if(memberCoupon.getShopId().equals(shopId)){ |
| | | }*/ |
| | | //判断绑定商户是否和核销商户一致 |
| | | if(!member.getRelationShopId().equals(shopId)){ |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | } |
| | |
| | | } else { |
| | | order.setCloseFlag(0); |
| | | } |
| | | //保存订单和服务 |
| | | this.save(order); |
| | | orderGoodsService.saveBatch(orderGoodsList); |
| | | consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); |
| | | //减去优惠券 |
| | | if (StringUtils.isNotBlank(memberCouponSJ.toString())) { |
| | | remoteCouponService.useMemberCoupon(memberCouponSJ.toString()); |
| | | } |
| | | //用户未绑定则绑定商户 |
| | | Member member = remoteMemberService.getMember(userId).getData(); |
| | | if (member != null && member.getBindingFlag() != 1) { |
| | |
| | | appMemberBindingDto.setBindingFlag(1); |
| | | appMemberBindingDto.setBindingType(3); |
| | | remoteMemberService.updateMemberBinding(appMemberBindingDto); |
| | | order.setNewMemberFlag(1); |
| | | } |
| | | //保存订单和服务 |
| | | this.save(order); |
| | | orderGoodsService.saveBatch(orderGoodsList); |
| | | consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); |
| | | //减去优惠券 |
| | | if (StringUtils.isNotBlank(memberCouponSJ.toString())) { |
| | | remoteCouponService.useMemberCoupon(memberCouponSJ.toString()); |
| | | } |
| | | |
| | | //更新商户统计 |
| | | ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); |
| | | /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); |
| | | shopTotalChangeDto.setShopId(order.getShopId()); |
| | | shopTotalChangeDto.setOrderType(1); |
| | | shopTotalChangeDto.setCycleMoney(cycleMoney); |
| | | shopTotalChangeDto.setServiceMoney(serviceMoney); |
| | | shopTotalChangeDto.setExperienceMoney(experienceMoney); |
| | | shopTotalChangeDto.setGoodsMoney(goodsMoney); |
| | | remoteShopService.changeShopTotal(shopTotalChangeDto); |
| | | remoteShopService.changeShopTotal(shopTotalChangeDto);*/ |
| | | //创建支付记录 |
| | | PayRecord payRecord = new PayRecord(); |
| | | payRecord.setDelFlag(0); |
| | |
| | | */ |
| | | @Override |
| | | public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto) { |
| | | //获取人数统计 |
| | | MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto); |
| | | |
| | | //营业额 |
| | | BigDecimal salesTotal = orderMapper.shopSalesTotal(mgtBaseShopDto); |
| | | mgtTotalDataTotalVo.setSalesTotal(salesTotal); |
| | | MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto); |
| | | // 获取当月时间 |
| | | LocalDate currentDate = LocalDate.now(); |
| | | LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1); |
| | | LocalDate lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth()); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | | String firstDayOfMonthStr = firstDayOfMonth.format(formatter); |
| | | String lastDayOfMonthStr = lastDayOfMonth.format(formatter); |
| | | mgtBaseShopDto.setStartDate(firstDayOfMonthStr); |
| | | mgtBaseShopDto.setEndDate(lastDayOfMonthStr); |
| | | //总进店人数 体验人数 体验开单人数 没体验开单人数 |
| | | MgtTotalDataTotalVo mgtTotalDataMemberTotalVo = orderMapper.getTotalDataMemberTotal(mgtBaseShopDto); |
| | | mgtTotalDataTotalVo.setOnlyExperiencePerson(mgtTotalDataMemberTotalVo.getOnlyExperiencePerson()); |
| | | mgtTotalDataTotalVo.setExperienceCyclePerson(mgtTotalDataMemberTotalVo.getExperienceCyclePerson()); |
| | | mgtTotalDataTotalVo.setOnlyCyclePerson(mgtTotalDataMemberTotalVo.getOnlyCyclePerson()); |
| | | mgtTotalDataTotalVo.setOrderPerson(mgtTotalDataMemberTotalVo.getOrderPerson()); |
| | | //续单人数 |
| | | Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto); |
| | | mgtTotalDataTotalVo.setReorderPerson(reorderPerson); |
| | | //回头客 |
| | | Integer returnedPerson = orderMapper.getReturnedPerson(mgtBaseShopDto); |
| | | mgtTotalDataTotalVo.setSalesTotal(salesTotal); |
| | | mgtTotalDataTotalVo.setReorderPerson(reorderPerson); |
| | | mgtTotalDataTotalVo.setReturnedPerson(returnedPerson); |
| | | return mgtTotalDataTotalVo; |
| | | } |
| | |
| | | Long userId = verifyCouponGetVo.getUserId(); |
| | | Member member = remoteMemberService.getMember(userId).getData(); |
| | | //如果是商户优惠券,验证商户一致 |
| | | if (memberCoupon.getCouponFrom() == 2 && !memberCoupon.getShopId().equals(shopId)) { |
| | | if (memberCoupon.getCouponFrom() == 2) { |
| | | if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR); |
| | | } |
| | | if(memberCoupon.getShopId().equals(shopId)){ |
| | | if(!memberCoupon.getShopId().equals(shopId)){ |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | } |
| | | //如果是平台优惠券,当用户绑定商户时验证商户一致 |
| | | if (memberCoupon.getCouponFrom() == 1 && member.getBindingFlag() == 1) { |
| | | if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ |
| | | /*if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ |
| | | throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR); |
| | | } |
| | | if(memberCoupon.getShopId().equals(shopId)){ |
| | | }*/ |
| | | //判断绑定商户是否和核销商户一致 |
| | | if(!member.getRelationShopId().equals(shopId)){ |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | } |
| | |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | //线上线下活动订单 |
| | | MerOrderTotalVo orderTotalVo = orderMapper.getMerOrderTotalOrderFrom(merTotalDto); |
| | | //分类型订单 |
| | | MerOrderTotalVo goodsTypeVo = orderMapper.getMerTotalOrderTotalGoodsType(merTotalDto); |
| | | orderTotalVo.setCycleTotal(goodsTypeVo.getCycleTotal()); |
| | | orderTotalVo.setCycleMoney(goodsTypeVo.getCycleMoney()); |
| | |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | if(merTotalDto.getGoodsType()!=null&&merTotalDto.getGoodsType()==0){ |
| | | merTotalDto.setGoodsType(null); |
| | | } |
| | | MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); |
| | | // 获取订单年龄用户列表 |
| | |
| | | } |
| | | }*/ |
| | | 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); |
| | |
| | | orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst(); |
| | | orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond(); |
| | | } |
| | | orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue); |
| | | }else{ |
| | | orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); |
| | | orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); |
| | | orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); |
| | |
| | | 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); |
| | |
| | | List<MgtMapBigTotalVo> goodsRankList = orderMapper.listMerOrderTotalGoodsRank(merTotalDto); |
| | | if (goodsRankList != null && goodsRankList.size() > 0) { |
| | | goodsRankList = bigListRemoveNull(goodsRankList); |
| | | Collections.reverse(goodsRankList); |
| | | orderGoodsRankVo.setGoodsRankList(goodsRankList); |
| | | } |
| | | return orderGoodsRankVo; |
| | |
| | | List<MgtMapBigTotalVo> orderFromList = orderMapper.listMerOrderTotalOrderFrom(merTotalDto); |
| | | if (orderFromList != null && orderFromList.size() > 0) { |
| | | orderFromList = bigListRemoveNull(orderFromList); |
| | | Collections.reverse(orderFromList); |
| | | merOrderFromRankVo.setOrderFromRankList(orderFromList); |
| | | } |
| | | return merOrderFromRankVo; |
| | |
| | | @Override |
| | | @Transactional |
| | | public void payBack(PartnerTransactionsResult transaction) { |
| | | // 更新订单状态 |
| | | String orderId = transaction.getOutTradeNo(); |
| | | Order order = this.getById(orderId); |
| | | |
| | | // Order order = this.getById(orderId); |
| | | // 更新订单状态 订单编号,就是 微信outTradeNo |
| | | String orderNo = transaction.getOutTradeNo(); |
| | | Order order = this.getByOrderNo(orderNo); |
| | | String orderId = order.getOrderId(); |
| | | order.setOrderStatus(2); |
| | | order.setPayTime(new Date()); |
| | | this.saveOrUpdate(order); |
| | |
| | | //更新商品统计 |
| | | remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList); |
| | | // 更新商户统计信息 |
| | | ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); |
| | | /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); |
| | | shopTotalChangeDto.setShopId(order.getShopId()); |
| | | shopTotalChangeDto.setOrderType(1); |
| | | shopTotalChangeDto.setCycleMoney(cycleMoney); |
| | | shopTotalChangeDto.setServiceMoney(serviceMoney); |
| | | shopTotalChangeDto.setExperienceMoney(experienceMoney); |
| | | shopTotalChangeDto.setGoodsMoney(goodsMoney); |
| | | remoteShopService.changeShopTotal(shopTotalChangeDto); |
| | | remoteShopService.changeShopTotal(shopTotalChangeDto);*/ |
| | | // 初始化会员统计信息 |
| | | MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); |
| | | memberTotalChangeDto.setUserId(order.getUserId()); |
| | |
| | | request.setTransactionId(transaction.getTransactionId()); |
| | | profitsSharingService.applyProfitSharing(request);*/ |
| | | } |
| | | //生成支付记录 |
| | | OrderPayment orderPayment = new OrderPayment(); |
| | | //修改支付记录生成支付记录 |
| | | orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), transaction.getTransactionId()); |
| | | |
| | | PayRecord payRecord = new PayRecord(); |
| | | payRecord.setDelFlag(0); |
| | | payRecord.setOrderId(orderId); |
| | |
| | | payRecord.setPayTime(order.getPayTime()); |
| | | payRecord.setPayType(1); |
| | | payRecordService.save(payRecord); |
| | | } |
| | | |
| | | @Override |
| | | public Order getByOrderNo(String orderNo) { |
| | | LambdaQueryWrapper<Order> queryWrapper = Wrappers.lambdaQuery(); |
| | | queryWrapper.eq(Order::getOrderNo, orderNo) |
| | | .last(" limit 1 "); |
| | | return this.getOne(queryWrapper); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | } |
| | | // 更新商户统计信息 |
| | | ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); |
| | | /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); |
| | | shopTotalChangeDto.setOrderType(2); |
| | | shopTotalChangeDto.setShopId(order.getShopId()); |
| | | shopTotalChangeDto.setCycleMoney(cycleMoney); |
| | | shopTotalChangeDto.setServiceMoney(serviceMoney); |
| | | shopTotalChangeDto.setExperienceMoney(experienceMoney); |
| | | shopTotalChangeDto.setGoodsMoney(goodsMoney); |
| | | remoteShopService.changeShopTotal(shopTotalChangeDto); |
| | | remoteShopService.changeShopTotal(shopTotalChangeDto);*/ |
| | | // 初始化会员统计信息 |
| | | MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); |
| | | memberTotalChangeDto.setUserId(order.getUserId()); |
| | |
| | | BigDecimal onlinePayMoney = order.getOnlinePayMoney(); |
| | | if(BigDecimal.ZERO.compareTo(onlinePayMoney) < 0){ |
| | | // 订单支付金额大于0,可发起退款 |
| | | //orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund); |
| | | orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund); |
| | | } |
| | | |
| | | orderRefund.setRefundStatus(1); |
| | |
| | | /** |
| | | * 申请退款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); |
| | |
| | | } catch (WxPayException e) { |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | | }*/ |
| | | } |
| | | |
| | | /** |
| | | * @param staffTotalDto |
| | |
| | | */ |
| | | @Override |
| | | public StaffActivityOrderTotalVo getStaffActivityOrderTotal(StaffTotalDto staffTotalDto) { |
| | | StaffActivityOrderTotalVo staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto); |
| | | StaffActivityOrderTotalVo staffActivityOrderTotalVo = new StaffActivityOrderTotalVo(); |
| | | if(staffTotalDto.getActivityFrom()==1){ |
| | | staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto); |
| | | StaffActivityOrderTotalVo staffActivityOrderGoodsTotalVo = orderMapper.getStaffActivityOrderGoodsTotal(staffTotalDto); |
| | | staffActivityOrderTotalVo.setCycleTotal(staffActivityOrderGoodsTotalVo.getCycleTotal()); |
| | | staffActivityOrderTotalVo.setServiceTotal(staffActivityOrderGoodsTotalVo.getServiceTotal()); |
| | | staffActivityOrderTotalVo.setExperienceTotal(staffActivityOrderGoodsTotalVo.getExperienceTotal()); |
| | | } |
| | | return staffActivityOrderTotalVo; |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public StaffActivityTotalVo getStaffActivityTotal(StaffTotalDto staffTotalDto) { |
| | | StaffActivityTotalVo staffActivityTotalVo = orderMapper.getStaffActivityTotal(staffTotalDto); |
| | | StaffActivityTotalVo staffActivityTotalVo = new StaffActivityTotalVo(); |
| | | if(staffTotalDto.getActivityFrom()==1){ |
| | | staffActivityTotalVo = orderMapper.getStaffActivityTotal(staffTotalDto); |
| | | } |
| | | return staffActivityTotalVo; |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public MerOrderDistributionTotalVo getStaffOrderDistributionTotal(StaffTotalDto staffTotalDto) { |
| | | if(staffTotalDto.getGoodsType()!=null&&staffTotalDto.getGoodsType()==0){ |
| | | staffTotalDto.setGoodsType(null); |
| | | } |
| | | MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); |
| | | // 获取订单年龄用户列表 |
| | | MerTotalDto merTotalDto = new MerTotalDto(); |
| | | merTotalDto.setShopId(staffTotalDto.getShopId()); |
| | | List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData(); |
| | | //MerTotalDto merTotalDto = new MerTotalDto(); |
| | | //merTotalDto.setShopId(staffTotalDto.getShopId()); |
| | | //List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData(); |
| | | // 如果订单年龄用户列表不为空 |
| | | if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) { |
| | | /*if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) { |
| | | // 定义变量 |
| | | Integer ageType; |
| | | List<Long> userIdList; |
| | |
| | | orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); |
| | | orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); |
| | | orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); |
| | | }*/ |
| | | 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()) { |
| | | MgtMapTotalPlusVo mgtMapTotalPlusVo; |
| | | for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) { |
| | | mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i); |
| | | orderTotalKey[i] = mgtMapTotalPlusVo.getMapKey(); |
| | | orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst(); |
| | | orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond(); |
| | | } |
| | | orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue); |
| | | }else{ |
| | | orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); |
| | | orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); |
| | | orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); |
| | | } |
| | | } |
| | | // 返回订单分布总数对象 |
| | | return orderDistributionTotalVo; |
| | | } |
| | | |
| | | public MerOrderDistributionTotalVo fillOrderTotalKeyAndValuesToRecentFiveDays(String[] orderTotalKey,Integer[] orderTotalValue,BigDecimal[] orderMoneyValue) { |
| | | MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); |
| | | // 获取当前日期 |
| | | LocalDate currentDate = LocalDate.now(); |
| | | |
| | | // 创建最近五天日期列表 |
| | | List<String> recentFiveDays = new ArrayList<>(); |
| | | for (int i = 0; i < 5; i++) { |
| | | LocalDate date = currentDate.minusDays(i); |
| | | recentFiveDays.add(date.toString()); |
| | | } |
| | | |
| | | // 创建新的数组 |
| | | String[] newOrderTotalKey = new String[5]; |
| | | Integer[] newOrderTotalValue = new Integer[5]; |
| | | BigDecimal[] newOrderMoneyValue = new BigDecimal[5]; |
| | | |
| | | // 遍历最近五天日期列表,并补充数据 |
| | | for (int i = 0; i < 5; i++) { |
| | | String day = recentFiveDays.get(i); |
| | | int index = getIndexInOrderTotalKey(day,orderTotalKey); |
| | | if (index != -1) { |
| | | newOrderTotalKey[i] = orderTotalKey[index]; |
| | | newOrderTotalValue[i] = orderTotalValue[index]; |
| | | newOrderMoneyValue[i] = orderMoneyValue[index]; |
| | | } else { |
| | | newOrderTotalKey[i] = day; |
| | | newOrderTotalValue[i] = 0; |
| | | newOrderMoneyValue[i] = BigDecimal.ZERO; |
| | | } |
| | | } |
| | | |
| | | // 更新属性 |
| | | orderTotalKey = newOrderTotalKey; |
| | | orderTotalValue = newOrderTotalValue; |
| | | orderMoneyValue = newOrderMoneyValue; |
| | | orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); |
| | | orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); |
| | | orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); |
| | | return orderDistributionTotalVo; |
| | | } |
| | | |
| | | private int getIndexInOrderTotalKey(String day,String[] orderTotalKey) { |
| | | for (int i = 0; i < orderTotalKey.length; i++) { |
| | | if (orderTotalKey[i].equals(day)) { |
| | | return i; |
| | | } |
| | | } |
| | | return -1; |
| | | } |
| | | |
| | | |
| | |
| | | @Override |
| | | public MerOrderTypeTotalVo getStaffOrderTypeTotal(StaffTotalDto staffTotalDto) { |
| | | MerOrderTypeTotalVo orderTypeTotalVo = new MerOrderTypeTotalVo(); |
| | | //获取商品分类销售数据 |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listStaffOrderTotalGoodsType(staffTotalDto); |
| | | List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); |
| | | List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); |
| | | if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { |
| | | MgtMapIntTotalVo MgtMapIntTotalVo; |
| | | MgtMapBigTotalVo mgtMapBigTotalVo; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { |
| | | MgtMapIntTotalVo = new MgtMapIntTotalVo(); |
| | | mgtMapBigTotalVo = new MgtMapBigTotalVo(); |
| | | MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { |
| | | MgtMapIntTotalVo.setMapKey("周期"); |
| | | mgtMapBigTotalVo.setMapKey("周期"); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { |
| | | MgtMapIntTotalVo.setMapKey("服务"); |
| | | mgtMapBigTotalVo.setMapKey("服务"); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { |
| | | MgtMapIntTotalVo.setMapKey("体验"); |
| | | mgtMapBigTotalVo.setMapKey("体验"); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { |
| | | MgtMapIntTotalVo.setMapKey("单品"); |
| | | mgtMapBigTotalVo.setMapKey("单品"); |
| | | if(staffTotalDto.getActivityFrom()==1){ |
| | | //获取商品分类销售数据 |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listStaffOrderTotalGoodsType(staffTotalDto); |
| | | List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); |
| | | List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); |
| | | if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { |
| | | MgtMapIntTotalVo mgtMapIntTotalVo; |
| | | MgtMapBigTotalVo mgtMapBigTotalVo; |
| | | Integer intTotal = 0; |
| | | BigDecimal bigTotal = BigDecimal.ZERO; |
| | | for(MgtMapTotalPlusVo mgtMapTotalPlusVo : MgtMapIntTotalVoGoodsType){ |
| | | intTotal = intTotal + mgtMapTotalPlusVo.getMapValueFirst(); |
| | | bigTotal = bigTotal.add(mgtMapTotalPlusVo.getMapValueSecond()); |
| | | } |
| | | goodsTypeTotalList.add(MgtMapIntTotalVo); |
| | | goodsTypeMoneyList.add(mgtMapBigTotalVo); |
| | | 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(); |
| | | mgtMapBigTotalVo = new MgtMapBigTotalVo(); |
| | | 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("周期"); |
| | | mgtMapBigTotalVo.setMapKey("周期"); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { |
| | | mgtMapIntTotalVo.setMapKey("服务"); |
| | | mgtMapBigTotalVo.setMapKey("服务"); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { |
| | | mgtMapIntTotalVo.setMapKey("体验"); |
| | | mgtMapBigTotalVo.setMapKey("体验"); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { |
| | | mgtMapIntTotalVo.setMapKey("单品"); |
| | | mgtMapBigTotalVo.setMapKey("单品"); |
| | | } |
| | | goodsTypeTotalList.add(mgtMapIntTotalVo); |
| | | goodsTypeMoneyList.add(mgtMapBigTotalVo); |
| | | } |
| | | orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | return orderTypeTotalVo; |
| | | } |
| | |
| | | public StaffActivityDateMemberTotalVo getStaffActivityGetMemberTotal(StaffTotalDto staffTotalDto) { |
| | | // 创建返回对象 |
| | | StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo(); |
| | | // 查询数据库获取数据 |
| | | List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityGetMemberTotal(staffTotalDto); |
| | | // 将查询结果转为Map |
| | | Map<String, Integer> map = new HashMap<>(); |
| | | if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) { |
| | | map = mgtMapIntTotalVoList.stream() |
| | | .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); |
| | | if(staffTotalDto.getActivityFrom()==1){ |
| | | // 查询数据库获取数据 |
| | | List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityGetMemberTotal(staffTotalDto); |
| | | // 将查询结果转为Map |
| | | Map<String, Integer> map = new HashMap<>(); |
| | | if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) { |
| | | map = mgtMapIntTotalVoList.stream() |
| | | .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); |
| | | } |
| | | // 获取日期范围 |
| | | List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate()); |
| | | int size = dateList.size(); |
| | | // 创建日期和成员总数的数组 |
| | | String[] dateMemberTotalKey = new String[size]; |
| | | Integer[] dateMemberTotalValue = new Integer[size]; |
| | | // 遍历日期列表,设置日期和成员总数的数组 |
| | | String str; |
| | | Integer value; |
| | | for (int i = 0; i < size; i++) { |
| | | str = dateList.get(i); |
| | | dateMemberTotalKey[i] = str; |
| | | value = map.get(str); |
| | | dateMemberTotalValue[i] = (value != null) ? value : 0; |
| | | } |
| | | // 设置返回对象的日期和成员总数数组 |
| | | staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey); |
| | | staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue); |
| | | } |
| | | // 获取日期范围 |
| | | List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate()); |
| | | int size = dateList.size(); |
| | | // 创建日期和成员总数的数组 |
| | | String[] dateMemberTotalKey = new String[size]; |
| | | Integer[] dateMemberTotalValue = new Integer[size]; |
| | | // 遍历日期列表,设置日期和成员总数的数组 |
| | | String str; |
| | | Integer value; |
| | | for (int i = 0; i < size; i++) { |
| | | str = dateList.get(i); |
| | | dateMemberTotalKey[i] = str; |
| | | value = map.get(str); |
| | | dateMemberTotalValue[i] = (value != null) ? value : 0; |
| | | } |
| | | // 设置返回对象的日期和成员总数数组 |
| | | staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey); |
| | | staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue); |
| | | // 返回结果对象 |
| | | return staffActivityDateMemberTotalVo; |
| | | } |
| | |
| | | public StaffActivityDateMemberTotalVo getStaffActivityMemberTotal(StaffTotalDto staffTotalDto) { |
| | | // 创建返回对象 |
| | | StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo(); |
| | | // 查询数据库获取数据 |
| | | List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityMemberTotal(staffTotalDto); |
| | | // 将查询结果转为Map |
| | | Map<String, Integer> map = new HashMap<>(); |
| | | if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) { |
| | | map = mgtMapIntTotalVoList.stream() |
| | | .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); |
| | | if(staffTotalDto.getActivityFrom()==1){ |
| | | MerTotalDto merTotalDto = new MerTotalDto(); |
| | | merTotalDto.setAgeType(staffTotalDto.getAgeType()); |
| | | if(staffTotalDto.getAgeType()!=null){ |
| | | List<Long> userIdList = remoteMemberService.listUserIdByAgeType(staffTotalDto.getAgeType()).getData(); |
| | | staffTotalDto.setUserIdList(userIdList); |
| | | } |
| | | // 查询数据库获取数据 |
| | | List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityMemberTotal(staffTotalDto); |
| | | // 将查询结果转为Map |
| | | Map<String, Integer> map = new HashMap<>(); |
| | | if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) { |
| | | map = mgtMapIntTotalVoList.stream() |
| | | .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); |
| | | } |
| | | // 获取日期范围 |
| | | List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate()); |
| | | int size = dateList.size(); |
| | | // 创建日期和成员总数的数组 |
| | | String[] dateMemberTotalKey = new String[size]; |
| | | Integer[] dateMemberTotalValue = new Integer[size]; |
| | | // 遍历日期列表,设置日期和成员总数的数组 |
| | | String str; |
| | | Integer value; |
| | | for (int i = 0; i < size; i++) { |
| | | str = dateList.get(i); |
| | | dateMemberTotalKey[i] = str; |
| | | value = map.get(str); |
| | | dateMemberTotalValue[i] = (value != null) ? value : 0; |
| | | } |
| | | // 设置返回对象的日期和成员总数数组 |
| | | staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey); |
| | | staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue); |
| | | } |
| | | // 获取日期范围 |
| | | List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate()); |
| | | int size = dateList.size(); |
| | | // 创建日期和成员总数的数组 |
| | | String[] dateMemberTotalKey = new String[size]; |
| | | Integer[] dateMemberTotalValue = new Integer[size]; |
| | | // 遍历日期列表,设置日期和成员总数的数组 |
| | | String str; |
| | | Integer value; |
| | | for (int i = 0; i < size; i++) { |
| | | str = dateList.get(i); |
| | | dateMemberTotalKey[i] = str; |
| | | value = map.get(str); |
| | | dateMemberTotalValue[i] = (value != null) ? value : 0; |
| | | } |
| | | // 设置返回对象的日期和成员总数数组 |
| | | staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey); |
| | | staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue); |
| | | // 返回结果对象 |
| | | return staffActivityDateMemberTotalVo; |
| | | } |
| | |
| | | orderFromDesc = "商城订单"; |
| | | } |
| | | merOrderPageVo.setOrderFromDesc(orderFromDesc); |
| | | merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney())); |
| | | if (merOrderPageVo.getUnPaidMoney() == null) { |
| | | merOrderPageVo.setUnPaidMoney(zeroBig); |
| | | } |
| | | if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){ |
| | | merOrderPageVo.setUnPaidMoney(zeroBig); |
| | | } |
| | |
| | | } |
| | | return merOrderPageVoList; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取销售排行 |
| | | * @author jqs |
| | | * @date 2023/8/24 18:00 |
| | | * @param shopIdList |
| | | * @return List<MgtMapIntTotalVo> |
| | | */ |
| | | @Override |
| | | public List<MgtMapBigTotalVo> shopSalesRank(List<Long> shopIdList){ |
| | | return orderMapper.shopSalesRank(shopIdList); |
| | | } |
| | | |
| | | /** |
| | | * @description 获取商户服务统计 |
| | | * @author jqs |
| | | * @date 2023/8/24 18:28 |
| | | * @param shopId |
| | | * @return MerHomeShopTotalVo |
| | | */ |
| | | @Override |
| | | public MerHomeShopTotalVo getShopServiceTotal(Long shopId){ |
| | | 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; |
| | | } |
| | | } |