SpringCloud+RabbitMQ微服务订单系统

1.下单的时候,调用订单微服务系统的下单方法,首先,先给订单实体赋值,然后在向MQ发送消息,接收到MQ返回来的消息后,保存订单,在生成微信或支付宝的签名字符串

2.下单(购买)接口

@PostMapping("/payGoods")
    public Result payGoods(@RequestBody OrderSGoods orderSGoods, HttpServletRequest request) throws ParserConfigurationException, IOException, SAXException {
        //得到用户id
        Result result = jwtUtil.getUserId() ;
        if(!result.isFlag()){
            return result ;
        }
        //用户id
        String userId = (String)result.getData() ;
        System.out.println(orderSGoods);
        //判断参数是否为空
        if(orderSGoods==null){
            return ResultUtil.error(StatusCode.ERROR,"对象不能为空") ;
        }
        if(StringUtils.isEmpty(orderSGoods.getArea())|| StringUtils.isEmpty(orderSGoods.getCity())
                || StringUtils.isEmpty(orderSGoods.getDetail())|| StringUtils.isEmpty(orderSGoods.getMobile())
                || StringUtils.isEmpty(orderSGoods.getProvince())|| StringUtils.isEmpty(orderSGoods.getStreet())
                || StringUtils.isEmpty(orderSGoods.getUserName())||orderSGoods.getOrderShopModels().size()<1
                ||orderSGoods.getTotalNum()<1||orderSGoods.getTotalPrice()<1|| StringUtils.isEmpty(orderSGoods.getChannel())){
            return ResultUtil.error(StatusCode.ERROR,"参数不能为空") ;
        }
        //TODO 判断库存是否充足,从缓存中得库存

        /****************赋值****************/
        Date date = new Date() ;
        //订单商家表
        List<OrderShopModel> orderShops = orderSGoods.getOrderShopModels() ;
        //订单个数,前期只有一个订单
        int len = orderShops.size() ;
        List<OrderSave> orderSaves = new ArrayList<>();
        //TODO 订单总金额
        Double money = orderSGoods.getTotalPrice(); ;
        //订单编号
        String orderNo = Long.toString(idWorker.nextId())+"0";
        for(int i =0;i<len;i++){
            //订单id
            String id = Long.toString(idWorker.nextId());
            //订单表
            Order order = new Order() ;
            order.setState(OrderPayConstant.STATE_WAIT_PAY);
            order.setUserId(userId);
            order.setStateDes("待付款");
            order.setGenTime(date);
            order.setId(id);
            order.setTotalNum(orderSGoods.getTotalNum());
            order.setTotalPrice(orderSGoods.getTotalPrice());
            order.setOrderNo(orderNo);
            order.setUserName(orderSGoods.getUserName());
            order.setOrderDesc("购买商品");
            order.setChannel(orderSGoods.getChannel());
            order.setType(OrderPayConstant.TYPE_ORDER_BUY);
            //订单商家表
            OrderShopModel orderShopModel = orderShops.get(0) ;
            OrderShop orderShop = new OrderShop();
            orderShop.setGenTime(date);
            orderShop.setId(Long.toString(idWorker.nextId()));
            orderShop.setOrderId(id);
            orderShop.setPostFee(orderShopModel.getPostFee());
            if(StringUtils.isNotEmpty(orderShopModel.getRemark())){
                orderShop.setRemark(orderShopModel.getRemark());
       
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值