| | |
| | | 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.CodeFactoryUtil; |
| | | 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.mapper.order.OrderMapper; |
| | | import com.ruoyi.order.service.order.ConsumerGoodsService; |
| | | import com.ruoyi.order.service.order.OrderGoodsService; |
| | | import com.ruoyi.common.security.utils.CodeFactoryUtil; |
| | | 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.order.service.order.OrderService; |
| | | import com.ruoyi.order.service.order.UserServiceRecordService; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.domain.dto.*; |
| | | 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.member.MemberCoupon; |
| | | 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 com.ruoyi.system.api.domain.vo.*; |
| | | import com.ruoyi.system.api.service.*; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Resource |
| | | private RemoteConfigService remoteConfigService; |
| | | |
| | | @Resource |
| | | private UserServiceRecordService userServiceRecordService; |
| | | |
| | | @Resource |
| | | private RemoteCouponService remoteCouponService; |
| | | |
| | | @Resource |
| | | private RemoteActivityService remoteActivityService; |
| | | |
| | | /** |
| | | * @description: buyGoods |
| | |
| | | String goodsId; |
| | | Integer buyNum; |
| | | BigDecimal buyNumBig; |
| | | Long memberCouponId; |
| | | String memberCouponId; |
| | | Goods goods; |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); |
| | | List<AppMemberCouponVo> appGoodsMemberCouponVoList; |
| | | Map<Long, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | AppMemberCouponVo appMemberCouponVo; |
| | | Integer couponType; |
| | | BigDecimal moneyThreshold; |
| | |
| | | //商品图片 |
| | | goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); |
| | | appSureOrderGoodsVo.setGoodsPicture(goodsFile.getFileUrl()); |
| | | buyNum = appBuyGoodsDto.getBuyNum(); |
| | | appSureOrderGoodsVo.setBuyNum(buyNum); |
| | | goodsPrice = goods.getSalesPrice(); |
| | | //商户定制价格 |
| | |
| | | } |
| | | |
| | | /** |
| | | * @param appPanicBuyDto |
| | | * @return AppSureOrderVo |
| | | * @description 抢购商品 |
| | | * @author jqs |
| | | * @date 2023/7/6 11:45 |
| | | */ |
| | | @Override |
| | | public AppPanicBuyVo panicBuyGoods(AppPanicBuyDto appPanicBuyDto) { |
| | | Long userId = appPanicBuyDto.getUserId(); |
| | | AppPanicBuyVo appPanicBuyVo = new AppPanicBuyVo(); |
| | | String activityId = appPanicBuyDto.getActivityId(); |
| | | String goodsId = appPanicBuyDto.getGoodsId(); |
| | | Integer buyNum = appPanicBuyDto.getBuyNum(); |
| | | BigDecimal buyNumBig; |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | BigDecimal goodsDeposit; |
| | | BigDecimal goodsActivityPrice; |
| | | GoodsFile goodsFile; |
| | | BigDecimal orderGoodsMoney = new BigDecimal("0.00"); |
| | | BigDecimal orderPayDeposit = new BigDecimal("0.00"); |
| | | BigDecimal orderPayMoney = new BigDecimal("0.00"); |
| | | ActivityGoodsGetDto activityGoodsGetDto = new ActivityGoodsGetDto(); |
| | | activityGoodsGetDto.setActivityId(activityId); |
| | | activityGoodsGetDto.setGoodsId(goodsId); |
| | | activityGoodsGetDto.setUserId(userId); |
| | | ActivityGoodsGetVo activityGoodsGetVo = remoteActivityService.getUserActivityGoods(activityGoodsGetDto).getData(); |
| | | if (activityGoodsGetVo.getActivityStatus() == 0) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_NO_START); |
| | | } |
| | | if (activityGoodsGetVo.getActivityStatus() == 2) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_END); |
| | | } |
| | | if (activityGoodsGetVo.getAvailableBuyNum() < 1) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); |
| | | } |
| | | Goods goods = remoteGoodsService.getGoods(goodsId).getData(); |
| | | appPanicBuyVo.setGoodsId(goodsId); |
| | | appPanicBuyVo.setGoodsName(goods.getGoodsName()); |
| | | appPanicBuyVo.setGoodsIntroduction(goods.getGoodsIntroduction()); |
| | | appPanicBuyVo.setGoodsType(goods.getGoodsType()); |
| | | //商品图片 |
| | | goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); |
| | | appPanicBuyVo.setGoodsPicture(goodsFile.getFileUrl()); |
| | | appPanicBuyVo.setBuyNum(buyNum); |
| | | goodsPrice = goods.getSalesPrice(); |
| | | //商户定制价格 |
| | | AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); |
| | | appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); |
| | | appShopGoodsGetDto.setShopId(appPanicBuyDto.getShopId()); |
| | | ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); |
| | | if (shopGoods != null) { |
| | | goodsPrice = shopGoods.getSalesPrice(); |
| | | } |
| | | appPanicBuyVo.setGoodsPrice(goodsPrice); |
| | | buyNumBig = BigDecimal.valueOf(buyNum); |
| | | goodsActivityPrice = activityGoodsGetVo.getActivityPrice(); |
| | | goodsTotalPrice = goodsActivityPrice.multiply(buyNumBig); |
| | | goodsRealPrice = goodsTotalPrice; |
| | | appPanicBuyVo.setActivityPrice(goodsActivityPrice); |
| | | appPanicBuyVo.setGoodsTotalPrice(goodsTotalPrice); |
| | | appPanicBuyVo.setGoodsRealPrice(goodsRealPrice); |
| | | goodsDeposit = activityGoodsGetVo.getActivitySubscription(); |
| | | if (goodsDeposit == null) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | } |
| | | appPanicBuyVo.setGoodsDeposit(goodsDeposit); |
| | | orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); |
| | | orderPayDeposit = orderPayDeposit.add(goodsDeposit); |
| | | orderPayMoney = orderPayMoney.add(goodsRealPrice); |
| | | appPanicBuyVo.setOrderGoodsMoney(orderGoodsMoney); |
| | | appPanicBuyVo.setOrderPayDeposit(orderPayDeposit); |
| | | appPanicBuyVo.setOrderPayMoney(orderPayMoney); |
| | | return appPanicBuyVo; |
| | | } |
| | | |
| | | /** |
| | | * 创建订单 |
| | | * |
| | | * @param appPlaceOrderDto |
| | |
| | | */ |
| | | @Override |
| | | public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) { |
| | | // 获取用户ID |
| | | 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; |
| | | Long memberCouponId; |
| | | String memberCouponId; |
| | | Goods goods; |
| | | GoodsFile goodsFile; |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | Map<Long, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | // 获取用户优惠券列表 |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); |
| | | // 将用户优惠券列表转换为Map,方便后续查找 |
| | | 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"); |
| | | // 创建订单ID和订单号 |
| | | 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; |
| | | // 获取商品ID和优惠券ID |
| | | 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) { |
| | |
| | | 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.setCouponId(memberCouponId.toString()); |
| | | } |
| | | orderGoods.setGoodsPrice(goodsPrice); |
| | | orderGoods.setGoodsDeposit(goodsDeposit); |
| | | orderGoods.setGoodsTotalMoney(orderGoodsMoney); |
| | | orderGoods.setGoodsReceivableMoney(goodsRealPrice); |
| | | orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); |
| | | orderGoods.setServiceNum(serviceNum); |
| | | orderGoods.setGoodsType(goods.getGoodsType()); |
| | | orderGoods.setGoodsName(goods.getGoodsName()); |
| | | orderGoods.setGoodsPicture(goodsFile.getFileUrl()); |
| | | // 保存订单商品 |
| | | 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("单品"); |
| | | } |
| | | } |
| | | // 创建订单 |
| | | Order order = new Order(); |
| | | order.setOrderId(orderId); |
| | | order.setDelFlag(0); |
| | | //为对接支付 直接付款成功 |
| | | order.setOrderStatus(2); |
| | | order.setOrderStatus(1); |
| | | order.setOrderNo(orderNo); |
| | | order.setOrderFrom(1); |
| | | order.setShopId(appPlaceOrderDto.getShopId()); |
| | |
| | | order.setDiscountMoney(couponDiscount); |
| | | order.setReceivableMoney(orderPayMoney); |
| | | order.setReceivableDeposit(orderPayDeposit); |
| | | order.setChangeReceivableMoney(orderPayMoney); |
| | | order.setPayType(appPlaceOrderDto.getPayType()); |
| | | // 根据支付类型计算支付金额 |
| | | if (order.getPayType() == 1) { |
| | | order.setPayMoney(orderPayMoney); |
| | | order.setOnlinePayMoney(orderPayMoney); |
| | |
| | | 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); |
| | |
| | | } |
| | | appPlaceOrderVo.setOrderId(orderId); |
| | | appPlaceOrderVo.setOrderNo(orderNo); |
| | | |
| | | //调用支付 |
| | | |
| | | |
| | | // 调用支付 |
| | | return appPlaceOrderVo; |
| | | } |
| | | |
| | | /** |
| | | * @param appPlaceActivityDto |
| | | * @return AppPlaceOrderVo |
| | | * @description 创建活动订单 |
| | | * @author jqs |
| | | * @date 2023/7/6 17:59 |
| | | */ |
| | | @Override |
| | | public AppPlaceOrderVo placeActivityOrder(AppPlaceActivityDto appPlaceActivityDto) { |
| | | Long userId = appPlaceActivityDto.getUserId(); |
| | | // 创建订单对象 |
| | | AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo(); |
| | | // 定义商品订单对象 |
| | | AppSureOrderGoodsVo appSureOrderGoodsVo; |
| | | // 获取活动ID,商品ID,购买数量 |
| | | String activityId = appPlaceActivityDto.getActivityId(); |
| | | String goodsId = appPlaceActivityDto.getGoodsId(); |
| | | Integer buyNum = appPlaceActivityDto.getBuyNum(); |
| | | // 定义购买数量,服务数量,商品数量 |
| | | BigDecimal buyNumBig; |
| | | Integer serviceNum; |
| | | Integer goodsNum = 0; |
| | | // 定义商品,商品文件,商品价格,商品总价,商品实际价格,折扣金额,折扣百分比,商品押金,使用优惠券,订单商品金额,优惠券折扣,订单支付押金,订单支付金额 |
| | | Goods goods; |
| | | GoodsFile goodsFile; |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | BigDecimal discountMoney = new BigDecimal("0.00"); |
| | | BigDecimal discountPercent; |
| | | BigDecimal goodsDeposit; |
| | | 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"); |
| | | // 创建活动商品对象,并设置活动ID,商品ID,用户ID |
| | | ActivityGoodsGetDto activityGoodsGetDto = new ActivityGoodsGetDto(); |
| | | activityGoodsGetDto.setActivityId(activityId); |
| | | activityGoodsGetDto.setGoodsId(goodsId); |
| | | activityGoodsGetDto.setUserId(userId); |
| | | // 获取用户活动商品 |
| | | ActivityGoodsGetVo activityGoodsGetVo = remoteActivityService.getUserActivityGoods(activityGoodsGetDto).getData(); |
| | | // 检查活动状态 |
| | | if (activityGoodsGetVo.getActivityStatus() == 0) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_NO_START); |
| | | } |
| | | if (activityGoodsGetVo.getActivityStatus() == 2) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_END); |
| | | } |
| | | if (activityGoodsGetVo.getAvailableBuyNum() < 1) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); |
| | | } |
| | | // 创建订单ID和订单号 |
| | | String orderId = IdUtils.simpleUUID(); |
| | | String orderNo = CodeFactoryUtil.getShopOrderNo(); |
| | | // 创建订单商品对象和订单商品ID |
| | | OrderGoods orderGoods; |
| | | String orderGoodsId; |
| | | // 创建商品类型集合 |
| | | HashSet<String> goodsTypeSet = new HashSet<>(); |
| | | // 创建商品订单对象,并设置商品ID,商品名称,商品介绍,商品类型 |
| | | appSureOrderGoodsVo = new AppSureOrderGoodsVo(); |
| | | useCoupon = 0; |
| | | goodsId = appPlaceActivityDto.getGoodsId(); |
| | | 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()); |
| | | // 设置购买数量,商品价格,服务数量 |
| | | appSureOrderGoodsVo.setBuyNum(buyNum); |
| | | goodsPrice = goods.getSalesPrice(); |
| | | serviceNum = goods.getServiceNum(); |
| | | // 获取活动价格 |
| | | goodsPrice = activityGoodsGetVo.getActivityPrice(); |
| | | appSureOrderGoodsVo.setGoodsPrice(goodsPrice); |
| | | // 计算商品总价,商品实际价格 |
| | | buyNumBig = BigDecimal.valueOf(buyNum); |
| | | goodsTotalPrice = goodsPrice.multiply(buyNumBig); |
| | | goodsRealPrice = goodsTotalPrice; |
| | | // 设置使用优惠券,商品总价,优惠券折扣,商品实际价格 |
| | | appSureOrderGoodsVo.setUseCoupon(useCoupon); |
| | | appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); |
| | | appSureOrderGoodsVo.setCouponDiscount(discountMoney); |
| | | appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); |
| | | // 获取商品押金 |
| | | goodsDeposit = activityGoodsGetVo.getActivitySubscription(); |
| | | 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); |
| | | // 创建订单商品,并设置订单商品ID,删除标志,订单ID,商品ID,购买数量,商品价格,商品押金,商品总金额,商品应收金额,周期数量标志,服务数量,商品类型,商品名称,商品图片 |
| | | orderGoods = new OrderGoods(); |
| | | orderGoodsId = IdUtils.simpleUUID(); |
| | | orderGoods.setOrderGoodsId(orderGoodsId); |
| | | orderGoods.setDelFlag(0); |
| | | orderGoods.setOrderId(orderId); |
| | | orderGoods.setGoodsId(goodsId); |
| | | orderGoods.setBuyNum(buyNum); |
| | | orderGoods.setGoodsPrice(goodsPrice); |
| | | orderGoods.setGoodsDeposit(goodsDeposit); |
| | | orderGoods.setGoodsTotalMoney(orderGoodsMoney); |
| | | orderGoods.setGoodsReceivableMoney(goodsRealPrice); |
| | | orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); |
| | | orderGoods.setServiceNum(serviceNum); |
| | | orderGoods.setGoodsType(goods.getGoodsType()); |
| | | orderGoods.setGoodsName(goods.getGoodsName()); |
| | | orderGoods.setGoodsPicture(goodsFile.getFileUrl()); |
| | | // 保存订单商品 |
| | | 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("单品"); |
| | | } |
| | | // 创建订单,并设置订单ID,删除标志,订单状态,订单号,订单来源,店铺ID,用户ID,订单金额,优惠券金额,折扣金额,应收金额,应收押金,变动应收金额,支付类型 |
| | | Order order = new Order(); |
| | | order.setOrderId(orderId); |
| | | order.setDelFlag(0); |
| | | order.setOrderStatus(1); |
| | | order.setOrderNo(orderNo); |
| | | order.setOrderFrom(1); |
| | | order.setShopId(appPlaceActivityDto.getShopId()); |
| | | order.setUserId(userId); |
| | | order.setOrderMoney(orderGoodsMoney); |
| | | order.setCouponMoney(couponDiscount); |
| | | order.setDiscountMoney(couponDiscount); |
| | | order.setReceivableMoney(orderPayMoney); |
| | | order.setReceivableDeposit(orderPayDeposit); |
| | | order.setChangeReceivableMoney(orderPayMoney); |
| | | order.setPayType(appPlaceActivityDto.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(appPlaceActivityDto.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); |
| | | } |
| | | // 设置订单ID和订单号 |
| | | appPlaceOrderVo.setOrderId(orderId); |
| | | appPlaceOrderVo.setOrderNo(orderNo); |
| | | // 调用支付 |
| | | return appPlaceOrderVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 分页获取用户订单 |
| | |
| | | @Override |
| | | public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { |
| | | Long shopId = merHomeShopTotalVo.getShopId(); |
| | | Integer todayShop = 0; |
| | | Integer unHandleOrder = 0; |
| | | BigDecimal shopTurnover = new BigDecimal("0.00"); |
| | | Integer cycleSurp = 0; |
| | | Integer explorationSurp = 0; |
| | | Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); |
| | | merHomeShopTotalVo.setTodayShop(todayShop); |
| | | merHomeShopTotalVo.setUnHandleOrder(unHandleOrder); |
| | | merHomeShopTotalVo.setShopTurnover(shopTurnover); |
| | | merHomeShopTotalVo.setCycleSurp(cycleSurp); |
| | | merHomeShopTotalVo.setExplorationSurp(explorationSurp); |
| | | merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); |
| | | return merHomeShopTotalVo; |
| | | } |
| | | |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MerVerifyOrderVo verifyOrder(String orderId) { |
| | | public MerVerifyOrderVo verifyOrder(String orderId, Long shopId) { |
| | | // 创建返回对象 |
| | | MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); |
| | | // 根据订单ID获取订单信息 |
| | | Order order = this.getById(orderId); |
| | | if (order.getOrderStatus() != 2) { |
| | | throw new ServiceException(AppErrorConstant.VERIFY_USED); |
| | | } |
| | | if (!order.getShopId().equals(shopId)) { |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | // 根据订单ID获取订单商品列表 |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); |
| | | // 设置返回对象的属性值 |
| | | merVerifyOrderVo.setOrderId(orderId); |
| | | merVerifyOrderVo.setOrderNo(order.getOrderNo()); |
| | | merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); |
| | |
| | | merVerifyOrderVo.setPayTime(order.getPayTime()); |
| | | merVerifyOrderVo.setUseTime(order.getUseTime()); |
| | | merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); |
| | | // 根据订单用户ID获取用户信息 |
| | | SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); |
| | | merVerifyOrderVo.setUserName(sysUser.getNickName()); |
| | | merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); |
| | | merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); |
| | | // 返回结果 |
| | | return merVerifyOrderVo; |
| | | } |
| | | |
| | |
| | | Date nowTime = new Date(); |
| | | //更新订单信息 |
| | | Order order = this.getById(orderId); |
| | | if (order.getOrderStatus() != 2) { |
| | | throw new ServiceException(AppErrorConstant.VERIFY_USED); |
| | | } |
| | | order.setOrderStatus(3); |
| | | order.setUseTime(nowTime); |
| | | order.setUseUserId(merVerifyOrderDto.getUserId()); |
| | | order.setOfflinePayMoney(relPayMoney); |
| | | order.setOffPayTime(nowTime); |
| | | order.setPayMoney(relReceiveMoney.add(relPayMoney)); |
| | | order.setPayMoney(order.getPayMoney().add(relPayMoney)); |
| | | order.setCloseFlag(1); |
| | | order.setChangeReceivableMoney(relReceiveMoney); |
| | | this.saveOrUpdate(order); |
| | | //创建服务商品 |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); |
| | | StringJoiner goodsIdSj = new StringJoiner(","); |
| | | for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { |
| | | goodsIdSj.add(appUserOrderGoodsPageVo.getGoodsId()); |
| | | } |
| | | String goodsIds = goodsIdSj.toString(); |
| | | List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIds).getData(); |
| | | Map<String, Goods> goodsMap = goodsList.stream() |
| | | .collect(Collectors.toMap(Goods::getGoodsId, Function.identity())); |
| | | ConsumerGoods consumerGoods; |
| | | String consumerGoodsId; |
| | | Goods goods; |
| | | List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); |
| | | for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { |
| | | consumerGoods = new ConsumerGoods(); |
| | | goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData(); |
| | | goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId()); |
| | | consumerGoodsId = IdUtils.simpleUUID(); |
| | | consumerGoods.setConsumerGoodsId(consumerGoodsId); |
| | | consumerGoods.setDelFlag(0); |
| | |
| | | consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); |
| | | consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); |
| | | consumerGoods.setGoodsNurses(goods.getGoodsNurses()); |
| | | consumerGoodsService.save(consumerGoods); |
| | | consumerGoods.setSourceFrom(1); |
| | | consumerGoodsList.add(consumerGoods); |
| | | } |
| | | consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); |
| | | //生成返回 |
| | | MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); |
| | | merVerifyOrderVo.setOrderId(orderId); |
| | |
| | | merVerifyOrderVo.setUserName(sysUser.getNickName()); |
| | | merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); |
| | | return merVerifyOrderVo; |
| | | } |
| | | |
| | | /** |
| | | * @param merVerifyCouponDto |
| | | * @return MerVerifyCouponVo |
| | | * @description 确认核销优惠券 |
| | | * @author jqs |
| | | * @date 2023/6/28 11:26 |
| | | */ |
| | | @Override |
| | | public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) { |
| | | MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()).getData(); |
| | | // 创建MerVerifyCouponVo对象 |
| | | MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); |
| | | // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象 |
| | | List<Goods> goodsList = verifyCouponGetVo.getGoodsList(); |
| | | Long userId = verifyCouponGetVo.getUserId(); |
| | | // 调用remoteMemberService的getMember方法获取Member对象 |
| | | Member member = remoteMemberService.getMember(userId).getData(); |
| | | merVerifyCouponVo.setUserName(member.getNickName()); |
| | | merVerifyCouponVo.setUserMobile(member.getMobile()); |
| | | merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom()); |
| | | // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性 |
| | | List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream() |
| | | .map(goods -> { |
| | | MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo(); |
| | | merCouponGoods.setGoodsId(goods.getGoodsId()); |
| | | merCouponGoods.setGoodsName(goods.getGoodsName()); |
| | | // 设置其他属性 |
| | | return merCouponGoods; |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList |
| | | merVerifyCouponVo.setGoodsList(merCouponGoodsList); |
| | | MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon(); |
| | | //生成服务 |
| | | ConsumerGoods consumerGoods; |
| | | String consumerGoodsId; |
| | | GoodsFile goodsFile; |
| | | AppShopGoodsGetDto appShopGoodsGetDto; |
| | | ShopGoods shopGoods; |
| | | List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); |
| | | for (Goods goods : goodsList) { |
| | | consumerGoods = new ConsumerGoods(); |
| | | consumerGoodsId = IdUtils.simpleUUID(); |
| | | consumerGoods.setConsumerGoodsId(consumerGoodsId); |
| | | consumerGoods.setDelFlag(0); |
| | | consumerGoods.setServiceStatus(1); |
| | | consumerGoods.setShopId(memberCoupon.getShopId()); |
| | | consumerGoods.setUserId(memberCoupon.getUserId()); |
| | | consumerGoods.setSourceFrom(2); |
| | | consumerGoods.setMemberCouponId(memberCoupon.getId()); |
| | | consumerGoods.setGoodsId(goods.getGoodsId()); |
| | | consumerGoods.setGoodsName(goods.getGoodsName()); |
| | | consumerGoods.setCycleNumFlag(goods.getCycleNumFlag()); |
| | | consumerGoods.setServiceNum(goods.getServiceNum()); |
| | | appShopGoodsGetDto = new AppShopGoodsGetDto(); |
| | | appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); |
| | | appShopGoodsGetDto.setShopId(memberCoupon.getShopId()); |
| | | //获取商户服务次数 |
| | | shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); |
| | | if(shopGoods!=null){ |
| | | consumerGoods.setServiceNum(shopGoods.getServiceNum()); |
| | | } |
| | | consumerGoods.setUsedNum(0); |
| | | consumerGoods.setGoodsType(goods.getGoodsType()); |
| | | consumerGoods.setCreateTime(new Date()); |
| | | consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); |
| | | goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData(); |
| | | consumerGoods.setGoodsPicture(goodsFile.getFileUrl()); |
| | | consumerGoods.setGoodsNurses(goods.getGoodsNurses()); |
| | | consumerGoods.setSourceFrom(1); |
| | | consumerGoodsList.add(consumerGoods); |
| | | } |
| | | consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); |
| | | return merVerifyCouponVo; |
| | | } |
| | | |
| | | /** |
| | |
| | | BigDecimal buyNumBig; |
| | | Integer serviceNum; |
| | | Integer goodsNum = 0; |
| | | Long memberCouponId; |
| | | 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<Long, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.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; |
| | |
| | | String orderNo = CodeFactoryUtil.getShopOrderNo(); |
| | | OrderGoods orderGoods; |
| | | String orderGoodsId; |
| | | GoodsFile goodsFile; |
| | | BigDecimal cycleMoney = new BigDecimal("0.00"); |
| | | BigDecimal experienceMoney = new BigDecimal("0.00"); |
| | | BigDecimal serviceMoney = new BigDecimal("0.00"); |
| | | BigDecimal goodsMoney = new BigDecimal("0.00"); |
| | | for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { |
| | | goodsId = appBuyGoodsDto.getGoodsId(); |
| | | memberCouponId = appBuyGoodsDto.getMemberCouponId(); |
| | | goods = remoteGoodsService.getGoods(goodsId).getData(); |
| | | goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); |
| | | buyNum = appBuyGoodsDto.getBuyNum(); |
| | | goodsPrice = goods.getSalesPrice(); |
| | | serviceNum = goods.getServiceNum(); |
| | |
| | | orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); |
| | | orderGoods.setServiceNum(serviceNum); |
| | | orderGoods.setGoodsType(goods.getGoodsType()); |
| | | orderGoods.setGoodsName(goods.getGoodsName()); |
| | | orderGoods.setGoodsPicture(goodsFile.getFileUrl()); |
| | | orderGoodsService.save(orderGoods); |
| | | switch (orderGoods.getGoodsType()) { |
| | | case 1: |
| | | cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney()); |
| | | break; |
| | | case 2: |
| | | serviceMoney = serviceMoney.add(orderGoods.getGoodsReceivableMoney()); |
| | | break; |
| | | case 3: |
| | | experienceMoney = experienceMoney.add(orderGoods.getGoodsReceivableMoney()); |
| | | break; |
| | | case 4: |
| | | goodsMoney = goodsMoney.add(orderGoods.getGoodsReceivableMoney()); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | //创建订单 |
| | | Order order = new Order(); |
| | |
| | | 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); |
| | | if (merNewOrderDto.getChangeMoney() != null) { |
| | | order.setChangeReceivableMoney(merNewOrderDto.getChangeMoney()); |
| | | } else { |
| | | order.setChangeReceivableMoney(orderPayMoney); |
| | | } |
| | | order.setPayMoney(orderPayMoney); |
| | | order.setOnlinePayMoney(new BigDecimal("0.00")); |
| | | order.setOfflinePayMoney(orderPayMoney); |
| | | order.setCloseFlag(1); |
| | | order.setOrderRemark(merNewOrderDto.getOrderRemark()); |
| | | order.setGoodsNum(goodsNum); |
| | | order.setCreateTime(nowTime); |
| | |
| | | appMemberBindingDto.setBindingFlag(1); |
| | | remoteMemberService.updateMemberBinding(appMemberBindingDto); |
| | | } |
| | | ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); |
| | | shopTotalChangeDto.setShopId(order.getShopId()); |
| | | shopTotalChangeDto.setCycleMoney(cycleMoney); |
| | | shopTotalChangeDto.setServiceMoney(serviceMoney); |
| | | shopTotalChangeDto.setExperienceMoney(experienceMoney); |
| | | shopTotalChangeDto.setGoodsMoney(goodsMoney); |
| | | remoteShopService.changeShopTotal(shopTotalChangeDto); |
| | | } |
| | | |
| | | |
| | |
| | | Integer orderFrom; |
| | | String orderFromDesc; |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | StringJoiner userIdSj = new StringJoiner(","); |
| | | 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()); |
| | | } |
| | | userIdSj.add(userId.toString()); |
| | | orderFrom = merOrderPageVo.getOrderFrom(); |
| | | if (orderFrom != null) { |
| | | if (orderFrom == 1) { |
| | |
| | | if (merOrderPageVo.getUnPaidMoney() == null) { |
| | | merOrderPageVo.setUnPaidMoney(zeroBig); |
| | | } |
| | | } |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(userIdSj.toString()); |
| | | List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); |
| | | Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); |
| | | for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { |
| | | merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getNickName()); |
| | | merOrderPageVo.setUserMobile(userMap.get(merOrderPageVo.getUserId()).getUserMobile()); |
| | | } |
| | | } |
| | | return merOrderPageVoList; |
| | |
| | | @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())){ |
| | | 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())){ |
| | | if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { |
| | | mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); |
| | | } |
| | | } |
| | | //如果关键词不为null获取对应的用户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ |
| | | if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())) { |
| | | MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); |
| | | mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) { |
| | | mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); |
| | | } |
| | | } |
| | |
| | | // 遍历列表,设置店铺名称、用户名称和未支付金额 |
| | | for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) { |
| | | mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName()); |
| | | if(userMap.get(mgtActivityOrderPageVo.getUserId())!=null){ |
| | | if (userMap.get(mgtActivityOrderPageVo.getUserId()) != null) { |
| | | mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getNickName()); |
| | | } |
| | | BigDecimal unPaidMoney = mgtActivityOrderPageVo.getReceivableMoney().subtract(mgtActivityOrderPageVo.getPayMoney()); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @description 获取订单统计 |
| | | * @author jqs |
| | | * @date 2023/6/16 12:51 |
| | | * @param mgtShopOrderPageDto |
| | | * @return MgtMemberOrderTotalVo |
| | | * @return MgtMemberOrderTotalVo |
| | | * @description 获取订单统计 |
| | | * @author jqs |
| | | * @date 2023/6/16 12:51 |
| | | */ |
| | | @Override |
| | | public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){ |
| | | public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto) { |
| | | //如果区域代码不为null获取对应的商户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ |
| | | 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())){ |
| | | if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { |
| | | mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); |
| | | } |
| | | } |
| | | //如果关键词不为null获取对应的用户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ |
| | | if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())) { |
| | | MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); |
| | | mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) { |
| | | mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * @description 分页获取门店订单列表 |
| | | * @author jqs |
| | | * @date 2023/6/16 14:57 |
| | | * @param page |
| | | * @param mgtShopOrderPageDto |
| | | * @return List<MgtShopOrderPageVo> |
| | | * @return List<MgtShopOrderPageVo> |
| | | * @description 分页获取门店订单列表 |
| | | * @author jqs |
| | | * @date 2023/6/16 14:57 |
| | | */ |
| | | @Override |
| | | public List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto){ |
| | | 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())){ |
| | | 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())){ |
| | | if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { |
| | | mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); |
| | | } |
| | | } |
| | | //如果关键词不为null获取对应的用户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ |
| | | if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())) { |
| | | MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); |
| | | mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) { |
| | | mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); |
| | | } |
| | | } |
| | |
| | | // 从远程服务获取店铺和用户信息 |
| | | Map<Long, MgtSimpleShopVo> shopMap = null; |
| | | Map<Long, MgtSimpleMemberVo> userMap = null; |
| | | if(shopIdSet!=null&&!shopIdSet.isEmpty()){ |
| | | if (shopIdSet != null && !shopIdSet.isEmpty()) { |
| | | String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(shopJoinedString); |
| | |
| | | shopMap = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | | } |
| | | if(userIdSet!=null&&!userIdSet.isEmpty()){ |
| | | if (userIdSet != null && !userIdSet.isEmpty()) { |
| | | String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(userJoinedString); |
| | |
| | | } |
| | | // 遍历列表,设置店铺名称、用户名称和未支付金额 |
| | | for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) { |
| | | if(shopMap!=null&&!shopMap.isEmpty()){ |
| | | if (shopMap != null && !shopMap.isEmpty()) { |
| | | mgtShopOrderPageVo.setShopName(shopMap.get(mgtShopOrderPageVo.getShopId()).getShopName()); |
| | | } |
| | | if(userMap!=null&&!userMap.isEmpty()){ |
| | | if(userMap.get(mgtShopOrderPageVo.getUserId())!=null){ |
| | | 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); |
| | | } |
| | | //处理商品信息 |
| | | List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList; |
| | | String goodsString; |
| | | for (MgtShopOrderPageVo entity : shopOrderPageVoList) { |
| | | mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList(); |
| | | goodsString = mgtOrderGoodsVoList.stream() |
| | | .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum()) |
| | | .collect(Collectors.joining(";")); |
| | | entity.setGoodsInfo(goodsString); |
| | | } |
| | | } |
| | | return shopOrderPageVoList; |
| | |
| | | |
| | | |
| | | /** |
| | | * @description 获取订单详情 |
| | | * @author jqs |
| | | * @date 2023/6/16 16:49 |
| | | * @param orderId |
| | | * @return MgtOrderDetailVo |
| | | * @return MgtOrderDetailVo |
| | | * @description 获取订单详情 |
| | | * @author jqs |
| | | * @date 2023/6/16 16:49 |
| | | */ |
| | | @Override |
| | | public MgtOrderDetailVo getMgtOrderDetail(String orderId){ |
| | | public MgtOrderDetailVo getMgtOrderDetail(String orderId) { |
| | | // 创建MgtOrderDetailVo对象 |
| | | MgtOrderDetailVo mgtOrderDetailVo = new MgtOrderDetailVo(); |
| | | // 获取订单信息 |
| | |
| | | } |
| | | |
| | | /** |
| | | * @description boardOrderTotal |
| | | * @param |
| | | * @return MgtBulletinBoardVo |
| | | * @description boardOrderTotal |
| | | * @author jqs34 |
| | | * @date 2023/6/18 17:20 |
| | | */ |
| | | @Override |
| | | public MgtBulletinBoardVo boardOrderTotal(){ |
| | | public MgtBulletinBoardVo boardOrderTotal() { |
| | | MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(); |
| | | return mgtBulletinBoardVo; |
| | | } |
| | | |
| | | /** |
| | | * @description getTotalOrderTotal |
| | | * @param mgtBaseShopDto |
| | | * @return MgtTotalOrderTotalVo |
| | | * @description getTotalOrderTotal |
| | | * @author jqs34 |
| | | * @date 2023/6/19 22:23 |
| | | */ |
| | | @Override |
| | | public MgtTotalOrderTotalVo getTotalOrderTotal(MgtBaseShopDto mgtBaseShopDto){ |
| | | 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(); |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalOrderTotal(mgtBaseShopDto); |
| | | if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { |
| | | String[] orderTotalKey = new String[MgtMapIntTotalVos.size()]; |
| | | Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()]; |
| | | BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()]; |
| | | for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { |
| | | orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey(); |
| | | orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst(); |
| | | orderMoneyValue[i] = MgtMapIntTotalVos.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()]; |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listTotalOrderTotalGoodsType(mgtBaseShopDto); |
| | | 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 < 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] = "单品"; |
| | | 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("周期"); |
| | | mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { |
| | | MgtMapIntTotalVo.setMapKey("服务"); |
| | | mgtMapBigTotalVo.setMapKey("服务"); |
| | | mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { |
| | | MgtMapIntTotalVo.setMapKey("体验"); |
| | | mgtMapBigTotalVo.setMapKey("体验"); |
| | | mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { |
| | | MgtMapIntTotalVo.setMapKey("单品"); |
| | | mgtMapBigTotalVo.setMapKey("单品"); |
| | | } |
| | | goodsTypeTotalList.add(MgtMapIntTotalVo); |
| | | goodsTypeMoneyList.add(mgtMapBigTotalVo); |
| | | } |
| | | mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | //获取商品销售排名 |
| | | List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listTotalOrderTotalGoodsRank(mgtBaseShopDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | goodsRankList = bigListRemoveNull(goodsRankList); |
| | | mgtTotalOrderTotalVo.setGoodsRankList(goodsRankList); |
| | | } |
| | | //获取来源销售排名 |
| | | List<MgtMapTotalPlusVo> orderFromList = orderMapper.listTotalOrderTotalOrderFrom(mgtBaseShopDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | orderFromList = bigListRemoveNull(orderFromList); |
| | | mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList); |
| | | } |
| | | return mgtTotalOrderTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @param MgtMapIntTotalVos |
| | | * @return List<MgtMapIntTotalVo> |
| | | * @description 去除空字符串 |
| | | * @author jqs |
| | | * @date 2023/6/27 17:35 |
| | | */ |
| | | private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos) { |
| | | for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { |
| | | if (StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())) { |
| | | MgtMapIntTotalVos.remove(i); |
| | | } |
| | | } |
| | | return MgtMapIntTotalVos; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:27 |
| | | * @param MgtMapIntTotalVos |
| | | * @return List<MgtMapIntTotalVo> |
| | | * @description 去除空字符串 |
| | | * @author jqs |
| | | * @date 2023/6/27 17:35 |
| | | */ |
| | | private List<MgtMapBigTotalVo> bigListRemoveNull(List<MgtMapBigTotalVo> MgtMapIntTotalVos) { |
| | | for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { |
| | | if (StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())) { |
| | | MgtMapIntTotalVos.remove(i); |
| | | } |
| | | } |
| | | return MgtMapIntTotalVos; |
| | | } |
| | | |
| | | /** |
| | | * @param mgtBaseShopDto |
| | | * @return MgtTotalActivityTotalVo |
| | | * @return MgtTotalActivityTotalVo |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:27 |
| | | */ |
| | | @Override |
| | | public MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto){ |
| | | 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()]; |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listTotalActivityTotalGoodsType(mgtBaseShopDto); |
| | | if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { |
| | | List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); |
| | | List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); |
| | | totalActivityTotalVo.setCycleTotal(0); |
| | | totalActivityTotalVo.setCycleMoney(BigDecimal.ZERO); |
| | | totalActivityTotalVo.setServiceTotal(0); |
| | | totalActivityTotalVo.setServiceMoney(BigDecimal.ZERO); |
| | | totalActivityTotalVo.setExperienceTotal(0); |
| | | totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | 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] = "单品"; |
| | | 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("周期"); |
| | | totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { |
| | | MgtMapIntTotalVo.setMapKey("服务"); |
| | | mgtMapBigTotalVo.setMapKey("服务"); |
| | | totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { |
| | | MgtMapIntTotalVo.setMapKey("体验"); |
| | | mgtMapBigTotalVo.setMapKey("体验"); |
| | | totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { |
| | | MgtMapIntTotalVo.setMapKey("单品"); |
| | | mgtMapBigTotalVo.setMapKey("单品"); |
| | | } |
| | | goodsTypeTotalList.add(MgtMapIntTotalVo); |
| | | goodsTypeMoneyList.add(mgtMapBigTotalVo); |
| | | } |
| | | totalActivityTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | totalActivityTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | totalActivityTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | //获取订单分布 |
| | | 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(); |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto); |
| | | if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { |
| | | String[] orderTotalKey = new String[MgtMapIntTotalVos.size()]; |
| | | Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()]; |
| | | BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()]; |
| | | for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { |
| | | orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey(); |
| | | orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst(); |
| | | orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond(); |
| | | } |
| | | totalActivityTotalVo.setOrderTotalKey(orderTotalKey); |
| | | totalActivityTotalVo.setOrderTotalValue(orderTotalValue); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:56 |
| | | * @param mgtActivityAgeDto |
| | | * @return MgtTotalActivityTotalVo |
| | | * @return MgtTotalActivityTotalVo |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:56 |
| | | */ |
| | | @Override |
| | | public MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto){ |
| | | 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); |
| | | List<MgtMapIntTotalVo> ageRankList = orderMapper.getTotalActivityAgeRank(mgtActivityAgeDto); |
| | | ageRankList = listRemoveNull(ageRankList); |
| | | MgtTotalActivityTotalVo totalActivityTotalVo = new MgtTotalActivityTotalVo(); |
| | | String[] activityAgeKey = new String[ageRankList.size()]; |
| | | Integer[] activityAgeValue = new Integer[ageRankList.size()]; |
| | | if (!ageRankList.isEmpty()) { |
| | | MgtMapIntTotalVo MgtMapIntTotalVo; |
| | | for (int i = 0; i < ageRankList.size(); i++) { |
| | | MgtMapIntTotalVo = ageRankList.get(i); |
| | | activityAgeKey[i] = MgtMapIntTotalVo.getMapKey(); |
| | | activityAgeValue[i] = MgtMapIntTotalVo.getMapValue(); |
| | | } |
| | | } |
| | | totalActivityTotalVo.setActivityAgeKey(activityAgeKey); |
| | | totalActivityTotalVo.setActivityAgeValue(activityAgeValue); |
| | | return totalActivityTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 15:31 |
| | | * @param mgtBaseShopDto |
| | | * @return MgtTotalDataTotalVo |
| | | * @return MgtTotalDataTotalVo |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 15:31 |
| | | */ |
| | | @Override |
| | | public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto){ |
| | | public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto) { |
| | | //获取人数统计 |
| | | MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto); |
| | | BigDecimal salesTotal = orderMapper.shopSalesTotal(mgtBaseShopDto); |
| | | mgtTotalDataTotalVo.setSalesTotal(salesTotal); |
| | | Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto); |
| | | mgtTotalDataTotalVo.setReorderPerson(reorderPerson); |
| | | Integer returnedPerson = orderMapper.getReturnedPerson(mgtBaseShopDto); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/21 15:26 |
| | | * @param mgtBasePlatformDto |
| | | * @return List<MgtMapTotalVo> |
| | | * @return List<MgtMapIntTotalVo> |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/21 15:26 |
| | | */ |
| | | @Override |
| | | public List<MgtMapTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto){ |
| | | public List<MgtMapIntTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto) { |
| | | return orderMapper.listMemberGoodsRank(mgtBasePlatformDto); |
| | | } |
| | | |
| | | /** |
| | | * @description 获取平台商户数据统计 |
| | | * @param mgtBasePlatformDto |
| | | * @return List<MgtTotalDataTotalVo> |
| | | * @description 获取平台商户数据统计 |
| | | * @author jqs34 |
| | | * @date 2023/6/23 14:01 |
| | | */ |
| | | @Override |
| | | public List<MgtTotalDataTotalVo> getPlTotalDataTotal(MgtBasePlatformDto mgtBasePlatformDto){ |
| | | public List<MgtTotalDataTotalVo> getPlTotalDataTotal(MgtBasePlatformDto mgtBasePlatformDto) { |
| | | //获取需要关联的用户id集合 |
| | | if (mgtBasePlatformDto.getDeptId() != null) { |
| | | List<Long> userIdList = new ArrayList<>(); |
| | |
| | | List<MgtTotalDataTotalVo> mgtTotalDataTotalVoList = new ArrayList<>(); |
| | | MgtBaseShopDto mgtBaseShopDto; |
| | | MgtTotalDataTotalVo mgtTotalDataTotalVo; |
| | | if(shopIdList!=null&&!shopIdList.isEmpty()){ |
| | | for(Long shopId : shopIdList){ |
| | | 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); |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | mgtTotalDataTotalVo.setShopName(shop.getShopName()); |
| | | mgtTotalDataTotalVoList.add(mgtTotalDataTotalVo); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * @description 获取平台商户订单统计 |
| | | * @param mgtBasePlatformDto |
| | | * @return MgtTotalOrderTotalVo |
| | | * @description 获取平台商户订单统计 |
| | | * @author jqs34 |
| | | * @date 2023/6/19 22:23 |
| | | */ |
| | | @Override |
| | | public MgtTotalOrderTotalVo getPlTotalOrderTotal(MgtBasePlatformDto mgtBasePlatformDto){ |
| | | public MgtTotalOrderTotalVo getPlTotalOrderTotal(MgtBasePlatformDto mgtBasePlatformDto) { |
| | | //获取需要关联的用户id集合 |
| | | if (mgtBasePlatformDto.getDeptId() != null) { |
| | | List<Long> userIdList = new ArrayList<>(); |
| | |
| | | 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(); |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto); |
| | | if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { |
| | | String[] orderTotalKey = new String[MgtMapIntTotalVos.size()]; |
| | | Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()]; |
| | | BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()]; |
| | | for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { |
| | | orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey(); |
| | | orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst(); |
| | | orderMoneyValue[i] = MgtMapIntTotalVos.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()]; |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listPlTotalOrderTotalGoodsType(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); |
| | | List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); |
| | | mgtTotalOrderTotalVo.setCycleTotal(0); |
| | | mgtTotalOrderTotalVo.setCycleMoney(BigDecimal.ZERO); |
| | | mgtTotalOrderTotalVo.setServiceTotal(0); |
| | | mgtTotalOrderTotalVo.setServiceMoney(BigDecimal.ZERO); |
| | | mgtTotalOrderTotalVo.setExperienceTotal(0); |
| | | mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO); |
| | | if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { |
| | | MgtMapIntTotalVo MgtMapIntTotalVo; |
| | | MgtMapBigTotalVo mgtMapBigTotalVo; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | 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] = "单品"; |
| | | 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("周期"); |
| | | mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { |
| | | MgtMapIntTotalVo.setMapKey("服务"); |
| | | mgtMapBigTotalVo.setMapKey("服务"); |
| | | mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { |
| | | MgtMapIntTotalVo.setMapKey("体验"); |
| | | mgtMapBigTotalVo.setMapKey("体验"); |
| | | mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { |
| | | MgtMapIntTotalVo.setMapKey("单品"); |
| | | mgtMapBigTotalVo.setMapKey("单品"); |
| | | } |
| | | goodsTypeTotalList.add(MgtMapIntTotalVo); |
| | | goodsTypeMoneyList.add(mgtMapBigTotalVo); |
| | | } |
| | | mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | //获取商品销售排名 |
| | | List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listPlTotalOrderTotalGoodsRank(mgtBasePlatformDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | goodsRankList = bigListRemoveNull(goodsRankList); |
| | | mgtTotalOrderTotalVo.setGoodsRankList(goodsRankList); |
| | | } |
| | | //获取来源销售排名 |
| | | List<MgtMapTotalPlusVo> orderFromList = orderMapper.listPlTotalOrderTotalOrderFrom(mgtBasePlatformDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | orderFromList = bigListRemoveNull(orderFromList); |
| | | mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList); |
| | | } |
| | | return mgtTotalOrderTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:27 |
| | | * @param mgtBasePlatformDto |
| | | * @return MgtTotalActivityTotalVo |
| | | * @return MgtTotalActivityTotalVo |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:27 |
| | | */ |
| | | @Override |
| | | public MgtPlTotalActivityTotalVo getPlTotalActivityTotal(MgtBasePlatformDto mgtBasePlatformDto){ |
| | | public MgtPlTotalActivityTotalVo getPlTotalActivityTotal(MgtBasePlatformDto mgtBasePlatformDto) { |
| | | //获取需要关联的用户id集合 |
| | | if (mgtBasePlatformDto.getDeptId() != null) { |
| | | List<Long> userIdList = new ArrayList<>(); |
| | |
| | | //获取基础统计 |
| | | 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()]; |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listPlTotalActivityTotalGoodsType(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); |
| | | List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); |
| | | totalActivityTotalVo.setCycleTotal(0); |
| | | totalActivityTotalVo.setCycleMoney(BigDecimal.ZERO); |
| | | totalActivityTotalVo.setServiceTotal(0); |
| | | totalActivityTotalVo.setServiceMoney(BigDecimal.ZERO); |
| | | totalActivityTotalVo.setExperienceTotal(0); |
| | | totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); |
| | | if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { |
| | | MgtMapIntTotalVo MgtMapIntTotalVo; |
| | | MgtMapBigTotalVo mgtMapBigTotalVo; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | 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] = "单品"; |
| | | 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("周期"); |
| | | totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { |
| | | MgtMapIntTotalVo.setMapKey("服务"); |
| | | mgtMapBigTotalVo.setMapKey("服务"); |
| | | totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { |
| | | MgtMapIntTotalVo.setMapKey("体验"); |
| | | mgtMapBigTotalVo.setMapKey("体验"); |
| | | totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); |
| | | } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { |
| | | MgtMapIntTotalVo.setMapKey("单品"); |
| | | mgtMapBigTotalVo.setMapKey("单品"); |
| | | } |
| | | } |
| | | totalActivityTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | totalActivityTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | totalActivityTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | //获取订单分布 |
| | | 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(); |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto); |
| | | if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { |
| | | String[] orderTotalKey = new String[MgtMapIntTotalVos.size()]; |
| | | Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()]; |
| | | BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()]; |
| | | for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { |
| | | orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey(); |
| | | orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst(); |
| | | orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond(); |
| | | } |
| | | totalActivityTotalVo.setOrderTotalKey(orderTotalKey); |
| | | totalActivityTotalVo.setOrderTotalValue(orderTotalValue); |
| | |
| | | Map<Long, MgtSimpleShopVo> map = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | | //商户活动次数排名 |
| | | List<MgtMapTotalPlusVo> shopActivityRank = orderMapper.listPlTotalShopActivityRank(mgtBasePlatformDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | shopActivityRank = bigListRemoveNull(shopActivityRank); |
| | | totalActivityTotalVo.setShopSalesRankList(shopActivityRank); |
| | | } |
| | | //商户活动销售额排名 |
| | | List<MgtMapTotalPlusVo> shopActivitySalesRank = orderMapper.listPlTotalShopActivitySalesRank(mgtBasePlatformDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | shopActivitySalesRank = bigListRemoveNull(shopActivitySalesRank); |
| | | totalActivityTotalVo.setShopSalesRankList(shopActivitySalesRank); |
| | | } |
| | | //活动销售额排名 |
| | | List<MgtMapTotalPlusVo> activitySalesRank = orderMapper.listPlTotalActivitySalesRank(mgtBasePlatformDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | activitySalesRank = bigListRemoveNull(activitySalesRank); |
| | | totalActivityTotalVo.setActivitySalesRankList(activitySalesRank); |
| | | } |
| | | return totalActivityTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:56 |
| | | * @param mgtPlActivityAgeDto |
| | | * @return MgtTotalActivityTotalVo |
| | | * @return MgtTotalActivityTotalVo |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:56 |
| | | */ |
| | | @Override |
| | | public MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto){ |
| | | 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; |
| | | List<MgtMapIntTotalVo> ageRankList = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); |
| | | ageRankList = listRemoveNull(ageRankList); |
| | | MgtPlTotalActivityTotalVo plTotalActivityTotalVo = new MgtPlTotalActivityTotalVo(); |
| | | String[] activityAgeKey = new String[ageRankList.size()]; |
| | | Integer[] activityAgeValue = new Integer[ageRankList.size()]; |
| | | if (!ageRankList.isEmpty()) { |
| | | MgtMapIntTotalVo MgtMapIntTotalVo; |
| | | for (int i = 0; i < ageRankList.size(); i++) { |
| | | MgtMapIntTotalVo = ageRankList.get(i); |
| | | activityAgeKey[i] = MgtMapIntTotalVo.getMapKey(); |
| | | activityAgeValue[i] = MgtMapIntTotalVo.getMapValue(); |
| | | } |
| | | } |
| | | plTotalActivityTotalVo.setActivityAgeKey(activityAgeKey); |
| | | plTotalActivityTotalVo.setActivityAgeValue(activityAgeValue); |
| | | return plTotalActivityTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @param verifyCode |
| | | * @return MerVerifyCouponVo |
| | | * @description 获取优惠券核销信息 |
| | | * @author jqs |
| | | * @date 2023/6/27 11:10 |
| | | */ |
| | | @Override |
| | | public MerVerifyCouponVo verifyCoupon(String verifyCode, Long shopId) { |
| | | // 创建MerVerifyCouponVo对象 |
| | | MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); |
| | | // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象 |
| | | MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(verifyCode).getData(); |
| | | MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon(); |
| | | // 检查优惠券状态 |
| | | int couponStatus = memberCoupon.getCouponStatus(); |
| | | if (couponStatus == 0) { |
| | | throw new ServiceException(AppErrorConstant.COUPON_EXPIRED); |
| | | } else if (couponStatus == 2) { |
| | | throw new ServiceException(AppErrorConstant.COUPON_USED); |
| | | } else if (couponStatus != 0) { |
| | | throw new ServiceException(AppErrorConstant.COUPON_NO_FIND); |
| | | } |
| | | if (!memberCoupon.getShopId().equals(shopId)) { |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | List<Goods> goodsList = verifyCouponGetVo.getGoodsList(); |
| | | Long userId = verifyCouponGetVo.getUserId(); |
| | | // 调用remoteMemberService的getMember方法获取Member对象 |
| | | Member member = remoteMemberService.getMember(userId).getData(); |
| | | merVerifyCouponVo.setUserName(member.getNickName()); |
| | | merVerifyCouponVo.setUserMobile(member.getMobile()); |
| | | merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom()); |
| | | // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性 |
| | | List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream() |
| | | .map(goods -> { |
| | | MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo(); |
| | | merCouponGoods.setGoodsId(goods.getGoodsId()); |
| | | merCouponGoods.setGoodsName(goods.getGoodsName()); |
| | | // 设置其他属性 |
| | | return merCouponGoods; |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList |
| | | merVerifyCouponVo.setGoodsList(merCouponGoodsList); |
| | | return merVerifyCouponVo; |
| | | } |
| | | |
| | | /** |
| | | * @param merBaseDto |
| | | * @return BigDecimal |
| | | * @description 获取用户未支付金额 |
| | | * @author jqs |
| | | * @date 2023/6/29 18:00 |
| | | */ |
| | | @Override |
| | | public BigDecimal getMemberUnpaidOrder(MerBaseDto merBaseDto) { |
| | | BigDecimal unpaidMoney = orderMapper.getMemberUnpaidOrder(merBaseDto); |
| | | return unpaidMoney; |
| | | } |
| | | |
| | | /** |
| | | * @param merTotalDto |
| | | * @return MerOrderTotalVo |
| | | * @description 商户获取订单统计 |
| | | * @author jqs |
| | | * @date 2023/7/3 19:29 |
| | | */ |
| | | @Override |
| | | public MerOrderTotalVo getMerOrderTotal(MerTotalDto merTotalDto) { |
| | | if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | MerOrderTotalVo orderTotalVo = orderMapper.getMerOrderTotalOrderFrom(merTotalDto); |
| | | return orderTotalVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @param merTotalDto |
| | | * @return MerOrderDistributionTotalVo |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/7/4 9:29 |
| | | */ |
| | | @Override |
| | | public MerOrderDistributionTotalVo MerOrderDistributionTotalVo(MerTotalDto merTotalDto) { |
| | | if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); |
| | | // 获取订单年龄用户列表 |
| | | List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData(); |
| | | // 如果订单年龄用户列表不为空 |
| | | if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) { |
| | | // 定义变量 |
| | | Integer ageType; |
| | | List<Long> userIdList; |
| | | MerOrderAgeUserVo orderAgeUserVo; |
| | | MgtMapTotalPlusVo mgtMapTotalPlusVo; |
| | | String[] orderTotalKey = new String[5]; |
| | | Integer[] orderTotalValue = new Integer[5]; |
| | | BigDecimal[] orderMoneyValue = new BigDecimal[5]; |
| | | // 遍历订单年龄用户列表 |
| | | for (int i = 0; i < orderAgeUserVoList.size(); i++) { |
| | | orderAgeUserVo = orderAgeUserVoList.get(i); |
| | | ageType = orderAgeUserVo.getAgeType(); |
| | | userIdList = orderAgeUserVo.getUserIdList(); |
| | | // 根据年龄类型设置订单总数键 |
| | | switch (ageType) { |
| | | case 1: |
| | | orderTotalKey[i] = "<20"; |
| | | break; |
| | | case 2: |
| | | orderTotalKey[i] = "21-30"; |
| | | break; |
| | | case 3: |
| | | orderTotalKey[i] = "31-40"; |
| | | break; |
| | | case 4: |
| | | orderTotalKey[i] = "41-50"; |
| | | break; |
| | | case 5: |
| | | orderTotalKey[i] = ">50"; |
| | | break; |
| | | } |
| | | // 如果用户ID列表不为空 |
| | | if (userIdList != null && !userIdList.isEmpty()) { |
| | | mgtMapTotalPlusVo = orderMapper.listMerOrderDistributionTotal(userIdList); |
| | | orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst(); |
| | | orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond(); |
| | | } else { |
| | | orderTotalValue[i] = 0; |
| | | orderMoneyValue[i] = BigDecimal.ZERO; |
| | | } |
| | | } |
| | | // 设置订单分布总数对象的属性值 |
| | | orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); |
| | | orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); |
| | | orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); |
| | | } |
| | | // 返回订单分布总数对象 |
| | | return orderDistributionTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @param merTotalDto |
| | | * @return MerOrderTypeTotalVo |
| | | * @description 商户获取销售占比统计 |
| | | * @author jqs |
| | | * @date 2023/7/4 13:58 |
| | | */ |
| | | @Override |
| | | public MerOrderTypeTotalVo getMerOrderTypeTotal(MerTotalDto merTotalDto) { |
| | | if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | MerOrderTypeTotalVo orderTypeTotalVo = new MerOrderTypeTotalVo(); |
| | | //获取商品分类销售数据 |
| | | List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listMerOrderTotalGoodsType(merTotalDto); |
| | | 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("单品"); |
| | | } |
| | | goodsTypeTotalList.add(MgtMapIntTotalVo); |
| | | goodsTypeMoneyList.add(mgtMapBigTotalVo); |
| | | } |
| | | orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | return orderTypeTotalVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @param merTotalDto |
| | | * @return MerOrderGoodsRankVo |
| | | * @description 商户端获取销售排行 |
| | | * @author jqs |
| | | * @date 2023/7/4 14:23 |
| | | */ |
| | | @Override |
| | | public MerOrderGoodsRankVo getMerOrderGoodsRank(MerTotalDto merTotalDto) { |
| | | if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | MerOrderGoodsRankVo orderGoodsRankVo = new MerOrderGoodsRankVo(); |
| | | List<MgtMapBigTotalVo> goodsRankList = orderMapper.listMerOrderTotalGoodsRank(merTotalDto); |
| | | if (goodsRankList != null && goodsRankList.size() > 0) { |
| | | goodsRankList = bigListRemoveNull(goodsRankList); |
| | | orderGoodsRankVo.setGoodsRankList(goodsRankList); |
| | | } |
| | | return orderGoodsRankVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @param merTotalDto |
| | | * @return MerOrderFromRankVo |
| | | * @description 商户端获取渠道排行 |
| | | * @author jqs |
| | | * @date 2023/7/4 14:51 |
| | | */ |
| | | @Override |
| | | public MerOrderFromRankVo getMerOrderFromRank(MerTotalDto merTotalDto) { |
| | | if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | MerOrderFromRankVo merOrderFromRankVo = new MerOrderFromRankVo(); |
| | | //获取来源销售排名 |
| | | List<MgtMapBigTotalVo> orderFromList = orderMapper.listMerOrderTotalOrderFrom(merTotalDto); |
| | | if (orderFromList != null && orderFromList.size() > 0) { |
| | | orderFromList = bigListRemoveNull(orderFromList); |
| | | merOrderFromRankVo.setOrderFromRankList(orderFromList); |
| | | } |
| | | return merOrderFromRankVo; |
| | | } |
| | | |
| | | /** |
| | | * @param merBaseDto |
| | | * @return MerTotalOrderVo |
| | | * @description 商户端订单管理统计 |
| | | * @author jqs |
| | | * @date 2023/7/4 16:27 |
| | | */ |
| | | @Override |
| | | public MerTotalOrderVo totalMerOrder(MerBaseDto merBaseDto) { |
| | | return orderMapper.totalMerOrder(merBaseDto.getShopId()); |
| | | } |
| | | |
| | | /** |
| | | * @param page |
| | | * @param mgtShopAllOrderPageDto |
| | | * @return List<MgtShopAllOrderPageVo> |
| | | * @description 平台获取商户订单记录 |
| | | * @author jqs |
| | | * @date 2023/7/5 20:17 |
| | | */ |
| | | @Override |
| | | public List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, MgtShopAllOrderPageDto mgtShopAllOrderPageDto) { |
| | | List<MgtShopAllOrderPageVo> shopAllOrderPageVoList = orderMapper.pageMgtShopAllOrder(page, mgtShopAllOrderPageDto); |
| | | if (!shopAllOrderPageVoList.isEmpty()) { |
| | | // 定义变量 |
| | | HashSet<Long> userIdSet = new HashSet<>(); |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | // 遍历列表,获取店铺 ID 和用户 ID |
| | | for (MgtShopAllOrderPageVo mgtShopOrderPageVo : shopAllOrderPageVoList) { |
| | | userIdSet.add(mgtShopOrderPageVo.getUserId()); |
| | | } |
| | | // 从远程服务获取店铺和用户信息 |
| | | Map<Long, MgtSimpleMemberVo> userMap = null; |
| | | 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())); |
| | | } |
| | | // 遍历列表,设置店铺名称、用户名称和未支付金额 |
| | | String userInfo; |
| | | String mobile; |
| | | for (MgtShopAllOrderPageVo mgtShopOrderPageVo : shopAllOrderPageVoList) { |
| | | if (userMap != null && !userMap.isEmpty()) { |
| | | if (userMap.get(mgtShopOrderPageVo.getUserId()) != null) { |
| | | userInfo = userMap.get(mgtShopOrderPageVo.getUserId()).getNickName(); |
| | | mobile = userMap.get(mgtShopOrderPageVo.getUserId()).getUserMobile(); |
| | | if (StringUtils.isNotBlank(mobile)) { |
| | | userInfo = userInfo + "(" + mobile + ")"; |
| | | } |
| | | mgtShopOrderPageVo.setUserInfo(userInfo); |
| | | } |
| | | } |
| | | } |
| | | //处理商品信息 |
| | | List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList; |
| | | String goodsString; |
| | | for (MgtShopAllOrderPageVo entity : shopAllOrderPageVoList) { |
| | | mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList(); |
| | | goodsString = mgtOrderGoodsVoList.stream() |
| | | .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum()) |
| | | .collect(Collectors.joining(";")); |
| | | entity.setGoodsInfo(goodsString); |
| | | } |
| | | } |
| | | return shopAllOrderPageVoList; |
| | | } |
| | | } |