——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于javaweb的SpringBoot食品溯源系统(java+springboot+maven+mybatis+vue+mysql)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| yangzhichang 123456 养殖场 tuzaichang 123456 屠宰场 pifashichang 123456 批发市场 lingshoushang 123456 零售商
流程:
1 养殖场 牲畜管理-牲畜登记
2 批发市场 订单管理-确认收货(商品类型=牲畜,表示从养殖场收购,此时养殖场出现售出订单)
3 屠宰场 加工登记-加工登记
4 零售商 订单管理-确认收货(表示从批发市场购入,此时批发市场出现售出订单)
|
一、项目运行 环境配置:
Jdk1.8 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等。
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| boolean flag=false; if(url.startsWith("/admin")) { AdminAcct adminAcct=adminAcctService.queryByToken(token); if(adminAcct==null){ flag=true; } else { System.out.println("id:" + String.valueOf(adminAcct.getId())); } } else if(url.startsWith("/ent")){ Ent ent=entService.queryByToken(token); if(ent==null){ flag=true; } else { System.out.println("eid:"+String.valueOf(ent.getEid())); } }
if (flag){ response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); PrintWriter out = null ; try{ Result res = new Result(); res.setMsg("token验证失败,登录失败"); res.setSuccess(false); String json = JSON.toJSONString(res); response.setContentType("application/json"); out = response.getWriter(); out.append(json); out.flush(); return false; } catch (Exception e){ e.printStackTrace(); response.sendError(500); return false; } } return true; } return true; }
} package com.trace.meat.controller;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| temp.setBreed(breed); temp.setBid(bid); temp.setState(state); if(!lastoid.equals(0)) { temp.setLastOid(lastoid); } temp.setAid(id); System.out.println("更新成功:"+temp.toString()); return animalService.update(temp); }
} package com.trace.meat.interceptor;
@Component public class TokenInterceptor implements HandlerInterceptor {
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| @RestController @RequestMapping("public") public class HandleController {
@Resource private OrderTblController orderTblController; @Resource private EntController entController; @Resource private EntService entService; @Resource private AnimalService animalService; @Resource private ProductService productService; @Resource private TypeTblService typeTblService; @Resource private AdminAcctController adminAcctController; @Resource private AnimalController animalController; @Resource private ProductController productController; @Resource private BreederController breederController; @Resource private ButcherController butcherController; @Resource private LicController licController; @Resource private OrderTblService orderTblService; @Resource private ProcessService processService;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| return this.adminAcctService.queryById(id); }
public List<AdminAcct> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit) { return this.adminAcctService.queryAllByLimit(offset, limit); }
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); }
@GetMapping( "login") public Result login(String username, String password) { BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| public class test { @Autowired private OrderTblService orderTblService; @Autowired private AnimalController AC; @Autowired private BreederController BC; @Autowired private AdminAcctController adminAcctController; @Autowired private EntController entController; @Autowired private ProductController PC; @Autowired private LicService LS; @Autowired private EntService ES; @Autowired private AnimalService AS; @Autowired private BreederService BS; @Autowired private ButcherService BCS; @Autowired private ProductService PS; @Autowired private OrderTblController OTC; @Autowired private HandleController handleController; @Autowired private TypeTblService TTC; @Autowired private ProcessService processService; @Test void fn() {
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| * @return Result对象 */ @GetMapping("SelectAllAnimalType") public Result SelectAllAnimalType(){ Result result=new Result();
result.setDetail(typeTblService.queryAllById(5001,5999)); result.setMsg("获取全部牲畜类型成功"); result.setSuccess(true); return result; }
@GetMapping("SelectAllEntType") public Result SelectAllEntType(){ Result result=new Result(); Integer left=100; Integer right=5000; Integer mid=(left+right)/2; while (left<right){ if(typeTblService.queryById(mid)!=null){ left=mid+1; } else{ right=mid; } mid=(left+right)/2; } result.setDetail(typeTblService.queryAllById(100,mid)); result.setSuccess(true); result.setMsg("企业类型获取成功"); return result; }
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=341222062008200xf
https://javayms.pages.dev?id=341222062008200xf