feiyu02
2022-07-04 c93ad66797e4830ccf4de81c1e8787ab90b22791
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package cn.flightfeather.supervision.lightshare.web
 
import cn.flightfeather.supervision.domain.entity.Userinfo
import cn.flightfeather.supervision.lightshare.service.UserinfoService
import cn.flightfeather.supervision.lightshare.vo.LoginRequestVo
import cn.flightfeather.supervision.lightshare.vo.UserSearchCondition
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
import io.swagger.annotations.ApiParam
import org.springframework.web.bind.annotation.*
import org.springframework.web.multipart.MultipartFile
import javax.servlet.http.HttpServletResponse
 
@Api(tags = ["用户信息API接口"])
@RestController
@RequestMapping("/userInfo")
class UserinfoController(val userinfoService: UserinfoService) {
//    @GetMapping("")
//    fun getAll() = userinfoService.findAll()
 
    @ApiOperation(value = "根据用户id获取用户信息")
    @GetMapping("/{id}")
    fun getById(
        @ApiParam("用户id") @PathVariable id: String
    ) = userinfoService.findOne(id)
 
    @ApiOperation(value = "上传用户信息")
    @PutMapping("")
    fun add(
        @ApiParam("用户信息") @RequestBody userinfo: Userinfo
    ) = userinfoService.save(userinfo)
 
    @ApiOperation(value = "更新用户信息")
    @PostMapping("")
    fun update(
        @ApiParam("用户信息") @RequestBody userinfo: Userinfo
    ) = userinfoService.update(userinfo)
 
//    @DeleteMapping("/{id}")
//    fun delete(@PathVariable id: String) = userinfoService.delete(id)
 
    @ApiOperation(value = "登录")
    @PostMapping("/login")
    fun login(
        @ApiParam("登录信息") @RequestBody loginRequestVo: LoginRequestVo
    ) = userinfoService.login(loginRequestVo)
 
    @ApiOperation(value = "注册")
    @PostMapping("/register")
    fun register(
        @ApiParam("注册信息") @RequestBody loginRequestVo: LoginRequestVo
    ) = userinfoService.register(loginRequestVo)
 
    @ApiOperation(value = "获取用户通讯录")
    @GetMapping("/addressBook")
    fun getAddressBook(
        @ApiParam("用户id") @RequestParam("userId") userId: String
    ) = userinfoService.getAddressBook(userId)
 
    @ApiOperation(value = "上传用户头像")
    @PostMapping("/accountPic/upLoad")
    fun upLoadUserAccountPic(
        @ApiParam("用户id") @RequestParam("userId") userId: String,
        @ApiParam("图片") @RequestPart("images") files: Array<MultipartFile>
    ) = userinfoService.upLoadAccountPic(userId, files)
 
    @ApiOperation(value = "修改密码")
    @PostMapping("/password/change/{userId}")
    fun changePassword(
        @ApiParam("用户id") @RequestParam("userId") userId: String,
        @ApiParam("旧密码") @RequestParam("oldPassword") oldPassword: String,
        @ApiParam("新密码") @RequestParam("newPassword") newPassword: String
    ) = userinfoService.changePassword(userId, oldPassword, newPassword)
 
    @ApiOperation(value = "根据查询者,找到同区县的用户")
    @PostMapping("/searchUser/{userId}")
    fun searchUser(
        @ApiParam("用户id") @PathVariable("userId") userId: String,
        @ApiParam("查询条件") @RequestBody condition: UserSearchCondition,
        @ApiParam("页码") @RequestParam(value = "page") page: Int,
        @ApiParam("单页数据量") @RequestParam(value = "per_page") perPage: Int,
        response: HttpServletResponse
    ) = userinfoService.searchUser(userId, condition, page, perPage, response)
 
    @ApiOperation(value = "获取用户基本信息")
    @GetMapping("/baseInfo")
    fun getBaseInfo(
        @ApiParam("用户id") @RequestParam("userId") userId: String
    ) = userinfoService.getBaseInfo(userId)
 
    @ApiOperation(value = "根据给定条件,搜索用户")
    @GetMapping("/search")
    fun search(
        @ApiParam("区县", example = "徐汇区") @RequestParam("district", required = false) district: String,
        @ApiParam("场景类型", example = "1", allowableValues = "0,1,2,3,4,5,6,7") @RequestParam("sceneType", required = false) sceneType: Int,
        @ApiParam("用户类型", example = "0", allowableValues = "0,1,2,3") @RequestParam("userType", required = false) userType: Int,
        @ApiParam("页码") @RequestParam(value = "page") page: Int,
        @ApiParam("单页数据量") @RequestParam(value = "per_page") perPage: Int,
    ) = userinfoService.search(district, sceneType, userType, page, perPage)
}