package com.idiot.operationbackend.controller; import com.idiot.operationbackend.entity.Account; import com.idiot.operationbackend.entity.AuthUser; import com.idiot.operationbackend.handler.SyncUserTask; import com.idiot.operationbackend.service.facade.AccountService; import com.idiot.operationbackend.service.facade.AuthUserService; import com.idiot.operationbackend.service.facade.WeChatService; import com.idiot.operationbackend.support.JsonResult; import com.idiot.operationbackend.util.JwtTokenUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.stream.Collectors; /** * @author wang xiao * @date Created in 19:50 2020/9/10 */ @RestController @RequestMapping("/account") @Api(value = "AccountController", tags ="公众号") public class AccountController { private final Logger logger = LoggerFactory.getLogger(AccountController.class); @Autowired private AccountService accountService; @Autowired private AuthUserService userService; @GetMapping @ApiOperation(value = "查询公众号列表") public ResponseEntity>> list (@RequestHeader String token) { String userId = JwtTokenUtil.getUserId(token); logger.info("用户:{}查询公众号列表",userId); List accounts = accountService.queryAccountByUserId(userId);; List authUsers = userService.querySubAuthUser(userId); /** * fixme 暂定权限是 用户能够查询所属子账号下所有公众号,即无权限 */ if (! CollectionUtils.isEmpty(authUsers)) { List userIds = authUsers.stream().map(AuthUser::getId).collect(Collectors.toList()); List subAccounts = accountService.queryAccountBuSubUserIds(userIds); accounts.addAll(subAccounts); } return ResponseEntity.ok(JsonResult.success(accounts)); } @GetMapping("/{id}") @ApiOperation(value = "根据id查询微信公众号") public ResponseEntity> getAccount (@RequestHeader String token, @PathVariable String id) { String userId = JwtTokenUtil.getUserId(token); logger.info("用户:{}查询公众号:{}",userId,id); Account account = accountService.getById(id); return ResponseEntity.ok(JsonResult.success(account)); } }