Parcourir la source

Merge branch 'chatgpt_change_sku'

zoujiajian il y a 3 ans
Parent
commit
d684a40f77

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GroupsTripsDeleteRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.GroupsTripsDeleteRecord;
+
+/*
+ *项目名: netflix
+ *文件名: GroupsTripsDeleteRecordMapper
+ *创建者: JavaZou
+ *创建时间:2023/4/25 16:18
+ */
+public interface GroupsTripsDeleteRecordMapper extends BaseMapper<GroupsTripsDeleteRecord> {
+}

+ 26 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GroupsTripsDeleteRecord.java

@@ -0,0 +1,26 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: GroupsTripsDeleteRecord
+ *创建者: JavaZou
+ *创建时间:2023/4/25 16:16
+ */
+@Getter
+@Setter
+public class GroupsTripsDeleteRecord extends BaseEntity{
+	private Long accountId;
+
+	private String account;
+
+	private Long beforeGroupsId;
+
+	private Long beforeSkuId;
+
+	private Long afterGroupsId;
+
+	private Long afterSkuId;
+}

+ 12 - 9
netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml

@@ -4,15 +4,18 @@
 
     <update id="updateExpiryTime">
         update groups_relation
-        set start_time   = null,
-            expiry_time  = null,
-            status       = #{entity.status},
-            renew_status = #{entity.renewStatus},
-            is_handle    = #{entity.isHandle},
-            user_id      = #{entity.userId},
-            account = #{entity.account},
-            customer_service = null
-        where id = #{entity.id} and expiry_time = #{expireTime}
+        set start_time = null,
+        expiry_time = null,
+        status = #{entity.status},
+        renew_status = #{entity.renewStatus},
+        is_handle = #{entity.isHandle},
+        user_id = #{entity.userId},
+        account = #{entity.account},
+        customer_service = null
+        where id = #{entity.id}
+        <if test="expireTime != null">
+            and expiry_time = #{expireTime}
+        </if>
     </update>
 
     <select id="getAccountIdsByUserIdOrNickNameOrSubmitAccount" resultType="java.lang.Long">

+ 67 - 27
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationClearServiceImpl.java

@@ -3,16 +3,19 @@ package com.cyksj.service.relation.impl;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.mapper.GroupsMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
+import com.cyksj.mapper.GroupsTripsDeleteRecordMapper;
 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.service.mange.CmsAccountService;
+import com.cyksj.service.mange.CmsGroupService;
 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;
 
@@ -34,42 +37,79 @@ public class GroupRelationClearServiceImpl implements GroupRelationClearService
 
 	private final UserTicketClearedRecordMapper userTicketClearedRecordMapper;
 
+	private final CmsGroupService groupService;
+
+	private final CmsAccountService accountService;
+
+	private final GroupsTripsDeleteRecordMapper groupsTripsDeleteRecordMapper;
+
+
 	@Override
+	@Transactional(rollbackFor = Throwable.class)
 	public void clearTicket(GroupsRelation relation, UserTicketClearedRecord.Source source) {
 		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.setAccountId(groupsTrips.getAccountId());
-				userTicketClearedRecord.setAccount(groupsTrips.getTripsAccount());
+				userTicketClearedRecord.setAccountId(groupsRelation.getAccountId());
+				userTicketClearedRecord.setAccount(groupsRelation.getTripsAccount());
 				userTicketClearedRecord.setRelationId(relationId);
 				userTicketClearedRecord.setUserId(userId);
 				userTicketClearedRecord.setSource(source);
-				userTicketClearedRecord.setGoodsId(groupsTrips.getGoodsId());
-				userTicketClearedRecord.setSkuId(groupsTrips.getSkuId());
+				userTicketClearedRecord.setGoodsId(groupsRelation.getGoodsId());
+				userTicketClearedRecord.setSkuId(groupsRelation.getSkuId());
 				userTicketClearedRecord.setStartTime(startTime);
 				userTicketClearedRecord.setExpiryTime(expireTime);
 				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());
+					}
+				}
 			}
 		}
 	}