AccountController.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package com.fjhx.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  4. import com.fjhx.base.R;
  5. import com.fjhx.config.redis.RedisCache;
  6. import com.fjhx.constants.RedisConstant;
  7. import com.fjhx.entity.EmailInfo;
  8. import com.fjhx.service.IAccountService;
  9. import com.fjhx.vo.BindingVo;
  10. import com.fjhx.vo.ListenerVo;
  11. import com.fjhx.vo.ProgressVo;
  12. import com.fjhx.vo.SubmitVo;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.*;
  15. @RestController
  16. @RequestMapping("/account")
  17. public class AccountController {
  18. @Autowired
  19. private IAccountService accountService;
  20. /**
  21. * 绑定邮箱
  22. */
  23. @PostMapping("/binding")
  24. public R binding(@RequestBody BindingVo bindingVo) {
  25. EmailInfo emailInfo = accountService.binding(bindingVo);
  26. return R.ok(emailInfo);
  27. }
  28. /**
  29. * 查看用户账号同步进度
  30. */
  31. @GetMapping("getAsyncProgress")
  32. public R getAsyncProgress(@RequestParam("email") String email) {
  33. ProgressVo progressVo = RedisCache.get(RedisConstant.PROGRESS_KEY + email);
  34. if (ObjectUtils.isNull(progressVo)) {
  35. return R.ok();
  36. }
  37. if (progressVo.getPercentage() >= 100) {
  38. RedisCache.delete(RedisConstant.PROGRESS_KEY + email);
  39. }
  40. return R.ok(progressVo);
  41. }
  42. /**
  43. * 监听邮件事件
  44. */
  45. @PostMapping("/listener")
  46. public R post(@RequestBody ListenerVo listenerVo) {
  47. accountService.listener(listenerVo);
  48. return R.ok();
  49. }
  50. /**
  51. * 发送邮件
  52. */
  53. @PostMapping("submit")
  54. public R submit(@RequestBody SubmitVo submitVo) {
  55. System.out.println(JSON.toJSONString(submitVo));
  56. accountService.submit(submitVo);
  57. return R.ok();
  58. }
  59. }