700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 基于javaweb的茶叶溯源系统(java+ssm+jsp+bootstrap+layui+mysql)

基于javaweb的茶叶溯源系统(java+ssm+jsp+bootstrap+layui+mysql)

时间:2019-05-09 13:52:42

相关推荐

基于javaweb的茶叶溯源系统(java+ssm+jsp+bootstrap+layui+mysql)

基于javaweb的茶叶溯源系统(java+ssm+jsp+bootstrap+layui+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+ssm的茶叶溯源系统(java+SSM+JSP+bootstrap+layUI+mysql)

项目介绍

茶叶溯源系统,分为前台与后台。普通用户可在前台通过18位的编码查询茶叶的出售历史。 后台分为两种角色,管理员与经销商; 管理员主要功能包括: 主界面; 管理员管理:管理员列表、添加管理员; 分类管理:茶叶类型的添加、删除、修改; 茶叶管理:茶叶列表、添加、删除、修改茶叶; 大包装管理:大包装列表、添加、删除、修改大包装; 单品管理:售出统计、单品信息修改; 经销商主要功能包括: 主界面; 售出单品:确认售出单品;

环境需要

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.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7版本;

技术栈

后端:Spring SpringMVC MyBatis 2. 前端:JSP+bootstrap+jQuery+layUI

使用说明

使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 4. 运行项目,输入localhost:8080/tea-web/ 登录

管理员账号控制层:

/**

(AdminAcct)表控制层

*管理员账号

*/

@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 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 (usernamenull||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=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 (usernamenull||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 list=new ArrayList();

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 list_lic=new ArrayList();

if(!list.isEmpty()){

Iterator 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 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 = pile(regEx);

Matcher matcher ;

/**if(email!=null) {

//邮箱格式验证

matcher=pattern.matcher(email);

if (!matcher.matches()) {

result.setMsg(“邮箱格式错误”);

System.out.println(“邮箱格式错误”);

return result;

}*/

//用户名格式验证

/**regEx=“-1{4,16}$”;

pattern=pile(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=pile(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;

产品管理控制层:

/**

(Product)表控制层

*/

@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=-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会比较宽松地验证日期,比如/02/29会被接受,并转换成/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;

类型管理控制层:

/**

(TypeTbl)表控制层

*/

@RestController

@RequestMapping(“typeTbl”)

public class TypeTblController {

/**

服务对象

*/

@Resource

private TypeTblService typeTblService;

/**

通过主键查询单条数据

@param tid 主键

@return 单条数据

*/

@GetMapping(“selectOne”)

public TypeTbl selectOne(Integer tid) {

return this.typeTblService.queryById(tid);

/**

新增数据

*/

//http://127.0.0.1:11451/typeTbl/insertOne?tid=5&name=sda

@GetMapping(“insertOne”)

public TypeTbl insert(String name) {

TypeTbl typeTbl=new TypeTbl();

typeTbl.setName(name);

return this.typeTblService.insert(typeTbl);

/**

更新数据

*/

//http://127.0.0.1:11451/typeTbl/updateOne?tid=5&name=hjk

@GetMapping(“updateOne”)

public TypeTbl update(Integer tid, String name) {

TypeTbl typeTbl=new TypeTbl();

typeTbl.setTid(tid);

typeTbl.setName(name);

return typeTblService.update(typeTbl);

/**

删除数据

*/

//http://127.0.0.1:11451/typeTbl/deleteOne?tid=5

@GetMapping(“deleteOne”)

public boolean deleteById(Integer tid) {

return typeTblService.deleteById(tid);

\w\d_ ↩︎

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。