目录
前言
1.项目介绍
2.开发环境
3.工程结构
4.代码
5.项目总结
前言
该系统基于安卓采用前后端分离的方式实现,后端使用Java相关进行开发。
1.项目介绍
该系统的用户分为3类角色:毕业生、教师、管理员,其中毕业生能够寻友,个人中心管理,发毕业圈,浏览母校的信息动态,收藏需要的信息,浏览校园资讯,留言反馈;教师能够查找学生的所有信息,个人中心管理,寻友,可以在毕业圈里面查看、发布、评论消息,发布优秀毕业生的风采,发布母校信息动态,收藏需要的信息,浏览校园资讯,留言反馈。管理员能管理用户信息,管理毕业圈,管理母校动态信息,管理毕业生风采,管理轮播图设置,管理反馈留言,管理收藏设置。
2.开发环境
前端:vue,uni-app,HbuilderX
后端:jdk8、git、maven、idea、springboot、Jenkins,mybatis,mybatis-plus,mysql,navicat,
3.工程结构
后端采用springboot项目进行数据层面的读取与写入,前端又分为网页与手机端,先运行springboot项目,然后进入HbuilderX运行前端项目。
4.代码
该系统的用户分为3类角色:毕业生、教师、管理员,其中毕业生能够寻友,个人中心管理,发毕业圈,浏览母校的信息动态,收藏需要的信息,浏览校园资讯,留言反馈;教师能够查找学生的所有信息,个人中心管理,寻友,可以在毕业圈里面查看、发布、评论消息,发布优秀毕业生的风采,发布母校信息动态,收藏需要的信息,浏览校园资讯,留言反馈。管理员能管理用户信息,管理毕业圈,管理母校动态信息,管理毕业生风采,管理轮播图设置,管理反馈留言,管理收藏设置。
前端:vue,uni-app,HbuilderX
后端:jdk8、git、maven、idea、springboot、Jenkins,mybatis,mybatis-plus,mysql,navicat,
3.工程结构
后端采用springboot项目进行数据层面的读取与写入,前端又分为网页与手机端,先运行springboot项目,然后进入HbuilderX运行前端项目。
4.代码
后端采用springboot项目进行数据层面的读取与写入,前端又分为网页与手机端,先运行springboot项目,然后进入HbuilderX运行前端项目。
4.1管理员相关代码
@RequestMapping("administrator")
@RestController
public class AdministratorController {
@Autowired
private AdministratorService userService;
@Autowired
private TokenService tokenService;
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String userName, String password, String captcha, HttpServletRequest request) {
AdministratorEntity user = userService.selectOne(new EntityWrapper().eq("user_name", userName));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),userName, "administrator", user.getRole());
return R.ok().put("token", token);
}
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody AdministratorEntity user){
if(userService.selectOne(new EntityWrapper().eq("user_name", 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){
AdministratorEntity user = userService.selectOne(new EntityWrapper().eq("user_name", userName));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
@RequestMapping("/page")
public R page(@RequestParam Map params, AdministratorEntity user){
EntityWrapper ew = new EntityWrapper<>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
@RequestMapping("/list")
public R list( AdministratorEntity user){
EntityWrapper ew = new EntityWrapper<>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
AdministratorEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
AdministratorEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
@PostMapping("/save")
public R save(@RequestBody AdministratorEntity user){
if(userService.selectOne(new EntityWrapper().eq("user_name", user.getUserName())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
@RequestMapping("/update")
public R update(@RequestBody AdministratorEntity user){
AdministratorEntity u = userService.selectOne(new EntityWrapper().eq("user_name", user.getUserName()));
if(u!=null && !u.getId().equals(user.getId()) && u.getUserName().equals(user.getUserName())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
4.2毕业生风采评论实现代码
@RestController
@RequestMapping("/graduateExhibitionDiscuss")
public class GraduateExhibitionDiscussController {
@Autowired
private GraduateExhibitionDiscussService graduateExhibitionDiscussService;
@RequestMapping("/page")
public R page(@RequestParam Map params, GraduateDiscussEntity graduateDiscussEntity,
HttpServletRequest request){
EntityWrapper ew = new EntityWrapper<>();
PageUtils page = graduateExhibitionDiscussService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, graduateDiscussEntity), params), params));
return R.ok().put("data", page);
}
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map params, GraduateDiscussEntity graduateDiscussEntity,
HttpServletRequest request){
EntityWrapper ew = new EntityWrapper<>();
PageUtils page = graduateExhibitionDiscussService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, graduateDiscussEntity), params), params));
return R.ok().put("data", page);
}
@RequestMapping("/lists")
public R list( GraduateDiscussEntity graduateDiscussEntity){
EntityWrapper ew = new EntityWrapper<>();
ew.allEq(MPUtil.allEQMapPre( graduateDiscussEntity, "graduateDiscussEntity"));
return R.ok().put("data", graduateExhibitionDiscussService.selectListView(ew));
}
@RequestMapping("/query")
public R query(GraduateDiscussEntity graduateDiscussEntity){
EntityWrapper ew = new EntityWrapper<>();
ew.allEq(MPUtil.allEQMapPre( graduateDiscussEntity, "graduateDiscussEntity"));
GraduateExhibitionDiscussView graduateDiscussEntityView = graduateExhibitionDiscussService.selectView(ew);
return R.ok("查询毕业生风采评论表成功").put("data", graduateDiscussEntityView);
}
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
GraduateDiscussEntity graduateDiscussEntity = graduateExhibitionDiscussService.selectById(id);
return R.ok().put("data", graduateDiscussEntity);
}
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
GraduateDiscussEntity graduateDiscussEntity = graduateExhibitionDiscussService.selectById(id);
return R.ok().put("data", graduateDiscussEntity);
}
@RequestMapping("/save")
public R save(@RequestBody GraduateDiscussEntity graduateDiscussEntity, HttpServletRequest request){
graduateExhibitionDiscussService.insert(graduateDiscussEntity);
return R.ok();
}
@RequestMapping("/add")
public R add(@RequestBody GraduateDiscussEntity graduateDiscussEntity, HttpServletRequest request){
graduateExhibitionDiscussService.insert(graduateDiscussEntity);
return R.ok();
}
@RequestMapping("/update")
@Transactional
public R update(@RequestBody GraduateDiscussEntity graduateDiscussEntity, HttpServletRequest request){
graduateExhibitionDiscussService.updateById(graduateDiscussEntity);
return R.ok();
}
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
graduateExhibitionDiscussService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper wrapper = new EntityWrapper<>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = graduateExhibitionDiscussService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
5.项目总结
该项目可在电脑与手机端运行,源码齐全可用,需要的可以私聊我
该项目可在电脑与手机端运行,源码齐全可用,需要的可以私聊我



