package com.gkhy.safePlatform.accountController; import com.alibaba.fastjson.JSONObject; import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService; import com.gkhy.safePlatform.account.rpc.apimodel.AccountMenuService; import com.gkhy.safePlatform.account.rpc.apimodel.AccountUserService; import com.gkhy.safePlatform.account.rpc.apimodel.model.req.AccountAddRPCReqDTO; import com.gkhy.safePlatform.account.rpc.apimodel.model.req.AccountModRPCReqDTO; import com.gkhy.safePlatform.account.rpc.apimodel.model.req.query.AccountRPCQuery; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.DepUserRPCRespDTO; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.PersonalDetailRPCRespDTO; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.vo.ResultVO; import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.core.Authentication; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.security.Principal; import java.util.List; @RestController @RequestMapping("/account") public class UserController { @DubboReference(check = false) private AccountUserService accountUserService; @RequestMapping("/page/list") public Object getUserPage(Authentication authentication, PageQuery rpcQueryPageQuery) { ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return accountUserService.getAccountPage(currentUser.getUid(), rpcQueryPageQuery); } /** * @Description: 获取部门下的用户列表 */ @RequestMapping(value = "/dep/list", method = RequestMethod.GET) public ResultVO> depUserList(Authentication authentication, Long depId) { ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return accountUserService.getDepList(currentUser.getUid(), depId); } /** * @Description: 个人信息 */ @RequestMapping(value = "/personal", method = RequestMethod.GET) public ResultVO getPersonal(Authentication authentication) { ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return accountUserService.getPersonalAccountDetail(currentUser.getUid()); } /** * @Description: 新增用户信息 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @PreAuthorize("hasRole('ROLE_admin')") public ResultVO addUser(Authentication authentication, @RequestBody AccountAddRPCReqDTO accountAddRPCReqDTO) { ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return accountUserService.addAccount(currentUser, accountAddRPCReqDTO); } /** * @Description: 修改用户信息 */ @RequestMapping(value = "/mod", method = RequestMethod.POST) @PreAuthorize("hasRole('ROLE_admin')") public ResultVO modUser(Authentication authentication, @RequestBody AccountModRPCReqDTO accountModRPCReqDTO) { ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return accountUserService.modAccount(currentUser, accountModRPCReqDTO); } /** * @Description: 删除用户信息 */ @RequestMapping(value = "/del", method = RequestMethod.POST) @PreAuthorize("hasRole('ROLE_admin')") public ResultVO delUser(Authentication authentication, @RequestBody JSONObject json) { Long uid = json.getLong("uid"); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return accountUserService.delAccount(currentUser, uid); } }