文末联系获取源码
开发语言:Java
框架:ssm
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
小程序框架:uniapp
小程序开发软件:HBuilder X
小程序运行软件:微信开发者
一、前言介绍
随着网络和计算机技术的发展,各行各业出现了新的生机。各种办公软件和网站充斥到日常生活中,并在实践中不断的进步和发展。目前办公软件和网站技术已非常成熟,可以为用户提供更好的工作帮助。游戏近几年成为热门商品,对于游戏账号的购买最常用的有联系其它用户进行私下交易和网上购买。自己去联系他人购买需要机会,而且由于彼此不信任而使大部分人们放弃。网上购买的使用量非常高,相对应的管理工作也增加。到目前为止,人们网上交易一般去淘宝、京东等平台。这类平台属于第三方平台需要大量的推广费用,造成卖家成本增加而使很多的卖家望而却步。
本游戏账号交易微信小程序采用网上购物模式进行游戏账号的购买,编程语言采用Java语言,数据库为mysql,运行软件为微信开发者工具。本系统包括买家、卖家和管理员,买家可以在系统中查看账号信息进行购买,可以进行评价、收藏和管理订单信息﹔卖家可以管理订单信息和自己的账号信息、评论信息、联系信息;管理员可以管理游戏账号、系统的公告和站内联系信息、账号退货信息、评价信息等。为了保证系统的健康和正向发展,管理员可以对注册用户的资料进行审核。本系统实现了游戏账号的网上购买,减少员工的工作量,提高用户购买的效率和适应时代发展。
二、系统功能分析
为了系统可以实现用户的要求和工作人员的要求,去实际调查和参加销售工作,得出本系统的服务对象为需要游戏账号的买家和要销售游戏账号的卖家以及系统的工作人员,本系统的基本信息为订单信息和账号信息,根据不同的使用对象设计不同的功能。
本系统的服务对象为管理员和买家、卖家,管理员的用例有账号信息、注册用户信息、系统公告信息、游戏类别信息、站内联系信息、账号退货信息、卖家评价信息、用户评价信息、卖家信息,买家的用例有个人信息、订单信息、账号退货信息、卖家评价、用户评价、我的收藏等﹔卖家的用例有账号信息、订单信息、评论信息、收藏信息、个人信息、退货信息等。
2.1系统功能结构
根据分析和调查本系统实现的主要功能为查看账号信息和在线购买、管理账号、订单信息。卖家负责添加、修改和删除账号信息,买家进行浏览,买家在线购买后,卖家可以审核用户的订单信息。在此基础上,本系统加入系统公告、评论和收藏管理、用户注册等功能,本系统的功能结构图如下图所示:
三、小程序端
3.1系统登录功能的界面实现
管理员和买家、卖家想要进行操作都需要先进行登录,对于管理员和买家、卖家的登录界面分为两个不同的界面。登录界面的设计理念一样,都是为了保证系统的安全,在登录界面里需要对账号和密码的验证,当输入的信息错误时也可以点击删除按钮进行重新输入,买家、卖家登录界面如下图所示:
3.2用户注册功能的界面实现
本功能设计在用户登录的窗口上,当点击用户注册功能时可以进入到注册表单填写的界面,按照要求填写信息,信息填写完成后点击提交信息按钮就可以注册成功,当注册表单中有信息没有填写为空时,点击提交信息按钮会提示注册失败。用户注册功能的实现界面如下图所示:
3.3小程序首页的功能界面实现
用户登录后,可以在系统首页查看,首页,游戏账号,我的,站内联系,交易订单,账号退货,卖家评价,用户评价,我的收藏管理,系统首页功能界面实现效果如下图所示;
3.4游戏账号功能的界面实现
在游戏账号页面,可以查看游戏类别,游戏名称等信息,游戏账号浏览界面如下图所示:
3.5账号信息功能的界面实现
买家在首页查看账号信息,选择需要的账号进行购买,点击账号信息后面的交易按钮可以进入购买界面,账号信息浏览界面如下图所示:
购买界面如下图所示:
用户购买成功后需要付款,实现界面如下图所示:
四、管理员功能界面实现
管理员登录界面如下图所示
4.1管理员个人中心管理功能的界面实现
管理员登录系统中后,可以管理账号的密码信息,在添加账号时只要填写账号名和密码就可以实现,管理员修改密码的功能界面实现如下图所示:
4.2管理员用户信息管理功能的界面实现
为了保证系统的安全,不会被恶意人员捣乱,管理员可以对注册用户信息进行审核,当发现恶意捣乱会员可以删除其账号,删除后,用户就不能再登录。管理员用户管理功能的实现界面如下图所示:
4.3管理员系统管理功能的界面实现
管理员可以管理系统公告的内容和设置轮播图,管理员管理系统公告信息的实现界面如下图所示:
管理员添加图片信息的实现界面如下图所示:
4.4订单管理功能的界面实现
本功能为本系统的核心功能,卖家和买家、管理员都可以管理订单信息。卖家可以管理购买自己账号的所有订单,买家可以管理自己购买的订单信息。管理员可以审核用户的所有订单。订单管理功能的实现界面如下图所示:
4.5游戏账号管理功能的界面实现
游戏账号管理功能为卖家发布账号信息和管理员审核账号信息。管理员管理游戏账号的实现界面如下图所示:
4.6站内联系功能的界面实现
管理员查询联系信息和进行联系信息的审核、修改、删除。管理员查询站内联系信息的界面实现如下图所示:
4.7账号退货功能的界面实现
同样账号退货功能为买家、卖家、管理员三种权限都拥有的功能。当买家不想购买该账号时可以申请退货,卖家可以处理,管理员可以审核整个过程。账号退货功能的实现界面如下图所示:
五、部分核心代码
5.1登录系统主要代码
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"yonghu", "用户" );
return R.ok().put("token", token);
}
5.2上传文件关键代码
@RequestMapping("/upload")
public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
if (file.isEmpty()) {
throw new EIException("上传文件不能为空");
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
String fileName = new Date().getTime()+"."+fileExt;
File dest = new File(upload.getAbsolutePath()+"/"+fileName);
file.transferTo(dest);
/**
* 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
* 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
* 并且项目路径不能存在中文、空格等特殊字符
*/
// FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
if(StringUtils.isNotBlank(type) && type.equals("1")) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
if(configEntity==null) {
configEntity = new ConfigEntity();
configEntity.setName("faceFile");
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put("file", fileName);
}