04秒杀系统业务之二 商品服务

架构设计(基础的组件)

涉及到的数据表

在这里插入图片描述

涉及到的模型(抽象,根据各层的需要)

在这里插入图片描述
在这里插入图片描述

根据各层不同的需求需要进行POJO的各种封装

获取商品的列表

在这里插入图片描述

前端请求的信息

// 定义全局商品数组信息
    var g_itemList = [];

    $(document).ready(function () {
        $.ajax({
            type: "GET",
            url: "http://localhost:8080/item/getItemList",
            contentType: "application/x-www-form-urlencoded",
            xhrFields: {
                withCredentials: true,
            },
            success: function (data) {
                if (data.status == "success") {
                    //获取后端传过来的数据
                    g_itemList = data.data;
                    //追加数据,渲染页面
                    reloadDom();
                } else {
                    alert("获取商品信息失败,原因为" + data.data.errMsg);
                }
            },
            error: function (data) {
                alert("获取商品信息失败,原因为" + data.responseText);
            }
        });
    });

    <!--将后端传给的数据在前端追加进来-->
    function reloadDom() {
        for (var i = 0; i < g_itemList.length; i++) {
            var itemVO = g_itemList[i];
            var dom =
                "<tr data-id='" + itemVO.id + "' id='itemDetail" + itemVO.id + "'> " +
                "<td>" + itemVO.title + "</td> <td><img  src=" + itemVO.imgUrl + " /></td> " +
                "<td>" + itemVO.description + "</td>" +
                "<td>" + itemVO.price + "</td>" +
                "<td>" + itemVO.stock + "</td>" +
                "<td>" + itemVO.sales + "</td>" +
                "</tr>";

            $("#container").append($(dom));

            //点击一行任意的位置 跳转到商品详情页
            $("#itemDetail" + itemVO.id).on("click", function (e) {
                window.location.href = "getitem.html?id=" + $(this).data("id");
            });
        }
    }


后端


  //商品列表页浏览
    @RequestMapping(value="/getItemList",method = {RequestMethod.GET},consumes = {CONTENT_TYPE_FORMED})
    @ResponseBody
    public CommonReturnType list(){

//获取前端的列表
        List<ItemModel> listItemModels = itemService.listItem();


        if(listItemModels ==null){
            return null;
        }
        List<ItemVo> listItemVos  = listItemModels .stream().map(
                itemModel-> {
                   return convertVOFromModel(itemModel);
                }


        ).collect(Collectors.toList());


        return CommonReturnType.create(listItemVos);

    }

在这里插入图片描述



    "status":"success",//状态
    "data":[//数据
        {
            "id":4,
            "title":"剑指Offer树部分解析",
            "price":123,
            "stock":12,
            "description":"测试",
            "sales":0,
            "imgUrl":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590575581472&di=b9767ddbccb08a760b3a913d09a72a21&imgtype=0&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3175508956%2C2902264390%26fm%3D214%26gp%3D0.jpg",
            "promoPrice":null,
            "startDate":null,
            "promoId":null,
            "promoStatus":0
        },
        {
            "id":5,
            "title":"111",
            "price":123,
            "stock":122,
            "description":"测试",
            "sales":0,
            "imgUrl":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590575581472&di=b9767ddbccb08a760b3a913d09a72a21&imgtype=0&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3175508956%2C2902264390%26fm%3D214%26gp%3D0.jpg",
            "promoPrice":null,
            "startDate":null,
            "promoId":null,
            "promoStatus":0
        },
        {
            "id":7,
            "title":"剑指Offer树部分解析",
            "price":12,
            "stock":3332,
            "description":"testtt",
            "sales":0,
            "imgUrl":"https://wenhui.whb.cn/u/cms/www/202005/27152911unyv.jpg",
            "promoPrice":null,
            "startDate":null,
            "promoId":null,
            "promoStatus":0
        },
        {
            "id":8,
            "title":"222222222222",
            "price":12,
            "stock":3333,
            "description":"testtt",
            "sales":0,
            "imgUrl":"https://wenhui.whb.cn/u/cms/www/202005/27152911unyv.jpg",
            "promoPrice":null,
            "startDate":null,
            "promoId":null,
            "promoStatus":0
        },
        {
            "id":3,
            "title":"剑指Offer树部分解析",
            "price":123,
            "stock":3,
            "description":"测试",
            "sales":1,
            "imgUrl":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590575581472&di=b9767ddbccb08a760b3a913d09a72a21&imgtype=0&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3175508956%2C2902264390%26fm%3D214%26gp%3D0.jpg",
            "promoPrice":null,
            "startDate":null,
            "promoId":null,
            "promoStatus":0
        },
        {
            "id":6,
            "title":"剑指Offer树部分解析",
            "price":22,
            "stock":219,
            "description":"test",
            "sales":2,
            "imgUrl":"https://wenhui.whb.cn/u/cms/www/202005/27152911unyv.jpg",
            "promoPrice":null,
            "startDate":null,
            "promoId":null,
            "promoStatus":0
        },
        {
            "id":1,
            "title":"iphone12",
            "price":21123,
            "stock":103,
            "description":"不错",
            "sales":141,
            "imgUrl":"https://i1.mifile.cn/a1/pms_1550642182.7527088!220x220.jpg",
            "promoPrice":null,
            "startDate":null,
            "promoId":null,
            "promoStatus":0
        },
        {
            "id":2,
            "title":"iphone13",
            "price":12321,
            "stock":90,
            "description":"nice",
            "sales":142,
            "imgUrl":"https://i1.mifile.cn/a1/pms_1550642182.7527088!220x220.jpg",
            "promoPrice":null,
            "startDate":null,
            "promoId":null,
            "promoStatus":0
        }
    ]
}

获取商品的详情页

在这里插入图片描述


   //商品详情页浏览
    @RequestMapping(value="/getItem",method = {RequestMethod.GET},consumes = {CONTENT_TYPE_FORMED})
    @ResponseBody
    public CommonReturnType getItem(@RequestParam(name="id")Integer id){

        ItemModel itemModel = itemService.getItemById(id);

        if(itemModel==null){
            return null;
        }

        ItemVo itemVo = convertVOFromModel(itemModel);


        return CommonReturnType.create(itemVo);//返回给前端的数据itemVo

    }

@Override
    public ItemModel getItemById(Integer id) {
       ItemDO itemDO = itemDOMapper.selectByPrimaryKey(id);

       if(itemDO==null) return null;

       //操作获得库存数量
        ItemStockDO itemStockDO =  itemStockDOMapper.selectByItemId(itemDO.getId());

        //将dataobject转换为model
        ItemModel itemModel = convertModelFromDataObject(itemDO,itemStockDO);

        //获取活动商品信息id
        PromoModel promoModel = promoService.getPromoByItemId(id);

   

        return itemModel;
    }

返回给前端的数据


{
    "status":"success",
    "data":{
        "id":7,
        "title":"剑指Offer树部分解析",
        "price":12,
        "stock":3332,
        "description":"testtt",
        "sales":0,
        "imgUrl":"https://wenhui.whb.cn/u/cms/www/202005/27152911unyv.jpg",
        "promoPrice":null,
        "startDate":null,
        "promoId":null,
        "promoStatus":0
    }
}

渲染的页面

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值