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 @@ } }