|
|
|
|
@ -1,112 +1,115 @@
|
|
|
|
|
package com.yeqifu.bus.controller;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.yeqifu.bus.entity.Goods;
|
|
|
|
|
import com.yeqifu.bus.entity.Provider;
|
|
|
|
|
import com.yeqifu.bus.service.IGoodsService;
|
|
|
|
|
import com.yeqifu.bus.service.IProviderService;
|
|
|
|
|
import com.yeqifu.bus.vo.GoodsVo;
|
|
|
|
|
import com.yeqifu.sys.common.AppFileUtils;
|
|
|
|
|
import com.yeqifu.sys.common.Constast;
|
|
|
|
|
import com.yeqifu.sys.common.DataGridView;
|
|
|
|
|
import com.yeqifu.sys.common.ResultObj;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; // MyBatis-Plus的查询条件构造器
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; // MyBatis-Plus的分页接口
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; // MyBatis-Plus的分页实现类
|
|
|
|
|
import com.yeqifu.bus.entity.Goods; // 商品实体类
|
|
|
|
|
import com.yeqifu.bus.entity.Provider; // 供应商实体类
|
|
|
|
|
import com.yeqifu.bus.service.IGoodsService; // 商品服务接口
|
|
|
|
|
import com.yeqifu.bus.service.IProviderService; // 供应商服务接口
|
|
|
|
|
import com.yeqifu.bus.vo.GoodsVo; // 商品的VO类,用于封装请求参数
|
|
|
|
|
import com.yeqifu.sys.common.AppFileUtils; // 文件工具类,用于操作图片
|
|
|
|
|
import com.yeqifu.sys.common.Constast; // 常量类
|
|
|
|
|
import com.yeqifu.sys.common.DataGridView; // 用于封装表格数据的类
|
|
|
|
|
import com.yeqifu.sys.common.ResultObj; // 封装操作结果的类
|
|
|
|
|
import org.apache.commons.lang3.StringUtils; // 字符串工具类
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; // 自动注入注解
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping; // 请求映射注解
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController; // RESTful控制器注解
|
|
|
|
|
|
|
|
|
|
import java.util.List; // List集合类
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <p>
|
|
|
|
|
* InnoDB free: 9216 kB; (`providerid`) REFER `warehouse/bus_provider`(`id`) 前端控制器
|
|
|
|
|
* </p>
|
|
|
|
|
*
|
|
|
|
|
* 商品管理的前端控制器
|
|
|
|
|
* 提供商品的增删改查以及相关查询功能
|
|
|
|
|
* @author luoyi-
|
|
|
|
|
* @since 2019-12-06
|
|
|
|
|
*/
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/goods")
|
|
|
|
|
@RestController // 标记为RESTful控制器
|
|
|
|
|
@RequestMapping("/goods") // 定义请求路径前缀为"/goods"
|
|
|
|
|
public class GoodsController {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IGoodsService goodsService;
|
|
|
|
|
private IGoodsService goodsService; // 自动注入商品服务
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IProviderService providerService;
|
|
|
|
|
private IProviderService providerService; // 自动注入供应商服务
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询商品
|
|
|
|
|
* @param goodsVo
|
|
|
|
|
* @return
|
|
|
|
|
* 分页查询商品信息
|
|
|
|
|
* @param goodsVo 封装商品查询条件和分页参数
|
|
|
|
|
* @return 包含商品列表和总记录数的DataGridView
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("loadAllGoods")
|
|
|
|
|
public DataGridView loadAllGoods(GoodsVo goodsVo){
|
|
|
|
|
IPage<Goods> page = new Page<Goods>(goodsVo.getPage(),goodsVo.getLimit());
|
|
|
|
|
QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
|
|
|
|
|
queryWrapper.eq(goodsVo.getProviderid()!=null&&goodsVo.getProviderid()!=0,"providerid",goodsVo.getProviderid());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()),"goodsname",goodsVo.getGoodsname());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()),"productcode",goodsVo.getProductcode());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()),"promitcode",goodsVo.getPromitcode());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()),"description",goodsVo.getDescription());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()),"size",goodsVo.getSize());
|
|
|
|
|
|
|
|
|
|
queryWrapper.orderByDesc("id");
|
|
|
|
|
goodsService.page(page,queryWrapper);
|
|
|
|
|
public DataGridView loadAllGoods(GoodsVo goodsVo) {
|
|
|
|
|
// 1. 创建分页对象
|
|
|
|
|
IPage<Goods> page = new Page<>(goodsVo.getPage(), goodsVo.getLimit());
|
|
|
|
|
// 2. 创建查询条件构造器
|
|
|
|
|
QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
queryWrapper.eq(goodsVo.getProviderid() != null && goodsVo.getProviderid() != 0, "providerid", goodsVo.getProviderid());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()), "goodsname", goodsVo.getGoodsname());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()), "productcode", goodsVo.getProductcode());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()), "promitcode", goodsVo.getPromitcode());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()), "description", goodsVo.getDescription());
|
|
|
|
|
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()), "size", goodsVo.getSize());
|
|
|
|
|
queryWrapper.orderByDesc("id"); // 按照ID降序排列
|
|
|
|
|
|
|
|
|
|
// 3. 执行分页查询
|
|
|
|
|
goodsService.page(page, queryWrapper);
|
|
|
|
|
List<Goods> records = page.getRecords();
|
|
|
|
|
for (Goods goods : records) {
|
|
|
|
|
// 根据供应商ID设置供应商名称
|
|
|
|
|
Provider provider = providerService.getById(goods.getProviderid());
|
|
|
|
|
if (null!=provider){
|
|
|
|
|
if (provider != null) {
|
|
|
|
|
goods.setProvidername(provider.getProvidername());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new DataGridView(page.getTotal(),page.getRecords());
|
|
|
|
|
// 返回分页数据
|
|
|
|
|
return new DataGridView(page.getTotal(), page.getRecords());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 添加商品
|
|
|
|
|
* @param goodsVo
|
|
|
|
|
* @return
|
|
|
|
|
* @param goodsVo 包含商品信息
|
|
|
|
|
* @return 操作结果
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("addGoods")
|
|
|
|
|
public ResultObj addGoods(GoodsVo goodsVo){
|
|
|
|
|
public ResultObj addGoods(GoodsVo goodsVo) {
|
|
|
|
|
try {
|
|
|
|
|
System.out.println("====================================");
|
|
|
|
|
System.out.println(goodsVo.getGoodsimg());
|
|
|
|
|
if (goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().endsWith("_temp")){
|
|
|
|
|
if (goodsVo.getGoodsimg() != null && goodsVo.getGoodsimg().endsWith("_temp")) {
|
|
|
|
|
// 重命名临时图片为正式图片
|
|
|
|
|
String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg());
|
|
|
|
|
goodsVo.setGoodsimg(newName);
|
|
|
|
|
}
|
|
|
|
|
// 保存商品信息
|
|
|
|
|
goodsService.save(goodsVo);
|
|
|
|
|
return ResultObj.ADD_SUCCESS;
|
|
|
|
|
return ResultObj.ADD_SUCCESS; // 返回成功结果
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
return ResultObj.ADD_ERROR;
|
|
|
|
|
return ResultObj.ADD_ERROR; // 返回失败结果
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改商品
|
|
|
|
|
* @param goodsVo
|
|
|
|
|
* @return
|
|
|
|
|
* 修改商品信息
|
|
|
|
|
* @param goodsVo 包含商品修改信息
|
|
|
|
|
* @return 操作结果
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("updateGoods")
|
|
|
|
|
public ResultObj updateGoods(GoodsVo goodsVo){
|
|
|
|
|
public ResultObj updateGoods(GoodsVo goodsVo) {
|
|
|
|
|
try {
|
|
|
|
|
//商品图片不是默认图片
|
|
|
|
|
if (!(goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().equals(Constast.DEFAULT_IMG_GOODS))){
|
|
|
|
|
|
|
|
|
|
if (goodsVo.getGoodsimg().endsWith("_temp")){
|
|
|
|
|
// 如果商品图片不是默认图片
|
|
|
|
|
if (goodsVo.getGoodsimg() != null && !goodsVo.getGoodsimg().equals(Constast.DEFAULT_IMG_GOODS)) {
|
|
|
|
|
if (goodsVo.getGoodsimg().endsWith("_temp")) {
|
|
|
|
|
// 重命名临时图片
|
|
|
|
|
String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg());
|
|
|
|
|
goodsVo.setGoodsimg(newName);
|
|
|
|
|
//删除原先的图片
|
|
|
|
|
// 删除原图片文件
|
|
|
|
|
String oldPath = goodsService.getById(goodsVo.getId()).getGoodsimg();
|
|
|
|
|
AppFileUtils.removeFileByPath(oldPath);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 更新商品信息
|
|
|
|
|
goodsService.updateById(goodsVo);
|
|
|
|
|
return ResultObj.UPDATE_SUCCESS;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
@ -117,15 +120,16 @@ public class GoodsController {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除商品
|
|
|
|
|
* @param id 商品id
|
|
|
|
|
* @return
|
|
|
|
|
* @param id 商品ID
|
|
|
|
|
* @param goodsimg 商品图片路径
|
|
|
|
|
* @return 操作结果
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("deleteGoods")
|
|
|
|
|
public ResultObj deleteGoods(Integer id,String goodsimg){
|
|
|
|
|
public ResultObj deleteGoods(Integer id, String goodsimg) {
|
|
|
|
|
try {
|
|
|
|
|
//删除商品的图片
|
|
|
|
|
// 删除商品图片
|
|
|
|
|
AppFileUtils.removeFileByPath(goodsimg);
|
|
|
|
|
// goodsService.removeById(id);
|
|
|
|
|
// 删除商品记录
|
|
|
|
|
goodsService.deleteGoodsById(id);
|
|
|
|
|
return ResultObj.DELETE_SUCCESS;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
@ -135,17 +139,18 @@ public class GoodsController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 加载所有可用的商品
|
|
|
|
|
* @return
|
|
|
|
|
* 加载所有可用商品
|
|
|
|
|
* @return 包含商品列表的DataGridView
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("loadAllGoodsForSelect")
|
|
|
|
|
public DataGridView loadAllGoodsForSelect(){
|
|
|
|
|
QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
|
|
|
|
|
queryWrapper.eq("available",Constast.AVAILABLE_TRUE);
|
|
|
|
|
public DataGridView loadAllGoodsForSelect() {
|
|
|
|
|
QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
queryWrapper.eq("available", Constast.AVAILABLE_TRUE);
|
|
|
|
|
List<Goods> list = goodsService.list(queryWrapper);
|
|
|
|
|
for (Goods goods : list) {
|
|
|
|
|
// 设置供应商名称
|
|
|
|
|
Provider provider = providerService.getById(goods.getProviderid());
|
|
|
|
|
if (null!=provider){
|
|
|
|
|
if (provider != null) {
|
|
|
|
|
goods.setProvidername(provider.getProvidername());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -154,32 +159,32 @@ public class GoodsController {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据供应商ID查询商品信息
|
|
|
|
|
* @param providerid 供应商ID
|
|
|
|
|
* @return
|
|
|
|
|
* @param providerid 供应商ID
|
|
|
|
|
* @return 包含商品列表的DataGridView
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("loadGoodsByProviderId")
|
|
|
|
|
public DataGridView loadGoodsByProviderId(Integer providerid){
|
|
|
|
|
QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
|
|
|
|
|
queryWrapper.eq("available",Constast.AVAILABLE_TRUE);
|
|
|
|
|
queryWrapper.eq(providerid!=null,"providerid",providerid);
|
|
|
|
|
public DataGridView loadGoodsByProviderId(Integer providerid) {
|
|
|
|
|
QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
queryWrapper.eq("available", Constast.AVAILABLE_TRUE);
|
|
|
|
|
queryWrapper.eq(providerid != null, "providerid", providerid);
|
|
|
|
|
List<Goods> list = goodsService.list(queryWrapper);
|
|
|
|
|
for (Goods goods : list) {
|
|
|
|
|
// 设置供应商名称
|
|
|
|
|
Provider provider = providerService.getById(goods.getProviderid());
|
|
|
|
|
if (null!=provider){
|
|
|
|
|
if (provider != null) {
|
|
|
|
|
goods.setProvidername(provider.getProvidername());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new DataGridView(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 加载所有库存预警的商品
|
|
|
|
|
* @return 包含预警商品列表的DataGridView
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping("loadAllWarningGoods")
|
|
|
|
|
public DataGridView loadAllWarningGoods(){
|
|
|
|
|
public DataGridView loadAllWarningGoods() {
|
|
|
|
|
List<Goods> goods = goodsService.loadAllWarning();
|
|
|
|
|
return new DataGridView((long) goods.size(),goods);
|
|
|
|
|
return new DataGridView((long) goods.size(), goods);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
////
|