feiyu02
2024-08-15 196bb14112448857a885e32dc4149e308e00b01a
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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.UserBaseInfo
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 = "上传用户信息(更详细)")
    @PutMapping("/create")
    fun add2(
        @ApiParam("用户信息") @RequestBody info: UserBaseInfo
    ) = userinfoService.save2(info)
 
    @ApiOperation(value = "重置用户密码")
    @PostMapping("/resetPw")
    fun resetPassword(
        @ApiParam("用户id") @RequestParam userId: String
    ) = userinfoService.resetPassword(userId)
 
    @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 = "注册")
    @PostMapping("/register2")
    fun register2(
        @ApiParam("注册信息") @RequestBody loginRequestVo: LoginRequestVo
    ) = userinfoService.register2(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")
    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,
        @ApiParam("微信用户id") @RequestParam(value = "wxUserId", required = false) wxUserId: String?
    ) = userinfoService.getBaseInfo(userId, wxUserId)
 
    @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)
 
    @ApiOperation(value = "获取某个区县某个场景的运营场景统计")
    @PostMapping("/count")
    fun getSceneCount(
            @ApiParam("用户id") @RequestParam("userId") userId: String,
            @ApiParam("查询条件") @RequestBody condition: UserSearchCondition,
    ) = userinfoService.getSceneCount(userId, condition)
}