记得上下班打卡 | git大法好,push需谨慎

Commit bdbf520a authored by jiangxiulong's avatar jiangxiulong

banner

parent b0d60088
......@@ -45,4 +45,8 @@ public class KylinRedisConst {
public static final String ZHENGZAI_APP_VERSIONS_CHECK_ANDROID = "basicServices:zhengzaiCheckAppVersionsAndroid";
public static final String ZHENGZAI_APP_VERSIONS_CHECK_IOS = "basicServices:zhengzaiCheckAppVersionsIos";
public static final String ADMIN_UPUSH_LIST = "basicServices:upushList";
public static final String ADMIN_BANNER_LIST = "kylin:bannerList";
}
......@@ -2,19 +2,19 @@ package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.enums.BannersTargetType;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.entity.AdminUpush;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.entity.KylinBannersRelations;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
......@@ -36,7 +36,9 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
/**
......@@ -106,27 +108,11 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
}
// 处理缓存数据
KylinBannersVo kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(bannersParam, kylinBannersVo);
kylinBannersVo.setBannersId(bannersId);
kylinBannersVo.setCreatedAt(createdAtString);
// 处理基础数据 防止缓存中无字段
kylinBannersVo.setIsDeleted(1);
kylinBannersVo.setUpdatedAt("");
if (StringUtils.isEmpty(bannersParam.getTargetObj())) {
kylinBannersVo.setTargetObj("");
}
if (StringUtils.isEmpty(bannersParam.getOnlineStartTime())) {
kylinBannersVo.setOnlineStartTime("");
}
if (StringUtils.isEmpty(bannersParam.getOnlineEndTime())) {
kylinBannersVo.setOnlineEndTime("");
}
if (null == bannersParam.getBannersSort()) {
kylinBannersVo.setBannersSort(0);
}
// 入缓存
mongoTemplate.insert(kylinBannersVo, KylinBannersVo.class.getSimpleName());
List<KylinBanners> bannerList = bannersMapper.selectList(
Wrappers.lambdaQuery(KylinBanners.class).eq(KylinBanners::getIsOnline, 1)
.eq(KylinBanners::getIsDeleted, 1)
);
redisUtil.set(KylinRedisConst.ADMIN_BANNER_LIST, bannerList);
return true;
} catch (Exception e) {
......@@ -183,18 +169,13 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
}
}
}
// 处理缓存数据
KylinBannersVo kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(bannersParam, kylinBannersVo);
kylinBannersVo.setBannersId(bannersId);
kylinBannersVo.setUpdatedAt(updatedAtString);
// 修改缓存
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinBannersVo)));
Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
List<KylinBanners> bannerList = bannersMapper.selectList(
Wrappers.lambdaQuery(KylinBanners.class).eq(KylinBanners::getIsOnline, 1)
.eq(KylinBanners::getIsDeleted, 1)
);
redisUtil.set(KylinRedisConst.ADMIN_BANNER_LIST, bannerList);
return true;
} catch (Exception e) {
......@@ -256,16 +237,12 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
, new UpdateWrapper<KylinBanners>().in("banners_id", bannersId)
);
// mongo 操作
HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAtString);
map.put("isDeleted", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").in(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// 处理缓存数据
List<KylinBanners> bannerList = bannersMapper.selectList(
Wrappers.lambdaQuery(KylinBanners.class).eq(KylinBanners::getIsOnline, 1)
.eq(KylinBanners::getIsDeleted, 1)
);
redisUtil.set(KylinRedisConst.ADMIN_BANNER_LIST, bannerList);
return true;
} catch (Exception e) {
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.service.impl.BannersServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......@@ -36,11 +37,11 @@ public class KylinBannersController {
@ApiImplicitParam(type = "query", dataType = "String", name = "position", value = "展示位置 1首页 3周边 5积分商城 6YB 8视频", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "provinceName", value = "城市名称"),
})
public ResponseDto<List<KylinBannersVo>> blist(
public ResponseDto<List<KylinBanners>> blist(
@RequestParam() String position,
@RequestParam(defaultValue = "") String provinceName
) {
List<KylinBannersVo> result = bannersServiceImpl.blist(position, provinceName);
List<KylinBanners> result = bannersServiceImpl.blist(position, provinceName);
return ResponseDto.success(result);
}
......
......@@ -2,7 +2,9 @@ package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -34,51 +36,51 @@ public class BannersServiceImpl implements IKylinBannersService {
@Autowired
RedisUtil redisUtil;
public List<KylinBannersVo> blist(String position, String provinceName) {
Query query = new Query();
query.addCriteria(
Criteria.where("isOnline").is(1).and("isDeleted").is(1)
);
LocalDateTime nowTime = LocalDateTime.now();
String nowTimeStr = DateUtil.Formatter.yyyyMMddHHmmss.format(nowTime);
Criteria onlineTimeBetween = Criteria.where("onlineStartTime").lte(nowTimeStr).and("onlineEndTime").gte(nowTimeStr);
Criteria onlineTimeGt = Criteria.where("onlineStartTime").lte(nowTimeStr).and("onlineEndTime").is("");
Criteria onlineTimeLt = Criteria.where("onlineStartTime").is("").and("onlineEndTime").gte(nowTimeStr);
Criteria onlineTimeEmpty = Criteria.where("onlineStartTime").is("").and("onlineEndTime").is("");
Criteria mergeCriteriaTime = new Criteria();
mergeCriteriaTime.orOperator(onlineTimeBetween, onlineTimeGt, onlineTimeLt, onlineTimeEmpty);
if (!position.isEmpty()) {
query.addCriteria(
Criteria.where("positionList").in(position)
);
public List<KylinBanners> blist(String position, String provinceName) {
String nowTime = DateUtil.getNowTime();
List<KylinBanners> list = (List<KylinBanners>) redisUtil.get(KylinRedisConst.ADMIN_BANNER_LIST);
for (KylinBanners info : list) {
// 时间
String StartTime = info.getOnlineStartTime();
String endTime = info.getOnlineEndTime();
if (!StartTime.isEmpty() && !endTime.isEmpty()) {
if (DateUtil.compareStrDay(nowTime, StartTime) < 0) { // 当前时间小雨开始时间 还未开始呢
list.remove(info);
}
if (DateUtil.compareStrDay(endTime, nowTime) > 0) { // 解释时间大于当前时间 已过期
list.remove(info);
}
Criteria mergeCriteriaPromotion = new Criteria();
if (!provinceName.isEmpty()) {
Criteria promotionCity = Criteria.where("provincesNameList").in(provinceName);
Criteria promotionAll = Criteria.where("promotionType").is(1);
mergeCriteriaPromotion.orOperator(promotionCity, promotionAll);
}
Criteria criteria = new Criteria();
query.addCriteria(
criteria.andOperator(mergeCriteriaTime, mergeCriteriaPromotion)
);
// list
if (info.getPromotionType() != 1) {
List<String> pList = info.getPositionList();
Boolean pis = false;
for (String positionName : pList) {
if (positionName.equals(position)) {
pis = true;
}
}
if (!pis) {
list.remove(info);
}
List<KylinBannersVo> bannerList = mongoTemplate.find(
query,
KylinBannersVo.class,
KylinBannersVo.class.getSimpleName()
);
List<String> proList = info.getProvincesList();
Boolean prois = false;
for (String proName : proList) {
if (proName.equals(provinceName)) {
prois = true;
}
}
if (!prois) {
list.remove(info);
}
}
for (KylinBannersVo info : bannerList) {
String setCoverImg = imgUrl + info.getCoverImg();
info.setCoverImg(setCoverImg);
}
return bannerList;
return list;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment