package com.template.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.template.api.UsersAPI;
import com.template.model.dto.UsersDetailsDto;
import com.template.model.dto.UsersDto;
import com.template.model.pojo.PermissionSetting;
import com.template.model.pojo.Users;
import com.template.model.result.CommonResult;
import com.template.model.vo.UsersPageVo;
import com.template.services.PermissionSettingService;
import com.template.services.UsersMenuService;
import com.template.services.UsersService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
*
* 前端控制器
*
*
* @author ceshi
* @since 2023-11-27
*/
@RestController
public class UsersController implements UsersAPI {
@Autowired
UsersService usersService;
@Autowired
PermissionSettingService permissionSettingService;
@Autowired
UsersMenuService usersMenuService;
@Override
public CommonResult saveUsers(UsersDto usersDto, BindingResult bindingResult) {
if (ObjectUtils.isEmpty(usersDto)) {
return CommonResult.fail();
}
Integer permissionSettingId = usersDto.getAdminMenuId();
PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
if (ObjectUtils.isEmpty(permissionSetting)) {
return CommonResult.fail("非法进入");
}
// 判断该用户是否拥有权限
String accountManagement = permissionSetting.getAccountManagement();
if (!"0".equals(accountManagement) && !accountManagement.contains("1")) {
return CommonResult.fail("此账号暂无该权限");
}
// 通过身份证号判断是否已经添加
// String idCard = usersDto.getIdCard();
String cardNumber = usersDto.getCardNumber();
LambdaQueryWrapper wrapperU = new LambdaQueryWrapper<>();
wrapperU.eq(Users::getCardNumber, cardNumber);
// .or()
// .eq(Users::getIdCard,idCard);
Users one = usersService.getOne(wrapperU);
if (ObjectUtils.isNotEmpty(one)) {
return CommonResult.fail("用户已存在");
}
Users users = new Users();
BeanUtils.copyProperties(usersDto, users);
boolean save = usersService.save(users);
if (!save) {
return CommonResult.fail();
}
return CommonResult.ok();
}
@Override
public CommonResult getUsersPage(int adminMenuId, int page, int size, String keyWord, String startTime, String endTime) {
if (ObjectUtils.isEmpty(page) || page <= 0) {
page = 1;
}
if (ObjectUtils.isEmpty(size) || size <= 0) {
size = 10;
}
PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
if (ObjectUtils.isEmpty(permissionSetting)) {
return CommonResult.fail("非法进入");
}
// 判断该用户是否拥有权限
// String accountManagement = permissionSetting.getAccountManagement();
// if (!"0".equals(accountManagement) && !accountManagement.contains("4")) {
// return CommonResult.fail("此账号暂无该权限");
// }
LambdaQueryWrapper wrapperU = new LambdaQueryWrapper<>();
wrapperU.eq(ObjectUtils.isNotEmpty(keyWord), Users::getPhone, keyWord)
.between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), Users::getCreateTime, startTime, endTime)
.or()
.like(ObjectUtils.isNotEmpty(keyWord), Users::getUserName, keyWord)
.between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), Users::getCreateTime, startTime, endTime);
IPage page1 = usersService.page(new Page<>(page, size), wrapperU);
List records = page1.getRecords();
ArrayList usersPageVos = new ArrayList<>();
for (Users record : records) {
UsersPageVo usersPageVo = new UsersPageVo();
BeanUtils.copyProperties(record,usersPageVo);
// String userMenuId = record.getUserMenuId();
// UsersMenu byId = usersMenuService.getById(userMenuId);
// usersPageVo.setUserMenu(byId);
usersPageVos.add(usersPageVo);
}
Page usersPageVoPage = new Page<>();
BeanUtils.copyProperties(page1,usersPageVoPage);
usersPageVoPage.setRecords(usersPageVos);
return CommonResult.ok(usersPageVoPage);
}
@Override
public CommonResult updateDetails(UsersDetailsDto usersDetailsDto, BindingResult bindingResult) {
if (ObjectUtils.isEmpty(usersDetailsDto)) {
return CommonResult.fail();
}
int adminMenuId = usersDetailsDto.getAdminMenuId();
PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
if (ObjectUtils.isEmpty(permissionSetting)) {
return CommonResult.fail("非法进入");
}
// 判断该用户是否拥有权限
String accountManagement = permissionSetting.getAccountManagement();
if (!"0".equals(accountManagement) && !accountManagement.contains("2")) {
return CommonResult.fail("此账号暂无该权限");
}
Users users = usersDetailsDto.getUsers();
boolean update = usersService.updateById(users);
if (!update) {
return CommonResult.fail();
}
return CommonResult.ok();
}
@Override
public CommonResult deleteUsers(int adminMenuId, int userId) {
if (ObjectUtils.isEmpty(adminMenuId) || ObjectUtils.isEmpty(userId)) {
return CommonResult.fail("参数异常");
}
PermissionSetting permissionSetting = permissionSettingService.getById(adminMenuId);
if (ObjectUtils.isEmpty(permissionSetting)) {
return CommonResult.fail("非法进入");
}
// 判断该用户是否拥有权限
String accountManagement = permissionSetting.getAccountManagement();
if (!"0".equals(accountManagement) && !accountManagement.contains("3")) {
return CommonResult.fail("此账号暂无该权限");
}
boolean b = usersService.removeById(userId);
if (!b) {
return CommonResult.fail();
}
return CommonResult.ok();
}
@Override
public CommonResult departmentList() {
List departmentList=usersService.departmentList();
return CommonResult.ok(departmentList);
}
@Override
public CommonResult getUser(String userId) {
return CommonResult.ok(usersService.getById(userId));
}
}