From 0a6f6770dd3aecfc076e9cd5b46a728dd2b9b440 Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期四, 05 十二月 2024 15:22:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java | 73 ++++++++++++++++++++++--
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/RecommendDto.java | 7 ++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java | 2
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java | 14 ++++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 46 +++++++++++++++
5 files changed, 136 insertions(+), 6 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
index 4914aad..47ea3b0 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
+++ b/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 @@
+
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index 2a58d42..e3c1045 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/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 = {"小程序-个人中心首页"})
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/RecommendDto.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/RecommendDto.java
new file mode 100644
index 0000000..fd117a2
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/RecommendDto.java
@@ -0,0 +1,7 @@
+package com.ruoyi.account.dto;
+
+import lombok.Data;
+
+@Data
+public class RecommendDto {
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index 779f212..b5cf7dd 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/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,11 +968,64 @@
userPoint.setObjectId(order.getId());
userPointClient.saveUserPoint(userPoint);
}
- //修改订支付状态
- order.setPayStatus(2);
- orderService.updateById(order);
- //删除购物车数据
- this.removeBatchByIds(ids);
+ //如果有运费,需要先扣除账户积分,再进行支付。支付成功后修改订单状态,未支付成功则回退积分,删除的订单
+ 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();
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java
index 6a9342e..fee0f50 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java
+++ b/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)
--
Gitblit v1.7.1