订单

1.前台controller

@Controller

@RequestMapping("/order")

public class OrderController {

    @Autowired

    private CartService cartService;

    //http://www.jt.com/order/create.html

    @RequestMapping("/create")

    public String create(Model model){

        Long userId = UserThreadLocal.get().getId();

        //获取用户的购物信息

        List<Cart> carts = cartService.findCartByUserId(userId);

        model.addAttribute("carts", carts);

        return "order-cart";

    }

}

 

 

一、订单入库:

1.前台controller

@RequestMapping("/submit")

@ResponseBody

public SysResult saveOrder(Order order){

        try {

            //获取userId

            Long userId = UserThreadLocal.get().getId();

            order.setUserId(userId);

            String orderId = orderService.saveOrder(order);           

            return SysResult.oK(orderId);

        } catch (Exception e) {

            e.printStackTrace();

        }

        return SysResult.build(201,"订单入库失败");

}

 

2.前台service

@Service

public class OrderServiceImpl implements OrderService {

    @Autowired

    private HttpClientService httpClient;

    private static ObjectMapper objectMapper= new ObjectMapper();

    @Override

    public String saveOrder(Order order) {

        String orderId = null;

        try {

            String orderJSON = objectMapper.writeValueAsString(order);

            String uri = "http://order.jt.com/order/create";

            Map<String,String> params = new HashMap<String, String>();

            params.put("orderJSON", orderJSON);

            //获取后台返回值json数据

            String jsonData = httpClient.doPost(uri,params);

            SysResult sysResult = objectMapper.readValue(jsonData, SysResult.class);

            if(sysResult.getStatus() !=200){

                //后台操作有误

                throw new RuntimeException();

            }

            orderId = (String) sysResult.getData();

        } catch (Exception e) {

            e.printStackTrace();

            throw new RuntimeException();

        }

        return orderId;

    }

}

3.后台controller

@Controller

@RequestMapping("/order")

public class OrderController {

    @Autowired

    private OrderService orderService;

    private static ObjectMapper objectMapper = new ObjectMapper();

    @RequestMapping("/create")

    @ResponseBody

    public SysResult saveOrder(String orderJSON){

        try {

            Order order = objectMapper.readValue(orderJSON, Order.class);

            String orderId = orderService.saveOrder(order);

            return SysResult.oK(orderId);

        } catch (Exception e) {

            e.printStackTrace();

         }        

        return SysResult.build(201,"订单添加失败");   

    }

}

 

4.后台service

@Service

public class OrderServiceImpl implements OrderService {

    @Autowired

    private OrderMapper orderMapper;

    @Autowired

    private OrderItemMapper orderItemMapper;

    @Autowired

    private OrderShippingMapper orderShippingMapper;

    @Override

    public String saveOrder(Order order) {

        String orderId = order.getUserId()+""+System.currentTimeMillis();

        Date date = new Date();

        //1.入库order

        order.setOrderId(orderId);

        order.setStatus(1); //表示未付款

        order.setCreated(date);

        order.setUpdated(date);

        orderMapper.insert(order);

        System.out.println("订单表入库成功!!!");

        //入库订单物流信息

        OrderShipping shipping = order.getOrderShipping();

        shipping.setOrderId(orderId);

        shipping.setCreated(date);

        shipping.setUpdated(date);

        orderShippingMapper.insert(shipping);

        System.out.println("订单物流入库成功!!!");

        //订单商品入库 insert into 表名(....字段名) value(....),(.....),(.....)

        List<OrderItem> orderItems = order.getOrderItems();

        //orderItemMapper.saveItems(orderItems,orderId);

        for (OrderItem orderItem : orderItems) {

            orderItem.setOrderId(orderId);

            orderItem.setCreated(date);

            orderItem.setUpdated(date);

            orderItemMapper.insert(orderItem);

        }

        System.out.println("订单入库全部成功!!");

        return orderId;

    }

}

 

mybatis实现批量入库

<insert>

insert into

tb_order_item(item_id,order_id)

values

<foreach collection="orderItems" open="(" close=")" separator="," item="item">

#{item.item_id},#{order_id}

</foreach>

</insert>

 

前台js

function submit_Order() {

        $("#submit_message").hide();

        jQuery.ajax( {

            type : "POST",

            dataType : "json",

            url : "/service/order/submit",

            data : $("#orderForm").serialize(),

            cache : false,

            success : function(result) {

                if(result.status == 200){

                    location.href = "/order/success.html?id="+result.data;

                }else{

                    $("#submit_message").html("订单提交失败,请稍后重试...").show();

                }

            },

            error : function(error) {

                $("#submit_message").html("请不要频繁点击, 请稍后重试...").show();

            }

        });

}

 

二、订单查询

1.前台controller

//根据orderId查询数据库

@RequestMapping("/success")

public String findOrderById(String id,Model model){

        Order order = orderService.findOrderById(id);

        model.addAttribute("order", order);

        return "success";

}

 

2.前台service

@Override

public Order findOrderById(String id) {

        String uri = "http://order.jt.com/order/query/"+id;

        String orderJSON = httpClient.doGet(uri);

        Order order = null;

        try {

            order = objectMapper.readValue(orderJSON, Order.class);

        } catch (Exception e) {

            e.printStackTrace();

        }

        return order;

}

 

3.后台controller

@RequestMapping("/query/{orderId}")

@ResponseBody

public Order findOrderById(@PathVariable String orderId){

        return orderService.findOrderById(orderId);

}

 

4.后台service

@Override

public Order findOrderById(String orderId) {

        Order order = orderMapper.selectByPrimaryKey(orderId);

        //查询订单的物流信息

        OrderShipping shipping = orderShippingMapper.selectByPrimaryKey(orderId);

        //查询orderItem数据

        OrderItem orderItem = new OrderItem();

        orderItem.setOrderId(orderId);

        List<OrderItem> orderItems = orderItemMapper.select(orderItem);

        order.setOrderShipping(shipping);

        order.setOrderItems(orderItems);

        return order;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值