企业微信点餐第5章——买家商品

生成测试方法

Go   To Test

 

 

生成的测试方法注意添加注解

@RunWith(SpringRunner.class)

@SpringBootTest

@RunWith(SpringRunner.class)
@SpringBootTest
public class ProductInfoRespositoryTest {
}

测试类里面的方法。挨个测试

package com.imooc.sell.repository;

import com.imooc.sell.dataobject.ProductInfo;
import org.junit.Test;
import org.junit.Assert;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.math.BigDecimal;
import java.util.List;

/**
 * @创建者zmw
 * @创建时间 2019/3/4
 * @描述
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class ProductInfoRespositoryTest {

    @Autowired
    private ProductInfoRespository respository;

    @Test
    public void saveTest() {
        ProductInfo productInfo = new ProductInfo();
        productInfo.setProductId("1234567");
        productInfo.setProductName("皮蛋粥");
        productInfo.setProductPrice(new BigDecimal(3.2));
        productInfo.setProductStock(100);
        productInfo.setProductDescription("很好喝的粥");
        productInfo.setProductIcon("http://xxxxx.jpg");
        productInfo.setProductStatus(0);
        productInfo.setCategoryType(2);

        ProductInfo result = respository.save(productInfo);
        Assert.assertNotNull(result);
    }

    @Test
    public void findByProductStatus() throws Exception {
        List<ProductInfo> productInfoList = respository.findByProductStatus(0);
        Assert.assertNotEquals(0, productInfoList.size());
    }

}


枚举类方法

emun 修饰

要有 属性、有参构造、getter方法

目的:在代码里经常写 1、0、数字啊 ,这些数字就会分不清,所以用 枚举类来解

@Getter
public enum ProductStatusEnum {

    UP(0,"在架"),
    DOWN(1,"下架 ");

    private Integer code;
    private String  message;

    ProductStatusEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}

枚举类的用法 

@Override
public List<ProductInfo> findAll() {
    return respository.findByProductStatus(ProductStatusEnum.UP.getCode());
}

 

分页

//    分页  如果方法里传入的是Pageable  那么返回的也是Pageable对象
    public Page<ProductInfo> findAll(Pageable pageable) {
        return respository.findAll(pageable);
    }

 

 

 

返回一个result结果对象

可以把 result 单独写出一个类。方法写为静态的不同方法(成功、失败、有参的、无参数)。

public class ResultVoUtils {

    public static ResultVo success(Object object){
        ResultVo resultVo = new ResultVo();
        resultVo.setData(object);
        resultVo.setCode(0);
        resultVo.setMsg("成功");
        return  resultVo;
    }

    public static ResultVo success(){
        ResultVo resultVo = new ResultVo();
        return  resultVo;
    }

    public static ResultVo error(Integer code, String msg){
        ResultVo resultVo = new ResultVo();
        resultVo.setCode(code);
        resultVo.setMsg(msg);
        return  resultVo;
    }
}

 

查询方法 与 数据拼接


@RestController
@RequestMapping("/buyer/product")
public class BuyerProductController{

    @Autowired
    private ProductService productService;

    @Autowired
    private CategoryService categoryService;

    @GetMapping("/list")
    public ResultVo list(){
//       1.查询所有上架的商品
        List<ProductInfo> productInfoList = productService.findAll();
//        2.查询类目(一次性查询)
        List<Integer> categoryTypeList = new ArrayList<>();
        for(ProductInfo productInfo :productInfoList){
            categoryTypeList.add(productInfo.getCategoryType());
        }
        List<ProductCategory> productCategoryList = categoryService.findByCategoryTypeIn(categoryTypeList);

//        3.数据拼装
        List<ProductVO> productVOList = new ArrayList<>();
        for (ProductCategory productCategory: productCategoryList) {
            ProductVO productVO = new ProductVO();
            productVO.setCategoryType(productCategory.getCategoryType());
            productVO.setCategoryName(productCategory.getCategoryName());

            List<ProductInfoVO> productInfoVOList = new ArrayList<>();
            for (ProductInfo productInfo: productInfoList) {
                if (productInfo.getCategoryType().equals(productCategory.getCategoryType())) {
                    ProductInfoVO productInfoVO = new ProductInfoVO();
                    // 把一个对象的属性复制到另外一个对象
                    BeanUtils.copyProperties(productInfo, productInfoVO);
                    productInfoVOList.add(productInfoVO);
                }
            }
            productVO.setProductInfoVOList(productInfoVOList);
            productVOList.add(productVO);
        }

        return ResultVoUtils.success(productVOList);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Spring Boot的企业微信点餐系统是一种用于企业内部员工点餐的应用程序。该系统整合了Spring Boot框架的强大功能和企业微信的社交平台特点,旨在提供便捷、高效、可定制的点餐解决方案。 企业微信点餐系统的特点有以下几个方面: 1. 员工管理:系统通过企业微信的成员管理功能,可以实现员工账号的集中管理,包括员工基本信息、部门分组、权限设置等,方便企业进行员工管理和权限控制。 2. 菜单管理:系统提供了菜单管理功能,管理员可以添加、编辑、删除菜单及菜品信息,包括菜品名称、价格、图片等。员工可以根据菜单浏览自己喜欢的菜品,以及根据口味、分类等条件进行搜索。 3. 订单管理:员工可以在系统中选择菜品并下单,系统会自动生成订单并发送给后厨。管理员可以查看、管理所有订单,包括订单状态、支付情况、配送信息等。 4. 通知提醒:系统通过企业微信的消息推送功能,可以及时向员工发送订单状态、菜品推荐等消息提醒,保证员工及时了解订单状态,并提供优质的用餐服务。 5. 数据统计:系统可以根据订单数据进行统计分析,包括销售额、热门菜品、员工点餐情况等,为企业提供决策分析的依据。 综上所述,基于Spring Boot的企业微信点餐系统是一种功能强大、易于管理的内部点餐解决方案,可以提高企业员工的用餐体验,优化餐厅管理流程,并提供数据统计分析服务,帮助企业做出更明智的决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值