zoujiajian 1 vuosi sitten
vanhempi
sitoutus
254d14f412

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

@@ -17,5 +17,5 @@ public interface UserMirrorFissionFrontService {
 
 	UserMirrorFissionRecord recordUserMirrorFission(long userId, Long relationId) throws Exception;
 
-	Boolean getPermitStatus(long userId) throws Exception;
+	Boolean getPermitStatus(long userId, Long goodsId) throws Exception;
 }

+ 23 - 1
netflix-service/src/main/java/com/cyksj/service/fission/impl/UserMirrorFissionFrontServiceImpl.java

@@ -15,9 +15,13 @@ 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.views.RenewalView;
 import com.cyksj.service.fission.UserMirrorFissionFrontService;
 import com.cyksj.service.relation.GroupRelationFrontService;
 import com.cyksj.service.user.UserBindRelationService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.param.Operator;
+import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.dao.DuplicateKeyException;
@@ -56,6 +60,9 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 	private final UserMirrorFissionTicketConfigMapper userMirrorFissionTicketConfigMapper;
 
 	private final SysConfigMapper sysConfigMapper;
+
+	private final BeanSearcher beanSearcher;
+
 	@Override
 	public Boolean getPurchasedMirrorStatus(long userId, Long goodsId) {
 		return hasPaidMirrorTicket(userId, goodsId);
@@ -134,6 +141,9 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 		UserMirrorFissionRecord userMirrorFissionRecord;
 		GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
 		GoodsDonSku sku = goodsDonSkuMapper.selectById(groupsTrips.getSkuId());
+		if (!sku.getIsMirror()) {
+			throw BusinessRuntimeException.getInstance("只支持镜像车票");
+		}
 		Integer count = userMirrorFissionRecordMapper.selectCount(Wrappers.lambdaQuery(UserMirrorFissionRecord.class)
 				.eq(UserMirrorFissionRecord::getGoodsId, sku.getGoodsId())
 				.in(UserMirrorFissionRecord::getUserId, userIdList));
@@ -165,6 +175,9 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 		UserMirrorFissionTicketConfig userMirrorFissionTicketConfig = userMirrorFissionTicketConfigMapper.selectOne(Wrappers.lambdaQuery(UserMirrorFissionTicketConfig.class)
 				.eq(UserMirrorFissionTicketConfig::getGoodsId, sku.getGoodsId())
 				.last("limit 1"));
+		if (userMirrorFissionTicketConfig == null) {
+			throw BusinessRuntimeException.getInstance("活动不存在");
+		}
 		try {
 			userMirrorFissionRecord = new UserMirrorFissionRecord();
 			userMirrorFissionRecord.setUserId(relation.getUserId());
@@ -185,7 +198,7 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 	}
 
 	@Override
-	public Boolean getPermitStatus(long userId) throws Exception {
+	public Boolean getPermitStatus(long userId, Long goodsId) throws Exception {
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
 		//特定老用户可进行镜像裂变活动
 		SysConfig sysConfig = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class)
@@ -201,6 +214,15 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 				isCt.set(true);
 			}
 		});
+		Number count = beanSearcher.searchCount(RenewalView.class, MapUtils.builder()
+				.field(RenewalView::getGoodsId, goodsId)
+				.field(RenewalView::getIsMirror, true)
+				.field(RenewalView::getUserId, userIdList).op(Operator.InList)
+				.field(RenewalView::getExpiryTime, DateTime.now()).op(Operator.GreaterThan)
+				.build());
+		if (count.intValue() == 0) {
+			return false;
+		}
 		return isCt.get();
 	}
 

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

@@ -87,9 +87,9 @@ public class UserMirrorFissionController {
 	 * 是否可进行裂变活动
 	 */
 	@GetMapping("/get/permit/status")
-	public Result<Boolean> getPermitStatus() throws Exception {
+	public Result<Boolean> getPermitStatus(@RequestParam(defaultValue = "18") Long goodsId) throws Exception {
 		long userId = StpUserUtil.getLoginIdAsLong();
-		Boolean flag = userMirrorFissionFrontService.getPermitStatus(userId);
+		Boolean flag = userMirrorFissionFrontService.getPermitStatus(userId, goodsId);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(flag);
 	}
 }