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

Commit c471ce17 authored by 胡佳晨's avatar 胡佳晨

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

parents ec861371 21472376
...@@ -43,8 +43,8 @@ public class GoblinRedisConst { ...@@ -43,8 +43,8 @@ public class GoblinRedisConst {
public static final String SELECT_GOODS = PREFIX.concat("select_goods"); //精选商品 public static final String SELECT_GOODS = PREFIX.concat("select_goods"); //精选商品
public static final String MOUDLE_INDEX = PREFIX.concat("moudle_index"); //moudle_index 组件排序 public static final String MOUDLE_INDEX = PREFIX.concat("moudle_index"); //moudle_index 组件排序
public static final String COMPLIATIONS = PREFIX.concat("goblinFrontCompilations"); // 合集 public static final String COMPLIATIONS = PREFIX.concat("goblinFrontCompilations"); // 合集
public static final String FRONT_GOBLINFRONTCUBE = PREFIX.concat("goblinFrontCube"); // 合集 public static final String FRONT_GOBLINFRONTCUBE = PREFIX.concat("goblinFrontCube"); // 魔方
public static final String FRONT_SHOPCART = PREFIX.concat("goblin_shopcart"); // 合集 public static final String FRONT_SHOPCART = PREFIX.concat("goblin_shopcart:"); // 购物车
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
......
...@@ -19,7 +19,7 @@ import java.util.List; ...@@ -19,7 +19,7 @@ import java.util.List;
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class GoblinShoppingCartVo implements Serializable { public class GoblinShoppingCartVo implements Serializable {
@ApiModelProperty(value = "该商铺下的所有商品") @ApiModelProperty(value = "该商铺下的所有商品")
private List<GoblinShoppingCartVoDetail> list; private List<GoblinShoppingCartVoDetail> skuList;
/** /**
* 商铺id * 商铺id
*/ */
......
...@@ -19,7 +19,12 @@ import java.util.List; ...@@ -19,7 +19,12 @@ import java.util.List;
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class GoblinShoppingCartVoo implements Serializable { public class GoblinShoppingCartVoo implements Serializable {
@ApiModelProperty(value = "根据shop分类") @ApiModelProperty(value = "根据shop分类")
private List<GoblinShoppingCartVo> list; private List<GoblinShoppingCartVo> shopList;
//mongodb 对应的id
private String goblinShoppingCartId;
//mongodb userid
private String userId;
private static final GoblinShoppingCartVoo obj = new GoblinShoppingCartVoo(); private static final GoblinShoppingCartVoo obj = new GoblinShoppingCartVoo();
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.controller; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.controller;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.vo.GoblinShoppingCartVoo; import com.liquidnet.service.goblin.dto.vo.GoblinShoppingCartVoo;
import com.liquidnet.service.goblin.service.impl.GoblinFrontServiceImpl; import com.liquidnet.service.goblin.service.impl.GoblinFrontServiceImpl;
import com.liquidnet.service.goblin.util.GoblinRedisUtils; import com.liquidnet.service.goblin.util.GoblinRedisUtils;
...@@ -41,7 +42,7 @@ public class GoblinFrontLoginController { ...@@ -41,7 +42,7 @@ public class GoblinFrontLoginController {
@ApiOperation("获得购物车") @ApiOperation("获得购物车")
public ResponseDto<GoblinShoppingCartVoo> getShopCart() { public ResponseDto<GoblinShoppingCartVoo> getShopCart() {
String userId=CurrentUtil.getCurrentUid(); String userId=CurrentUtil.getCurrentUid();
redisUtil.del(GoblinRedisConst.FRONT_SHOPCART.concat(userId));
return ResponseDto.success( ); return ResponseDto.success( );
} }
......
package com.liquidnet.service.goblin.service.impl; package com.liquidnet.service.goblin.service.impl;
import com.alibaba.fastjson.JSON;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil; 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.StringUtil; import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst; import com.liquidnet.service.goblin.constant.GoblinStatusConst;
...@@ -10,8 +13,12 @@ import com.liquidnet.service.goblin.entity.*; ...@@ -10,8 +13,12 @@ import com.liquidnet.service.goblin.entity.*;
import com.liquidnet.service.goblin.service.GoblinFrontService; import com.liquidnet.service.goblin.service.GoblinFrontService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils; import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.ObjectUtil; import com.liquidnet.service.goblin.util.ObjectUtil;
import com.mongodb.BasicDBObject;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -29,6 +36,8 @@ public class GoblinFrontServiceImpl implements GoblinFrontService { ...@@ -29,6 +36,8 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired @Autowired
private GoblinRedisUtils goblinRedisUtils; private GoblinRedisUtils goblinRedisUtils;
@Autowired
MongoTemplate mongoTemplate;
@Override @Override
public ArrayList<GoblinFrontBannerVo> getListBanner() { public ArrayList<GoblinFrontBannerVo> getListBanner() {
...@@ -325,16 +334,131 @@ public class GoblinFrontServiceImpl implements GoblinFrontService { ...@@ -325,16 +334,131 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
//判断该用户 redis里是否有购物车 //判断该用户 redis里是否有购物车
GoblinShoppingCartVoo goblinShoppingCartVoo= (GoblinShoppingCartVoo) redisUtil.get(GoblinRedisConst.FRONT_SHOPCART.concat(userId)); GoblinShoppingCartVoo goblinShoppingCartVoo= (GoblinShoppingCartVoo) redisUtil.get(GoblinRedisConst.FRONT_SHOPCART.concat(userId));
if(null==goblinShoppingCartVoo){ if(null==goblinShoppingCartVoo){
//创建 voo
GoblinShoppingCartVoo goblinShoppingCartVoo1=GoblinShoppingCartVoo.getNew();
// 根据shop分类
ArrayList<GoblinShoppingCartVo> list=ObjectUtil.goblinShoppingCartVoArrayList();
GoblinShoppingCartVo goblinShoppingCartVo=GoblinShoppingCartVo.getNew();
goblinShoppingCartVo.setStoreId(storeId);
//该商铺下的所有商品
ArrayList<GoblinShoppingCartVoDetail> list1=ObjectUtil.goblinShoppingCartVoDetailArrayList();
//创建 购物车vo
GoblinShoppingCartVoDetail goblinShoppingCartVoDetail=this.setValue(userId,storeId,spuId,skuId,1);
list1.add(goblinShoppingCartVoDetail);
goblinShoppingCartVo.setSkuList(list1);
list.add(goblinShoppingCartVo);
goblinShoppingCartVoo1.setShopList(list);
goblinShoppingCartVoo1.setGoblinShoppingCartId(IDGenerator.nextSnowId());
saveRedisMongodbMysqlShop(goblinShoppingCartVoo1,userId);
}else{
//查看是否有该商铺
List<GoblinShoppingCartVo> list=goblinShoppingCartVoo.getShopList();
boolean isShop=false;
for(GoblinShoppingCartVo goblinShoppingCartVo:list){
if(storeId.equals(goblinShoppingCartVo.getStoreId())){
//有这个商铺的 东西
List<GoblinShoppingCartVoDetail> list1=goblinShoppingCartVo.getSkuList();
//查看是否有这个商品
boolean isGoods=false;
for(GoblinShoppingCartVoDetail goblinShoppingCartVoDetail:list1){
if(skuId.equals(goblinShoppingCartVoDetail.getSkuId())){
isGoods=true;
goblinShoppingCartVoDetail.setNumber((goblinShoppingCartVoDetail.getNumber()+1));
}
}
if(isGoods){
//添加商品 数量
//不需要做
}else{
//创建商品放入到list
GoblinShoppingCartVoDetail goblinShoppingCartVoDetail=this.setValue(userId,storeId,spuId,skuId,1);
list1.add(goblinShoppingCartVoDetail);
}
isShop=true;
}
}
if(!isShop){
GoblinShoppingCartVo goblinShoppingCartVo=GoblinShoppingCartVo.getNew();
goblinShoppingCartVo.setStoreId(storeId);
//该商铺下的所有商品
ArrayList<GoblinShoppingCartVoDetail> list1=ObjectUtil.goblinShoppingCartVoDetailArrayList();
//创建 购物车vo
GoblinShoppingCartVoDetail goblinShoppingCartVoDetail=this.setValue(userId,storeId,spuId,skuId,1);
list1.add(goblinShoppingCartVoDetail);
goblinShoppingCartVo.setSkuList(list1);
list.add(goblinShoppingCartVo);
}
saveRedisMongodbMysqlShop(goblinShoppingCartVoo,userId);
}
return true;
}
/***
* @author zhangfuxin
* @Description: 修改 购物车里 数量
* @date 2022/1/11 下午6:24
*/
public boolean updateShopCart(String spuId, String storeId,String skuId,Integer number,String userId){
GoblinShoppingCartVoo goblinShoppingCartVoo= (GoblinShoppingCartVoo) redisUtil.get(GoblinRedisConst.FRONT_SHOPCART.concat(userId));
if(null!=goblinShoppingCartVoo){
List<GoblinShoppingCartVo> list=goblinShoppingCartVoo.getShopList();
//遍历商铺
for(GoblinShoppingCartVo goblinShoppingCartVo:list){
if(storeId.equals(goblinShoppingCartVo.getStoreId())){
//找到 商品id
List<GoblinShoppingCartVoDetail> list1=goblinShoppingCartVo.getSkuList();
for(GoblinShoppingCartVoDetail goblinShoppingCartVoDetail:list1){
if(skuId.equals(goblinShoppingCartVoDetail.getSkuId())){
goblinShoppingCartVoDetail.setNumber(number);
}
}
}
}
//调用储存方法
//setRedisMongodbMysqlShop(goblinShoppingCartVoo,userId);
} }
return true; return true;
} }
/**
* 删除购物车里面的商品
*/
public GoblinShoppingCartVoo getShoppCart(String userId){ public GoblinShoppingCartVoo getShoppCart(String userId){
//判断该用户 redis里是否有购物车 //判断该用户 redis里是否有购物车
GoblinShoppingCartVoo goblinShoppingCartVoo= (GoblinShoppingCartVoo) redisUtil.get(GoblinRedisConst.FRONT_SHOPCART.concat(userId)); GoblinShoppingCartVoo goblinShoppingCartVoo= (GoblinShoppingCartVoo) redisUtil.get(GoblinRedisConst.FRONT_SHOPCART.concat(userId));
return goblinShoppingCartVoo; return goblinShoppingCartVoo;
} }
public GoblinShoppingCartVoDetail setValue(String userId,String storeId,String spuId,String skuId,Integer number){
GoblinShoppingCartVoDetail goblinShoppingCartVoDetail=GoblinShoppingCartVoDetail.getNew();
goblinShoppingCartVoDetail.setCarId(IDGenerator.nextSnowId());
goblinShoppingCartVoDetail.setUserId(userId);
goblinShoppingCartVoDetail.setStoreId(storeId);
goblinShoppingCartVoDetail.setSpuId(spuId);
goblinShoppingCartVoDetail.setSkuId(skuId);
goblinShoppingCartVoDetail.setNumber(number);
goblinShoppingCartVoDetail.setDelTag(0);
goblinShoppingCartVoDetail.setCreatedAt(LocalDateTime.now());
goblinShoppingCartVoDetail.setUpdatedAt(LocalDateTime.now());
return goblinShoppingCartVoDetail;
}
public void saveRedisMongodbMysqlShop(GoblinShoppingCartVoo goblinShoppingCartVoo,String userId){
goblinShoppingCartVoo.setUserId(userId);
//redis存储
redisUtil.set(GoblinRedisConst.FRONT_SHOPCART.concat(userId),goblinShoppingCartVoo);
//mongodb存储
boolean exists2 =mongoTemplate.exists(Query.query(Criteria.where("goblinShoppingCartId").is(goblinShoppingCartVoo.getGoblinShoppingCartId())),GoblinShoppingCartVoo.class, GoblinShoppingCartVoo.class.getSimpleName());
if(exists2){
BasicDBObject orderObject = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(goblinShoppingCartVoo)));
mongoTemplate.getCollection(GoblinShoppingCartVoo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("goblinShoppingCartId").is(goblinShoppingCartVoo.getGoblinShoppingCartId())).getQueryObject(),
orderObject
);
}else{
mongoTemplate.save(goblinShoppingCartVoo,GoblinShoppingCartVoo.class.getSimpleName());
}
//mysql 消息队列
}
} }
...@@ -47,13 +47,20 @@ public class ObjectUtil { ...@@ -47,13 +47,20 @@ public class ObjectUtil {
private static final ArrayList<GoblinZhengzaiPushVo> goblinZhengzaiPushVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinZhengzaiPushVo> goblinZhengzaiPushVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreOrderListVo> goblinStoreOrderListVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreOrderListVo> goblinStoreOrderListVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreOrderListSkuVo> goblinStoreOrderListSkuVoArrayList = new ArrayList<>(); private static final ArrayList<GoblinStoreOrderListSkuVo> goblinStoreOrderListSkuVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinShoppingCartVo> goblinShoppingCartVoArrayList=new ArrayList<>();
private static final ArrayList<GoblinShoppingCartVoDetail> goblinShoppingCartVoDetailArrayList=new ArrayList<>();
private static final BasicDBObject basicDBObject = new BasicDBObject(); private static final BasicDBObject basicDBObject = new BasicDBObject();
public static PagedResult<GoblinStoreMgtGoodsListVo> getGoblinStoreMgtGoodsVoPagedResult() { public static PagedResult<GoblinStoreMgtGoodsListVo> getGoblinStoreMgtGoodsVoPagedResult() {
return goblinStoreMgtGoodsVoPagedResult.clone(); return goblinStoreMgtGoodsVoPagedResult.clone();
} }
public static ArrayList<GoblinShoppingCartVo> goblinShoppingCartVoArrayList() {
return (ArrayList<GoblinShoppingCartVo>) goblinShoppingCartVoArrayList.clone();
}
public static ArrayList<GoblinShoppingCartVoDetail> goblinShoppingCartVoDetailArrayList() {
return (ArrayList<GoblinShoppingCartVoDetail>) goblinShoppingCartVoDetailArrayList.clone();
}
public static ArrayList<GoblinStoreOrderListSkuVo> getGoblinStoreOrderListSkuVoArrayList() { public static ArrayList<GoblinStoreOrderListSkuVo> getGoblinStoreOrderListSkuVoArrayList() {
return (ArrayList<GoblinStoreOrderListSkuVo>) goblinStoreOrderListSkuVoArrayList.clone(); return (ArrayList<GoblinStoreOrderListSkuVo>) goblinStoreOrderListSkuVoArrayList.clone();
} }
......
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