ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -12,6 +12,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; /** * <p> @@ -100,6 +101,18 @@ @ApiModelProperty(value = "绑定门店名称") @TableField(exist = false) private String shopName; @ApiModelProperty(value = "绑定门店封面") @TableField(exist = false) private String shopCover; @ApiModelProperty(value = "绑定门店地址") @TableField(exist = false) private String shopAddress; @ApiModelProperty(value = "上级人员信息") @TableField(exist = false) private AppUser topUser; @ApiModelProperty(value = "下级人员列表") @TableField(exist = false) private List<AppUser> bottomUsers; @ApiModelProperty(value = "合伙人积分数") @TableField("part_point") @@ -220,4 +233,5 @@ } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -8,6 +8,7 @@ import com.ruoyi.account.service.UserCancellationLogService; import com.ruoyi.account.service.UserCouponService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.Shop; import com.ruoyi.other.api.feignClient.StoreClient; @@ -176,6 +177,51 @@ @ResponseBody @PostMapping("/recommend") @ApiOperation(value = "推广中心", tags = {"小程序-推广中心"}) public R<AppUser> recommend(){ Long userId = tokenService.getLoginUserApplet().getUserid(); //获取绑定门店 AppUser user = appUserService.getById(userId); if (user.getShopId()!=null){ R<Shop> storeById = storeClient.getStoreById(user.getShopId()); if (storeById.getData()!=null){ user.setShopName(storeById.getData().getName()); user.setShopCover(storeById.getData().getHomePicture()); user.setShopAddress(storeById.getData().getAddress()); } } //获取绑定上级 if (user.getInviteUserId()!=null) { AppUser byId = appUserService.getById(user.getInviteUserId()); user.setTopUser(byId); } //获取绑定下级列表 List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, user.getInviteUserId()).list(); for (AppUser appUser : list) { Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getTopInviteId, 1).count(); Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getTopInviteId, userId).count(); Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getTopInviteId, userId).count(); Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getTopInviteId, userId).count(); Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getTopInviteId, userId).count(); Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getTopInviteId, userId).count(); Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getTopInviteId, userId).count(); appUser.setCount1(count1); appUser.setCount2(count2); appUser.setCount3(count3); appUser.setCount4(count4); appUser.setCount5(count5); appUser.setCount6(count6); appUser.setCount7(count7); } user.setBottomUsers(list); return R.ok(user); } @GetMapping("/index") @ApiOperation(value = "个人中心首页", tags = {"小程序-个人中心首页"}) ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/RecommendDto.java
New file @@ -0,0 +1,7 @@ package com.ruoyi.account.dto; import lombok.Data; @Data public class RecommendDto { } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -819,10 +819,18 @@ if(2 == shoppingCartPayment.getPaymentType()){ BigDecimal balance = appUser.getBalance(); if(balance.compareTo(paymentMoney.add(expressFee)) < 0){ if(balance.compareTo(paymentMoney) < 0){ return R.fail("账户余额不足"); } } //判断运费支付是否足够 if(2 == shoppingCartPayment.getFreightPaymentType() && expressFee.compareTo(BigDecimal.ZERO) > 0){ BigDecimal balance = appUser.getBalance(); if(balance.compareTo(expressFee) < 0){ return R.fail("账户余额不足"); } } orderService.save(order); //构建订单明细数据 for (MyShoppingCartVo myShoppingCartVo : goodsList) { @@ -960,12 +968,65 @@ userPoint.setObjectId(order.getId()); userPointClient.saveUserPoint(userPoint); } //如果有运费,需要先扣除账户积分,再进行支付。支付成功后修改订单状态,未支付成功则回退积分,删除的订单 if(expressFee.compareTo(BigDecimal.ZERO) > 0){ if(shoppingCartPayment.getFreightPaymentType() == 1){ //调起微信支付 } if(shoppingCartPayment.getFreightPaymentType() == 2){ BigDecimal totalRedPacketAmount = appUser.getTotalRedPacketAmount(); BigDecimal totalDistributionAmount = appUser.getTotalDistributionAmount(); BigDecimal balance = appUser.getBalance(); if(expressFee.compareTo(totalRedPacketAmount) <= 0){ totalRedPacketAmount = totalRedPacketAmount.subtract(expressFee); balance = balance.subtract(expressFee); appUser.setTotalRedPacketAmount(totalRedPacketAmount); appUser.setBalance(balance); }else{ expressFee = expressFee.subtract(totalRedPacketAmount); totalRedPacketAmount = BigDecimal.ZERO; if(expressFee.compareTo(totalDistributionAmount) <= 0){ totalDistributionAmount = totalDistributionAmount.subtract(expressFee); balance = balance.subtract(expressFee); appUser.setTotalRedPacketAmount(totalRedPacketAmount); appUser.setTotalDistributionAmount(totalDistributionAmount); appUser.setBalance(balance); }else{ expressFee = expressFee.subtract(totalDistributionAmount); totalDistributionAmount = BigDecimal.ZERO; balance = balance.subtract(expressFee); appUser.setTotalRedPacketAmount(totalRedPacketAmount); appUser.setTotalDistributionAmount(totalDistributionAmount); appUser.setBalance(balance); } } appUserClient.editAppUserById(appUser); //构建余额明细变动记录 BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); balanceChangeRecord.setAppUserId(appUser.getId()); balanceChangeRecord.setOrderId(order.getId()); balanceChangeRecord.setChangeType(5); balanceChangeRecord.setBeforeAmount(balance.add(paymentMoney)); balanceChangeRecord.setChangeAmount(paymentMoney); balanceChangeRecord.setAfterAmount(balance); balanceChangeRecord.setDelFlag(0); balanceChangeRecord.setCreateTime(LocalDateTime.now()); balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord); //修改订支付状态 order.setPayStatus(2); orderService.updateById(order); //删除购物车数据 this.removeBatchByIds(ids); } }else{ //修改订支付状态 order.setPayStatus(2); orderService.updateById(order); //删除购物车数据 this.removeBatchByIds(ids); } } return R.ok(); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java
@@ -15,6 +15,8 @@ private String goodsJson; @ApiModelProperty(value = "支付方式(1=微信,2=账户余额,3=积分)", required = true) private Integer paymentType; @ApiModelProperty(value = "运费支付方式(1=微信,2=账户余额)", required = true) private Integer freightPaymentType; @ApiModelProperty(value = "核销门店id", required = true) private Integer shopId; @ApiModelProperty(value = "优惠券id", required = false)