基于javaweb的SpringBoot食品溯源系统(java+springboot+maven+mybatis+vue+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

510123052402

520123052402

530123052402

540123052402

550123052402

560123052402

基于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管理等等。  

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
            // 查询验证token
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();
// 返回json信息给前端
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))//为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);
}
/**
* 查询指定行数据
*
* @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();
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()
{
/** //注册测试用例
System.out.println(entController.register("clearloveA","cleralove4396",
101,"1545648","厂长养猪厂",null));
System.out.println(entController.register("7","cleralove4396",
101,"1545648","厂长养猪厂2",null));
System.out.println(entController.register("clearloveA2","4396",
101,"1545648","厂长养猪厂3",null));
System.out.println(entController.register("","cleralove4396",
101,"1545648","厂长养猪厂4",null));
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();
// Integer left=5001;
// Integer right=5999;
//// Integer mid=(left+right)/2;
//// while (left<right){
//// if(typeTblService.queryById(mid)!=null){
//// right=(right+mid)/2;
//// if(typeTblService.queryById(right)==null){break;}
//// }
//// else{
//// right=mid;
//// }
//// mid=(left+right)/2;
//// }
result.setDetail(typeTblService.queryAllById(5001,5999));
result.setMsg("获取全部牲畜类型成功");
result.setSuccess(true);
return result;
}
/**
* 获取全部企业类型
* @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;
}
/**
* 获取全部证书类型
* @return Result对象
*/


项目链接:
https://javayms.github.io?id=341222062008200xf
https://javayms.pages.dev?id=341222062008200xf