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

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

运行环境

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

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

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

功能说明

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

一、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等。

            chainModel.setEname(entController.selectOne(chainModel.getEid()).getEname());
            chainModel.setTime(orderTbl.getConfirmTime());
            chainModel.setEtype(entService.queryModelById(chainModel.getEid()).getEtype());
            chain.add(chainModel);
            if(!it.hasNext())
            {
                ChainModel temp=new ChainModel(chainModel);
                temp.setEid(orderTbl.getInEid());
                temp.setEtype(entService.queryModelById(temp.getEid()).getEtype());
                temp.setEname(entController.selectOne(temp.getEid()).getEname());
                if(orderTbl.getGtype()==0)//整只
                {
                    AnimalModel animalModel=animalService.queryModelById(orderTbl.getGid());
                    result.setInfo(animalModel);
                }
                else if(orderTbl.getGtype()==1)//切割
                {
                    ProductModel productModel=productService.queryModelById(orderTbl.getGid());
                    result.setInfo(productModel);
                }
                chain.add(temp);
            }
        }
        result.setDetail(chain);
        result.setSuccess(true);
        result.setMsg("获取链条成功");
        return result;
    }*/
    /**获取所有证书类型数据
     *
     * @return Result对象
     */
    public Result getAllLicType() {
        Result result=new Result();
        List<TypeTbl> list=new ArrayList<TypeTbl>();
        for (Integer i=1;i<=100;i++) {
            TypeTbl typeTbl=typeTblService.queryById(i);
            if(typeTbl!=null) {
                list.add(typeTbl);
            }
            else{
                break;
            }
        }
        result.setSuccess(true);
        result.setMsg("所有证书类型查询完成");
        result.setDetail(list);
        return result;
    }

        //邮箱格式验证
        Result result=new Result();
        result.setSuccess(false);
        String regEx="^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4})*$";
        Pattern pattern=Pattern.compile(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;
    }
    /**
     * 修改密码
     * @param
     * @return
     */
    @PostMapping("editPass")
    public Result editPassword(Integer eid,String oldPass,String newPass) {
        //邮箱格式验证
        Result result=new Result();
        result.setSuccess(false);
        String regEx="^[\\w\\d~!@#$%^&*_.-]{8,64}$";
        Pattern pattern=Pattern.compile(regEx);
        Matcher matcher=pattern.matcher(newPass);
        if(!matcher.matches()){
            result.setMsg("新密码格式错误");
            System.out.println("新密码格式错误");
            return result;
        }
        Ent ent=entService.queryById(eid);
        if (ent==null){
            result.setMsg("企业编号错误");
            System.out.println("企业编号错误");
            return result;
        }
        BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();
        if(!bCryptPasswordEncoder.matches(oldPass,ent.getPwd())) {
     *
     * @param bname 饲养员名字
     * @param  eid 企业id
     * @return 单条数据
     */
    @GetMapping("insertOne")
    public Breeder insert(String bname,Integer eid) {
        Breeder breeder=new Breeder();
        breeder.setBname(bname);
        breeder.setEid(eid);
        return breederService.insert(breeder);
    }
    /**
     * 通过企业id查询多条数据
     *
     * @param  eid 饲养员id
     * @return 单条数据
     */
    @GetMapping("selectLine")
    public List<Breeder> selectAllByEid(Integer eid)
    {
        return  this.breederService.queryAllByEid(eid);
    }
    /**
     * 更新数据
     *
     * @param bid 主键
     * @param bname 饲养员名字
     * @param  eid 企业id
     * @return 单条数据
     */
    @GetMapping("updateOne")
    public Breeder update(Integer bid,String bname,Integer eid) {
        Breeder breeder=new Breeder();
        breeder.setBid(bid);
        breeder.setEid(eid);
        breeder.setBname(bname);
        return breederService.update(breeder);
    }
    /**
     * 删除数据
     *
     * @param bid 主键
     * @return 是否删除了数据的布尔值
     */
    @GetMapping("deleteOne")
    public boolean deleteById(Integer bid) {
        return breederService.deleteById(bid);
    }
    /**
     * 查找所有饲养的牲畜数据
        {
            id=animalService.queryById(gid).getLastOid();
            if(orderTblService.queryById(id)==null){
                result.setMsg("牲畜信息记录有误");
                return result;
            }
        }
        else if(type==1)//切割后
        {
            id=productService.queryById(gid).getLastOid();
            if(orderTblService.queryById(id)==null){
                result.setMsg("产品信息记录有误");
                return result;
            }
        }
        else{
            result.setMsg("输入类型错误");
            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())
        {
            ChainModel chainModel=new ChainModel();
            OrderTbl orderTbl=(OrderTbl)it.next();
            chainModel.setEid(orderTbl.getOutEid());
            EntModel entModel1=entService.queryModelById(chainModel.getEid());
            chainModel.setEname(entModel1.getEname());
            chainModel.setEtype(entModel1.getEtype());
            chainModel.setEid(orderTbl.getOutEid());
            chainModel.setTime(orderTbl.getConfirmTime());
            chain.add(chainModel);
            if(!it.hasNext())
            {

@Component
public class TokenInterceptor implements HandlerInterceptor
{

    private Logger logger=LoggerFactory.getLogger(TokenInterceptor.class);
    /**
     * 忽略拦截的url
     */
    private String urls[] = {
            "/ent/login",
            "/ent/register",
            "/admin/login",
            "/admin/register"
    };
    @Autowired
    private EntService entService;
    @Autowired
    private AdminAcctService adminAcctService;
    /**
     * 进入controller层之前拦截请求
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
    {
        Map<String, String[]> parameterMap = new HashMap<>(request.getParameterMap());
     *
     * @param oid 主键
     * @return 是否成功
     */
    @GetMapping("deleteOne")
    public boolean deleteById(Integer oid) {
        return this.orderTblService.deleteById(oid);
    }
    /**
     * 修改数据
     */
    //http://127.0.0.1:11451/orderTbl/updateOne?oid=1
    @GetMapping("updateOne")
    public OrderTbl update(Integer oid, Integer outEid, Integer inEid,Integer lastOid,Integer gid,Short gtype, String confirmTime,String plate,String info) {
        OrderTbl orderTbl=new OrderTbl();
        orderTbl.setOid(oid);
        orderTbl.setOutEid(outEid);
        orderTbl.setInEid(inEid);
        orderTbl.setLastOid(lastOid);
        orderTbl.setGid(gid);
        orderTbl.setGtype(gtype);
        orderTbl.setConfirmTime(confirmTime);
        orderTbl.setPlate(plate);
        orderTbl.setInfo(info);
        return this.orderTblService.update(orderTbl);
    }

}

            OrderTbl neworder=new OrderTbl();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String time=sdf.format(new Date());
            neworder.setPlate(plate);
            neworder.setOutEid(outeid);
            neworder.setInEid(eid);
            neworder.setGid(gid);
            neworder.setGtype((short)1);
            neworder.setInfo(info);
            neworder.setConfirmTime(time);
            neworder.setLastOid(product.getLastOid());
            OrderTbl orderTbl=orderTblService.insert(neworder);
            result.setDetail(orderTbl);
            result.setSuccess(true);
            product.setLastOid(orderTbl.getOid());
            productService.update(product);
            result.setMsg("收货成功");
        }
        else{
            result.setMsg("货物类型错误");
            return result;
        }
        return result;
    }
    /**
     * 通过EID查询多条收货订单
     *
     * @param eid 主键
     * @return 实例对象
     */
    @GetMapping("order/listIn")
    @Transactional(readOnly = true)
    public Result List_In(Integer eid){
        Result result=new Result();
        result.setSuccess(false);
        List<OrderTblModel> list=orderTblService.queryModelByInEId(eid);
        if(list.isEmpty()){
            result.setMsg("该企业下无订单");
            return result;
        }
        result.setDetail(list);
        result.setSuccess(true);
        result.setMsg("收货订单查询成功");
        return result;
    }
    /**
     * 通过EID查询多条出货订单
     *
     * @param eid 主键
     * @return 实例对象
     * 修改企业信息
     * @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=Pattern.compile(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不可为空");
        }
        result.setDetail(breeder);
        result.setMsg("查询牲畜信息成功");
        result.setSuccess(true);
        return result;
    }

}

//http://127.0.0.1:11451/adminAcct/selectOne/1
//http://127.0.0.1:11451/adminAcct/selectOne?id=1
//http://127.0.0.1:11451/adminAcct/selectLine?offset=0&limit=3
//http://127.0.0.1:11451/adminAcct/insertOne?id=6&username=lkj&pwd=123
//http://127.0.0.1:11451/adminAcct/deleteOne?id=4
//http://127.0.0.1:11451/adminAcct/updateOne?id=5&username=khhj&pwd=12hh

/**
 * (AdminAcct)表控制层
 *管理员账号
 */
@CrossOrigin
@RestController
@RequestMapping("admin")
    }
    /**@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 = Pattern.compile(regEx);
        Matcher matcher ;
        /**if(email!=null) {
        if(entService.queryById(eid)==null) {
            result.setMsg("企业不存在");
            result.setDetail(null);
            return result;
        }
        List<Stock> list=stockService.queryAllByEId(eid);
        if(list.isEmpty()){
            result.setMsg("该企业下无货架信息");
            result.setDetail(null);
            return result;
        }
        result.setDetail(list);
        result.setMsg("查询货架记录信息成功");
        result.setSuccess(true);
        return result;
    }
    /**
     * 查询牲畜数据
     * @param  eid 饲养员id
     * @return Result对象
     */
    @GetMapping("animal/list")
    @Transactional(readOnly = true)
    public Result SelectAllAnimal(Integer eid){
        Result result=new Result();
        result.setSuccess(false);
        if(entService.queryById(eid)==null) {
            result.setMsg("企业不存在");
            result.setDetail(null);
            return result;
        }
        List<BreederModel> list_breeder=breederService.queryModelByEId(eid);
        if(list_breeder.isEmpty()){
            result.setMsg("该企业下无饲养员信息");
            result.setDetail(null);
            return result;
        }
        Iterator iterator=list_breeder.listIterator();
        List<AnimalModel> list_animal=new ArrayList<AnimalModel>();
        while (iterator.hasNext()) {
            BreederModel temp=(BreederModel) iterator.next();
            List<AnimalModel> list=animalService.queryModelByBId(temp.getBid());
            list_animal.addAll(list);
        }
        result.setDetail(list_animal);
        result.setMsg("查询牲畜信息成功");
        result.setSuccess(true);
        return result;
    }
    /**
     * 查询牲畜数据
     * @param  eid 主键
     * @return Result对象
        if(email!=null) {
            //邮箱格式验证
            matcher = pattern.matcher(email);
            if (!matcher.matches()) {
                result.setMsg("邮箱格式错误");
                System.out.println("邮箱格式错误");
                return result;
            }
        }
        //用户名格式验证
        regEx="^[\\w\\d_]{4,16}$";
        pattern=Pattern.compile(regEx);
        matcher=pattern.matcher(username);
        if(!matcher.matches()){
            result.setMsg("用户名格式错误");
            System.out.println("用户名格式错误");
            return result;
        }
        //密码格式验证
        regEx="^[\\w\\d~!@#$%^&*_.-]{8,64}$";
        pattern=Pattern.compile(regEx);
        matcher=pattern.matcher(password);
        if(!matcher.matches()){
            result.setMsg("密码格式错误");
            System.out.println("密码格式错误");
            return result;
        }
        temp=new Ent();
        temp.setUsername(username);
        password=bCryptPasswordEncoder.encode(password);
        temp.setPwd(password);
        temp.setEtype(etype);
        temp.setEname(ename);
        temp.setTel(tele);
        String token=UUID.randomUUID().toString().replaceAll("-","");
        temp.setToken(token);
        temp.setEmail(email);
        this.entService.insert(temp);
        temp.setPwd("");
        result.setDetail(temp);
        result.setMsg("加工完成");
        result.setDetail(product);
        result.setSuccess(true);
        return 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();
        return result;
    }

}

@SpringBootTest
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
        //Result result=EC.login("dasda","1545");

        //EC.register("clearlovetu","1145141",102,"1919810","屠宰厂");
        /**企业账号注册登陆
         *
         System.out.println(EC.register("clearloveyangzhi","1145141",1,"1919810","养猪厂"));
        Result result= EC.login("clearloveyangzhi","1145141");
        result.getDetail();
        System.out.println(result);
         */
         /**状态码
        System.out.println(StateCode.Login_Fail.getState());
        System.out.println(StateCode.Login_Fail.getCodenum());
        System.out.println(StateCode.Login_Fail.toString());
        */
         /**加密
        String temp=bCryptPasswordEncoder.encode("114514");
        System.out.println(temp);
        System.out.println(bCryptPasswordEncoder.matches("114514",temp));
         */
        /**按企业编号生成列表
        Iterator<Breeder> it=BC.selectAllByEid(1).listIterator();
        while (it.hasNext())
        {
            System.out.println(it.next());
        }*/
    }

}

        if(token==null){

        }
        String urls[] = {
                "/ent/login",
                "/ent/register",
                "/admin/login",
                "/admin/register"
        };
        for (String item : urls){
            if (item.equals(url)){
                filterChain.doFilter(servletRequest, servletResponse);
                return ;
            }
        }
        if(url.startsWith("/admin")) {
            AdminAcct adminAcct=adminAcctService.queryByToken(token);
            if(adminAcct==null){
                filterChain.doFilter(servletRequest, servletResponse);
                return ;
            }
            extraParams.put("id", new String[]{String.valueOf(adminAcct.getId())});
            System.out.println("id:"+String.valueOf(adminAcct.getId()));

        }
        else if(url.startsWith("/ent")){
            Ent ent=entService.queryByToken(token);
            if(ent==null){
                filterChain.doFilter(servletRequest, servletResponse);
                return ;
            }
            extraParams.put("eid", new String[]{String.valueOf(ent.getEid())});
            System.out.println("eid:"+String.valueOf(ent.getEid()));
        }
        //利用原始的request对象创建自己扩展的request对象并添加自定义参数
        ParameterServletRequestWrapper requestParameterWrapper = new ParameterServletRequestWrapper(request);
        requestParameterWrapper.addAllParameters(extraParams);
        filterChain.doFilter(requestParameterWrapper, servletResponse);
    }

    @Override
    public void destroy() {

    }

}
//http://127.0.0.1:11451/breeder/selectOne?id=1
            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);

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值