|
@@ -3,16 +3,19 @@ package com.cyksj.service.relation.impl;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.mapper.GroupsMapper;
|
|
import com.cyksj.mapper.GroupsMapper;
|
|
|
import com.cyksj.mapper.GroupsRelationMapper;
|
|
import com.cyksj.mapper.GroupsRelationMapper;
|
|
|
|
|
+import com.cyksj.mapper.GroupsTripsDeleteRecordMapper;
|
|
|
import com.cyksj.mapper.UserTicketClearedRecordMapper;
|
|
import com.cyksj.mapper.UserTicketClearedRecordMapper;
|
|
|
-import com.cyksj.model.entity.GroupsRelation;
|
|
|
|
|
-import com.cyksj.model.entity.UserTicketClearedRecord;
|
|
|
|
|
|
|
+import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.manage.views.GroupsRelationView;
|
|
import com.cyksj.model.manage.views.GroupsRelationView;
|
|
|
|
|
+import com.cyksj.service.mange.CmsAccountService;
|
|
|
|
|
+import com.cyksj.service.mange.CmsGroupService;
|
|
|
import com.cyksj.service.relation.GroupRelationClearService;
|
|
import com.cyksj.service.relation.GroupRelationClearService;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
|
|
|
@@ -34,42 +37,79 @@ public class GroupRelationClearServiceImpl implements GroupRelationClearService
|
|
|
|
|
|
|
|
private final UserTicketClearedRecordMapper userTicketClearedRecordMapper;
|
|
private final UserTicketClearedRecordMapper userTicketClearedRecordMapper;
|
|
|
|
|
|
|
|
|
|
+ private final CmsGroupService groupService;
|
|
|
|
|
+
|
|
|
|
|
+ private final CmsAccountService accountService;
|
|
|
|
|
+
|
|
|
|
|
+ private final GroupsTripsDeleteRecordMapper groupsTripsDeleteRecordMapper;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
|
|
+ @Transactional(rollbackFor = Throwable.class)
|
|
|
public void clearTicket(GroupsRelation relation, UserTicketClearedRecord.Source source) {
|
|
public void clearTicket(GroupsRelation relation, UserTicketClearedRecord.Source source) {
|
|
|
Long relationId = relation.getId();
|
|
Long relationId = relation.getId();
|
|
|
- Long userId = relation.getUserId();
|
|
|
|
|
- Date startTime = relation.getStartTime();
|
|
|
|
|
- Date expireTime = relation.getExpiryTime();
|
|
|
|
|
- relation.setStartTime(null);
|
|
|
|
|
- relation.setExpiryTime(null);
|
|
|
|
|
- relation.setUserId(0l);
|
|
|
|
|
- relation.setStatus(GroupsRelation.Status.none);
|
|
|
|
|
- relation.setIsHandle(false);
|
|
|
|
|
- relation.setRenewStatus(false);
|
|
|
|
|
- relation.setAccount(null);
|
|
|
|
|
- Integer success = groupsRelationMapper.updateExpiryTime(relation, expireTime);
|
|
|
|
|
- if (success == 1) {
|
|
|
|
|
- log.info("开始清除过期子账号,座位号:{}", relation.getId());
|
|
|
|
|
- int count = groupsMapper.incrAvailableNum(relation.getGroupsId());
|
|
|
|
|
- if (count == 0) {
|
|
|
|
|
- log.error("车位异常 groupId:{}", relation.getGroupsId());
|
|
|
|
|
- throw new BusinessRuntimeException("车位异常");
|
|
|
|
|
|
|
+ //记录用户被清除车票历史记录
|
|
|
|
|
+ GroupsRelationView groupsRelation = beanSearcher.searchFirst(GroupsRelationView.class,
|
|
|
|
|
+ MapUtils.builder().field(GroupsRelationView::getId, relationId).build());
|
|
|
|
|
+ if (groupsRelation != null) {
|
|
|
|
|
+ Long userId = relation.getUserId();
|
|
|
|
|
+ Date startTime = relation.getStartTime();
|
|
|
|
|
+ Date expireTime = relation.getExpiryTime();
|
|
|
|
|
+ relation.setStartTime(null);
|
|
|
|
|
+ relation.setExpiryTime(null);
|
|
|
|
|
+ Boolean isFlag = false;
|
|
|
|
|
+ //非chatGpt独立会员规格车队
|
|
|
|
|
+ if (!groupsRelation.getSkuId().equals(177l)) {
|
|
|
|
|
+ relation.setUserId(0l);
|
|
|
|
|
+ isFlag = true;
|
|
|
}
|
|
}
|
|
|
- //记录用户被清除车票历史记录
|
|
|
|
|
- GroupsRelationView groupsTrips = beanSearcher.searchFirst(GroupsRelationView.class,
|
|
|
|
|
- MapUtils.builder().field(GroupsRelationView::getId, relationId).build());
|
|
|
|
|
- if (groupsTrips != null) {
|
|
|
|
|
|
|
+ relation.setStatus(GroupsRelation.Status.none);
|
|
|
|
|
+ relation.setIsHandle(false);
|
|
|
|
|
+ relation.setRenewStatus(false);
|
|
|
|
|
+ relation.setAccount(null);
|
|
|
|
|
+ Integer success = groupsRelationMapper.updateExpiryTime(relation, expireTime);
|
|
|
|
|
+ if (success == 1) {
|
|
|
|
|
+ log.info("开始清除过期子账号,座位号:{}", relation.getId());
|
|
|
|
|
+ int count = groupsMapper.incrAvailableNum(relation.getGroupsId());
|
|
|
|
|
+ if (count == 0) {
|
|
|
|
|
+ log.error("车位异常 groupId:{}", relation.getGroupsId());
|
|
|
|
|
+ throw new BusinessRuntimeException("车位异常");
|
|
|
|
|
+ }
|
|
|
UserTicketClearedRecord userTicketClearedRecord = new UserTicketClearedRecord();
|
|
UserTicketClearedRecord userTicketClearedRecord = new UserTicketClearedRecord();
|
|
|
- userTicketClearedRecord.setAccountId(groupsTrips.getAccountId());
|
|
|
|
|
- userTicketClearedRecord.setAccount(groupsTrips.getTripsAccount());
|
|
|
|
|
|
|
+ userTicketClearedRecord.setAccountId(groupsRelation.getAccountId());
|
|
|
|
|
+ userTicketClearedRecord.setAccount(groupsRelation.getTripsAccount());
|
|
|
userTicketClearedRecord.setRelationId(relationId);
|
|
userTicketClearedRecord.setRelationId(relationId);
|
|
|
userTicketClearedRecord.setUserId(userId);
|
|
userTicketClearedRecord.setUserId(userId);
|
|
|
userTicketClearedRecord.setSource(source);
|
|
userTicketClearedRecord.setSource(source);
|
|
|
- userTicketClearedRecord.setGoodsId(groupsTrips.getGoodsId());
|
|
|
|
|
- userTicketClearedRecord.setSkuId(groupsTrips.getSkuId());
|
|
|
|
|
|
|
+ userTicketClearedRecord.setGoodsId(groupsRelation.getGoodsId());
|
|
|
|
|
+ userTicketClearedRecord.setSkuId(groupsRelation.getSkuId());
|
|
|
userTicketClearedRecord.setStartTime(startTime);
|
|
userTicketClearedRecord.setStartTime(startTime);
|
|
|
userTicketClearedRecord.setExpiryTime(expireTime);
|
|
userTicketClearedRecord.setExpiryTime(expireTime);
|
|
|
userTicketClearedRecordMapper.insert(userTicketClearedRecord);
|
|
userTicketClearedRecordMapper.insert(userTicketClearedRecord);
|
|
|
|
|
+ if (!isFlag) {
|
|
|
|
|
+ //清除之前规格的车队
|
|
|
|
|
+ groupService.close(groupsRelation.getGroupsId());
|
|
|
|
|
+ if (groupsRelation.getAccountId() != null) {
|
|
|
|
|
+ //生成10人月付新规格车队
|
|
|
|
|
+ Account account = accountService.getById(groupsRelation.getAccountId());
|
|
|
|
|
+ account.setSkuId(161l);
|
|
|
|
|
+ accountService.updateById(account);
|
|
|
|
|
+ GroupsTrips gt = new GroupsTrips();
|
|
|
|
|
+ gt.setSkuId(account.getSkuId());
|
|
|
|
|
+ gt.setAccountId(account.getId());
|
|
|
|
|
+ groupService.issuance(gt);
|
|
|
|
|
+
|
|
|
|
|
+ GroupsTripsDeleteRecord record = new GroupsTripsDeleteRecord();
|
|
|
|
|
+ record.setAccountId(gt.getAccountId());
|
|
|
|
|
+ record.setAccount(gt.getAccount());
|
|
|
|
|
+ record.setBeforeGroupsId(groupsRelation.getId());
|
|
|
|
|
+ record.setBeforeSkuId(groupsRelation.getSkuId());
|
|
|
|
|
+ record.setAfterGroupsId(gt.getId());
|
|
|
|
|
+ record.setAfterSkuId(gt.getSkuId());
|
|
|
|
|
+ groupsTripsDeleteRecordMapper.insert(record);
|
|
|
|
|
+ log.info("ChatGPT 独立会员账号车票过期,删除原先车队id:{}并生成一个10人月付规格的车队id:{}", groupsRelation.getId(), gt.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|