java基于springboot+vue的汉服推广与交流平台

在时间安排上,开发系统所需要的时间是充裕的。从老师发布课题到完成课题,这期间有大量的时间去准备毕业项目。从设计初期对整个开发项目进行背景调查,以及中期的系统分析与实现,到最后的系统测试,充分利用课余课堂时间,所以时间可行性上是可以的。 本课题使用的技术多数来自大学课程,一小部分来自自行搜索的技术,在实现对数据的增删改查中,充分调动了大学中所使用的开发技术,在实体属性分析的时候充分调用了UML的知识。

/**
 * 登录相关
 */
@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("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
          
   
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	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( UserEntity user){
          
   
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
          
   
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
          
   
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @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();
    }
}

通过软件的需求分析已经获得了系统的基本功能需求,根据需求,将汉服推广与交流平台功能模块主要分为管理员模块。管理员添加汉服知识管理、分类管理,图文动态管理、视频动态管理等操作

当前主流的数据库包括SQL Server,Oracle和MySQL,先比而言前两者都比较庞大,且都是收费的,MySQL不仅小巧,查询速度快,而且它是免费开源的。这也是本次开发使用MYSQL数据库做完存储介质的一个重要原因。MySQL虽然小巧,但是它的功能依然非常的强大,当前很多主流的互联网公司也都在使用MySQL,尤其是随着Web的盛行,MySQL更是变成了当前最后欢迎的数据库之一。MySQL除了提供基本的机构化查询语句之外,还提供了视图,存储过程和事务等非常强大的功能。这对于基本的开发完全可以胜任,所以本次开发选择了MySQL做完存储数据库。

经验分享 程序员 微信小程序 职场和发展