欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > springboot+vue项目实战2024第四集修改文章信息

springboot+vue项目实战2024第四集修改文章信息

2024/10/24 15:13:37 来源:https://blog.csdn.net/github_36510643/article/details/140337566  浏览:    关键词:springboot+vue项目实战2024第四集修改文章信息

1.添加文章信息

    @PostMappingpublic Result add(@RequestBody @Validated Article article){articleService.add(article);return Result.success();}void add(Article article);
@Override
public void add(Article article) {article.setCreateTime(LocalDateTime.now());article.setUpdateTime(LocalDateTime.now());Map<String,Object> map = ThreadLocalUtil.get();Integer id =(Integer) map.get("id");article.setUserId(id);articleMapper.add(article);}@Insert("insert into article(title,content,cover_img,state,cate_id," +"create_time,update_time,user_id)" +" values (#{title},#{content},#{coverImg},#{state},#{cateId}," +"#{createTime},#{updateTime},#{userId})")void add(Article article);

2.查询文章信息

@GetMappingpublic Result<PageBean<Article>> list(Integer pageNum,Integer pageSize,@RequestParam(required = false) Integer cateId,@RequestParam(required = false) String state){PageBean<Article> pb=articleService.list(pageNum,pageSize,cateId,state);return Result.success(pb);}PageBean<Article> list(Integer pageNum, Integer pageSize, Integer cateId, String state);@Overridepublic PageBean<Article> list(Integer pageNum, Integer pageSize, Integer cateId, String state) {PageBean<Article> pageBean = new PageBean<>();PageHelper.startPage(pageNum,pageSize);Map<String,Object> map = ThreadLocalUtil.get();Integer id = (Integer) map.get("id");List<Article> as=articleMapper.list(id,cateId,state);Page<Article> p=(Page<Article>) as;pageBean.setTotal(p.getTotal());pageBean.setItems(p.getResult());return pageBean;}List<Article> list(Integer userId, Integer cateId, String state);@Datapublic class Article {private Integer id;@NotEmpty@Pattern(regexp = "^\\S{1,10}$")private String title;@NotEmptyprivate String content;@NotEmpty@URLprivate String coverImg;@Stateprivate String state;private Integer userId;@NotNullprivate Integer cateId;private LocalDateTime createTime;private LocalDateTime updateTime;}@Data@NoArgsConstructor@AllArgsConstructorpublic class PageBean <T>{private Long total;private List<T> items;}@Documented@Constraint(validatedBy = {StateValidation.class})@Target({ ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)public @interface State {String message() default "state参数的值只能是已经发布或者草稿";Class<?>[] groups() default {};Class<? extends Payload>[] payload() default {};}public class StateValidation implements ConstraintValidator<State,String> {@Overridepublic boolean isValid(String var1, ConstraintValidatorContext var2){if(var1==null)return false;if(var1.equals("已发布")||var1.equals("草稿"))return true;return false;}}

3.配置分页

   <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version></dependency>

4.redis使用存储token

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/big_eventusername: rootpassword: rootdata:redis:host: localhostport: 6379
@PatchMapping("/updatePwd")public Result updatePwd(@RequestBody Map<String,String> params,@RequestHeader("Authorization")String token){String oldPwd = params.get("old_pwd");String newPwd = params.get("new_pwd");String rePwd = params.get("re_pwd");if(!StringUtils.hasLength(oldPwd) ||!StringUtils.hasLength(newPwd)||!StringUtils.hasLength(rePwd)){return Result.error("缺少必要参数");}Map<String,Object> map = ThreadLocalUtil.get();String username = (String) map.get("username");User user = userService.findByUserName(username);if(!user.getPassword().equals(Md5Utils.encrypt3ToMd5(oldPwd))){return Result.error("原密码填写不正确");}if(!rePwd.equals(newPwd)){return Result.error("两次填写的密码不一致");}userService.updatePwd(newPwd);ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();operations.getOperations().delete(token);return Result.success();}@PostMapping("/login")public Result<String> login(@Pattern(regexp = "^\\S{4,16}$") String username,@Pattern(regexp = "^\\S{5,16}$") String password){User loginUser = userService.findByUserName(username);if(loginUser==null){return Result.error("用户名错误");}if(Md5Utils.encrypt3ToMd5(password).equals(loginUser.getPassword())){Map<String, Object> map = new HashMap<>();map.put("id",loginUser.getId());map.put("username",loginUser.getUsername());String s = JwtUtil.genToken(map);ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();operations.set(s,s,1, TimeUnit.HOURS);return Result.success(s);}return Result.error("密码错误");}@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String token = request.getHeader("Authorization");try {ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();String s = operations.get(token);if(s==null){throw new RuntimeException();}Map<String, Object> map = JwtUtil.parseToken(token);ThreadLocalUtil.set(map);return true;}catch (Exception e){response.setStatus(401);return false;}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com