From 38d9920af60657cdfacfe37fedef411e62e46b6c Mon Sep 17 00:00:00 2001 From: xyiege Date: Fri, 28 Oct 2022 15:17:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=B0=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../szwh/controller/api/GoodsController.java | 30 ++++---- .../cn/chjyj/szwh/service/GoodsService.java | 9 +++ .../szwh/service/impl/GoodsServiceImpl.java | 75 ++++++++++++++++++- 3 files changed, 96 insertions(+), 18 deletions(-) diff --git a/src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java b/src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java index a7cb85d..e6ca599 100644 --- a/src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java +++ b/src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java @@ -34,22 +34,24 @@ public class GoodsController extends BaseController { /** * 添加到购物车 - * only support POST method - * @param userIsli - * @param goodsIsli - * @param useYears * @return */ - @RequestMapping(value = "/addShoppingCar",method = RequestMethod.POST) - public JSONObject addShoppingCar(@RequestParam("user_isli") String userIsli, - @RequestParam("goods_isli") String goodsIsli, - @RequestParam("use_years") String useYears){ - -// $goodsService = new GoodsService(); -// $this->apilog->info("添加购物车", Request()->param()); -// $goodsService->addShoppingCar($user_isli, $goods_isli, $use_years); - - jsonObject.put("msg","成功"); + @RequestMapping(value = "/addShoppingCar") + public JSONObject addShoppingCar(HttpServletRequest request){ + long start=System.currentTimeMillis(); + String userIsli = request.getParameter("user_isli"); + String goodsIsli = request.getParameter("goods_isli"); + String userYears= request.getParameter("user_years"); + Integer uyears = StringUtils.isEmpty(userYears)?1:Integer.valueOf(userYears); + // do add + Map retmap =goodsService.addShopCar(userIsli,goodsIsli,uyears); + long end = System.currentTimeMillis(); + long howUse=(end-start)/1000l; + // get msg + jsonObject.put("code",retmap.get("code")); + jsonObject.put("msg",retmap.get("msg")); + jsonObject.put("data",retmap); + jsonObject.put("useTime",howUse); return jsonObject; } diff --git a/src/main/java/cn/chjyj/szwh/service/GoodsService.java b/src/main/java/cn/chjyj/szwh/service/GoodsService.java index 873e0ee..74b26c8 100644 --- a/src/main/java/cn/chjyj/szwh/service/GoodsService.java +++ b/src/main/java/cn/chjyj/szwh/service/GoodsService.java @@ -112,4 +112,13 @@ public interface GoodsService { * @return */ int changeGoodsStatus(int status,int id); + + /** + * 添加购物车 + * @param userIsli + * @param goodsIsli + * @param userYears + * @return + */ + Map addShopCar(String userIsli,String goodsIsli,Integer userYears); } 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 31b3b04..a256e37 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java @@ -1,9 +1,6 @@ package cn.chjyj.szwh.service.impl; -import cn.chjyj.szwh.bean.Goods; -import cn.chjyj.szwh.bean.GoodsDetail; -import cn.chjyj.szwh.bean.GoodsSource; -import cn.chjyj.szwh.bean.OperationLog; +import cn.chjyj.szwh.bean.*; import cn.chjyj.szwh.constant.ChConstant; import cn.chjyj.szwh.exception.ChException; import cn.chjyj.szwh.mapper.*; @@ -11,6 +8,7 @@ import cn.chjyj.szwh.service.GoodsService; import cn.chjyj.szwh.utils.*; import cn.chjyj.szwh.vo.GoodsDetailVo; import cn.chjyj.szwh.vo.GoodsListVo; +import cn.chjyj.szwh.vo.OrderDetailVo; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import org.apache.commons.lang3.StringUtils; @@ -41,6 +39,10 @@ public class GoodsServiceImpl implements GoodsService { // 节假日mapper @Autowired private FestivalsMapper festivalsMapper; + @Autowired + private UserMapper userMapper; + @Autowired + private OrderMapper orderMapper; @Override public List getGoodsList(int page) { @@ -611,6 +613,71 @@ public class GoodsServiceImpl implements GoodsService { return goodsMapper.updateGoods(gmap,gid); } + @Override + public Map addShopCar(String userIsli, String goodsIsli, Integer userYears) { + Map retmap =new HashMap<>(); + User user = userMapper.getUserByIsli(userIsli); + // get current goods + Goods goods = goodsMapper.getGoodsFuelByIsLi(goodsIsli); + if(goods==null){ + retmap.put("code",400); + retmap.put("msg","没有该标的"); + } + if(goods.getGoodsStatus()!=1){ + retmap.put("code",400); + retmap.put("msg","该标的现不在上架中"); + } + if(goods.getContractStatus()!=1){ + retmap.put("code",400); + retmap.put("msg","标的未申请合约关联,不可购买"); + } + if(goods.getUserIslicode() == userIsli){ + retmap.put("code",400); + retmap.put("msg","您是标的的授权方,不可添加"); + } + // + Map ordmap = new HashMap(); + ordmap.put("ostatus_not",5); + OrderDetailVo orderDetailVo= orderMapper.getOrderDetailVOByMap(ordmap); + if(orderDetailVo!=null){ + retmap.put("code",400); + retmap.put("msg","该标的已有订单,添加购物车失败"); + } + // goods detail + GoodsDetail goodsDetail = goodsDetailMapper.getGoodsDetailBygid(goods.getGoodsDetailId()); + if(goodsDetail.getStock()<=0 && goodsDetail.getGoodsEntrust() ==1){ + retmap.put("code",400); + retmap.put("msg","该标的已有订单,添加购物车失败"); + } + Date now=new Date(); + if(goodsDetail.getContractualPeriod()==3){ + if(goods.getContractualStartTime().compareTo(now)>0 + || goods.getContractualtimeEndTime().compareTo(now)<0 + ){ + retmap.put("code",400); + retmap.put("msg","标的委托已结束"); + } + } + //shop car infomation + String shopRedisKey="car_"+userIsli; + JSONObject carjson =new JSONObject(); + //object + Object shopCar = RedisUtil.get(shopRedisKey); + if(shopCar!=null){ + carjson =JSONObject.parseObject(shopCar.toString()); + String tmpGoodsIsli= carjson.getString("goods_islicode"); + if(goodsIsli.equals(tmpGoodsIsli)){ + retmap.put("code",400); + retmap.put("msg","该标的已添加到购物车"); + } + }else{ + carjson.put("goods_islicode",goodsIsli); + carjson.put("use_years",userYears); + RedisUtil.set(shopRedisKey,carjson); + } + return null; + } + /** * query rank list *