From f2f07f9c707dc4793c42c90c4039b41a59c3d0f2 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 26 六月 2023 19:51:23 +0800 Subject: [PATCH] 商户端和管理台联调bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 1760 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,757 insertions(+), 3 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 db89aa6..1076ec6 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 @@ -1,10 +1,43 @@ package com.ruoyi.order.service.impl.order; -import com.ruoyi.system.domain.pojo.order.Order; -import com.ruoyi.system.mapper.order.OrderMapper; -import com.ruoyi.system.service.order.OrderService; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.uuid.IdUtils; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.order.domain.dto.*; +import com.ruoyi.order.domain.pojo.order.ConsumerGoods; +import com.ruoyi.order.domain.pojo.order.Order; +import com.ruoyi.order.domain.pojo.order.OrderGoods; +import com.ruoyi.order.domain.vo.*; +import com.ruoyi.order.service.order.ConsumerGoodsService; +import com.ruoyi.order.service.order.OrderGoodsService; +import com.ruoyi.common.security.utils.CodeFactoryUtil; +import com.ruoyi.order.service.order.UserServiceRecordService; +import com.ruoyi.system.api.domain.dto.*; +import com.ruoyi.system.api.domain.vo.*; +import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.service.*; +import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.poji.goods.Goods; +import com.ruoyi.system.api.domain.poji.goods.GoodsFile; +import com.ruoyi.system.api.domain.poji.goods.ShopGoods; +import com.ruoyi.system.api.domain.poji.member.Member; +import com.ruoyi.system.api.domain.poji.shop.Shop; +import com.ruoyi.system.api.domain.poji.sys.SysUser; +import com.ruoyi.order.mapper.order.OrderMapper; +import com.ruoyi.order.service.order.OrderService; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +50,1725 @@ @Service public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService { + @Resource + private OrderMapper orderMapper; + + @Resource + private RemoteMemberService remoteMemberService; + + @Resource + private OrderGoodsService orderGoodsService; + + @Resource + private RemoteShopService remoteShopService; + + @Resource + private RemoteUserService remoteUserService; + + @Resource + private ConsumerGoodsService consumerGoodsService; + + @Resource + private RemoteGoodsService remoteGoodsService; + + @Resource + private RemoteShoppingCartService remoteShoppingCartService; + + @Resource + private RemoteConfigService remoteConfigService; + + @Resource + private UserServiceRecordService userServiceRecordService; + + + + /** + * @description: buyGoods + * @param: appSureOrderDto + * @return: AppSureOrderVo + * @author jqs34 + * @date: 2023/5/3 0:07 + */ + @Override + public AppSureOrderVo buyGoods(AppSureOrderDto appSureOrderDto) { + Long userId = appSureOrderDto.getUserId(); + AppSureOrderVo appSureOrderVo = new AppSureOrderVo(); + List<AppSureOrderGoodsVo> appSureOrderGoodsVoList = new ArrayList<>(); + AppSureOrderGoodsVo appSureOrderGoodsVo; + List<AppBuyGoodsDto> appBuyGoodsDtoList = appSureOrderDto.getAppBuyGoodsDtoList(); + String goodsId; + Integer buyNum; + BigDecimal buyNumBig; + String memberCouponId; + Goods goods; + BigDecimal goodsPrice; + BigDecimal goodsTotalPrice; + BigDecimal goodsRealPrice; + List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); + List<AppMemberCouponVo> appGoodsMemberCouponVoList; + Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); + AppMemberCouponVo appMemberCouponVo; + Integer couponType; + BigDecimal moneyThreshold; + BigDecimal discountMoney = new BigDecimal("0.00"); + BigDecimal discountPercent; + BigDecimal goodsDeposit; + GoodsFile goodsFile; + Integer useCoupon; + BigDecimal orderGoodsMoney = new BigDecimal("0.00"); + BigDecimal couponDiscount = new BigDecimal("0.00"); + BigDecimal orderPayDeposit = new BigDecimal("0.00"); + BigDecimal orderPayMoney = new BigDecimal("0.00"); + for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { + appSureOrderGoodsVo = new AppSureOrderGoodsVo(); + useCoupon = 0; + goodsId = appBuyGoodsDto.getGoodsId(); + buyNum = appBuyGoodsDto.getBuyNum(); + memberCouponId = appBuyGoodsDto.getMemberCouponId(); + goods = remoteGoodsService.getGoods(goodsId).getData(); + appSureOrderGoodsVo.setGoodsId(goodsId); + appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); + appSureOrderGoodsVo.setGoodsIntroduction(goods.getGoodsIntroduction()); + appSureOrderGoodsVo.setGoodsType(goods.getGoodsType()); + //商品图片 + goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); + appSureOrderGoodsVo.setGoodsPicture(goodsFile.getFileUrl()); + buyNum = appBuyGoodsDto.getBuyNum(); + appSureOrderGoodsVo.setBuyNum(buyNum); + goodsPrice = goods.getSalesPrice(); + //商户定制价格 + AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); + appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); + appShopGoodsGetDto.setShopId(appSureOrderDto.getShopId()); + ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); + if (shopGoods != null) { + goodsPrice = shopGoods.getSalesPrice(); + } + appSureOrderGoodsVo.setGoodsPrice(goodsPrice); + buyNumBig = BigDecimal.valueOf(buyNum); + goodsTotalPrice = goodsPrice.multiply(buyNumBig); + goodsRealPrice = goodsTotalPrice; + if (memberCouponId != null) { + appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); + if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { + couponType = appMemberCouponVo.getCouponType(); + if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) { + moneyThreshold = appMemberCouponVo.getMoneyThreshold(); + if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { + discountMoney = appMemberCouponVo.getDiscountMoney(); + goodsRealPrice = goodsTotalPrice.subtract(discountMoney); + useCoupon = 1; + } + } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { + discountPercent = appMemberCouponVo.getDiscountPercent(); + goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP); + discountMoney = goodsRealPrice.subtract(goodsTotalPrice); + useCoupon = 1; + } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { + discountMoney = appMemberCouponVo.getDiscountMoney(); + goodsRealPrice = goodsTotalPrice.subtract(discountMoney); + useCoupon = 1; + } + } + } + appSureOrderGoodsVo.setUseCoupon(useCoupon); + appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); + appSureOrderGoodsVo.setCouponDiscount(discountMoney); + appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); + goodsDeposit = goods.getSubscription(); + if (goodsDeposit == null) { + goodsDeposit = new BigDecimal("0.00"); + } + appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); + orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); + couponDiscount = couponDiscount.add(discountMoney); + orderPayDeposit = orderPayDeposit.add(goodsDeposit); + orderPayMoney = orderPayMoney.add(goodsRealPrice); + //商品关联优惠券 + appGoodsMemberCouponVoList = new ArrayList<>(); + if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) { + for (AppMemberCouponVo entity : appMemberCouponVoList) { + if (StringUtils.isBlank(entity.getRelGoodsIds())) { + appGoodsMemberCouponVoList.add(entity); + } else if (entity.getRelGoodsIds().contains(goodsId)) { + appGoodsMemberCouponVoList.add(entity); + } + } + appSureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList); + } + appSureOrderGoodsVoList.add(appSureOrderGoodsVo); + } + appSureOrderVo.setOrderGoodsMoney(orderGoodsMoney); + appSureOrderVo.setCouponDiscount(couponDiscount); + appSureOrderVo.setOrderPayDeposit(orderPayDeposit); + appSureOrderVo.setOrderPayMoney(orderPayMoney); + appSureOrderVo.setAppSureOrderGoodsVoList(appSureOrderGoodsVoList); + return appSureOrderVo; + } + + /** + * 创建订单 + * + * @param appPlaceOrderDto + * @return + */ + @Override + public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) { + Long userId = appPlaceOrderDto.getUserId(); + AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo(); + List<AppSureOrderGoodsVo> appSureOrderGoodsVoList = new ArrayList<>(); + AppSureOrderGoodsVo appSureOrderGoodsVo; + List<AppBuyGoodsDto> appBuyGoodsDtoList = appPlaceOrderDto.getAppBuyGoodsDtoList(); + String goodsId; + Integer buyNum; + BigDecimal buyNumBig; + Integer serviceNum; + Integer goodsNum = 0; + String memberCouponId; + Goods goods; + BigDecimal goodsPrice; + BigDecimal goodsTotalPrice; + BigDecimal goodsRealPrice; + List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); + Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); + AppMemberCouponVo appMemberCouponVo; + Integer couponType; + BigDecimal moneyThreshold; + BigDecimal discountMoney = new BigDecimal("0.00"); + BigDecimal discountPercent; + BigDecimal goodsDeposit; + GoodsFile goodsFile; + Integer useCoupon; + BigDecimal orderGoodsMoney = new BigDecimal("0.00"); + BigDecimal couponDiscount = new BigDecimal("0.00"); + BigDecimal orderPayDeposit = new BigDecimal("0.00"); + BigDecimal orderPayMoney = new BigDecimal("0.00"); + String orderId = IdUtils.simpleUUID(); + String orderNo = CodeFactoryUtil.getShopOrderNo(); + OrderGoods orderGoods; + String orderGoodsId; + HashSet<String> goodsTypeSet = new HashSet<>(); + for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { + appSureOrderGoodsVo = new AppSureOrderGoodsVo(); + useCoupon = 0; + goodsId = appBuyGoodsDto.getGoodsId(); + memberCouponId = appBuyGoodsDto.getMemberCouponId(); + goods = remoteGoodsService.getGoods(goodsId).getData(); + appSureOrderGoodsVo.setGoodsId(goodsId); + appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); + appSureOrderGoodsVo.setGoodsIntroduction(goods.getGoodsIntroduction()); + appSureOrderGoodsVo.setGoodsType(goods.getGoodsType()); + //商品图片 + goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); + appSureOrderGoodsVo.setGoodsPicture(goodsFile.getFileUrl()); + buyNum = appBuyGoodsDto.getBuyNum(); + appSureOrderGoodsVo.setBuyNum(buyNum); + goodsPrice = goods.getSalesPrice(); + serviceNum = goods.getServiceNum(); + //商户定制价格 + AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); + appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); + appShopGoodsGetDto.setShopId(appPlaceOrderDto.getShopId()); + ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); + if (shopGoods != null) { + goodsPrice = shopGoods.getSalesPrice(); + serviceNum = shopGoods.getServiceNum(); + } + appSureOrderGoodsVo.setGoodsPrice(goodsPrice); + buyNumBig = BigDecimal.valueOf(buyNum); + goodsTotalPrice = goodsPrice.multiply(buyNumBig); + goodsRealPrice = goodsTotalPrice; + if (memberCouponId != null) { + appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); + if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { + couponType = appMemberCouponVo.getCouponType(); + if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) { + moneyThreshold = appMemberCouponVo.getMoneyThreshold(); + if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { + discountMoney = appMemberCouponVo.getDiscountMoney(); + goodsRealPrice = goodsTotalPrice.subtract(discountMoney); + useCoupon = 1; + } + } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { + discountPercent = appMemberCouponVo.getDiscountPercent(); + goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP); + discountMoney = goodsRealPrice.subtract(goodsTotalPrice); + useCoupon = 1; + } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { + discountMoney = appMemberCouponVo.getDiscountMoney(); + goodsRealPrice = goodsTotalPrice.subtract(discountMoney); + useCoupon = 1; + } + } + } + appSureOrderGoodsVo.setUseCoupon(useCoupon); + appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); + appSureOrderGoodsVo.setCouponDiscount(discountMoney); + appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); + goodsDeposit = goods.getSubscription(); + if (goodsDeposit == null) { + goodsDeposit = new BigDecimal("0.00"); + } + appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); + goodsNum = goodsNum + buyNum; + orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); + couponDiscount = couponDiscount.add(discountMoney); + orderPayDeposit = orderPayDeposit.add(goodsDeposit); + orderPayMoney = orderPayMoney.add(goodsRealPrice); + //创建OrderGoods + orderGoods = new OrderGoods(); + orderGoodsId = IdUtils.simpleUUID(); + orderGoods.setOrderGoodsId(orderGoodsId); + orderGoods.setDelFlag(0); + orderGoods.setOrderId(orderId); + orderGoods.setGoodsId(goodsId); + orderGoods.setBuyNum(buyNum); + if (memberCouponId != null) { + orderGoods.setCouponId(memberCouponId.toString()); + } + orderGoods.setGoodsPrice(goodsPrice); + orderGoods.setGoodsTotalMoney(orderGoodsMoney); + orderGoods.setGoodsReceivableMoney(goodsRealPrice); + orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); + orderGoods.setServiceNum(serviceNum); + orderGoods.setGoodsType(goods.getGoodsType()); + orderGoodsService.save(orderGoods); + //清空购物车 + AppShoppingCartDelDto appShoppingCartDelDto = new AppShoppingCartDelDto(); + appShoppingCartDelDto.setGoodsId(goodsId); + appShoppingCartDelDto.setUserId(userId); + remoteShoppingCartService.deleteShoppingCart(appShoppingCartDelDto); + if (goods.getGoodsType() == 1) { + goodsTypeSet.add("周期"); + } else if (goods.getGoodsType() == 2) { + goodsTypeSet.add("服务"); + } else if (goods.getGoodsType() == 3) { + goodsTypeSet.add("体验"); + } else if (goods.getGoodsType() == 4) { + goodsTypeSet.add("单品"); + } + } + Order order = new Order(); + order.setOrderId(orderId); + order.setDelFlag(0); + //为对接支付 直接付款成功 + order.setOrderStatus(2); + order.setOrderNo(orderNo); + order.setOrderFrom(1); + order.setShopId(appPlaceOrderDto.getShopId()); + order.setUserId(userId); + order.setOrderMoney(orderGoodsMoney); + order.setCouponMoney(couponDiscount); + order.setDiscountMoney(couponDiscount); + order.setReceivableMoney(orderPayMoney); + order.setReceivableDeposit(orderPayDeposit); + order.setPayType(appPlaceOrderDto.getPayType()); + if (order.getPayType() == 1) { + order.setPayMoney(orderPayMoney); + order.setOnlinePayMoney(orderPayMoney); + appPlaceOrderVo.setPayMoney(orderPayMoney); + appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); + order.setCloseFlag(1); + } else if (order.getPayType() == 2) { + order.setPayMoney(orderPayDeposit); + order.setOnlinePayMoney(orderPayDeposit); + appPlaceOrderVo.setPayMoney(orderPayDeposit); + appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); + order.setCloseFlag(0); + } + order.setOrderRemark(appPlaceOrderDto.getOrderRemark()); + order.setGoodsNum(goodsNum); + order.setCreateTime(new Date()); + this.save(order); + //更新用户商品类型 + if (goodsTypeSet != null && goodsTypeSet.size() > 0) { + AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto(); + appMemberGoodsTypeDto.setUserId(userId); + appMemberGoodsTypeDto.setGoodsTypeSet(goodsTypeSet); + remoteMemberService.updateMemberGoodsType(appMemberGoodsTypeDto); + } + appPlaceOrderVo.setOrderId(orderId); + appPlaceOrderVo.setOrderNo(orderNo); + + //调用支付 + + + return appPlaceOrderVo; + } + + /** + * 分页获取用户订单 + * + * @param page + * @param appUserOrderPageDto + * @return + */ + @Override + public List<AppUserOrderPageVo> pageUserOrder(Page page, AppUserOrderPageDto appUserOrderPageDto) { + List<AppUserOrderPageVo> appUserOrderPageVoList = orderMapper.pageUserOrder(page, appUserOrderPageDto); + if (appUserOrderPageVoList != null && !appUserOrderPageVoList.isEmpty()) { + Long shopId; + Shop shop; + HashSet<Long> set = new HashSet<Long>(); + for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) { + shopId = appUserOrderPageVo.getShopId(); + set.add(shopId); + } + Map<Long, Shop> shopMap = new HashMap<>(); + set.forEach(shopIdLong -> { + Shop shopTemp = remoteShopService.getShop(shopIdLong).getData(); + shopMap.put(shopIdLong, shopTemp); + }); + for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) { + shop = shopMap.get(appUserOrderPageVo.getShopId()); + appUserOrderPageVo.setShopName(shop.getShopName()); + appUserOrderPageVo.setShopServicePhone(shop.getShopServicePhone()); + if (appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())) { + appUserOrderPageVo.setSameShop(1); + } else { + appUserOrderPageVo.setSameShop(0); + } + appUserOrderPageVo.setVerifyCode("1-" + appUserOrderPageVo.getOrderId()); + } + } + return appUserOrderPageVoList; + } + + + /** + * @param appBaseGetDto + * @return + */ + @Override + public AppUserOrderGetVo getAppOrderDetail(AppBaseGetDto appBaseGetDto) { + String orderId = appBaseGetDto.getId(); + Order order = this.getById(orderId); + List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); + AppUserOrderGetVo appUserOrderGetVo = new AppUserOrderGetVo(); + appUserOrderGetVo.setOrderId(orderId); + appUserOrderGetVo.setOrderNo(order.getOrderNo()); + appUserOrderGetVo.setOrderStatus(order.getOrderStatus()); + appUserOrderGetVo.setOrderFrom(order.getOrderFrom()); + appUserOrderGetVo.setOrderGoodsMoney(order.getOrderMoney()); + appUserOrderGetVo.setCouponDiscount(order.getCouponMoney()); + appUserOrderGetVo.setReceivableDeposit(order.getReceivableDeposit()); + appUserOrderGetVo.setReceivableMoney(order.getReceivableMoney()); + appUserOrderGetVo.setPayMoney(order.getPayMoney()); + appUserOrderGetVo.setOrderRemark(order.getOrderRemark()); + appUserOrderGetVo.setShopId(order.getShopId()); + appUserOrderGetVo.setCreateTime(order.getCreateTime()); + appUserOrderGetVo.setPayTime(order.getCreateTime()); + appUserOrderGetVo.setUseTime(order.getUseTime()); + appUserOrderGetVo.setCancelTime(order.getCancelTime()); + appUserOrderGetVo.setOrderRemark(order.getOrderRemark()); + Shop shop = remoteShopService.getShop(order.getShopId()).getData(); + appUserOrderGetVo.setShopName(shop.getShopName()); + appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); + appUserOrderGetVo.setVerifyCode("1-" + orderId); + return appUserOrderGetVo; + } + + /** + * 取消订单 + * + * @param orderId + */ + @Override + public void cancelOrder(String orderId) { + Order order = this.getById(orderId); + if (order.getOrderStatus() != 1) { + throw new ServiceException(AppErrorConstant.CANCEL_ERROR_ORDER); + } + order.setOrderStatus(0); + order.setCancelTime(new Date()); + this.saveOrUpdate(order); + } + + /** + * 获取用户订单统计 + * + * @param userId + * @return + */ + @Override + public AppOrderTotalVo getAppOrderTotal(Long userId) { + LambdaQueryWrapper<Order> queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(Order::getDelFlag, 0).eq(Order::getUserId, userId).eq(Order::getOrderStatus, 1); + Integer noPayCount = Integer.valueOf((int) this.count(queryWrapper)); + queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(Order::getDelFlag, 0).eq(Order::getUserId, userId).eq(Order::getOrderStatus, 2); + Integer noUseCount = Integer.valueOf((int) this.count(queryWrapper)); + AppOrderTotalVo appOrderTotalVo = new AppOrderTotalVo(); + appOrderTotalVo.setNoPayCount(noPayCount); + appOrderTotalVo.setNoUseCount(noUseCount); + return appOrderTotalVo; + } + + /** + * 获取B端首页统计 + * + * @param merHomeShopTotalVo + * @return + */ + @Override + public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { + Long shopId = merHomeShopTotalVo.getShopId(); + Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); + merHomeShopTotalVo.setTodayShop(todayShop); + merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); + return merHomeShopTotalVo; + } + + /** + * 核销订单 + * + * @param orderId + * @return + */ + @Override + public MerVerifyOrderVo verifyOrder(String orderId) { + MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); + Order order = this.getById(orderId); + List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); + merVerifyOrderVo.setOrderId(orderId); + merVerifyOrderVo.setOrderNo(order.getOrderNo()); + merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); + merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); + merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney()); + merVerifyOrderVo.setCouponDiscount(order.getCouponMoney()); + merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit()); + merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney()); + merVerifyOrderVo.setPayMoney(order.getPayMoney()); + merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); + merVerifyOrderVo.setCreateTime(order.getCreateTime()); + merVerifyOrderVo.setPayTime(order.getPayTime()); + merVerifyOrderVo.setUseTime(order.getUseTime()); + merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); + SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); + merVerifyOrderVo.setUserName(sysUser.getNickName()); + merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); + merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); + return merVerifyOrderVo; + } + + /** + * 确认核销订单 + * + * @param merVerifyOrderDto + * @return + */ + @Override + public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto) { + String orderId = merVerifyOrderDto.getOrderId(); + BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney(); + BigDecimal relPayMoney = merVerifyOrderDto.getRelPayMoney(); + Date nowTime = new Date(); + //更新订单信息 + Order order = this.getById(orderId); + order.setOrderStatus(3); + order.setUseTime(nowTime); + order.setUseUserId(merVerifyOrderDto.getUserId()); + order.setOfflinePayMoney(relPayMoney); + order.setOffPayTime(nowTime); + order.setPayMoney(relReceiveMoney.add(relPayMoney)); + order.setCloseFlag(1); + this.saveOrUpdate(order); + //创建服务商品 + List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); + ConsumerGoods consumerGoods; + String consumerGoodsId; + Goods goods; + for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { + consumerGoods = new ConsumerGoods(); + goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData(); + consumerGoodsId = IdUtils.simpleUUID(); + consumerGoods.setConsumerGoodsId(consumerGoodsId); + consumerGoods.setDelFlag(0); + consumerGoods.setServiceStatus(1); + consumerGoods.setShopId(order.getShopId()); + consumerGoods.setUserId(order.getUserId()); + consumerGoods.setOrderId(orderId); + consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId()); + consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId()); + consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName()); + consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag()); + consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); + consumerGoods.setUsedNum(0); + consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); + consumerGoods.setCreateTime(nowTime); + consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); + consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); + consumerGoods.setGoodsNurses(goods.getGoodsNurses()); + consumerGoodsService.save(consumerGoods); + } + //生成返回 + MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); + merVerifyOrderVo.setOrderId(orderId); + merVerifyOrderVo.setOrderNo(order.getOrderNo()); + merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); + merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); + merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney()); + merVerifyOrderVo.setCouponDiscount(order.getCouponMoney()); + merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit()); + merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney()); + merVerifyOrderVo.setPayMoney(order.getPayMoney()); + merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); + merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); + merVerifyOrderVo.setCreateTime(order.getCreateTime()); + merVerifyOrderVo.setPayTime(order.getPayTime()); + merVerifyOrderVo.setUseTime(order.getUseTime()); + SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); + merVerifyOrderVo.setUserName(sysUser.getNickName()); + merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); + return merVerifyOrderVo; + } + + /** + * 收银未结清订单列表 + * + * @param page + * @param merMemberNoClearOrderDto + * @return + */ + @Override + public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) { + List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page, merMemberNoClearOrderDto.getMemberUserId()); + if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) { + BigDecimal zeroBig = new BigDecimal("0.00"); + for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) { + merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney())); + if (merMemberNoClearOrderVo.getUnPaidMoney() == null) { + merMemberNoClearOrderVo.setUnPaidMoney(zeroBig); + } + } + } + return merMemberNoClearOrderVoList; + } + + /** + * 结清订单 + * + * @param merCloseOrderDto + */ + @Override + public void merCloseOrder(MerCloseOrderDto merCloseOrderDto) { + Order order = this.getById(merCloseOrderDto.getOrderId()); + order.setOfflinePayMoney(merCloseOrderDto.getPayMoney()); + order.setOffPayTime(new Date()); + order.setPayMoney(order.getPayMoney().add(merCloseOrderDto.getPayMoney())); + order.setCloseFlag(1); + this.saveOrUpdate(order); + } + + /** + * 创建新订单 + * + * @param merNewOrderDto + */ + @Override + public void createNewOrder(MerNewOrderDto merNewOrderDto) { + Long userId = merNewOrderDto.getBuyUserId(); + Date nowTime = new Date(); + //如果非指定用户判断是否需要通过手机号创建新用户 + if (userId == null) { + String name = merNewOrderDto.getName(); + String mobile = merNewOrderDto.getMobile(); + Member member = remoteMemberService.getMemberByMobile(mobile).getData(); + SysUser sysUser; + if (member != null) { + sysUser = remoteUserService.getSysUser(member.getUserId()).getData(); + } else { + //创建新用户 + String memberId = IdUtils.simpleUUID(); + sysUser = new SysUser(); + sysUser.setUserName(memberId); + sysUser.setUserType("03"); + sysUser.setNickName(name); + sysUser.setPhonenumber(mobile); + sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); + String password = "hongruitang"; + sysUser.setPassword(SecurityUtils.encryptPassword(password)); + log.debug("sysUser" + sysUser.toString()); + sysUser = remoteUserService.registerUser(sysUser).getData(); + member = new Member(); + member.setMemberId(memberId); + member.setUserId(sysUser.getUserId()); + member.setMobile(mobile); + member.setRealName(name); + member.setNickName(name); + remoteMemberService.createNewMember(member); + } + userId = sysUser.getUserId(); + } + //创建订单计算 + List<AppBuyGoodsDto> appBuyGoodsDtoList = merNewOrderDto.getAppBuyGoodsDtoList(); + String goodsId; + Integer buyNum; + BigDecimal buyNumBig; + Integer serviceNum; + Integer goodsNum = 0; + String memberCouponId; + Goods goods; + BigDecimal goodsPrice; + BigDecimal goodsTotalPrice; + BigDecimal goodsRealPrice; + Long shopId = merNewOrderDto.getShopId(); + Shop shop = remoteShopService.getShop(shopId).getData(); + List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); + Map<String, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); + if (null != appMemberCouponVoList) { + appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); + } + + AppMemberCouponVo appMemberCouponVo; + Integer couponType; + BigDecimal moneyThreshold; + BigDecimal discountMoney = new BigDecimal("0.00"); + BigDecimal discountPercent; + BigDecimal goodsDeposit; + BigDecimal orderGoodsMoney = new BigDecimal("0.00"); + BigDecimal couponDiscount = new BigDecimal("0.00"); + BigDecimal orderPayDeposit = new BigDecimal("0.00"); + BigDecimal orderPayMoney = new BigDecimal("0.00"); + String orderId = IdUtils.simpleUUID(); + String orderNo = CodeFactoryUtil.getShopOrderNo(); + OrderGoods orderGoods; + String orderGoodsId; + for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { + goodsId = appBuyGoodsDto.getGoodsId(); + memberCouponId = appBuyGoodsDto.getMemberCouponId(); + goods = remoteGoodsService.getGoods(goodsId).getData(); + buyNum = appBuyGoodsDto.getBuyNum(); + goodsPrice = goods.getSalesPrice(); + serviceNum = goods.getServiceNum(); + //商户定制价格 + AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); + appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); + appShopGoodsGetDto.setShopId(shopId); + ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); + if (shopGoods != null) { + goodsPrice = shopGoods.getSalesPrice(); + serviceNum = shopGoods.getServiceNum(); + } + buyNumBig = BigDecimal.valueOf(buyNum); + goodsTotalPrice = goodsPrice.multiply(buyNumBig); + goodsRealPrice = goodsTotalPrice; + //优惠券计算 + if (memberCouponId != null) { + appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); + if (null != appMemberCouponVo && (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId))) { + couponType = appMemberCouponVo.getCouponType(); + if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) { + moneyThreshold = appMemberCouponVo.getMoneyThreshold(); + if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { + discountMoney = appMemberCouponVo.getDiscountMoney(); + goodsRealPrice = goodsTotalPrice.subtract(discountMoney); + } + } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { + discountPercent = appMemberCouponVo.getDiscountPercent(); + goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP); + discountMoney = goodsRealPrice.subtract(goodsTotalPrice); + } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { + discountMoney = appMemberCouponVo.getDiscountMoney(); + goodsRealPrice = goodsTotalPrice.subtract(discountMoney); + } + } + } + + goodsDeposit = goods.getSubscription(); + if (goodsDeposit == null) { + goodsDeposit = new BigDecimal("0.00"); + } + goodsNum = goodsNum + buyNum; + orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); + couponDiscount = couponDiscount.add(discountMoney); + orderPayDeposit = orderPayDeposit.add(goodsDeposit); + orderPayMoney = orderPayMoney.add(goodsRealPrice); + //创建OrderGoods + orderGoods = new OrderGoods(); + orderGoodsId = IdUtils.simpleUUID(); + orderGoods.setOrderGoodsId(orderGoodsId); + orderGoods.setDelFlag(0); + orderGoods.setOrderId(orderId); + orderGoods.setGoodsId(goodsId); + orderGoods.setBuyNum(buyNum); + if (null != memberCouponId) { + orderGoods.setCouponId(memberCouponId.toString()); + } + orderGoods.setGoodsPrice(goodsPrice); + orderGoods.setGoodsTotalMoney(orderGoodsMoney); + orderGoods.setGoodsReceivableMoney(goodsRealPrice); + orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); + orderGoods.setServiceNum(serviceNum); + orderGoods.setGoodsType(goods.getGoodsType()); + orderGoodsService.save(orderGoods); + } + //创建订单 + Order order = new Order(); + order.setOrderId(orderId); + order.setDelFlag(0); + order.setOrderStatus(3); + order.setOrderNo(orderNo); + order.setOrderFrom(3); + order.setShopId(shopId); + order.setUserId(userId); + order.setOrderMoney(orderGoodsMoney); + order.setCouponMoney(couponDiscount); + order.setDiscountMoney(couponDiscount); + order.setReceivableMoney(orderPayMoney); + order.setReceivableDeposit(new BigDecimal("0.00")); + order.setPayType(1); + if (order.getPayType() == 1) { + order.setPayMoney(orderPayMoney); + order.setOnlinePayMoney(orderPayMoney); + order.setCloseFlag(1); + } else if (order.getPayType() == 2) { + order.setPayMoney(orderPayDeposit); + order.setOnlinePayMoney(orderPayDeposit); + order.setCloseFlag(0); + } + order.setOrderRemark(merNewOrderDto.getOrderRemark()); + order.setGoodsNum(goodsNum); + order.setCreateTime(nowTime); + order.setPayTime(nowTime); + order.setUseTime(nowTime); + order.setUseUserId(merNewOrderDto.getUserId()); + order.setPayMoney(merNewOrderDto.getPayMoney()); + order.setOnlinePayMoney(new BigDecimal("0.00")); + order.setOfflinePayMoney(merNewOrderDto.getPayMoney()); + order.setOffPayTime(nowTime); + order.setCloseFlag(1); + this.save(order); + //创建服务 + List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); + ConsumerGoods consumerGoods; + String consumerGoodsId; + for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { + consumerGoods = new ConsumerGoods(); + goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData(); + consumerGoodsId = IdUtils.simpleUUID(); + consumerGoods.setConsumerGoodsId(consumerGoodsId); + consumerGoods.setDelFlag(0); + consumerGoods.setServiceStatus(1); + consumerGoods.setShopId(order.getShopId()); + consumerGoods.setUserId(order.getUserId()); + consumerGoods.setOrderId(orderId); + consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId()); + consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId()); + consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName()); + consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag()); + consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); + consumerGoods.setUsedNum(0); + consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); + consumerGoods.setCreateTime(nowTime); + consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); + consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); + consumerGoods.setGoodsNurses(goods.getGoodsNurses()); + consumerGoodsService.save(consumerGoods); + } + Member member = remoteMemberService.getMember(userId).getData(); + if (member != null && member.getBindingFlag() != 1) { + //绑定商户 + AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); + appMemberBindingDto.setShopId(shopId); + appMemberBindingDto.setShopName(shop.getShopName()); + appMemberBindingDto.setUserId(userId); + appMemberBindingDto.setBindingFlag(1); + remoteMemberService.updateMemberBinding(appMemberBindingDto); + } + } + + + /** + * @param merOrderPageDto + * @return + */ + @Override + public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto) { + List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerOrder(page, merOrderPageDto); + if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) { + Long userId; + Member member; + Integer orderFrom; + String orderFromDesc; + BigDecimal zeroBig = new BigDecimal("0.00"); + for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { + userId = merOrderPageVo.getUserId(); + member = remoteMemberService.getMember(userId).getData(); + if (member != null) { + if (StringUtils.isNotBlank(member.getNickName())) { + merOrderPageVo.setUserName(member.getNickName()); + } + merOrderPageVo.setUserMobile(member.getMobile()); + } else { + SysUser sysUser = remoteUserService.getSysUser(userId).getData(); + if (StringUtils.isNotBlank(sysUser.getNickName())) { + merOrderPageVo.setUserName(sysUser.getNickName()); + } + merOrderPageVo.setUserMobile(sysUser.getPhonenumber()); + } + orderFrom = merOrderPageVo.getOrderFrom(); + if (orderFrom != null) { + if (orderFrom == 1) { + orderFromDesc = "商城订单"; + } else { + orderFromDesc = "线下创建"; + } + } else { + orderFromDesc = "商城订单"; + } + merOrderPageVo.setOrderFromDesc(orderFromDesc); + merOrderPageVo.setUnPaidMoney(merOrderPageVo.getReceivableMoney().subtract(merOrderPageVo.getPayMoney())); + if (merOrderPageVo.getUnPaidMoney() == null) { + merOrderPageVo.setUnPaidMoney(zeroBig); + } + } + } + return merOrderPageVoList; + } + + /** + * @param page + * @param merMemberNoClearOrderDto + * @return + */ + @Override + public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) { + List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page, merMemberNoClearOrderDto.getMemberUserId()); + if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) { + BigDecimal zeroBig = new BigDecimal("0.00"); + for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) { + merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney())); + if (merMemberNoClearOrderVo.getUnPaidMoney() == null) { + merMemberNoClearOrderVo.setUnPaidMoney(zeroBig); + } + } + } + return merMemberNoClearOrderVoList; + } + + /** + * 获取用户订单统计 + * + * @param mgtMemberOrderTotalDto + * @return + */ + @Override + public MgtMemberOrderTotalVo getMgtMemberOrderTotal(MgtMemberOrderTotalDto mgtMemberOrderTotalDto) { + MgtMemberOrderTotalVo mgtMemberOrderTotalVo = orderMapper.getMgtMemberOrderTotal(mgtMemberOrderTotalDto); + return mgtMemberOrderTotalVo; + } + + /** + * 分页获取用户订单列表 + * + * @param page + * @param mgtMemberOrderPageDto + * @return + */ + @Override + public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto) { + // 通过orderMapper获取MgtMemberOrderPageVoList + List<MgtMemberOrderPageVo> mgtMemberOrderPageVoList = orderMapper.pageMgtMemberOrder(page, mgtMemberOrderPageDto); + // 如果MgtMemberOrderPageVoList不为空 + if (mgtMemberOrderPageVoList != null && !mgtMemberOrderPageVoList.isEmpty()) { + Long shopId; + HashSet<String> set = new HashSet<>(); + // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中 + for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) { + shopId = mgtMemberOrderPageVo.getShopId(); + set.add(shopId.toString()); + } + // 将set中的shopId转换为逗号分隔的字符串 + String joinedString = String.join(",", set); + // 通过remoteShopService获取MgtSimpleShopVoList + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(joinedString); + List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); + // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo + Map<Long, MgtSimpleShopVo> map = simpleShopVoList.stream() + .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); + // 遍历MgtMemberOrderPageVoList,根据shopId获取对应的MgtSimpleShopVo并将其shopName设置到MgtMemberOrderPageVo中 + for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) { + shopId = mgtMemberOrderPageVo.getShopId(); + mgtMemberOrderPageVo.setShopName(map.get(shopId).getShopName()); + } + } + // 返回MgtMemberOrderPageVoList + return mgtMemberOrderPageVoList; + } + + /** + * @param page + * @param mgtShopOrderPageDto + * @return List<MgtActivityOrderPageVo> + * @description 分页获取活动订单列表 + * @author jqs + * @date 2023/6/16 10:43 + */ + @Override + public List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto) { + //如果区域代码不为null获取对应的商户id + if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ + MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); + mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); + mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); + mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); + MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); + if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ + mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); + } + } + //如果关键词不为null获取对应的用户id + if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ + MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); + mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); + MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); + if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ + mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); + } + } + // 从数据库中获取活动订单列表 + List<MgtActivityOrderPageVo> activityOrderPageVoList = orderMapper.pageMgtActivityOrder(page, mgtShopOrderPageDto); + // 如果列表不为空 + if (!activityOrderPageVoList.isEmpty()) { + // 定义变量 + HashSet<Long> shopIdSet = new HashSet<>(); + HashSet<Long> userIdSet = new HashSet<>(); + BigDecimal zeroBig = new BigDecimal("0.00"); + // 遍历列表,获取店铺 ID 和用户 ID + for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) { + shopIdSet.add(mgtActivityOrderPageVo.getShopId()); + userIdSet.add(mgtActivityOrderPageVo.getUserId()); + } + // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串 + String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); + String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); + // 从远程服务获取店铺和用户信息 + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(shopJoinedString); + List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); + Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() + .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); + mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(userJoinedString); + List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); + Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() + .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); + // 遍历列表,设置店铺名称、用户名称和未支付金额 + for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) { + mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName()); + if(userMap.get(mgtActivityOrderPageVo.getUserId())!=null){ + mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getNickName()); + } + BigDecimal unPaidMoney = mgtActivityOrderPageVo.getReceivableMoney().subtract(mgtActivityOrderPageVo.getPayMoney()); + mgtActivityOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); + } + } + // 返回处理后的活动订单列表 + return activityOrderPageVoList; + } + + /** + * @description 获取订单统计 + * @author jqs + * @date 2023/6/16 12:51 + * @param mgtShopOrderPageDto + * @return MgtMemberOrderTotalVo + */ + @Override + public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){ + //如果区域代码不为null获取对应的商户id + if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ + MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); + mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); + mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); + mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); + MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); + if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ + mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); + } + } + //如果关键词不为null获取对应的用户id + if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ + MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); + mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); + MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); + if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ + mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); + } + } + MgtOrderTotal mgtOrderTotal = new MgtOrderTotal(); + MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst(); + MgtOrderTotal mgtOrderTotalSecond = orderMapper.totalOrderSecond(mgtShopOrderPageDto); + MgtOrderTotal mgtOrderTotalThird = orderMapper.totalOrderThird(mgtShopOrderPageDto); + mgtOrderTotal.setOrderTotal(mgtOrderTotalFirst.getOrderTotal()); + mgtOrderTotal.setOrderMoneyTotal(mgtOrderTotalFirst.getOrderMoneyTotal()); + mgtOrderTotal.setShopOrderTotal(mgtOrderTotalSecond.getShopOrderTotal()); + mgtOrderTotal.setShopOrderMoneyTotal(mgtOrderTotalSecond.getShopOrderMoneyTotal()); + mgtOrderTotal.setShopPayMoneyTotal(mgtOrderTotalSecond.getShopPayMoneyTotal()); + mgtOrderTotal.setShopUnPayMoneyTotal(mgtOrderTotalSecond.getShopOrderMoneyTotal().subtract(mgtOrderTotalSecond.getShopPayMoneyTotal())); + mgtOrderTotal.setActivityOrderTotal(mgtOrderTotalThird.getActivityOrderTotal()); + mgtOrderTotal.setActivityOrderMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal()); + mgtOrderTotal.setActivityPayMoneyTotal(mgtOrderTotalThird.getActivityPayMoneyTotal()); + mgtOrderTotal.setActivityUnPayMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal().subtract(mgtOrderTotalThird.getActivityPayMoneyTotal())); + return mgtOrderTotal; + } + + /** + * @description 分页获取门店订单列表 + * @author jqs + * @date 2023/6/16 14:57 + * @param page + * @param mgtShopOrderPageDto + * @return List<MgtShopOrderPageVo> + */ + @Override + public List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto){ + //如果区域代码不为null获取对应的商户id + if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ + MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); + mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); + mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); + mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); + MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); + if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ + mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); + } + } + //如果关键词不为null获取对应的用户id + if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ + MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); + mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); + MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); + if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ + mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); + } + } + List<MgtShopOrderPageVo> shopOrderPageVoList = orderMapper.pageMgtShopOrder(page, mgtShopOrderPageDto); + // 如果列表不为空 + if (!shopOrderPageVoList.isEmpty()) { + // 定义变量 + HashSet<Long> shopIdSet = new HashSet<>(); + HashSet<Long> userIdSet = new HashSet<>(); + BigDecimal zeroBig = new BigDecimal("0.00"); + // 遍历列表,获取店铺 ID 和用户 ID + for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) { + shopIdSet.add(mgtShopOrderPageVo.getShopId()); + userIdSet.add(mgtShopOrderPageVo.getUserId()); + } + // 从远程服务获取店铺和用户信息 + Map<Long, MgtSimpleShopVo> shopMap = null; + Map<Long, MgtSimpleMemberVo> userMap = null; + if(shopIdSet!=null&&!shopIdSet.isEmpty()){ + String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(shopJoinedString); + List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); + shopMap = simpleShopVoList.stream() + .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); + } + if(userIdSet!=null&&!userIdSet.isEmpty()){ + String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(userJoinedString); + List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); + userMap = simpleMemberVoList.stream() + .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); + } + // 遍历列表,设置店铺名称、用户名称和未支付金额 + for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) { + if(shopMap!=null&&!shopMap.isEmpty()){ + mgtShopOrderPageVo.setShopName(shopMap.get(mgtShopOrderPageVo.getShopId()).getShopName()); + } + if(userMap!=null&&!userMap.isEmpty()){ + if(userMap.get(mgtShopOrderPageVo.getUserId())!=null){ + mgtShopOrderPageVo.setUserName(userMap.get(mgtShopOrderPageVo.getUserId()).getNickName()); + } + } + BigDecimal unPaidMoney = mgtShopOrderPageVo.getReceivableMoney().subtract(mgtShopOrderPageVo.getPayMoney()); + mgtShopOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); + } + } + return shopOrderPageVoList; + } + + + /** + * @description 获取订单详情 + * @author jqs + * @date 2023/6/16 16:49 + * @param orderId + * @return MgtOrderDetailVo + */ + @Override + public MgtOrderDetailVo getMgtOrderDetail(String orderId){ + // 创建MgtOrderDetailVo对象 + MgtOrderDetailVo mgtOrderDetailVo = new MgtOrderDetailVo(); + // 获取订单信息 + Order order = this.getById(orderId); + // 获取会员信息 + Member member = remoteMemberService.getMember(order.getUserId()).getData(); + // 获取商店信息 + Shop shop = remoteShopService.getShop(order.getShopId()).getData(); + // 获取订单商品详细信息 + List<MgtOrderGoodsDetailVo> orderGoodsDetailVoList = orderGoodsService.listMgtVoByOrderId(orderId); + // 设置MgtOrderDetailVo属性 + mgtOrderDetailVo.setOrderId(orderId); + mgtOrderDetailVo.setUserId(order.getUserId()); + mgtOrderDetailVo.setNickName(member.getNickName()); + mgtOrderDetailVo.setUserName(member.getRealName()); + mgtOrderDetailVo.setUserMobile(member.getMobile()); + mgtOrderDetailVo.setOrderGoodsDetailVoList(orderGoodsDetailVoList); + // 设置订单状态 + switch (order.getOrderStatus()) { + case 0: + mgtOrderDetailVo.setOrderStatus("已取消"); + break; + case 1: + mgtOrderDetailVo.setOrderStatus("待支付"); + break; + case 2: + mgtOrderDetailVo.setOrderStatus("待核销"); + break; + case 3: + mgtOrderDetailVo.setOrderStatus("已完成"); + break; + default: + mgtOrderDetailVo.setOrderStatus("删除"); + break; + } + // 设置订单编号 + mgtOrderDetailVo.setOrderNo(order.getOrderNo()); + // 设置订单来源 + switch (order.getOrderFrom()) { + case 1: + mgtOrderDetailVo.setOrderFrom("商城"); + break; + case 2: + mgtOrderDetailVo.setOrderFrom("秒杀活动"); + break; + case 3: + mgtOrderDetailVo.setOrderFrom("线下创建"); + break; + default: + mgtOrderDetailVo.setOrderStatus(""); + break; + } + // 设置订单支付相关属性 + mgtOrderDetailVo.setOrderMoney(order.getOrderMoney()); + mgtOrderDetailVo.setReceivableMoney(order.getReceivableMoney()); + mgtOrderDetailVo.setPayMoney(order.getPayMoney()); + mgtOrderDetailVo.setUnPaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); + mgtOrderDetailVo.setActivityName(order.getActivityName()); + mgtOrderDetailVo.setCreateTime(order.getCreateTime()); + mgtOrderDetailVo.setOnlinePayMoney(order.getOnlinePayMoney()); + mgtOrderDetailVo.setOfflinePayMoney(order.getOfflinePayMoney()); + mgtOrderDetailVo.setPayTime(order.getPayTime()); + mgtOrderDetailVo.setOffPayTime(order.getOffPayTime()); + mgtOrderDetailVo.setCompleteTime(order.getUseTime()); + mgtOrderDetailVo.setCancelTime(order.getCancelTime()); + mgtOrderDetailVo.setOrderRemark(order.getOrderRemark()); + mgtOrderDetailVo.setShopId(order.getShopId()); + mgtOrderDetailVo.setShopName(shop.getShopName()); + mgtOrderDetailVo.setVerifyTime(order.getUseTime()); + return mgtOrderDetailVo; + } + + /** + * @description boardOrderTotal + * @param + * @return MgtBulletinBoardVo + * @author jqs34 + * @date 2023/6/18 17:20 + */ + @Override + public MgtBulletinBoardVo boardOrderTotal(){ + MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(); + return mgtBulletinBoardVo; + } + + /** + * @description getTotalOrderTotal + * @param mgtBaseShopDto + * @return MgtTotalOrderTotalVo + * @author jqs34 + * @date 2023/6/19 22:23 + */ + @Override + public MgtTotalOrderTotalVo getTotalOrderTotal(MgtBaseShopDto mgtBaseShopDto){ + MgtTotalOrderTotalVo mgtTotalOrderTotalVo = orderMapper.getTotalOrderTotalOrderFrom(mgtBaseShopDto); + //MgtTotalOrderTotalVo mgtTotalOrderTotalVoGoodsType = orderMapper.getTotalOrderTotalGoodsType(mgtBaseShopDto); + List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listTotalOrderTotal(mgtBaseShopDto); + if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { + String[] orderTotalKey = new String[mgtMapTotalVos.size()]; + Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; + for (int i = 0; i < mgtMapTotalVos.size(); i++) { + orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); + orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); + orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); + } + mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey); + mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue); + mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue); + } + //获取商品分类销售数据 + List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalOrderTotalGoodsType(mgtBaseShopDto); + if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { + String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()]; + Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()]; + BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { + goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst(); + goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond(); + if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")){ + goodsTypeKey[i] = "周期"; + mgtTotalOrderTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){ + goodsTypeKey[i] = "服务"; + mgtTotalOrderTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){ + goodsTypeKey[i] = "体验"; + mgtTotalOrderTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){ + goodsTypeKey[i] = "单品"; + } + } + mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey); + mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); + mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); + } + //获取商品销售排名 + List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listTotalOrderTotalGoodsRank(mgtBaseShopDto); + if (goodsRankList != null && goodsRankList.size() > 0) { + String[] goodsRankKey = new String[goodsRankList.size()]; + BigDecimal[] goodsRankValue = new BigDecimal[goodsRankList.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < goodsRankList.size(); i++) { + goodsRankKey[i] = goodsRankList.get(i).getMapKey(); + goodsRankValue[i] = goodsRankList.get(i).getMapValueSecond(); + } + mgtTotalOrderTotalVo.setGoodsRankKey(goodsRankKey); + mgtTotalOrderTotalVo.setGoodsRankValue(goodsRankValue); + } + //获取来源销售排名 + List<MgtMapTotalPlusVo> orderFromList = orderMapper.listTotalOrderTotalOrderFrom(mgtBaseShopDto); + if (orderFromList != null && orderFromList.size() > 0) { + String[] orderFromKey = new String[orderFromList.size()]; + BigDecimal[] orderFromValue = new BigDecimal[orderFromList.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < orderFromList.size(); i++) { + orderFromKey[i] = orderFromList.get(i).getMapKey(); + orderFromValue[i] = orderFromList.get(i).getMapValueSecond(); + } + mgtTotalOrderTotalVo.setOrderFromRankKey(orderFromKey); + mgtTotalOrderTotalVo.setOrderFromRankValue(orderFromValue); + } + return mgtTotalOrderTotalVo; + } + + + /** + * @description + * @author jqs + * @date 2023/6/20 9:27 + * @param mgtBaseShopDto + * @return MgtTotalActivityTotalVo + */ + @Override + public MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto){ + //获取基础统计 + MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityTotal(mgtBaseShopDto); + //获取商品分类销售数据 + List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalActivityTotalGoodsType(mgtBaseShopDto); + if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { + String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()]; + Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()]; + BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { + goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst(); + goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond(); + if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")){ + goodsTypeKey[i] = "周期"; + totalActivityTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + totalActivityTotalVo.setCyclePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){ + goodsTypeKey[i] = "服务"; + totalActivityTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + totalActivityTotalVo.setServicePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){ + goodsTypeKey[i] = "体验"; + totalActivityTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + totalActivityTotalVo.setExperiencePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){ + goodsTypeKey[i] = "单品"; + } + } + totalActivityTotalVo.setGoodsTypeKey(goodsTypeKey); + totalActivityTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); + totalActivityTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); + } + //获取订单分布 + List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto); + if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { + String[] orderTotalKey = new String[mgtMapTotalVos.size()]; + Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; + for (int i = 0; i < mgtMapTotalVos.size(); i++) { + orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); + orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); + orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); + } + totalActivityTotalVo.setOrderTotalKey(orderTotalKey); + totalActivityTotalVo.setOrderTotalValue(orderTotalValue); + totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue); + } + return totalActivityTotalVo; + } + + /** + * @description + * @author jqs + * @date 2023/6/20 9:56 + * @param mgtActivityAgeDto + * @return MgtTotalActivityTotalVo + */ + @Override + public MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto){ + List<Long> userIds = orderMapper.getUserIdAgeRank(mgtActivityAgeDto); + mgtActivityAgeDto.setUserIds(userIds); + userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); + mgtActivityAgeDto.setUserIds(userIds); + MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityAgeRank(mgtActivityAgeDto); + return totalActivityTotalVo; + } + + /** + * @description + * @author jqs + * @date 2023/6/20 15:31 + * @param mgtBaseShopDto + * @return MgtTotalDataTotalVo + */ + @Override + public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto){ + //获取人数统计 + MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto); + Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto); + mgtTotalDataTotalVo.setReorderPerson(reorderPerson); + Integer returnedPerson = orderMapper.getReturnedPerson(mgtBaseShopDto); + mgtTotalDataTotalVo.setReturnedPerson(returnedPerson); + return mgtTotalDataTotalVo; + } + + /** + * @description + * @author jqs + * @date 2023/6/21 15:26 + * @param mgtBasePlatformDto + * @return List<MgtMapTotalVo> + */ + @Override + public List<MgtMapTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto){ + return orderMapper.listMemberGoodsRank(mgtBasePlatformDto); + } + + /** + * @description 获取平台商户数据统计 + * @param mgtBasePlatformDto + * @return List<MgtTotalDataTotalVo> + * @author jqs34 + * @date 2023/6/23 14:01 + */ + @Override + public List<MgtTotalDataTotalVo> getPlTotalDataTotal(MgtBasePlatformDto mgtBasePlatformDto){ + //获取需要关联的用户id集合 + if (mgtBasePlatformDto.getDeptId() != null) { + List<Long> userIdList = new ArrayList<>(); + if (mgtBasePlatformDto.getUserId() != null) { + userIdList.add(mgtBasePlatformDto.getUserId()); + } else { + MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept(); + mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId()); + mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData(); + userIdList = mgtUserIdByDept.getUserIdList(); + } + if (!userIdList.isEmpty()) { + mgtBasePlatformDto.setUserIdList(userIdList); + } + } + List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); + List<MgtTotalDataTotalVo> mgtTotalDataTotalVoList = new ArrayList<>(); + MgtBaseShopDto mgtBaseShopDto; + MgtTotalDataTotalVo mgtTotalDataTotalVo; + if(shopIdList!=null&&!shopIdList.isEmpty()){ + for(Long shopId : shopIdList){ + mgtBaseShopDto = new MgtBaseShopDto(); + mgtBaseShopDto.setStartDate(mgtBasePlatformDto.getStartDate()); + mgtBaseShopDto.setEndDate(mgtBasePlatformDto.getEndDate()); + mgtBaseShopDto.setShopId(shopId); + mgtTotalDataTotalVo = this.getTotalDataTotal(mgtBaseShopDto); + mgtTotalDataTotalVoList.add(mgtTotalDataTotalVo); + } + } + return mgtTotalDataTotalVoList; + } + + /** + * @description 获取平台商户订单统计 + * @param mgtBasePlatformDto + * @return MgtTotalOrderTotalVo + * @author jqs34 + * @date 2023/6/19 22:23 + */ + @Override + public MgtTotalOrderTotalVo getPlTotalOrderTotal(MgtBasePlatformDto mgtBasePlatformDto){ + //获取需要关联的用户id集合 + if (mgtBasePlatformDto.getDeptId() != null) { + List<Long> userIdList = new ArrayList<>(); + if (mgtBasePlatformDto.getUserId() != null) { + userIdList.add(mgtBasePlatformDto.getUserId()); + } else { + MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept(); + mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId()); + mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData(); + userIdList = mgtUserIdByDept.getUserIdList(); + } + if (!userIdList.isEmpty()) { + mgtBasePlatformDto.setUserIdList(userIdList); + } + } + List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); + mgtBasePlatformDto.setShopIdList(shopIdList); + //获取基础统计 + MgtTotalOrderTotalVo mgtTotalOrderTotalVo = orderMapper.getPlTotalOrderTotalOrderFrom(mgtBasePlatformDto); + List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto); + if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { + String[] orderTotalKey = new String[mgtMapTotalVos.size()]; + Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; + for (int i = 0; i < mgtMapTotalVos.size(); i++) { + orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); + orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); + orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); + } + mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey); + mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue); + mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue); + } + //获取商品分类销售数据 + List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listPlTotalOrderTotalGoodsType(mgtBasePlatformDto); + if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { + String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()]; + Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()]; + BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { + goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst(); + goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond(); + if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")){ + goodsTypeKey[i] = "周期"; + mgtTotalOrderTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){ + goodsTypeKey[i] = "服务"; + mgtTotalOrderTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){ + goodsTypeKey[i] = "体验"; + mgtTotalOrderTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){ + goodsTypeKey[i] = "单品"; + } + } + mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey); + mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); + mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); + } + //获取商品销售排名 + List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listPlTotalOrderTotalGoodsRank(mgtBasePlatformDto); + if (goodsRankList != null && goodsRankList.size() > 0) { + String[] goodsRankKey = new String[goodsRankList.size()]; + BigDecimal[] goodsRankValue = new BigDecimal[goodsRankList.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < goodsRankList.size(); i++) { + goodsRankKey[i] = goodsRankList.get(i).getMapKey(); + goodsRankValue[i] = goodsRankList.get(i).getMapValueSecond(); + } + mgtTotalOrderTotalVo.setGoodsRankKey(goodsRankKey); + mgtTotalOrderTotalVo.setGoodsRankValue(goodsRankValue); + } + //获取来源销售排名 + List<MgtMapTotalPlusVo> orderFromList = orderMapper.listPlTotalOrderTotalOrderFrom(mgtBasePlatformDto); + if (orderFromList != null && orderFromList.size() > 0) { + String[] orderFromKey = new String[orderFromList.size()]; + BigDecimal[] orderFromValue = new BigDecimal[orderFromList.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < orderFromList.size(); i++) { + orderFromKey[i] = orderFromList.get(i).getMapKey(); + orderFromValue[i] = orderFromList.get(i).getMapValueSecond(); + } + mgtTotalOrderTotalVo.setOrderFromRankKey(orderFromKey); + mgtTotalOrderTotalVo.setOrderFromRankValue(orderFromValue); + } + return mgtTotalOrderTotalVo; + } + + /** + * @description + * @author jqs + * @date 2023/6/20 9:27 + * @param mgtBasePlatformDto + * @return MgtTotalActivityTotalVo + */ + @Override + public MgtPlTotalActivityTotalVo getPlTotalActivityTotal(MgtBasePlatformDto mgtBasePlatformDto){ + //获取需要关联的用户id集合 + if (mgtBasePlatformDto.getDeptId() != null) { + List<Long> userIdList = new ArrayList<>(); + if (mgtBasePlatformDto.getUserId() != null) { + userIdList.add(mgtBasePlatformDto.getUserId()); + } else { + MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept(); + mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId()); + mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData(); + userIdList = mgtUserIdByDept.getUserIdList(); + } + if (!userIdList.isEmpty()) { + mgtBasePlatformDto.setUserIdList(userIdList); + } + } + List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); + mgtBasePlatformDto.setShopIdList(shopIdList); + //获取基础统计 + MgtPlTotalActivityTotalVo totalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto); + //获取商品分类销售数据 + List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listPlTotalActivityTotalGoodsType(mgtBasePlatformDto); + if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { + String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()]; + Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()]; + BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { + goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst(); + goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond(); + if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")){ + goodsTypeKey[i] = "周期"; + totalActivityTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + totalActivityTotalVo.setCyclePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){ + goodsTypeKey[i] = "服务"; + totalActivityTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + totalActivityTotalVo.setServicePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){ + goodsTypeKey[i] = "体验"; + totalActivityTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + totalActivityTotalVo.setExperiencePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); + }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){ + goodsTypeKey[i] = "单品"; + } + } + totalActivityTotalVo.setGoodsTypeKey(goodsTypeKey); + totalActivityTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); + totalActivityTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); + } + //获取订单分布 + List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto); + if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { + String[] orderTotalKey = new String[mgtMapTotalVos.size()]; + Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; + for (int i = 0; i < mgtMapTotalVos.size(); i++) { + orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); + orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); + orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); + } + totalActivityTotalVo.setOrderTotalKey(orderTotalKey); + totalActivityTotalVo.setOrderTotalValue(orderTotalValue); + totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue); + } + HashSet<String> set = new HashSet<>(); + // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中 + for (Long shopId : mgtBasePlatformDto.getShopIdList()) { + set.add(shopId.toString()); + } + // 将set中的shopId转换为逗号分隔的字符串 + String joinedString = String.join(",", set); + // 通过remoteShopService获取MgtSimpleShopVoList + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(joinedString); + List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); + // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo + Map<Long, MgtSimpleShopVo> map = simpleShopVoList.stream() + .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); + //商户活动次数排名 + List<MgtMapTotalPlusVo> shopActivityRank = orderMapper.listPlTotalShopActivityRank(mgtBasePlatformDto); + if (shopActivityRank != null && shopActivityRank.size() > 0) { + String[] shopActivityRankKey = new String[shopActivityRank.size()]; + Integer[] shopActivityRankValue = new Integer[shopActivityRank.size()]; + for (int i = 0; i < shopActivityRank.size(); i++) { + shopActivityRankKey[i] = map.get(Long.valueOf(shopActivityRank.get(i).getMapKey())).getShopName(); + shopActivityRankValue[i] = shopActivityRank.get(i).getMapValueFirst(); + } + totalActivityTotalVo.setActivityRankKey(shopActivityRankKey); + totalActivityTotalVo.setActivityRankValue(shopActivityRankValue); + } + //商户活动销售额排名 + List<MgtMapTotalPlusVo> shopActivitySalesRank = orderMapper.listPlTotalShopActivitySalesRank(mgtBasePlatformDto); + if (shopActivitySalesRank != null && shopActivitySalesRank.size() > 0) { + String[] shopActivitySalesRankKey = new String[shopActivitySalesRank.size()]; + BigDecimal[] shopActivitySalesRankValue = new BigDecimal[shopActivitySalesRank.size()]; + for (int i = 0; i < shopActivitySalesRank.size(); i++) { + shopActivitySalesRankKey[i] = map.get(Long.valueOf(shopActivityRank.get(i).getMapKey())).getShopName(); + shopActivitySalesRankValue[i] = shopActivitySalesRank.get(i).getMapValueSecond(); + } + totalActivityTotalVo.setShopSalesRankKey(shopActivitySalesRankKey); + totalActivityTotalVo.setShopSalesRankValue(shopActivitySalesRankValue); + } + //活动销售额排名 + List<MgtMapTotalPlusVo> activitySalesRank = orderMapper.listPlTotalActivitySalesRank(mgtBasePlatformDto); + if (activitySalesRank != null && activitySalesRank.size() > 0) { + String[] activitySalesRankKey = new String[activitySalesRank.size()]; + BigDecimal[] activitySalesRankValue = new BigDecimal[activitySalesRank.size()]; + for (int i = 0; i < activitySalesRank.size(); i++) { + activitySalesRankKey[i] = activitySalesRank.get(i).getMapKey(); + activitySalesRankValue[i] = activitySalesRank.get(i).getMapValueSecond(); + } + totalActivityTotalVo.setActivitySalesRankKey(activitySalesRankKey); + totalActivityTotalVo.setActivitySalesRankValue(activitySalesRankValue); + } + return totalActivityTotalVo; + } + + /** + * @description + * @author jqs + * @date 2023/6/20 9:56 + * @param mgtPlActivityAgeDto + * @return MgtTotalActivityTotalVo + */ + @Override + public MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto){ + List<Long> userIds = orderMapper.getPlUserIdAgeRank(mgtPlActivityAgeDto); + MgtActivityAgeDto mgtActivityAgeDto = new MgtActivityAgeDto(); + mgtActivityAgeDto.setUserIds(userIds); + mgtActivityAgeDto.setAgeType(mgtPlActivityAgeDto.getAgeType()); + userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); + mgtPlActivityAgeDto.setUserIds(userIds); + MgtPlTotalActivityTotalVo totalActivityTotalVo = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); + return totalActivityTotalVo; + } } -- Gitblit v1.7.1