目录
一、前言
二、技术介绍
三、系统实现
四、文档参考
五、核心代码
六、源码获取
全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者
一、前言
随着全球贸易的日益繁荣和消费者需求的多样化,免税商品购物已成为众多旅行者和消费者的热门选择。为了提供一个更加便捷、高效且优质的免税商品购物体验,我们精心打造了一款基于Java、Spring Boot和MySQL的免税商品优选购物商城系统。本系统充分利用Java语言的稳定性和Spring Boot框架的灵活性,结合MySQL数据库的高效存储能力,旨在为用户打造一个功能全面、操作简便的在线购物平台。通过系统的智能化推荐和详尽的商品信息展示,用户能够轻松浏览并选购心仪的免税商品,享受前所未有的购物乐趣。同时,本系统还具备强大的后台管理功能,支持商家进行商品管理、订单处理、库存监控等操作,从而确保商城运营的顺畅和高效。我们相信,通过本系统的应用,将能够极大地推动免税商品购物行业的发展,为消费者和商家创造更多的价值。
二、技术介绍
语言:Java
使用框架:Spring Boot
前端技术:JS、Vue 、css3
开发工具:IDEA/Eclipse
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven: apache-maven 3.8.1-bin
前端环境:Node.Js 12\14\16
三、系统实现
用户管理:通过列表可以获取账号、用户名、姓名、性别、头像、联系电话、照片、地址等信息,进行查看详情、修改或删除操作,如图5-2所示。
商家管理:通过列表可以获取商家的详细信息内容,进行查看详情或删除操作,如图5-3所示。
订单管理:通过列表可以获取订单编号、商品名称、商品图片、购买数量、价格、总价格、支付类型、状态、地址等信息,进行查看详情或发货、删除操作,如图5-4所示。
商家功能模块
商家通过点击后台管理进入后台系统可以进行查看个人中心、商品信息管理、商品分类管理、在线客服管理、订单管理等功能模块,进行相对应操作,通过点击个人信息页面可以进行查看员工的基本信息,进行查看或修改操作,如图5-5所示。
商品信息管理:通过列表可以获取商品名称、商品类型、规格、图片、商家账号、商家姓名、价格等信息内容,进行查看详情、在线客服、查看评论、新增或删除操作,如图5-6所示。
在线客服管理:通过列表可以获取客服编号、内容、账号、姓名、商家账号、商家姓名、客服回复等信息,进行查看详情、修改、删除操作,如图5-7所示。
我的收藏管理:通过列表可以获取收藏名称、收藏图片等信息,进行查看详情、修改或删除操作,如图5-8所示。
订单管理:通过列表可以获取订单编号、商品名称、商品图片、购买数量、价格、总价格、支付类型、状态、地址等信息,进行查看详情或删除操作,如图5-9所示。
用户前台功能模块
用户通过家免税商品优选购物商城系统,可以进行查看首页、商品信息、商城快讯、个人中心、后台管理、购物车等功能,可以进行相对应的操作,如图5-10所示。
商品信息详情:通过页面可以进行查看商品名称、商品价格、商品类型、规格、商家账号、商家账号、商家姓名、点击次数等信息,进行添加到购物车或立即购买、点我收藏,如图5-11所示。
个人中心:通过页面可以进行查看获取个人中心、我的订单、我的地址、我的收藏四个子模块,个人中心:通过页面可以进行查看个人信息或进行更新个人信息,进行提交保存操作,如图5-12所示。我的订单:通过列表可以获取订单编号、商品、价格、数量、总价、地址等信息,进行查看我的订单或进行退款操作,如图5-13所示。我的地址:通过页面可以进行查看联系人、手机号码、选择地址等信息,进行查看或修改、删除操作,并通过输入添加新地址进行添加操作,如图5-14所示。
用户后台功能模块
用户通过点击后台管理进入后台系统可以进行查看个人中心、商品信息管理、在线客服管理、我的收藏管理、订单管理等功能模块,进行相对应操作,如图5-15所示。
在线客服管理:通过列表可以获取客服编号、内容、账号、姓名、商家账号、商家姓名、客服回复等信息,进行查看详情操作,如图5-16所示。
商品信息管理:通过列表可以获取商品名称、商品类型、规格、图片、商家账号、商家姓名、价格等信息内容,进行查看详情、在线客服、查看评论、新增或删除操作,如图5-17所示。
四、文档参考
五、核心代码
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
六、源码获取
感谢大家点赞、收藏、关注、评论啦