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.GetMapping; 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; @GetMapping("/saveAppUserShare") @ApiOperation(value = "操作分享调用接口", tags = {"小程序-推广中心"}) public R saveAppUserShare(){ Long userid = tokenService.getLoginUserApplet().getUserid(); AppUserShare appUserShare = appUserShareService.getOne(new LambdaQueryWrapper().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 = 0; if(1 == pointSetting.getWorkPointOpen()){ everySharePoint1 = new BigDecimal(everySharePoint).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.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + everySharePoint1); if(null != pointSetting && 1 == pointSetting.getWorkPointGift()){ appUser.setTransferablePoint(appUser.getTransferablePoint() + 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); //变更等级 appUserService.vipUpgrade(appUser.getId()); } } return R.ok(); } }