• shop--9.商品--商品管理--修改(后端)


    商品列表展示

    dao层

    /**
         * 分页查询商品信息:可输入的条件有:商品名(模糊查询),商品状态,商品类别
         * @param productCondition
         * @param rowIndex 表示第几行开始取数据
         * @param pageSize 表示一共取多少行
         * @return
         */
        List<Product> queryProductList(@Param("productCondition")Product productCondition,
                                       @Param("rowIndex")int rowIndex,
                                       @Param("pageSize")int pageSize);
    
        /**
         * 返回按照上面的查询条件总共有多少条记录符合条件
         * @param productCondition
         * @return
         */
        int queryProductCount(@Param("productCondition")Product productCondition);
    

      

    <!--List<Product> queryProductList(@Param("productCondition")Product productCondition,
                                       @Param("rowIndex")int rowIndex,
                                       @Param("pageSize")int pageSize);-->
        <select id="queryProductList" resultMap="productMap">
            SELECT
            p.product_id,
            p.product_name,
            p.product_desc,
            p.img_addr,
            p.normal_price,
            p.promotion_price,
            p.priority,
            p.create_time,
            p.last_edit_time,
            p.status,
            p.product_category_id,
            p.shop_id,
            pm.product_img_id,
            pm.img_addr,
            pm.img_desc,
            pm.priority,
            pm.create_time,
            pm.product_id
            FROM
            product p
            LEFT JOIN
            product_img pm
            ON
            p.product_id=pm.product_id
            <where>
                <if test="productCondition.shop != null
                and productCondition.shop.shopId != null">
                    p.shop_id=#{productCondition.shop.shopId}
                </if>
                <if test="productCondition.productCategory != null
                and productCondition.productCategory.productCategoryId != null">
                    AND p.product_category_id=#{productCondition.productCategory.productCategoryId}
                </if>
                <if test="productCondition.productName != null">
                    AND p.product_name LIKE '%${productCondition.productName}%'
                </if>
                <if test="productCondition.status != null">
                    AND p.status=#{productCondition.status}
                </if>
            </where>
            ORDER BY
            p.priority DESC
            LIMIT #{rowIndex}, #{pageSize};
        </select>
    
    
        <!--int queryProductCount(Product productCondition);-->
        <select id="queryProductCount" resultType="java.lang.Integer">
            SELECT COUNT(1)
            FROM
            product p
            LEFT JOIN
            product_img pm
            ON
            p.product_id=pm.product_id
            <where>
                <if test="productCondition.shop != null
                and productCondition.shop.shopId != null">
                    p.shop_id=#{productCondition.shop.shopId}
                </if>
                <if test="productCondition.productCategory != null
                and productCondition.productCategory.productCategoryId != null">
                    AND p.product_category_id=#{productCondition.productCategory.productCategoryId}
                </if>
                <if test="productCondition.productName != null">
                    AND p.product_name LIKE '%${productCondition.productName}%'
                </if>
                <if test="productCondition.status != null">
                    AND p.status=#{productCondition.status}
                </if>
            </where>
        </select>
    

      

    service层

     /**
         *获取商品名(模糊查询),商品状态,shopId,ProductCategoryId
         * @param productCondition
         * @param pageIndex
         * @param pageSize
         * @return
         */
        ProductExecution getProductList(Product productCondition, int pageIndex, int pageSize);
    

      

    @Override
        public ProductExecution getProductList(Product productCondition, int pageIndex, int pageSize) {
            int rowIndex = PageCalculator.calculateRowIndex(pageIndex,pageSize);
            List<Product> productList = productDao.queryProductList( productCondition, pageIndex, pageSize );
            int count = productDao.queryProductCount( productCondition );
            ProductExecution productExecution = new ProductExecution();
            if(productList != null && productList.size() > 0){
                productExecution.setState( ProductStateEnum.SUCCESS.getState() );
                productExecution.setProductList( productList );
                productExecution.setCount( count );
            } else{
                productExecution.setState(ProductStateEnum.INNER_ERROR.getState());
            }
            return productExecution;
        }
    

      

    controller层

    @RequestMapping(value="/getproductlistbyshop", method = RequestMethod.GET)
        @ResponseBody
        public Map<String, Object> getProductListByShop(HttpServletRequest request){
            Map<String, Object> modelMap = new HashMap<>();
    
            Long shopId = 1L;
            Shop shop = new Shop();
            shop.setShopId( shopId );
    
            //从前台获取传过来的页码
            int pageIndex = HttpServletRequestUtil.getInt( request, "pageIndex" );
            //从前台获取每页要求的商品数量
            int pageSize = HttpServletRequestUtil.getInt( request, "pageSize" );
    
            //空值判断
            if((pageIndex > -1) && (pageSize > 0) && (shop != null) &&(shop.getShopId() != null)){
                //获取从前台传入的检索条件,包括商品类别,商品名,然后进行查询,分页
                /*Long productCategoryId = HttpServletRequestUtil.getLong( request, "productCategoryId" );
                String productName = HttpServletRequestUtil.getString( request, "productName" );
                Product productCondition = compactProductCondition(shopId, productCategoryId, productName);*/
    
                Product productCondition = compactProductCondition(shopId, 7L, null);
    
                //传入商品查询条件,以及商品查询分页条件,返回商品查询列表和总数
                ProductExecution productExecution = productService.getProductList( productCondition, pageIndex, pageSize );
                if(productExecution.getState() == ProductStateEnum.SUCCESS.getState()){
                    modelMap.put( "success", true );
                    modelMap.put( "productList", productExecution.getProductList() );
                    modelMap.put( "count", productExecution.getCount() );
                } else{
                    modelMap.put( "success", false );
                    modelMap.put( "errMsg", productExecution.getStateInfo() );
                }
            } else{
                modelMap.put( "success", false );
                modelMap.put( "errMsg", "pageSize or pageIndex or shopId is empty" );
            }
            return modelMap;
        }
    
    
        /**
         * 封装商品查询条件到Product中
         * @param shopId
         * @param productCategoryId
         * @param productName
         * @return
         */
        private Product compactProductCondition(Long shopId, Long productCategoryId, String productName){
            Product productCondition = new Product();
            Shop shop = new Shop();
            shop.setShopId(shopId);
            productCondition.setShop( shop );
    
            if(productCategoryId != -1L){
                ProductCategory productCategory = new ProductCategory();
                productCategory.setProductCategoryId( productCategoryId );
                productCondition.setProductCategory( productCategory );
            }
            if(productName != null){
                productCondition.setProductName(productName);
            }
            return productCondition;
        }
    

      

    商品下架

  • 相关阅读:
    CSDN修改博客皮肤模板
    2015年第六届蓝桥杯C/C++ A组国赛 —— 第三题:显示二叉树
    2015年第六届蓝桥杯C/C++ A组国赛 —— 第三题:显示二叉树
    2015年第六届蓝桥杯C/C++ A组国赛 —— 第二题:四阶幻方
    2015年第六届蓝桥杯C/C++ A组国赛 —— 第二题:四阶幻方
    2015年第六届蓝桥杯C/C++ B组国赛 —— 第一题:积分之迷
    2015年第六届蓝桥杯C/C++ B组国赛 —— 第一题:积分之迷
    2014年第五届蓝桥杯C/C++ A组国赛 —— 第四题:排列序数
    2014年第五届蓝桥杯C/C++ A组国赛 —— 第四题:排列序数
    2014年第五届蓝桥杯C/C++ A组国赛 —— 第三题:日期差
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/9005547.html
Copyright © 2020-2023  润新知