package com.doumee.api.system;
|
|
import com.doumee.api.BaseController;
|
import com.doumee.biz.system.SystemUserBiz;
|
import com.doumee.core.annotation.pr.PreventRepeat;
|
import com.doumee.core.annotation.trace.Trace;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.ApiResponse;
|
import com.doumee.core.constants.OperaType;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.dao.system.dto.*;
|
import com.doumee.dao.system.model.SystemUser;
|
import com.doumee.dao.system.vo.SystemUserDetailVO;
|
import com.doumee.dao.system.vo.SystemUserListVO;
|
import com.doumee.service.system.SystemUserService;
|
import io.swagger.annotations.*;
|
import org.apache.shiro.SecurityUtils;
|
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 javax.validation.Valid;
|
import java.io.File;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author Eva.Caesar Liu
|
* @date 2023/02/14 11:14
|
*/
|
@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 (@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());
|
systemUserBiz.create(systemUser);
|
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("用户启用禁用")
|
@PostMapping("/changeStatus")
|
public ApiResponse changeStatusById(@RequestBody ChangeStatusDTO changeDTO){
|
systemUserService.changeStatusById(changeDTO.getId(),changeDTO.getValue());
|
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) {
|
LoginUserInfo principals = (LoginUserInfo) SecurityUtils.getSubject().getPrincipals().getPrimaryPrincipal();
|
if (principals.getType() == Constants.UserType.SYSTEM.getKey()){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"无权限操作");
|
}
|
systemUser.setUpdateUser(this.getLoginUser().getId());
|
systemUserBiz.updateById(systemUser);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("支持编辑姓名和手机号")
|
@PostMapping("/updateZFServiceById")
|
public ApiResponse updateZFServiceById(@RequestBody CreateSystemUserDTO systemUser){
|
|
LoginUserInfo loginUser = this.getLoginUser();
|
systemUser.setId(loginUser.getId());
|
systemUser.setUpdateUser(loginUser.getId());
|
systemUserService.updateZFServiceById(systemUser);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("支持编辑子账号姓名和手机号")
|
@PostMapping("/updateZFServiceSonById")
|
public ApiResponse updateZFServiceSonById(@RequestBody CreateSystemUserDTO systemUser){
|
LoginUserInfo loginUser = this.getLoginUser();
|
systemUser.setId(loginUser.getId());
|
systemUser.setCompanyId(loginUser.getCompanyId());
|
systemUser.setUpdateUser(loginUser.getId());
|
systemUserService.updateZFServiceSonById(systemUser);
|
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("分页查询用户信息")
|
@PostMapping("/findAllPage")
|
public ApiResponse<PageData<SystemUserDetailVO>> findAllPage (@RequestBody PageWrap<QuerySystemUserDTO> pageWrap) {
|
return ApiResponse.success(systemUserService.findAllPage(pageWrap));
|
}
|
|
@ApiOperation("市局查看县区用户信息")
|
@PostMapping("/findAreaPage")
|
public ApiResponse<PageData<SystemUserDetailVO>> findAreaPage (@RequestBody PageWrap<QuerySystemUserDTO> pageWrap) {
|
Utils.MP.blankToNull(pageWrap.getModel());
|
LoginUserInfo loginUser = getLoginUser();
|
Integer cityId = loginUser.getCityId();
|
pageWrap.getModel().setCityId(cityId);
|
pageWrap.getModel().setParentId(loginUser.getId());
|
return ApiResponse.success(systemUserService.findAllPage(pageWrap));
|
}
|
|
@ApiOperation("服务商,综合服务单位查询子账号信息")
|
@PostMapping("/findSystemUserSon")
|
public ApiResponse<PageData<SystemUserDetailVO>> findSystemUserSon(@RequestBody PageWrap<SystemUser> user){
|
return ApiResponse.success(systemUserService.findSystemUserSon(user));
|
}
|
|
@ApiOperation("市局查询子账号信息")
|
@PostMapping("/findSystemSjSon")
|
public ApiResponse<PageData<SystemUserDetailVO>> findSystemSjSon(@RequestBody PageWrap<SystemUser> user){
|
return ApiResponse.success(systemUserService.findSystemSjSon(user));
|
}
|
|
@ApiOperation("企业用户批量导入")
|
@PostMapping("/importCompanyBatch")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
|
})
|
@RequiresPermissions("system:user:create")
|
public ApiResponse<Integer> importCompanyBatch(@ApiParam(value = "file") MultipartFile file){
|
return ApiResponse.success(systemUserService.importCompanyBatch(file));
|
}
|
|
@ApiOperation("修改个人信息")
|
@PostMapping("/updateSystemUser")
|
@RequiresPermissions("system:user:update")
|
public ApiResponse updateSystemUser(@RequestBody SystemUser systemUser){
|
LoginUserInfo principals = (LoginUserInfo) SecurityUtils.getSubject().getPrincipals().getPrimaryPrincipal();
|
|
if (principals.getType() == Constants.UserType.SO_CHILD.getKey() ||
|
principals.getType() == Constants.UserType.SD_CHILD.getKey() ||
|
principals.getType() == Constants.UserType.COMPANY.getKey() ||
|
principals.getType() == Constants.UserType.SJ_CHILD.getKey()){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"无权限操作");
|
}
|
if (principals.getType() != Constants.UserType.SYSTEM.getKey() &&
|
principals.getType() != Constants.UserType.SJ.getKey()){
|
systemUser.setId(principals.getId());
|
systemUser.setType(principals.getType());
|
}
|
systemUserService.updateSystemUser(systemUser);
|
return ApiResponse.success(null);
|
};
|
|
@ApiOperation("新增或修改子账号个人信息")
|
@PostMapping("/createOrUpdateZFServiceSonById")
|
@RequiresPermissions("system:user:create")
|
public ApiResponse createOrUpdateZFServiceSonById(@RequestBody CreateSystemUserDTO systemUser){
|
|
systemUserService.createOrUpdateZFServiceSonById(systemUser);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("市局创建或者修改子账号")
|
@PostMapping("/createOrUpdateSJSon")
|
@RequiresPermissions("system:user:create")
|
public ApiResponse createOrUpdateSJSon(@RequestBody CreateSystemUserDTO systemUser){
|
systemUserService.createOrUpdateSJSonById(systemUser);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("查询个人信息")
|
@GetMapping("/findUser")
|
public ApiResponse <SystemUserDetailVO> findById(Integer id){
|
LoginUserInfo principals = (LoginUserInfo) SecurityUtils.getSubject().getPrincipals().getPrimaryPrincipal();
|
|
SystemUser user = systemUserService.findById(principals.getId());
|
SystemUserDetailVO vo = new SystemUserDetailVO();
|
vo.setId(user.getId());
|
vo.setUsername(user.getUsername());
|
vo.setRealname(user.getRealname());
|
vo.setMobile(user.getMobile());
|
return ApiResponse.success(vo);
|
}
|
|
@ApiOperation("后台录人员入信息")
|
@PostMapping("/createSystemUSer")
|
@RequiresPermissions("system:user:create")
|
public ApiResponse createSystemUSer(@RequestBody SystemUser systemUser){
|
systemUserService.createSystemUSer(systemUser);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("专家注册")
|
@PostMapping("/registerExportUser")
|
public ApiResponse registerExportUser(@Valid @RequestBody CreateExportSystemUserDTO createExportSystemUserDTO){
|
systemUserService.registerExportUser(createExportSystemUserDTO);
|
return ApiResponse.success(null);
|
}
|
|
}
|