UserController.java 13.8 KB
Newer Older
eddie.woo's avatar
eddie.woo committed
1 2 3 4 5 6
package pwc.taxtech.atms.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
gary's avatar
gary committed
7
import org.springframework.security.access.annotation.Secured;
eddie.woo's avatar
eddie.woo committed
8 9 10 11 12 13 14
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
15 16 17
import pwc.taxtech.atms.dpo.UserDto;
import pwc.taxtech.atms.dpo.UserOrgDto;
import pwc.taxtech.atms.dpo.UserOrgRoleDto;
gary's avatar
gary committed
18
import pwc.taxtech.atms.dpo.UserRoleInfo;
eddie.woo's avatar
eddie.woo committed
19 20 21 22 23 24
import pwc.taxtech.atms.dto.LoginInputDto;
import pwc.taxtech.atms.dto.LoginOutputDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.organization.OrgRoleDtoList;
import pwc.taxtech.atms.dto.permission.UserPermissionDto;
import pwc.taxtech.atms.dto.permission.UserPermissionKeyDto;
gary's avatar
gary committed
25
import pwc.taxtech.atms.dto.user.*;
26
import pwc.taxtech.atms.entity.User;
27
import pwc.taxtech.atms.service.impl.RoleServiceImpl;
28
import pwc.taxtech.atms.service.impl.UserAccountServiceImpl;
29
import pwc.taxtech.atms.service.impl.UserRoleServiceImpl;
30
import pwc.taxtech.atms.service.impl.UserServiceImpl;
eddie.woo's avatar
eddie.woo committed
31

gary's avatar
gary committed
32
import javax.servlet.http.HttpServletResponse;
33 34
import java.util.List;

eddie.woo's avatar
eddie.woo committed
35 36 37 38 39
@RestController
@RequestMapping("/api/v1/user/")
public class UserController {
    private static final Logger logger = LoggerFactory.getLogger(UserController.class);
    @Autowired
40
    private UserServiceImpl userService;
eddie.woo's avatar
eddie.woo committed
41
    @Autowired
42
    private UserRoleServiceImpl userRoleService;
eddie.woo's avatar
eddie.woo committed
43
    @Autowired
44
    private RoleServiceImpl roleService;
eddie.woo's avatar
eddie.woo committed
45
    @Autowired
46
    private UserAccountServiceImpl userAccountService;
eddie.woo's avatar
eddie.woo committed
47 48 49 50 51 52 53 54

    // used to test,
    // http://localhost:8080/atms-api/api/v1/user/getUser?id=0906913f-f8c3-423c-b9b1-9ae1be647087
    @RequestMapping(value = "getUser", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public User getUser(@RequestParam("id") String id) {
        return userService.getUser(id);
    }

gary's avatar
gary committed
55
//    @ApiOperation(value = "获取指定用户的权限", notes = "获取用户的权限级别,可访问的模块以及页面")
eddie.woo's avatar
eddie.woo committed
56 57 58 59 60
    @RequestMapping(value = "getUserPermission", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public UserPermissionDto getUserPermission(@RequestParam("userName") String userName) {
        return userService.getUserPermission(userName);
    }

gary's avatar
gary committed
61
//    @ApiOperation(value = "获取指定用户的权限(新接口)", notes = "获取用户的权限级别,可访问的模块以及页面")
eddie.woo's avatar
eddie.woo committed
62 63 64 65 66 67 68 69 70 71 72 73
    @RequestMapping(value = "getUserPermissionKey", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public UserPermissionKeyDto getUserPermissionKey(@RequestParam("userName") String userName) {
        return userService.getUserPermissionKey(userName);
    }

    @RequestMapping(value = "login", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public OperationResultDto<LoginOutputDto> login(@RequestBody(required = false) LoginInputDto input) {
        logger.debug("enter login");
        OperationResultDto<LoginOutputDto> result = userService.login(input);
        return result;
    }

gary's avatar
gary committed
74
//    @ApiOperation(value = "获取所有的用户角色列表")
eddie.woo's avatar
eddie.woo committed
75
    @RequestMapping(value = "getAllUserRoleList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
frank.xa.zhang's avatar
frank.xa.zhang committed
76
    public List<UserRoleDisplayInfo> getAllUserRoleList(@RequestParam("serviceTypeID") String serviceTypeId) {
77
        return userRoleService.getAllUserRoleList(serviceTypeId);
eddie.woo's avatar
eddie.woo committed
78 79
    }

gary's avatar
gary committed
80
//    @ApiOperation(value = "根据传入的用户Id获取该用户以及所属机构的信息")
eddie.woo's avatar
eddie.woo committed
81
    @RequestMapping(value = "getUser/{userId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
82 83
    public UserDto getUserById(@PathVariable("userId") String userId) {
        return userService.getUserById(userId);
eddie.woo's avatar
eddie.woo committed
84 85
    }

gary's avatar
gary committed
86
//    @ApiOperation(value = "通过传入的用户Id获取该用户所有的角色", notes = "通过用户获取可访问不可访问的所有机构,包括维度上继承下来的")
87 88
    @RequestMapping(value = "getUserRoleByUserID", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public OrgRoleDtoList getUserRoleByUserId(@RequestParam("userID") String userId) {
89
        return userRoleService.getUserRoleByUserId(userId);
eddie.woo's avatar
eddie.woo committed
90 91
    }

gary's avatar
gary committed
92
//    @ApiOperation(value = "根据传入的用户Id获取该用户的角色机构等信息")
eddie.woo's avatar
eddie.woo committed
93 94 95 96 97
    @RequestMapping(value = "displaySingle", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public UserAndUserRoleSaveDto getSingleUserByUserId(@RequestParam("userId") String userId) {
        return userRoleService.getSingleUserByUserId(userId);
    }

gary's avatar
gary committed
98
//    @ApiOperation(value = "获取用户的默认角色")
99 100 101
    @RequestMapping(value = "getUserRoleListByUserId", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public UserRoleDisplayInfo getUserRoleListByUserId(@RequestParam("userId") String userId) {
        return userRoleService.getUserRoleListByUserId(userId);
eddie.woo's avatar
eddie.woo committed
102 103
    }

gary's avatar
gary committed
104
//    @ApiOperation(value = "通过机构Id和用户Id获取该用户的默认角色")
105 106
    @RequestMapping(value = "getUserRoleByOrgIdUserId", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public UserOrganizationDto getUserRoleByOrgIdUserId(@RequestParam("userId") String userId,
107
                                                        @RequestParam("orgId") String orgId) {
108
        return userRoleService.getUserRoleByOrgId(userId, orgId);
eddie.woo's avatar
eddie.woo committed
109 110
    }

gary's avatar
gary committed
111
//    @ApiOperation(value = "为角色添加用户")
eddie.woo's avatar
eddie.woo committed
112
    @RequestMapping(value = "addUsersToRole", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
gary's avatar
gary committed
113
    @Secured("user:add")
114 115
    public @ResponseBody
    Boolean addUsersToRole(@RequestBody UserRoleSaveDto userRoleSaveDto) {
116
        roleService.addUsersToRole(userRoleSaveDto.getRoleId(), userRoleSaveDto.getServiceTypeId(),
eddie.woo's avatar
eddie.woo committed
117 118 119 120 121
                userRoleSaveDto.getUserIdList());
        return true;
    }

    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
122
//    @ApiOperation(value = "启用或停用用户")
gary's avatar
gary committed
123
    @Secured("user:edit")
eddie.woo's avatar
eddie.woo committed
124
    @RequestMapping(value = "enableordisableuser", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
125 126
    public @ResponseBody
    OperationResultDto enableOrDisableUser(@RequestBody UpdateParam updateParam) {
eddie.woo's avatar
eddie.woo committed
127 128 129 130
        return userRoleService.enableOrDisableUser(updateParam);
    }

    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
131
//    @ApiOperation(value = "为机构删除用户角色")
eddie.woo's avatar
eddie.woo committed
132
    @RequestMapping(value = "deleteUserRoleForOrg", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
gary's avatar
gary committed
133
    @Secured("user:edit")
134 135
    public @ResponseBody
    OperationResultDto deleteUserRoleForOrg(@RequestBody UserOrgDto userDto) {
eddie.woo's avatar
eddie.woo committed
136
        logger.debug("enter deleteUserRoleForOrg");
137
        return userRoleService.deleteUserRoleByOrgId(userDto);
eddie.woo's avatar
eddie.woo committed
138
    }
139

eddie.woo's avatar
eddie.woo committed
140
    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
141
//    @ApiOperation(value = "机构删除,包括维度上的继承删除")
eddie.woo's avatar
eddie.woo committed
142
    @RequestMapping(value = "deleteUserRoleOrg", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
gary's avatar
gary committed
143
    @Secured("userRole:edit")
144 145
    public @ResponseBody
    OperationResultDto deleteUserRoleOrg(
eddie.woo's avatar
eddie.woo committed
146 147 148 149
            @RequestBody List<UserRoleDimensionValueDto> userRoleList) {
        return userRoleService.deleteUserRoleOrg(userRoleList);
    }

gary's avatar
gary committed
150
//    @ApiOperation(value = "获取事业部,产品线的值下的所有机构的用户权限(维度权限)", notes = "展开事业部卡片>用户>权限设置")
151 152 153 154 155
    @RequestMapping(value = "getUserRoleByDimensionValueId", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public List<UserRoleDisplayInfo> getUserRoleByDimensionValueId(
            @RequestParam("parentDimensionId") String parentDimensionId,
            @RequestParam("dimensionValueId") String dimensionValueId) {
        return userRoleService.getUserRoleByDimensionValueId(parentDimensionId, dimensionValueId);
eddie.woo's avatar
eddie.woo committed
156 157
    }

gary's avatar
gary committed
158
//    @ApiOperation(value = "获取在某个维度下的机构的特殊角色,用户单独跟机构设置角色", notes = "展开事业部卡片>用户>权限设置")
159 160 161 162 163
    @RequestMapping(value = "getSpecialUserRoleByDimensionValueId", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public List<UserRoleDisplayInfo> getSpecialUserRoleByDimensionValueId(
            @RequestParam("parentDimensionId") String parentDimensionId,
            @RequestParam("dimensionValueId") String dimensionValueId) {
        return userRoleService.getSpecialUserRoleByDimensionValueId(parentDimensionId, dimensionValueId);
eddie.woo's avatar
eddie.woo committed
164 165
    }

gary's avatar
gary committed
166
//    @ApiOperation(value = "获取用户维度角色列表", notes = "展开事业部卡片>用户")
eddie.woo's avatar
eddie.woo committed
167
    @RequestMapping(value = "getDimensionUserRoleList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
168 169 170
    public List<UserOrgRoleDto> getDimensionUserRoleList(@RequestParam("parentDimensionId") String parentDimensionId,
                                                         @RequestParam("dimensionValueId") String dimensionValueId) {
        return userRoleService.getDimensionUserRoleList(parentDimensionId, dimensionValueId);
eddie.woo's avatar
eddie.woo committed
171 172 173
    }

    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
174
//    @ApiOperation(value = "维度上权限用户删除")
eddie.woo's avatar
eddie.woo committed
175 176 177 178 179
    @RequestMapping(value = "deleteUserRoleDimension", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public OperationResultDto deleteUserRoleDimension(@RequestBody List<UserRoleDimensionValueDto> userRoleList) {
        return userRoleService.deleteUserRoleDimension(userRoleList);
    }

gary's avatar
gary committed
180
//    @ApiOperation(value = "为维度添加用户")
eddie.woo's avatar
eddie.woo committed
181
    @RequestMapping(value = "updateUserRoleForDimension", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
182 183
    public @ResponseBody
    OperationResultDto<?> updateUserRoleForDimension(
eddie.woo's avatar
eddie.woo committed
184 185 186 187 188
            @RequestBody List<UserRoleDimensionValueDto> userRoleList) {
        return userRoleService.updateUserRoleForDimension(userRoleList);
    }

    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
189
//    @ApiOperation(value = "添加事业部的值的权限")
eddie.woo's avatar
eddie.woo committed
190
    @RequestMapping(value = "updateUserRoleDimension", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
191 192
    public @ResponseBody
    OperationResultDto updateUserRoleDimension(
eddie.woo's avatar
eddie.woo committed
193 194 195 196
            @RequestBody List<UserRoleDimensionValueDto> userRoleList) {
        return userRoleService.updateUserRoleDimension(userRoleList);
    }

gary's avatar
gary committed
197
//    @ApiOperation(value = "更新一个用户的信息")
eddie.woo's avatar
eddie.woo committed
198
    @RequestMapping(value = "update", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
199 200
    public @ResponseBody
    OperationResultDto<User> updateUser(@RequestBody UserAndUserRoleSaveDto userDto) {
eddie.woo's avatar
eddie.woo committed
201 202 203 204
        return userService.updateUser(userDto);
    }

    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
205
//    @ApiOperation(value = "机构用户权限编辑")
eddie.woo's avatar
eddie.woo committed
206
    @RequestMapping(value = "updateUserRoleOrganization", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
gary's avatar
gary committed
207
    @Secured("user:edit")
208 209
    public @ResponseBody
    OperationResultDto updateUserRoleOrganization(
eddie.woo's avatar
eddie.woo committed
210 211 212 213
            @RequestBody List<UserRoleDimensionValueDto> userRoleList) {
        return userRoleService.updateUserRoleOrganization(userRoleList);
    }

gary's avatar
gary committed
214
//    @ApiOperation(value = "添加一个新的用户")
eddie.woo's avatar
eddie.woo committed
215
    @RequestMapping(value = "add", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
gary's avatar
gary committed
216
    @Secured("user:add")
217 218
    public @ResponseBody
    OperationResultDto<User> addUser(@RequestBody UserAndUserRoleSaveDto userAndUserRoleSaveDto) {
eddie.woo's avatar
eddie.woo committed
219 220 221 222
        return userAccountService.addNewUser(userAndUserRoleSaveDto);
    }

    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
223
//    @ApiOperation(value = "删除可继承权限", notes = "用户管理>点击用户卡片>点击各机构设置数据的修改按钮>点击角色>取消设置下的允许继承>确定")
eddie.woo's avatar
eddie.woo committed
224
    @RequestMapping(value = "deleteUserOrg", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
gary's avatar
gary committed
225
    @Secured("user:edit")
226 227
    public @ResponseBody
    OperationResultDto deleteUserOrg(@RequestBody List<UserRoleDimensionValueDto> userRoleList) {
eddie.woo's avatar
eddie.woo committed
228 229 230 231
        return userService.deleteUserOrg(userRoleList);
    }

    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
232
//    @ApiOperation(value = "给机构添加用户", notes = "机构管理>点击机构>用户>添加用户>选中用户并提交")
eddie.woo's avatar
eddie.woo committed
233
    @RequestMapping(value = "updateUserRoleForOrg", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
gary's avatar
gary committed
234
    @Secured("user:edit")
235 236
    public @ResponseBody
    OperationResultDto updateUserRoleForOrg(
eddie.woo's avatar
eddie.woo committed
237 238 239 240
            @RequestBody List<UserRoleDimensionValueDto> userRoleList) {
        return userRoleService.updateUserRoleForOrg(userRoleList);
    }

241
    @SuppressWarnings("rawtypes")
gary's avatar
gary committed
242
//    @ApiOperation(value = "查询用户信息", notes = "税务运营管理平台>增值税申报")
243
    @RequestMapping(value = "getUserByName", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
244 245
    public @ResponseBody
    UserDto getUserByName(
246 247 248 249
            @RequestBody UserDto userParam) {
        return userRoleService.GetUserByUserName(userParam);
    }

gary's avatar
gary committed
250 251 252 253 254 255 256
    @RequestMapping(value = "downloadFile/get", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void downloadFile(@RequestBody List<UserRoleInfo> data, HttpServletResponse response) {
        logger.debug("enter downloadFile");
        String fileName="testFile";
        userService.downloadFile(response, data, fileName);
    }

eddie.woo's avatar
eddie.woo committed
257
}