package com.example.xiaoshiweixinback.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.xiaoshiweixinback.business.common.base.Records; import com.example.xiaoshiweixinback.business.exception.BusinessException; import com.example.xiaoshiweixinback.business.exception.ExceptionEnum; import com.example.xiaoshiweixinback.business.utils.CacheUtil; import com.example.xiaoshiweixinback.business.utils.LoginUtils; import com.example.xiaoshiweixinback.domain.InviteMessage; import com.example.xiaoshiweixinback.domain.Person; import com.example.xiaoshiweixinback.entity.invite.InvitedPersonQueryDTO; import com.example.xiaoshiweixinback.entity.invite.InvitedPersonVO; import com.example.xiaoshiweixinback.entity.person.PersonQueryVO; import com.example.xiaoshiweixinback.entity.person.PersonVO; import com.example.xiaoshiweixinback.entity.vo.PersonnelVO; import com.example.xiaoshiweixinback.mapper.InviteMessageMapper; import io.swagger.v3.oas.models.security.SecurityScheme; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.List; /** * @author admin * @description 针对表【invite_message(邀请信息表)】的数据库操作Service实现 * @createDate 2024-07-02 21:25:55 */ @Service @RequiredArgsConstructor public class InviteMessageService extends ServiceImpl { private final PersonService personService; public final CacheUtil cacheUtil; private final AssoPersonVipService assoPersonVipService; @Lazy private final ActivityService activityService; private final Integer ACTIVITY_SCOPE=-2; public void checkInvite(String inviteNode) { if(inviteNode==null){ return; } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Person::getUuid, inviteNode); Person person = personService.getOne(queryWrapper, false); if (person == null) { throw new BusinessException(ExceptionEnum.LOGIN_INVITE_ERROR, "邀请码错误"); } } public void addInviteMessage(String inviteNode, String personUuid) { if(inviteNode==null){ return; } InviteMessage inviteMessage = new InviteMessage(); inviteMessage.setInvitePersonUuid(inviteNode); inviteMessage.setIfBuyVip(false); inviteMessage.setInvitedPersonUuid(personUuid); inviteMessage.insert(); activityService.executeActivity(inviteMessage,ACTIVITY_SCOPE,1,null); } public InviteMessage updateInvite(String personUuid) { //查询人员是否被邀请 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(InviteMessage::getInvitedPersonUuid, personUuid) .eq(InviteMessage::getIfBuyVip, false); InviteMessage inviteMessage = this.getOne(queryWrapper, false); if(inviteMessage!=null) { inviteMessage.setIfBuyVip(true); inviteMessage.updateById(); } return inviteMessage; } public Records queryInvitedPerson(InvitedPersonQueryDTO invitedPersonQueryDTO) { Long current = invitedPersonQueryDTO.getCurrent(); Long size = invitedPersonQueryDTO.getSize(); PersonnelVO personVO =cacheUtil.getLoginUser(LoginUtils.getToken()); invitedPersonQueryDTO.setPersonUuid(personVO.getUuid()); List invitedPersonVOS = this.getBaseMapper().queryInvitedPerson(invitedPersonQueryDTO); Long total = this.getBaseMapper().queryInvitedPersonTotal(invitedPersonQueryDTO); Records records = new Records(); records.setData(invitedPersonVOS); records.setTotal(total); records.setSize(size); records.setCurrent(current); return records; } public InviteMessage getInvitedMessage(String InvitedId) { LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper<>(); queryWrapper.eq(InviteMessage::getInvitedPersonUuid,InvitedId); InviteMessage inviteMessage =this.getOne(queryWrapper); return inviteMessage; } }