From ae41759bafec1c2a1e8858fcdcda4272ed4eb84c Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 16 六月 2023 17:43:47 +0800 Subject: [PATCH] 联调bug和订单管理 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 529 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 410 insertions(+), 119 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 4b80802..4a625f9 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -18,6 +18,7 @@ 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; @@ -26,11 +27,8 @@ 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; @@ -83,7 +81,7 @@ * @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<>(); @@ -99,7 +97,7 @@ 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; @@ -112,7 +110,7 @@ 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(); @@ -134,30 +132,30 @@ 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; @@ -169,7 +167,7 @@ appSureOrderGoodsVo.setCouponDiscount(discountMoney); appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); goodsDeposit = goods.getSubscription(); - if(goodsDeposit == null){ + if (goodsDeposit == null) { goodsDeposit = new BigDecimal("0.00"); } appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); @@ -179,11 +177,11 @@ 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); } } @@ -201,11 +199,12 @@ /** * 创建订单 + * * @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<>(); @@ -222,7 +221,7 @@ 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; @@ -240,7 +239,7 @@ 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(); @@ -262,7 +261,7 @@ 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(); } @@ -270,23 +269,23 @@ 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; @@ -298,7 +297,7 @@ appSureOrderGoodsVo.setCouponDiscount(discountMoney); appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); goodsDeposit = goods.getSubscription(); - if(goodsDeposit == null){ + if (goodsDeposit == null) { goodsDeposit = new BigDecimal("0.00"); } appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); @@ -315,7 +314,7 @@ orderGoods.setOrderId(orderId); orderGoods.setGoodsId(goodsId); orderGoods.setBuyNum(buyNum); - if(memberCouponId!=null){ + if (memberCouponId != null) { orderGoods.setCouponId(memberCouponId.toString()); } orderGoods.setGoodsPrice(goodsPrice); @@ -330,13 +329,13 @@ 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("单品"); } } @@ -355,13 +354,13 @@ 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); @@ -373,7 +372,7 @@ 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); @@ -390,18 +389,19 @@ /** * 分页获取用户订单 + * * @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); } @@ -410,16 +410,16 @@ 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; @@ -427,15 +427,14 @@ /** - * * @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()); @@ -456,18 +455,19 @@ 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); @@ -477,6 +477,7 @@ /** * 获取用户订单统计 + * * @param userId * @return */ @@ -496,11 +497,12 @@ /** * 获取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; @@ -517,14 +519,15 @@ /** * 核销订单 + * * @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()); @@ -548,11 +551,12 @@ /** * 确认核销订单 + * * @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(); @@ -563,15 +567,18 @@ 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); @@ -587,6 +594,9 @@ 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); } //生成返回 @@ -613,18 +623,19 @@ /** * 收银未结清订单列表 + * * @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); } } @@ -634,12 +645,14 @@ /** * 结清订单 + * * @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); @@ -647,20 +660,22 @@ /** * 创建新订单 + * * @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(); @@ -671,7 +686,7 @@ 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); @@ -698,8 +713,8 @@ 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())); } @@ -717,7 +732,7 @@ 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(); @@ -729,7 +744,7 @@ 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(); } @@ -737,21 +752,21 @@ 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); } @@ -759,7 +774,7 @@ } goodsDeposit = goods.getSubscription(); - if(goodsDeposit == null){ + if (goodsDeposit == null) { goodsDeposit = new BigDecimal("0.00"); } goodsNum = goodsNum + buyNum; @@ -775,7 +790,7 @@ orderGoods.setOrderId(orderId); orderGoods.setGoodsId(goodsId); orderGoods.setBuyNum(buyNum); - if(null != memberCouponId){ + if (null != memberCouponId) { orderGoods.setCouponId(memberCouponId.toString()); } orderGoods.setGoodsPrice(goodsPrice); @@ -801,32 +816,34 @@ 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); @@ -841,11 +858,14 @@ 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); @@ -858,47 +878,46 @@ /** - * * @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); } } @@ -907,19 +926,18 @@ } /** - * * @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); } } @@ -929,33 +947,306 @@ /** * 获取用户订单统计 + * * @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; + } } -- Gitblit v1.7.1