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

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

一,技术选型:


微信图片_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);
    }


六,系统源码获取


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

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


目录
相关文章
|
11天前
|
运维 小程序 前端开发
结合圈层营销策略,打造稳定可靠的圈子app系统,圈子小程序!
圈子系统是一种社交平台,用户可按兴趣、职业等创建或加入“圈子”,进行内容发布、讨论和资源共享。开发时需考虑需求分析、技术选型(如PHP、MySQL)、页面设计、功能实现(注册、登录、发布、评论等)、测试优化及运维管理。圈层营销则通过精准化、高端化的方式传递品牌信息,增强客户归属感。圈子小程序基于微信等平台,具备跨平台、便捷性和社交性,开发过程中需明确需求、选择技术框架、设计页面并确保稳定性和流畅性。
|
1天前
|
移动开发 小程序 前端开发
超详细攻略!uniapp陪玩系统,打包陪玩小程序、H5需要注意什么?
陪玩系统的打包过程涵盖APP、小程序和H5平台。APP打包需使用uni-app开发工具,配置项目信息并选择云打包;小程序打包需在微信公众平台注册账号并提交审核;H5打包则直接通过uni-app生成文件并上传至服务器。各平台需注意权限配置、代码规范及充分测试,确保应用稳定性和兼容性。
|
5天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
11天前
|
移动开发 小程序 前端开发
几千怎么部署搭建校园服务平台,校园圈子论坛系统小程序搭建,校园系统源码,多种功能一体的综合性校园平台
校园圈子论坛是一款集交友、二手市场、聊天等多功能于一体的校园社交平台,支持App、小程序和H5三端交付。学生可处理闲置物品、结识新朋友,通过算法匹配兴趣相投的用户。平台提供分享邀请机制,支持自动绑定推荐关系,并设有奖励机制。开发过程中需注重数据安全与系统稳定性,确保功能兼容及性能优化。
53 5
|
12天前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
79 3
|
18天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
12天前
|
小程序 安全 网络安全
清晰易懂!陪玩系统源码搭建的核心功能,陪玩小程序、陪玩app的搭建步骤!
陪玩系统源码包含多种约单方式、实时语音互动、直播间与聊天室、大神申请与抢单、动态互动与社交及在线支付与评价等核心功能。搭建步骤包括环境准备、源码上传与解压、数据库配置、域名与SSL证书绑定、伪静态配置及后台管理。注意事项涵盖源码安全性、二次开发、合规性和技术支持。确保平台安全、合规并提供良好用户体验是关键。
|
12天前
|
小程序 前端开发 数据挖掘
圈子论坛社区交友系统开源版小程序源码,自定义小程序管理社区圈子软件开发,打造受欢迎社交圈
通过获取开源版小程序源码、进行自定义小程序管理社区圈子软件开发以及注重用户体验和功能模块的设计,可以打造一个受欢迎的社交圈。同时,需要不断优化和完善系统,以满足用户不断变化的需求和期望。
39 0
|
2月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
43 0
在线课堂+工具组件小程序uniapp移动端源码
|
3月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
408 3