zoujiajian 1 سال پیش
والد
کامیت
0a4d772ca4

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

@@ -15,5 +15,5 @@ public interface UserMirrorFissionFrontService {
 
 	UserMirrorFissionRecord getPresentFissionTicket(long userId);
 
-	void recordUserMirrorFission(long userId, Long relationId) throws Exception;
+	UserMirrorFissionRecord recordUserMirrorFission(long userId, Long relationId) throws Exception;
 }

+ 15 - 3
netflix-service/src/main/java/com/cyksj/service/fission/impl/UserMirrorFissionFrontServiceImpl.java

@@ -120,7 +120,7 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 	}
 
 	@Override
-	public void recordUserMirrorFission(long userId, Long relationId) throws Exception {
+	public UserMirrorFissionRecord recordUserMirrorFission(long userId, Long relationId) throws Exception {
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
 		GroupsRelation relation = groupsRelationMapper.selectOne(Wrappers.lambdaQuery(GroupsRelation.class)
 				.in(GroupsRelation::getUserId, userIdList)
@@ -130,13 +130,19 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 		if (relation == null) {
 			throw BusinessRuntimeException.getInstance("车票不存在");
 		}
+		UserMirrorFissionRecord userMirrorFissionRecord;
 		GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
 		GoodsDonSku sku = goodsDonSkuMapper.selectById(groupsTrips.getSkuId());
 		Integer count = userMirrorFissionRecordMapper.selectCount(Wrappers.lambdaQuery(UserMirrorFissionRecord.class)
 				.eq(UserMirrorFissionRecord::getGoodsId, sku.getGoodsId())
 				.in(UserMirrorFissionRecord::getUserId, userIdList));
 		if (count > 0) {
-			return;
+			userMirrorFissionRecord = userMirrorFissionRecordMapper.selectOne(Wrappers.lambdaQuery(UserMirrorFissionRecord.class)
+					.in(UserMirrorFissionRecord::getUserId, userIdList)
+					.eq(UserMirrorFissionRecord::getRelationId, relationId)
+					.eq(UserMirrorFissionRecord::getGoodsId, sku.getGoodsId())
+					.last("limit 1"));
+			return userMirrorFissionRecord;
 		}
 		//特定老用户可进行镜像裂变活动
 		SysConfig sysConfig = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class)
@@ -159,7 +165,7 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 				.eq(UserMirrorFissionTicketConfig::getGoodsId, sku.getGoodsId())
 				.last("limit 1"));
 		try {
-			UserMirrorFissionRecord userMirrorFissionRecord = new UserMirrorFissionRecord();
+			userMirrorFissionRecord = new UserMirrorFissionRecord();
 			userMirrorFissionRecord.setUserId(relation.getUserId());
 			userMirrorFissionRecord.setRelationId(relationId);
 			userMirrorFissionRecord.setGoodsId(sku.getGoodsId());
@@ -168,7 +174,13 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 			userMirrorFissionRecord.setTrialSkuId(userMirrorFissionRecord.getTrialSkuId());
 			userMirrorFissionRecordMapper.insert(userMirrorFissionRecord);
 		} catch (DuplicateKeyException e) {
+			userMirrorFissionRecord = userMirrorFissionRecordMapper.selectOne(Wrappers.lambdaQuery(UserMirrorFissionRecord.class)
+					.in(UserMirrorFissionRecord::getUserId, userIdList)
+					.eq(UserMirrorFissionRecord::getRelationId, relationId)
+					.eq(UserMirrorFissionRecord::getGoodsId, sku.getGoodsId())
+					.last("limit 1"));
 		}
+		return userMirrorFissionRecord;
 	}
 
 

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

@@ -68,10 +68,10 @@ public class UserMirrorFissionController {
 	 * 镜像分裂车票记录
 	 */
 	@PostMapping("/record/{relationId}")
-	public Result<String> recordUserMirrorFission(@PathVariable Long relationId) throws Exception {
+	public Result<UserMirrorFissionRecord> recordUserMirrorFission(@PathVariable Long relationId) throws Exception {
 		long userId = StpUserUtil.getLoginIdAsLong();
-		userMirrorFissionFrontService.recordUserMirrorFission(userId, relationId);
-		return GatewayResponse.SUCCESS.newBuilder().toResult();
+		UserMirrorFissionRecord userMirrorFissionRecord = userMirrorFissionFrontService.recordUserMirrorFission(userId, relationId);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(userMirrorFissionRecord);
 	}
 
 	/**