Springboot food traceability system based on javaweb + mysql (java + springboot + maven + mybatis + vue + mysql)
Operating environment
Java≥8, MySQL≥5.7, Node.js≥10
development tools
Backend: eclipse/idea/myeclipse/sts, etc. can be configured and run
Front-end: WebStorm/VSCode/HBuilderX, etc.
Be applicable
Course design, major assignments, graduation design, project exercises, learning presentations, etc.
Function Description
SpringBoot food traceability system based on javaweb + mysql (java + springboot + maven + mybatis + vue + mysql)
1. Project running environment configuration:
Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX (Webstorm also works) + Eclispe (IntelliJ IDEA, Eclispe, MyEclispe, Sts are all supported).
Project technology:
It is composed of Springboot + Maven + mybatis + Vue, etc., B/S mode + Maven management, etc.
//http://127.0.0.1:11451/breeder/insertOne?id=1 & amp;ename=asd /** * (Breeder) table control layer * */ @RestController @RequestMapping("breeder") public class BreederController {<!-- --> /** * Service objects */ @Resource private BreederService breederService; @Resource private AnimalService animalService; /** * Query a single piece of data by primary key * * @param bid primary key * @return single piece of data */ @GetMapping("selectOne") public Breeder selectOne(Integer bid) {<!-- --> return this.breederService.queryById(bid); } /** * New data * * @param bname breeder name
@Resource private BreederController breederController; @Resource private ButcherController butcherController; @Resource private LicController licController; @Resource private AnimalController animalController; @Resource private ProductController productController; @Resource private AnimalService animalService; @Resource private ProductService productService; @Resource private BreederService breederService; @Resource private LicService licService; @Resource private OrderTblService orderTblService; @Resource private ProcessService processService; @Resource private TypeTblService typeTblService; @Resource private StockService stockService; //Account management /** * Log in * * @param username username * @param password password * @return Result object */ @GetMapping( "login") public Result login(String username,String password) {<!-- --> BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder(); System.out.println(username); System.out.println(password); Result result = new Result();
@WebFilter(urlPatterns = "/*",filterName ="RequestFilter") public class RequestFilter implements Filter {<!-- --> private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired EntService entService; @Autowired AdminAcctService adminAcctService; @Override public void init(FilterConfig filterConfig) throws ServletException {<!-- --> } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {<!-- --> HttpServletRequest request = (HttpServletRequest) servletRequest; String token = request. getHeader("token"); String url = request. getRequestURI(); Map<String, String[]> extraParams = new HashMap<String, String[]>(); if(token==null){<!-- --> } String urls[] = {<!-- --> "/ent/login", "/ent/register",
* @param licType * @param licState * @return single piece of data */ //http://127.0.0.1:11451/lic/updateOne?lid=2 & amp;eid=3 @GetMapping("updateOne") public Lic update(Integer lid, Integer eid, String serNum,Integer licType,Integer licState) {<!-- --> Lic lic = new Lic(); lic. setLid(lid); lic.setEid(eid); lic.setSerNum(serNum); lic.setLicType(licType); lic.setLicState(licState); return licService.update(lic); } /** * delete data * * @param lid primary key * @return Boolean value of whether the data was deleted */ //http://127.0.0.1:11451/lic/deleteOne?lid=2 @GetMapping("deleteOne") public boolean deleteById(Integer lid) {<!-- --> return licService.deleteById(lid); } } /** * (Process) table control layer * */ @RestController @RequestMapping("process") public class ProcessController {<!-- -->
@SpringBootTest public class OTCtest {<!-- --> @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() {<!-- --> /** * HandleController test System.out.println(handleController.SelectG(1,0));//msg='Query livestock information successfully' System.out.println(handleController.SelectG(11,3));//msg='Wrong product id or product type' System.out.println(handleController.Chain_Form(1,0));//msg='Chain synthesis successful' System.out.println(handleController.Chain_Form(11,0));//msg='The livestock information record is incorrect' System.out.println(handleController.Chain_Form(1,2));//msg='Input type error'
chainModel.setTime(orderTbl.getConfirmTime()); chain. add(chainModel); if(!it. hasNext()) {<!-- --> ChainModel temp=new ChainModel(chainModel); temp.setEid(orderTbl.getInEid()); EntModel entModel2=entService.queryModelById(temp.getEid()); temp.setEtype(entModel2.getEtype()); temp.setEname(entModel2.getEname()); if(gtype==0)//whole {<!-- --> AnimalModel animalModel=animalService.queryModelById(gid); result. setInfo(animalModel); } else if(gtype==1)//cutting {<!-- --> ProductModel productModel=productService.queryModelById(gid); AnimalModel animalModel=animalService.queryModelById((processService.queryByPId(productModel.getPid())).getAid()); PAModel paModel = new PAModel(); paModel.setAnimalModel(animalModel); paModel.setProductModel(productModel); result.setInfo(paModel); } chain. add(temp); } } result. setDetail(chain); result.setMsg("The chain synthesis is successful"); result. setSuccess(true); return result; } /** * Query livestock operator data * * @param bid operator id * @return Result object */ public Result SelectButcher(Integer bid){<!-- --> Result result = new Result(); result. setSuccess(false); Butcher butcher=butcherController.selectOne(bid); if(butcher==null){<!-- -->
//http://127.0.0.1:11451/animal/selectOne?id=1 /** * (Animal) table control layer * */ @RestController @RequestMapping("animal") public class AnimalController {<!-- --> /** * Service object */ @Resource private AnimalService animalService; /** * Query a single piece of data by primary key * * @param aid primary key * @return single data */ @GetMapping("selectOne") public Animal selectOne(Integer aid) {<!-- --> return this.animalService.queryById(aid); } /** * New record * * @param time time of birth * @param type type * @param breed the breed
*/ @GetMapping("butcher/list") @Transactional(readOnly = true) public Result SelectAllButcher(Integer eid){<!-- --> System.out.println(eid); Result result = new Result(); result. setSuccess(false); if(entService.queryById(eid)==null) {<!-- --> result.setMsg("The company does not exist"); result. setDetail(null); return result; } List<ButcherModel> list=butcherService.queryModelByEId(eid); if(list.isEmpty()){<!-- --> result.setMsg("There is no operator information under this enterprise"); result. setDetail(null); return result; } result. setDetail(list); result.setMsg("Querying operator information successful"); result. setSuccess(true); return result; } /** * Query shelf data * * @param eid breeder id * @return Result object */ @GetMapping("stock/list") public Result SelectAllStock(Integer eid){<!-- --> System.out.println(eid); Result result=new Result(); result.setSuccess(false); if(entService.queryById(eid)==null) {<!-- --> result.setMsg("The enterprise does not exist"); result. setDetail(null); return result; } List<Stock> list=stockService.queryAllByEId(eid); if(list.isEmpty()){<!-- --> result.setMsg("There is no shelf information under this enterprise"); result. setDetail(null); return result; } result. setDetail(list); result.setMsg("Querying shelf record information successfully"); result. setSuccess(true); return result;
return processService.insert(process); } } /** * (Butcher) table control layer * */ @RestController @RequestMapping("butcher") public class ButcherController {<!-- --> /** * Service object */ @Resource private ButcherService butcherService; /** * Added livestock operator data * * @param bname livestock operator name * @param eid enterprise id * @return single data */ //http://127.0.0.1:11451/butcher/insertOne?bname=lk5j & amp;eid=1 @GetMapping("insertOne") public Butcher insert(String bname, Integer eid) {<!-- --> Butcher butcher=new Butcher(); butcher.setBname(bname); butcher.setEid(eid);
Integer id; if(gtype==0)//Whole pig {<!-- --> if(animalService.queryById(gid)==null){<!-- --> result.setMsg("Wrong product id or wrong product type"); return result; } id=animalService.queryById(gid).getLastOid(); if(orderTblService.queryById(id)==null){<!-- --> result.setMsg("There is an error in the livestock information record"); return result; } } else if(gtype==1)//after cutting {<!-- --> if(productService.queryById(gid)==null){<!-- --> result.setMsg("Wrong product id or wrong product type"); return result; } id=productService.queryById(gid).getLastOid(); if(orderTblService.queryById(id)==null){<!-- --> result.setMsg("The product information record is wrong"); return result; } } else{<!-- --> result.setMsg("Input type error"); return result; } OrderTbl tempOT=this.orderTblService.queryById(id); List<OrderTbl> List_OT=new ArrayList<OrderTbl>(); List_OT.add(tempOT); while(tempOT. getLastOid()!=null) {<!-- --> tempOT=this.orderTblService.queryById(tempOT.getLastOid()); List_OT.add(0,tempOT); } Iterator<OrderTbl> iterator= List_OT. listIterator(); while(iterator. hasNext()) {<!-- --> System.out.println(iterator.next().getOid()); } List<ChainModel> chain=new ArrayList<ChainModel>(); Iterator it=List_OT.listIterator(); while (it. hasNext())
/** * Log in * * @param username username * @param password password * @return Result object */ @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("User name cannot be empty"); System.out.println("User name cannot be empty"); return result; } if(password==""||password==null) {<!-- --> result.setMsg("The password cannot be empty"); System.out.println("The password cannot be empty"); return result; } AdminAcct temp=new AdminAcct(); temp=this.adminAcctService.queryByUserName(username); if(temp==null) {<!-- --> System.out.println("Username does not exist"); result.setMsg("Username does not exist"); return result; } System.out.println(bCryptPasswordEncoder.encode(password)); boolean flag=bCryptPasswordEncoder.matches(password,temp.getPwd()); if(flag) {<!-- --> temp.setPwd(""); System.out.println("Successful login"); result.setMsg("Login successful"); 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; }
return result; } /** * Query product data * * @param pid product id * @return Result object */ public Result SelectProduct(Integer pid){<!-- --> Result result = new Result(); result. setSuccess(false); ProductModel product=productService.queryModelById(pid); if(product==null){<!-- --> result.setMsg("The product does not exist"); result.setDetail(null); return result; } result. setDetail(product); result.setMsg("Query product information successfully"); result. setSuccess(true); return result; } /** * Basic Information * @param gid cargo id * @param gtype cargo type * @return Result object */ @Transactional(readOnly=true) @GetMapping("ginfo") public Result SelectG(Integer gid,Integer gtype){<!-- --> if(gtype==0)//integer {<!-- --> return SelectAnimal(gid); } else if(gtype==1)//cutting {<!-- --> return SelectProduct(gid); } else {<!-- --> Result result = new Result(); result.setMsg("Wrong product id or product type");
return result; } result. setDetail(product); result.setMsg("Query livestock information successfully"); result. setSuccess(true); return result; } /** * Query livestock operator data * * @param bid operator id * @return Result object */ public Result SelectButcher(Integer bid){<!-- --> Result result = new Result(); result. setSuccess(false); Butcher butcher=butcherController.selectOne(bid); if(butcher==null){<!-- --> result.setMsg("Livestock does not exist"); result.setDetail(null); return result; } result. setDetail(butcher); result.setMsg("Query livestock information successfully"); result. setSuccess(true); return result; } /** * Update livestock data * @param id primary key * @param time time of birth * @param type type * @param breed breed * @param bid breeder id * @param lastoid last order number * @param state time of birth * @return single piece of data */ public Result UpdateAnimal(Integer id,String time, Integer type, Integer breed,Integer bid,Integer lastoid,short state){<!-- --> Result result = new Result(); result. setSuccess(false); if(animalService. queryById(id)==null){<!-- --> result.setMsg("Livestock id error"); return result; } Animal temp = new Animal(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try {<!-- --> format. setLenient(false); format.parse(time); } catch (ParseException e) {<!-- --> System.out.println("Time input format error");
if (!matcher.matches()) {<!-- --> result.setMsg("Email format error"); System.out.println("Mailbox format error"); return result; } } Ent ent=new Ent(); ent.setEid(eid); ent.setEtype(etype); ent.setTel(tele); ent.setEname(ename); result. setSuccess(true); result.setMsg("Modified successfully"); ent=entService.update(ent); ent.setPwd(""); result.setDetail(ent); return result; } /** *Reset corporate account token * @param eid enterprise id * @return */ @PostMapping("resetEntToken") public Result ResetEntToken(Integer eid){<!-- --> Result result = new Result(); result. setSuccess(false); if(eid==null){<!-- --> result.setMsg("eid cannot be empty"); return result; } if(entService.queryById(eid)==null){<!-- --> result.setMsg("eid error"); return result; } Ent ent=entService.queryById(eid); String token=UUID.randomUUID().toString().replaceAll("-",""); ent.setToken(token); ent=entService.update(ent); result.setMsg("Reset token successfully"); result. setSuccess(true); result. setDetail(ent); return result;
return result; } /** * Update breeder data * @param bid breeder id * @param bname breeder name * @param eid enterprise id * @return single data */ public Result UpdateBreeder(Integer bid,String bname,Integer eid){<!-- --> Result result=new Result(); result.setSuccess(false); if (breederService.queryById(bid)==null){<!-- --> result.setMsg("Wrong breeder id"); return result; } if (entService.queryById(eid)==null){<!-- --> result.setMsg("Enterprise ID error"); return result; } Breeder breeder=new Breeder(); breeder.setBid(bid); breeder.setEid(eid); breeder.setBname(bname); result.setDetail(breederService.update(breeder)); result. setSuccess(true); result.setMsg("Update breeder information"); return result; } /** * Updated livestock operator data * @param bid livestock operator id * @param bname livestock operator name * @param eid enterprise id * @return Result object */ public Result UpdateButcher(Integer bid, String bname, Integer eid){<!-- --> Result result=new Result(); result.setSuccess(false); if(butcherService.queryById(bid)==null){<!-- -->
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 verification failed, login failed"); res. setSuccess(false); String json = JSON.toJSONString(res); response.setContentType("application/json"); out = response.getWriter(); // Return json information to the front end out.append(json); out. flush(); return false; } catch (Exception e){<!-- --> e.printStackTrace(); response. sendError(500); return false; } } return true; } return true; } }
} /** * (OrderTbl) table control layer * */ @RestController @RequestMapping("orderTbl") public class OrderTblController {<!-- --> /** * Service object */ @Resource private OrderTblService orderTblService; @Resource private AnimalService animalService; @Resource private ProductService productService; @Resource private EntController entController; @Resource private EntService entService; /** * Query a single piece of data by primary key * * @param oid primary key * @return single data */ @GetMapping("selectOne") public OrderTbl selectOne(Integer oid) {<!-- --> return this.orderTblService.queryById(oid);
//EC.register("clearlovetu","1145141",102,"1919810","Slaughterhouse"); /**Enterprise account registration and login * System.out.println(EC.register("clearloveyangzhi","1145141",1,"1919810","Pig Factory")); Result result= EC.login("clearloveyangzhi","1145141"); result. getDetail(); System.out.println(result); */ /**status code System.out.println(StateCode.Login_Fail.getState()); System.out.println(StateCode.Login_Fail.getCodenum()); System.out.println(StateCode.Login_Fail.toString()); */ /**encryption String temp=bCryptPasswordEncoder.encode("114514"); System.out.println(temp); System.out.println(bCryptPasswordEncoder.matches("114514",temp)); */ /**Generate list by enterprise number Iterator<Breeder> it=BC.selectAllByEid(1).listIterator(); while (it. hasNext()) { System.out.println(it.next()); }*/ } } @SpringBootTest public class OTCtest {<!-- -->