| | |
| | | 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.service.*; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.domain.poji.goods.Goods; |
| | |
| | | import com.ruoyi.system.api.domain.poji.member.Member; |
| | | import com.ruoyi.system.api.domain.poji.shop.Shop; |
| | | import com.ruoyi.system.api.domain.poji.sys.SysUser; |
| | | import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; |
| | | import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; |
| | | import com.ruoyi.order.mapper.order.OrderMapper; |
| | | import com.ruoyi.order.service.order.OrderService; |
| | | import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | * @date: 2023/5/3 0:07 |
| | | */ |
| | | @Override |
| | | public AppSureOrderVo buyGoods(AppSureOrderDto appSureOrderDto){ |
| | | public AppSureOrderVo buyGoods(AppSureOrderDto appSureOrderDto) { |
| | | Long userId = appSureOrderDto.getUserId(); |
| | | AppSureOrderVo appSureOrderVo = new AppSureOrderVo(); |
| | | List<AppSureOrderGoodsVo> appSureOrderGoodsVoList = new ArrayList<>(); |
| | |
| | | BigDecimal goodsRealPrice; |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | List<AppMemberCouponVo> appGoodsMemberCouponVoList; |
| | | Map<Long,AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | Map<Long, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | AppMemberCouponVo appMemberCouponVo; |
| | | Integer couponType; |
| | | BigDecimal moneyThreshold; |
| | |
| | | BigDecimal couponDiscount = new BigDecimal("0.00"); |
| | | BigDecimal orderPayDeposit = new BigDecimal("0.00"); |
| | | BigDecimal orderPayMoney = new BigDecimal("0.00"); |
| | | for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){ |
| | | for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { |
| | | appSureOrderGoodsVo = new AppSureOrderGoodsVo(); |
| | | useCoupon = 0; |
| | | goodsId = appBuyGoodsDto.getGoodsId(); |
| | |
| | | appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); |
| | | appShopGoodsGetDto.setShopId(appSureOrderDto.getShopId()); |
| | | ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); |
| | | if(shopGoods!=null){ |
| | | if (shopGoods != null) { |
| | | goodsPrice = shopGoods.getSalesPrice(); |
| | | } |
| | | appSureOrderGoodsVo.setGoodsPrice(goodsPrice); |
| | | buyNumBig = BigDecimal.valueOf(buyNum); |
| | | goodsTotalPrice = goodsPrice.multiply(buyNumBig); |
| | | goodsRealPrice = goodsTotalPrice; |
| | | if(memberCouponId!=null){ |
| | | if (memberCouponId != null) { |
| | | appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); |
| | | if(StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)){ |
| | | if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { |
| | | couponType = appMemberCouponVo.getCouponType(); |
| | | if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){ |
| | | if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) { |
| | | moneyThreshold = appMemberCouponVo.getMoneyThreshold(); |
| | | if(goodsTotalPrice.compareTo(moneyThreshold)>=0){ |
| | | if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { |
| | | discountMoney = appMemberCouponVo.getDiscountMoney(); |
| | | goodsRealPrice = goodsTotalPrice.subtract(discountMoney); |
| | | useCoupon = 1; |
| | | } |
| | | }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){ |
| | | } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { |
| | | discountPercent = appMemberCouponVo.getDiscountPercent(); |
| | | goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2,BigDecimal.ROUND_HALF_UP); |
| | | goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | discountMoney = goodsRealPrice.subtract(goodsTotalPrice); |
| | | useCoupon = 1; |
| | | }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){ |
| | | } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { |
| | | discountMoney = appMemberCouponVo.getDiscountMoney(); |
| | | goodsRealPrice = goodsTotalPrice.subtract(discountMoney); |
| | | useCoupon = 1; |
| | |
| | | appSureOrderGoodsVo.setCouponDiscount(discountMoney); |
| | | appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); |
| | | goodsDeposit = goods.getSubscription(); |
| | | if(goodsDeposit == null){ |
| | | if (goodsDeposit == null) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | } |
| | | appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); |
| | |
| | | orderPayMoney = orderPayMoney.add(goodsRealPrice); |
| | | //商品关联优惠券 |
| | | appGoodsMemberCouponVoList = new ArrayList<>(); |
| | | if(appMemberCouponVoList!=null && !appMemberCouponVoList.isEmpty()){ |
| | | for(AppMemberCouponVo entity : appMemberCouponVoList){ |
| | | if(StringUtils.isBlank(entity.getRelGoodsIds())){ |
| | | if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) { |
| | | for (AppMemberCouponVo entity : appMemberCouponVoList) { |
| | | if (StringUtils.isBlank(entity.getRelGoodsIds())) { |
| | | appGoodsMemberCouponVoList.add(entity); |
| | | }else if(entity.getRelGoodsIds().contains(goodsId)){ |
| | | } else if (entity.getRelGoodsIds().contains(goodsId)) { |
| | | appGoodsMemberCouponVoList.add(entity); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 创建订单 |
| | | * |
| | | * @param appPlaceOrderDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto){ |
| | | public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) { |
| | | Long userId = appPlaceOrderDto.getUserId(); |
| | | AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo(); |
| | | List<AppSureOrderGoodsVo> appSureOrderGoodsVoList = new ArrayList<>(); |
| | |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | Map<Long,AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | Map<Long, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | AppMemberCouponVo appMemberCouponVo; |
| | | Integer couponType; |
| | | BigDecimal moneyThreshold; |
| | |
| | | OrderGoods orderGoods; |
| | | String orderGoodsId; |
| | | HashSet<String> goodsTypeSet = new HashSet<>(); |
| | | for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){ |
| | | for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { |
| | | appSureOrderGoodsVo = new AppSureOrderGoodsVo(); |
| | | useCoupon = 0; |
| | | goodsId = appBuyGoodsDto.getGoodsId(); |
| | |
| | | appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); |
| | | appShopGoodsGetDto.setShopId(appPlaceOrderDto.getShopId()); |
| | | ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); |
| | | if(shopGoods!=null){ |
| | | if (shopGoods != null) { |
| | | goodsPrice = shopGoods.getSalesPrice(); |
| | | serviceNum = shopGoods.getServiceNum(); |
| | | } |
| | |
| | | buyNumBig = BigDecimal.valueOf(buyNum); |
| | | goodsTotalPrice = goodsPrice.multiply(buyNumBig); |
| | | goodsRealPrice = goodsTotalPrice; |
| | | if(memberCouponId!=null){ |
| | | if (memberCouponId != null) { |
| | | appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); |
| | | if(StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)){ |
| | | if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { |
| | | couponType = appMemberCouponVo.getCouponType(); |
| | | if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){ |
| | | if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) { |
| | | moneyThreshold = appMemberCouponVo.getMoneyThreshold(); |
| | | if(goodsTotalPrice.compareTo(moneyThreshold)>=0){ |
| | | if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { |
| | | discountMoney = appMemberCouponVo.getDiscountMoney(); |
| | | goodsRealPrice = goodsTotalPrice.subtract(discountMoney); |
| | | useCoupon = 1; |
| | | } |
| | | }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){ |
| | | } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { |
| | | discountPercent = appMemberCouponVo.getDiscountPercent(); |
| | | goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2,BigDecimal.ROUND_HALF_UP); |
| | | goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | discountMoney = goodsRealPrice.subtract(goodsTotalPrice); |
| | | useCoupon = 1; |
| | | }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){ |
| | | } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { |
| | | discountMoney = appMemberCouponVo.getDiscountMoney(); |
| | | goodsRealPrice = goodsTotalPrice.subtract(discountMoney); |
| | | useCoupon = 1; |
| | |
| | | appSureOrderGoodsVo.setCouponDiscount(discountMoney); |
| | | appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); |
| | | goodsDeposit = goods.getSubscription(); |
| | | if(goodsDeposit == null){ |
| | | if (goodsDeposit == null) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | } |
| | | appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); |
| | |
| | | orderGoods.setOrderId(orderId); |
| | | orderGoods.setGoodsId(goodsId); |
| | | orderGoods.setBuyNum(buyNum); |
| | | if(memberCouponId!=null){ |
| | | if (memberCouponId != null) { |
| | | orderGoods.setCouponId(memberCouponId.toString()); |
| | | } |
| | | orderGoods.setGoodsPrice(goodsPrice); |
| | |
| | | appShoppingCartDelDto.setGoodsId(goodsId); |
| | | appShoppingCartDelDto.setUserId(userId); |
| | | remoteShoppingCartService.deleteShoppingCart(appShoppingCartDelDto); |
| | | if(goods.getGoodsType()==1){ |
| | | if (goods.getGoodsType() == 1) { |
| | | goodsTypeSet.add("周期"); |
| | | }else if(goods.getGoodsType()==2){ |
| | | } else if (goods.getGoodsType() == 2) { |
| | | goodsTypeSet.add("服务"); |
| | | }else if(goods.getGoodsType()==3){ |
| | | } else if (goods.getGoodsType() == 3) { |
| | | goodsTypeSet.add("体验"); |
| | | }else if(goods.getGoodsType()==4){ |
| | | } else if (goods.getGoodsType() == 4) { |
| | | goodsTypeSet.add("单品"); |
| | | } |
| | | } |
| | |
| | | order.setReceivableMoney(orderPayMoney); |
| | | order.setReceivableDeposit(orderPayDeposit); |
| | | order.setPayType(appPlaceOrderDto.getPayType()); |
| | | if(order.getPayType()==1){ |
| | | 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){ |
| | | } else if (order.getPayType() == 2) { |
| | | order.setPayMoney(orderPayDeposit); |
| | | order.setOnlinePayMoney(orderPayDeposit); |
| | | appPlaceOrderVo.setPayMoney(orderPayDeposit); |
| | |
| | | order.setCreateTime(new Date()); |
| | | this.save(order); |
| | | //更新用户商品类型 |
| | | if(goodsTypeSet!=null&&goodsTypeSet.size()>0){ |
| | | if (goodsTypeSet != null && goodsTypeSet.size() > 0) { |
| | | AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto(); |
| | | appMemberGoodsTypeDto.setUserId(userId); |
| | | appMemberGoodsTypeDto.setGoodsTypeSet(goodsTypeSet); |
| | |
| | | |
| | | /** |
| | | * 分页获取用户订单 |
| | | * |
| | | * @param page |
| | | * @param appUserOrderPageDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<AppUserOrderPageVo> pageUserOrder(Page page, AppUserOrderPageDto appUserOrderPageDto){ |
| | | List<AppUserOrderPageVo> appUserOrderPageVoList = orderMapper.pageUserOrder(page,appUserOrderPageDto); |
| | | if(appUserOrderPageVoList!=null&&!appUserOrderPageVoList.isEmpty()){ |
| | | public List<AppUserOrderPageVo> pageUserOrder(Page page, AppUserOrderPageDto appUserOrderPageDto) { |
| | | List<AppUserOrderPageVo> appUserOrderPageVoList = orderMapper.pageUserOrder(page, appUserOrderPageDto); |
| | | if (appUserOrderPageVoList != null && !appUserOrderPageVoList.isEmpty()) { |
| | | Long shopId; |
| | | Shop shop; |
| | | HashSet<Long> set=new HashSet<Long>(); |
| | | for(AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList){ |
| | | HashSet<Long> set = new HashSet<Long>(); |
| | | for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) { |
| | | shopId = appUserOrderPageVo.getShopId(); |
| | | set.add(shopId); |
| | | } |
| | |
| | | Shop shopTemp = remoteShopService.getShop(shopIdLong).getData(); |
| | | shopMap.put(shopIdLong, shopTemp); |
| | | }); |
| | | for(AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList){ |
| | | for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) { |
| | | shop = shopMap.get(appUserOrderPageVo.getShopId()); |
| | | appUserOrderPageVo.setShopName(shop.getShopName()); |
| | | appUserOrderPageVo.setShopServicePhone(shop.getShopServicePhone()); |
| | | if(appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())){ |
| | | if (appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())) { |
| | | appUserOrderPageVo.setSameShop(1); |
| | | }else{ |
| | | } else { |
| | | appUserOrderPageVo.setSameShop(0); |
| | | } |
| | | appUserOrderPageVo.setVerifyCode("1-"+appUserOrderPageVo.getOrderId()); |
| | | appUserOrderPageVo.setVerifyCode("1-" + appUserOrderPageVo.getOrderId()); |
| | | } |
| | | } |
| | | return appUserOrderPageVoList; |
| | |
| | | |
| | | |
| | | /** |
| | | * |
| | | * @param appBaseGetDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public AppUserOrderGetVo getAppOrderDetail(AppBaseGetDto appBaseGetDto){ |
| | | public AppUserOrderGetVo getAppOrderDetail(AppBaseGetDto appBaseGetDto) { |
| | | String orderId = appBaseGetDto.getId(); |
| | | Order order = this.getById(orderId); |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId); |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); |
| | | AppUserOrderGetVo appUserOrderGetVo = new AppUserOrderGetVo(); |
| | | appUserOrderGetVo.setOrderId(orderId); |
| | | appUserOrderGetVo.setOrderNo(order.getOrderNo()); |
| | |
| | | Shop shop = remoteShopService.getShop(order.getShopId()).getData(); |
| | | appUserOrderGetVo.setShopName(shop.getShopName()); |
| | | appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); |
| | | appUserOrderGetVo.setVerifyCode("1-"+orderId); |
| | | appUserOrderGetVo.setVerifyCode("1-" + orderId); |
| | | return appUserOrderGetVo; |
| | | } |
| | | |
| | | /** |
| | | * 取消订单 |
| | | * |
| | | * @param orderId |
| | | */ |
| | | @Override |
| | | public void cancelOrder(String orderId){ |
| | | public void cancelOrder(String orderId) { |
| | | Order order = this.getById(orderId); |
| | | if(order.getOrderStatus()!=1){ |
| | | if (order.getOrderStatus() != 1) { |
| | | throw new ServiceException(AppErrorConstant.CANCEL_ERROR_ORDER); |
| | | } |
| | | order.setOrderStatus(0); |
| | |
| | | |
| | | /** |
| | | * 获取用户订单统计 |
| | | * |
| | | * @param userId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 获取B端首页统计 |
| | | * |
| | | * @param merHomeShopTotalVo |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo){ |
| | | public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { |
| | | Long shopId = merHomeShopTotalVo.getShopId(); |
| | | Integer todayShop = 0; |
| | | Integer unHandleOrder = 0; |
| | |
| | | |
| | | /** |
| | | * 核销订单 |
| | | * |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MerVerifyOrderVo verifyOrder(String orderId){ |
| | | public MerVerifyOrderVo verifyOrder(String orderId) { |
| | | MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); |
| | | Order order = this.getById(orderId); |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId); |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); |
| | | merVerifyOrderVo.setOrderId(orderId); |
| | | merVerifyOrderVo.setOrderNo(order.getOrderNo()); |
| | | merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); |
| | |
| | | |
| | | /** |
| | | * 确认核销订单 |
| | | * |
| | | * @param merVerifyOrderDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto){ |
| | | public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto) { |
| | | String orderId = merVerifyOrderDto.getOrderId(); |
| | | BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney(); |
| | | BigDecimal relPayMoney = merVerifyOrderDto.getRelPayMoney(); |
| | |
| | | order.setUseTime(nowTime); |
| | | order.setUseUserId(merVerifyOrderDto.getUserId()); |
| | | order.setOfflinePayMoney(relPayMoney); |
| | | order.setOffPayTime(nowTime); |
| | | order.setPayMoney(relReceiveMoney.add(relPayMoney)); |
| | | order.setCloseFlag(1); |
| | | this.saveOrUpdate(order); |
| | | //创建服务商品 |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId); |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); |
| | | ConsumerGoods consumerGoods; |
| | | String consumerGoodsId; |
| | | for(AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList){ |
| | | Goods goods; |
| | | for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { |
| | | consumerGoods = new ConsumerGoods(); |
| | | goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData(); |
| | | consumerGoodsId = IdUtils.simpleUUID(); |
| | | consumerGoods.setConsumerGoodsId(consumerGoodsId); |
| | | consumerGoods.setDelFlag(0); |
| | |
| | | consumerGoods.setUsedNum(0); |
| | | consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); |
| | | consumerGoods.setCreateTime(nowTime); |
| | | consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); |
| | | consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); |
| | | consumerGoods.setGoodsNurses(goods.getGoodsNurses()); |
| | | consumerGoodsService.save(consumerGoods); |
| | | } |
| | | //生成返回 |
| | |
| | | |
| | | /** |
| | | * 收银未结清订单列表 |
| | | * |
| | | * @param page |
| | | * @param merMemberNoClearOrderDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){ |
| | | List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page,merMemberNoClearOrderDto.getMemberUserId()); |
| | | if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){ |
| | | public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) { |
| | | List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page, merMemberNoClearOrderDto.getMemberUserId()); |
| | | if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) { |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){ |
| | | for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) { |
| | | merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney())); |
| | | if(merMemberNoClearOrderVo.getUnPaidMoney()==null){ |
| | | if (merMemberNoClearOrderVo.getUnPaidMoney() == null) { |
| | | merMemberNoClearOrderVo.setUnPaidMoney(zeroBig); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 结清订单 |
| | | * |
| | | * @param merCloseOrderDto |
| | | */ |
| | | @Override |
| | | public void merCloseOrder(MerCloseOrderDto merCloseOrderDto){ |
| | | public void merCloseOrder(MerCloseOrderDto merCloseOrderDto) { |
| | | Order order = this.getById(merCloseOrderDto.getOrderId()); |
| | | order.setOfflinePayMoney(merCloseOrderDto.getPayMoney()); |
| | | order.setOffPayTime(new Date()); |
| | | order.setPayMoney(order.getPayMoney().add(merCloseOrderDto.getPayMoney())); |
| | | order.setCloseFlag(1); |
| | | this.saveOrUpdate(order); |
| | |
| | | |
| | | /** |
| | | * 创建新订单 |
| | | * |
| | | * @param merNewOrderDto |
| | | */ |
| | | @Override |
| | | public void createNewOrder(MerNewOrderDto merNewOrderDto){ |
| | | public void createNewOrder(MerNewOrderDto merNewOrderDto) { |
| | | Long userId = merNewOrderDto.getBuyUserId(); |
| | | Date nowTime = new Date(); |
| | | //如果非指定用户判断是否需要通过手机号创建新用户 |
| | | if(userId==null){ |
| | | if (userId == null) { |
| | | String name = merNewOrderDto.getName(); |
| | | String mobile = merNewOrderDto.getMobile(); |
| | | Member member = remoteMemberService.getMemberByMobile(mobile).getData(); |
| | | SysUser sysUser; |
| | | if(member!=null){ |
| | | if (member != null) { |
| | | sysUser = remoteUserService.getSysUser(member.getUserId()).getData(); |
| | | }else{ |
| | | } else { |
| | | //创建新用户 |
| | | String memberId = IdUtils.simpleUUID(); |
| | | sysUser = new SysUser(); |
| | |
| | | sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); |
| | | String password = "hongruitang"; |
| | | sysUser.setPassword(SecurityUtils.encryptPassword(password)); |
| | | log.debug("sysUser"+sysUser.toString()); |
| | | log.debug("sysUser" + sysUser.toString()); |
| | | sysUser = remoteUserService.registerUser(sysUser).getData(); |
| | | member = new Member(); |
| | | member.setMemberId(memberId); |
| | |
| | | Long shopId = merNewOrderDto.getShopId(); |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | Map<Long,AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); |
| | | if(null != appMemberCouponVoList){ |
| | | Map<Long, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); |
| | | if (null != appMemberCouponVoList) { |
| | | appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | } |
| | | |
| | |
| | | String orderNo = CodeFactoryUtil.getShopOrderNo(); |
| | | OrderGoods orderGoods; |
| | | String orderGoodsId; |
| | | for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){ |
| | | for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { |
| | | goodsId = appBuyGoodsDto.getGoodsId(); |
| | | memberCouponId = appBuyGoodsDto.getMemberCouponId(); |
| | | goods = remoteGoodsService.getGoods(goodsId).getData(); |
| | |
| | | appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); |
| | | appShopGoodsGetDto.setShopId(shopId); |
| | | ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); |
| | | if(shopGoods!=null){ |
| | | if (shopGoods != null) { |
| | | goodsPrice = shopGoods.getSalesPrice(); |
| | | serviceNum = shopGoods.getServiceNum(); |
| | | } |
| | |
| | | goodsTotalPrice = goodsPrice.multiply(buyNumBig); |
| | | goodsRealPrice = goodsTotalPrice; |
| | | //优惠券计算 |
| | | if(memberCouponId!=null){ |
| | | if (memberCouponId != null) { |
| | | appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); |
| | | if(null != appMemberCouponVo && (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId))){ |
| | | if (null != appMemberCouponVo && (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId))) { |
| | | couponType = appMemberCouponVo.getCouponType(); |
| | | if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){ |
| | | if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) { |
| | | moneyThreshold = appMemberCouponVo.getMoneyThreshold(); |
| | | if(goodsTotalPrice.compareTo(moneyThreshold)>=0){ |
| | | if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { |
| | | discountMoney = appMemberCouponVo.getDiscountMoney(); |
| | | goodsRealPrice = goodsTotalPrice.subtract(discountMoney); |
| | | } |
| | | }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){ |
| | | } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { |
| | | discountPercent = appMemberCouponVo.getDiscountPercent(); |
| | | goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2,BigDecimal.ROUND_HALF_UP); |
| | | goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | discountMoney = goodsRealPrice.subtract(goodsTotalPrice); |
| | | }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){ |
| | | } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { |
| | | discountMoney = appMemberCouponVo.getDiscountMoney(); |
| | | goodsRealPrice = goodsTotalPrice.subtract(discountMoney); |
| | | } |
| | |
| | | } |
| | | |
| | | goodsDeposit = goods.getSubscription(); |
| | | if(goodsDeposit == null){ |
| | | if (goodsDeposit == null) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | } |
| | | goodsNum = goodsNum + buyNum; |
| | |
| | | orderGoods.setOrderId(orderId); |
| | | orderGoods.setGoodsId(goodsId); |
| | | orderGoods.setBuyNum(buyNum); |
| | | if(null != memberCouponId){ |
| | | if (null != memberCouponId) { |
| | | orderGoods.setCouponId(memberCouponId.toString()); |
| | | } |
| | | orderGoods.setGoodsPrice(goodsPrice); |
| | |
| | | order.setReceivableMoney(orderPayMoney); |
| | | order.setReceivableDeposit(new BigDecimal("0.00")); |
| | | order.setPayType(1); |
| | | if(order.getPayType()==1){ |
| | | if (order.getPayType() == 1) { |
| | | order.setPayMoney(orderPayMoney); |
| | | order.setOnlinePayMoney(orderPayMoney); |
| | | order.setCloseFlag(1); |
| | | }else if(order.getPayType()==2){ |
| | | } else if (order.getPayType() == 2) { |
| | | order.setPayMoney(orderPayDeposit); |
| | | order.setOnlinePayMoney(orderPayDeposit); |
| | | order.setCloseFlag(0); |
| | | } |
| | | order.setOrderRemark(merNewOrderDto.getOrderRemark()); |
| | | order.setGoodsNum(goodsNum); |
| | | order.setCreateTime(new Date()); |
| | | order.setPayTime(new Date()); |
| | | order.setUseTime(new Date()); |
| | | order.setCreateTime(nowTime); |
| | | order.setPayTime(nowTime); |
| | | order.setUseTime(nowTime); |
| | | order.setUseUserId(merNewOrderDto.getUserId()); |
| | | order.setPayMoney(merNewOrderDto.getPayMoney()); |
| | | order.setOnlinePayMoney(new BigDecimal("0.00")); |
| | | order.setOfflinePayMoney(merNewOrderDto.getPayMoney()); |
| | | order.setOffPayTime(nowTime); |
| | | order.setCloseFlag(1); |
| | | this.save(order); |
| | | //创建服务 |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId); |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); |
| | | ConsumerGoods consumerGoods; |
| | | String consumerGoodsId; |
| | | for(AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList){ |
| | | for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { |
| | | consumerGoods = new ConsumerGoods(); |
| | | goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData(); |
| | | consumerGoodsId = IdUtils.simpleUUID(); |
| | | consumerGoods.setConsumerGoodsId(consumerGoodsId); |
| | | consumerGoods.setDelFlag(0); |
| | |
| | | consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); |
| | | consumerGoods.setUsedNum(0); |
| | | consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); |
| | | consumerGoods.setCreateTime(new Date()); |
| | | consumerGoods.setCreateTime(nowTime); |
| | | consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); |
| | | consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); |
| | | consumerGoods.setGoodsNurses(goods.getGoodsNurses()); |
| | | consumerGoodsService.save(consumerGoods); |
| | | } |
| | | Member member = remoteMemberService.getMember(userId).getData(); |
| | | if(member!=null&&member.getBindingFlag()!=1){ |
| | | if (member != null && member.getBindingFlag() != 1) { |
| | | //绑定商户 |
| | | AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); |
| | | appMemberBindingDto.setShopId(shopId); |
| | |
| | | |
| | | |
| | | /** |
| | | * |
| | | * @param merOrderPageDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto){ |
| | | public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto) { |
| | | List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerOrder(page, merOrderPageDto); |
| | | if(merOrderPageVoList!=null&&!merOrderPageVoList.isEmpty()){ |
| | | if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) { |
| | | Long userId; |
| | | Member member; |
| | | Integer orderFrom; |
| | | String orderFromDesc; |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | for(MerOrderPageVo merOrderPageVo : merOrderPageVoList){ |
| | | for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { |
| | | userId = merOrderPageVo.getUserId(); |
| | | member = remoteMemberService.getMember(userId).getData(); |
| | | if(member!=null){ |
| | | if(StringUtils.isNotBlank(member.getNickName())){ |
| | | if (member != null) { |
| | | if (StringUtils.isNotBlank(member.getNickName())) { |
| | | merOrderPageVo.setUserName(member.getNickName()); |
| | | } |
| | | merOrderPageVo.setUserMobile(member.getMobile()); |
| | | }else{ |
| | | } else { |
| | | SysUser sysUser = remoteUserService.getSysUser(userId).getData(); |
| | | if(StringUtils.isNotBlank(sysUser.getNickName())){ |
| | | if (StringUtils.isNotBlank(sysUser.getNickName())) { |
| | | merOrderPageVo.setUserName(sysUser.getNickName()); |
| | | } |
| | | merOrderPageVo.setUserMobile(sysUser.getPhonenumber()); |
| | | } |
| | | orderFrom = merOrderPageVo.getOrderFrom(); |
| | | if(orderFrom!=null){ |
| | | if(orderFrom == 1){ |
| | | if (orderFrom != null) { |
| | | if (orderFrom == 1) { |
| | | orderFromDesc = "商城订单"; |
| | | }else{ |
| | | } else { |
| | | orderFromDesc = "线下创建"; |
| | | } |
| | | }else{ |
| | | } else { |
| | | orderFromDesc = "商城订单"; |
| | | } |
| | | merOrderPageVo.setOrderFromDesc(orderFromDesc); |
| | | merOrderPageVo.setUnPaidMoney(merOrderPageVo.getReceivableMoney().subtract(merOrderPageVo.getPayMoney())); |
| | | if(merOrderPageVo.getUnPaidMoney()==null){ |
| | | if (merOrderPageVo.getUnPaidMoney() == null) { |
| | | merOrderPageVo.setUnPaidMoney(zeroBig); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param page |
| | | * @param merMemberNoClearOrderDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){ |
| | | List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page,merMemberNoClearOrderDto.getMemberUserId()); |
| | | if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){ |
| | | public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) { |
| | | List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page, merMemberNoClearOrderDto.getMemberUserId()); |
| | | if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) { |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){ |
| | | for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) { |
| | | merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney())); |
| | | if(merMemberNoClearOrderVo.getUnPaidMoney()==null){ |
| | | if (merMemberNoClearOrderVo.getUnPaidMoney() == null) { |
| | | merMemberNoClearOrderVo.setUnPaidMoney(zeroBig); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 获取用户订单统计 |
| | | * |
| | | * @param mgtMemberOrderTotalDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MgtMemberOrderTotalVo getMgtMemberOrderTotal(MgtMemberOrderTotalDto mgtMemberOrderTotalDto){ |
| | | public MgtMemberOrderTotalVo getMgtMemberOrderTotal(MgtMemberOrderTotalDto mgtMemberOrderTotalDto) { |
| | | MgtMemberOrderTotalVo mgtMemberOrderTotalVo = orderMapper.getMgtMemberOrderTotal(mgtMemberOrderTotalDto); |
| | | return mgtMemberOrderTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * 分页获取用户订单列表 |
| | | * |
| | | * @param page |
| | | * @param mgtMemberOrderPageDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto){ |
| | | public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto) { |
| | | // 通过orderMapper获取MgtMemberOrderPageVoList |
| | | List<MgtMemberOrderPageVo> mgtMemberOrderPageVoList = orderMapper.pageMgtMemberOrder(page, mgtMemberOrderPageDto); |
| | | if(mgtMemberOrderPageVoList!=null&&!mgtMemberOrderPageVoList.isEmpty()){ |
| | | // 如果MgtMemberOrderPageVoList不为空 |
| | | if (mgtMemberOrderPageVoList != null && !mgtMemberOrderPageVoList.isEmpty()) { |
| | | Long shopId; |
| | | Shop shop; |
| | | for(MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList){ |
| | | HashSet<String> set = new HashSet<>(); |
| | | // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中 |
| | | for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) { |
| | | shopId = mgtMemberOrderPageVo.getShopId(); |
| | | shop = remoteShopService.getShop(shopId).getData(); |
| | | mgtMemberOrderPageVo.setShopName(shop.getShopName()); |
| | | set.add(shopId.toString()); |
| | | } |
| | | // 将set中的shopId转换为逗号分隔的字符串 |
| | | String joinedString = String.join(",", set); |
| | | // 通过remoteShopService获取MgtSimpleShopVoList |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(joinedString).getData(); |
| | | // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo |
| | | Map<Long, MgtSimpleShopVo> map = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | | // 遍历MgtMemberOrderPageVoList,根据shopId获取对应的MgtSimpleShopVo并将其shopName设置到MgtMemberOrderPageVo中 |
| | | for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) { |
| | | shopId = mgtMemberOrderPageVo.getShopId(); |
| | | mgtMemberOrderPageVo.setShopName(map.get(shopId).getShopName()); |
| | | } |
| | | } |
| | | // 返回MgtMemberOrderPageVoList |
| | | return mgtMemberOrderPageVoList; |
| | | } |
| | | |
| | | /** |
| | | * @param page |
| | | * @param mgtShopOrderPageDto |
| | | * @return List<MgtActivityOrderPageVo> |
| | | * @description 分页获取活动订单列表 |
| | | * @author jqs |
| | | * @date 2023/6/16 10:43 |
| | | */ |
| | | @Override |
| | | public List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto) { |
| | | //如果区域代码不为null获取对应的商户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ |
| | | MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); |
| | | mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); |
| | | mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); |
| | | mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); |
| | | MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ |
| | | mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); |
| | | } |
| | | } |
| | | //如果关键词不为null获取对应的用户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ |
| | | MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); |
| | | mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ |
| | | mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); |
| | | } |
| | | } |
| | | // 从数据库中获取活动订单列表 |
| | | List<MgtActivityOrderPageVo> activityOrderPageVoList = orderMapper.pageMgtActivityOrder(page, mgtShopOrderPageDto); |
| | | // 如果列表不为空 |
| | | if (!activityOrderPageVoList.isEmpty()) { |
| | | // 定义变量 |
| | | HashSet<Long> shopIdSet = new HashSet<>(); |
| | | HashSet<Long> userIdSet = new HashSet<>(); |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | // 遍历列表,获取店铺 ID 和用户 ID |
| | | for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) { |
| | | shopIdSet.add(mgtActivityOrderPageVo.getShopId()); |
| | | userIdSet.add(mgtActivityOrderPageVo.getUserId()); |
| | | } |
| | | // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串 |
| | | String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | // 从远程服务获取店铺和用户信息 |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(shopJoinedString).getData(); |
| | | Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | | List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData(); |
| | | Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); |
| | | // 遍历列表,设置店铺名称、用户名称和未支付金额 |
| | | for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) { |
| | | mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName()); |
| | | mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getUserName()); |
| | | BigDecimal unPaidMoney = mgtActivityOrderPageVo.getReceivableMoney().subtract(mgtActivityOrderPageVo.getPayMoney()); |
| | | mgtActivityOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); |
| | | } |
| | | } |
| | | // 返回处理后的活动订单列表 |
| | | return activityOrderPageVoList; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取订单统计 |
| | | * @author jqs |
| | | * @date 2023/6/16 12:51 |
| | | * @param mgtShopOrderPageDto |
| | | * @return MgtMemberOrderTotalVo |
| | | */ |
| | | @Override |
| | | public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){ |
| | | //如果区域代码不为null获取对应的商户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ |
| | | MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); |
| | | mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); |
| | | mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); |
| | | mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); |
| | | MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ |
| | | mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); |
| | | } |
| | | } |
| | | //如果关键词不为null获取对应的用户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ |
| | | MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); |
| | | mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ |
| | | mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); |
| | | } |
| | | } |
| | | MgtOrderTotal mgtOrderTotal = new MgtOrderTotal(); |
| | | MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst(); |
| | | MgtOrderTotal mgtOrderTotalSecond = orderMapper.totalOrderSecond(mgtShopOrderPageDto); |
| | | MgtOrderTotal mgtOrderTotalThird = orderMapper.totalOrderThird(mgtShopOrderPageDto); |
| | | mgtOrderTotal.setOrderTotal(mgtOrderTotalFirst.getOrderTotal()); |
| | | mgtOrderTotal.setOrderMoneyTotal(mgtOrderTotalFirst.getOrderMoneyTotal()); |
| | | mgtOrderTotal.setShopOrderTotal(mgtOrderTotalSecond.getShopOrderTotal()); |
| | | mgtOrderTotal.setShopOrderMoneyTotal(mgtOrderTotalSecond.getShopOrderMoneyTotal()); |
| | | mgtOrderTotal.setShopPayMoneyTotal(mgtOrderTotalSecond.getShopPayMoneyTotal()); |
| | | mgtOrderTotal.setShopUnPayMoneyTotal(mgtOrderTotalSecond.getShopOrderMoneyTotal().subtract(mgtOrderTotalSecond.getShopPayMoneyTotal())); |
| | | mgtOrderTotal.setActivityOrderTotal(mgtOrderTotalThird.getActivityOrderTotal()); |
| | | mgtOrderTotal.setActivityOrderMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal()); |
| | | mgtOrderTotal.setActivityPayMoneyTotal(mgtOrderTotalThird.getActivityPayMoneyTotal()); |
| | | mgtOrderTotal.setActivityUnPayMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal().subtract(mgtOrderTotalThird.getActivityPayMoneyTotal())); |
| | | return mgtOrderTotal; |
| | | } |
| | | |
| | | /** |
| | | * @description 分页获取门店订单列表 |
| | | * @author jqs |
| | | * @date 2023/6/16 14:57 |
| | | * @param page |
| | | * @param mgtShopOrderPageDto |
| | | * @return List<MgtShopOrderPageVo> |
| | | */ |
| | | @Override |
| | | public List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto){ |
| | | //如果区域代码不为null获取对应的商户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ |
| | | MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); |
| | | mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); |
| | | mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); |
| | | mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); |
| | | MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ |
| | | mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); |
| | | } |
| | | } |
| | | //如果关键词不为null获取对应的用户id |
| | | if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ |
| | | MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); |
| | | mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ |
| | | mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); |
| | | } |
| | | } |
| | | List<MgtShopOrderPageVo> shopOrderPageVoList = orderMapper.pageMgtShopOrder(page, mgtShopOrderPageDto); |
| | | // 如果列表不为空 |
| | | if (!shopOrderPageVoList.isEmpty()) { |
| | | // 定义变量 |
| | | HashSet<Long> shopIdSet = new HashSet<>(); |
| | | HashSet<Long> userIdSet = new HashSet<>(); |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | // 遍历列表,获取店铺 ID 和用户 ID |
| | | for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) { |
| | | shopIdSet.add(mgtShopOrderPageVo.getShopId()); |
| | | userIdSet.add(mgtShopOrderPageVo.getUserId()); |
| | | } |
| | | // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串 |
| | | String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | // 从远程服务获取店铺和用户信息 |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(shopJoinedString).getData(); |
| | | Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | | List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData(); |
| | | Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); |
| | | // 遍历列表,设置店铺名称、用户名称和未支付金额 |
| | | for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) { |
| | | mgtShopOrderPageVo.setShopName(shopMap.get(mgtShopOrderPageVo.getShopId()).getShopName()); |
| | | mgtShopOrderPageVo.setUserName(userMap.get(mgtShopOrderPageVo.getUserId()).getUserName()); |
| | | BigDecimal unPaidMoney = mgtShopOrderPageVo.getReceivableMoney().subtract(mgtShopOrderPageVo.getPayMoney()); |
| | | mgtShopOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); |
| | | } |
| | | } |
| | | return shopOrderPageVoList; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description 获取订单详情 |
| | | * @author jqs |
| | | * @date 2023/6/16 16:49 |
| | | * @param orderId |
| | | * @return MgtOrderDetailVo |
| | | */ |
| | | @Override |
| | | public MgtOrderDetailVo getMgtOrderDetail(String orderId){ |
| | | // 创建MgtOrderDetailVo对象 |
| | | MgtOrderDetailVo mgtOrderDetailVo = new MgtOrderDetailVo(); |
| | | // 获取订单信息 |
| | | Order order = this.getById(orderId); |
| | | // 获取会员信息 |
| | | Member member = remoteMemberService.getMember(order.getUserId()).getData(); |
| | | // 获取商店信息 |
| | | Shop shop = remoteShopService.getShop(order.getShopId()).getData(); |
| | | // 获取订单商品详细信息 |
| | | List<MgtOrderGoodsDetailVo> orderGoodsDetailVoList = orderGoodsService.listMgtVoByOrderId(orderId); |
| | | // 设置MgtOrderDetailVo属性 |
| | | mgtOrderDetailVo.setOrderId(orderId); |
| | | mgtOrderDetailVo.setUserId(order.getUserId()); |
| | | mgtOrderDetailVo.setNickName(member.getNickName()); |
| | | mgtOrderDetailVo.setUserName(member.getRealName()); |
| | | mgtOrderDetailVo.setUserMobile(member.getMobile()); |
| | | mgtOrderDetailVo.setOrderGoodsDetailVoList(orderGoodsDetailVoList); |
| | | // 设置订单状态 |
| | | switch (order.getOrderStatus()) { |
| | | case 0: |
| | | mgtOrderDetailVo.setOrderStatus("已取消"); |
| | | break; |
| | | case 1: |
| | | mgtOrderDetailVo.setOrderStatus("待支付"); |
| | | break; |
| | | case 2: |
| | | mgtOrderDetailVo.setOrderStatus("待核销"); |
| | | break; |
| | | case 3: |
| | | mgtOrderDetailVo.setOrderStatus("已完成"); |
| | | break; |
| | | default: |
| | | mgtOrderDetailVo.setOrderStatus("删除"); |
| | | break; |
| | | } |
| | | // 设置订单编号 |
| | | mgtOrderDetailVo.setOrderNo(order.getOrderNo()); |
| | | // 设置订单来源 |
| | | switch (order.getOrderFrom()) { |
| | | case 1: |
| | | mgtOrderDetailVo.setOrderFrom("商城"); |
| | | break; |
| | | case 2: |
| | | mgtOrderDetailVo.setOrderFrom("秒杀活动"); |
| | | break; |
| | | case 3: |
| | | mgtOrderDetailVo.setOrderFrom("线下创建"); |
| | | break; |
| | | default: |
| | | mgtOrderDetailVo.setOrderStatus(""); |
| | | break; |
| | | } |
| | | // 设置订单支付相关属性 |
| | | mgtOrderDetailVo.setOrderMoney(order.getOrderMoney()); |
| | | mgtOrderDetailVo.setReceivableMoney(order.getReceivableMoney()); |
| | | mgtOrderDetailVo.setPayMoney(order.getPayMoney()); |
| | | mgtOrderDetailVo.setUnPaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); |
| | | mgtOrderDetailVo.setActivityName(order.getActivityName()); |
| | | mgtOrderDetailVo.setCreateTime(order.getCreateTime()); |
| | | mgtOrderDetailVo.setOnlinePayMoney(order.getOnlinePayMoney()); |
| | | mgtOrderDetailVo.setOfflinePayMoney(order.getOfflinePayMoney()); |
| | | mgtOrderDetailVo.setPayTime(order.getPayTime()); |
| | | mgtOrderDetailVo.setOffPayTime(order.getOffPayTime()); |
| | | mgtOrderDetailVo.setCompleteTime(order.getUseTime()); |
| | | mgtOrderDetailVo.setCancelTime(order.getCancelTime()); |
| | | mgtOrderDetailVo.setOrderRemark(order.getOrderRemark()); |
| | | mgtOrderDetailVo.setShopId(order.getShopId()); |
| | | mgtOrderDetailVo.setShopName(shop.getShopName()); |
| | | mgtOrderDetailVo.setVerifyTime(order.getUseTime()); |
| | | return mgtOrderDetailVo; |
| | | } |
| | | } |