package com.ruoyi.account.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.feignClient.AppUserVipDetailClient;
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.account.api.model.TAppUserVipDetail;
import com.ruoyi.account.api.model.TInviteUser;
import com.ruoyi.account.api.vo.GetAppUserVipDetail;
import com.ruoyi.account.mapper.TInviteUserMapper;
import com.ruoyi.account.service.TAppUserService;
import com.ruoyi.account.service.TInviteUserService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.TIntegralRule;
import com.ruoyi.other.api.domain.TVip;
import com.ruoyi.other.api.feignClient.IntegralRuleClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Objects;
/**
*
* 服务实现类
*
*
* @author luodangjia
* @since 2024-08-06
*/
@Service
public class TInviteUserServiceImpl extends ServiceImpl implements TInviteUserService {
@Autowired
private IntegralRuleClient integralRuleClient;
@Autowired
private TAppUserService appUserService;
@Resource
private AppUserVipDetailClient vipDetailClient;
/**
*
* @param appUserId 被邀请人
* @param beInvitedAppUserId 邀请人
*/
@Override
public void saveInviteUser(Long appUserId, Long beInvitedAppUserId) {
// 查询用户信息
TAppUser user = appUserService.getById(beInvitedAppUserId);
GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
getAppUserVipDetail.setAppUserId(beInvitedAppUserId);
getAppUserVipDetail.setVipId(user.getVipId());
R appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail);
TAppUserVipDetail data1 = appUserVipDetail.getData();
// 查询邀请用户获得积分配置
TIntegralRule integralRule = integralRuleClient.getSet().getData();
JSONObject jsonObject = JSONObject.parseObject(integralRule.getInviteUsersToEarnPoints());
TInviteUser inviteUser = new TInviteUser();
if(Objects.nonNull(data1)){
String vipJson = data1.getVipJson();
TVip vip = JSON.parseObject(vipJson, TVip.class);
if(Objects.nonNull(vip) && vip.getDoubleIntegration() == 1){
inviteUser.setAward(jsonObject.getInteger("num1")*2);
}else {
inviteUser.setAward(jsonObject.getInteger("num1"));
}
}else {
inviteUser.setAward(jsonObject.getInteger("num1"));
}
inviteUser.setAppUserId(beInvitedAppUserId);
inviteUser.setBeInvitedAppUserId(appUserId);
inviteUser.setCreateTime(LocalDateTime.now());
this.save(inviteUser);
}
}