package com.zd.system.api; import com.zd.common.core.web.domain.AjaxResult; import com.zd.system.api.domain.SysLogoConfigVO; import com.zd.system.api.model.SimpleUserVO; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import com.zd.common.core.constant.SecurityConstants; import com.zd.common.core.constant.ServiceNameConstants; import com.zd.common.core.domain.R; import com.zd.system.api.domain.SysUser; import com.zd.system.api.factory.RemoteUserFallbackFactory; import com.zd.system.api.model.LoginUser; import org.springframework.web.multipart.MultipartFile; import java.util.List; /** * 用户服务 * * @author zd */ @FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) public interface RemoteUserService { /** * 通过用户名查询用户信息 * * @param username 用户名 * @param source 请求来源 * @return 结果 */ @GetMapping("/user/info/{username}") R getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 通过用户名查询用户信息 * * @param username 用户名 * @param source 请求来源 * @return 结果 */ @GetMapping("/user/info/{username}/{loginType}") R getUserInfo(@PathVariable("username") String username, @PathVariable("loginType") Integer loginType, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 通过用户ID查询用户信息 * * @param id 用户id * @param source 请求来源 * @return 结果 */ @GetMapping("/user/info/id/{id}") R getUserInfoByUserId(@PathVariable("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 通过用户账户查询用户信息 * * @param userName 用户账户 * @param source 请求来源 * @return 结果 */ @GetMapping("/user/info/username/{username}") R getUserInfoByUserName(@PathVariable("username") String userName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 通过用户卡号查询用户信息 * * @param cardnum 用户账户 * @param source 请求来源 * @return 结果 */ @GetMapping("/user/info/cardnum/{cardnum}") R getUserInfoByCardNum(@PathVariable("cardnum")String cardnum, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 注册用户信息 * * @param sysUser 用户信息 * @param source 请求来源 * @return 结果 */ @PostMapping("/user/register") R registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); @GetMapping("/user/my/info/Simple") R myInfoSimple(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 获取所有可用户IDS * * @return 结果 */ @GetMapping("/user/all") R> userALLIDS(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 根据用户ids获取电话 * * @return 结果 */ @GetMapping("/user/phone/{ids}") R> getPhoneByUserIDS(@PathVariable("ids") String ids); /** * 获取指定院系用户IDS * * @param deptId * @return 结果 */ @GetMapping("/user/dept/{deptIds}") R> userDeptIDS(@PathVariable("deptIds") String deptId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 小程序查询院系列表(用户端,管理端) */ @ApiOperation(value = "小程序查询院系列表(用户端,管理端)") @GetMapping(value = "/dept/departments/list") R departmentsList(); /** * 小程序查询院系下楼栋列表(用户端,管理端) */ @ApiOperation(value = "小程序查询院系下楼栋列表(用户端,管理端)") @GetMapping(value = "/dept/{deptId}/building/list") R building(@PathVariable("deptId") Long deptId); /** * 登录查询大屏用户的路由菜单 */ @GetMapping("/menu/getRouterById/{userId}") AjaxResult getRouters(@PathVariable("userId") Long userId); /** * 大屏用户权限判断 */ @GetMapping("/role/authUser/power") AjaxResult selectAuthUserPower(@RequestParam("userId") Long userId); /** * 修改学生信息 */ @PutMapping("/user/student") AjaxResult editUser(@RequestBody SysUser user); /** * 修改学生信息 */ @PutMapping("/user/student/editStudent") AjaxResult editStudent(@RequestBody SysUser user); @PostMapping(value = "/user/updateSignature", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) R updateSignature(@RequestPart("file") MultipartFile file); /** * 获取用户默认密码 */ @GetMapping("/config/configKey/{configKey}") AjaxResult getConfigKey(@PathVariable("configKey") String configKey); @PostMapping("/user/querySignature") R querySignature(); /** * 获取用户默认密码 */ @GetMapping("/logo/config/getLogoInfo") R getConfigLogo(); @DeleteMapping("/user/{userIds}") AjaxResult remove(@PathVariable("userIds") Long[] userIds); /** * 获取当前登录用户所属学校以及院系id集合 * @return */ @GetMapping("/user/getLogingUserDeptids") R> getLogingUserDeptids(); /** * 获取当前登录用户所属学校的deptid * @return */ @GetMapping("/user/getLoginUserSchoolDeptid") R getLoginUserSchoolDeptid(); }