ProductController.java 2.95 KB
package vion.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import vion.Global;
import vion.enums.ResultEnum;
import vion.model.Product;
import vion.service.IProductSerrvice;
import vion.utils.ResultUtil;

import java.util.Date;
import java.util.List;

@RestController
@RequestMapping(Global.BASE_URL)
@Slf4j
public class ProductController {

    @Autowired
    private IProductSerrvice productSerrvice;

    @GetMapping("/products")
    @ResponseBody
    public Object getProductList(@RequestParam(name = "account_id")Integer account_id,
                                 @RequestParam(name = "store_id")Integer store_id,
                                 @RequestParam(name = "name",required=false)String name,
                                 @RequestParam(name = "brand",required=false)Integer brand,
                                 @RequestParam(name = "functionary",required=false)Integer functionary,
                                 @RequestParam(name = "pageNum")Integer pageNum,
                                 @RequestParam(name = "pageSize")Integer pageSize){

        //pageNum当前页,pageSize每页条数
        PageHelper.startPage(pageNum,pageSize);

        QueryWrapper<Product> wrapper=new QueryWrapper<>();
        wrapper.eq("store_id",store_id);
        wrapper.eq("account_id",account_id);
        if(name!=null)
            wrapper.eq("name",name);
        if(brand!=null)
            wrapper.eq("brand",brand);
        if(functionary!=null)
            wrapper.eq("functionary",functionary);

        List<Product> productList=productSerrvice.list(wrapper);
        PageInfo pageInfo=new PageInfo(productList,10);

        if (pageInfo != null) {
            return ResultUtil.success(pageInfo);
        } else {
            return ResultUtil.error(ResultEnum.SELECT_ERROR);
        }
    }

    @GetMapping("/product")
    @ResponseBody
    public Object getProductByID(@RequestParam(name = "project_id")Integer project_id){

        Product product=productSerrvice.getById(project_id);

        if (product != null) {
            return ResultUtil.success(product);
        } else {
            return ResultUtil.error(ResultEnum.SELECT_ERROR);
        }
    }

    @PostMapping("/products")
    @ResponseBody
    public Object saveOrUpdate(@RequestBody Product data) {

        try {
            if(data.getId()==null){
                productSerrvice.save(data);
                return ResultUtil.success();
            }else{
                data.setModifyTime(new Date());
                Product product=productSerrvice.saveAndReturn(data);
                return ResultUtil.success(product);
            }

        }catch (Exception e) {
            return ResultUtil.error(ResultEnum.SELECT_ERROR);
        }
    }
}