1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)

基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)

时间:2022-05-26 02:28:51

相关推荐

基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)

基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的红酒朔源管理系统(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项目:是;

技术栈

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

使用说明

使用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 List_OT=new ArrayList();

List_OT.add(tempOT);

while(tempOT.getLastOid()!=null)

tempOT=this.orderTblService.queryById(tempOT.getLastOid());

List_OT.add(0,tempOT);

Iterator iterator= List_OT.listIterator();

while(iterator.hasNext())

System.out.println(iterator.next().getOid());

List chain=new ArrayList();

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

管理员管理控制层:

@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=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 (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;

\w\d_ ↩︎

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