From 7b005ca364613c9738dbc66f3e4fe3fb7bec043d Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期三, 17 五月 2023 17:02:30 +0800 Subject: [PATCH] demo补完 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 133 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 125 insertions(+), 8 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 ee5a004..7b8da7d 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; @@ -26,6 +27,8 @@ import com.ruoyi.system.api.RemoteUserService; 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.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; @@ -313,7 +316,9 @@ orderGoods.setOrderId(orderId); orderGoods.setGoodsId(goodsId); orderGoods.setBuyNum(buyNum); - orderGoods.setCouponId(userCouponId.toString()); + if(userCouponId!=null){ + orderGoods.setCouponId(userCouponId.toString()); + } orderGoods.setGoodsPrice(goodsPrice); orderGoods.setGoodsTotalMoney(orderGoodsMoney); orderGoods.setGoodsReceivableMoney(goodsRealPrice); @@ -325,7 +330,8 @@ Order order = new Order(); order.setOrderId(orderId); order.setDelFlag(0); - order.setOrderStatus(1); + //为对接支付 直接付款成功 + order.setOrderStatus(2); order.setOrderNo(orderNo); order.setOrderFrom(1); order.setShopId(appPlaceOrderDto.getShopId()); @@ -339,11 +345,13 @@ order.setPayMoney(orderPayMoney); order.setOnlinePayMoney(orderPayMoney); appPlaceOrderVo.setPayMoney(orderPayMoney); + appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); order.setCloseFlag(1); }else if(order.getPayType()==2){ order.setPayMoney(orderPayDeposit); order.setOnlinePayMoney(orderPayDeposit); appPlaceOrderVo.setPayMoney(orderPayDeposit); + appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); order.setCloseFlag(0); } order.setOrderRemark(appPlaceOrderDto.getOrderRemark()); @@ -352,6 +360,7 @@ this.save(order); appPlaceOrderVo.setOrderId(orderId); appPlaceOrderVo.setOrderNo(orderNo); + //调用支付 return appPlaceOrderVo; @@ -388,6 +397,7 @@ }else{ appUserOrderPageVo.setSameShop(0); } + appUserOrderPageVo.setVerifyCode("1-"+appUserOrderPageVo.getOrderId()); } } return appUserOrderPageVoList; @@ -416,9 +426,15 @@ appUserOrderGetVo.setPayMoney(order.getPayMoney()); appUserOrderGetVo.setOrderRemark(order.getOrderRemark()); appUserOrderGetVo.setShopId(order.getShopId()); + appUserOrderGetVo.setCreateTime(order.getCreateTime()); + appUserOrderGetVo.setPayTime(order.getCreateTime()); + appUserOrderGetVo.setUseTime(order.getUseTime()); + appUserOrderGetVo.setCancelTime(order.getCancelTime()); + appUserOrderGetVo.setOrderRemark(order.getOrderRemark()); Shop shop = remoteShopService.getShop(order.getShopId()).getData(); appUserOrderGetVo.setShopName(shop.getShopName()); appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); + appUserOrderGetVo.setVerifyCode("1-"+orderId); return appUserOrderGetVo; } @@ -514,14 +530,15 @@ public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto){ String orderId = merVerifyOrderDto.getOrderId(); BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney(); + BigDecimal relPayMoney = merVerifyOrderDto.getRelPayMoney(); Date nowTime = new Date(); //更新订单信息 Order order = this.getById(orderId); order.setOrderStatus(3); order.setUseTime(nowTime); order.setUseUserId(merVerifyOrderDto.getUserId()); - order.setOfflinePayMoney(relReceiveMoney); - order.setPayMoney(order.getPayMoney().add(relReceiveMoney)); + order.setOfflinePayMoney(relPayMoney); + order.setPayMoney(relReceiveMoney.add(relPayMoney)); order.setCloseFlag(1); this.saveOrUpdate(order); //创建服务商品 @@ -542,6 +559,7 @@ consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName()); consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag()); consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); + consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); consumerGoods.setCreateTime(nowTime); consumerGoodsService.save(consumerGoods); @@ -602,6 +620,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; @@ -615,7 +654,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; @@ -648,7 +691,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(); @@ -684,7 +727,9 @@ orderGoods.setOrderId(orderId); orderGoods.setGoodsId(goodsId); orderGoods.setBuyNum(buyNum); - orderGoods.setCouponId(userCouponId.toString()); + if(null != userCouponId){ + orderGoods.setCouponId(userCouponId.toString()); + } orderGoods.setGoodsPrice(goodsPrice); orderGoods.setGoodsTotalMoney(orderGoodsMoney); orderGoods.setGoodsReceivableMoney(goodsRealPrice); @@ -698,7 +743,7 @@ order.setDelFlag(0); order.setOrderStatus(3); order.setOrderNo(orderNo); - order.setOrderFrom(1); + order.setOrderFrom(3); order.setShopId(merNewOrderDto.getShopId()); order.setUserId(userId); order.setOrderMoney(orderGoodsMoney); @@ -744,9 +789,81 @@ consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName()); consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag()); consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); + consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); consumerGoods.setCreateTime(new Date()); consumerGoodsService.save(consumerGoods); } + Member member = remoteMemberService.getMember(userId).getData(); + if(member!=null&&member.getBindingFlag()!=1){ + //绑定商户 + AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); + appMemberBindingDto.setShopId(merNewOrderDto.getShopId()); + appMemberBindingDto.setUserId(userId); + appMemberBindingDto.setBindingFlag(1); + remoteMemberService.updateMemberBinding(appMemberBindingDto); + } + } + + + /** + * + * @param merOrderPageDto + * @return + */ + @Override + public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto){ + List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerOrder(page, merOrderPageDto); + if(merOrderPageVoList!=null&&!merOrderPageVoList.isEmpty()){ + Long userId; + Member member; + Integer orderFrom; + String orderFromDesc; + for(MerOrderPageVo merOrderPageVo : merOrderPageVoList){ + userId = merOrderPageVo.getUserId(); + member = remoteMemberService.getMember(userId).getData(); + if(member!=null){ + if(StringUtils.isNotBlank(member.getNickName())){ + merOrderPageVo.setUserName(member.getNickName()); + } + merOrderPageVo.setUserMobile(member.getMobile()); + }else{ + SysUser sysUser = remoteUserService.getSysUser(userId).getData(); + if(StringUtils.isNotBlank(sysUser.getNickName())){ + merOrderPageVo.setUserName(sysUser.getNickName()); + } + merOrderPageVo.setUserMobile(sysUser.getPhonenumber()); + } + orderFrom = merOrderPageVo.getOrderFrom(); + if(orderFrom!=null){ + if(orderFrom == 1){ + orderFromDesc = "商城订单"; + }else{ + orderFromDesc = "线下创建"; + } + }else{ + orderFromDesc = "商城订单"; + } + merOrderPageVo.setOrderFromDesc(orderFromDesc); + } + } + return merOrderPageVoList; + } + + /** + * + * @param page + * @param merMemberNoClearOrderDto + * @return + */ + @Override + public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){ + List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page,merMemberNoClearOrderDto.getMemberUserId()); + if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){ + for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){ + merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney())); + } + } + return merMemberNoClearOrderVoList; } } -- Gitblit v1.7.1