From 65816321c28dab1f43d0563af67dbcbad2c5bdca Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 22 五月 2023 18:15:39 +0800 Subject: [PATCH] demo补完 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 104 insertions(+), 7 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 f3ec860..4708c86 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 @@ -8,6 +8,7 @@ import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; +import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.goods.Goods; import com.ruoyi.order.domain.pojo.goods.GoodsFile; @@ -15,11 +16,13 @@ import com.ruoyi.order.domain.pojo.order.ConsumerGoods; import com.ruoyi.order.domain.pojo.order.Order; import com.ruoyi.order.domain.pojo.order.OrderGoods; +import com.ruoyi.order.domain.pojo.order.ShoppingCart; import com.ruoyi.order.domain.vo.*; import com.ruoyi.order.service.goods.GoodsFileService; import com.ruoyi.order.service.goods.ShopGoodsService; import com.ruoyi.order.service.order.ConsumerGoodsService; import com.ruoyi.order.service.order.OrderGoodsService; +import com.ruoyi.order.service.order.ShoppingCartService; import com.ruoyi.order.util.CodeFactoryUtil; import com.ruoyi.system.api.RemoteMemberService; import com.ruoyi.system.api.RemoteShopService; @@ -27,6 +30,7 @@ import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.dto.AppBaseGetDto; import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; +import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto; 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; @@ -81,6 +85,9 @@ @Resource private ConsumerGoodsService consumerGoodsService; + + @Resource + private ShoppingCartService shoppingCartService; /** * @description: buyGoods @@ -243,6 +250,8 @@ String orderNo = CodeFactoryUtil.getShopOrderNo(); OrderGoods orderGoods; String orderGoodsId; + ShoppingCart shoppingCart; + HashSet<String> goodsTypeSet = new HashSet<>(); for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){ appSureOrderGoodsVo = new AppSureOrderGoodsVo(); useCoupon = 0; @@ -325,6 +334,17 @@ orderGoods.setServiceNum(serviceNum); orderGoods.setGoodsType(goods.getGoodsType()); orderGoodsService.save(orderGoods); + //清空购物车 + shoppingCartService.deleteByUserIdAndGoodsId(userId,goodsId); + if(goods.getGoodsType()==1){ + goodsTypeSet.add("周期"); + }else if(goods.getGoodsType()==2){ + goodsTypeSet.add("服务"); + }else if(goods.getGoodsType()==3){ + goodsTypeSet.add("体验"); + }else if(goods.getGoodsType()==4){ + goodsTypeSet.add("单品"); + } } Order order = new Order(); order.setOrderId(orderId); @@ -339,6 +359,7 @@ order.setCouponMoney(couponDiscount); order.setDiscountMoney(couponDiscount); order.setReceivableMoney(orderPayMoney); + order.setReceivableDeposit(orderPayDeposit); order.setPayType(appPlaceOrderDto.getPayType()); if(order.getPayType()==1){ order.setPayMoney(orderPayMoney); @@ -357,10 +378,18 @@ order.setGoodsNum(goodsNum); order.setCreateTime(new Date()); this.save(order); + //更新用户商品类型 + if(goodsTypeSet!=null&&goodsTypeSet.size()>0){ + AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto(); + appMemberGoodsTypeDto.setUserId(userId); + appMemberGoodsTypeDto.setGoodsTypeSet(goodsTypeSet); + remoteMemberService.updateMemberGoodsType(appMemberGoodsTypeDto); + } appPlaceOrderVo.setOrderId(orderId); appPlaceOrderVo.setOrderNo(orderNo); //调用支付 + return appPlaceOrderVo; } @@ -425,6 +454,11 @@ appUserOrderGetVo.setPayMoney(order.getPayMoney()); appUserOrderGetVo.setOrderRemark(order.getOrderRemark()); appUserOrderGetVo.setShopId(order.getShopId()); + appUserOrderGetVo.setCreateTime(order.getCreateTime()); + appUserOrderGetVo.setPayTime(order.getCreateTime()); + appUserOrderGetVo.setUseTime(order.getUseTime()); + appUserOrderGetVo.setCancelTime(order.getCancelTime()); + appUserOrderGetVo.setOrderRemark(order.getOrderRemark()); Shop shop = remoteShopService.getShop(order.getShopId()).getData(); appUserOrderGetVo.setShopName(shop.getShopName()); appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); @@ -507,6 +541,9 @@ merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney()); merVerifyOrderVo.setPayMoney(order.getPayMoney()); merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); + merVerifyOrderVo.setCreateTime(order.getCreateTime()); + merVerifyOrderVo.setPayTime(order.getPayTime()); + merVerifyOrderVo.setUseTime(order.getUseTime()); merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); merVerifyOrderVo.setUserName(sysUser.getNickName()); @@ -571,6 +608,9 @@ merVerifyOrderVo.setPayMoney(order.getPayMoney()); merVerifyOrderVo.setOrderRemark(order.getOrderRemark()); merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); + merVerifyOrderVo.setCreateTime(order.getCreateTime()); + merVerifyOrderVo.setPayTime(order.getPayTime()); + merVerifyOrderVo.setUseTime(order.getUseTime()); SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); merVerifyOrderVo.setUserName(sysUser.getNickName()); merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); @@ -587,8 +627,12 @@ public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){ List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page,merMemberNoClearOrderDto.getMemberUserId()); if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){ + BigDecimal zeroBig = new BigDecimal("0.00"); for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){ merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney())); + if(merMemberNoClearOrderVo.getUnPaidMoney()==null){ + merMemberNoClearOrderVo.setUnPaidMoney(zeroBig); + } } } return merMemberNoClearOrderVoList; @@ -614,6 +658,27 @@ @Override public void createNewOrder(MerNewOrderDto merNewOrderDto){ Long userId = merNewOrderDto.getBuyUserId(); + if(userId==null){ + String name = merNewOrderDto.getName(); + String mobile = merNewOrderDto.getMobile(); + SysUser sysUser = remoteUserService.getSysUserByMobile(mobile).getData(); + if(sysUser==null){ + //创建新用户 + String memberId = IdUtils.simpleUUID(); + sysUser = new SysUser(); + sysUser.setUserName(mobile); + sysUser.setUserType("03"); + sysUser.setNickName(name); + sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); + String password = "hongruitang"; + sysUser.setPassword(SecurityUtils.encryptPassword(password)); + log.debug("sysUser"+sysUser.toString()); + sysUser = remoteUserService.registerUser(sysUser).getData(); + userId = sysUser.getUserId(); + }else{ + userId = sysUser.getUserId(); + } + } //创建订单 List<AppBuyGoodsDto> appBuyGoodsDtoList = merNewOrderDto.getAppBuyGoodsDtoList(); String goodsId; @@ -627,7 +692,11 @@ BigDecimal goodsTotalPrice; BigDecimal goodsRealPrice; List<AppUserCouponVo> appUserCouponVoList = remoteMemberService.listVoUserCouponByUserId(userId).getData(); - Map<Long,AppUserCouponVo> appUserCouponVoMap = appUserCouponVoList.stream().collect(Collectors.toMap(AppUserCouponVo::getUserCouponId, Function.identity())); + Map<Long,AppUserCouponVo> appUserCouponVoMap = new HashMap<>(); + if(null != appUserCouponVoList){ + appUserCouponVoMap = appUserCouponVoList.stream().collect(Collectors.toMap(AppUserCouponVo::getUserCouponId, Function.identity())); + } + AppUserCouponVo appUserCouponVo; Integer couponType; BigDecimal moneyThreshold; @@ -660,7 +729,7 @@ goodsRealPrice = goodsTotalPrice; if(userCouponId!=null){ appUserCouponVo = appUserCouponVoMap.get(userCouponId); - if(StringUtils.isBlank(appUserCouponVo.getRelGoodsIds()) || appUserCouponVo.getRelGoodsIds().contains(goodsId)){ + if(null != appUserCouponVo && (StringUtils.isBlank(appUserCouponVo.getRelGoodsIds()) || appUserCouponVo.getRelGoodsIds().contains(goodsId))){ couponType = appUserCouponVo.getCouponType(); if(couponType == 1 && appUserCouponVo.getMoneyThreshold()!=null && appUserCouponVo.getDiscountMoney()!=null){ moneyThreshold = appUserCouponVo.getMoneyThreshold(); @@ -696,7 +765,7 @@ orderGoods.setOrderId(orderId); orderGoods.setGoodsId(goodsId); orderGoods.setBuyNum(buyNum); - if(StringUtils.isNotBlank(userCouponId.toString())){ + if(null != userCouponId){ orderGoods.setCouponId(userCouponId.toString()); } orderGoods.setGoodsPrice(goodsPrice); @@ -719,6 +788,7 @@ order.setCouponMoney(couponDiscount); order.setDiscountMoney(couponDiscount); order.setReceivableMoney(orderPayMoney); + order.setReceivableDeposit(new BigDecimal("0.00")); order.setPayType(1); if(order.getPayType()==1){ order.setPayMoney(orderPayMoney); @@ -764,7 +834,7 @@ consumerGoodsService.save(consumerGoods); } Member member = remoteMemberService.getMember(userId).getData(); - if(member.getBindingFlag()!=1){ + if(member!=null&&member.getBindingFlag()!=1){ //绑定商户 AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); appMemberBindingDto.setShopId(merNewOrderDto.getShopId()); @@ -788,14 +858,37 @@ Member member; Integer orderFrom; String orderFromDesc; + BigDecimal zeroBig = new BigDecimal("0.00"); for(MerOrderPageVo merOrderPageVo : merOrderPageVoList){ userId = merOrderPageVo.getUserId(); member = remoteMemberService.getMember(userId).getData(); - merOrderPageVo.setUserName(member.getNickName()); - merOrderPageVo.setUserMobile(member.getMobile()); + if(member!=null){ + if(StringUtils.isNotBlank(member.getNickName())){ + merOrderPageVo.setUserName(member.getNickName()); + } + merOrderPageVo.setUserMobile(member.getMobile()); + }else{ + SysUser sysUser = remoteUserService.getSysUser(userId).getData(); + if(StringUtils.isNotBlank(sysUser.getNickName())){ + merOrderPageVo.setUserName(sysUser.getNickName()); + } + merOrderPageVo.setUserMobile(sysUser.getPhonenumber()); + } orderFrom = merOrderPageVo.getOrderFrom(); - orderFromDesc = "商城订单"; + if(orderFrom!=null){ + if(orderFrom == 1){ + orderFromDesc = "商城订单"; + }else{ + orderFromDesc = "线下创建"; + } + }else{ + orderFromDesc = "商城订单"; + } merOrderPageVo.setOrderFromDesc(orderFromDesc); + merOrderPageVo.setUnPaidMoney(merOrderPageVo.getReceivableMoney().subtract(merOrderPageVo.getPayMoney())); + if(merOrderPageVo.getUnPaidMoney()==null){ + merOrderPageVo.setUnPaidMoney(zeroBig); + } } } return merOrderPageVoList; @@ -811,8 +904,12 @@ public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){ List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page,merMemberNoClearOrderDto.getMemberUserId()); if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){ + BigDecimal zeroBig = new BigDecimal("0.00"); for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){ merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney())); + if(merMemberNoClearOrderVo.getUnPaidMoney()==null){ + merMemberNoClearOrderVo.setUnPaidMoney(zeroBig); + } } } return merMemberNoClearOrderVoList; -- Gitblit v1.7.1