700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Java项目茶叶溯源系统(java+SSM+JSP+bootstrap+layUI+mysql)

Java项目茶叶溯源系统(java+SSM+JSP+bootstrap+layUI+mysql)

时间:2020-10-16 12:56:35

相关推荐

Java项目茶叶溯源系统(java+SSM+JSP+bootstrap+layUI+mysql)

项目介绍

茶叶溯源系统,分为前台与后台。普通用户可在前台通过18位的编码查询茶叶的出售历史。

后台分为两种角色,管理员与经销商;

管理员主要功能包括:

主界面;

管理员管理:管理员列表、添加管理员;

分类管理:茶叶类型的添加、删除、修改;

茶叶管理:茶叶列表、添加、删除、修改茶叶;

大包装管理:大包装列表、添加、删除、修改大包装;

单品管理:售出统计、单品信息修改;

经销商主要功能包括:

主界面;

售出单品:确认售出单品;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可

4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7版本;

技术栈

1. 后端:Spring SpringMVC MyBatis

2. 前端:JSP+bootstrap+jQuery+layUI

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;

3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

4. 运行项目,输入localhost:8080/tea-web/ 登录

管理员账号控制层:

/*** (AdminAcct)表控制层*管理员账号*/@CrossOrigin@RestController@RequestMapping("admin")public class AdminAcctController {/*** 服务对象*/@Resourceprivate AdminAcctService adminAcctService;@Resourceprivate LicService licService;@Resourceprivate EntService entService;@Resourceprivate TypeTblService typeTblService;/*** 通过主键查询单条数据** @param id 主键* @return 单条数据*/public AdminAcct selectOne(Integer id) {return this.adminAcctService.queryById(id);}/*** 查询指定行数据** @param offset 查询起始位置* @param limit 查询条数* @return 对象列表*/public List<AdminAcct> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit) {return this.adminAcctService.queryAllByLimit(offset, limit);}/*** 通过主键删除数据** @param id 主键* @return 是否成功*/public boolean deleteById(Integer id) {return this.adminAcctService.deleteById(id);}/*** 修改数据*/public AdminAcct update(Integer id,String username,String pwd) {AdminAcct adminAcct=new AdminAcct();adminAcct.setId(id);adminAcct.setUsername(username);adminAcct.setPwd(pwd);return this.adminAcctService.update(adminAcct);}//登录注册/*** 登录** @param username 用户名* @param password 密码* @return Result对象*/@GetMapping( "login")public Result login(String username, String password) {BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();Result result=new Result();result.setSuccess(false);result.setDetail(null);if (username==null||username==""){result.setMsg("用户名不可为空");System.out.println("用户名不可为空");return result;}if(password==""||password==null){result.setMsg("密码不可为空");System.out.println("密码不可为空");return result;}AdminAcct temp=new AdminAcct();temp=this.adminAcctService.queryByUserName(username);if(temp==null) {System.out.println("用户名不存在");result.setMsg("用户名不存在");return result;}System.out.println(bCryptPasswordEncoder.encode(password));boolean flag=bCryptPasswordEncoder.matches(password,temp.getPwd());if(flag){temp.setPwd("");System.out.println("登录成功");result.setMsg("登录成功");result.setSuccess(true);if(temp.getToken()==null){String uuid = UUID.randomUUID().toString().replaceAll("-","");temp.setToken(uuid);this.adminAcctService.update(temp);}result.setDetail(temp);return result;}else{result.setMsg("密码错误");System.out.println("密码错误");return result;}}/*** 注册** @param username 用户名* @param password 密码* @return Result对象*/@PostMapping("register")public Result register(String username,String password) {BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();Result result=new Result();AdminAcct temp=new AdminAcct();result.setSuccess(false);result.setDetail(null);temp=this.adminAcctService.queryByUserName(username);if (username==null||username==""){result.setMsg("用户名不可为空");System.out.println("用户名不可为空");return result;}if (temp!=null){result.setMsg("用户名重复");System.out.println("用户名重复");return result;}temp=new AdminAcct();temp.setUsername(username);password=bCryptPasswordEncoder.encode(password);temp.setPwd(password);String uuid = UUID.randomUUID().toString().replaceAll("-","");temp.setToken(uuid);this.adminAcctService.insert(temp);temp.setPwd("");result.setDetail(temp);result.setMsg("注册成功");result.setSuccess(true);System.out.println("注册成功");return result;}//备案审核相关/*** 输出待审核列表* @param id 主键* @return*/public Result licOfAudit_list(Integer id){Result result=new Result();result.setSuccess(false);if(adminAcctService.queryById(id)==null){result.setMsg("企业id错误");return result;}result.setDetail(licService.getModelByState(0));result.setSuccess(true);result.setMsg("待审核证书获取成功");return result;}/**** @param lid* @param state* @return*//*** 审核证书* @param lid 证书id* @param state 证书状态* @return*/@PostMapping("setLicState")public Result SetLicState(Integer lid,Integer state){Result result=new Result();result.setSuccess(false);if(lid==null){result.setMsg("lid不可为空");return result;}Lic lic=licService.queryById(lid);if(lic==null){result.setMsg("证书id错误");return result;}result.setSuccess(true);result.setMsg("证书通过成功");lic.setLicState(state);result.setDetail(licService.update(lic));return result;}/*** 证书筛选* @param ename 企业名* @param lictype 证书类型* @param sernum 编号* @return*/@Transactional(readOnly = true)@GetMapping("licList")public Result Lic_Screen(String ename, Integer lictype, String sernum,Integer licstate){Result result=new Result();result.setSuccess(false);List<Ent> list=new ArrayList<Ent>();if(ename!=null){list=entService.queryByEName(ename);if(list.isEmpty()){result.setMsg("无该企业名的类似企业");System.out.println("企业名错误");return result;}}if (lictype!=null&&typeTblService.queryById(lictype)==null){result.setMsg("企业类型错误");System.out.println("企业类型错误");return result;}List<LicModel> list_lic=new ArrayList<LicModel>();if(!list.isEmpty()){Iterator<Ent> iterator=list.listIterator();while (iterator.hasNext()) {Lic lic = new Lic();lic.setEid(((Ent)iterator.next()).getEid());lic.setLicType(lictype);lic.setSerNum(sernum);lic.setLicState(licstate);List<LicModel> temp=licService.queryAllModel(lic);list_lic.addAll(temp);}}else {Lic lic = new Lic();lic.setLicType(lictype);lic.setSerNum(sernum);lic.setLicState(licstate);list_lic=licService.queryAllModel(lic);}if(list_lic.isEmpty()){result.setMsg("无此类证书");return result;}result.setMsg("筛选成功");result.setSuccess(true);result.setDetail(list_lic);return result;}/*** 删除证书* @param lid 证书编号* @return Result*/@PostMapping("licdelete")public Result Lic_Delete(Integer lid){Result result=new Result();result.setSuccess(false);if(licService.deleteById(lid)) {result.setSuccess(true);result.setMsg("删除成功");return result;}else {result.setMsg("删除失败,证书不存在");return result;}}/**@PostMapping("")public Result lic_Pass(Integer lid){Result result=new Result();result.setSuccess(false);Lic lic=licService.queryById(lid);if(lic==null){result.setMsg("证书id错误");return result;}result.setSuccess(true);result.setMsg("证书通过成功");lic.setLicState((short)1);result.setDetail(licService.update(lic));return result;}@PostMapping("LicNoPass")public Result lic_NoPass(Integer lid){Result result=new Result();result.setSuccess(false);Lic lic=licService.queryById(lid);if(lic==null){result.setMsg("证书id错误");return result;}result.setSuccess(true);result.setMsg("证书不通过成功");lic.setLicState((short)2);result.setDetail(licService.update(lic));return result;}*///企业信息相关/*** 企业信息筛选* @param username 用户名* @param ename 企业名* @param etype 企业类型* @param tel 电话* @param email 邮箱* @return*/@GetMapping("userList")public Result Account_Screen(String username,String ename,Integer etype,String tel,String email){Result result=new Result();result.setSuccess(false);String regEx = "^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$";Pattern pattern = pile(regEx);Matcher matcher ;/**if(email!=null) {//邮箱格式验证matcher=pattern.matcher(email);if (!matcher.matches()) {result.setMsg("邮箱格式错误");System.out.println("邮箱格式错误");return result;}}*///用户名格式验证/**regEx="-^[\w\d_]{4,16}$";pattern=pile(regEx);if(username!=null){matcher=pattern.matcher(username);if(!matcher.matches()){result.setMsg("用户名格式错误");System.out.println("用户名格式错误");return result;}}*/if (etype!=null&&typeTblService.queryById(etype)==null){result.setMsg("企业类型错误");System.out.println("企业类型错误");return result;}Ent ent=new Ent();ent.setTel(tel);ent.setUsername(username);ent.setEname(ename);ent.setEmail(email);ent.setEtype(etype);List list=entService.queryAll(ent);if (list.isEmpty()){result.setMsg("无此类信息");return result;}result.setDetail(entService.queryAll(ent));result.setSuccess(true);result.setMsg("筛选成功");return result;}/*** 修改企业信息* @param eid 企业id* @param etype 企业类型* @param tele 电话* @param ename 企业名字* @param email 邮箱* @return*/@PostMapping("editEntDetail")public Result EditEnt(Integer eid,Integer etype,String tele,String ename,String email){//邮箱格式验证Result result=new Result();result.setSuccess(false);String regEx="^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$";Pattern pattern=pile(regEx);Matcher matcher;if(email!=null) {matcher=pattern.matcher(email);if (!matcher.matches()) {result.setMsg("邮箱格式错误");System.out.println("邮箱格式错误");return result;}}Ent ent=new Ent();ent.setEid(eid);ent.setEtype(etype);ent.setTel(tele);ent.setEname(ename);result.setSuccess(true);result.setMsg("修改成功");ent=entService.update(ent);ent.setPwd("");result.setDetail(ent);return result;}/***重置企业账号token* @param eid 企业id* @return*/@PostMapping("resetEntToken")public Result ResetEntToken(Integer eid){Result result=new Result();result.setSuccess(false);if(eid==null){result.setMsg("eid不可为空");return result;}if(entService.queryById(eid)==null){result.setMsg("eid错误");return result;}Ent ent=entService.queryById(eid);String token=UUID.randomUUID().toString().replaceAll("-","");ent.setToken(token);ent=entService.update(ent);result.setMsg("重置token成功");result.setSuccess(true);result.setDetail(ent);return result;}}

产品管理控制层:

/*** (Product)表控制层**/@RestController@RequestMapping("product")public class ProductController {/*** 服务对象*/@Resourceprivate ProductService productService;@Resourceprivate ProcessController processController;/*** 通过主键查询单条数据** @param pid 主键* @return 单条数据*/@GetMapping("selectOne")public Product selectOne(Integer pid) {return this.productService.queryById(pid);}/*** 新增数据*///http://127.0.0.1:11451/product/insertOne?pid=1&type=5001001&weight=3.5&ptime=-12-12&lastOid=1&state=1// @GetMapping("insertOne")// public Product insert(Integer pid, Integer type, Double weight, String ptime,Integer lastOid,Short state) {// Product product=new Product();// product.setPid(pid);// product.setType(type);// product.setWeight(weight);// product.setPtime(ptime);// product.setLastOid(lastOid);// product.setState(state);// return this.productService.insert(product);// }/*** 更新数据**///http://127.0.0.1:11451/product/updateOne?pid=1&bid=2@GetMapping("updateOne")public Product update(Integer pid, Integer type, Double weight, String ptime,Integer lastOid,Short state) {Product product=new Product();product.setPid(pid);product.setType(type);product.setWeight(weight);product.setPtime(ptime);product.setLastOid(lastOid);product.setState(state);return productService.update(product);}/*** 删除数据*///http://127.0.0.1:11451/product/deleteOne?pid=2@GetMapping("deleteOne")public boolean deleteById(Integer pid) {return productService.deleteById(pid);}/*** 插入新数据** @param type 肉品类型* @param weight 重量* @param time 加工时间* @param lastoid 最新订单号* @param state 状态* @param bid 屠宰着id* @param aid 牲畜id* @return 单条数据*/@GetMapping("insert")public Result insert(Integer type, Double weight, String time, Integer lastoid, short state,Integer bid,Integer aid) {Result result=new Result();result.setSuccess(false);result.setDetail(null);Product product=new Product();SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");try {// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如/02/29会被接受,并转换成/03/01format.setLenient(false);format.parse(time);} catch (ParseException e) {System.out.println("时间输入格式错误");e.printStackTrace();result.setMsg("时间未按格式输入");return result;// e.printStackTrace();// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对}product.setLastOid(lastoid);product.setPtime(time);product.setState(state);product.setType(type);product.setWeight(weight);product=productService.insert(product);this.processController.insert(bid,aid,product.getPid());result.setMsg("加工完成");result.setDetail(product);result.setSuccess(true);return result;}}

类型管理控制层:

/*** (TypeTbl)表控制层**/@RestController@RequestMapping("typeTbl")public class TypeTblController {/*** 服务对象*/@Resourceprivate TypeTblService typeTblService;/*** 通过主键查询单条数据** @param tid 主键* @return 单条数据*/@GetMapping("selectOne")public TypeTbl selectOne(Integer tid) {return this.typeTblService.queryById(tid);}/*** 新增数据*///http://127.0.0.1:11451/typeTbl/insertOne?tid=5&name=sda@GetMapping("insertOne")public TypeTbl insert(String name) {TypeTbl typeTbl=new TypeTbl();typeTbl.setName(name);return this.typeTblService.insert(typeTbl);}/*** 更新数据**///http://127.0.0.1:11451/typeTbl/updateOne?tid=5&name=hjk@GetMapping("updateOne")public TypeTbl update(Integer tid, String name) {TypeTbl typeTbl=new TypeTbl();typeTbl.setTid(tid);typeTbl.setName(name);return typeTblService.update(typeTbl);}/*** 删除数据*///http://127.0.0.1:11451/typeTbl/deleteOne?tid=5@GetMapping("deleteOne")public boolean deleteById(Integer tid) {return typeTblService.deleteById(tid);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。