订单系统实现

订单系统实现

1.1 系统架构

1.2 订单表结构

订单表:

 

 

订单商品表:

 

 

物流表:

 

 

1.3 接口

参见:淘淘商城-订单系统接口.docx

 

1.4 创建订单系统taotao-order

 

 

系统配置参考taotao-sso系统。

 

1.5 实现创建订单接口

1.5.1 service

 

 
  1. @Service

  2. public class OrderServiceImpl implements OrderService {

  3.  
  4. @Autowired

  5. private TbOrderMapper orderMapper;

  6. @Autowired

  7. private TbOrderItemMapper orderItemMapper;

  8. @Autowired

  9. private TbOrderShippingMapper orderShippingMapper;

  10. //redis中的订单key

  11. @Value("${ORDER_ID_KEY}")

  12. private String ORDER_ID_KEY;

  13. @Value("${ORDER_BEGIN_ID}")

  14. private Long ORDER_BEGIN_ID;

  15. @Autowired

  16. private JedisCluster jedisCluster;

  17. @Override

  18. public TaotaoResult createOrder(TbOrder order, List<TbOrderItem> itemList, TbOrderShipping orderShipping) {

  19. //订单表

  20. //生成订单号

  21. String orderIdStr = jedisCluster.get(ORDER_ID_KEY);

  22. Long orderId = null;

  23. if (StringUtils.isBlank(orderIdStr)) {

  24. //如果redis中没有订单号使用初始订单号初始化

  25. jedisCluster.set(ORDER_ID_KEY, ORDER_BEGIN_ID.toString());

  26. orderId = ORDER_BEGIN_ID;

  27. } else {

  28. //生成订单号

  29. orderId = jedisCluster.incr(ORDER_ID_KEY);

  30. }

  31. //设置订单号

  32. order.setOrderId(orderId.toString());

  33. Date date = new Date();

  34. //订单创建时间

  35. order.setCreateTime(date);

  36. //订单更新时间

  37. order.setUpdateTime(date);

  38. //插入订单表

  39. orderMapper.insert(order);

  40. //插入订单商品表

  41. for (TbOrderItem tbOrderItem : itemList) {

  42. //取订单商品id

  43. Long orderItemId = jedisCluster.incr("ORDER_ITEM_ID");

  44. tbOrderItem.setId(orderItemId.toString());

  45. tbOrderItem.setOrderId(orderId.toString());

  46. //添加到订单商品表

  47. orderItemMapper.insert(tbOrderItem);

  48. }

  49. //插入物流表

  50. orderShipping.setOrderId(orderId.toString());

  51. orderShipping.setCreated(date);

  52. orderShipping.setUpdated(date);

  53. orderShippingMapper.insert(orderShipping);

  54. return TaotaoResult.ok(orderId.toString());

  55. }

  56.  
  57. }



1.5.2 Controller 

1.5.2.1 Pojo

 

 
  1. public class Order extends TbOrder{

  2.  
  3. private List<TbOrderItem> orderItems;

  4. private TbOrderShipping orderShipping;

  5. }


 

1.5.2.2 controller

 

 
  1. @Controller

  2. @RequestMapping("/order")

  3. public class OrderController {

  4.  
  5. @Autowired

  6. private OrderService orderService;

  7. @RequestMapping(value = "/create", method=RequestMethod.POST)

  8. @ResponseBody

  9. public TaotaoResult createOrder(@RequestBody Order order) {

  10. TaotaoResult result = null;

  11. try {

  12. result = orderService.createOrder(order, order.getOrderItems(), order.getOrderShipping());

  13. } catch (Exception e) {

  14. e.printStackTrace();

  15. return TaotaoResult.build(500, ExceptionUtil.getStackTrace(e));

  16. }

  17. return result;

  18. }

  19. }

 


1.6 其他接口 

....

 

前端系统实现下单功能

2.1 下单流程

2.2 订单结算页面

 

2.2.1 Controller

@Controller

@RequestMapping("/order")

public class OrderController {

 

@Autowired

private OrderService orderService;

@Autowired

private CartService cartService;

 

 

/**

 * 显示订单确认画面

 * <p>Title: showOrderCart</p>

 * <p>Description: </p>

 * @param request

 * @param model

 * @return

 */

@RequestMapping("/order-cart")

public String showOrderCart(HttpServletRequest request, TbUser user, Model model) {

//根据用户信息,取出用户的收货地址列表

//本项目中使用静态数据模拟。。。。

 

//从cookie中把商品列表取出来

List<Item> itemsList = cartService.getCartItemsList(request);

model.addAttribute("cartList", itemsList);

return "order-cart";

}

}

 

2.3 提交订单处理

2.3.1 创建订单Service

 

 
  1. @Srvice

  2. public class OrderServiceImpl implements OrderService {

  3.  
  4. @Value("${ORDER_BASE_URL}")

  5. private String ORDER_BASE_URL;

  6. @Value("${ORDER_CREATE_URL}")

  7. private String ORDER_CREATE_URL;

  8. @Override

  9. public TaotaoResult createService(Order order) {

  10. //把pojo转换成json数据

  11. String json = JsonUtils.objectToJson(order);

  12. //调用订单系统服务提交订单

  13. String resultStr = HttpClientUtil.doPostJson(ORDER_BASE_URL + ORDER_CREATE_URL, json);

  14. //转换成java对象

  15. TaotaoResult taotaoResult = TaotaoResult.format(resultStr);

  16. return taotaoResult;

  17. }

  18.  
  19. }



2.3.2 Controller 

 
  1. @RequestMapping(value="/create", method=RequestMethod.POST)

  2. public String createOrder(HttpServletRequest request, Order order, Model model) {

  3. //从request中取用户信息

  4. TbUser user = (TbUser)request.getAttribute("user");

  5. //把用户信息补充到order对象中

  6. order.setUserId(user.getId());

  7. order.setBuyerNick(user.getUsername());

  8. //提交订单

  9. TaotaoResult result = null;

  10. try {

  11. result = orderService.createService(order);

  12. //订单创建成功

  13. if(result.getStatus() == 200) {

  14. model.addAttribute("orderId", result.getData());

  15. model.addAttribute("payment", order.getPayment());

  16. //两天后送达

  17. DateTime dateTime = new DateTime();

  18. dateTime = dateTime.plusDays(2);

  19. model.addAttribute("date", dateTime.toString("yyyy-MM-dd"));

  20. return "success";

  21. }

  22. } catch (Exception e) {

  23. e.printStackTrace();

  24. result = TaotaoResult.build(500, ExceptionUtil.getStackTrace(e));

  25. }

  26. //订单创建失败

  27. model.addAttribute("message", result.getMsg());

  28. return "error/exception";

  29. }

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UIBot订单管理系统是一款高效、智能的订单管理系统,为企业的订单管理提供了全方位的解决方案。该系统利用先进的UIBot技术,实现了自动化处理订单流程的能力,大大降低企业的人力和时间成本,减少各种人为错误和失误,提高订单处理效率和准确率。 UIBot订单管理系统具有以下特点: 1. 订单处理自动化:通过UIBot的技术支持,该系统可以自动处理企业的订单流程,包括接受订单、处理订单、生成发货单、完成订单等。这不仅大大减少了人工操作的时间和成本,而且提高了订单处理的效率和准确度。 2. 全面的订单管理功能:该系统提供了订单的查询、修改、删除、统计等全面的管理功能,使企业能够清晰地了解订单的状态和处理情况,并及时地做出调整和决策。 3. 可定制的订单处理策略:企业可以根据自身的需求制定适合自己的订单处理策略,包括订单查询、审批、协同等,以最大程度地满足订单流程的要求,并提升订单处理效率。 4. 安全和可靠:UIBot订单管理系统采用了先进的安全技术,保障了数据的安全和稳定性,使企业的订单信息得到了最大程度的保护。 总之,UIBot订单管理系统是一款高效、智能、安全可靠的订单管理系统,为企业的订单处理带来了全新的理念和方式,是企业提升竞争力、降低成本的理想选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

old_Rain_321

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值