Pu Zhibing
2024-12-27 3347f782016986a32ad70b805fcca8ea8247f001
修改分佣逻辑
7个文件已修改
5个文件已添加
405 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserShare.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/PointSetting.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShareController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserShareMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserShareService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserShareServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -221,10 +221,14 @@
    @TableField("total_point")
    private Integer totalPoint;
    @ApiModelProperty(value = "剩余积分(可用于消费的积分)")
    @ApiModelProperty(value = "剩余积分")
    @TableField("lave_point")
    private Integer lavePoint;
    
    @ApiModelProperty(value = "可用积分")
    @TableField("available_point")
    private Integer availablePoint;
    @ApiModelProperty(value = "是否可更换推广人(0=否,1=是)")
    @TableField("change_promoter")
    private Integer changePromoter;
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserShare.java
New file
@@ -0,0 +1,33 @@
package com.ruoyi.account.api.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.LocalDateTime;
/**
 * @author zhibing.pu
 * @Date 2024/12/27 11:11
 */
@Data
@TableName("t_app_user_share")
public class AppUserShare {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.NONE)
    private Long id;
    /**
     * 用户id
     */
    @TableField("app_user_id")
    private Long appUserId;
    /**
     * 分享时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/PointSetting.java
@@ -7,6 +7,7 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@@ -58,17 +59,9 @@
    @TableField("regis_point")
    private Integer regisPoint;
    @ApiModelProperty(value = "注册积分 1开0关")
    @TableField("regis_point_open")
    private Integer regisPointOpen;
    @ApiModelProperty(value = "注册积分转赠送 1开0关")
    @TableField("regis_point_gift")
    private Integer regisPointGift;
    @ApiModelProperty(value = "消费积分")
    @TableField("buy_point")
    private Integer buyPoint;
    private BigDecimal buyPoint;
    @ApiModelProperty(value = "消费积分积分 1开0关")
    @TableField("buy_point_open")
@@ -80,7 +73,7 @@
    @ApiModelProperty(value = "返佣积分")
    @TableField("share_point")
    private Integer sharePoint;
    private BigDecimal sharePoint;
    @ApiModelProperty(value = "返佣积分 1开0关")
    @TableField("share_point_open")
@@ -92,7 +85,7 @@
    @ApiModelProperty(value = "门店返佣积分")
    @TableField("shop_share_point")
    private Integer shopSharePoint;
    private BigDecimal shopSharePoint;
    @ApiModelProperty(value = "门店返佣积分 1开0关")
    @TableField("shop_share_point_open")
@@ -104,7 +97,7 @@
    @ApiModelProperty(value = "门店业绩积分")
    @TableField("shop_point")
    private Integer shopPoint;
    private BigDecimal shopPoint;
    @ApiModelProperty(value = "门店业绩积分 1开0关")
    @TableField("shop_point_open")
@@ -116,7 +109,7 @@
    @ApiModelProperty(value = "技师业绩积分")
    @TableField("person_point")
    private Integer personPoint;
    private BigDecimal personPoint;
    @ApiModelProperty(value = "技师业绩积分 1开0关")
    @TableField("person_point_open")
@@ -128,7 +121,7 @@
    @ApiModelProperty(value = "拉新人积分")
    @TableField("get_new_point")
    private Integer getNewPoint;
    private BigDecimal getNewPoint;
    @ApiModelProperty(value = "拉新人积分 1开0关")
    @TableField("get_new_point_open")
@@ -140,7 +133,7 @@
    @ApiModelProperty(value = "注册积分")
    @TableField("get_regis_point")
    private Integer getRegisPoint;
    private BigDecimal getRegisPoint;
    @ApiModelProperty(value = "注册积分 1开0关")
    @TableField("get_regis_point_open")
@@ -152,7 +145,7 @@
    @ApiModelProperty(value = "做工积分")
    @TableField("work_point")
    private Integer workPoint;
    private BigDecimal workPoint;
    @ApiModelProperty(value = "做工积分 1开0关")
    @TableField("work_point_open")
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShareController.java
New file
@@ -0,0 +1,89 @@
package com.ruoyi.account.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.AppUserShare;
import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.AppUserShareService;
import com.ruoyi.account.service.UserPointService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.PointSetting;
import com.ruoyi.other.api.feignClient.PointSettingClient;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * @author zhibing.pu
 * @Date 2024/12/27 11:16
 */
@RestController
@RequestMapping("/appUserShare")
public class AppUserShareController {
    @Resource
    private AppUserShareService appUserShareService;
    @Resource
    private TokenService tokenService;
    @Resource
    private AppUserService appUserService;
    @Resource
    private PointSettingClient pointSettingClient;
    @Resource
    private UserPointService userPointService;
    @PostMapping("/saveAppUserShare")
    @ApiOperation(value = "操作分享调用接口", tags = {"小程序-推广中心"})
    public R saveAppUserShare(){
        Long userid = tokenService.getLoginUserApplet().getUserid();
        AppUserShare appUserShare = appUserShareService.getOne(new LambdaQueryWrapper<AppUserShare>().eq(AppUserShare::getAppUserId, userid)
                .last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(create_time, '%Y-%m-%d')"));
        if(null == appUserShare){
            appUserShare = new AppUserShare();
            appUserShare.setAppUserId(userid);
            appUserShare.setCreateTime(LocalDateTime.now());
            appUserShareService.save(appUserShare);
            //添加用户分佣积分
            AppUser appUser = appUserService.getById(userid);
            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
            if(null != pointSetting){
                Integer everySharePoint = pointSetting.getEverySharePoint();
                Integer everySharePoint1 = everySharePoint;
                if(1 == pointSetting.getWorkPointOpen()){
                    everySharePoint1 = new BigDecimal(everySharePoint1).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue();
                }
                Integer lavePoint = appUser.getLavePoint();
                appUser.setTotalPoint(appUser.getTotalPoint() + everySharePoint);
                appUser.setLavePoint(appUser.getLavePoint() + everySharePoint);
                appUser.setAvailablePoint(appUser.getAvailablePoint() + everySharePoint1);
                appUser.setTotalSharePoint(appUser.getTotalSharePoint() + everySharePoint);
                appUserService.updateById(appUser);
                //添加积分变动记录
                UserPoint userPoint = new UserPoint();
                userPoint.setType(6);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(everySharePoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(appUser.getId());
                userPointService.save(userPoint);
            }
        }
        return R.ok();
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java
@@ -2,9 +2,11 @@
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.account.api.model.UserSignRecord;
import com.ruoyi.account.dto.SignBackRDto;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.UserPointService;
import com.ruoyi.account.service.UserSignRecordService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.service.TokenService;
@@ -46,19 +48,50 @@
    private PointSettingClient pointSettingClient;
    @Resource
    private SystemConfigClient systemConfigClient;
    @Resource
    private UserPointService userPointService;
    @ResponseBody
    @GetMapping("/sign")
    @ApiOperation(value = "签到", tags = {"小程序-签到"})
    public R<SignBackRDto> sign(){
        Long userId1 = tokenService.getLoginUserApplet().getUserid();
        AppUser byId = appUserService.getById(userId1);
        AppUser appUser = appUserService.getById(userId1);
        //获取当前用户的会员信息
        R<PointSetting> pointSetting = pointSettingClient.getPointSetting(byId.getVipId());
        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
        UserSignRecord userSignRecord = new UserSignRecord();
        userSignRecord.setAppUserId(userId1);
        userSignRecord.setCreateTime(LocalDateTime.now());
        if (pointSetting.getData() != null) {
            userSignRecord.setPoint(pointSetting.getData().getSignPoint());
        if (pointSetting != null) {
            userSignRecord.setPoint(pointSetting.getSignPoint());
            int signPoint = pointSetting.getSignPoint();
            if(signPoint > 0){
                int signPoint1 = signPoint;
                if(1 == pointSetting.getWorkPointOpen()){
                    signPoint1 = new BigDecimal(signPoint1).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue();
                }
                Integer lavePoint = appUser.getLavePoint();
                appUser.setTotalPoint(appUser.getTotalPoint() + signPoint);
                appUser.setLavePoint(appUser.getLavePoint() + signPoint);
                appUser.setAvailablePoint(appUser.getAvailablePoint() + signPoint1);
                appUser.setTotalSignPoint(appUser.getTotalSignPoint() + signPoint);
                appUserService.updateById(appUser);
                //添加积分变动记录
                UserPoint userPoint = new UserPoint();
                userPoint.setType(5);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(signPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(appUser.getId());
                userPointService.save(userPoint);
            }
        }else {
            userSignRecord.setPoint(0);
        }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserShareMapper.java
New file
@@ -0,0 +1,11 @@
package com.ruoyi.account.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.account.api.model.AppUserShare;
/**
 * @author zhibing.pu
 * @Date 2024/12/27 11:14
 */
public interface AppUserShareMapper extends BaseMapper<AppUserShare> {
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserShareService.java
New file
@@ -0,0 +1,11 @@
package com.ruoyi.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.account.api.model.AppUserShare;
/**
 * @author zhibing.pu
 * @Date 2024/12/27 11:14
 */
public interface AppUserShareService extends IService<AppUserShare> {
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -311,6 +311,8 @@
            appUser.setTotalRedPacketAmount(BigDecimal.ZERO);
            appUser.setTotalDistributionAmount(BigDecimal.ZERO);
            appUser.setBalance(BigDecimal.ZERO);
            //新用户才能奖励积分,老用户注销重新注册没有
            AppUser old = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, registerAccount.getPhone()).eq(AppUser::getDelFlag, 0));
            R<PointSetting> pointSettingR = pointSettingClient.getPointSetting(1);
            if (R.isError(pointSettingR)){
                throw new RuntimeException("获取积分设置失败");
@@ -319,14 +321,18 @@
            if (pointSetting == null){
                throw new RuntimeException("积分设置不存在");
            }
            Integer getRegisPoint = pointSetting.getGetRegisPoint();
            Integer getRegisPoint1 = getRegisPoint;
            //计算可用积分比例
            if(1 == pointSetting.getGetRegisPointOpen()){
                getRegisPoint1 = getRegisPoint1 * (100 - pointSetting.getGetRegisPoint());
            Integer regisPoint = pointSetting.getRegisPoint();
            if(null == old){
                Integer regisPoint1 = regisPoint;
                //计算可用积分比例
                if(1 == pointSetting.getGetRegisPointOpen()){
                    regisPoint1 = new BigDecimal(regisPoint1).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue();
                }
                appUser.setLavePoint(regisPoint);
                appUser.setAvailablePoint(regisPoint1);
                appUser.setTotalRegisterPoint(regisPoint);
                appUser.setTotalPoint(regisPoint);
            }
            appUser.setLavePoint(getRegisPoint1);
            appUser.setTotalPoint(getRegisPoint);
            //根据平台的配置未达标,则标注为可修改推广人
            appUser.setChangePromoter(0);
            appUser.setLongitude(registerAccount.getLongitude());
@@ -346,26 +352,48 @@
            }
            this.save(appUser);
            //增加积分变动记录
            if(getRegisPoint1 > 0){
            if(null == old && regisPoint > 0){
                //构建积分流水记录
                UserPoint userPoint = new UserPoint();
                userPoint.setType(10);
                userPoint.setType(7);
                userPoint.setHistoricalPoint(0);
                userPoint.setVariablePoint(getRegisPoint1);
                userPoint.setVariablePoint(regisPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(appUser.getId());
                userPointService.save(userPoint);
            }
            //拉新分佣
            if(null != appUser2){
                Integer newPoint = pointSetting.getNewPoint();
                Integer newPoint1 = newPoint;
                if(1 == pointSetting.getGetRegisPointOpen()){
                    newPoint1 = new BigDecimal(newPoint1).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue();
                }
                appUser2.setLavePoint(appUser2.getLavePoint() + newPoint);
                appUser2.setAvailablePoint(appUser2.getAvailablePoint() + newPoint1);
                appUser2.setTotalInvitePoint(appUser2.getTotalInvitePoint() + newPoint);
                appUser2.setTotalPoint(appUser2.getTotalPoint() + newPoint);
                this.updateById(appUser2);
                if(newPoint > 0){
                    UserPoint userPoint = new UserPoint();
                    userPoint.setType(3);
                    userPoint.setHistoricalPoint(appUser2.getLavePoint() - newPoint);
                    userPoint.setVariablePoint(newPoint);
                    userPoint.setBalance(appUser2.getLavePoint());
                    userPoint.setCreateTime(LocalDateTime.now());
                    userPoint.setAppUserId(appUser2.getId());
                    userPointService.save(userPoint);
                }
                //处理会员等级
                vipUpgrade(appUser2.getId());
            }
            //获取微信推广二维码
            String fileName = UUID.randomUUID() + ".jpg";
            weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.DEVELOP, filePath + fileName);
            weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.TRIAL, filePath + fileName);
            appUser.setQrCode(accessPath + fileName);
            this.updateById(appUser);
            //直推用户检查是否满足升级条件
            if(null != appUser.getInviteUserId()){
                vipUpgrade(appUser.getInviteUserId());
            }
            
            //查询当前注册的手机号是都和门店管理员手机号相同
            Shop shop = shopClient.getShopByPhone(registerAccount.getPhone()).getData();
@@ -413,28 +441,6 @@
     */
    public void vipUpgrade(Long id){
        AppUser appUser = this.getById(id);
        Integer lavePoint = appUser.getLavePoint();
        //计算积分
        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
        Integer newPoint = pointSetting.getNewPoint();
        Integer newPoint1 = newPoint;
        if(null != pointSetting && 1 == pointSetting.getGetNewPointOpen()){
            newPoint1 = newPoint1 * (100 - pointSetting.getGetNewPoint());
        }
        appUser.setLavePoint(appUser.getLavePoint() + newPoint1);
        appUser.setTotalPoint(appUser.getTotalPoint() + newPoint);
        //记录积分变动
        if(newPoint1 > 0){
            //构建积分流水记录
            UserPoint userPoint = new UserPoint();
            userPoint.setType(3);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(newPoint1);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUser.getId());
            userPointService.save(userPoint);
        }
        Integer vipId = appUser.getVipId();
        //钻石会员
        VipSetting vipSetting3 = vipSettingClient.getVipSetting(3).getData();
@@ -660,15 +666,17 @@
                    int hourPoint = pointSetting.getHourPoint().intValue();
                    int hourPoint1 = hourPoint;
                    if(1 == pointSetting.getWorkPointOpen()){
                        hourPoint1 = hourPoint1 * (100 - pointSetting.getWorkPoint());
                        hourPoint1 = new BigDecimal(hourPoint1).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue();
                    }
                    Integer lavePoint = appUser.getLavePoint();
                    appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint);
                    appUser.setLavePoint(appUser.getLavePoint() + hourPoint1);
                    appUser.setLavePoint(appUser.getLavePoint() + hourPoint);
                    appUser.setAvailablePoint(appUser.getAvailablePoint() + hourPoint1);
                    appUser.setTotalHourPoint(appUser.getTotalHourPoint() + hourPoint);
                    this.updateById(appUser);
                    //添加积分变动记录
                    UserPoint userPoint = new UserPoint();
                    userPoint.setType(9);
                    userPoint.setType(6);
                    userPoint.setHistoricalPoint(lavePoint);
                    userPoint.setVariablePoint(hourPoint);
                    userPoint.setBalance(appUser.getLavePoint());
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserShareServiceImpl.java
New file
@@ -0,0 +1,15 @@
package com.ruoyi.account.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.model.AppUserShare;
import com.ruoyi.account.mapper.AppUserShareMapper;
import com.ruoyi.account.service.AppUserShareService;
import org.springframework.stereotype.Service;
/**
 * @author zhibing.pu
 * @Date 2024/12/27 11:14
 */
@Service
public class AppUserShareServiceImpl extends ServiceImpl<AppUserShareMapper, AppUserShare> implements AppUserShareService {
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -11,16 +11,10 @@
import com.ruoyi.order.service.CommissionService;
import com.ruoyi.order.service.OrderGoodService;
import com.ruoyi.order.service.OrderService;
import com.ruoyi.other.api.domain.Shop;
import com.ruoyi.other.api.domain.ShopBalanceStatement;
import com.ruoyi.other.api.domain.ShopPoint;
import com.ruoyi.other.api.domain.Technician;
import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient;
import com.ruoyi.other.api.feignClient.ShopClient;
import com.ruoyi.other.api.domain.*;
import com.ruoyi.other.api.feignClient.*;
import com.ruoyi.order.model.Order;
import com.ruoyi.order.model.OrderGood;
import com.ruoyi.other.api.feignClient.ShopPointClient;
import com.ruoyi.other.api.feignClient.TechnicianClient;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -54,6 +48,8 @@
    private ShopPointClient shopPointClient;
    @Resource
    private TechnicianClient technicianClient;
    @Resource
    private PointSettingClient pointSettingClient;
 
@@ -143,8 +139,15 @@
                    inviteUser.setWithdrawableAmount(inviteUser.getWithdrawableAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                }
                if(ztsj_point > 0){
                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                    int earnPoint1 = ztsj_point;
                    //计算可用积分比例
                    if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
                        earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
                    }
                    inviteUser.setSharePoint(inviteUser.getSharePoint() + ztsj_point);
                    inviteUser.setLavePoint(inviteUser.getLavePoint() + ztsj_point);
                    inviteUser.setAvailablePoint(inviteUser.getAvailablePoint() + earnPoint1);
                    inviteUser.setTotalPoint(inviteUser.getTotalPoint() + ztsj_point);
                }
                appUserClient.editAppUserById(inviteUser);
@@ -186,8 +189,15 @@
                    superiorLeader.setWithdrawableAmount(superiorLeader.getWithdrawableAmount().add(zbsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                }
                if(zbsj_point > 0){
                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                    int earnPoint1 = zbsj_point;
                    //计算可用积分比例
                    if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
                        earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
                    }
                    superiorLeader.setSharePoint(superiorLeader.getSharePoint() + zbsj_point);
                    superiorLeader.setLavePoint(superiorLeader.getLavePoint() + zbsj_point);
                    superiorLeader.setAvailablePoint(superiorLeader.getAvailablePoint() + earnPoint1);
                    superiorLeader.setTotalPoint(superiorLeader.getTotalPoint() + zbsj_point);
                }
                appUserClient.editAppUserById(superiorLeader);
@@ -239,7 +249,14 @@
                    shop.setBalance(shop.getBalance().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                }
                if(hxmd_point > 0){
                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                    int earnPoint1 = hxmd_point;
                    //计算可用积分比例
                    if(null != pointSetting && 1 == pointSetting.getShopPointOpen()){
                        earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopPoint().divide(new BigDecimal(100))).intValue();
                    }
                    shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
                    shopAppUser.setAvailablePoint(shopAppUser.getAvailablePoint() + earnPoint1);
                    shopAppUser.setTotalPoint(shopAppUser.getTotalPoint() + hxmd_point);
                    shopAppUser.setShopAchievementPoint(shopAppUser.getShopAchievementPoint() + bdmdsj_point);
                    //门店返佣
@@ -312,7 +329,14 @@
                    AppUser technicianAppUser = appUserClient.getAppUserById(technician.getAppUserId());
                    Integer lavePoint = technicianAppUser.getLavePoint();
                    if(js_point > 0){
                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                        int earnPoint1 = js_point;
                        //计算可用积分比例
                        if(null != pointSetting && 1 == pointSetting.getPersonPointOpen()){
                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
                        }
                        technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
                        technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
                        technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
                        technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
                    }
@@ -354,7 +378,14 @@
                        shop1.setBalance(shop1.getBalance().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                    }
                    if(bdmd_point > 0){
                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                        int earnPoint1 = bdmd_point;
                        //计算可用积分比例
                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
                        }
                        bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + bdmd_point);
                        bdShopAppUser.setAvailablePoint(bdShopAppUser.getAvailablePoint() + earnPoint1);
                        bdShopAppUser.setTotalPoint(bdShopAppUser.getTotalPoint() + bdmd_point);
                        bdShopAppUser.setShopSharePoint(bdShopAppUser.getShopSharePoint() + bdmdsj_point);
                        //门店返佣
@@ -442,7 +473,14 @@
                        shop2.setBalance(shop2.getBalance().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                    }
                    if(bdmdsj_point > 0){
                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                        int earnPoint1 = bdmdsj_point;
                        //计算可用积分比例
                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
                        }
                        sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
                        sjShopAppUser.setAvailablePoint(sjShopAppUser.getAvailablePoint() + earnPoint1);
                        sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + bdmdsj_point);
                        sjShopAppUser.setLowerLevelSharePoint(sjShopAppUser.getLowerLevelSharePoint() + bdmdsj_point);
                        //门店返佣
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -101,12 +101,6 @@
    @Resource
    private UserChangeLogClient userChangeLogClient;
    @Resource
    private PointSettingClient pointSettingClient;
    
@@ -814,6 +808,12 @@
                return R.fail("账户余额不足");
            }
        }
        if(3 == shoppingCartPayment.getPaymentType()){
            Integer availablePoint = appUser.getAvailablePoint();
            if(availablePoint < orderPoint){
                return R.fail("账户积分不足");
            }
        }
        //判断运费支付是否足够
        if(null != shoppingCartPayment.getFreightPaymentType() && 2 == shoppingCartPayment.getFreightPaymentType() && expressFee.compareTo(BigDecimal.ZERO) > 0){
            BigDecimal balance = appUser.getBalance();
@@ -912,15 +912,16 @@
                PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                int earnPoint1 = earnPoint;
                if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
                    earnPoint1 = earnPoint1 * (100 - pointSetting.getBuyPoint());
                    earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
                }
                appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
                appUser.setLavePoint(appUser.getLavePoint() + earnPoint1);
                appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
                appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
                appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
                UserPoint userPoint = new UserPoint();
                userPoint.setType(1);
                userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint1);
                userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint);
                userPoint.setVariablePoint(earnPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
@@ -960,11 +961,15 @@
            int earnPoint1 = earnPoint;
            //计算可用积分比例
            if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
                earnPoint1 = earnPoint1 * (100 - pointSetting.getBuyPoint());
                earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
            }
            //扣减订单支付积分
            appUser.setLavePoint(appUser.getLavePoint() - orderPoint);
            appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint);
            appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
            appUser.setLavePoint(appUser.getLavePoint() + earnPoint1);
            appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
            appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
            appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
            appUser.setLastShopTime(LocalDateTime.now());
            appUserClient.editAppUserById(appUser);
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java
@@ -42,6 +42,8 @@
    private AppUserClient appUserClient;
    @Resource
    private ShopClient shopClient;
    /**
     * 分享列表
@@ -218,5 +220,8 @@
    }
}