From ec8a1c6f81b5747e9efce86faaba33d10df7f61d Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期日, 01 三月 2020 16:37:26 +0800 Subject: [PATCH] 动态提示语调整 --- fanli/src/main/java/com/yeshi/fanli/controller/admin/AppPageNotificationAdminController.java | 237 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 212 insertions(+), 25 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/AppPageNotificationAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/AppPageNotificationAdminController.java index 7e967e9..ebe3bb9 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/AppPageNotificationAdminController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/AppPageNotificationAdminController.java @@ -1,13 +1,13 @@ package com.yeshi.fanli.controller.admin; import java.io.PrintWriter; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Set; import javax.annotation.Resource; - -import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,12 +16,21 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; +import com.yeshi.fanli.entity.AppVersionInfo; import com.yeshi.fanli.entity.bus.help.AppPageNotification; import com.yeshi.fanli.entity.bus.help.AppPageNotification.AppPageNotificationTypeEnum; +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.service.inter.config.AppVersionService; import com.yeshi.fanli.service.inter.help.AppPageNotificationService; +import com.yeshi.fanli.service.inter.homemodule.AdActivityVersionControlService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; @Controller @RequestMapping("admin/new/api/v1/notification") @@ -29,6 +38,12 @@ @Resource private AppPageNotificationService appPageNotificationService; + + @Resource + private AppVersionService appVersionService; + + @Resource + private AdActivityVersionControlService adActivityVersionControlService; /** @@ -39,9 +54,7 @@ */ // @RequestMapping(value = "saveAdd") public void saveAdd(String callback, AppPageNotification appPageNotification, PrintWriter out) { - try { - String content = appPageNotification.getContent(); if (StringUtil.isNullOrEmpty(content) ) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏄剧ず鍐呭涓嶈兘涓虹┖")); @@ -62,6 +75,40 @@ appPageNotification.setMd5(StringUtil.Md5(null + "#" + content + "#" + appPageNotification.getContentUrl())); } + Boolean show = appPageNotification.getShow(); + if (show == null) { + show = false; + appPageNotification.setShow(show); + } + + Boolean canClose = appPageNotification.getCanClose(); + if (canClose == null) { + canClose = false; + appPageNotification.setCanClose(canClose); + } + + String contentUrl = appPageNotification.getContentUrl(); + if (canClose != null && canClose && !StringUtil.isNullOrEmpty(contentUrl)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璺宠浆閾炬帴鍜屽厑璁稿叧闂笉鍙悓鏃跺瓨鍦�")); + return; + } + + if (!canClose && StringUtil.isNullOrEmpty(contentUrl)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璺宠浆閾炬帴涓嶈兘涓虹┖")); + return; + } + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + String beginTimeVO = appPageNotification.getBeginTimeVO(); + if (!StringUtil.isNullOrEmpty(beginTimeVO)) { + appPageNotification.setBeginTime(format.parse(beginTimeVO.replaceAll("T", " "))); + } + + String endTimeVO = appPageNotification.getEndTimeVO(); + if (!StringUtil.isNullOrEmpty(endTimeVO)) { + appPageNotification.setEndTime(format.parse(endTimeVO.replaceAll("T", " "))); + } appPageNotification.setCreateTime(new Date()); appPageNotification.setUpdateTime(new Date()); @@ -84,7 +131,6 @@ @RequestMapping(value = "saveModify") public void saveModify(String callback, AppPageNotification appPageNotification, PrintWriter out) { try { - AppPageNotificationTypeEnum type = appPageNotification.getType(); if (type == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("ID涓嶈兘涓虹┖")); @@ -103,10 +149,47 @@ return; } + Boolean show = appPageNotification.getShow(); + if (show == null) { + show = false; + appPageNotification.setShow(show); + } + + Boolean canClose = appPageNotification.getCanClose(); + if (canClose == null) { + canClose = false; + appPageNotification.setCanClose(canClose); + } + + if (canClose && !StringUtil.isNullOrEmpty(appPageNotification.getContentUrl())) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璺宠浆閾炬帴鍜屽厑璁稿叧闂笉鍙悓鏃跺瓨鍦�")); + return; + } + + if (!canClose && StringUtil.isNullOrEmpty(appPageNotification.getContentUrl())) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璺宠浆閾炬帴涓嶈兘涓虹┖")); + return; + } + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + String beginTimeVO = appPageNotification.getBeginTimeVO(); + if (!StringUtil.isNullOrEmpty(beginTimeVO)) { + appPageNotification.setBeginTime(format.parse(beginTimeVO.replaceAll("T", " "))); + } + + String endTimeVO = appPageNotification.getEndTimeVO(); + if (!StringUtil.isNullOrEmpty(endTimeVO)) { + appPageNotification.setEndTime(format.parse(endTimeVO.replaceAll("T", " "))); + } + appPageNotification.setMd5(StringUtil.Md5(type.name() + "#" + content + "#" + appPageNotification.getContentUrl())); - appPageNotification.setId(old.getId()); appPageNotification.setUpdateTime(new Date()); - appPageNotificationService.updateByPrimaryKeySelective(appPageNotification); + + appPageNotification.setId(old.getId()); + appPageNotification.setType(old.getType()); + appPageNotification.setCreateTime(old.getCreateTime()); + appPageNotificationService.updateByPrimaryKey(appPageNotification); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇敼鎴愬姛")); @@ -129,15 +212,13 @@ */ @RequestMapping(value = "query") public void query(String callback, Integer pageIndex, Integer pageSize, String key, - Integer show, Integer canClose, PrintWriter out) { + Integer show, Integer canClose,String version, String platform, PrintWriter out) { if (pageIndex == null || pageIndex < 1) { pageIndex = 1; } - if (pageSize == null || pageSize < 1) { - pageSize = Constant.PAGE_SIZE; - } + pageSize =Integer.MAX_VALUE; try { List<AppPageNotification> list = appPageNotificationService.listQuery((pageIndex - 1) * pageSize, @@ -148,13 +229,67 @@ return; } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm"); for (AppPageNotification notification: list) { AppPageNotificationTypeEnum type = notification.getType(); notification.setPageName(type.getDesc()); + + + Date startTime = notification.getBeginTime(); + if (startTime == null) { + notification.setBeginTimeVO(""); + } else { + notification.setBeginTimeVO(sdf.format(startTime)); + } + + Date endTime = notification.getEndTime(); + if (endTime == null) { + notification.setEndTimeVO(""); + } else { + notification.setEndTimeVO(sdf.format(endTime)); + } } - long count = appPageNotificationService.countQuery(key, show, canClose); + + List<AppVersionInfo> versionList = null; + if (!StringUtil.isNullOrEmpty(version) || !StringUtil.isNullOrEmpty(platform)) { + versionList = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(version)) { + AppVersionInfo appVersion = appVersionService.selectByPrimaryKey(Long.parseLong(version)); + if (appVersion != null) + versionList.add(appVersion); + } else { + List<AppVersionInfo> appVersionList = appVersionService.getAppVersionInfoListByPlatform(platform); + if (appVersionList != null) { + versionList.addAll(appVersionList); + } + } + } + + // 杩囨护 + if (versionList != null) { + if (versionList.size() > 0) { + List<Long> sourceIdList = new ArrayList<>(); + for (AppPageNotification record : list) { + sourceIdList.add(record.getId()); + } + List<Long> versionIdList = new ArrayList<>(); + for (AppVersionInfo versionInfo : versionList) + versionIdList.add(versionInfo.getId()); + Set<Long> sets = adActivityVersionControlService.filterSourceIdByVersion(sourceIdList, + AdActivityType.notification, versionIdList); + for (int i = 0; i < list.size(); i++) { + if (!sets.contains(list.get(i).getId())) { + list.remove(i--); + } + } + count = list.size(); + } else { + list.clear(); + count = 0; + } + } int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage); @@ -198,16 +333,29 @@ } Boolean canClose = resultObj.getCanClose(); - if (canClose) { - resultObj.setCanClose(false); + if (canClose != null && canClose) { + canClose = false; } else { - resultObj.setCanClose(true); + canClose = true; } - - appPageNotificationService.updateByPrimaryKeySelective(resultObj); + + if (canClose && !StringUtil.isNullOrEmpty(resultObj.getContentUrl())) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璺宠浆閾炬帴鍜屽厑璁稿叧闂笉鍙悓鏃跺瓨鍦�")); + return; + } + + if (!canClose && StringUtil.isNullOrEmpty(resultObj.getContentUrl())) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璺宠浆閾炬帴涓嶈兘涓虹┖")); + return; + } + + AppPageNotification newOBj = new AppPageNotification(); + newOBj.setId(resultObj.getId()); + newOBj.setCanClose(canClose); + appPageNotificationService.updateByPrimaryKeySelective(newOBj); JSONObject data = new JSONObject(); - data.put("state", resultObj.getCanClose()); + data.put("state", newOBj.getCanClose()); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { @@ -238,16 +386,19 @@ } Boolean show = resultObj.getShow(); - if (show) { - resultObj.setShow(false); + if (show != null && show) { + show = false; } else { - resultObj.setShow(true); + show = true; } - - appPageNotificationService.updateByPrimaryKeySelective(resultObj); + + AppPageNotification newOBj = new AppPageNotification(); + newOBj.setId(resultObj.getId()); + newOBj.setShow(show); + appPageNotificationService.updateByPrimaryKeySelective(newOBj); JSONObject data = new JSONObject(); - data.put("state", resultObj.getShow()); + data.put("state", newOBj.getShow()); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { @@ -264,7 +415,6 @@ */ //@RequestMapping(value = "delete") public void delete(String callback, String idArray, PrintWriter out) { - try { if (StringUtil.isNullOrEmpty(idArray)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨鎿嶄綔鐨勬暟鎹�")); @@ -288,5 +438,42 @@ e.printStackTrace(); } } + + /** + * 璁剧疆鐗堟湰 + * + * @param callback + * @param id + * @param moveType + * @param sex + * @param out + */ + @RequestMapping(value = "setVersions") + public void setVersions(String callback, Long id, String versions, PrintWriter out) { + JSONArray versionArray = JSONArray.fromObject(versions); + List<Long> versionIds = new ArrayList<>(); + for (int i = 0; i < versionArray.size(); i++) { + Long version = versionArray.optLong(i); + versionIds.add(version); + } + try { + appPageNotificationService.setVersions(id, versionIds); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("")); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage())); + } + } + + @RequestMapping(value = "getVersions") + public void getVersions(String callback, Long id, PrintWriter out) { + List<AdActivityVersionControl> list = adActivityVersionControlService + .listByTypeAndSourceId(AdActivityType.notification, id); + + List<Long> versionList = new ArrayList<>(); + if (list != null) + for (AdActivityVersionControl control : list) + versionList.add(control.getVersion().getId()); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(versionList)); + } } -- Gitblit v1.8.0