Browse Source

调整购物车逻辑

master
xyiege 3 years ago
parent
commit
12696b55dc
  1. 48
      src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java
  2. 19
      src/main/java/cn/chjyj/szwh/utils/SzCarUtils.java

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

@ -623,55 +623,41 @@ public class GoodsServiceImpl implements GoodsService {
//shop car infomation //shop car infomation
String shopRedisKey = "car_" + userIsli; String shopRedisKey = "car_" + userIsli;
JSONObject carjson = new JSONObject(); JSONObject carjson = new JSONObject();
// 购物车列表
List carList = new ArrayList();
// car item // car item
Map cimap = new HashMap(); Map cimap = new HashMap();
// {"user_isli":"ssss",data:["sss","sss","sss"]}
//object
Object shopCar = RedisUtil.get(shopRedisKey); Object shopCar = RedisUtil.get(shopRedisKey);
// 购物车中有记录的 // 购物车中有记录的
if (shopCar != null) { if (shopCar != null) {
carjson = JSONObject.parseObject(shopCar.toString());
// 提取节点转为jsonarray
JSONArray jsonArray = carjson.getJSONArray("data"); JSONArray jsonArray = carjson.getJSONArray("data");
if (jsonArray == null) { //为空需要添新的元素 if (jsonArray != null) { //为空需要添新的元素
cimap.put("goods_isli", goodsIsli);
cimap.put("use_years", userYears);
carList.add(cimap);
} else {
//抽取出goods_isli
List cgilist = new ArrayList(); List cgilist = new ArrayList();
for (int x = 0; x < jsonArray.size(); x++) { for (int x = 0; x < jsonArray.size(); x++) {
JSONObject tmpjson = (JSONObject) jsonArray.get(x); JSONObject tmpjson = (JSONObject) jsonArray.get(x);
// goods_isli insert into list for checking has exist
cgilist.add(tmpjson.getString("goods_isli")); cgilist.add(tmpjson.getString("goods_isli"));
} // goods_isli has been exist in car?
// goods_isli has been exist in car? if(cgilist.contains(goodsIsli)){
if(cgilist.contains(goodsIsli)){ retmap.put("code", 400);
retmap.put("code", 400); retmap.put("msg", "该标的已添加到购物车");
retmap.put("msg", "该标的已添加到购物车"); return retmap;
}else { }
cimap.put("goods_isli", goodsIsli);
cimap.put("use_years", userYears);
carList.add(cimap);
JSONObject retjson =SzCarUtils.addCart(shopRedisKey,userIsli,cimap);
} }
} }
// 添加到购物车json //
//carjson.put("user_isli",userIsli);
//carjson.put("data",carList);
RedisUtil.set(shopRedisKey, carjson.toJSONString());
} else { } else {
//first biuld car item //first biuld car item
cimap.put("user_isli",goodsIsli); cimap.put("goods_isli",goodsIsli);
cimap.put("use_years",userYears); 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());
} }
//购物车添加成功 //购物车添加成功
JSONObject retjson =SzCarUtils.addCart(shopRedisKey,userIsli,cimap);
carjson.put("user_isli",userIsli);
carjson.put("data",retjson);
RedisUtil.set(shopRedisKey, carjson.toJSONString());
retmap.put("code", 200); retmap.put("code", 200);
retmap.put("msg", "成功"); retmap.put("msg", "成功");
return retmap; return retmap;

19
src/main/java/cn/chjyj/szwh/utils/SzCarUtils.java

@ -18,22 +18,23 @@ public class SzCarUtils {
* @return * @return
*/ */
public static JSONObject addCart(String carkey,String userIsli, Map ugmap){ public static JSONObject addCart(String carkey,String userIsli, Map ugmap){
List carItem = new ArrayList();
// get shopping car from redis // get shopping car from redis
Object shopCar = RedisUtil.get(carkey); Object shopCar = RedisUtil.get(carkey);
JSONObject shopCarJson = JSONObject.parseObject(shopCar.toString()); if(shopCar!=null) {
JSONArray jsonArray = shopCarJson.getJSONArray("data"); JSONObject shopCarJson = JSONObject.parseObject(shopCar.toString());
// good list JSONArray jsonArray = shopCarJson.getJSONArray("data");
List<JSONObject> carlist =new ArrayList<>(); for(int x=0;x<jsonArray.size();x++){
if(jsonArray.size()>0){ carItem.add(jsonArray.getJSONObject(x));
for (int i=0;i<jsonArray.size();i++){
carlist.add(jsonArray.getJSONObject(i));
} }
// 在jsonArray中集训增加
//jsonArray.add(new JSONObject(ugmap));
}else{ }else{
carlist.add(new JSONObject(ugmap)); carItem.add(new JSONObject(ugmap));
} }
JSONObject outjson = new JSONObject(); JSONObject outjson = new JSONObject();
outjson.put("user_isli",userIsli); outjson.put("user_isli",userIsli);
outjson.put("data",carlist); outjson.put("data",carItem);
return outjson; return outjson;
} }
} }

Loading…
Cancel
Save