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

Commit 2267e5f1 authored by 胡佳晨's avatar 胡佳晨

Merge remote-tracking branch 'origin/dev_goblin' into dev_goblin

parents 5345abd9 250c7816
......@@ -133,10 +133,10 @@ public class GoblinRedisConst {
/* ----------------------------------------------------------------- */
/**
* 商品SPU参与的活动ID集合
* {goblin:spu_market:${spu_id}, JsonUtils.toJson(List<com.liquidnet.service.goblin.dto.GoblinGoodsMarketDto>)}
* 商活动ID集合
* {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;
import java.io.Serializable;
@Data
public class GoblinGoodsMarketDto implements Serializable, Cloneable {
public class GoblinStoreMarketDto implements Serializable, Cloneable {
private static final long serialVersionUID = -3312075068650898199L;
private String marketId;
/**
* 活动ID
*/
private String id;
private String marketType;
/**
* 活动类型:1-优惠券
*/
private Integer type;
}
......@@ -34,6 +34,8 @@ public class GoblinGoodsSkuInfoDetailVo implements Serializable, Cloneable {
private String spuId;
@ApiModelProperty(position = 12, value = "库存是否告警,true 告警,false没有告警")
private boolean stockLess;
@ApiModelProperty(position = 26, value = "限量[0-无限制|X:限购数量]")
private Integer buyLimit;
private static final GoblinGoodsSkuInfoDetailVo obj = new GoblinGoodsSkuInfoDetailVo();
......
......@@ -6,7 +6,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.RandomUtil;
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.vo.*;
import com.liquidnet.service.goblin.entity.GoblinFrontBanner;
......@@ -950,58 +950,70 @@ public class GoblinRedisUtils {
return strs;
}
/* ---------------------------------------- 商铺活动:商品相关 ---------------------------------------- */
/* ---------------------------------------- 商铺活动 ---------------------------------------- */
public List<GoblinGoodsMarketDto> getGoodsMarketDtos(String spuId) {
String rk = GoblinRedisConst.GOODS_MARKET.concat(spuId);
public List<GoblinStoreMarketDto> getStoreMarketDtos(String storeId) {
String rk = GoblinRedisConst.STORE_MARKETS.concat(storeId);
String valStr = (String) redisUtil.get(rk);
List<GoblinGoodsMarketDto> dtos;
List<GoblinStoreMarketDto> dtos;
if (StringUtils.isEmpty(valStr)) {
// TODO: 2022/2/17 zhanggb mongodb 查取该商品所有参与的活动并整理集合
dtos = ObjectUtil.getGoblinGoodsMarketDtoArrayList();
} else {
dtos = JsonUtils.fromJson(valStr, new TypeReference<List<GoblinGoodsMarketDto>>() {
dtos = JsonUtils.fromJson(valStr, new TypeReference<List<GoblinStoreMarketDto>>() {
});
}
return dtos;
}
public boolean addGoodsMarketDto(String spuId, GoblinGoodsMarketDto dto) {
String rk = GoblinRedisConst.GOODS_MARKET.concat(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>>() {
});
}
public boolean addStoreMarketDto(String spuId, GoblinStoreMarketDto dto) {
List<GoblinStoreMarketDto> dtos = this.getStoreMarketDtos(spuId);
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) {
redisUtil.del(GoblinRedisConst.GOODS_MARKET.concat(spuId));
public void delStoreMarket(String spuId) {
redisUtil.del(GoblinRedisConst.STORE_MARKETS.concat(spuId));
}
public void delGoodsMarket(String spuId, GoblinGoodsMarketDto dto) {
String rk = GoblinRedisConst.GOODS_MARKET.concat(spuId);
String valStr = (String) redisUtil.get(rk);
List<GoblinGoodsMarketDto> dtos;
if (StringUtils.isEmpty(valStr)) {
// TODO: 2022/2/17 zhanggb mongodb 查取该商品所有参与的活动并整理集合
dtos = ObjectUtil.getGoblinGoodsMarketDtoArrayList();
public void delStoreMarket(String spuId, GoblinStoreMarketDto dto) {
String rk = GoblinRedisConst.STORE_MARKETS.concat(spuId);
List<GoblinStoreMarketDto> dtos = this.getStoreMarketDtos(spuId);
if (!CollectionUtils.isEmpty(dtos)) {
int beforeSize = dtos.size();
dtos.removeIf(r -> r.getId().equals(dto.getId()) && r.getType().equals(dto.getType()));
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 {
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;
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.GoblinStoreMgtGoodsListVoExcel;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponListVo;
......@@ -68,7 +68,8 @@ public class ObjectUtil {
private static final ArrayList<GoblinGoodsInfoListVo> goblinGoodsInfoListVo = new ArrayList<>();
private static final ArrayList<GoblinStoreMgtGoodsListVoExcel> goblinStoreMgtGoodsListVoExcelArrayList = 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 ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>();
......@@ -257,8 +258,12 @@ public class ObjectUtil {
return (ArrayList<GoblinStoreMgtCouponSpuListVo>) goblinStoreMgtCouponSpuListVoArrayList.clone();
}
public static ArrayList<GoblinGoodsMarketDto> getGoblinGoodsMarketDtoArrayList() {
return (ArrayList<GoblinGoodsMarketDto>) goblinGoodsMarketDtoArrayList.clone();
public static ArrayList<GoblinStoreMarketDto> getGoblinGoodsMarketDtoArrayList() {
return (ArrayList<GoblinStoreMarketDto>) goblinStoreMarketDtoArrayList.clone();
}
public static ArrayList<GoblinStoreCouponVo> getGoblinStoreCouponVoArrayList() {
return (ArrayList<GoblinStoreCouponVo>) goblinStoreCouponVoArrayList.clone();
}
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