From 98886779111650e6d475031fba1426e2a2251ffe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 09 六月 2020 14:58:46 +0800
Subject: [PATCH] 订单搜索修改
---
fanli/src/main/java/com/yeshi/fanli/service/impl/help/AppPageNotificationServiceImpl.java | 131 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 128 insertions(+), 3 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/help/AppPageNotificationServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/help/AppPageNotificationServiceImpl.java
index 2cd4c22..3f4453c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/help/AppPageNotificationServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/help/AppPageNotificationServiceImpl.java
@@ -1,15 +1,28 @@
package com.yeshi.fanli.service.impl.help;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
import javax.annotation.Resource;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.help.AppPageNotificationMapper;
+import com.yeshi.fanli.entity.AppVersionInfo;
import com.yeshi.fanli.entity.bus.help.AppPageNotification;
+import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl;
+import com.yeshi.fanli.entity.bus.homemodule.FloatAD;
+import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl.AdActivityType;
+import com.yeshi.fanli.entity.common.JumpDetailV2;
+import com.yeshi.fanli.exception.banner.SwiperPictureException;
+import com.yeshi.fanli.service.inter.config.AppVersionService;
import com.yeshi.fanli.service.inter.help.AppPageNotificationService;
+import com.yeshi.fanli.service.inter.homemodule.AdActivityVersionControlService;
import com.yeshi.fanli.util.StringUtil;
@Service
@@ -18,17 +31,47 @@
@Resource
private AppPageNotificationMapper appPageNotificationMapper;
+ @Resource
+ private AppVersionService appVersionService;
+
+ @Resource
+ private AdActivityVersionControlService adActivityVersionControlService;
+
@Override
public AppPageNotification getAppPageNotificationByType(String type) {
return appPageNotificationMapper.selectByType(type);
}
- @Cacheable(value = "configCache", key = "'getAppPageNotificationByType-'+#type")
+ @Cacheable(value = "configCache", key = "'getValidNotificationByTypeCache-'+#type+'-'+ #platform+'-'+#versionCode")
@Override
- public AppPageNotification getAppPageNotificationByTypeCache(String type) {
+ public AppPageNotification getValidNotificationByTypeCache(String type, String platform, Integer versionCode) {
+ List<AppPageNotification> recordList = appPageNotificationMapper.listValidByType(type);
+ if (recordList == null || recordList.size() == 0)
+ return null;
- return appPageNotificationMapper.selectByType(type);
+ // 杩囨护鐗堟湰
+ AppVersionInfo app = appVersionService.getClientVersion(platform, versionCode);
+ if (app == null) {
+ return null;
+ }
+ List<Long> versionIdList = new ArrayList<>();
+ versionIdList.add(app.getId());
+
+ List<Long> sourceIdList = new ArrayList<>();
+ for (AppPageNotification an : recordList)
+ sourceIdList.add(an.getId());
+ Set<Long> sourceIds = adActivityVersionControlService.filterSourceIdByVersion(sourceIdList,
+ AdActivityType.notification, versionIdList);
+ if (sourceIds == null || sourceIds.size() == 0)
+ return null;
+ long sourceId = sourceIds.iterator().next();
+
+ for (AppPageNotification record : recordList) {
+ if (record.getId().longValue() == sourceId)
+ return record;
+ }
+ return null;
}
@Override
@@ -48,4 +91,86 @@
appPageNotificationMapper.insertSelective(apn);
}
+ @Override
+ public void insertSelective(AppPageNotification record) {
+ appPageNotificationMapper.insertSelective(record);
+ }
+
+ @Override
+ public void updateByPrimaryKey(AppPageNotification record) {
+ appPageNotificationMapper.updateByPrimaryKey(record);
+ }
+
+ @Override
+ public void updateByPrimaryKeySelective(AppPageNotification record) {
+ appPageNotificationMapper.updateByPrimaryKeySelective(record);
+ }
+
+ @Override
+ public AppPageNotification selectByPrimaryKey(Long id) {
+ return appPageNotificationMapper.selectByPrimaryKey(id);
+ }
+
+ @Override
+ public int deleteBatchByPrimaryKey(List<Long> list) {
+ return appPageNotificationMapper.deleteBatchByPrimaryKey(list);
+ }
+
+ @Override
+ public List<AppPageNotification> listQuery(long start, int count, String key, Integer show, Integer canClose) {
+ return appPageNotificationMapper.listQuery(start, count, key, show, canClose);
+ }
+
+ @Override
+ public long countQuery(String key, Integer show, Integer canClose) {
+ return appPageNotificationMapper.countQuery(key, show, canClose);
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void setVersions(Long id, List<Long> versions) throws Exception {
+ AppPageNotification record = appPageNotificationMapper.selectByPrimaryKey(id);
+ if (record == null) {
+ throw new Exception("涓撻涓嶅瓨鍦�");
+ }
+
+ Set<Long> oldSet = new HashSet<>();
+
+ List<AdActivityVersionControl> versionList = adActivityVersionControlService
+ .listByTypeAndSourceId(AdActivityType.notification, id);
+ if (versionList != null) {
+ for (AdActivityVersionControl control : versionList)
+ oldSet.add(control.getVersion().getId());
+ }
+
+ Set<Long> newSet = new HashSet<>();
+ for (Long version : versions) {
+ newSet.add(version);
+ }
+
+ Set<Long> delSet = new HashSet<>();
+ delSet.addAll(oldSet);
+ delSet.removeAll(newSet);
+ for (Long versionId : delSet) {
+ adActivityVersionControlService.deleteBySourceAndVersion(id, AdActivityType.notification, versionId);
+ }
+
+ Set<Long> addSet = new HashSet<>();
+ addSet.addAll(newSet);
+ addSet.removeAll(oldSet);
+ // 娣诲姞鏄犲皠
+ for (Long versionId : addSet) {
+ AdActivityVersionControl control = new AdActivityVersionControl();
+ control.setCreateTime(new Date());
+ control.setSourceId(id);
+ control.setType(AdActivityType.notification);
+ control.setVersion(new AppVersionInfo(versionId));
+ try {
+ adActivityVersionControlService.addVersionControl(control);
+ } catch (Exception e) {
+ throw new SwiperPictureException(2, e.getMessage());
+ }
+ }
+ }
+
}
--
Gitblit v1.8.0