当前位置: 首页 > 编程日记 > 正文

Java项目:进销存系统(java+Gui)

源码获取:博客首页 "资源" 里下载!

功能介绍:

基本信息管理、库存管理、销售管理、订单管理、日志管理、供应商基本信息、员工基本信息、商品信息、入库管理、出库管理、剩余库存

商品信息控制层:

/*** <p>* 前端控制器* </p>**/
@RestController
@RequestMapping("/goods")
public class GoodsController {@Autowiredprivate GoodsService goodsService;@Autowiredprivate ProviderService providerService;@Autowiredprivate CategoryService categoryService;/*** 商品模糊查询** @param* @return*/@SysLog("商品查询操作")@RequestMapping("/goodsList")public DataGridViewResult goodsList(GoodsVO goodsVO) {//创建分页信息    参数1 当前页  参数2 每页显示条数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.isEmpty(goodsVO.getGname()), "gname", goodsVO.getGname());IPage<Goods> goodsIPage = goodsService.page(page, queryWrapper);List<Goods> records = goodsIPage.getRecords();for (Goods goods : records) {Provider provider = providerService.getById(goods.getProviderid());if (null != provider) {goods.setProvidername(provider.getProvidername());}}return new DataGridViewResult(goodsIPage.getTotal(), records);}/*** 添加商品信息** @param goods* @return*/@SysLog("商品添加操作")@PostMapping("/addgoods")public Result addGoods(Goods goods) {String id = RandomStringUtils.randomAlphanumeric(8);if (goods.getGoodsimg()!=null&&goods.getGoodsimg().endsWith("_temp")){String newName = AppFileUtils.renameFile(goods.getGoodsimg());goods.setGoodsimg(newName);}goods.setGnumbering(id);boolean bool = goodsService.save(goods);if (bool) {return Result.success(true, "200", "添加成功!");}return Result.error(false, null, "添加失败!");}/*** 修改商品信息** @param goods* @return*/@SysLog("商品修改操作")@PostMapping("/updategoods")public Result updateGoods(Goods goods) {//商品图片不是默认图片if (!(goods.getGoodsimg()!=null&&goods.getGoodsimg().equals(Constast.DEFAULT_IMG))){if (goods.getGoodsimg().endsWith("_temp")){String newName = AppFileUtils.renameFile(goods.getGoodsimg());goods.setGoodsimg(newName);//删除原先的图片String oldPath = goodsService.getById(goods.getGid()).getGoodsimg();AppFileUtils.removeFileByPath(oldPath);}}boolean bool = goodsService.updateById(goods);if (bool) {return Result.success(true, "200", "修改成功!");}return Result.error(false, null, "修改失败!");}/*** 删除单条数据** @param id* @return*/@SysLog("商品删除操作")@RequestMapping("/deleteOne")public Result deleteOne(int id) {boolean bool = goodsService.removeById(id);if (bool) {return Result.success(true, "200", "删除成功!");}return Result.error(false, null, "删除失败!");}/*** 根据id查询当前商品拥有的类别** @param id* @return*/@RequestMapping("/initGoodsByCategoryId")public DataGridViewResult initGoodsByCategoryId(int id) {List<Map<String, Object>> mapList = null;try {//查询所有类别列表mapList = categoryService.listMaps();//根据商品id查询商品拥有的类别Set<Integer> cateIdList = categoryService.findGoodsByCategoryId(id);for (Map<String, Object> map : mapList) {//定义标记 默认不选中boolean flag = false;int cateId = (int) map.get("cateid");for (Integer cid : cateIdList) {if (cid == cateId) {flag = true;break;}}map.put("LAY_CHECKED", flag);}} catch (Exception e) {e.printStackTrace();}return new DataGridViewResult(Long.valueOf(mapList.size()), mapList);}/*** 根据商品id加载商品信息* @param goodsid* @return*/@GetMapping("/loadGoodsById")public DataGridViewResult loadGoodsById(int goodsid) {QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>();goodsQueryWrapper.eq(goodsid != 0, "gid", goodsid);Goods goods = goodsService.getById(goodsid);return new DataGridViewResult(goods);}/*** 为商品分配类别** @param categoryids* @param goodsid* @return*/@SysLog("类别添加操作")@RequestMapping("/saveGoodsCategory")public Result saveGoodsCategory(String categoryids, int goodsid) {try {if (goodsService.saveGoodsCategory(goodsid, categoryids)) {return Result.success(true, null, "分配成功");}} catch (Exception e) {e.printStackTrace();}return Result.error(false, null, "分配失败");}/*** 加载下拉框** @return*/@RequestMapping("/loadAllGoods")public DataGridViewResult loadAllGoods() {QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();List<Goods> list = goodsService.list(queryWrapper);return new DataGridViewResult(list);}/*** 根据供应商查商品下拉框** @param providerid* @return*/@RequestMapping("/loadGoodsByProvidreId")public DataGridViewResult loadGoodsByProvidreId(Integer providerid) {QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>();goodsQueryWrapper.eq(providerid != null, "providerid", providerid);List<Goods> list = goodsService.list(goodsQueryWrapper);for (Goods goods : list) {Provider provider = providerService.getById(goods.getProviderid());if (null != provider) {goods.setProvidername(provider.getProvidername());}}return new DataGridViewResult(list);}
}

用户信息控制层:

/*** <p>* 前端控制器* </p>*/
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate RoleService roleService;/*** 登录** @param username 用户名* @param password 密码* @param request* @return*/@SysLog("登陆操作")@PostMapping("/login")public Result login(String username, String password, HttpServletRequest request) {try {//获取当前登录主体对象Subject subject = SecurityUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(username, password);subject.login(token);LoginUserVO userDTO = (LoginUserVO) subject.getPrincipal();request.getSession().setAttribute("username", userDTO.getUser());return Result.success(true, "200", "登录成功");} catch (UnknownAccountException e) {e.printStackTrace();return Result.error(false, "400", "登录失败,用户名不存在");}catch (IncorrectCredentialsException e) {e.printStackTrace();return Result.error(false, "400", "登录失败,密码错误");}catch (AuthenticationException e) {e.printStackTrace();return Result.error(false, "400", "登录失败,账户禁用");}}/*** 得到登陆验证码* @param response* @param session* @throws IOException*/@RequestMapping("/getCode")public void getCode(HttpServletResponse response, HttpSession session) throws IOException {//定义图形验证码的长和宽LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(116, 36,4,5);session.setAttribute("code",lineCaptcha.getCode());try {ServletOutputStream outputStream = response.getOutputStream();lineCaptcha.write(outputStream);outputStream.close();} catch (IOException e) {e.printStackTrace();}}/*** 查询所有用户信息** @param userVO* @return*/@SysLog("用户查询操作")@RequestMapping("/userList")public DataGridViewResult userList(UserVO userVO) {//分页构造函数IPage<User> page = new Page<>(userVO.getPage(), userVO.getLimit());QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.like(!StringUtils.isEmpty(userVO.getUsername()), "username", userVO.getUsername());queryWrapper.like(!StringUtils.isEmpty(userVO.getUname()), "uname", userVO.getUname());/*** 翻页查询* @param page         翻页对象* @param queryWrapper 实体对象封装操作类*/IPage<User> userIPage = userService.page(page, queryWrapper);return new DataGridViewResult(userIPage.getTotal(), userIPage.getRecords());}/*** 添加用户信息** @param user* @return*/@SysLog("用户添加操作")@PostMapping("/adduser")public Result addRole(User user) {user.setUcreatetime(new Date());String salt = UUIDUtil.randomUUID();user.setPassword(PasswordUtil.md5("000000", salt, 2));user.setSalt(salt);user.setType(1);boolean bool = userService.save(user);try {if (bool) {return Result.success(true, "200", "添加成功!");}} catch (Exception e) {e.printStackTrace();}return Result.error(false, null, "添加失败!");}/*** 校验用户名是否存在** @param username* @return*/@RequestMapping("/checkUserName")public String checkUserName(String username) {Map<String, Object> map = new HashMap<>();try {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.eq("username", username);User user = userService.getOne(queryWrapper);if (user != null) {map.put("exist", true);map.put("message", "用户名已存在");} else {map.put("exist", false);map.put("message", "用户名可以使用");}} catch (Exception e) {e.printStackTrace();}return JSON.toJSONString(map);}/*** 修改用户信息** @param user* @return*/@SysLog("用户修改操作")@PostMapping("/updateuser")public Result updateUser(User user) {boolean bool = userService.updateById(user);try {if (bool) {return Result.success(true, "200", "修改成功!");}} catch (Exception e) {e.printStackTrace();}return Result.error(false, null, "修改失败!");}/*** 删除单条数据** @param id* @return*/@SysLog("用户删除操作")@RequestMapping("/deleteOne")public Result deleteOne(int id) {boolean bool = userService.removeById(id);try {if (bool) {return Result.success(true, "200", "删除成功!");}} catch (Exception e) {e.printStackTrace();}return Result.error(false, null, "删除失败!");}/*** 重置密码** @param id* @return*/@SysLog("用户修改操作")@PostMapping("/resetPwd")public Result resetPwd(int id) {User user = new User();String salt = UUIDUtil.randomUUID();user.setUid(id);user.setPassword(PasswordUtil.md5("000000", salt, 2));user.setSalt(salt);boolean bool = userService.updateById(user);try {if (bool) {return Result.success(true, "200", "重置成功!");}} catch (Exception e) {e.printStackTrace();}return Result.error(false, null, "重置失败!");}/*** 根据id查询当前用户拥有的角色** @param id* @return*/@RequestMapping("/initRoleByUserId")public DataGridViewResult initRoleByUserId(int id) {List<Map<String, Object>> mapList = null;try {//查询所有角色列表mapList = roleService.listMaps();//根据用户id查询用户拥有的角色Set<Integer> roleIdList = userService.findRoleByUserId(id);for (Map<String, Object> map : mapList) {//定义标记 默认不选中boolean flag = false;int roleId = (int) map.get("roleid");for (Integer rid : roleIdList) {if (rid == roleId) {flag = true;break;}}map.put("LAY_CHECKED", flag);}} catch (Exception e) {e.printStackTrace();}return new DataGridViewResult(Long.valueOf(mapList.size()), mapList);}/*** 为用户分配角色** @param roleids* @param userid* @return*/@SysLog("用户添加操作")@RequestMapping("/saveUserRole")public Result saveUserRole(String roleids, int userid) {try {if (userService.saveUserRole(userid, roleids)) {return Result.success(true, null, "分配成功");}} catch (Exception e) {e.printStackTrace();}return Result.error(false, null, "分配失败");}/*** 修改密码** @param newPassWord1* @param newPassWord2* @return*/@RequestMapping("/updateUserPassWord")public Result updateUserPassWord(String newPassWord1, String newPassWord2,HttpSession session) {User sessionUser = (User) session.getAttribute("username");if (newPassWord1.equals(newPassWord2)){User user = new User();String salt = UUIDUtil.randomUUID();user.setUid(sessionUser.getUid());user.setPassword(PasswordUtil.md5(newPassWord1, salt, 2));user.setSalt(salt);boolean bool = userService.updateById(user);if (bool){return Result.success(true,null,"修改成功");}else {return Result.error(false,null,"修改失败!");}}else {return Result.error(false,null,"修改失败,两次密码不一致!");}}}

源码获取:博客首页 "资源" 里下载!

相关文章:

IDP申请直到软件上架流程 - iOS

第一&#xff1a;IDP的申请 1.先在iPhone DevCenter上注册成为iphone developer 2.加入iPhone开发程序项目iPhone Developer Program Apply Now 3.打算收费的都建议选择99刀那个&#xff0c;QTY是个数的意思。1就好。 4.选择地区china&#xff0c;(很早之前没有china&#xff0…

灭霸—个人冲刺(4)

灵魂三问&#xff1a;昨天做了什么&#xff1f;1.手机验证码 2h 2.整体框架搭建尝试 2h 目标任务量&#xff1a;100% 完成任务量&#xff1a;100% 今天要做什么&#xff1f;1.数据库建立及连接 16h 遇到困难没有&#xff1f;2.整体框架搭建时因为连接服务器分为三类&#xf…

关于 Rocksdb 的 EnvWrapper 作用的小讨论

临下班前一位做引擎的小伙伴提了个小问题&#xff0c; Rocksdb 实现了非常多的Env backend 这一些backend 可以让用户根据自己需求创建不同 公共接口backend&#xff0c;来实现自己的文件操作或者公共线程池操作。 Env* env new rocksdb::HdfsEnv(FLAGS_hdfs) 问题是&#xf…

corepython第九章:文件和输入输出

学习笔记: OS模块代码示例: 1 import os2 for tmpdir in (/tmp,rc:\users\administrator\desktop):3 #如果存在括号里面的目录&#xff0c;则break4 if os.path.isdir(tmpdir):5 break6 #如果不存在&#xff0c;则tmpdir为空值&#xff0c;即False7 else:8 pri…

Java项目:学生管理系统(无库版)(java+打印控制台)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 学生成绩管理系统成绩表 用户管理操作&#xff1a; /*** 用户管理操作*/ Controller RequestMapping("/user") public class UserController {Autowiredprivate UserServi…

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理②...

原文:构建ASP.NET MVC4EF5EasyUIUnity2.x注入的后台管理系统&#xff08;12&#xff09;-系统日志和异常的处理② 上一讲我们做了日志与异常的结果显示列表&#xff0c;这一节我们讲要把他应用系统中来。 首先我们在App.Common类库中创建一个通用类ResultHelper&#xff0c;这个…

爬取猫眼怦然心动电影评论

作业要求来源&#xff1a;https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 可以用pandas读出之前保存的数据&#xff1a; newsdf pd.read_csv(rF:\duym\gzccnews.csv) 一.把爬取的内容保存到数据库sqlite3 import sqlite3with sqlite3.connect(gzccnewsdb.sqli…

TCMalloc(Thread-Caching malloc) 基本设计原理

文章目录背景如何使用架构概览1. TCMalloc Front-end1.1 小对象和大对象的内存分配过程1.2 内存释放过程1.3 Per-CPU mode1.4 Per-thread mode1.5 per-cpu 和 per-thread 运行时内存管理算法对比2. TCMalloc Middle-end2.1 Transfer Cache2.2 Central Free List2.3 Pagemap 和 …

Java项目:控制台商城系统(java+打印控制台)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 客户信息管理、商品信息管理、购物信息管理、退出系统 显示系统主菜单&#xff1a; public class SystemMenu {//显示系统主菜单public void showMainMenu(){System.out.println(&qu…

PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

PAT (Basic Level) Practise &#xff08;中文&#xff09;-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 给定一个常数K以及一个单链表L&#xff0c;请编写程序将L中每K个结点反转。例如&#xff1a;给定L为1→2→3→4→5→6&#xff0c;K为3&am…

初识Quartz(三)

为什么80%的码农都做不了架构师&#xff1f;>>> 简单作业&#xff1a; package quartz_project.example3;import java.util.Date;import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.Job…

内存分配器设计的演进

文章目录栈内存空间是否够用系统调用申请内存最简单的内存分配器实现 -- bump allocator可扩容的 Bump alloactor通过free-list 管理的 allocator通过size-buckets 维护多个free-list 的 allocatorCache friendly allocator需要考虑更多问题的allocator性能易用性本文希望描述一…

Android OpenGL ES(十一)绘制一个20面体 .

前面介绍了OpenGL ES所有能够绘制的基本图形&#xff0c;点&#xff0c;线段和三角形。其它所有复杂的2D或3D图形都是由这些基本图形构成。 本例介绍如何使用三角形构造一个正20面体。一个正20面体&#xff0c;有12个顶点&#xff0c;20个面&#xff0c;30条边构成&#xff1a;…

Java项目:学生选课系统(java+javaweb+jdbc)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 用户菜单、学生管理、教师管理、课程管理、成绩排名查询 学生管理控制层&#xff1a; Controller RequestMapping("/student") public class StudentController {private …

Xtrabackup对mysql全备以及增量备份实施

Xtrabackup对mysql全备以及增量备份实施1.完全备份与恢复本文使用的是centos5.8 64位系统&#xff0c;mysql 使用5.5.35.如果要使用一个最小权限的用户进行备份&#xff0c;可基于以下&#xff1a;mysql> createuser bkuserlocalhost identified by redhat;mysql> grant …

js浅拷贝和深拷贝

浅度拷贝&#xff1a;复制一层对象的属性&#xff0c;并不包括对象里面的为引用类型的数据&#xff0c;当改变拷贝的对象里面的引用类型时&#xff0c;源对象也会改变。 深度拷贝&#xff1a;重新开辟一个内存空间&#xff0c;需要递归拷贝对象里的引用&#xff0c;直到子属性都…

关于 fallocate 文件系统预分配 的一些细粒度测试

文章目录Rocksdb 中的预分配Fallocate in rocksdb 性能测试Fallocate 使用 以及 对应配置的行为API 使用不同 Mode 的行为分配磁盘空间释放磁盘空间折叠/裁剪 文件内容清零文件 扩容文件Rocksdb 中的预分配 预分配文件存储空间 在存储引擎中用的还是比较频繁的&#xff0c;尤…

mac 使用nvm安装node

1.curl https://raw.github.com/creationix/nvm/master/install.sh | sh2。vi ~/.bash_profile 添加&#xff1a;source /Users/dujie/.nvm/nvm.sh nvm install 0.10.24 nvm use 0.10.24 # 默認使用 0.10.24 版本&#xff0c;否則每次關掉 Terminal 就得重新 nvm use 一次 $…

Java项目:人事管理系统(java+javaweb+jdbc)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 登录、新增、修改、离职 员工管理控制层&#xff1a; Controller RequestMapping("/employee") public class EmployeeController {Autowiredprivate IEmployeeService em…

转:async await 的前世今生 ; 异步 线程 多线程

写的非常好,改天搬过来

ubuntu14.04初体会

2014年4月17日ubuntu新的长期支持版14.04公布了&#xff0c;中国时间18日一早就能够下载到。18日晚。在我的X200上安装上了14.04&#xff0c;算是比較早一批体会到14.04正式版的人吧。对照12.04&#xff0c;14.04提升的执行速度非常明显&#xff0c;界面改善也是令人眼前一亮&a…

Linux 下获取本机所有网卡 以及 网卡对应ip 列表

简单record 一下 #include <arpa/inet.h> // struct sockaddr_in #include <errno.h> #include <net/if.h> // struct ifreq and struct if_nameindex #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/i…

Java项目:植物大战僵尸(java+swing)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 植物大战僵尸、冒险模式、生存模式、解谜模式 小车服务类&#xff1a; public class CarThread extends Thread{private boolean flagtrue;private int x;private int y;private JL…

秋实大哥の恋爱物语

//裸kmp&#xff0c;劳资居然不会写&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 题意&#xff1a;中文题面自己看 解&#xff1a;差分裸kmp 因为可以上下移动&#xff0c;所以只要变化趋势相符就行&#xff0c;于是我们先做一个差分&#xff0c…

《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程5

命令&#xff1a;内部命令&#xff1a;由shell程序自带的命令叫做内部命令&#xff1b;外部命令&#xff1a;在系统的某个路径下&#xff0c;有一个与命令同名的可执行程序叫做外部命令。查看内外部命令的命令&#xff1a;type 命令命令选项&#xff1a;用于调整命令执行行为的…

八、LaTex中的表格

转载于:https://www.cnblogs.com/invisible2/p/10813964.html

基于持久内存的 单机上亿(128B)QPS -- 持久化 k/v 存储引擎

文章目录性能数据设计背景设计架构Hash 索引结构 及 PMEM空间管理形态基本API 及 实现API初始化流程写流程读流程删除流程PMEM Allocator设计主要组件空间分配流程空间释放图数据库 on KVDK 性能性能数据 这个kv 存储引擎是持久化的存储引擎&#xff0c;存储介质是PMEM&#x…

SCALA当的trait

不是特别懂&#xff0c;但感觉和RUBY当中的MIX-IN功能有几分相似&#xff0c;这又扯到了多重继承及JAVA当中的接口虚拟类了。。 package com.hengheng.scalaclass UseTrait {} trait Logger {def log(msg : String) {println("log : " msg)} } trait ConsoleLogger …

Java项目:贪吃蛇游戏(java+swing)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 贪吃蛇游戏 大嘴鱼洁面类。完成大嘴鱼的界面的绘制: /*** 大嘴鱼洁面类。完成大嘴鱼的界面的绘制。*/ public class BigMouthFishFrame extends JFrame{private FishPool pool null;…

使用Ext Form自动绑定Html中的Form元素

2019独角兽企业重金招聘Python工程师标准>>> Java代码 //把ext 对象绑定在Html Form元素时的ext属性中 Ext.override(Ext.Component, { initComponent :function(){ this.on(render, function(){ if(this.el) Ext.getDom(this.el).ext this; …