| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package com.cyksj.service.relation.impl;
- import com.cyksj.mapper.GroupsMapper;
- import com.cyksj.mapper.GroupsRelationMapper;
- import com.cyksj.mapper.UserTicketClearedRecordMapper;
- import com.cyksj.model.entity.GroupsRelation;
- import com.cyksj.model.entity.UserTicketClearedRecord;
- import com.cyksj.model.manage.views.GroupsRelationView;
- import com.cyksj.service.relation.GroupRelationClearService;
- import com.ejlchina.searcher.BeanSearcher;
- import com.ejlchina.searcher.util.MapUtils;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.Date;
- /*
- *项目名: netflix
- *文件名: GroupRelationClearServiceImpl
- *创建者: JavaZou
- *创建时间:2023/2/23 15:31
- */
- @Service
- @RequiredArgsConstructor
- @Slf4j
- public class GroupRelationClearServiceImpl implements GroupRelationClearService {
- private final GroupsRelationMapper groupsRelationMapper;
- private final GroupsMapper groupsMapper;
- private final BeanSearcher beanSearcher;
- private final UserTicketClearedRecordMapper userTicketClearedRecordMapper;
- @Override
- @Transactional(rollbackFor = Throwable.class)
- public void clearTicket(GroupsRelation relation, UserTicketClearedRecord.Source source) {
- Long relationId = relation.getId();
- Long newRelationId = relation.getNewRelationId();
- Integer num = relation.getNum();
- final GroupsRelation.Status relationStatus = relation.getStatus();
- //记录用户被清除车票历史记录
- 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);
- relation.setUserId(0l);
- // Boolean isFlag = false;
- // //非chatGpt独立会员规格车队
- // if (!groupsRelation.getSkuId().equals(177l)) {
- // relation.setUserId(0l);
- // isFlag = true;
- // }
- if (relationStatus != GroupsRelation.Status.outside) {
- relation.setStatus(GroupsRelation.Status.none);
- }
- relation.setIsHandle(false);
- relation.setRenewStatus(false);
- relation.setAccount(null);
- Integer success = groupsRelationMapper.updateExpiryTime(relation, expireTime);
- if (success == 1) {
- //2023-06-07 GPT账号座位大于20
- if (relationStatus != GroupsRelation.Status.outside) {
- log.info("开始清除过期子账号,座位号:{}", relation.getId());
- int count = groupsMapper.incrAvailableNum(relation.getGroupsId());
- if (count == 0) {
- log.error("车位异常 groupId:{}", relation.getGroupsId());
- groupsMapper.updateAvailableNum(relation.getGroupsId());
- }
- }
- UserTicketClearedRecord userTicketClearedRecord = new UserTicketClearedRecord();
- userTicketClearedRecord.setAccountId(groupsRelation.getAccountId());
- userTicketClearedRecord.setAccount(groupsRelation.getTripsAccount());
- userTicketClearedRecord.setRelationId(relationId);
- userTicketClearedRecord.setNum(num);
- userTicketClearedRecord.setUserId(userId);
- userTicketClearedRecord.setSource(source);
- userTicketClearedRecord.setGoodsId(groupsRelation.getGoodsId());
- userTicketClearedRecord.setSkuId(groupsRelation.getSkuId());
- userTicketClearedRecord.setStartTime(startTime);
- userTicketClearedRecord.setExpiryTime(expireTime);
- userTicketClearedRecord.setNewRelationId(newRelationId);
- if (source != UserTicketClearedRecord.Source.self) {
- userTicketClearedRecord.setDeleted(false);
- }
- 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, null);
- //
- // 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());
- // }
- // }
- }
- }
- }
- @Override
- public void clearRenewGroupRelation(GroupsRelation relation) {
- 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) {
- groupsMapper.updateAvailableNum(relation.getGroupsId());
- log.error("续费更换车位异常 groupId:{}", relation.getGroupsId());
- }
- }
- }
- }
|