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<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 = 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);
|
//添加积分变动记录
|
if(everySharePoint > 0){
|
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();
|
}
|
}
|