From da4c049fa85155ef76ee0af6db3e01518779768f Mon Sep 17 00:00:00 2001 From: xyiege Date: Thu, 3 Nov 2022 10:54:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=B4=AD=E7=89=A9=E8=BD=A6?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../szwh/service/impl/GoodsServiceImpl.java | 103 +++++++++--------- .../java/cn/chjyj/szwh/utils/SzCarUtils.java | 21 ++-- 2 files changed, 64 insertions(+), 60 deletions(-) diff --git a/src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java b/src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java index 1caad66..63f6bce 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java @@ -654,9 +654,9 @@ public class GoodsServiceImpl implements GoodsService { } //购物车添加成功 JSONObject retjson =SzCarUtils.addCart(shopRedisKey,userIsli,cimap); - carjson.put("user_isli",userIsli); - carjson.put("data",retjson); - RedisUtil.set(shopRedisKey, carjson.toJSONString()); +// carjson.put("user_isli",userIsli); +// carjson.put("data",retjson); +// RedisUtil.set(shopRedisKey, carjson.toJSONString()); retmap.put("code", 200); retmap.put("msg", "成功"); @@ -687,7 +687,7 @@ public class GoodsServiceImpl implements GoodsService { AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(), 2); //循环枚举 - if (jsonArray.size() > 0) { + if (jsonArray!=null && jsonArray.size() > 0) { //goods information for (int x =0; x retmap = new HashMap<>(); @@ -695,58 +695,57 @@ public class GoodsServiceImpl implements GoodsService { String goodsIsli = jsonObject.getString("goods_isli"); //goods Goods goods = goodsMapper.getGoodsByIsli(goodsIsli); + // 将good 实体中 压扁,变成k-v形式 retmap = JSONObject.parseObject(JSON.toJSONString(goods)); -// retmap.put("goods_islicode",goodsIsli); -// retmap.put("username",goods.getUsername()); -// GoodsListVo goodsListVo = goodsMapper.getSingleGoodsListVOByGoodsIsli(goodsIsli); -// retmap =JSONObject.parseObject(JSON.toJSONString(goodsListVo)); - - //goods detail - GoodsDetail goodsDetail = goodsDetailMapper.getGoodsDetailBygid(goods.getGoodsDetailId()); - Map gdmap = new HashMap(); - gdmap.put("goods_image",goodsDetail.getGoodsImage()); - gdmap.put("goods_name",goodsDetail.getGoodsName()); - gdmap.put("goods_entrust",goodsDetail.getGoodsEntrust()); - gdmap.put("charges_type",goodsDetail.getChargesType()); - gdmap.put("price",goodsDetail.getPrice()); - retmap.put("detail", gdmap); - // 计算服务费 - Integer count = jsonObject.getInteger("use_years"); - if (goodsDetail.getGoodsEntrust() == 1) { - count = 1; - } - BigDecimal serviceCharge = new BigDecimal(0); - BigDecimal totalMoney = new BigDecimal(0); - if (goodsDetail.getChargesType() == 2) { - if (accountRatioDetail.getCalculate() == 1) { - BigDecimal rate = accountRatioDetail.getRatio().divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP); - serviceCharge = new BigDecimal(count).multiply(goodsDetail.getPrice()) - .multiply(rate); + if(goods!=null) { + //goods detail + GoodsDetail goodsDetail = goodsDetailMapper.getGoodsDetailBygid(goods.getGoodsDetailId()); + Map gdmap = new HashMap(); + gdmap.put("goods_image", goodsDetail.getGoodsImage()); + gdmap.put("goods_name", goodsDetail.getGoodsName()); + gdmap.put("goods_entrust", goodsDetail.getGoodsEntrust()); + gdmap.put("charges_type", goodsDetail.getChargesType()); + gdmap.put("price", goodsDetail.getPrice()); + retmap.put("detail", gdmap); + + // 计算服务费 + Integer count = jsonObject.getInteger("use_years"); + if (goodsDetail.getGoodsEntrust() == 1) { + count = 1; + } + BigDecimal serviceCharge = new BigDecimal(0); + BigDecimal totalMoney = new BigDecimal(0); + if (goodsDetail.getChargesType() == 2) { + if (accountRatioDetail.getCalculate() == 1) { + BigDecimal rate = accountRatioDetail.getRatio().divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP); + serviceCharge = new BigDecimal(count).multiply(goodsDetail.getPrice()) + .multiply(rate); + } else { + serviceCharge = new BigDecimal(count).multiply(goodsDetail.getPrice()) + .add(accountRatioDetail.getAmount()); + } + totalMoney = new BigDecimal(count).multiply(goodsDetail.getPrice()) + .add(serviceCharge) + .add(goodsDetail.getEarnestMoney()); + } + BigDecimal goodsPrice = new BigDecimal(count).multiply(goodsDetail.getPrice()).setScale(2); + retmap.put("service_charge", serviceCharge); + retmap.put("total_money", totalMoney); + retmap.put("goods_price", goodsPrice); + // + if (goodsDetail.getGoodsEntrust() == 1 || (goodsDetail.getChargesType() == 1 && goodsDetail.getGoodsEntrust() == 2)) { + retmap.put("transaction_count", "-"); } else { - serviceCharge = new BigDecimal(count).multiply(goodsDetail.getPrice()) - .add(accountRatioDetail.getAmount()); + retmap.put("transaction_count", count); } - totalMoney = new BigDecimal(count).multiply(goodsDetail.getPrice()) - .add(serviceCharge) - .add(goodsDetail.getEarnestMoney()); - } - BigDecimal goodsPrice = new BigDecimal(count).multiply(goodsDetail.getPrice()).setScale(2); - retmap.put("service_charge", serviceCharge); - retmap.put("total_money", totalMoney); - retmap.put("goods_price", goodsPrice); - // - if (goodsDetail.getGoodsEntrust() == 1 || (goodsDetail.getChargesType() == 1 && goodsDetail.getGoodsEntrust() == 2)) { - retmap.put("transaction_count", "-"); - } else { - retmap.put("transaction_count", count); + //GOODS SOURCE + List goodsSourcevo = goodsSourceMapper.getGoodsSourceVOByIsli(goods.getGoodsIslicode()); + retmap.put("source", goodsSourcevo); + // + JSONObject userjson = SzwhApiUtils.getApiUser(userIsli); + Map umap = JSONObject.parseObject(userjson.getString("data")); + retmap.put("user", umap); } - //GOODS SOURCE - List goodsSourcevo = goodsSourceMapper.getGoodsSourceVOByIsli(goods.getGoodsIslicode()); - retmap.put("source", goodsSourcevo); - // - JSONObject userjson = SzwhApiUtils.getApiUser(userIsli); - Map umap = JSONObject.parseObject(userjson.getString("data")); - retmap.put("user", umap); // add retlist retlist.add(retmap); diff --git a/src/main/java/cn/chjyj/szwh/utils/SzCarUtils.java b/src/main/java/cn/chjyj/szwh/utils/SzCarUtils.java index 7743a0b..1d20a3e 100644 --- a/src/main/java/cn/chjyj/szwh/utils/SzCarUtils.java +++ b/src/main/java/cn/chjyj/szwh/utils/SzCarUtils.java @@ -13,28 +13,33 @@ import java.util.Map; public class SzCarUtils { /** * add goods to shop car + * * @param carkey - * @param ugmap goods_isli and user_isli map + * @param ugmap goods_isli and user_isli map * @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 Object shopCar = RedisUtil.get(carkey); + // 对象存在 if(shopCar!=null) { JSONObject shopCarJson = JSONObject.parseObject(shopCar.toString()); JSONArray jsonArray = shopCarJson.getJSONArray("data"); - if(jsonArray!=null) { + if (jsonArray != null) { for (int x = 0; x < jsonArray.size(); x++) { - carItem.add(jsonArray.getJSONObject(x)); + //carItem.add(jsonArray.getJSONObject(x)); + carItem.add(jsonArray.get(x)); } } - }else{ - carItem.add(new JSONObject(ugmap)); } + // add new + carItem.add(new JSONObject(ugmap)); + JSONObject outjson = new JSONObject(); - outjson.put("user_isli",userIsli); - outjson.put("data",carItem); + outjson.put("user_isli", userIsli); + outjson.put("data", carItem); + RedisUtil.set(carkey, outjson.toJSONString()); return outjson; } }