你好,我是田哥
电商项目一直都是大家非常关心的项目,但真的要搞一个完整的电商项目真的没那么简单。但是话又说回来,再大的项目也是有一堆功能堆积起来的。
电商项目涉及到的功能点就非常之多,比如:注册、登录、查询商品列表、查看商品详情、加入购物车、立即购买、下单、支付、积分增加、提醒商家发货、查看物流、商品评论、查看大家的评论、根据你的喜好推送相关商品、积分兑换商品、积分兑换优惠券等等。
今天和你一起聊聊一个功能:提醒商家发货
整体流程和涉及到的服务。
用户端实现核心部分代码:
@Override
public String remind(String orderNo, Long userId, String userName) {
MallOrder mallOrder = mallOrderMapper.selectByOrderNo(orderNo);
if (mallOrder != null) {
//验证是否是当前userId下的订单,否则报错
if (!userId.equals(mallOrder.getUserId())) {
return ServiceResultEnum.NO_PERMISSION_ERROR.getResult();
}
OrderRemind orderRemind = orderRemindMapper.selectByUserId(userId, mallOrder.getOrderId());
if(orderRemind!=null){
return ServiceResultEnum.ORDER_REMINDED.getResult();
}
orderRemind = new OrderRemind();
orderRemind.setOrderId(mallOrder.getOrderId());
orderRemind.setUserId(userId);
orderRemind.setUserName(userName);
orderRemind.setCreateTime(new Date());
orderRemind.setUpdateTime(new Date());
int flag = orderRemindMapper.insert(orderRemind);
if (flag > 0) {
//TODO: 给商家发站内信,商家登录后会给商家发送一条信息提示
return ServiceResultEnum.SUCCESS.getResult();
}
// TODO: 这里也可以改成消息队列,异步落库
}
return ServiceResultEnum.OPERATE_ERROR.getResult();
}
1、先校验订单是否存在
2、校验是否是当前用户的订单
3、校验是否已经提醒过商家
4、落库(可以直接落库,也可以使用消息队列异步落库)
5、给商家发站内信
商家端的实现:
商家收到站内信提示后,或商家进入用户提示栏,查看用户的提醒,然后去处理用户的提示,对该订单进行发货等处理。
于是一个电商项目的订单提醒功能就这么轻松的搞定了(todo部分代码大家可以自己去实现,我也会实现的,可以随时找我聊聊你是怎么实现的)。
电商项目正常流程都是能走通了,现在在不断完善代码和文档: