package com.nova.sankuai.controller.v1;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.nova.sankuai.domain.dto.*;
|
import com.nova.sankuai.domain.entity.SysUser;
|
import com.nova.sankuai.domain.enums.UserTypeEnum;
|
import com.nova.sankuai.domain.vo.WelcomePageHistory;
|
import com.nova.sankuai.domain.vo.WelcomePageVo;
|
import com.nova.sankuai.domain.vo.sysuser.AdminVo;
|
import com.nova.sankuai.domain.vo.sysuser.MechanismConfigVo;
|
import com.nova.sankuai.domain.vo.sysuser.MechanismVo;
|
import com.nova.sankuai.domain.vo.sysuser.StaffVo;
|
import com.nova.sankuai.infra.config.CommonException;
|
import com.nova.sankuai.infra.utils.*;
|
import com.nova.sankuai.security.UserDetail;
|
import com.nova.sankuai.service.ISysUserService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.AllArgsConstructor;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.List;
|
|
/**
|
* @author weikangdi
|
*/
|
@Api(tags = "后台管理")
|
@RestController
|
@RequestMapping(value = "/api/v1/sysUser")
|
@AllArgsConstructor
|
public class SysUserController {
|
|
private final ISysUserService sysUserService;
|
|
private final ImageUtil imageUtil;
|
|
@PostMapping(value = "/add")
|
@ApiOperation(value = "新增机构用户")
|
@PreAuthorize("hasAuthority('sysUser.add')")
|
public ResultJson<Void> add(@RequestBody MechanismDto mechanismDto) {
|
mechanismDto.setType(UserTypeEnum.USER.getCode());
|
SysUser sysUser = mechanismDto.parseUser(mechanismDto);
|
sysUserService.add(sysUser);
|
return ResultJson.success();
|
}
|
|
@PutMapping(value = "/edit")
|
@ApiOperation(value = "编辑机构")
|
@PreAuthorize("hasAuthority('sysUser.edit')")
|
public ResultJson<Void> edit(@RequestBody MechanismDto mechanismDto) {
|
sysUserService.editMechanism(mechanismDto);
|
return ResultJson.success();
|
}
|
|
@GetMapping(value = "/invalidUser/{id}")
|
@ApiOperation(value = "启用/禁用分配机构")
|
@PreAuthorize("hasAuthority('sysUser.invalidUser')")
|
public ResultJson<Void> invalidUser(@PathVariable("id") Long id, Integer status) {
|
sysUserService.invalidUser(id, status);
|
return ResultJson.success();
|
}
|
|
@GetMapping(value = "/page")
|
@ApiOperation(value = "分页查询机构")
|
@PreAuthorize("hasAuthority('sysUser.page')")
|
public ResultJson<IPage<MechanismVo>> page(SysUserPageDto sysUser, PageRequest pageRequest, @AuthenticationPrincipal UserDetail userDetail) {
|
if (UserTypeEnum.USER.getCode().equals(userDetail.getType())) {
|
sysUser.setId(userDetail.getId());
|
}
|
IPage<MechanismVo> result = sysUserService.page(sysUser, pageRequest);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/{id}")
|
@ApiOperation(value = "获取机构详情")
|
@PreAuthorize("hasAuthority('sysUser.view')")
|
public ResultJson<MechanismVo> getById(@PathVariable("id") Long id) {
|
MechanismVo sysUser = sysUserService.selectOne(id);
|
return ResultJson.ok(sysUser);
|
}
|
|
|
@GetMapping(value = "/welcomePage")
|
@ApiOperation(value = "获取欢迎页信息")
|
@PreAuthorize("hasAuthority('sysUser.welcomePage')")
|
public ResultJson<WelcomePageVo> welcomePage(Long mechanismId, HttpServletRequest request) {
|
if (mechanismId == null) {
|
UserDetail user = UserUtil.getUser(request.getHeader("Authorization"));
|
mechanismId = user.getId();
|
}
|
WelcomePageVo welcomePage = sysUserService.welcomePage(mechanismId);
|
return ResultJson.ok(welcomePage);
|
}
|
|
@GetMapping(value = "/welcomePageList")
|
@ApiOperation(value = "获取欢迎页列表数据")
|
@PreAuthorize("hasAuthority('sysUser.welcomePageList')")
|
public ResultJson<IPage<WelcomePageHistory>> welcomePageList(HttpServletRequest request, WelcomePageDto pageDto, PageRequest pageRequest) {
|
UserDetail user = UserUtil.getUser(request.getHeader("Authorization"));
|
IPage<WelcomePageHistory> page = sysUserService.welcomePageList(user, pageDto, pageRequest);
|
return ResultJson.ok(page);
|
}
|
|
@PostMapping("/uploadPublicFile")
|
@ApiOperation(value = "上传公共图片")
|
@PreAuthorize("hasAuthority('sysUser.uploadPublicFile')")
|
public ResultJson<String> uploadPublicFile(@RequestBody MultipartFile file) {
|
|
String fileName = "";
|
Long len = file.getSize();
|
boolean isBig = ImageUtil.checkFileSize(len, 5);
|
if (!isBig) {
|
throw new CommonException("文件超出5M,请压缩后重试");
|
}
|
try {
|
if (file.getSize() != 0) {
|
MultipartFile file1 = CompressImageUtil.imgThumb(file);
|
fileName = imageUtil.uploadFile(file1, true);
|
}
|
} catch (Exception e) {
|
throw new CommonException("上传失败");
|
}
|
return ResultJson.ok(fileName);
|
}
|
|
@PostMapping(value = "/addStaff")
|
@ApiOperation(value = "新增客服")
|
@PreAuthorize("hasAuthority('sysUser.addStaff')")
|
public ResultJson<Void> addStaff(@RequestBody StaffDto staffDto) {
|
SysUser sysUser = staffDto.parseUser(staffDto);
|
sysUser.setType(UserTypeEnum.STAFF.getCode());
|
sysUserService.add(sysUser);
|
return ResultJson.success();
|
}
|
|
@PostMapping(value = "/editStaff")
|
@ApiOperation(value = "编辑客服")
|
@PreAuthorize("hasAuthority('sysUser.editStaff')")
|
public ResultJson<Void> editStaff(@RequestBody StaffDto staffDto) {
|
SysUser sysUser = staffDto.parseUser(staffDto);
|
sysUserService.edit(sysUser);
|
return ResultJson.success();
|
}
|
|
|
@PostMapping(value = "/addAdmin")
|
@ApiOperation(value = "新增系统管理员")
|
@PreAuthorize("hasAuthority('sysUser.addAdmin')")
|
public ResultJson<Void> addAdmin(@RequestBody AdminDto adminDto) {
|
SysUser sysUser = adminDto.parseUser(adminDto);
|
sysUser.setType(UserTypeEnum.ADMIN.getCode());
|
sysUserService.add(sysUser);
|
return ResultJson.success();
|
}
|
|
@PostMapping(value = "/editAdmin")
|
@ApiOperation(value = "编辑系统管理员")
|
@PreAuthorize("hasAuthority('sysUser.editAdmin')")
|
public ResultJson<Void> editAdmin(@RequestBody AdminDto adminDto) {
|
SysUser sysUser = adminDto.parseUser(adminDto);
|
sysUserService.edit(sysUser);
|
return ResultJson.success();
|
}
|
|
|
@GetMapping(value = "/pageStaff")
|
@ApiOperation(value = "分页查询客服")
|
@PreAuthorize("hasAuthority('sysUser.pageStaff')")
|
public ResultJson<IPage<StaffVo>> pageStaff(StaffDto staffDto, PageRequest pageRequest, @AuthenticationPrincipal UserDetail userDetail) {
|
if (UserTypeEnum.USER.getCode().equals(userDetail.getType())) {
|
return ResultJson.ok(new Page<>());
|
} else if (UserTypeEnum.STAFF.getCode().equals(userDetail.getType())) {
|
staffDto.setId(userDetail.getId());
|
}
|
IPage<StaffVo> result = sysUserService.pageStaff(staffDto, pageRequest);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/pageAdmin")
|
@ApiOperation(value = "分页查询系统管理员")
|
@PreAuthorize("hasAuthority('sysUser.pageAdmin')")
|
public ResultJson<IPage<AdminVo>> pageAdmin(AdminDto adminDto, PageRequest pageRequest, @AuthenticationPrincipal UserDetail userDetail) {
|
if (UserTypeEnum.ADMIN.getCode().equals(userDetail.getType())) {
|
IPage<AdminVo> result = sysUserService.pageAdmin(adminDto, pageRequest);
|
return ResultJson.ok(result);
|
} else {
|
return ResultJson.ok(new Page<>());
|
}
|
}
|
|
|
@GetMapping(value = "/pageSysUser")
|
@ApiOperation(value = "分页查询账号数据")
|
@PreAuthorize("hasAuthority('sysUser.pageSysUser')")
|
public ResultJson<IPage<SysUserDto>> pageSysUser(SysUserDto sysUserDto, PageRequest pageRequest) {
|
IPage<SysUserDto> result = sysUserService.pageSysUser(sysUserDto, pageRequest);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/pageMechanismConfig")
|
@ApiOperation(value = "分页查询机构配置信息")
|
@PreAuthorize("hasAuthority('sysUser.pageMechanismConfig')")
|
public ResultJson<IPage<MechanismConfigVo>> pageMechanismConfig(MechanismConfigPageDto pageDto, PageRequest pageRequest, @AuthenticationPrincipal UserDetail userDetail) {
|
if (UserTypeEnum.USER.getCode().equals(userDetail.getType())) {
|
pageDto.setId(userDetail.getId());
|
}
|
IPage<MechanismConfigVo> result = sysUserService.pageMechanismConfig(pageDto, pageRequest);
|
return ResultJson.ok(result);
|
}
|
|
@PostMapping(value = "/editMechanismConfig")
|
@ApiOperation(value = "编辑机构配置信息")
|
@PreAuthorize("hasAuthority('sysUser.editMechanismConfig')")
|
public ResultJson<Void> editMechanismConfig(@RequestBody MechanismConfigVo configVo) {
|
sysUserService.editMechanismConfig(configVo);
|
return ResultJson.success();
|
}
|
|
@GetMapping(value = "/getAssignableMechanism")
|
@ApiOperation(value = "获取可分配机构列表")
|
@PreAuthorize("hasAuthority('sysUser.getAssignableMechanism')")
|
public ResultJson<List<MechanismVo>> getAssignableMechanism() {
|
List<MechanismVo> result = sysUserService.getAssignableMechanism();
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/getMechanismById")
|
@ApiOperation(value = "查询机构详情")
|
@PreAuthorize("hasAuthority('sysUser.page')")
|
public ResultJson<MechanismVo> getMechanismById(Long mechanismId) {
|
MechanismVo result = sysUserService.getMechanismById(mechanismId);
|
return ResultJson.ok(result);
|
}
|
}
|