package doumeemes.api.system;
|
|
import doumeemes.api.BaseController;
|
import doumeemes.biz.system.SystemDictDataBiz;
|
import doumeemes.biz.system.SystemUserBiz;
|
import doumeemes.core.annotation.pr.PreventRepeat;
|
import doumeemes.core.annotation.trace.Trace;
|
import doumeemes.core.model.ApiResponse;
|
import doumeemes.core.constants.OperaType;
|
import doumeemes.core.model.PageData;
|
import doumeemes.core.model.PageWrap;
|
import doumeemes.core.utils.Constants;
|
import doumeemes.dao.system.dto.*;
|
import doumeemes.dao.system.vo.SystemUserListVO;
|
import doumeemes.service.system.SystemUserService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
|
/**
|
* @author Eva.Caesar Liu
|
* @date 2022/04/18 18:12
|
*/
|
@Api(tags = "用户")
|
@RestController
|
@RequestMapping("/system/user")
|
public class SystemUserController extends BaseController {
|
|
@Autowired
|
private SystemUserService systemUserService;
|
|
@Autowired
|
private SystemUserBiz systemUserBiz;
|
|
@PreventRepeat
|
@ApiOperation("配置用户角色")
|
@PostMapping("/createUserRole")
|
@RequiresPermissions("system:user:createUserRole")
|
public ApiResponse createUserRole (@Validated @RequestBody CreateUserRoleDTO dto) {
|
systemUserBiz.createUserRole(dto);
|
return ApiResponse.success(null);
|
}
|
|
@Trace(withRequestParameters = false)
|
@PreventRepeat
|
@ApiOperation("重置用户密码")
|
@PostMapping("/resetPwd")
|
@RequiresPermissions("system:user:resetPwd")
|
public ApiResponse resetPwd (@Validated @RequestBody ResetSystemUserPwdDTO dto) {
|
dto.setOperaUserId(this.getLoginUser().getId());
|
systemUserBiz.resetPwd(dto);
|
return ApiResponse.success(null);
|
}
|
|
@Trace(withRequestParameters = false)
|
@PreventRepeat
|
@ApiOperation("新建")
|
@PostMapping("/create")
|
@RequiresPermissions("system:user:create")
|
public ApiResponse create(@Validated(OperaType.Create.class) @RequestBody CreateSystemUserDTO systemUser) {
|
systemUser.setCreateUser(this.getLoginUser().getId());
|
if(StringUtils.isBlank(systemUser.getPassword())){
|
//默认密码
|
systemUser.setPassword( systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode());
|
}
|
systemUserBiz.create(systemUser);
|
return ApiResponse.success(null);
|
}
|
|
/**
|
* 批量导入用户
|
*
|
* @param request
|
* @param response
|
* @throws Exception
|
*/
|
@ApiOperation(value = "批量导入用户", notes = "批量导入用户", httpMethod = "POST", position = 6)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "folder", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
|
})
|
@PostMapping(value = "/importBatch", headers = "content-type=multipart/form-data")
|
public ApiResponse importBatch(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
|
if (multipartResovler.isMultipart(request)) {
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
Iterator<String> it = multipartRequest.getFileNames();
|
while (it.hasNext()) {
|
MultipartFile file = multipartRequest.getFile((String) it.next());// file
|
systemUserBiz.importUsers(file,systemDictDataBiz.queryByCode(Constants.DEFAULT,Constants.USER_PWD).getCode());
|
break;
|
}
|
}
|
|
return ApiResponse.success( null);
|
}
|
@ApiOperation("删除")
|
@GetMapping("/delete/{id}")
|
@RequiresPermissions("system:user:delete")
|
public ApiResponse deleteById(@PathVariable Integer id) {
|
systemUserBiz.deleteById(id);
|
return ApiResponse.success(null);
|
}
|
|
|
@ApiOperation("批量删除")
|
@GetMapping("/delete/batch")
|
@RequiresPermissions("system:user:delete")
|
public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
|
String [] idArray = ids.split(",");
|
List<Integer> idList = new ArrayList<>();
|
for (String id : idArray) {
|
idList.add(Integer.valueOf(id));
|
}
|
systemUserBiz.deleteByIdInBatch(idList);
|
return ApiResponse.success(null);
|
}
|
|
@Trace(withRequestParameters = false)
|
@ApiOperation("修改")
|
@PostMapping("/updateById")
|
@RequiresPermissions("system:user:update")
|
public ApiResponse updateById(@Validated(OperaType.Update.class) @RequestBody CreateSystemUserDTO systemUser) {
|
systemUser.setUpdateUser(this.getLoginUser().getId());
|
systemUserBiz.updateById(systemUser);
|
return ApiResponse.success(null);
|
}
|
@Trace(withRequestParameters = false)
|
@ApiOperation("更换企业用户部门")
|
@PostMapping("/updateDepart")
|
@RequiresPermissions("system:user:update")
|
public ApiResponse updateDepart(@Validated(OperaType.Update.class) @RequestBody UpdateUserDepartDTO user) {
|
systemUserBiz.updateDepart(user);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("分页查询")
|
@PostMapping("/page")
|
@RequiresPermissions("system:user:query")
|
public ApiResponse<PageData<SystemUserListVO>> findPage (@RequestBody PageWrap<QuerySystemUserDTO> pageWrap) {
|
return ApiResponse.success(systemUserService.findPage(pageWrap));
|
}
|
|
@ApiOperation("系统用户分页查询")
|
@GetMapping("/findSystemUserPage")
|
@RequiresPermissions("system:user:query")
|
public ApiResponse<List<SystemUserListVO>> findSystemUserPage (@RequestParam Integer type) {
|
return ApiResponse.success(systemUserService.findSystemUsers(type));
|
}
|
}
|