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

Commit 77ca42bf authored by jiangxiulong's avatar jiangxiulong

banner

parent f420df8f
package com.liquidnet.service.kylin.service.impl.admin; package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.BeanUtil; import com.github.pagehelper.PageHelper;
import com.liquidnet.commons.lang.util.IDGenerator; import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dto.param.BannersParam; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam; import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinBannersVo; import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.entity.KylinBanners; import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.entity.KylinBannersRelations; import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper; import com.liquidnet.service.kylin.dto.vo.KylinBannersVo;
import com.liquidnet.service.kylin.mapper.KylinBannersRelationsMapper; import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService; import com.liquidnet.service.kylin.entity.KylinBannersRelations;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
import com.mongodb.BasicDBObject; import com.liquidnet.service.kylin.mapper.KylinBannersRelationsMapper;
import com.mongodb.client.model.FindOneAndUpdateOptions; import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import com.mongodb.client.model.ReturnDocument; import com.mongodb.BasicDBObject;
import com.mysql.cj.util.StringUtils; import com.mongodb.client.model.FindOneAndUpdateOptions;
import org.bson.Document; import com.mongodb.client.model.ReturnDocument;
import org.springframework.beans.BeanUtils; import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.BeanUtils;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import org.springframework.util.StringUtils;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.time.LocalDateTime;
import java.util.HashMap; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.ArrayList;
import java.util.HashMap;
/** import java.util.List;
* <p>
* 轮播图 服务实现类 /**
* </p> * <p>
* * 轮播图 服务实现类
* @author jiangxiulong * </p>
* @since 2021-05-02 *
*/ * @author jiangxiulong
@Service * @since 2021-05-02
public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, KylinBanners> implements IKylinBannersService { */
@Service
@Autowired public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, KylinBanners> implements IKylinBannersService {
private KylinBannersMapper bannersMapper;
@Autowired
@Autowired private KylinBannersMapper bannersMapper;
private KylinBannersRelationsMapper kylinBannersRelationsMapper;
@Autowired
@Autowired private KylinBannersRelationsMapper kylinBannersRelationsMapper;
MongoTemplate mongoTemplate;
@Autowired
@Autowired MongoTemplate mongoTemplate;
private MongoConverter mongoConverter;
@Autowired
@Autowired private MongoConverter mongoConverter;
RedisUtil redisUtil;
@Autowired
public boolean create(BannersParam bannersParam) { RedisUtil redisUtil;
try {
// 时间 public boolean create(BannersParam bannersParam) {
String bannersId = IDGenerator.nextSnowId().toString(); try {
LocalDateTime createdAt = LocalDateTime.now(); // 时间
String createdAtString = createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); String bannersId = IDGenerator.nextSnowId().toString();
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) { LocalDateTime createdAt = LocalDateTime.now();
bannersParam.setOnlineStartTime(null); String createdAtString = createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
} if (StringUtils.isEmpty(bannersParam.getOnlineStartTime())) {
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) { bannersParam.setOnlineStartTime(null);
bannersParam.setOnlineEndTime(null); }
} if (StringUtils.isEmpty(bannersParam.getOnlineEndTime())) {
// 入数据库 bannersParam.setOnlineEndTime(null);
bannersMapper.insert(bannersParam.getFields(bannersId, createdAtString)); }
// 入数据库
List<String> positionList = bannersParam.getPositionList(); bannersMapper.insert(bannersParam.getFields(bannersId, createdAtString));
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
for (String fieldId : positionList) { List<String> positionList = bannersParam.getPositionList();
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, createdAtString); KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
kylinBannersRelationsMapper.insert(relations); for (String fieldId : positionList) {
} KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, createdAtString);
List<String> provincesList = bannersParam.getProvincesList(); kylinBannersRelationsMapper.insert(relations);
if (!provincesList.isEmpty()) { }
for (String fieldId : provincesList) { List<String> provincesList = bannersParam.getProvincesList();
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, createdAtString); if (!provincesList.isEmpty()) {
kylinBannersRelationsMapper.insert(relations); for (String fieldId : provincesList) {
} KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, createdAtString);
} else { kylinBannersRelationsMapper.insert(relations);
provincesList = new ArrayList(); }
} } else {
provincesList = new ArrayList();
// 处理缓存数据 }
KylinBannersVo kylinBannersVo = new KylinBannersVo();
BeanUtils.copyProperties(bannersParam, kylinBannersVo); // 处理缓存数据
kylinBannersVo.setBannersId(bannersId); KylinBannersVo kylinBannersVo = new KylinBannersVo();
kylinBannersVo.setCreatedAt(createdAtString); BeanUtils.copyProperties(bannersParam, kylinBannersVo);
// 处理基础数据 防止缓存中无字段 kylinBannersVo.setBannersId(bannersId);
kylinBannersVo.setIsDeleted(1); kylinBannersVo.setCreatedAt(createdAtString);
kylinBannersVo.setUpdatedAt(""); // 处理基础数据 防止缓存中无字段
kylinBannersVo.setPositionList(positionList); kylinBannersVo.setIsDeleted(1);
kylinBannersVo.setProvincesList(provincesList); kylinBannersVo.setUpdatedAt("");
if (StringUtils.isNullOrEmpty(bannersParam.getTargetObj())) { kylinBannersVo.setPositionList(positionList);
kylinBannersVo.setTargetObj(""); kylinBannersVo.setProvincesList(provincesList);
} if (StringUtils.isEmpty(bannersParam.getTargetObj())) {
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) { kylinBannersVo.setTargetObj("");
kylinBannersVo.setOnlineStartTime(""); }
} if (StringUtils.isEmpty(bannersParam.getOnlineStartTime())) {
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) { kylinBannersVo.setOnlineStartTime("");
kylinBannersVo.setOnlineEndTime(""); }
} if (StringUtils.isEmpty(bannersParam.getOnlineEndTime())) {
if (null == bannersParam.getBannersSort()) { kylinBannersVo.setOnlineEndTime("");
kylinBannersVo.setBannersSort(0); }
} if (null == bannersParam.getBannersSort()) {
if (StringUtils.isNullOrEmpty(bannersParam.getRemarks())) { kylinBannersVo.setBannersSort(0);
kylinBannersVo.setRemarks(""); }
} if (StringUtils.isEmpty(bannersParam.getRemarks())) {
// 入缓存 kylinBannersVo.setRemarks("");
mongoTemplate.insert(kylinBannersVo, KylinBannersVo.class.getSimpleName()); }
// 入缓存
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), kylinBannersVo); mongoTemplate.insert(kylinBannersVo, KylinBannersVo.class.getSimpleName());
return true; redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), kylinBannersVo);
} catch (Exception e) {
return false; return true;
} } catch (Exception e) {
} return false;
}
public boolean update(BannersParam bannersParam) { }
try {
// 时间 public boolean update(BannersParam bannersParam) {
String bannersId = bannersParam.getBannersId(); try {
LocalDateTime updatedAt = LocalDateTime.now(); // 时间
String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); String bannersId = bannersParam.getBannersId();
LocalDateTime updatedAt = LocalDateTime.now();
KylinBanners params = bannersParam.getFields(null, null); String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
params.setUpdatedAt(updatedAtString);
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) { KylinBanners params = bannersParam.getFields(null, null);
params.setOnlineStartTime(null); params.setUpdatedAt(updatedAtString);
} if (StringUtils.isEmpty(bannersParam.getOnlineStartTime())) {
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) { params.setOnlineStartTime(null);
params.setOnlineEndTime(null); }
} if (StringUtils.isEmpty(bannersParam.getOnlineEndTime())) {
// 入数据库 params.setOnlineEndTime(null);
bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId)); }
// 入数据库
List<String> positionList = bannersParam.getPositionList(); bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
// 入数据库 先删除之前的 List<String> positionList = bannersParam.getPositionList();
kylinBannersRelationsMapper.delete( KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
new UpdateWrapper<KylinBannersRelations>().eq("banners_id", bannersId).eq("field_id_type", 1) // 入数据库 先删除之前的
); kylinBannersRelationsMapper.delete(
for (String fieldId : positionList) { new UpdateWrapper<KylinBannersRelations>().eq("banners_id", bannersId).eq("field_id_type", 1)
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, updatedAtString); );
kylinBannersRelationsMapper.insert(relations); for (String fieldId : positionList) {
} KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, updatedAtString);
List<String> provincesList = bannersParam.getProvincesList(); kylinBannersRelationsMapper.insert(relations);
if (!provincesList.isEmpty()) { }
// 入数据库 先删除之前的 List<String> provincesList = bannersParam.getProvincesList();
kylinBannersRelationsMapper.delete( if (!provincesList.isEmpty()) {
new UpdateWrapper<KylinBannersRelations>().eq("banners_id", bannersId).eq("field_id_type", 2) // 入数据库 先删除之前的
); kylinBannersRelationsMapper.delete(
for (String fieldId : provincesList) { new UpdateWrapper<KylinBannersRelations>().eq("banners_id", bannersId).eq("field_id_type", 2)
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, updatedAtString); );
kylinBannersRelationsMapper.insert(relations); for (String fieldId : provincesList) {
} KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, updatedAtString);
} else { kylinBannersRelationsMapper.insert(relations);
provincesList = new ArrayList(); }
} } else {
// 处理缓存数据 provincesList = new ArrayList();
KylinBannersVo kylinBannersVo = new KylinBannersVo(); }
BeanUtils.copyProperties(bannersParam, kylinBannersVo); // 处理缓存数据
kylinBannersVo.setBannersId(bannersId); KylinBannersVo kylinBannersVo = new KylinBannersVo();
kylinBannersVo.setUpdatedAt(updatedAtString); BeanUtils.copyProperties(bannersParam, kylinBannersVo);
kylinBannersVo.setPositionList(positionList); kylinBannersVo.setBannersId(bannersId);
kylinBannersVo.setProvincesList(provincesList); kylinBannersVo.setUpdatedAt(updatedAtString);
// 修改缓存 kylinBannersVo.setPositionList(positionList);
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinBannersVo))); kylinBannersVo.setProvincesList(provincesList);
Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate( // 修改缓存
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(), BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(kylinBannersVo)));
object, Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate(
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER) Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
); object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), JsonUtils.fromJson(doc.toJson(), KylinBannersVo.class)); );
return true; redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), JsonUtils.fromJson(doc.toJson(), KylinBannersVo.class));
} catch (Exception e) {
return false; return true;
} } catch (Exception e) {
} return false;
}
public KylinBannersVo detail(String bannersId) { }
KylinBanners data = bannersMapper.selectOne(new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId).eq("is_deleted", 1));
KylinBannersVo kylinBannersVo = new KylinBannersVo(); public KylinBannersVo detail(String bannersId) {
if (null != data) { KylinBanners data = bannersMapper.selectOne(new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId).eq("is_deleted", 1));
List<String> positionList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 1); KylinBannersVo kylinBannersVo = new KylinBannersVo();
List<String> provincesList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 2); if (null != data) {
List<String> positionList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 1);
data.setPositionList(positionList); List<String> provincesList = kylinBannersRelationsMapper.getBannersRelationsField("field_id", bannersId, 2);
data.setProvincesList(provincesList);
data.setPositionList(positionList);
kylinBannersVo = new KylinBannersVo(); data.setProvincesList(provincesList);
BeanUtils.copyProperties(data, kylinBannersVo);
}else { kylinBannersVo = new KylinBannersVo();
return null; BeanUtils.copyProperties(data, kylinBannersVo);
} }else {
return null;
return kylinBannersVo; }
}
return kylinBannersVo;
public List<BannerDetailsListDao> bannerList(BannersSearchParam bannersSearchParam) { }
try {
bannersSearchParam.setPage((bannersSearchParam.getPage() - 1) * bannersSearchParam.getSize()); public PageInfo<BannerDetailsListDao> bannerList(BannersSearchParam bannersSearchParam) {
PageInfo<BannerDetailsListDao> pageInfoTmp = null;
List<BannerDetailsListDao> data = bannersMapper.searchBannersList(BeanUtil.convertBeanToMap(bannersSearchParam)); try {
return data; PageHelper.startPage(bannersSearchParam.getPageNum(), bannersSearchParam.getPageSize());
} catch (Exception e) { List<BannerDetailsListDao> voList = bannersMapper.searchBannersList(BeanUtil.convertBeanToMap(bannersSearchParam));
return new ArrayList<>(); pageInfoTmp = new PageInfo(voList);
} } catch (Exception e) {
} return new PageInfo();
}
public Long bannerListCount(BannersSearchParam bannersSearchParam) { return pageInfoTmp;
try { }
Long count = bannersMapper.searchBannersCount(BeanUtil.convertBeanToMap(bannersSearchParam));
return count; public Long bannerListCount(BannersSearchParam bannersSearchParam) {
} catch (Exception e) { try {
return 0L; Long count = bannersMapper.searchBannersCount(BeanUtil.convertBeanToMap(bannersSearchParam));
} return count;
} } catch (Exception e) {
return 0L;
public Boolean delete(String bannersId) { }
try { }
LocalDateTime updatedAt = LocalDateTime.now();
String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); public Boolean delete(String bannersId) {
try {
KylinBanners kylinBanners = new KylinBanners(); LocalDateTime updatedAt = LocalDateTime.now();
kylinBanners.setUpdatedAt(updatedAtString); String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
kylinBanners.setIsDeleted(0);
bannersMapper.update(kylinBanners KylinBanners kylinBanners = new KylinBanners();
, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId)); kylinBanners.setUpdatedAt(updatedAtString);
kylinBanners.setIsDeleted(0);
// mongo 操作 bannersMapper.update(kylinBanners
HashMap<String, Object> map = new HashMap<>(); , new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
map.put("updatedAt", updatedAtString);
map.put("isDeleted", 0); // mongo 操作
HashMap<String, Object> map = new HashMap<>();
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map)); map.put("updatedAt", updatedAtString);
Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate( map.put("isDeleted", 0);
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object, BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER) Document doc = mongoTemplate.getCollection(KylinBannersVo.class.getSimpleName()).findOneAndUpdate(
); Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
// redis 操作 后期考虑删除掉 前端取redis不取mongo new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), JsonUtils.fromJson(doc.toJson(), KylinBannersVo.class)); );
return true; // redis 操作 后期考虑删除掉 前端取redis不取mongo
} catch (Exception e) { redisUtil.set(KylinRedisConst.BANNERS.concat(bannersId), JsonUtils.fromJson(doc.toJson(), KylinBannersVo.class));
return false;
} return true;
} } catch (Exception e) {
return false;
public List 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 = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
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)
);
}
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 bannerList = mongoTemplate.find(
query,
KylinBannersVo.class,
KylinBannersVo.class.getSimpleName()
);
return bannerList;
}
}
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