基于SSM的手机商城平台的设计与实现(附源码获取链接)

技术栈:

  • 后端:SSM

  • 前端:VUE

功能模块:

  • 管理端(PC后台管理)

    1. 管理员管理(分为超级管理员和普通管理员)

    2. 手机商品信息管理

    3. 手机商品分类管理

    4. 营销活动管理(秒杀活动,团购活动)

    5. 手机标签管理

    6. 订单管理

    7. 数据统计(销量排行,营业额统计)

  • 用户端(PC页面)

    1. 用户登录注册

    2. 用户个人信息管理

    3. 商品列表,详情

    4. 商品购买

    5. 分类,标签筛选

    6. 秒杀,团购活动

    7. 购物车

    8. 订单管理

 

代码简介 

 @PostMapping("/save")
    public SimpleResponse save(@RequestBody Seckill seckill) throws Exception {
        seckill.setCreateTime(new Date());
        seckill.setStatus(0);
        seckill.setStock(seckill.getNum());
        Long seckillPhoneId = seckill.getPhoneId();
        Phone byId = phoneService.getById(seckillPhoneId);
        if (byId.getStock() <= seckill.getNum()) {
            throw new Exception("当前商品【" + byId.getName() + "】,库存不足,库存为【" + byId.getStock() + "】,请重新选择数量!");
        } else {
            byId.setStock(byId.getStock() - seckill.getNum());
            phoneService.updateById(byId);
        }
        seckillService.save(seckill);
        return SimpleResponse.success();
    }

    @PostMapping("/update")
    public SimpleResponse update(@RequestBody Seckill seckill) {
        seckillService.updateById(seckill);
        return SimpleResponse.success();
    }

    @PostMapping("/del")
    public SimpleResponse del(@RequestBody List<Long> ids) {
        return SimpleResponse.success(seckillService.removeByIds(ids));
    }

    @GetMapping("/all/phone")
    public SimpleResponse allPhone() {
        List<Phone> phoneList = phoneService.list(new Phone());
        List<BaseSelectEntity> list = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(phoneList)) {
            for (Phone phone : phoneList) {
                BaseSelectEntity baseSelectEntity = new BaseSelectEntity();
                baseSelectEntity.setKey(phone.getId());
                baseSelectEntity.setValue(phone.getName());
                list.add(baseSelectEntity);
            }
        }
        return SimpleResponse.success(list);
    }

    Object lock = new Object();

    @PostMapping("/add/order")
    @Transactional(rollbackFor = Exception.class)
    public SimpleResponse addOrder(@RequestBody Orders orders) throws Exception {
        synchronized (lock) {
            Long seckillId = orders.getSeckillId();
            // 判断用户是够参与过此活动
            Orders userOrder = new Orders();
            userOrder.setUserId(orders.getUserId());
            userOrder.setActiveId(seckillId);
            userOrder.setType(1);
            List<Orders> ordersList = ordersService.list(userOrder);
            if (CollectionUtil.isNotEmpty(ordersList)) {
                throw new Exception("您已参与过本次活动,不能重复参与!");
            }
            // 判断库存是否足够
            Seckill serviceById = seckillService.getById(seckillId);
            if (serviceById.getStock() < 1) {
                throw new Exception("库存不足!");
            }
            serviceById.setStock(serviceById.getStock() - 1);
            seckillService.updateById(serviceById);
            // 添加用户订单
            orders.setType(1);
            orders.setCreateTime(new Date());
            orders.setStatus(0);
            orders.setActiveId(seckillId);
            orders.setOrderNo(UUID.randomUUID().toString().substring(0, 8));
            Address address = new Address();
            address.setUserId(orders.getUserId());
            address.setType(0);
            List<Address> addresses = addressService.list(address);
            if (CollectionUtil.isNotEmpty(addresses)) {
                Address address1 = addresses.get(0);
                orders.setAddress(address1.getName() + "-" + address1.getTel() + "-" + address1.getAddressInfo());
            }
            ordersService.save(orders);
            // 添加订单详情
            OrderDetail detail = new OrderDetail();
            detail.setCreateTime(new Date());
            detail.setOrderId(orders.getId());
            detail.setNum(1);
            detail.setPhoneId(orders.getPhoneId());
            orderDetailService.save(detail);
        }
        return SimpleResponse.success();
    }

源码获取链接

点击下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值