挑战一天开发一个前后端小程序系统|源码公开,开箱即用

Posted 程序员springmeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了挑战一天开发一个前后端小程序系统|源码公开,开箱即用相关的知识,希望对你有一定的参考价值。

有个小伙伴找到我开发一个系统,这次他要考验我的效率,第一次遇到这种条件的。

一周开发出来给2000,3天开发出来4000,一天开发出来给5000。

都这样说了,那我还拖什么?

系统完事后,和他商讨了一下,退他一部分费用,源码开源给大家了。方便的小伙伴,转发,在看支持下。你的支持,是我前进的动力,如果不方便,也没事,嘿嘿……

首先他的需求不是很很难,梳理了一遍感觉没啥问题了,直接开始干了。

那一天能不能完成 让我们拭目以待?

文章目录

一,技术选型:

二,原型设计:

对方没有UI要求,预算也低,这一步直接忽略,UI套用的我前面开发的。图片处理ps 搞下图标 图片什么的.

三,软件下载安装、环境安装:

软件下载的地址和安装的教程都整理的很详细,每当我换一台电脑的时候,直接进行下面的下载及安装,真的很快搞完,如下所示:


系统的下载也可以提供给大家。

四,系统的演示:

如果想看完整的视频演示,如下:

https://www.bilibili.com/video/BV1Y341177Qd?spm_id_from=333.999.0.0







五,核心代码演示

package com.example.bus.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 业务管理的路由器
 * @author LJH
 *
 */
@Controller
@RequestMapping("/bus")
public class BusinessController 

	/**
	 * 跳转到客户管理
	 */
	@RequestMapping("toCustomerManager")
	public String toCustomerManager() 
		return "business/customer/customerManager";
	
	/**
	 * 跳转到供应商管理
	 */
	@RequestMapping("toProviderManager")
	public String toProviderManager() 
		return "business/provider/providerManager";
	
	/**
	 * 跳转到商品管理
	 */
	@RequestMapping("toGoodsManager")
	public String toGoodsManager() 
		return "business/goods/goodsManager";
	
	/**
	 * 跳转到进货管理
	 */
	@RequestMapping("toInportManager")
	public String toInportManager() 
		return "business/inport/inportManager";
	
	/**
	 * 跳转到退货查询管理
	 */
	@RequestMapping("toOutportManager")
	public String toOutportManager() 
		return "business/outport/outportManager";
	

	/**
	 * 跳转到宠物资料管理
	 *
	 * @return
	 */
	@RequestMapping("toPetInfoManager")
	public String toPetInfoManager() 
		return "business/pet/petManager";
	


@RestController
@RequestMapping("/customer")
public class CustomerController 

	@Autowired
	private CustomerService customerService;

	/**
	 * 查询
	 */
	@RequestMapping("loadAllCustomer")
	public DataGridView loadAllCustomer(CustomerVo customerVo) 
		IPage<Customer> page = new Page<>(customerVo.getPage(), customerVo.getLimit());
		QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();
		queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()), "customername",
				customerVo.getCustomername());
		queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()), "phone", customerVo.getPhone());
		queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionperson()), "connectionperson",
				customerVo.getConnectionperson());
		this.customerService.page(page, queryWrapper);
		return new DataGridView(page.getTotal(), page.getRecords());
	

	/**
	 * 添加
	 */
	@RequestMapping("addCustomer")
	public ResultObj addCustomer(CustomerVo customerVo) 
		try 
			this.customerService.save(customerVo);
			return ResultObj.ADD_SUCCESS;
		 catch (Exception e) 
			e.printStackTrace();
			return ResultObj.ADD_ERROR;
		
	

	/**
	 * 修改
	 */
	@RequestMapping("updateCustomer")
	public ResultObj updateCustomer(CustomerVo customerVo) 
		try 
			this.customerService.updateById(customerVo);
			return ResultObj.UPDATE_SUCCESS;
		 catch (Exception e) 
			e.printStackTrace();
			return ResultObj.UPDATE_ERROR;
		
	

	/**
	 * 删除
	 */
	@RequestMapping("deleteCustomer")
	public ResultObj deleteCustomer(Integer id) 
		try 
			this.customerService.removeById(id);
			return ResultObj.DELETE_SUCCESS;
		 catch (Exception e) 
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		
	

	/**
	 * 批量删除
	 */
	@RequestMapping("batchDeleteCustomer")
	public ResultObj batchDeleteCustomer(CustomerVo customerVo) 
		try 
			Collection<Serializable> idList = new ArrayList<Serializable>();
			for (Integer id : customerVo.getIds()) 
				idList.add(id);
			
			this.customerService.removeByIds(idList);
			return ResultObj.DELETE_SUCCESS;
		 catch (Exception e) 
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		
	
@RestController
@RequestMapping("/goods")
public class GoodsController 


    @Autowired
    private GoodsService goodsService;

    @Autowired
    private ProviderService providerService;

    /**
     * 查询
     */
    @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());
        this.goodsService.page(page, queryWrapper);
        List<Goods> records = page.getRecords();
        for (Goods goods : records) 
            Provider provider = this.providerService.getById(goods.getProviderid());
            if (null != provider) 
                goods.setProvidername(provider.getProvidername());
            
        
        return new DataGridView(page.getTotal(), records);
    

    /**
     * 添加
     */
    @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);
            
            this.goodsService.save(goodsVo);
            return ResultObj.ADD_SUCCESS;
         catch (Exception e) 
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        
    

    /**
     * 修改
     */
    @RequestMapping("updateGoods")
    public ResultObj updateGoods(GoodsVo goodsVo) 
        try 
            //说明是不默认图片
            if (!(goodsVo.getGoodsimg() != null && goodsVo.getGoodsimg().equals(Constant.IMAGES_DEFAULTGOODSIMG_PNG))) 
                if (goodsVo.getGoodsimg().endsWith("_temp")) 
                    String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg());
                    goodsVo.setGoodsimg(newName);
                    //删除原先的图片
                    String oldPath = this.goodsService.getById(goodsVo.getId()).getGoodsimg();
                    AppFileUtils.removeFileByPath(oldPath);
                
            
            this.goodsService.updateById(goodsVo);
            return ResultObj.UPDATE_SUCCESS;
         catch (Exception e) 
            e.printStackTrace();
            return ResultObj.UPDATE_ERROR;
        
    

    /**
     * 删除
     */
    @RequestMapping("deleteGoods")
    public ResultObj deleteGoods(Integer id, String goodsimg) 
        try 
            //删除原文件
            AppFileUtils.removeFileByPath(goodsimg);
            this.goodsService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
         catch (Exception e) 
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        
    

    /**
     * 加载所有可用的供应商
     */
    @RequestMapping("loadAllGoodsForSelect")
    public DataGridView loadAllGoodsForSelect() 
        QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("available", Constant.AVAILABLE_TRUE);
        List<Goods> list = this.goodsService.list(queryWrapper);
        for (Goods goods : list) 
            Provider provider = this.providerService.getById(goods.getProviderid());
            if (null != provider) 
                goods.setProvidername(provider.getProvidername());
            
        
        return new DataGridView(list);
    

六,系统源码获取

还是那句话,仅限制学习使用!

若发现偷盗者,以后我开源的就少了!而且会追究你的责任!

最后希望大家给个三连吧!开源不容易!

如果也想学习本系统,已经开源了,下面领取。回复:宠物

👇🏻 源码可通过搜索下方 公众号 获取👇🏻

以上是关于挑战一天开发一个前后端小程序系统|源码公开,开箱即用的主要内容,如果未能解决你的问题,请参考以下文章

多端小程序小游戏兼容

vue - 音乐播放器示例源码开箱即用(无任何第三方插件依赖,代码注释详细)

资深大牛带你了解源码!来看看移动端小程序技术的前世今生!小白也能看明白

基于C#和Blazor开发的前后端分离框架

Java后端小程序微信登录怎么写??

Spring Boot 揭秘与实战 源码分析 - 开箱即用,内藏玄机