GroupRelationClearServiceImpl.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.cyksj.service.relation.impl;
  2. import com.cyksj.mapper.GoodsDonSkuMapper;
  3. import com.cyksj.mapper.GroupsMapper;
  4. import com.cyksj.mapper.GroupsRelationMapper;
  5. import com.cyksj.mapper.UserTicketClearedRecordMapper;
  6. import com.cyksj.model.entity.GoodsDonSku;
  7. import com.cyksj.model.entity.GroupsRelation;
  8. import com.cyksj.model.entity.UserTicketClearedRecord;
  9. import com.cyksj.model.manage.views.GroupsRelationView;
  10. import com.cyksj.service.mange.MirrorUserCleatService;
  11. import com.cyksj.service.relation.GroupRelationClearService;
  12. import com.ejlchina.searcher.BeanSearcher;
  13. import com.ejlchina.searcher.util.MapUtils;
  14. import lombok.RequiredArgsConstructor;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import java.util.Date;
  19. /*
  20. *项目名: netflix
  21. *文件名: GroupRelationClearServiceImpl
  22. *创建者: JavaZou
  23. *创建时间:2023/2/23 15:31
  24. */
  25. @Service
  26. @RequiredArgsConstructor
  27. @Slf4j
  28. public class GroupRelationClearServiceImpl implements GroupRelationClearService {
  29. private final GroupsRelationMapper groupsRelationMapper;
  30. private final GroupsMapper groupsMapper;
  31. private final BeanSearcher beanSearcher;
  32. private final UserTicketClearedRecordMapper userTicketClearedRecordMapper;
  33. private final GoodsDonSkuMapper goodsDonSkuMapper;
  34. private final MirrorUserCleatService mirrorUserCleatService;
  35. @Override
  36. @Transactional(rollbackFor = Throwable.class)
  37. public void clearTicket(GroupsRelation relation, UserTicketClearedRecord.Source source) {
  38. Long relationId = relation.getId();
  39. Long newRelationId = relation.getNewRelationId();
  40. Integer num = relation.getNum();
  41. final GroupsRelation.Status relationStatus = relation.getStatus();
  42. //记录用户被清除车票历史记录
  43. GroupsRelationView groupsRelation = beanSearcher.searchFirst(GroupsRelationView.class,
  44. MapUtils.builder().field(GroupsRelationView::getId, relationId).build());
  45. if (groupsRelation != null) {
  46. Long userId = relation.getUserId();
  47. Date startTime = relation.getStartTime();
  48. Date expireTime = relation.getExpiryTime();
  49. relation.setStartTime(null);
  50. relation.setExpiryTime(null);
  51. relation.setUserId(0l);
  52. // Boolean isFlag = false;
  53. // //非chatGpt独立会员规格车队
  54. // if (!groupsRelation.getSkuId().equals(177l)) {
  55. // relation.setUserId(0l);
  56. // isFlag = true;
  57. // }
  58. if (relationStatus != GroupsRelation.Status.outside) {
  59. relation.setStatus(GroupsRelation.Status.none);
  60. }
  61. relation.setIsHandle(false);
  62. relation.setRenewStatus(false);
  63. relation.setAccount(null);
  64. Integer success = groupsRelationMapper.updateExpiryTime(relation, expireTime);
  65. if (success == 1) {
  66. //2023-06-07 GPT账号座位大于20
  67. if (relationStatus != GroupsRelation.Status.outside) {
  68. log.info("开始清除过期子账号,座位号:{}", relation.getId());
  69. int count = groupsMapper.incrAvailableNum(relation.getGroupsId());
  70. if (count == 0) {
  71. log.error("车位异常 groupId:{}", relation.getGroupsId());
  72. groupsMapper.updateAvailableNum(relation.getGroupsId());
  73. }
  74. }
  75. UserTicketClearedRecord userTicketClearedRecord = new UserTicketClearedRecord();
  76. userTicketClearedRecord.setAccountId(groupsRelation.getAccountId());
  77. userTicketClearedRecord.setAccount(groupsRelation.getTripsAccount());
  78. userTicketClearedRecord.setRelationId(relationId);
  79. userTicketClearedRecord.setNum(num);
  80. userTicketClearedRecord.setUserId(userId);
  81. userTicketClearedRecord.setSource(source);
  82. if (groupsRelation.getGoodsId() == null) {
  83. GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(groupsRelation.getSkuId());
  84. if (goodsDonSku != null) {
  85. groupsRelation.setGoodsId(goodsDonSku.getGoodsId());
  86. }
  87. }
  88. userTicketClearedRecord.setGoodsId(groupsRelation.getGoodsId());
  89. userTicketClearedRecord.setSkuId(groupsRelation.getSkuId());
  90. userTicketClearedRecord.setStartTime(startTime);
  91. userTicketClearedRecord.setExpiryTime(expireTime);
  92. userTicketClearedRecord.setNewRelationId(newRelationId);
  93. userTicketClearedRecord.setYhsId(groupsRelation.getYhsId());
  94. if (source != UserTicketClearedRecord.Source.self) {
  95. userTicketClearedRecord.setDeleted(false);
  96. }
  97. userTicketClearedRecordMapper.insert(userTicketClearedRecord);
  98. // if (!isFlag) {
  99. // //清除之前规格的车队
  100. // groupService.close(groupsRelation.getGroupsId());
  101. // if (groupsRelation.getAccountId() != null) {
  102. // //生成10人月付新规格车队
  103. // Account account = accountService.getById(groupsRelation.getAccountId());
  104. // account.setSkuId(161l);
  105. // accountService.updateById(account);
  106. // GroupsTrips gt = new GroupsTrips();
  107. // gt.setSkuId(account.getSkuId());
  108. // gt.setAccountId(account.getId());
  109. // groupService.issuance(gt, null);
  110. //
  111. // GroupsTripsDeleteRecord record = new GroupsTripsDeleteRecord();
  112. // record.setAccountId(gt.getAccountId());
  113. // record.setAccount(gt.getAccount());
  114. // record.setBeforeGroupsId(groupsRelation.getId());
  115. // record.setBeforeSkuId(groupsRelation.getSkuId());
  116. // record.setAfterGroupsId(gt.getId());
  117. // record.setAfterSkuId(gt.getSkuId());
  118. // groupsTripsDeleteRecordMapper.insert(record);
  119. // log.info("ChatGPT 独立会员账号车票过期,删除原先车队id:{}并生成一个10人月付规格的车队id:{}", groupsRelation.getId(), gt.getId());
  120. // }
  121. // }
  122. mirrorUserCleatService.delMirrorUser(groupsRelation.getGoodsId(), groupsRelation.getId());
  123. }
  124. }
  125. }
  126. @Override
  127. public void clearRenewGroupRelation(GroupsRelation relation) {
  128. Date expireTime = relation.getExpiryTime();
  129. relation.setStartTime(null);
  130. relation.setExpiryTime(null);
  131. relation.setUserId(0l);
  132. relation.setStatus(GroupsRelation.Status.none);
  133. relation.setIsHandle(false);
  134. relation.setRenewStatus(false);
  135. relation.setAccount(null);
  136. Integer success = groupsRelationMapper.updateExpiryTime(relation, expireTime);
  137. if (success == 1) {
  138. log.info("续费后更换车票,座位号:{}", relation.getId());
  139. int count = groupsMapper.incrAvailableNum(relation.getGroupsId());
  140. if (count == 0) {
  141. groupsMapper.updateAvailableNum(relation.getGroupsId());
  142. log.error("续费更换车位异常 groupId:{}", relation.getGroupsId());
  143. }
  144. }
  145. }
  146. }