✨作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
文章目录
- 一、前言
- 二、开发环境
- 三、系统界面展示
- 四、代码参考
- 五、论文参考
- 六、系统视频
- 结语
一、前言
随着信息技术的快速发展,微信小程序和安卓APP等移动应用已经成为人们日常生活的重要组成部分。特别是在校园环境中,学生需要一个方便、快捷的交流平台来分享信息、获取资源、提升自我。因此,开发一款校园交流平台微信小程序/安卓APP具有很强的现实意义和必要性。
当前,虽然存在一些校园交流平台,但它们往往存在诸多问题。首先,用户体验不佳,界面设计粗糙,操作繁琐,使得用户难以方便快捷地使用平台。其次,功能不完善,无法满足用户多元化的需求。例如,娱乐天地和学习平台等功能缺乏互动性,无法满足用户的个性化需求。
本课题旨在开发一款校园交流平台微信小程序/安卓APP,解决现有解决方案存在的问题,提高用户体验和功能完善性,保障用户信息安全。具体来说,本课题的研究目的包括:
设计并实现一个界面友好、操作便捷的校园交流平台;
实现用户管理、娱乐天地管理、投诉举报管理、学习平台等功能,提高平台的多元化和个性化;
本课题的研究成果具有重要的现实意义和理论价值。首先,它能够为学生提供一个方便、快捷的交流平台,增进校园信息的传播和共享,提高学生的学习能动性和参与度。其次,它能够提高现有校园交流平台的技术水平和服务质量,推动校园交流平台的发展和创新。再次,它能够为相关领域的研究提供参考和借鉴,推动相关领域的发展和完善。
二、开发环境
- 开发语言:Java
- 数据库:MySQL
- 系统架构:B/S
- 后端:SpringBoot
- 前端:微信小程序/Android+uniapp+Vue
三、系统界面展示
- 校园交流平台微信小程序/安卓APP界面展示:
四、代码参考
- 微信小程序/安卓APP项目实战代码参考:
@Controller
public class UserInfoController {
@Autowired
private IUserInfoService userInfoService;
@Autowired
private ILoginService loginService;
private static final Logger LOGGER = LoggerFactory.getLogger(UserInfoController.class);
/**
* @Title: userInfo
* @Description: 去个人中心
* @return 个人中心页面
*/
@RequestMapping("/userInfo")
public String userInfo() {
return "userInfo";
}
/**
* @param userName
* @return
* @Title: getUserInfoByUserName
* @Description: 根据用户名
*/
@RequestMapping("/userinfo/{userName}")
@ResponseBody
public Object getUserInfoByUserName(@PathVariable String userName, HttpSession session) {
String userName1 = session.getAttribute("userName").toString();
if (!StringUtils.equals(userName1, userName)) {
JSONObject result = new JSONObject();
result.put("success", false);
result.put("message", "无权限");
return result;
}
return userInfoService.getUserInfoByUserName(userName);
}
/**
* @Title: saveUserInfo
* @Description: 保存用户提交的用户信息(新增或更新)
* @param userInfo 用户信息
* @return 执行结果
*/
@RequestMapping("/saveuserinfo")
@ResponseBody
public Object saveUserInfo(@RequestBody UserInfo userInfo, HttpSession session) {
JSONObject result = new JSONObject();
String newUserName = userInfo.getUserName();
// 验证
if (StringUtils.isBlank(newUserName)) {
result.put("success", false);
result.put("message", "用户名不能为空");
return result;
}
// 用户表用不用修改
// session中存的和提交上来的不一样那就要改
String oldUserName = session.getAttribute("userName").toString();
if (!StringUtils.equals(oldUserName, newUserName)) {
result.put("success", false);
result.put("message", "用户名称不能修改");
return result;
}
String id = userInfo.getId();
// id为空则为新增
if (StringUtils.isBlank(id)) {
userInfo.setId(UUID.randomUUID().toString().replace("-", ""));// 设置id
userInfoService.addUserInfo(userInfo);
} else {
// 否则为更新
userInfoService.updateUserInfoById(userInfo);
}
result.put("success", true);
result.put("message", "保存成功");
result.put("id", userInfo.getId());
return result;
}
@RequestMapping("/uploadheadimg")
@ResponseBody
public Object uploadHeadImg(MultipartFile file, String id, HttpSession session) {
JSONObject result = new JSONObject();
result.put("success", true);
result.put("message", "上传成功");
result.put("id", id);
String originalFilename = file.getOriginalFilename();
String fileType = StringUtils.split(originalFilename, ".")[1];
// 存储后文件的新名字
String newName = UUID.randomUUID().toString().replace("-", "") + "." + fileType;
File baseDir = new File(Constant.NGINX_IMAGES_PATH);
if (!baseDir.exists()) {
boolean isCreateSuccess = baseDir.mkdir();
}
String path = Constant.NGINX_IMAGES_PATH + newName;
File savedFile = new File(path);
try {
boolean isCreateSuccess = savedFile.createNewFile();
if (isCreateSuccess) {
file.transferTo(savedFile);
}
} catch (IOException e) {
LOGGER.error("头像上传-创建新文件失败:{}",e.getMessage());
result.put("success", false);
result.put("message", "头像上传失败");
}
// 将头像持久化进数据库
if (result.getBooleanValue("success")) {// 图片转化成功的话
// 如果转化成功url的地址
String imagePath = Constant.NGINX_INTERNET_PRE + newName;
// 图片的url返回去
result.put("imagePath", imagePath);
UserInfo userInfo = new UserInfo();
userInfo.setImgPath(imagePath);
// 传过来的id为空的话新建userinfo
if (StringUtils.isBlank(id) || StringUtils.equals(id, "null")) {
String newInfoId = UUID.randomUUID().toString().replace("-", "");
userInfo.setId(newInfoId);
userInfo.setUserName(session.getAttribute("userName").toString());
// 存进数据库
userInfoService.addUserInfo(userInfo);
// id返回去
result.put("id", newInfoId);
} else {// 不为空update
userInfo.setId(id);
userInfoService.updateUserInfoById(userInfo);// 修改数据库
}
}
return result;
}
/**
* @Title: updatePassword
* @Description: 修改密码
* @param oldpass 旧密码
* @param newpass 新密码
* @param session 会话对象
* @return 修改结果
*/
@RequestMapping("/updatepassword")
@ResponseBody
public Object updatePassword(String oldpass, String newpass, HttpSession session) {
JSONObject result = new JSONObject();
String userName = session.getAttribute("userName").toString();
User user = loginService.getUserByUserName(userName);
String password = user.getPassword();
if (!StringUtils.equals(password, oldpass)) {
result.put("success", false);
result.put("message", "旧密码不正确");
return result;
}
user.setPassword(newpass);
loginService.updateUserById(user);
result.put("success", true);
result.put("message", "修改成功");
return result;
}
}
@Controller
public class LoginController {
private static final Logger logger = LoggerFactory.getLogger(LoginController.class);
@Autowired
private ILoginService loginService;
/**
* @Title: toLogin
* @Description: 去登录页面
* @return 登录页面
*/
@RequestMapping("/loginAndRegist")
public String toLogin() {
return "login";
}
/**
* @Title: login
* @Description: 登录
* @return 登录处理后跳转的页面
*/
@RequestMapping("/login")
@ResponseBody
public Object login(@RequestBody User user, HttpSession session) {
logger.info("登录中");
JSONObject resulte = new JSONObject();
String userName = user.getUserName();
String password = user.getPassword();
if (StringUtils.isBlank(userName)) {
resulte.put("message", "用户名不能为空");
resulte.put("success", false);
return resulte;
}
// 登陆的主体
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(userName, password);
try {
subject.login(token);
// 拿全部的信息
User userAll = loginService.getUserByUserName(userName);
session.setAttribute("userId", userAll.getId());
session.setAttribute("admin", StringUtils.equals(userAll.getAdmin(), "admin"));// 是否管理员
session.setAttribute("userName", userName);
resulte.put("message", "登陆成功");
resulte.put("success", true);
return resulte;
} catch (UnknownAccountException e) {
// 不存在此账号抛出的异常
resulte.put("message", "用户名或密码不正确");
resulte.put("success", false);
return resulte;
} catch (IncorrectCredentialsException passe) {
// 账号密码错误出的异常
resulte.put("message", "用户名或密码不正确");
resulte.put("success", false);
return resulte;
}
}
/**
* @Title: regist
* @Description: 注册
* @param user 用户
* @return 注册结果
*/
@RequestMapping("/regist")
@ResponseBody
public Object regist(@RequestBody User user) {
JSONObject resulte = new JSONObject();
// 验证用户名不能为空
if (StringUtils.isBlank(user.getUserName())) {
resulte.put("message", "用户名不为空");
resulte.put("success", false);
return resulte;
}
if (loginService.existByUserName(user.getUserName())) {
resulte.put("message", "该用户名已存在!");
resulte.put("success", false);
return resulte;
}
user.setId(StringUtils.replace(UUID.randomUUID().toString(), "-", ""));
loginService.addUser(user);
resulte.put("message", "注册成功!请登录");
resulte.put("success", true);
return resulte;
}
}
五、论文参考
- 计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP论文参考:
六、系统视频
校园交流平台微信小程序/安卓APP项目视频:
计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP
结语
计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目