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

Commit d4e237af authored by zhengfuxin's avatar zhengfuxin

修改精选商品

parent 6bd0c4a1
......@@ -75,8 +75,9 @@ public class GoblinRedisConst {
public static final String FRONT_HOTWORD_INDEX = PREFIX.concat("front_hot_word_index"); //前端banner index
public static final String FRONT_FRONT_SECKILL = PREFIX.concat("front_front_seckill"); //前端 首页秒杀
public static final String FRONT_SECKILL = PREFIX.concat("front_seckill"); //前端 秒杀列表
public static final String SELECT_GOODS = PREFIX.concat("select_goods"); //精选商品
public static final String SELECT_GOODS_PAGE1 = PREFIX.concat("select_goods_page1"); //精选商品
public static final String SELECT_GOODS = PREFIX.concat("select_goods"); //配置的精选商品
public static final String SELECT_GOODS_PAGE1 = PREFIX.concat("select_goods_page1"); //精选商品 第一页
public static final String SELECT_GOODS_SPUIDS = PREFIX.concat("select_goods_SPUIDS"); //精选商品 spuids
public static final String MOUDLE_INDEX = PREFIX.concat("moudle_index"); //moudle_index 组件排序
public static final String COMPLIATIONS = PREFIX.concat("goblinFrontCompilations"); // 合集
public static final String FRONT_GOBLINFRONTCUBE = PREFIX.concat("goblinFrontCube"); // 魔方
......
......@@ -522,7 +522,96 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
return goblinFrontCategoryListVo;
}
/**
* 获取 mongodb里面的spuId
* @return
*/
public String getspuId(String spuids,int page,int pageSize){
Query query = new Query();
if(StringUtil.isNotBlank(spuids)){
query.addCriteria(Criteria.where("spuId").nin(spuids.split(",")));
}
query.addCriteria(Criteria.where("delFlg").is(0));
Sort sortName = Sort.by(Sort.Direction.DESC, "count");
/* Pageable pageable = PageRequest.of(page, pageSize, sortName);
query.with(pageable);*/
List<GoblinGoodsInfoVo> list = mongoTemplate.find(query, GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName());
StringBuffer sb = new StringBuffer();
int index=0;
for(GoblinGoodsInfoVo goblinGoodsInfoVo:list){
if(index==0){
sb.append(goblinGoodsInfoVo.getSpuId());
}else{
sb.append(","+goblinGoodsInfoVo.getSpuId());
}
index++;
}
return sb.toString();
}
public void setPage1(List<GoblinFrontSelectGoods> list,int pageSize){
StringBuffer sb = new StringBuffer();
//足够了 拼接字符串
int i=0;
for(GoblinFrontSelectGoods goblinFrontSelectGoods:list){
if(i==0){
sb.append(goblinFrontSelectGoods.getSpuId());
}else{
sb.append(","+goblinFrontSelectGoods.getSpuId());
}
i++;
if(i==pageSize) break;
}
redisUtil.set(GoblinRedisConst.SELECT_GOODS_PAGE1,sb.toString());
}
public void setPage1AndSpu(List<GoblinFrontSelectGoods> list,int pageSize){
validate(list);
StringBuffer sb = new StringBuffer();
if(null!=list&&list.size()>0){
int i=0;
for(GoblinFrontSelectGoods goblinFrontSelectGoods:list){
if(i==0){
sb.append(goblinFrontSelectGoods.getSpuId());
}else{
sb.append(","+goblinFrontSelectGoods.getSpuId());
}
i++;
}
}
String s=this.getspuId(sb.toString(),0,0);
String supids="";
if(StringUtil.isNotBlank(sb.toString())&&StringUtil.isNotBlank(s)){
supids=sb.toString()+","+s;
}else if(StringUtil.isNotBlank(sb.toString())){
supids=sb.toString();
}else if(StringUtil.isNotBlank(s)){
supids=s;
}
log.debug("spuid所有的为:{}",supids);
int index=0;
StringBuffer sb1 = new StringBuffer();
for(String ss:supids.split(",")){
sb1.append(ss);
index++;
if(index==pageSize){
break;
}
}
redisUtil.set(GoblinRedisConst.SELECT_GOODS_PAGE1,sb1.toString());
redisUtil.set(GoblinRedisConst.SELECT_GOODS_SPUIDS,supids);
}
public void validate( List<GoblinFrontSelectGoods> list){
if(null!=list&list.size()>0){
Iterator<GoblinFrontSelectGoods> it = list.iterator();
while (it.hasNext()) {
GoblinFrontSelectGoods goblinFrontSelectGoods= it.next();
GoblinGoodsInfoVo goblinGoodsInfoVo= goblinRedisUtils.getGoodsInfoVo(goblinFrontSelectGoods.getSpuId());
if (null==goblinGoodsInfoVo) {
it.remove();
}
}
}
}
/**
* @author zhangfuxin
* @Description:精选商品列表
......@@ -530,6 +619,63 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
*/
@Override
public GoblinFrontSelectGoodVo getSelectGoods(int page, int pageSize) {
GoblinFrontSelectGoodVo goblinFrontSelectGoodVo=GoblinFrontSelectGoodVo.getNew();
//先从redis里 查 是否有第一页的值
String spuIds="";
if(page==0){
if(redisUtil.hasKey(GoblinRedisConst.SELECT_GOODS_PAGE1)){
String[] spuids=redisUtil.get(GoblinRedisConst.SELECT_GOODS_PAGE1).toString().split(",");
ArrayList<GoblinGoodsInfoVo> goblinGoodsInfoVoArrayList= ObjectUtil.getGoblinGoodsInfoVos();
for(String id:spuids){
GoblinGoodsInfoVo goblinGoodsInfoVo= goblinRedisUtils.getGoodsInfoVo(id);
goblinGoodsInfoVoArrayList.add(goblinGoodsInfoVo);
}
goblinFrontSelectGoodVo.setGoblinGoodsInfoVoList(goblinGoodsInfoVoArrayList);
return goblinFrontSelectGoodVo;
}else{
//从redis里面查出配置的 spu
if(redisUtil.hasKey(GoblinRedisConst.SELECT_GOODS)){
List<GoblinFrontSelectGoods> list= (List<GoblinFrontSelectGoods>) redisUtil.get(GoblinRedisConst.SELECT_GOODS);
validate(list);
if(list.size()>=pageSize){
this.setPage1(list,pageSize);
return this.getSelectGoods(page,pageSize);
}else{
setPage1AndSpu(list,pageSize);
return this.getSelectGoods(page,pageSize);
}
}else{
setPage1AndSpu(null,pageSize);
return this.getSelectGoods(page,pageSize);
}
}
}else{
//查看是否有 配置的 spuid的顺序
if(!redisUtil.hasKey(GoblinRedisConst.SELECT_GOODS_SPUIDS)){
List<GoblinFrontSelectGoods> list= (List<GoblinFrontSelectGoods>) redisUtil.get(GoblinRedisConst.SELECT_GOODS);
setPage1AndSpu(list,pageSize);
this.getSelectGoods(page,pageSize);
}
String[] spuidss=redisUtil.get(GoblinRedisConst.SELECT_GOODS_SPUIDS).toString().split(",");
//找到对应的spuid
int start =page*pageSize;
int end=(page+1)*pageSize;
if(end<spuidss.length){
end=spuidss.length;
}
ArrayList<GoblinGoodsInfoVo> goblinGoodsInfoVoArrayList= ObjectUtil.getGoblinGoodsInfoVos();
for(int i=0;i<=end;i++){
if(i>=start){
GoblinGoodsInfoVo goblinGoodsInfoVo= goblinRedisUtils.getGoodsInfoVo(spuidss[i]);
goblinGoodsInfoVoArrayList.add(goblinGoodsInfoVo);
}
}
goblinFrontSelectGoodVo.setGoblinGoodsInfoVoList(goblinGoodsInfoVoArrayList);
goblinFrontSelectGoodVo.setCount(spuidss.length);
return goblinFrontSelectGoodVo;
}
/* String spuIds="";
if(!redisUtil.hasKey(GoblinRedisConst.SELECT_GOODS)){
//查看redis里面第一页的商品
......
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