AccountController.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.idiot.operationbackend.controller;
  2. import com.idiot.operationbackend.entity.Account;
  3. import com.idiot.operationbackend.entity.AuthUser;
  4. import com.idiot.operationbackend.handler.SyncUserTask;
  5. import com.idiot.operationbackend.service.facade.AccountService;
  6. import com.idiot.operationbackend.service.facade.AuthUserService;
  7. import com.idiot.operationbackend.service.facade.WeChatService;
  8. import com.idiot.operationbackend.support.JsonResult;
  9. import com.idiot.operationbackend.util.JwtTokenUtil;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiOperation;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.http.ResponseEntity;
  16. import org.springframework.util.CollectionUtils;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.util.List;
  19. import java.util.stream.Collectors;
  20. /**
  21. * @author wang xiao
  22. * @date Created in 19:50 2020/9/10
  23. */
  24. @RestController
  25. @RequestMapping("/account")
  26. @Api(value = "AccountController", tags ="公众号")
  27. public class AccountController {
  28. private final Logger logger = LoggerFactory.getLogger(AccountController.class);
  29. @Autowired
  30. private AccountService accountService;
  31. @Autowired
  32. private AuthUserService userService;
  33. @GetMapping
  34. @ApiOperation(value = "查询公众号列表")
  35. public ResponseEntity<JsonResult<List<Account>>> list (@RequestHeader String token) {
  36. String userId = JwtTokenUtil.getUserId(token);
  37. logger.info("用户:{}查询公众号列表",userId);
  38. List<Account> accounts = accountService.queryAccountByUserId(userId);;
  39. List<AuthUser> authUsers = userService.querySubAuthUser(userId);
  40. /**
  41. * fixme 暂定权限是 用户能够查询所属子账号下所有公众号,即无权限
  42. */
  43. if (! CollectionUtils.isEmpty(authUsers)) {
  44. List<String> userIds = authUsers.stream().map(AuthUser::getId).collect(Collectors.toList());
  45. List<Account> subAccounts = accountService.queryAccountBuSubUserIds(userIds);
  46. accounts.addAll(subAccounts);
  47. }
  48. return ResponseEntity.ok(JsonResult.success(accounts));
  49. }
  50. @GetMapping("/{id}")
  51. @ApiOperation(value = "根据id查询微信公众号")
  52. public ResponseEntity<JsonResult<Account>> getAccount (@RequestHeader String token,
  53. @PathVariable String id) {
  54. String userId = JwtTokenUtil.getUserId(token);
  55. logger.info("用户:{}查询公众号:{}",userId,id);
  56. Account account = accountService.getById(id);
  57. return ResponseEntity.ok(JsonResult.success(account));
  58. }
  59. }