InviteMessageService.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.example.xiaoshiweixinback.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.example.xiaoshiweixinback.business.common.base.Records;
  5. import com.example.xiaoshiweixinback.business.exception.BusinessException;
  6. import com.example.xiaoshiweixinback.business.exception.ExceptionEnum;
  7. import com.example.xiaoshiweixinback.business.utils.CacheUtil;
  8. import com.example.xiaoshiweixinback.business.utils.LoginUtils;
  9. import com.example.xiaoshiweixinback.domain.InviteMessage;
  10. import com.example.xiaoshiweixinback.domain.Person;
  11. import com.example.xiaoshiweixinback.entity.invite.InvitedPersonQueryDTO;
  12. import com.example.xiaoshiweixinback.entity.invite.InvitedPersonVO;
  13. import com.example.xiaoshiweixinback.entity.person.PersonQueryVO;
  14. import com.example.xiaoshiweixinback.entity.person.PersonVO;
  15. import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
  16. import com.example.xiaoshiweixinback.mapper.InviteMessageMapper;
  17. import lombok.RequiredArgsConstructor;
  18. import org.springframework.stereotype.Service;
  19. import java.util.List;
  20. /**
  21. * @author admin
  22. * @description 针对表【invite_message(邀请信息表)】的数据库操作Service实现
  23. * @createDate 2024-07-02 21:25:55
  24. */
  25. @Service
  26. @RequiredArgsConstructor
  27. public class InviteMessageService extends ServiceImpl<InviteMessageMapper, InviteMessage> {
  28. private final PersonService personService;
  29. public final CacheUtil cacheUtil;
  30. private final AssoPersonVipService assoPersonVipService;
  31. private final ActivityService activityService;
  32. private final Integer ACTIVITY_SCOPE=-2;
  33. public void checkInvite(String inviteNode) {
  34. if(inviteNode==null){
  35. return;
  36. }
  37. LambdaQueryWrapper<Person> queryWrapper = new LambdaQueryWrapper<>();
  38. queryWrapper.eq(Person::getUuid, inviteNode);
  39. Person person = personService.getOne(queryWrapper, false);
  40. if (person == null) {
  41. throw new BusinessException(ExceptionEnum.LOGIN_INVITE_ERROR, "邀请码错误");
  42. }
  43. }
  44. public void addInviteMessage(String inviteNode, String personUuid) {
  45. if(inviteNode==null){
  46. return;
  47. }
  48. InviteMessage inviteMessage = new InviteMessage();
  49. inviteMessage.setInvitePersonUuid(inviteNode);
  50. inviteMessage.setIfBuyVip(false);
  51. inviteMessage.setInvitedPersonUuid(personUuid);
  52. inviteMessage.insert();
  53. assoPersonVipService.addAssoPersonVipByTime(personUuid,0,3);
  54. }
  55. public Integer getInviteGiveVoucher(String personUuid) {
  56. //查询人员是否被邀请
  57. LambdaQueryWrapper<InviteMessage> queryWrapper = new LambdaQueryWrapper<>();
  58. queryWrapper.eq(InviteMessage::getInvitedPersonUuid, personUuid)
  59. .eq(InviteMessage::getIfBuyVip, false);
  60. InviteMessage inviteMessage = this.getOne(queryWrapper, false);
  61. if (inviteMessage == null) {
  62. return 0;
  63. } else {
  64. String inviteId = inviteMessage.getInvitePersonUuid();
  65. LambdaQueryWrapper<InviteMessage> queryWrapper1 = new LambdaQueryWrapper<>();
  66. queryWrapper1.eq(InviteMessage::getInvitePersonUuid, inviteId)
  67. .eq(InviteMessage::getIfBuyVip, true);
  68. Long count = this.count(queryWrapper1);
  69. if (count >= 5) {
  70. return 0;
  71. } else {
  72. //TODO 给邀请人赠送优惠券
  73. activityService.doingActivity(inviteMessage.getInvitePersonUuid(),ACTIVITY_SCOPE);
  74. inviteMessage.setIfBuyVip(true);
  75. inviteMessage.updateById();
  76. return 3;
  77. }
  78. }
  79. }
  80. public Records queryInvitedPerson(InvitedPersonQueryDTO invitedPersonQueryDTO) {
  81. Long current = invitedPersonQueryDTO.getCurrent();
  82. Long size = invitedPersonQueryDTO.getSize();
  83. PersonnelVO personVO =cacheUtil.getLoginUser(LoginUtils.getToken());
  84. invitedPersonQueryDTO.setPersonUuid(personVO.getUuid());
  85. List<InvitedPersonVO> invitedPersonVOS = this.getBaseMapper().queryInvitedPerson(invitedPersonQueryDTO);
  86. Long total = this.getBaseMapper().queryInvitedPersonTotal(invitedPersonQueryDTO);
  87. Records records = new Records();
  88. records.setData(invitedPersonVOS);
  89. records.setTotal(total);
  90. records.setSize(size);
  91. records.setCurrent(current);
  92. return records;
  93. }
  94. }