zoujiajian 1 gadu atpakaļ
vecāks
revīzija
61ab7e51ce

+ 29 - 0
netflix-dao/src/main/java/com/cyksj/model/response/UserMirrorFissionReceiveResp.java

@@ -0,0 +1,29 @@
+package com.cyksj.model.response;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserMirrorFissionReceiveResp
+ * 创建者: JavaZou
+ * 创建时间:2024/11/25 13:51
+ */
+@Getter
+@Setter
+public class UserMirrorFissionReceiveResp {
+	private Status status;
+
+	@Getter
+	public enum Status{
+		success("领取成功"),
+		purchased("购买过"),
+		claimed("已领取"),
+		completed("领取完");
+		String msg;
+
+		Status(String msg) {
+			this.msg = msg;
+		}
+	}
+}

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/fission/UserMirrorFissionFrontService.java

@@ -1,6 +1,7 @@
 package com.cyksj.service.fission;
 
 import com.cyksj.model.entity.UserMirrorFissionRecord;
+import com.cyksj.model.response.UserMirrorFissionReceiveResp;
 
 /**
  * 项目名: yhlxj2
@@ -11,7 +12,7 @@ import com.cyksj.model.entity.UserMirrorFissionRecord;
 public interface UserMirrorFissionFrontService {
 	Boolean getPurchasedMirrorStatus(long userId, Long goodsId);
 
-	void receiveTrialMirrorTicket(long userId, Long fissionId);
+	UserMirrorFissionReceiveResp receiveTrialMirrorTicket(long userId, Long fissionId);
 
 	UserMirrorFissionRecord getPresentFissionTicket(long userId);
 

+ 20 - 6
netflix-service/src/main/java/com/cyksj/service/fission/impl/UserMirrorFissionFrontServiceImpl.java

@@ -15,6 +15,7 @@ import com.cyksj.mapper.fission.UserMirrorFissionRecordMapper;
 import com.cyksj.mapper.fission.UserMirrorFissionTicketConfigMapper;
 import com.cyksj.mapper.sys.SysConfigMapper;
 import com.cyksj.model.entity.*;
+import com.cyksj.model.response.UserMirrorFissionReceiveResp;
 import com.cyksj.model.views.RenewalView;
 import com.cyksj.service.fission.UserMirrorFissionFrontService;
 import com.cyksj.service.relation.GroupRelationFrontService;
@@ -70,18 +71,24 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
-	public void receiveTrialMirrorTicket(long userId, Long fissionId) {
+	public UserMirrorFissionReceiveResp receiveTrialMirrorTicket(long userId, Long fissionId) {
 		UserMirrorFissionRecord userMirrorFissionRecord = userMirrorFissionRecordMapper.selectOne(Wrappers.lambdaQuery(UserMirrorFissionRecord.class)
 				.eq(UserMirrorFissionRecord::getId, fissionId)
 				.last("limit 1"));
 		if (userMirrorFissionRecord == null) {
 			throw BusinessRuntimeException.getInstance("活动不存在");
 		}
+		UserMirrorFissionReceiveResp resp = new UserMirrorFissionReceiveResp();
+		resp.setStatus(UserMirrorFissionReceiveResp.Status.success);
 		if (userMirrorFissionRecord.getRemainNum() == 0) {
-			throw BusinessRuntimeException.getInstance("很抱歉,您来晚了,体验卡已被领完");
+			resp.setStatus(UserMirrorFissionReceiveResp.Status.completed);
+//			throw BusinessRuntimeException.getInstance("很抱歉,您来晚了,体验卡已被领完");
+			return resp;
 		}
 		if (hasPaidMirrorTicket(userId, userMirrorFissionRecord.getGoodsId())) {
-			throw BusinessRuntimeException.getInstance("很抱歉,您已购买过GPT镜像车票,无法参加此活动");
+			resp.setStatus(UserMirrorFissionReceiveResp.Status.purchased);
+//			throw BusinessRuntimeException.getInstance("很抱歉,您已购买过GPT镜像车票,无法参加此活动");
+			return resp;
 		}
 		Long trialSkuId = userMirrorFissionRecord.getTrialSkuId();
 		//发送试用镜像车票
@@ -91,14 +98,18 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 		}
 		Integer update = userMirrorFissionRecordMapper.updateFissionRemainNum(fissionId);
 		if (update == 0) {
-			throw BusinessRuntimeException.getInstance("很抱歉,您来晚了,体验卡已被领完");
+			resp.setStatus(UserMirrorFissionReceiveResp.Status.completed);
+//			throw BusinessRuntimeException.getInstance("很抱歉,您来晚了,体验卡已被领完");
+			return resp;
 		}
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
 		Integer selectCount = userMirrorFissionReceiveRecordMapper.selectCount(Wrappers.lambdaQuery(UserMirrorFissionReceiveRecord.class)
 				.in(UserMirrorFissionReceiveRecord::getUserId, userIdList)
 				.eq(UserMirrorFissionReceiveRecord::getSkuId, trialSkuId));
 		if (selectCount > 0) {
-			throw BusinessRuntimeException.getInstance("您已领取该试用车票");
+			resp.setStatus(UserMirrorFissionReceiveResp.Status.claimed);
+//			throw BusinessRuntimeException.getInstance("您已领取该试用车票");
+			return resp;
 		}
 
 		try {
@@ -106,6 +117,7 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 			receiveRecord.setUserId(userId);
 			receiveRecord.setGoodsId(sku.getGoodsId());
 			receiveRecord.setSkuId(trialSkuId);
+			receiveRecord.setFissionId(fissionId);
 			//车票id
 			Long relationId = groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(userId, trialSkuId, 3);
 			receiveRecord.setRelationId(relationId);
@@ -113,8 +125,10 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 			//给裂变活动发起者车票添加时长
 			groupsRelationMapper.incrExpiryTime(userMirrorFissionRecord.getRelationId(), userMirrorFissionRecord.getUserId());
 		} catch (DuplicateKeyException e) {
-			throw BusinessRuntimeException.getInstance("您已领取该试用车票");
+			resp.setStatus(UserMirrorFissionReceiveResp.Status.claimed);
+//			throw BusinessRuntimeException.getInstance("您已领取该试用车票");
 		}
+		return resp;
 	}
 
 	@Override

+ 3 - 2
netflix-web/src/main/java/com/cyksj/web/controller/fission/UserMirrorFissionController.java

@@ -3,6 +3,7 @@ package com.cyksj.web.controller.fission;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.model.entity.UserMirrorFissionRecord;
+import com.cyksj.model.response.UserMirrorFissionReceiveResp;
 import com.cyksj.model.views.UserMirrorFissionReceiveRecordView;
 import com.cyksj.service.fission.UserMirrorFissionFrontService;
 import com.cyksj.web.util.StpUserUtil;
@@ -50,8 +51,8 @@ public class UserMirrorFissionController {
 	@PostMapping("/receive/trial/mirror/ticket/{fissionId}")
 	public Result<String> receiveTrialMirrorTicket(@PathVariable Long fissionId) {
 		long userId = StpUserUtil.getLoginIdAsLong();
-		userMirrorFissionFrontService.receiveTrialMirrorTicket(userId, fissionId);
-		return GatewayResponse.SUCCESS.newBuilder().toResult();
+		UserMirrorFissionReceiveResp resp = userMirrorFissionFrontService.receiveTrialMirrorTicket(userId, fissionId);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(resp.getStatus().name());
 	}
 
 	/**