Przeglądaj źródła

AI福利官弹窗

zoujiajian 1 rok temu
rodzic
commit
7111aeba06

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

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.MirrorTicketPopupsRecord;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: MirrorTicketPopupsRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2025/5/6 17:04
+ */
+public interface MirrorTicketPopupsRecordMapper extends BaseMapper<MirrorTicketPopupsRecord> {
+}

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/MirrorTicketPopupsRecord.java

@@ -0,0 +1,18 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: MirrorTicketPopupsRecord
+ * 创建者: JavaZou
+ * 创建时间:2025/5/6 17:04
+ */
+@Getter
+@Setter
+public class MirrorTicketPopupsRecord extends BaseEntity{
+	private Long userId;
+
+	private String thisWeek;
+}

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/relation/GroupRelationFrontService.java

@@ -89,4 +89,6 @@ public interface GroupRelationFrontService {
 	 * @return
 	 */
 	Long getTrialTicketByUserIdAndGoodsId(Long userId, Long trialSkuId, Integer ticketType);
+
+	Boolean getMirrorPopups(long userId);
 }

+ 32 - 0
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -169,6 +169,8 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 
 	private final GptMirrorDayCardGiveawayActivityMapper gptMirrorDayCardGiveawayActivityMapper;
 
+	private final MirrorTicketPopupsRecordMapper mirrorTicketPopupsRecordMapper;
+
 	@Override
 	public SearchResult<RenewalView> getMyTicket(long userId, Boolean isLoginPopularize, String customId, String account, String orderNo, Integer cmt) {
 		User u = userMapper.selectById(userId);
@@ -1276,6 +1278,36 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		}
 	}
 
+	@Override
+	public Boolean getMirrorPopups(long userId) {
+		//是否弹窗 默认否
+		Boolean flag = false;
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		Number number = beanSearcher.searchCount(RenewalView.class, MapUtils.builder()
+				.field(RenewalView::getUserId, userIdList).op(Operator.InList)
+				.field(RenewalView::getStatus, GroupsRelation.Status.validity.name())
+				.field(RenewalView::getIsMirror, true)
+				.build());
+		if (number.intValue() == 0) {
+			flag = true;
+		}
+		if (!flag) {
+			String thisWeekBegin = DateUtil.beginOfWeek(DateTime.now()).toDateStr();
+			Integer selectCount = mirrorTicketPopupsRecordMapper.selectCount(Wrappers.lambdaQuery(MirrorTicketPopupsRecord.class)
+					.in(MirrorTicketPopupsRecord::getUserId, userIdList)
+					.eq(MirrorTicketPopupsRecord::getThisWeek, thisWeekBegin));
+			if (selectCount == 0) {
+				MirrorTicketPopupsRecord mirrorTicketPopupsRecord = new MirrorTicketPopupsRecord();
+				mirrorTicketPopupsRecord.setThisWeek(thisWeekBegin);
+				mirrorTicketPopupsRecord.setUserId(userId);
+				mirrorTicketPopupsRecordMapper.insert(mirrorTicketPopupsRecord);
+			} else {
+				flag = true;
+			}
+		}
+		return flag;
+	}
+
 	private DistributePosterGoodsDetailView setGoodsPoster(RenewalView ticket, User user, List<Long> userIds) {
 		DistributePosterGoodsDetailView distributePosterGoodsDetailView = beanSearcher.searchFirst(DistributePosterGoodsDetailView.class, MapUtils.flatBuilder(request.getParameterMap())
 				.field(DistributePosterGoodsFrontView::getGoodsId, ticket.getGoodsId()).build());

+ 10 - 0
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -1210,4 +1210,14 @@ public class GroupRelationController {
         Integer state = groupRelationFrontService.getNetflixErrorAccountStatus(userId, relationId);
         return GatewayResponse.SUCCESS.newBuilder().toResult(state);
     }
+
+    /**
+     * AI镜像车票 每周弹窗
+     */
+    @GetMapping("/get/mirror/popups")
+    public Result<Boolean> getMirrorPopups() {
+        long userId = StpUserUtil.getLoginIdAsLong();
+        Boolean flag = groupRelationFrontService.getMirrorPopups(userId);
+        return GatewayResponse.SUCCESS.newBuilder().toResult(flag);
+    }
 }