添加商品增删改查

master
gyc 2024-04-21 20:02:50 +08:00
parent 2fc82ed0f9
commit 414c304d2a
7 changed files with 292 additions and 0 deletions

View File

@ -0,0 +1,96 @@
package com.eleadmin.common.goods.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eleadmin.common.core.annotation.OperationLog;
import com.eleadmin.common.core.web.ApiResult;
import com.eleadmin.common.core.web.BaseController;
import com.eleadmin.common.core.web.PageParam;
import com.eleadmin.common.core.web.PageResult;
import com.eleadmin.common.goods.entity.Goods;
import com.eleadmin.common.goods.param.GoodsParam;
import com.eleadmin.common.goods.service.GoodsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.UUID;
/**
*
*
* @program: ele-admin-api
* @ClassName: GoodsController
* @author: Gyc
* @create: 2024-04-21 09:44
**/
@Api("商品管理")
@RestController
@RequestMapping("/api/goods")
public class GoodsController extends BaseController {
@Resource
private GoodsService goodsService;
@PreAuthorize("hasAnyAuthority('goods:list')")
@OperationLog
@ApiOperation("分页查询商品")
@GetMapping("/page")
public ApiResult<PageResult<Goods>> page(GoodsParam param) {
Page<Goods> goodsPage = new Page<>(param.getPage(), param.getLimit());
LambdaQueryWrapper<Goods> goodsLambdaQueryWrapper = new LambdaQueryWrapper<>();
goodsLambdaQueryWrapper.like(!StringUtils.isEmpty(param.getGoodId()),Goods::getGoodId,param.getGoodId());
goodsLambdaQueryWrapper.like(!StringUtils.isEmpty(param.getTitle()),Goods::getTitle,param.getTitle());
return success(goodsService.page(goodsPage,goodsLambdaQueryWrapper));
}
@PreAuthorize("hasAnyAuthority('goods:save')")
@OperationLog
@ApiOperation("添加商品")
@PostMapping
public ApiResult<?> save(@Valid @RequestBody Goods goods, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new RuntimeException(bindingResult.getAllErrors().get(0).getDefaultMessage());
}
goods.setGoodId(UUID.randomUUID().toString().toString());
boolean save = goodsService.save(goods);
return save?success():fail();
}
@PreAuthorize("hasAnyAuthority('goods:update')")
@OperationLog
@ApiOperation("修改商品")
@PutMapping
public ApiResult<?> update(@Valid @RequestBody Goods goods, BindingResult bindingResult) {
if (goods.getId()==null){
throw new RuntimeException("id不能为空");
}
if (bindingResult.hasErrors()) {
throw new RuntimeException(bindingResult.getAllErrors().get(0).getDefaultMessage());
}
boolean b = goodsService.updateById(goods);
return b?success():fail();
}
@PreAuthorize("hasAnyAuthority('goods:remove')")
@OperationLog
@ApiOperation("删除商品")
@DeleteMapping("/del")
public ApiResult<?> remove(@RequestParam Integer id) {
boolean b = goodsService.removeById(id);
return b?success():fail();
}
}

View File

@ -0,0 +1,76 @@
package com.eleadmin.common.goods.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
*
*
* @program: ele-admin-api
* @ClassName: Goods
* @author: Gyc
* @create: 2024-04-21 09:25
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "商品")
@TableName("goods")
public class Goods implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
@TableId(type = IdType.AUTO)
private Integer id;
@ApiModelProperty("商品编码")
private String goodId;
@ApiModelProperty("商品名称")
@NotEmpty(message = "商品名称不能为空")
private String title;
@ApiModelProperty("商品类型,1上架,2下架")
@NotNull(message = "商品类型不能为空")
@Min(value = 1)
@Max(value = 2)
private Integer goodType;
@ApiModelProperty("商品价格")
@NotNull(message = "商品价格不能为空")
@Min(value = 1)
private Integer price;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty("创建人")
private Integer creaorId;
@ApiModelProperty("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date changeDate;
@ApiModelProperty("修改人")
private Integer changorId;
}

View File

@ -0,0 +1,18 @@
package com.eleadmin.common.goods.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.eleadmin.common.goods.entity.Goods;
/**
* mapper
*
* @program: ele-admin-api
* @ClassName: GoodsMapper
* @author: Gyc
* @create: 2024-04-21 10:05
**/
public interface GoodsMapper extends BaseMapper<Goods> {
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.eleadmin.common.goods.mapper.GoodsMapper">
</mapper>

View File

@ -0,0 +1,45 @@
package com.eleadmin.common.goods.param;
import com.eleadmin.common.core.annotation.QueryField;
import com.eleadmin.common.core.annotation.QueryType;
import com.eleadmin.common.core.web.BaseParam;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @program: ele-admin-api
* @ClassName: GoodsParam
* @author: Gyc
* @create: 2024-04-21 09:57
**/
@Data
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(description = "商品查询参数")
public class GoodsParam extends BaseParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
@QueryField(type = QueryType.LIKE)
@ApiModelProperty("商品编码")
private String goodId;
@QueryField(type = QueryType.LIKE)
@ApiModelProperty("商品名称")
private String title;
@ApiModelProperty("商品类型,1上架,2下架")
private Integer goodType;
@ApiModelProperty("商品价格")
private Integer price;
}

View File

@ -0,0 +1,26 @@
package com.eleadmin.common.goods.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.eleadmin.common.core.web.PageParam;
import com.eleadmin.common.core.web.PageResult;
import com.eleadmin.common.goods.entity.Goods;
import com.eleadmin.common.goods.param.GoodsParam;
import org.springframework.stereotype.Service;
/**
* @program: ele-admin-api
* @ClassName: GoodsService
* @author: Gyc
* @create: 2024-04-21 09:45
**/
public interface GoodsService extends IService<Goods> {
}

View File

@ -0,0 +1,25 @@
package com.eleadmin.common.goods.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.eleadmin.common.core.web.PageParam;
import com.eleadmin.common.core.web.PageResult;
import com.eleadmin.common.goods.entity.Goods;
import com.eleadmin.common.goods.mapper.GoodsMapper;
import com.eleadmin.common.goods.param.GoodsParam;
import com.eleadmin.common.goods.service.GoodsService;
import org.springframework.stereotype.Service;
/**
* @program: ele-admin-api
* @ClassName: GoodsServiceImpl
* @author: Gyc
* @create: 2024-04-21 09:46
**/
@Service
public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods>
implements GoodsService {
}