feiyu02
2025-09-12 dc4f12f66685260ac357997680e5f3fe723c3c4a
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
package cn.flightfeather.supervision.lightshare.web
 
import cn.flightfeather.supervision.domain.ds1.entity.Userinfo
import cn.flightfeather.supervision.lightshare.service.UserinfoService
import cn.flightfeather.supervision.lightshare.vo.AreaVo
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
import io.swagger.annotations.ApiParam
import org.springframework.web.bind.annotation.*
 
@Api(tags = ["UserinfoController"], description = "用户信息API接口")
@RestController
@CrossOrigin
@RequestMapping("/userinfo")
class UserinfoController(val userinfoService: UserinfoService) {
    @GetMapping("")
    fun getAll() = userinfoService.findAll()
 
    @GetMapping("/{id}")
    fun getById(@PathVariable id: String) = userinfoService.findOne(id)
 
    @ApiOperation(value = "按用户类型搜索用户信息")
    @GetMapping("/type/get")
    fun getUserByTypeId(
        @ApiParam("用户类型id") @RequestParam typeId: Byte,
        @ApiParam("用户是否可用", required = false, defaultValue = "true") @RequestParam(required = false) enable: Boolean?
    ) = userinfoService.findByType(typeId, enable)
 
    @PutMapping("")
    fun add(@RequestBody userinfo: Userinfo) = userinfoService.save(userinfo)
 
    @PostMapping("")
    fun update(@RequestBody userinfo: Userinfo) = userinfoService.update(userinfo)
 
    @DeleteMapping("/{id}")
    fun delete(@PathVariable id: String) = userinfoService.delete(id)
 
    @ApiOperation(value = "模糊搜索用户信息")
    @PostMapping("/search")
    fun search(
        @ApiParam("区域条件信息") @RequestBody
        areaVo: AreaVo,
        @ApiParam("搜索关键字,匹配用户账户名和昵称") @RequestParam
        keyword: String,
        @ApiParam("用户类型", example = "0:管理员;1:内部人员;2:政府部门;3:企业", defaultValue = "3", required = false)
        @RequestParam(required = false)
        userType: Int?,
        @ApiParam("查询页码", defaultValue = "1", required = false) @RequestParam("page", required = false)
        page: Int?,
        @ApiParam("单页数据量", defaultValue = "30", required = false) @RequestParam("per_page", required = false)
        perPage: Int?,
    ) = resPack { userinfoService.search(areaVo, keyword, userType, page, perPage) }
 
    @PostMapping("/login")
    fun getByName(@RequestBody userinfo: Userinfo) = userinfoService.findOneByName(userinfo)
 
    @PostMapping("/create")
    fun createAccount(sceneId: String) = userinfoService.createAccount(sceneId)
 
    @GetMapping("/scene/get")
    fun findByScene(sceneId: String) = userinfoService.findByScene(sceneId)
}