Java项目:红酒朔源管理系统(java+SSM+JSP+LayUI+jQuery+Mysql)

源码获取:俺的博客首页 "资源" 里下载!

项目介绍

本项目分为前后台,分为普通用户、管理员、企业用户三种角色;
普通用户无需登录,可在前台直接进行溯源查询,管理员、企业用户可登录后台进行管理;
超级管理员角色包含以下功能:
登录,管理企业,设置管理员,增加管理员,删除管理员等功能。

用户角色包含以下功能:
用户首页,用户进行溯源查询,溯源结果等功能。

企业角色包含以下功能:
注册,登录,企业登录后主页,增删改查红酒列表,新增红酒,二维码列表查看,溯源列表,查看近期溯源人数,修改企业信息,查看溯源二维码等功能。

环境需要

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.数据库:MySql 5.7版本;
6.是否Maven项目:是;


技术栈

1. 后端:Spring+SpringMVC+Mybatis
2. 前端:JSP+CSS+JavaScript+LayUI+jQuery


使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中database.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入http://localhost:8080/ncpsy 登录 
注:Tomcat中配置路径必须为/ncpsy 否则会有异常
管理员账号/密码:admin/admin
企业账号/密码:user/123456
用户不需要账号密码

 

 

 

 

 

 

订单链条管理控制层:

@RestController
@RequestMapping("orderTbl")
public class OrderTblController {
    /**
     * 服务对象
     */
    @Resource
    private OrderTblService orderTblService;
    @Resource
    private AnimalService animalService;
    @Resource
    private ProductService productService;
    @Resource
    private EntController entController;
    @Resource
    private EntService entService;
    /**
     * 通过主键查询单条数据
     *
     * @param oid 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public OrderTbl selectOne(Integer oid) {
        return this.orderTblService.queryById(oid);
    }
    /**
     * 生成订单链条
     *
     * @param gid 主键
     * @param type 货物类型
     * @return 订单链条
     */
    @GetMapping("ChainForm")
    public Result  Chain_Form(Integer gid,Integer type){
        Result result=new Result();
        result.setDetail(null);
        result.setSuccess(false);
        Integer id;
        if(type==0)//整猪
        {
            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())
            {
                ChainModel temp=new ChainModel(chainModel);
                temp.setEid(orderTbl.getInEid());
                EntModel entModel2=entService.queryModelById(temp.getEid());
                temp.setEtype(entModel2.getEtype());
                temp.setEname(entModel2.getEname());
                if(type==0)//整只
                {
                    AnimalModel animalModel=animalService.queryModelById(orderTbl.getGid());
                    result.setInfo(animalModel);
                }
                else if(type==1)//切割
                {
                    ProductModel productModel=productService.queryModelById(orderTbl.getGid());
                    result.setInfo(productModel);
                }
                chain.add(temp);
            }
        }
        result.setDetail(chain);
        result.setMsg("链条合成成功");
        result.setSuccess(true);
        return result;
    }
    @GetMapping("insertOne")
    public OrderTbl insert(Integer oeid,Integer ieid,Integer lastoid,Integer gid,short gtype,String ctime,String plate,String info) {
        OrderTbl orderTbl=new OrderTbl();
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
        try {
            // 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
            format.setLenient(false);
            format.parse(ctime);
        } catch (ParseException e) {
            System.out.println("时间输入格式错误");
            e.printStackTrace();
            // e.printStackTrace();
            // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
        }
        if(!lastoid.equals(0))
        {
            orderTbl.setLastOid(lastoid);
        }
        if (info!=null)
        {
            orderTbl.setInfo(info);
        }
        orderTbl.setGtype(gtype);
        orderTbl.setInEid(ieid);
        orderTbl.setGid(gid);
        orderTbl.setOutEid(oeid);
        orderTbl.setPlate(plate);
        orderTbl.setConfirmTime(ctime);
        return orderTblService.insert(orderTbl);
    }
    /**
     * 通过主键删除数据
     *
     * @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);
    }

}


加工管理控制层: 

@RestController
@RequestMapping("product")
public class ProductController {
    /**
     * 服务对象
     */
    @Resource
    private ProductService productService;
    @Resource
    private 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=2016-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会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
            format.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;
    }

}

管理员管理控制层:

@CrossOrigin
@RestController
@RequestMapping("admin")
public class AdminAcctController {
    /**
     * 服务对象
     */
    @Resource
    private AdminAcctService adminAcctService;
    @Resource
    private LicService licService;
    @Resource
    private EntService entService;
    @Resource
    private 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=password.equals(temp.getPwd());
        // 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 = Pattern.compile(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=Pattern.compile(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=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不可为空");
            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;
    }

}

源码获取:俺的博客首页 "资源" 里下载! 

猜你喜欢

转载自blog.csdn.net/yuyecsdn/article/details/125196969