ludc
2024-06-26 79dd20bae9e8af17d5d66b67da4ca6ebc56cd9dd
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
package com.vci.frameworkcore.controller;
 
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.frameworkcore.model.dto.SmUserDTO;
import com.vci.frameworkcore.pagemodel.SmUserVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
 
import java.util.List;
 
/**
 * 用户的查询控制器
 * @author weidy
 * @date 2020/3/4
 */
@RestController
@RequestMapping("/userQueryController")
@Slf4j
public class SmUserQueryController {
 
    /**
     * 用户查询服务
     */
    @Autowired
    private SmUserQueryServiceI userQueryService;
 
    /**
     * 用户的列表参照,
     * @param queryObject 查询对象,包含了查询条件,分页,排序等,即允许使用SmUserVO里的所有属性作为查询条件,也可以使用pkRole.xxx,pkDepartment.xxx,pkDuty.xxx这样来查询
     * @return 普通用户(不包含三员,也不包含停用的)的显示对象列表数据,请获取其中的data属性
     * @throws VciBaseException 查询出错的时候会抛出异常,如果是老的项目里不抛出异常
     */
    @RequestMapping(value = "/refDataGrid",method = RequestMethod.GET)
    public BaseResult<SmUserVO> refDataGrid(BaseQueryObject queryObject) throws VciBaseException {
        //代码示例
        if(queryObject == null){
            queryObject = new BaseQueryObject();
        }
        DataGrid<SmUserVO> userVODataGrid =  userQueryService.refGridUsers(queryObject.getConditionMap(),queryObject.getPageHelper());
        return BaseResult.dataGrid(userVODataGrid);
        //如果是老的项目,应该在refGridUsers上添加try,catch,然后catch里应该使用下面的代码
        //BaseResult.fail("这里返回前端的错误信息");
    }
 
    /**
     * 用户的树形参照
     * @param treeQueryObject 树形数据的查询对象,包括查询条件,上级主键,是否多选等,即允许使用SmUserVO里的所有属性作为查询条件,也可以使用pkRole.xxx,pkDepartment.xxx,pkDuty.xxx这样来查询
     * @return 普通用户(不包含三员,也不包含停用的)的树形数据,已经转换过上下级关系,请获取其中的treeData属性
     * @throws VciBaseException 查询出错的时候会抛出异常,如果是老的项目里不抛出异常
     */
    @RequestMapping(value = "/refTree",method = RequestMethod.GET)
    public BaseResult<Tree> refTree(TreeQueryObject treeQueryObject) throws VciBaseException{
        List<Tree> userTreeList = userQueryService.refTreeUsers(treeQueryObject);
        return  BaseResult.tree(userTreeList);
        //老的项目依然是添加try catch,方法里不抛出异常
        //BaseResult.fail("这里返回前端的错误信息");
    }
 
    /**
     * 使用部门来获取用户的参照列表
     * @param pkDepartment 部门的主键,不能为空
     * @param queryObject 查询对象,包含查询条件,分页,排序等,即允许使用SmUserVO里的所有属性作为查询条件,也可以使用pkRole.xxx,pkDepartment.xxx,pkDuty.xxx这样来查询
     * @return 普通用户(不包含三员,也不包含停用的)的显示对象列表数据,请获取其中的data属性
     * @throws VciBaseException 部门主键为空、查询出错的时候会抛出异常,如果是老的项目里不抛出异常
     */
    @RequestMapping(value = "/refDataGridByPkDepartment",method = RequestMethod.GET)
    public BaseResult<SmUserVO> refDataGridByPkDepartment(String pkDepartment,BaseQueryObject queryObject) throws VciBaseException{
        if(queryObject == null){
            queryObject = new BaseQueryObject();
        }
        DataGrid<SmUserVO> userVODataGrid = userQueryService.gridUserByDeptOid(pkDepartment, queryObject.getConditionMap(), queryObject.getPageHelper());
        return BaseResult.dataGrid(userVODataGrid);
        //如果是老的项目,应该在gridUserByDeptOid上添加try,catch,然后catch里应该使用下面的代码
        //BaseResult.fail("这里返回前端的错误信息");
    }
 
    /**
     * 使用角色来获取用户的参照列表
     * @param pkRole 角色的主键,不能为空
     * @param queryObject 查询对象,包含查询条件,分页,排序等,即允许使用SmUserVO里的所有属性作为查询条件,也可以使用pkRole.xxx,pkDepartment.xxx,pkDuty.xxx这样来查询
     * @return 普通用户(不包含三员,也不包含停用的)的显示对象列表数据,请获取其中的data属性
     * @throws VciBaseException 角色的主键为空、查询出错的时候会抛出异常,如果是老的项目里不抛出异常
     */
    @RequestMapping(value = "/refDataGridByPkRole",method = RequestMethod.GET)
    public BaseResult<SmUserVO> refDataGridByPkRole(String pkRole,BaseQueryObject queryObject) throws VciBaseException{
        if(queryObject == null){
            queryObject = new BaseQueryObject();
        }
        DataGrid<SmUserVO> userVODataGrid = userQueryService.gridUserByRoleOid(pkRole, queryObject.getConditionMap(), queryObject.getPageHelper());
        return  BaseResult.dataGrid(userVODataGrid);
        //如果是老的项目,应该在gridUserByRoleOid上添加try,catch,然后catch里应该使用下面的代码
        //BaseResult.fail("这里返回前端的错误信息");
    }
 
    /**
     * 修改密码
     * @param userOid 用户主键
     * @param password 新密码
     * @param confirmPassword 确认密码
     */
    @RequestMapping(value = "/changePassword",method = RequestMethod.POST)
    public BaseResult changePassword(String userOid, String password, String confirmPassword) {
        userQueryService.changePassword(userOid, password, confirmPassword);
        return BaseResult.success("修改密码成功");
    }
 
    /**
     * 用户管理列表分页查询,平台是不查plusertype=0的成员,也就是developer和admin
     * @param queryObject 查询对象,包含了查询条件,分页,排序等,即允许使用SmUserVO里的所有属性作为查询条件,也可以使用pkRole.xxx,pkDepartment.xxx,pkDuty.xxx这样来查询
     * @return 全部用户显示对象列表数据,请获取其中的data属性
     * @throws VciBaseException 查询出错的时候会抛出异常,如果是老的项目里不抛出异常
     */
    @RequestMapping(value = "/getDataGridUsers",method = RequestMethod.GET)
    @VciUnCheckRight
    public BaseResult<SmUserVO> getDataGridUsers(BaseQueryObject queryObject) throws VciBaseException {
        try {
            DataGrid<SmUserVO> userVODataGrid = userQueryService.getDataGridUsers(queryObject.getConditionMap(),queryObject.getPageHelper());
            return BaseResult.dataGrid(userVODataGrid);
        }catch (Exception e) {
            e.printStackTrace();
            log.error("用户管理列表查询时出现错误,原因:" + e.getMessage());
            return BaseResult.fail("用户管理列表查询时出现错误,原因:" + e.getMessage());
        }
    }
 
    /**
     * 添加用户
     * @param smUserDTO
     * @return
     */
    @RequestMapping(value = "/addUser",method = RequestMethod.POST)
    @VciUnCheckRight
    public BaseResult addUser(@RequestBody SmUserDTO smUserDTO){
        try {
            return BaseResult.success(userQueryService.addUser(smUserDTO) ? "用户添加成功!":"用户添加失败!");
        }catch (Exception e){
            e.printStackTrace();
            log.error("添加用户时出现错误,原因:" + e.getMessage());
            return BaseResult.fail("添加用户时出现错误,原因:" + e.getMessage());
        }
    }
 
    /**
     * 修改用户信息
     * @param smUserDTO
     * @return
     */
    @RequestMapping(value = "/updateUser",method = RequestMethod.PUT)
    @VciUnCheckRight
    public BaseResult updateUser(@RequestBody SmUserDTO smUserDTO){
        try {
            return BaseResult.success(userQueryService.updateUser(smUserDTO) ? "用户修改成功!":"用户修改失败!");
        }catch (Exception e){
            e.printStackTrace();
            log.error("修改用户时出现错误,原因:" + e.getMessage());
            return BaseResult.fail("修改用户时出现错误,原因:" + e.getMessage());
        }
    }
 
    /**
     * 删除用户
     * @param ids
     * @return
     */
    @RequestMapping(value = "/deleteUser",method = RequestMethod.DELETE)
    //@VciUnCheckRight
    public BaseResult deleteUser(String[] ids){
        try {
            return BaseResult.success(userQueryService.deleteUser(ids) ? "删除用户成功!":"删除用户失败!");
        }catch (Exception e){
            e.printStackTrace();
            log.error("添加用户时出现错误,原因:" + e.getMessage());
            return BaseResult.fail("添加用户时出现错误,原因:" + e.getMessage());
        }
    }
 
    /**
     * 用户停用/启用
     * @param ids
     * @param flag
     * @return
     */
    @RequestMapping(value = "/stopUsers",method = RequestMethod.POST)
    //@VciUnCheckRight
    public BaseResult disableOrEnableUsers(String[] ids,boolean flag){
        try {
            userQueryService.disableOrEnableUsers(ids,flag);
            return BaseResult.success("用户【停用/启用】成功!");
        }catch (Exception e){
            e.printStackTrace();
            log.error("用户【停用/启用】时出现错误,原因:" + e.getMessage());
            return BaseResult.fail("用户【停用/启用】时出现错误,原因:" + e.getMessage());
        }
    }
 
    /**
     * 下载人员导入模板
     */
    @RequestMapping(value = "/downloadImportTemplate",method = RequestMethod.POST)
    public void downloadImportTemplate(){
 
    }
 
    /**
     * 人员导入
     */
    @RequestMapping(value = "/importUser",method = RequestMethod.POST)
    public void importUser(){
 
    }
 
}