美文网首页乐高玩具
乐高项目分析

乐高项目分析

作者: wanggs | 来源:发表于2017-11-13 22:18 被阅读131次

取消订单

首先根据订单id找到订单,第一判断是否有该订单,或者订单与本人对不上号,根据订单获取订单槽位置编码,重新入库,然后更新订单状态

取消订单api

    /**
     * 取消订单
     * @param param
     * @return
     * @author tanghc
     */
    @RequestMapping(value="cancelOrder.do",method=RequestMethod.POST)
    public Ret cancelOrder(@RequestBody OrderParam param) {
        User user = UserContext.getLoginUser();
        long orderId = param.getOrderId();
        
        orderService.cancelOrder(user, orderId);
        
        return Rets.success();
    }
    
    /**
     * 取消订单
     * @param user
     * @param orderId
     * @author tanghc
     */
    @Transactional
    public void cancelOrder(User user,long orderId) {
        Orders order = ordersDao.get(orderId);
        if(order == null) {
            throw new CommonException(MsgTypes.NULL_OBJECT);
        }
        if(!user.getId().equals(order.getUserId())) {
            throw new CommonException(MsgTypes.ERROR_OPT);
        }
        
        String goodsCode = order.getGoodsCode();
        // 重新入库
        this.putGoodsBoxInStore(goodsCode);
        // 修改订单状态
        order.setStatus(OrdersState.State.cancel.getStatus());
        order.setUpdateTime(new Date());
        // 跟新
        ordersDao.updateNotNull(order);
    }
    
    // 重新入库
    private void putGoodsBoxInStore(String goodsCode) {
        GoodsPosition goodsPos = goodsPositionDao.getByProperty("goodsCode", goodsCode);
        goodsPos.setState(GoodsState.State.inStore.getState());
        goodsPositionDao.updateNotNull(goodsPos);
    }

修改收货地址

业务逻辑: 根据订单号找到该订单,判断该用户是否有本订单,如果有,根据用户根号的地址id,获取地址详情,然后设置到订单中,最后跟新订单

    /**
     * 更新地址
     * @param orderParam
     * @return
     * @author tanghc
     */
    @RequestMapping(value="updateOrderUserInfo.do",method=RequestMethod.POST)
    public Ret updateOrderUserInfo(@RequestBody OrderParam orderParam) {
        Orders orders = ordersDao.get(orderParam.getOrderId());
        // 检查订单
        Checks.checkOrder(orders);
        orderService.updateOrderUserInfo(orders.getId(),orderParam.getAddressId());
        return Rets.success();
    }

检查订单

package app.front;

import app.base.entity.legouser.Orders;
import app.base.entity.legouser.User;
import app.base.utils.CheckUtils;

/**
 * @author tanghc
 *
 */
public class Checks {
    /**
     * 检查订单
     * @param orders
     * @param user
     * @author tanghc
     */
    public static void checkOrder(Orders orders) {
        User user = UserContext.getLoginUser();
        CheckUtils.checkOrder(orders, user);
    }
}


检查订单公交类

package app.base.utils;

import app.base.entity.legouser.Orders;
import app.base.entity.legouser.User;
import component.common.exception.CommonException;
import component.common.msg.MsgTypes;

/**
 * @author tanghc
 *
 */
public class CheckUtils {

    /**
     * 检查订单
     * @param orders
     * @param user
     * @author tanghc
     */
    public static void checkOrder(Orders orders,User user) {
        if(orders == null || user == null) {
            throw new NullPointerException();
        }
        
        if(!orders.getUserId().equals(user.getId())) {
            throw new CommonException(MsgTypes.ERROR_OPT);
        }
        
    }
}

更新订单

    /**
     * 更新订单地址信息
     * @param orderId
     * @author tanghc
     */
    public void updateOrderUserInfo(long orderId,long addressId) {
        Orders orders = ordersDao.get(orderId);
        UserAddress userAddress = userAddressDao.get(addressId);
        if(userAddress != null) {
            orders.setMobile(userAddress.getPhone());
            orders.setAddress(UserAddressService.buildAddressInfo(userAddress));
            orders.setRealName(userAddress.getRealname());
            ordersDao.updateNotNull(orders);
        }
    }

相关文章

  • 乐高项目分析

    取消订单 首先根据订单id找到订单,第一判断是否有该订单,或者订单与本人对不上号,根据订单获取订单槽位置编码,重新...

  • 乐高项目分析(1)

    购买历史 根据userId获取所有订单,遍历订单使用键值对筛选必要字段 代码片段 心愿列表详情 分析: 设置分页,...

  • 乐高——认识乐高

    目前在职乐高教师一枚,给大家说说自己对乐高的理解,多多交流。 近几年相信你如果家里有娃肯定会关注到乐高,大多数人买...

  • 没什么对错,适合最重要

    乐高是积木,但是不是积木都是乐高。 乐高可以搭建,但是可以搭建的不都是乐高。 乐高锻炼孩子的动手能力,编程锻炼孩子...

  • 乐高与乐高班

    虽然还在玩大块积木的基础版乐高,4岁的小朋友已经可以通过乐高这个工具充分的去展现自己脑海中的图景了,偶尔哪些天我下...

  • 孩子的教育要趁早!

    在欧洲,年轻的父母对乐高熟悉,北欧,典型的乐高用户,拥有8盒乐高玩具。乐高玩具进口,高税,消费人群多为富裕人士,布...

  • 乐高

    我是日记星球393号星宝宝,我正在参加日记星球第四期蜕变之旅,这是我的第19篇原创日记。 今天又去面试了一家教小朋...

  • 乐高

    这些就是近几周宅的理由 希望未来能把建筑系列集齐

  • 乐高

    今天,我用了,大概一百来个链接吧,并且了一条幻影忍者劳埃德的神龙。 开始吧,刷起来很糗的,因为一开始我刚开始拼的时...

  • 乐高

    前几天,爸爸妈妈一直带我去上各种编程和乐高的体验课,共有四个,他们分别叫智慧喵,童程章童美,编程猫,还有一个店,但...

网友评论

    本文标题:乐高项目分析

    本文链接:https://www.haomeiwen.com/subject/reptvxtx.html