AppController.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. package com.fdkankan.ucenter.controller.app;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.amazonaws.services.simpleworkflow.flow.annotations.NoWait;
  4. import com.fdkankan.common.util.JwtUtil;
  5. import com.fdkankan.redis.util.RedisUtil;
  6. import com.fdkankan.ucenter.common.BaseController;
  7. import com.fdkankan.ucenter.common.RedisKeyUtil;
  8. import com.fdkankan.ucenter.common.Result;
  9. import com.fdkankan.ucenter.constant.CameraConstant;
  10. import com.fdkankan.ucenter.constant.LoginConstant;
  11. import com.fdkankan.ucenter.entity.Camera;
  12. import com.fdkankan.ucenter.entity.CameraDetail;
  13. import com.fdkankan.ucenter.entity.User;
  14. import com.fdkankan.ucenter.service.ICameraDetailService;
  15. import com.fdkankan.ucenter.service.ICameraService;
  16. import com.fdkankan.ucenter.service.IUserRoleService;
  17. import com.fdkankan.ucenter.service.IUserService;
  18. import com.fdkankan.ucenter.service.impl.AppService;
  19. import com.fdkankan.ucenter.service.impl.LoginService;
  20. import com.fdkankan.ucenter.vo.request.AppLoginParam;
  21. import com.fdkankan.ucenter.vo.request.LoginParam;
  22. import com.fdkankan.ucenter.vo.request.RegisterParam;
  23. import com.fdkankan.ucenter.vo.request.RequestCamera;
  24. import lombok.extern.slf4j.Slf4j;
  25. import org.apache.commons.lang.StringUtils;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.util.ObjectUtils;
  28. import org.springframework.web.bind.annotation.*;
  29. import java.util.Set;
  30. @RestController
  31. @RequestMapping("/ucenter/sso/app")
  32. @Slf4j
  33. public class AppController extends BaseController {
  34. @Autowired
  35. private AppService appService;
  36. @Autowired
  37. private LoginService loginService;
  38. @Autowired
  39. private IUserService userService;
  40. @Autowired
  41. private ICameraService cameraService;
  42. @Autowired
  43. private ICameraDetailService cameraDetailService;
  44. @Autowired
  45. private IUserRoleService userRoleService;
  46. @Autowired
  47. RedisUtil redisUtil;
  48. /**
  49. * 登录
  50. * phoneNum 用户名
  51. * password 密码
  52. */
  53. @PostMapping("/userLogin")
  54. public Result userLogin(@RequestBody LoginParam param){
  55. return Result.success(appService.login(param));
  56. }
  57. /**
  58. * app扫码登录
  59. * appUserName 相机设备嘛
  60. * appPassword 相机密码
  61. * uuid
  62. */
  63. @PostMapping("/login")
  64. public Result login(@RequestBody AppLoginParam param){
  65. appService.appLogin(param);
  66. return Result.success();
  67. }
  68. /**
  69. * app登录
  70. * appUserName 相机设备嘛
  71. * appPassword 相机密码
  72. */
  73. @PostMapping("/login2")
  74. public Result login2(@RequestBody AppLoginParam param){
  75. return Result.success(appService.login2(param));
  76. }
  77. /**
  78. * 验证码登陆
  79. * @return
  80. */
  81. @PostMapping("/quickLogin")
  82. public Result quickLogin(@RequestBody LoginParam param){
  83. return Result.success(appService.quickLogin(param));
  84. }
  85. /**
  86. * 注册
  87. * @param param
  88. * @return
  89. */
  90. @PostMapping("/register")
  91. public Result register(@RequestBody RegisterParam param){
  92. param.setConfirmPwd(param.getPassword());
  93. param.setClear("YES");
  94. loginService.register(param);
  95. return Result.success();
  96. }
  97. /**
  98. * 登出
  99. */
  100. @RequestMapping(value = "/logout", method = RequestMethod.POST)
  101. public Result logout() {
  102. appService.logout(getToken());
  103. return Result.success();
  104. }
  105. /**
  106. * app 获取随机昵称
  107. */
  108. @PostMapping("/getNickName")
  109. public Result getNickName(){
  110. return Result.success(appService.getNickName());
  111. }
  112. /**
  113. * 检测手机号码是否注册
  114. */
  115. @PostMapping("/checkUserName")
  116. public Result checkUserName(@RequestBody AppLoginParam param){
  117. loginService.checkUser(param.getAppUserName(),false);
  118. return Result.success();
  119. }
  120. /**
  121. * 重置密码
  122. */
  123. @PostMapping("/resetPassword")
  124. public Result resetPassword(@RequestBody RegisterParam param){
  125. param.setConfirmPwd(param.getPassword());
  126. param.setClear("YES");
  127. loginService.changePassword(param);
  128. return Result.success();
  129. }
  130. /**
  131. * 用户名登录
  132. * @param token
  133. * @return
  134. */
  135. @RequestMapping(value = "/checkToken", method = RequestMethod.POST)
  136. public Result userLogin(@RequestHeader String token,@RequestBody(required = false) RequestCamera param){
  137. log.info("checkToken-token:{}",token);
  138. if(ObjectUtils.isEmpty(token)){
  139. return Result.failure(LoginConstant.FAILURE_CODE_3004,LoginConstant.FAILURE_MSG_3004);
  140. }
  141. String username = JwtUtil.getUsername(token);
  142. if (ObjectUtils.isEmpty(username)){
  143. return Result.failure(LoginConstant.FAILURE_CODE_3004,LoginConstant.FAILURE_MSG_3004);
  144. }
  145. if(!ObjectUtils.isEmpty(param) && !ObjectUtils.isEmpty(param.getChildName())){
  146. User user = userService.getByUserName(username);
  147. if(ObjectUtils.isEmpty(user) || ObjectUtils.isEmpty(user.getCompanyId())){
  148. return Result.failure(LoginConstant.FAILURE_CODE_3003,LoginConstant.FAILURE_MSG_3003);
  149. }
  150. Camera camera = cameraService.getByChildName(param.getChildName());
  151. if(ObjectUtils.isEmpty(camera)){
  152. return Result.failure(CameraConstant.FAILURE_CODE_6003, CameraConstant.FAILURE_MSG_6003);
  153. }
  154. CameraDetail detailEntity = cameraDetailService.getByCameraId(camera.getId());
  155. Set<Long> roleIds = userRoleService.getByUser(user);
  156. if(ObjectUtils.isEmpty(detailEntity) || ObjectUtils.isEmpty( detailEntity.getCompanyId()) || !detailEntity.getCompanyId().equals(user.getCompanyId())){
  157. return Result.failure(CameraConstant.FAILURE_CODE_6003, CameraConstant.FAILURE_MSG_6003);
  158. }
  159. if(roleIds.contains(8L) && ( detailEntity.getUserId()== null || !detailEntity.getUserId().equals(user.getId()))){
  160. return Result.failure(LoginConstant.FAILURE_CODE_3037, LoginConstant.FAILURE_MSG_3037);
  161. }
  162. }
  163. if(!redisUtil.hasKey(RedisKeyUtil.PREFIX_CACHE_CAMERA + username)){
  164. return Result.failure(LoginConstant.FAILURE_CODE_3004,LoginConstant.FAILURE_MSG_3004);
  165. }
  166. return Result.success();
  167. }
  168. }