GroupRelationClearServiceImpl.java 5.6 KB

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