phpcjl
2024-12-05 0a6f6770dd3aecfc076e9cd5b46a728dd2b9b440
Merge remote-tracking branch 'origin/master'
4个文件已修改
1个文件已添加
132 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/RecommendDto.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)