>  기사  >  Java  >  Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

王林
王林앞으로
2023-05-11 08:55:13819검색

1. 프로젝트 소개

이 프로젝트는 springboot를 기반으로 온라인 상점에서 사용자가 개설한 관련 상품의 구매, 판매 및 재고 관리 시스템을 구현합니다. 역할을 설계하고 필요에 따라 권한을 할당할 수 있는 관리 시스템입니다. 권한을 세분화하여 전체 프로젝트에 탁월한 페이지 수준 권한 제어를 달성할 수 있습니다. 구현된 주요 기능은 다음과 같습니다.

기본 관리 모듈: 고객 관리, 공급자 관리, 상품 관리의 세 가지 하위 모듈 포함

구매 관리 모듈: 상품 구매, 반품, 제품 반품 조회의 여러 하위 블록 포함

판매 관리: 제품 판매, 반품, 판매 반품 조회의 여러 하위 블록 포함

시스템 관리: 부서 관리, 메뉴 관리, 권한 관리, 역할 관리, 사용자 관리의 5개 하위 모듈 포함

기타 관리 : 로그인 로그 조회, 시스템 공지사항 관리, 아이콘 관리 및 기타 하위 모듈 포함

개인 센터: 개인 정보 관리, 비밀번호 수정 및 기타 관련 기능 포함

II 환경 소개

언어 환경: Java: jdk1.8

데이터베이스: Mysql: mysql5.7 / Redis 캐시 데이터베이스

애플리케이션 서버: Tomcat: tomcat8.5.31

개발 도구: IDEA 또는 eclipse

백엔드 개발 기술: Springboot+Mybatis-plus+Shiro

프런트엔드 개발 기술 : Bootstrap+Layui+Freemarker 템플릿

셋. 시스템 표시

최고관리자 로그인 시스템: system/123456

Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

기본관리—고객관리

Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

기본관리—공급업체 관리

Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

기본관리&mdash ;상품 관리

Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법 D 구매 관리 및 mdash;

시스템 관리---부서 관리Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

시스템 관리---메뉴 관리Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

시스템 관리 ---권한 관리Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

시스템 관리---역할 관리Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

시스템 관리---사용자 관리Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

기타 관리—로그인 로그Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

기타 관리—시스템 공지Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

4개 핵심 코드 표시Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법

package com.dev.shop.bus.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
 
@Controller
@RequestMapping("bus")
public class BusinessController {
 
    /**
     * 跳转到客户管理页面
     * @return
     */
    @RequestMapping("toCustomerManager")
    public String toCustomerManager(){
        return "business/customer/customerManager";
    }
 
    /**
     * 跳转到供应商管理页面
     * @return
     */
    @RequestMapping("toProviderManager")
    public String toProviderManager(){
        return "business/provider/providerManager";
    }
 
    /**
     * 跳转到商品管理页面
     * @return
     */
    @RequestMapping("toGoodsManager")
    public String toGoodsManager(){
        return "business/goods/goodsManager";
    }
 
    /**
     * 跳转到进货管理页面
     * @return
     */
    @RequestMapping("toInportManager")
    public String toInportManager(){
        return "business/inport/inportManager";
    }
 
    /**
     * 跳转到退货管理页面
     * @return
     */
    @RequestMapping("toOutportManager")
    public String toOutportManager(){
        return "business/outport/outportManager";
    }
 
    /**
     * 跳转到商品销售管理页面
     * @return
     */
    @RequestMapping("toSalesManager")
    public String toSalesManager(){
        return "business/sales/salesManager";
    }
 
    /**
     * 跳转到商品销售管理页面
     * @return
     */
    @RequestMapping("toSalesbackManager")
    public String toSalesbackManager(){
        return "business/salesback/salesbackManager";
    }
 
}
package com.dev.shop.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.dev.shop.bus.entity.Customer;
import com.dev.shop.bus.service.ICustomerService;
import com.dev.shop.bus.vo.CustomerVo;
import com.dev.shop.sys.common.Constast;
import com.dev.shop.sys.common.DataGridView;
import com.dev.shop.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.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
 
@RestController
@RequestMapping("/customer")
public class CustomerController {
 
    @Autowired
    private ICustomerService customerService;
 
    /**
     * 查询所有的客户
     * @param customerVo
     * @return
     */
    @RequestMapping("loadAllCustomer")
    public DataGridView loadAllCustomer(CustomerVo customerVo){
        //1.声明一个分页page对象
        IPage<Customer> page = new Page(customerVo.getPage(),customerVo.getLimit());
        //2.声明一个queryWrapper
        QueryWrapper<Customer> queryWrapper = new QueryWrapper();
        queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()),"customername",customerVo.getCustomername());
        queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionpersion()),"connectionpersion",customerVo.getConnectionpersion());
        queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()),"phone",customerVo.getPhone());
        customerService.page(page,queryWrapper);
        return new DataGridView(page.getTotal(),page.getRecords());
    }
 
    /**
     * 添加一个客户
     * @param customerVo
     * @return
     */
    @RequestMapping("addCustomer")
    public ResultObj addCustomer(CustomerVo customerVo){
        try {
            customerService.save(customerVo);
            return ResultObj.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }
 
    /**
     * 修改一个客户
     * @param customerVo
     * @return
     */
    @RequestMapping("updateCustomer")
    public ResultObj updateCustomer(CustomerVo customerVo){
        try {
            customerService.updateById(customerVo);
            return ResultObj.UPDATE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.UPDATE_ERROR;
        }
    }
 
    /**
     * 删除一个客户
     * @param id 客户的ID
     * @return
     */
    @RequestMapping("deleteCustomer")
    public ResultObj deleteCustomer(Integer id){
        try {
            customerService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }
 
    /**
     * 批量删除客户
     * @param customerVo 选中的客户
     * @return
     */
    @RequestMapping("batchDeleteCustomer")
    public ResultObj batchDeleteCustomer(CustomerVo customerVo){
        try {
            Collection<Serializable> idList = new ArrayList<Serializable>();
            for (Integer id : customerVo.getIds()) {
                idList.add(id);
            }
            customerService.removeByIds(idList);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }
 
    /**
     * 加载所有客户的下拉列表
     * @return
     */
    @RequestMapping("loadAllCustomerForSelect")
    public DataGridView loadAllCustomerForSelect(){
        QueryWrapper<Customer> queryWrapper = new QueryWrapper<Customer>();
        queryWrapper.eq("available", Constast.AVAILABLE_TRUE);
        List<Customer> list = customerService.list(queryWrapper);
        return new DataGridView(list);
    }
 
}
package com.dev.shop.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.dev.shop.bus.entity.Goods;
import com.dev.shop.bus.entity.Provider;
import com.dev.shop.bus.service.IGoodsService;
import com.dev.shop.bus.service.IProviderService;
import com.dev.shop.bus.vo.GoodsVo;
import com.dev.shop.sys.common.AppFileUtils;
import com.dev.shop.sys.common.Constast;
import com.dev.shop.sys.common.DataGridView;
import com.dev.shop.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;
 
@RestController
@RequestMapping("/goods")
public class GoodsController {
 
    @Autowired
    private IGoodsService goodsService;
 
    @Autowired
    private IProviderService providerService;
 
    /**
     * 查询商品
     * @param goodsVo
     * @return
     */
    @RequestMapping("loadAllGoods")
    public DataGridView loadAllGoods(GoodsVo goodsVo){
        IPage<Goods> page = new Page<>(goodsVo.getPage(),goodsVo.getLimit());
        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");
        goodsService.page(page,queryWrapper);
        List<Goods> records = page.getRecords();
        for (Goods goods : records) {
            Provider provider = providerService.getById(goods.getProviderid());
            if (null!=provider){
                goods.setProvidername(provider.getProvidername());
            }
        }
        return new DataGridView(page.getTotal(),page.getRecords());
    }
 
    /**
     * 添加商品
     * @param goodsVo
     * @return
     */
    @RequestMapping("addGoods")
    public ResultObj addGoods(GoodsVo goodsVo){
        try {
            if (goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().endsWith("_temp")){
                String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg());
                goodsVo.setGoodsimg(newName);
            }
            goodsService.save(goodsVo);
            return ResultObj.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }
 
    /**
     * 修改商品
     * @param goodsVo
     * @return
     */
    @RequestMapping("updateGoods")
    public ResultObj updateGoods(GoodsVo goodsVo){
        try {
            //商品图片不是默认图片
            if (!(goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().equals(Constast.DEFAULT_IMG))){
                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) {
            e.printStackTrace();
            return ResultObj.UPDATE_ERROR;
        }
    }
 
    /**
     * 删除商品
     * @param id
     * @return
     */
    @RequestMapping("deleteGoods")
    public ResultObj deleteGoods(Integer id,String goodsimg){
        try {
            //删除商品的图片
            AppFileUtils.removeFileByPath(goodsimg);
            goodsService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }
 
    /**
     * 加载所有可用的商品
     * @return
     */
    @RequestMapping("loadAllGoodsForSelect")
    public DataGridView loadAllGoodsForSelect(){
        QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
        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){
                goods.setProvidername(provider.getProvidername());
            }
        }
        return new DataGridView(list);
    }
 
    /**
     * 根据供应商ID查询商品信息
     * @param providerid    供应商ID
     * @return
     */
    @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);
        List<Goods> list = goodsService.list(queryWrapper);
        for (Goods goods : list) {
            Provider provider = providerService.getById(goods.getProviderid());
            if (null!=provider){
                goods.setProvidername(provider.getProvidername());
            }
        }
        return new DataGridView(list);
    }
 
 
 
}
package com.dev.shop.bus.entity;
 
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
 
import java.io.Serializable;
 
 
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("bus_customer")
@ToString
public class Customer implements Serializable {
 
    private static final long serialVersionUID=1L;
 
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
 
    private String customername;
 
    private String zip;
 
    private String address;
 
    private String telephone;
 
    private String connectionpersion;
 
    private String phone;
 
    private String bank;
 
    private String account;
 
    private String email;
 
    private String fax;
 
    private Integer available;
 
 
}

위 내용은 Springboot를 기반으로 상품 구매, 판매, 재고 관리 시스템을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제