博主介绍: ✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌
🍅 文末获取源码联系 🍅
👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》
系统介绍:
随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于菜匣子优选生鲜电商系统当然也不能排除在外,随着网络技术的不断成熟,带动了菜匣子优选生鲜电商系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对菜匣子优选生鲜电商系统而言非常有利。
本系统采用的数据库是Mysql,使用JSP技术开发,运行环境使用Tomcat服务器,ECLIPSE 是本系统的开发平台。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
系统功能结构如图4-4所示。
图4-4系统功能结构图
功能截图:
5.1管理员功能模块
管理员通过用户名和密码填写完成后进行登录,如图5-6所示。管理员登录成功后进入到系统操作界面,可以对主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等功能模块进行相对应操作。
个人中心:通过列表可以获取原密码、新密码、确认密码等内容,可以进行修改或删除操作,如图5-7所示。
图5-6管理员登录页面
图5-7个人中心页面
个人信息:通过列表可以获取用户名等信息,进行删除或修改操作,如图5-8所示。
图5-8个人信息界面图
用户管理:通过列表可以获取用户账号、用户姓名、密码、性别、联系电话、电子邮箱、余额、积分等信息,进行修改或删除操作,如图5-9所示。
图5-9用户管理界面图
商品分类管理:通过列表可以获取商品分类等信息,进行修改或删除操作,如图5-10所示。
图5-10商品分类管理界面图
商品信息管理:管理员通过列表可以获取商品编号、商品名称、商品分类、数量、品牌、规格、封面、价格、详情等信息,进行修改或删除操作,如图5-11所示。
图5-11商品信息管理界面图
轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-12所示。
图5-12轮播图管理界面图
新闻资讯:管理员通过列表可以获取标题、图片、内容等信息,进行修改或删除操作,如图5-13所示。
图5-13新闻资讯界面图
已完成订单:管理员通过列表可以获取订单id、用户id、商品id、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、状态、地址等信息,进行修改或删除操作,如图5-14所示。
图5-14已完成订单界面图
已支付订单列表:管理员通过列表可以获取订单id、用户id、商品id、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、
状态、地址等信息,进行修改或删除操作,如图5-15所示。
图5-15已支付订单列表界面图
已完成订单列表:管理员通过列表可以获取订单id、用户id、商品id、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、
状态、地址等信息,进行修改或删除操作,如图5-16所示。
图5-16已完成订单列表界面图
5.3前台首页功能模块
菜匣子优选生鲜电商系统,在菜匣子优选生鲜电商系统可以查看商品信息、新闻资讯、我的、跳转到后台、购物车等内容,如图5-17所示。
图5-17系统首页界面图
登录、注册,通过注册填写用户账号、用户姓名、密码、联系电话、电子邮箱等信息进行注册操作,如图5-18所示。
图5-18登录、注册界面图
商品信息,在商品信息页面可以查看商品编号、价格、数量、品牌、规格等信息进行立即购买,如图5-19所示。
图5-19商品信息界面图
收货地址添加,在收货地址添加页面可以查看个人中心、我的订单、我的地址、我的收藏等如图5-21所示。
图5-21收货地址添加界面图
确认下单,在确认下单页面可以查看选择收货地址、清单列表等信息进行支付如图5-22所示。
图5-22确认下单界面图
代码实现:
/**
* 游戏中心
* 后端接口
* @author
* @email
* @date 2021-03-09 15:33:04
*/
@RestController
@RequestMapping("/youxizhongxin")
public class YouxizhongxinController {
@Autowired
private YouxizhongxinService youxizhongxinService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,YouxizhongxinEntity youxizhongxin, HttpServletRequest request){
EntityWrapper<YouxizhongxinEntity> ew = new EntityWrapper<YouxizhongxinEntity>();
PageUtils page = youxizhongxinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, youxizhongxin), params), params));
request.setAttribute("data", page);
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,YouxizhongxinEntity youxizhongxin, HttpServletRequest request){
EntityWrapper<YouxizhongxinEntity> ew = new EntityWrapper<YouxizhongxinEntity>();
PageUtils page = youxizhongxinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, youxizhongxin), params), params));
request.setAttribute("data", page);
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( YouxizhongxinEntity youxizhongxin){
EntityWrapper<YouxizhongxinEntity> ew = new EntityWrapper<YouxizhongxinEntity>();
ew.allEq(MPUtil.allEQMapPre( youxizhongxin, "youxizhongxin"));
return R.ok().put("data", youxizhongxinService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(YouxizhongxinEntity youxizhongxin){
EntityWrapper< YouxizhongxinEntity> ew = new EntityWrapper< YouxizhongxinEntity>();
ew.allEq(MPUtil.allEQMapPre( youxizhongxin, "youxizhongxin"));
YouxizhongxinView youxizhongxinView = youxizhongxinService.selectView(ew);
return R.ok("查询游戏中心成功").put("data", youxizhongxinView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
YouxizhongxinEntity youxizhongxin = youxizhongxinService.selectById(id);
youxizhongxin.setClicknum(youxizhongxin.getClicknum()+1);
youxizhongxin.setClicktime(new Date());
youxizhongxinService.updateById(youxizhongxin);
return R.ok().put("data", youxizhongxin);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
YouxizhongxinEntity youxizhongxin = youxizhongxinService.selectById(id);
youxizhongxin.setClicknum(youxizhongxin.getClicknum()+1);
youxizhongxin.setClicktime(new Date());
youxizhongxinService.updateById(youxizhongxin);
return R.ok().put("data", youxizhongxin);
}
/**
* 赞或踩
*/
@RequestMapping("/thumbsup/{id}")
public R vote(@PathVariable("id") String id,String type){
YouxizhongxinEntity youxizhongxin = youxizhongxinService.selectById(id);
if(type.equals("1")) {
youxizhongxin.setThumbsupnum(youxizhongxin.getThumbsupnum()+1);
} else {
youxizhongxin.setCrazilynum(youxizhongxin.getCrazilynum()+1);
}
youxizhongxinService.updateById(youxizhongxin);
return R.ok("投票成功");
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody YouxizhongxinEntity youxizhongxin, HttpServletRequest request){
youxizhongxin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(youxizhongxin);
youxizhongxinService.insert(youxizhongxin);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody YouxizhongxinEntity youxizhongxin, HttpServletRequest request){
youxizhongxin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(youxizhongxin);
youxizhongxinService.insert(youxizhongxin);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody YouxizhongxinEntity youxizhongxin, HttpServletRequest request){
//ValidatorUtils.validateEntity(youxizhongxin);
youxizhongxinService.updateById(youxizhongxin);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
youxizhongxinService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 前端智能排序
*/
@IgnoreAuth
@RequestMapping("/autoSort")
public R autoSort(@RequestParam Map<String, Object> params,YouxizhongxinEntity youxizhongxin, HttpServletRequest request,String pre){
EntityWrapper<YouxizhongxinEntity> ew = new EntityWrapper<YouxizhongxinEntity>();
Map<String, Object> newMap = new HashMap<String, Object>();
Map<String, Object> param = new HashMap<String, Object>();
Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
String newKey = entry.getKey();
if (pre.endsWith(".")) {
newMap.put(pre + newKey, entry.getValue());
} else if (StringUtils.isEmpty(pre)) {
newMap.put(newKey, entry.getValue());
} else {
newMap.put(pre + "." + newKey, entry.getValue());
}
}
params.put("sort", "clicknum");
params.put("order", "desc");
PageUtils page = youxizhongxinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, youxizhongxin), params), params));
return R.ok().put("data", page);
}
}
论文参考:
目 录
第一章 绪 论1
1.1背景及意义1
1.2国内外研究概况2
1.3 研究的内容2
第二章 关键技术的研究3
2.1 JSP技术介绍3
2.2 JAVA简介3
2.3 ECLIPSE 开发环境4
2.4 Tomcat服务器4
2.5 MySQL数据库5
第三章 系统分析5
3.1 系统设计目标6
3.2 系统可行性分析6
3.3 系统功能分析和描述7
3.4系统UML用例分析8
3.4.1管理员用例9
3.4.2用户用例9
3.5系统流程分析10
3.5.2添加信息流程11
3.5.1操作流程12
3.5.3删除信息流程13
第四章 系统设计14
4.1 系统体系结构15
4.2 数据库设计原则16
4.3 数据表17
第五章 系统实现18
5.1用户功能模块18
5.2管理员功能模块19
5.3前台首页功能模块19
第六章 系统测试20
6.1测试定义及目的21
6.2性能测试22
6.3测试模块23
6.4测试结果24
总 结26
致 谢27
参考文献28
获取源码:
大家 点赞、收藏、关注、评 论啦 、 查看 👇🏻 获取联系方式 👇🏻
精彩专栏 推荐订阅 :在 下方专栏 👇🏻
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》