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

简介: 一,技术选型;二,原型设计;三,软件下载安装、环境安装;四,系统的演示;五,核心代码演示;六,系统源码获取

一,技术选型:


微信图片_20221009212407.png

二,原型设计:


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


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


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


微信图片_20221009212413.png


微信图片_20221009212418.png


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


四,系统的演示:


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


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


微信图片_20221009212421.png


微信图片_20221009212425.png


微信图片_20221009212428.png


微信图片_20221009212432.png


微信图片_20221009212436.png


微信图片_20221009212439.png


微信图片_20221009212445.png


五,核心代码演示


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);
    }


六,系统源码获取


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

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


目录
相关文章
|
21天前
|
缓存 小程序 前端开发
商城/点餐/家政类小程序源码合集_微信抖音小程序源码开发从入门到精通实战
本文系统讲解如何利用现有源码快速开发商城、点餐、家政类微信/抖音小程序,涵盖环境搭建、核心功能实现、多平台部署与优化,提供完整技术方案。实战导向,助力开发者高效入门与落地。
|
21天前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
23天前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
5月前
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
1107 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
3月前
|
小程序 Java 关系型数据库
圈子系统公众号app小程序系统源码圈子系统带即时通讯 多级圈子系统源码 兴趣小组系统开源 私密圈子系统代码 会员制社区系统
本圈子系统解决方案提供即时通讯、多级圈子、兴趣小组、私密社区及会员制管理功能。支持开源与商业方案,推荐ThinkSNS+、EasyClub及OpenFire等系统,并提供前后端技术选型建议,助力快速搭建社交平台。
143 0
|
4月前
|
消息中间件 缓存 小程序
婚恋交友相亲公众号app小程序系统源码「脱单神器」婚恋平台全套代码 - 支持快速二次开发
这是一套基于SpringBoot + Vue3开发的婚恋交友系统,支持微信公众号、Uniapp小程序和APP端。系统包含实名认证、智能匹配、视频相亲、会员体系等功能,适用于婚恋社交平台和相亲交友应用。后端采用SpringBoot 3.x与MyBatis-Plus,前端使用Vue3与Uniapp,支持快速部署和二次开发。适合技术团队或有经验的个人创业者使用。
265 8
|
6月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
518 12
|
9月前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
334 0
|
11月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
217 0
在线课堂+工具组件小程序uniapp移动端源码
|
12月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
1873 3

热门文章

最新文章