项目介绍
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本连锁经营商业管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此连锁经营商业管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了会员基础数据的管理,会员管理,员工管理.连锁店管理,总库存管理等功能。连锁经营商业管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
在分析并得出使用者对程序的功能要求时,就可以进行程序设计了。如图4.2展示的就是管理员功能结构图,管理员主要负责填充会员和其类别信息,并对已填充的数据进行维护,包括修改与删除,管理员也需要对连锁店,总物资进行管理等。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net
系统实现
核心代码
package com.controller;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.GongyingshangEntity;
import com.service.GongyingshangService;
import com.entity.view.GongyingshangView;
import com.utils.PageUtils;
import com.utils.R;
/**
* 供应商
* 后端接口
* @author
* @email
* @date
*/
@RestController
@Controller
@RequestMapping("/gongyingshang")
public class GongyingshangController {
private static final Logger logger = LoggerFactory.getLogger(GongyingshangController.class);
@Autowired
private GongyingshangService gongyingshangService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isNotEmpty(role) && "用户".equals(role)){
params.put("yonghuId",request.getSession().getAttribute("userId"));
}
params.put("orderBy","id");
PageUtils page = gongyingshangService.queryPage(params);
//字典表数据转换
List<GongyingshangView> list =(List<GongyingshangView>)page.getList();
for(GongyingshangView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
GongyingshangEntity gongyingshang = gongyingshangService.selectById(id);
if(gongyingshang !=null){
//entity转view
GongyingshangView view = new GongyingshangView();
BeanUtils.copyProperties( gongyingshang , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("ve")
public R save(@RequestBody GongyingshangEntity gongyingshang, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,gongyingshang:{}",this.getClass().getName(),gongyingshang.toString());
Wrapper<GongyingshangEntity> queryWrapper = new EntityWrapper<GongyingshangEntity>()
.eq("gongyingshang_name", gongyingshang.getGongyingshangName())
.eq("gongyingshang_types", gongyingshang.getGongyingshangTypes())
.eq("gongyingshang_xinyong_types", gongyingshang.getGongyingshangXinyongTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
GongyingshangEntity gongyingshangEntity = gongyingshangService.selectOne(queryWrapper);
if(gongyingshangEntity==null){
gongyingshang.setCreateTime(new Date());
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// gongyingshang.set
// }
gongyingshangService.insert(gongyingshang);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody GongyingshangEntity gongyingshang, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,gongyingshang:{}",this.getClass().getName(),gongyingshang.toString());
//根据字段查询是否有相同数据
Wrapper<GongyingshangEntity> queryWrapper = new EntityWrapper<GongyingshangEntity>()
.notIn("id",gongyingshang.getId())
.andNew()
.eq("gongyingshang_name", gongyingshang.getGongyingshangName())
.eq("gongyingshang_types", gongyingshang.getGongyingshangTypes())
.eq("gongyingshang_xinyong_types", gongyingshang.getGongyingshangXinyongTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
GongyingshangEntity gongyingshangEntity = gongyingshangService.selectOne(queryWrapper);
if(gongyingshangEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// gongyingshang.set
// }
gongyingshangService.updateById(gongyingshang);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
gongyingshangService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
论文参考
目录
第一章 绪论 5
1.1 研究背景 5
1.2 系统研究现状 5
1.3 系统实现的功能 6
1.4 系统实现的特点 6
1.5 本文的组织结构 6
第二章开发技术与环境配置 7
2.1 Java语言简介 7
2.2 Vue技术 8
2.3 MySQL环境配置 8
2.4 IDEA环境配置 9
2.5 Mysql数据库介绍 9
2.6 B/S架构 9
第三章系统分析与设计 11
3.1 可行性分析 11
3.1.1 技术可行性 11
3.1.2 操作可行性 11
3.1.3经济可行性 11
3.2 需求分析 12
3.3 总体设计 12
3.4 数据库设计与实现 13
3.4.1 数据库概念结构设计 13
3.4.2 数据库具体设计 14
第四章 系统功能的具体实现 22
4.1 系统功能模块 22
4.2 管理员功能模块 25
第五章 系统测试 29
总结 30
参考文献 31
致谢 32