Browse Source

调整购物车显示逻辑

master
xyiege 3 years ago
parent
commit
6cc519c5ba
  1. 58
      src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java
  2. 30
      src/test/java/cn/chjyj/szwh/OtherTest.java

58
src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java

@ -671,39 +671,56 @@ public class GoodsServiceImpl implements GoodsService {
//shop car infomation
String shopRedisKey = "car_" + userIsli;
JSONObject carjson = new JSONObject();
// 购物车列表
List carList = new ArrayList();
// car item
Map cimap = new HashMap();
// {"user_isli":"ssss",data:["sss","sss","sss"]}
//object
Object shopCar = RedisUtil.get(shopRedisKey);
// 购物车中有记录的
if (shopCar != null) {
JSONArray jsonArray = carjson.getJSONArray("data");
// 检查goods_isli
List goodsIsliList =new ArrayList();
if (jsonArray == null) { //为空需要添新的元素
cimap.put("goods_isli", goodsIsli);
cimap.put("use_years", userYears);
carList.add(cimap);
} else {
//抽取出goods_isli
List cgilist = new ArrayList();
for (int x = 0; x < jsonArray.size(); x++) {
JSONObject tmpjson = (JSONObject) jsonArray.get(x);
String tgoodsisli = tmpjson.getString("goods_islid");
goodsIsliList.add(tgoodsisli);
cgilist.add(tmpjson.getString("goods_isli"));
}
//检查是否在列表中
if(goodsIsliList.contains(goodsIsli)){
// goods_isli has been exist in car?
if(cgilist.contains(goodsIsli)){
retmap.put("code", 400);
retmap.put("msg", "该标的已添加到购物车");
}else {
cimap.put("goods_isli", goodsIsli);
cimap.put("use_years", userYears);
carList.add(cimap);
}
}
List tmpCarItem = new ArrayList();
Map tmpcar = new HashMap();
tmpcar.put("goods_isli",goodsIsli);
tmpcar.put("use_years",userYears);
tmpCarItem.add(tmpcar);
carjson.put("data",tmpCarItem);
// 添加到购物车json
carjson.put("user_isli",userIsli);
carjson.put("data",carList);
RedisUtil.set(shopRedisKey, carjson.toJSONString());
} else {
Map tmpCar = new HashMap();
tmpCar.put("goods_islicode",goodsIsli);
tmpCar.put("use_years",userYears);
List carItem = new ArrayList();
carItem.add(tmpCar);
carjson.put("data",carItem);
//first biuld car item
cimap.put("user_isli",goodsIsli);
cimap.put("use_years",userYears);
// second add to carlist
carList.add(cimap);
//third add new wraper
carjson.put("user_isli",userIsli);
carjson.put("data",carList);
RedisUtil.set(shopRedisKey, carjson.toJSONString());
}
//购物车添加成功
retmap.put("code", 200);
retmap.put("msg", "成功");
return retmap;
}
@ -727,6 +744,7 @@ public class GoodsServiceImpl implements GoodsService {
AccountRatioSetting accountRatioSetting = acrlist.get(0);
AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(), 2);
if (jsonArray.size() > 0) {
//goods information
for (int x = 0; x < jsonArray.size(); x++) {
JSONObject jsonObject = jsonArray.getJSONObject(x);
@ -775,7 +793,7 @@ public class GoodsServiceImpl implements GoodsService {
//
retmap.put("goods", goods);
}
}
return retmap;
}

30
src/test/java/cn/chjyj/szwh/OtherTest.java

@ -3,13 +3,16 @@ package cn.chjyj.szwh;
import cn.chjyj.szwh.utils.RedisKeys;
import cn.chjyj.szwh.utils.RedisUtil;
import cn.chjyj.szwh.utils.RedisUtils;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@SpringBootTest
@ -45,4 +48,31 @@ public class OtherTest {
String ss =RedisKeys.getSysConfigKey("ss");
System.out.println(ss);
}
@Test
public void carTest(){
String user ="899998-000000001640-3";
String goodsIsli="010007-00000000348099999999-3";
List carList =new ArrayList();
carList.add(goodsIsli);
carList.add("010007-00000000348099999999-6");
//
Map itmap =new HashMap();
itmap.put("user_isli",user);
itmap.put("data",carList);
//
JSONObject oujson =new JSONObject(itmap);
System.out.println(oujson.toJSONString());
}
@Test
public void cartest2(){
String orstr ="{\"data\":[\"010007-00000000348099999999-3\",\"010007-00000000348099999999-6\"],\"user_isli\":\"899998-000000001640-3\"}\n";
JSONObject orjson = JSONObject.parseObject(orstr);
JSONArray jsonArray = orjson.getJSONArray("data");
//jsonArray.toJavaList(String.class);
for(int a=0;a<jsonArray.size();a++){
System.out.println(jsonArray.get(a));
}
}
}

Loading…
Cancel
Save