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

Commit 145c9fd6 authored by 张国柄's avatar 张国柄

~API:商品活动数据获取及店铺活动存储;

parent bb54a6bb
...@@ -133,10 +133,10 @@ public class GoblinRedisConst { ...@@ -133,10 +133,10 @@ public class GoblinRedisConst {
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
/** /**
* 商品SPU参与的活动ID集合 * 商活动ID集合
* {goblin:spu_market:${spu_id}, JsonUtils.toJson(List<com.liquidnet.service.goblin.dto.GoblinGoodsMarketDto>)} * {goblin:store_markets:${store_id}, JsonUtils.toJson(List<com.liquidnet.service.goblin.dto.GoblinGoodsMarketDto>)}
*/ */
public static final String GOODS_MARKET = PREFIX.concat("spu_market:"); public static final String STORE_MARKETS = PREFIX.concat("store_markets:");
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
} }
...@@ -5,10 +5,16 @@ import lombok.Data; ...@@ -5,10 +5,16 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
public class GoblinGoodsMarketDto implements Serializable, Cloneable { public class GoblinStoreMarketDto implements Serializable, Cloneable {
private static final long serialVersionUID = -3312075068650898199L; private static final long serialVersionUID = -3312075068650898199L;
private String marketId; /**
* 活动ID
*/
private String id;
private String marketType; /**
* 活动类型:1-优惠券
*/
private Integer type;
} }
...@@ -6,7 +6,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil; ...@@ -6,7 +6,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.RandomUtil; import com.liquidnet.commons.lang.util.RandomUtil;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.GoblinGoodsMarketDto; import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinMgtCategorySpecVo; import com.liquidnet.service.goblin.dto.manage.vo.GoblinMgtCategorySpecVo;
import com.liquidnet.service.goblin.dto.vo.*; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinFrontBanner; import com.liquidnet.service.goblin.entity.GoblinFrontBanner;
...@@ -950,58 +950,70 @@ public class GoblinRedisUtils { ...@@ -950,58 +950,70 @@ public class GoblinRedisUtils {
return strs; return strs;
} }
/* ---------------------------------------- 商铺活动:商品相关 ---------------------------------------- */ /* ---------------------------------------- 商铺活动 ---------------------------------------- */
public List<GoblinGoodsMarketDto> getGoodsMarketDtos(String spuId) { public List<GoblinStoreMarketDto> getStoreMarketDtos(String storeId) {
String rk = GoblinRedisConst.GOODS_MARKET.concat(spuId); String rk = GoblinRedisConst.STORE_MARKETS.concat(storeId);
String valStr = (String) redisUtil.get(rk); String valStr = (String) redisUtil.get(rk);
List<GoblinGoodsMarketDto> dtos; List<GoblinStoreMarketDto> dtos;
if (StringUtils.isEmpty(valStr)) { if (StringUtils.isEmpty(valStr)) {
// TODO: 2022/2/17 zhanggb mongodb 查取该商品所有参与的活动并整理集合 // TODO: 2022/2/17 zhanggb mongodb 查取该商品所有参与的活动并整理集合
dtos = ObjectUtil.getGoblinGoodsMarketDtoArrayList(); dtos = ObjectUtil.getGoblinGoodsMarketDtoArrayList();
} else { } else {
dtos = JsonUtils.fromJson(valStr, new TypeReference<List<GoblinGoodsMarketDto>>() { dtos = JsonUtils.fromJson(valStr, new TypeReference<List<GoblinStoreMarketDto>>() {
}); });
} }
return dtos; return dtos;
} }
public boolean addGoodsMarketDto(String spuId, GoblinGoodsMarketDto dto) { public boolean addStoreMarketDto(String spuId, GoblinStoreMarketDto dto) {
String rk = GoblinRedisConst.GOODS_MARKET.concat(spuId); List<GoblinStoreMarketDto> dtos = this.getStoreMarketDtos(spuId);
String valStr = (String) redisUtil.get(rk);
List<GoblinGoodsMarketDto> dtos;
if (StringUtils.isEmpty(valStr)) {
// TODO: 2022/2/17 zhanggb mongodb 查取该商品所有参与的活动并整理集合
dtos = ObjectUtil.getGoblinGoodsMarketDtoArrayList();
} else {
dtos = JsonUtils.fromJson(valStr, new TypeReference<List<GoblinGoodsMarketDto>>() {
});
}
dtos.add(dto); dtos.add(dto);
return redisUtil.set(rk, JsonUtils.toJson(dtos)); return redisUtil.set(GoblinRedisConst.STORE_MARKETS.concat(spuId), JsonUtils.toJson(dtos));
} }
public void delGoodsMarket(String spuId) { public void delStoreMarket(String spuId) {
redisUtil.del(GoblinRedisConst.GOODS_MARKET.concat(spuId)); redisUtil.del(GoblinRedisConst.STORE_MARKETS.concat(spuId));
} }
public void delGoodsMarket(String spuId, GoblinGoodsMarketDto dto) { public void delStoreMarket(String spuId, GoblinStoreMarketDto dto) {
String rk = GoblinRedisConst.GOODS_MARKET.concat(spuId); String rk = GoblinRedisConst.STORE_MARKETS.concat(spuId);
String valStr = (String) redisUtil.get(rk); List<GoblinStoreMarketDto> dtos = this.getStoreMarketDtos(spuId);
List<GoblinGoodsMarketDto> dtos; if (!CollectionUtils.isEmpty(dtos)) {
if (StringUtils.isEmpty(valStr)) { int beforeSize = dtos.size();
// TODO: 2022/2/17 zhanggb mongodb 查取该商品所有参与的活动并整理集合 dtos.removeIf(r -> r.getId().equals(dto.getId()) && r.getType().equals(dto.getType()));
dtos = ObjectUtil.getGoblinGoodsMarketDtoArrayList(); if (beforeSize > dtos.size()) {
redisUtil.set(GoblinRedisConst.STORE_MARKETS.concat(spuId), JsonUtils.toJson(dtos));
}
}
}
/* ---------------------------------------- 商品活动 ---------------------------------------- */
public List<GoblinStoreCouponVo> getGoodsMarketsForCoupon(String spuId, String storeId) {
List<GoblinStoreMarketDto> storeMarketDtos = this.getStoreMarketDtos(storeId);
if (CollectionUtils.isEmpty(storeMarketDtos)) {
return null;
}
ArrayList<GoblinStoreCouponVo> storeCouponVos = ObjectUtil.getGoblinStoreCouponVoArrayList();
storeMarketDtos.forEach(dto -> {// 逐个活动筛选优惠券活动处理
if (dto.getType() == 1) {// 优惠券活动
GoblinStoreCouponVo storeCouponVo = this.getStoreCouponVo(dto.getId());
if (null != storeCouponVo) {
if ("0".equals(storeCouponVo.getUseScope())) {
storeCouponVos.add(storeCouponVo);
} else { } else {
dtos = JsonUtils.fromJson(valStr, new TypeReference<List<GoblinGoodsMarketDto>>() { List<String> storeCouponSpuIds = this.getStoreCouponSpuIds(spuId);
}); if (!CollectionUtils.isEmpty(storeCouponSpuIds) && storeCouponSpuIds.contains(spuId)) {
storeCouponVos.add(storeCouponVo);
}
} }
if (!CollectionUtils.isEmpty(dtos)) {
dtos.removeIf(r -> r.getMarketId().equals(dto.getMarketId()) && r.getMarketType().equals(dto.getMarketType()));
} }
} }
});
return storeCouponVos;
}
/* ---------------------------------------- ---------------------------------------- */ /* ---------------------------------------- ---------------------------------------- */
/* ---------------------------------------- ---------------------------------------- */
} }
package com.liquidnet.service.goblin.util; package com.liquidnet.service.goblin.util;
import com.liquidnet.service.base.PagedResult; import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.goblin.dto.GoblinGoodsMarketDto; import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
import com.liquidnet.service.goblin.dto.GoblinGoodsSpecDto; import com.liquidnet.service.goblin.dto.GoblinGoodsSpecDto;
import com.liquidnet.service.goblin.dto.GoblinStoreMgtGoodsListVoExcel; import com.liquidnet.service.goblin.dto.GoblinStoreMgtGoodsListVoExcel;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponListVo; import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponListVo;
...@@ -68,7 +68,8 @@ public class ObjectUtil { ...@@ -68,7 +68,8 @@ public class ObjectUtil {
private static final ArrayList<GoblinGoodsInfoListVo> goblinGoodsInfoListVo = new ArrayList<>(); private static final ArrayList<GoblinGoodsInfoListVo> goblinGoodsInfoListVo = new ArrayList<>();
private static final ArrayList<GoblinStoreMgtGoodsListVoExcel> goblinStoreMgtGoodsListVoExcelArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreMgtGoodsListVoExcel> goblinStoreMgtGoodsListVoExcelArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreMgtCouponSpuListVo> goblinStoreMgtCouponSpuListVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreMgtCouponSpuListVo> goblinStoreMgtCouponSpuListVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinGoodsMarketDto> goblinGoodsMarketDtoArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreMarketDto> goblinStoreMarketDtoArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreCouponVo> goblinStoreCouponVoArrayList = new ArrayList<>();
private static final BasicDBObject basicDBObject = new BasicDBObject(); private static final BasicDBObject basicDBObject = new BasicDBObject();
private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>(); private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>();
...@@ -257,8 +258,12 @@ public class ObjectUtil { ...@@ -257,8 +258,12 @@ public class ObjectUtil {
return (ArrayList<GoblinStoreMgtCouponSpuListVo>) goblinStoreMgtCouponSpuListVoArrayList.clone(); return (ArrayList<GoblinStoreMgtCouponSpuListVo>) goblinStoreMgtCouponSpuListVoArrayList.clone();
} }
public static ArrayList<GoblinGoodsMarketDto> getGoblinGoodsMarketDtoArrayList() { public static ArrayList<GoblinStoreMarketDto> getGoblinGoodsMarketDtoArrayList() {
return (ArrayList<GoblinGoodsMarketDto>) goblinGoodsMarketDtoArrayList.clone(); return (ArrayList<GoblinStoreMarketDto>) goblinStoreMarketDtoArrayList.clone();
}
public static ArrayList<GoblinStoreCouponVo> getGoblinStoreCouponVoArrayList() {
return (ArrayList<GoblinStoreCouponVo>) goblinStoreCouponVoArrayList.clone();
} }
public static BasicDBObject cloneBasicDBObject() { public static BasicDBObject cloneBasicDBObject() {
......
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