From aed4e4c7d76de4d0fbfe8c0b26fcdeecbd5c5b24 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 26 五月 2023 18:04:47 +0800 Subject: [PATCH] 管理台用户管理 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 160 +++++++++++++++++++++++++++++------------------------ 1 files changed, 88 insertions(+), 72 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 3005650..2c2e93d 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.core.utils.uuid.UUID; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.ConsumerGoods; @@ -27,7 +28,7 @@ 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.AppUserCouponVo; +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; @@ -92,15 +93,15 @@ String goodsId; Integer buyNum; BigDecimal buyNumBig; - Long userCouponId; + Long memberCouponId; Goods goods; BigDecimal goodsPrice; BigDecimal goodsTotalPrice; BigDecimal goodsRealPrice; - List<AppUserCouponVo> appUserCouponVoList = remoteMemberService.listVoUserCouponByUserId(userId).getData(); - List<AppUserCouponVo> appGoodsUserCouponVoList; - Map<Long,AppUserCouponVo> appUserCouponVoMap = appUserCouponVoList.stream().collect(Collectors.toMap(AppUserCouponVo::getUserCouponId, Function.identity())); - AppUserCouponVo appUserCouponVo; + List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); + List<AppMemberCouponVo> appGoodsMemberCouponVoList; + Map<Long,AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); + AppMemberCouponVo appMemberCouponVo; Integer couponType; BigDecimal moneyThreshold; BigDecimal discountMoney = new BigDecimal("0.00"); @@ -117,7 +118,7 @@ useCoupon = 0; goodsId = appBuyGoodsDto.getGoodsId(); buyNum = appBuyGoodsDto.getBuyNum(); - userCouponId = appBuyGoodsDto.getUserCouponId(); + memberCouponId = appBuyGoodsDto.getMemberCouponId(); goods = remoteGoodsService.getGoods(goodsId).getData(); appSureOrderGoodsVo.setGoodsId(goodsId); appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); @@ -141,24 +142,24 @@ buyNumBig = BigDecimal.valueOf(buyNum); goodsTotalPrice = goodsPrice.multiply(buyNumBig); goodsRealPrice = goodsTotalPrice; - if(userCouponId!=null){ - appUserCouponVo = appUserCouponVoMap.get(userCouponId); - if(StringUtils.isBlank(appUserCouponVo.getRelGoodsIds()) || appUserCouponVo.getRelGoodsIds().contains(goodsId)){ - couponType = appUserCouponVo.getCouponType(); - if(couponType == 1 && appUserCouponVo.getMoneyThreshold()!=null && appUserCouponVo.getDiscountMoney()!=null){ - moneyThreshold = appUserCouponVo.getMoneyThreshold(); + if(memberCouponId!=null){ + appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); + if(StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)){ + couponType = appMemberCouponVo.getCouponType(); + if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){ + moneyThreshold = appMemberCouponVo.getMoneyThreshold(); if(goodsTotalPrice.compareTo(moneyThreshold)>=0){ - discountMoney = appUserCouponVo.getDiscountMoney(); + discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); useCoupon = 1; } - }else if(couponType == 2 && appUserCouponVo.getDiscountPercent()!=null){ - discountPercent = appUserCouponVo.getDiscountPercent(); + }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){ + discountPercent = appMemberCouponVo.getDiscountPercent(); goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2,BigDecimal.ROUND_HALF_UP); discountMoney = goodsRealPrice.subtract(goodsTotalPrice); useCoupon = 1; - }else if(couponType == 3 && appUserCouponVo.getDiscountMoney()!=null){ - discountMoney = appUserCouponVo.getDiscountMoney(); + }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){ + discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); useCoupon = 1; } @@ -178,16 +179,16 @@ orderPayDeposit = orderPayDeposit.add(goodsDeposit); orderPayMoney = orderPayMoney.add(goodsRealPrice); //商品关联优惠券 - appGoodsUserCouponVoList = new ArrayList<>(); - if(appUserCouponVoList!=null && !appUserCouponVoList.isEmpty()){ - for(AppUserCouponVo entity : appUserCouponVoList){ + appGoodsMemberCouponVoList = new ArrayList<>(); + if(appMemberCouponVoList!=null && !appMemberCouponVoList.isEmpty()){ + for(AppMemberCouponVo entity : appMemberCouponVoList){ if(StringUtils.isBlank(entity.getRelGoodsIds())){ - appGoodsUserCouponVoList.add(entity); + appGoodsMemberCouponVoList.add(entity); }else if(entity.getRelGoodsIds().contains(goodsId)){ - appGoodsUserCouponVoList.add(entity); + appGoodsMemberCouponVoList.add(entity); } } - appSureOrderGoodsVo.setAppUserCouponVoList(appGoodsUserCouponVoList); + appSureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList); } appSureOrderGoodsVoList.add(appSureOrderGoodsVo); } @@ -216,14 +217,14 @@ BigDecimal buyNumBig; Integer serviceNum; Integer goodsNum = 0; - Long userCouponId; + Long memberCouponId; Goods goods; BigDecimal goodsPrice; BigDecimal goodsTotalPrice; BigDecimal goodsRealPrice; - List<AppUserCouponVo> appUserCouponVoList = remoteMemberService.listVoUserCouponByUserId(userId).getData(); - Map<Long,AppUserCouponVo> appUserCouponVoMap = appUserCouponVoList.stream().collect(Collectors.toMap(AppUserCouponVo::getUserCouponId, Function.identity())); - AppUserCouponVo appUserCouponVo; + List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); + Map<Long,AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); + AppMemberCouponVo appMemberCouponVo; Integer couponType; BigDecimal moneyThreshold; BigDecimal discountMoney = new BigDecimal("0.00"); @@ -244,7 +245,7 @@ appSureOrderGoodsVo = new AppSureOrderGoodsVo(); useCoupon = 0; goodsId = appBuyGoodsDto.getGoodsId(); - userCouponId = appBuyGoodsDto.getUserCouponId(); + memberCouponId = appBuyGoodsDto.getMemberCouponId(); goods = remoteGoodsService.getGoods(goodsId).getData(); appSureOrderGoodsVo.setGoodsId(goodsId); appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); @@ -270,24 +271,24 @@ buyNumBig = BigDecimal.valueOf(buyNum); goodsTotalPrice = goodsPrice.multiply(buyNumBig); goodsRealPrice = goodsTotalPrice; - if(userCouponId!=null){ - appUserCouponVo = appUserCouponVoMap.get(userCouponId); - if(StringUtils.isBlank(appUserCouponVo.getRelGoodsIds()) || appUserCouponVo.getRelGoodsIds().contains(goodsId)){ - couponType = appUserCouponVo.getCouponType(); - if(couponType == 1 && appUserCouponVo.getMoneyThreshold()!=null && appUserCouponVo.getDiscountMoney()!=null){ - moneyThreshold = appUserCouponVo.getMoneyThreshold(); + if(memberCouponId!=null){ + appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); + if(StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)){ + couponType = appMemberCouponVo.getCouponType(); + if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){ + moneyThreshold = appMemberCouponVo.getMoneyThreshold(); if(goodsTotalPrice.compareTo(moneyThreshold)>=0){ - discountMoney = appUserCouponVo.getDiscountMoney(); + discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); useCoupon = 1; } - }else if(couponType == 2 && appUserCouponVo.getDiscountPercent()!=null){ - discountPercent = appUserCouponVo.getDiscountPercent(); + }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){ + discountPercent = appMemberCouponVo.getDiscountPercent(); goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2,BigDecimal.ROUND_HALF_UP); discountMoney = goodsRealPrice.subtract(goodsTotalPrice); useCoupon = 1; - }else if(couponType == 3 && appUserCouponVo.getDiscountMoney()!=null){ - discountMoney = appUserCouponVo.getDiscountMoney(); + }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){ + discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); useCoupon = 1; } @@ -315,8 +316,8 @@ orderGoods.setOrderId(orderId); orderGoods.setGoodsId(goodsId); orderGoods.setBuyNum(buyNum); - if(userCouponId!=null){ - orderGoods.setCouponId(userCouponId.toString()); + if(memberCouponId!=null){ + orderGoods.setCouponId(memberCouponId.toString()); } orderGoods.setGoodsPrice(goodsPrice); orderGoods.setGoodsTotalMoney(orderGoodsMoney); @@ -652,46 +653,58 @@ @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){ + Member member = remoteMemberService.getMemberByMobile(mobile).getData(); + SysUser sysUser; + if(member!=null){ + sysUser = remoteUserService.getSysUser(member.getUserId()).getData(); + }else{ //创建新用户 String memberId = IdUtils.simpleUUID(); sysUser = new SysUser(); - sysUser.setUserName(mobile); + sysUser.setUserName(memberId); sysUser.setUserType("03"); sysUser.setNickName(name); + sysUser.setPhonenumber(mobile); 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(); + member = new Member(); + member.setMemberId(memberId); + member.setUserId(sysUser.getUserId()); + member.setMobile(mobile); + member.setRealName(name); + member.setNickName(name); + remoteMemberService.createNewMember(member); } + userId = sysUser.getUserId(); } - //创建订单 + //创建订单计算 List<AppBuyGoodsDto> appBuyGoodsDtoList = merNewOrderDto.getAppBuyGoodsDtoList(); String goodsId; Integer buyNum; BigDecimal buyNumBig; Integer serviceNum; Integer goodsNum = 0; - Long userCouponId; + Long memberCouponId; Goods goods; BigDecimal goodsPrice; BigDecimal goodsTotalPrice; BigDecimal goodsRealPrice; - List<AppUserCouponVo> appUserCouponVoList = remoteMemberService.listVoUserCouponByUserId(userId).getData(); - Map<Long,AppUserCouponVo> appUserCouponVoMap = new HashMap<>(); - if(null != appUserCouponVoList){ - appUserCouponVoMap = appUserCouponVoList.stream().collect(Collectors.toMap(AppUserCouponVo::getUserCouponId, Function.identity())); + 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){ + appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); } - AppUserCouponVo appUserCouponVo; + AppMemberCouponVo appMemberCouponVo; Integer couponType; BigDecimal moneyThreshold; BigDecimal discountMoney = new BigDecimal("0.00"); @@ -707,7 +720,7 @@ String orderGoodsId; for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){ goodsId = appBuyGoodsDto.getGoodsId(); - userCouponId = appBuyGoodsDto.getUserCouponId(); + memberCouponId = appBuyGoodsDto.getMemberCouponId(); goods = remoteGoodsService.getGoods(goodsId).getData(); buyNum = appBuyGoodsDto.getBuyNum(); goodsPrice = goods.getSalesPrice(); @@ -715,7 +728,7 @@ //商户定制价格 AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); - appShopGoodsGetDto.setShopId(merNewOrderDto.getShopId()); + appShopGoodsGetDto.setShopId(shopId); ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); if(shopGoods!=null){ goodsPrice = shopGoods.getSalesPrice(); @@ -724,22 +737,23 @@ buyNumBig = BigDecimal.valueOf(buyNum); goodsTotalPrice = goodsPrice.multiply(buyNumBig); goodsRealPrice = goodsTotalPrice; - if(userCouponId!=null){ - appUserCouponVo = appUserCouponVoMap.get(userCouponId); - 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(); + //优惠券计算 + if(memberCouponId!=null){ + appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); + if(null != appMemberCouponVo && (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId))){ + couponType = appMemberCouponVo.getCouponType(); + if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){ + moneyThreshold = appMemberCouponVo.getMoneyThreshold(); if(goodsTotalPrice.compareTo(moneyThreshold)>=0){ - discountMoney = appUserCouponVo.getDiscountMoney(); + discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); } - }else if(couponType == 2 && appUserCouponVo.getDiscountPercent()!=null){ - discountPercent = appUserCouponVo.getDiscountPercent(); + }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){ + discountPercent = appMemberCouponVo.getDiscountPercent(); goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2,BigDecimal.ROUND_HALF_UP); discountMoney = goodsRealPrice.subtract(goodsTotalPrice); - }else if(couponType == 3 && appUserCouponVo.getDiscountMoney()!=null){ - discountMoney = appUserCouponVo.getDiscountMoney(); + }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){ + discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); } } @@ -762,8 +776,8 @@ orderGoods.setOrderId(orderId); orderGoods.setGoodsId(goodsId); orderGoods.setBuyNum(buyNum); - if(null != userCouponId){ - orderGoods.setCouponId(userCouponId.toString()); + if(null != memberCouponId){ + orderGoods.setCouponId(memberCouponId.toString()); } orderGoods.setGoodsPrice(goodsPrice); orderGoods.setGoodsTotalMoney(orderGoodsMoney); @@ -773,13 +787,14 @@ orderGoods.setGoodsType(goods.getGoodsType()); orderGoodsService.save(orderGoods); } + //创建订单 Order order = new Order(); order.setOrderId(orderId); order.setDelFlag(0); order.setOrderStatus(3); order.setOrderNo(orderNo); order.setOrderFrom(3); - order.setShopId(merNewOrderDto.getShopId()); + order.setShopId(shopId); order.setUserId(userId); order.setOrderMoney(orderGoodsMoney); order.setCouponMoney(couponDiscount); @@ -834,7 +849,8 @@ if(member!=null&&member.getBindingFlag()!=1){ //绑定商户 AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); - appMemberBindingDto.setShopId(merNewOrderDto.getShopId()); + appMemberBindingDto.setShopId(shopId); + appMemberBindingDto.setShopName(shop.getShopName()); appMemberBindingDto.setUserId(userId); appMemberBindingDto.setBindingFlag(1); remoteMemberService.updateMemberBinding(appMemberBindingDto); -- Gitblit v1.7.1