LockController.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.zhongzheng.controller.base;
  2. import cn.hutool.core.lang.Validator;
  3. import com.zhongzheng.common.annotation.Log;
  4. import com.zhongzheng.common.core.controller.BaseController;
  5. import com.zhongzheng.common.core.domain.AjaxResult;
  6. import com.zhongzheng.common.core.page.TableDataInfo;
  7. import com.zhongzheng.common.core.redis.RedisCache;
  8. import com.zhongzheng.common.enums.BusinessType;
  9. import com.zhongzheng.common.utils.SecurityUtils;
  10. import com.zhongzheng.common.utils.ServletUtils;
  11. import com.zhongzheng.framework.web.service.WxTokenService;
  12. import com.zhongzheng.modules.base.bo.ActionLockQueryBo;
  13. import com.zhongzheng.modules.user.entity.ClientLoginUser;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import lombok.RequiredArgsConstructor;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.security.access.prepost.PreAuthorize;
  19. import org.springframework.validation.annotation.Validated;
  20. import org.springframework.web.bind.annotation.*;
  21. import java.util.concurrent.TimeUnit;
  22. /**
  23. * 锁定防多端Controller
  24. *
  25. * @author hjl
  26. * @date 2021-10-08
  27. */
  28. @Api(value = "锁定防多端", tags = {"锁定防多端"})
  29. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  30. @RestController
  31. @RequestMapping("/lock")
  32. public class LockController extends BaseController {
  33. private final WxTokenService wxTokenService;
  34. private final RedisCache redisCache;
  35. /**
  36. * 锁定学时审核页面
  37. */
  38. @ApiOperation("锁定行为")
  39. @PreAuthorize("@ss.hasPermi('grade:grade:edit')")
  40. @Log(title = "锁定行为", businessType = BusinessType.UPDATE)
  41. @PostMapping("/lockAction")
  42. public AjaxResult<Void> lockAction(@Validated @RequestBody ActionLockQueryBo bo) {
  43. ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
  44. String key = "LockAppAction_"+bo.getAction()+"-"+loginUser.getUser().getUserId();
  45. redisCache.setCacheObject(key, bo.getAction(),13, TimeUnit.SECONDS);//13秒锁定
  46. return AjaxResult.success();
  47. }
  48. /**
  49. * 查看学时审核锁定状态
  50. */
  51. @ApiOperation("查看行为锁定状态")
  52. @PreAuthorize("@ss.hasPermi('grade:grade:edit')")
  53. @Log(title = "查看行为锁定状态", businessType = BusinessType.UPDATE)
  54. @PostMapping("/lockStatus")
  55. public AjaxResult<Void> lockStatus(@RequestBody ActionLockQueryBo bo) {
  56. ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
  57. String key = "LockAppAction_"+bo.getAction()+"-"+loginUser.getUser().getUserId();
  58. String action = redisCache.getCacheObject(key);
  59. return AjaxResult.success(action);
  60. }
  61. /**
  62. * 查看学时审核锁定状态
  63. */
  64. @ApiOperation("删除锁定状态")
  65. @PreAuthorize("@ss.hasPermi('grade:grade:edit')")
  66. @Log(title = "删除锁定状态", businessType = BusinessType.UPDATE)
  67. @PostMapping("/delLock")
  68. public AjaxResult delLock(@RequestBody ActionLockQueryBo bo) {
  69. ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
  70. String key = "LockAppAction_"+bo.getAction()+"-"+loginUser.getUser().getUserId();
  71. return AjaxResult.success(redisCache.deleteObject(key));
  72. }
  73. }