2024-05-13 10:07:53 +08:00
|
|
|
package com.whdc.controller;
|
|
|
|
|
|
|
|
|
|
|
2024-05-13 14:55:42 +08:00
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
2024-05-13 10:07:53 +08:00
|
|
|
import com.whdc.model.dto.AddressBootDto;
|
|
|
|
|
import com.whdc.model.entity.AddressBook;
|
2024-05-13 14:55:42 +08:00
|
|
|
import com.whdc.model.entity.User;
|
|
|
|
|
import com.whdc.model.enums.Role;
|
2024-05-13 10:07:53 +08:00
|
|
|
import com.whdc.model.enums.VersionsType;
|
2024-05-14 15:09:10 +08:00
|
|
|
import com.whdc.model.group.Find;
|
2024-05-13 10:07:53 +08:00
|
|
|
import com.whdc.model.group.Insert;
|
|
|
|
|
import com.whdc.model.group.Update;
|
|
|
|
|
import com.whdc.service.IAddressBookService;
|
2024-05-13 14:55:42 +08:00
|
|
|
import com.whdc.service.IUserService;
|
2024-05-13 10:07:53 +08:00
|
|
|
import com.whdc.service.IVersionsService;
|
|
|
|
|
import com.whdc.utils.ResultJson;
|
|
|
|
|
import io.swagger.annotations.Api;
|
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author xusan
|
|
|
|
|
* @date 2024-05-11
|
|
|
|
|
*/
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Api(tags = "通讯录 - Controller")
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/addressbook")
|
|
|
|
|
public class AddressBookController {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IAddressBookService service;
|
|
|
|
|
|
2024-05-13 14:55:42 +08:00
|
|
|
@Autowired
|
|
|
|
|
private IUserService userService;
|
|
|
|
|
|
2024-05-13 10:07:53 +08:00
|
|
|
@Autowired
|
|
|
|
|
private IVersionsService versionsService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// @ApiOperation(value = "查询所有")
|
|
|
|
|
// @PostMapping(value = "find")
|
|
|
|
|
// public ResultJson<AddressBook> find(@RequestBody AddressBook dto) {
|
|
|
|
|
//
|
|
|
|
|
// return ResultJson.ok(service.find(dto));
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
@ApiOperation(value = "分页查询")
|
|
|
|
|
@PostMapping(value = "page")
|
|
|
|
|
public ResultJson<AddressBook> page(@RequestBody AddressBootDto dto) {
|
|
|
|
|
|
|
|
|
|
return ResultJson.ok(service.page(dto));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ApiOperation(value = "添加")
|
|
|
|
|
@PostMapping(value = "save")
|
|
|
|
|
public ResultJson insert(@RequestBody @Validated(Insert.class) AddressBook model) {
|
2024-05-13 14:55:42 +08:00
|
|
|
Integer loginId = (Integer) StpUtil.getLoginId();
|
|
|
|
|
String role = userService.getRole(loginId);
|
|
|
|
|
|
|
|
|
|
switch (Objects.requireNonNull(Role.getByName(role))) {
|
|
|
|
|
case R000:return ResultJson.error("权限不足");
|
|
|
|
|
case R001:
|
|
|
|
|
case R099:break;
|
|
|
|
|
default:return ResultJson.error("权限不足!!");
|
|
|
|
|
}
|
2024-05-13 10:07:53 +08:00
|
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(
|
|
|
|
|
service.lambdaQuery()
|
|
|
|
|
.eq(AddressBook::getName,String.valueOf(model.getName()).trim())
|
|
|
|
|
.list())
|
|
|
|
|
){
|
|
|
|
|
return ResultJson.error("该名称重复");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 添加日志
|
|
|
|
|
versionsService.saveInfo(model,VersionsType.ADD);
|
|
|
|
|
|
2024-05-13 14:55:42 +08:00
|
|
|
boolean save = service.save(model);
|
|
|
|
|
|
|
|
|
|
if (save){
|
|
|
|
|
userService.register( model.getPhone(), model.getId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ResultJson.ok(save);
|
2024-05-13 10:07:53 +08:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ApiOperation(value = "修改")
|
|
|
|
|
@PostMapping(value = "edit")
|
|
|
|
|
public ResultJson update(@RequestBody @Validated(Update.class) AddressBook model) {
|
|
|
|
|
|
2024-05-13 14:55:42 +08:00
|
|
|
Integer loginId = (Integer) StpUtil.getLoginId();
|
|
|
|
|
String role = userService.getRole(loginId);
|
|
|
|
|
|
|
|
|
|
switch (Objects.requireNonNull(Role.getByName(role))) {
|
|
|
|
|
case R000:{
|
|
|
|
|
// 不是修改自己
|
|
|
|
|
if (!model.getId().equals(loginId)){
|
|
|
|
|
return ResultJson.error("权限不足");
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
case R001:
|
|
|
|
|
case R099:break;
|
|
|
|
|
default:return ResultJson.error("权限不足!!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-05-13 10:07:53 +08:00
|
|
|
AddressBook byId = service.getById(model.getId());
|
|
|
|
|
if (Objects.isNull(byId)){
|
|
|
|
|
return ResultJson.error("当前数据不存在");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(
|
|
|
|
|
service.lambdaQuery()
|
|
|
|
|
.eq(AddressBook::getName,String.valueOf(model.getName()).trim())
|
|
|
|
|
.ne(AddressBook::getId, model.getId())
|
|
|
|
|
.list())
|
|
|
|
|
){
|
|
|
|
|
return ResultJson.error("该名称重复");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// List<Versions> list = versionsService.lambdaQuery()
|
|
|
|
|
// .eq(Versions::getAbId, model.getId())
|
|
|
|
|
// .list();
|
|
|
|
|
// Integer version = 0;
|
|
|
|
|
// if (CollectionUtils.isNotEmpty(list)){
|
|
|
|
|
// version = list
|
|
|
|
|
// .stream().map(Versions::getVersion)
|
|
|
|
|
// .max(Comparator.comparing(Integer::intValue))
|
|
|
|
|
// .get();
|
|
|
|
|
// }else{
|
|
|
|
|
// log.info("当前数据在进行修改但无相关记录;" + model.getId());
|
|
|
|
|
// }
|
|
|
|
|
// // 添加日志
|
|
|
|
|
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.UPDATE.getName()));
|
|
|
|
|
versionsService.saveInfo(model,VersionsType.UPDATE);
|
|
|
|
|
|
|
|
|
|
return ResultJson.ok(service.updateById(model));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ApiOperation(value = "修改权限")
|
2024-05-13 16:44:01 +08:00
|
|
|
@PostMapping(value = "updateRole")
|
2024-05-13 14:55:42 +08:00
|
|
|
public ResultJson updateRole(@RequestBody @Validated(Update.class) User model) {
|
2024-05-13 10:07:53 +08:00
|
|
|
|
2024-05-13 14:55:42 +08:00
|
|
|
|
|
|
|
|
Integer loginId = (Integer) StpUtil.getLoginId();
|
|
|
|
|
String role = userService.getRole(loginId);
|
|
|
|
|
|
|
|
|
|
switch (Objects.requireNonNull(Role.getByName(role))) {
|
|
|
|
|
case R000:
|
|
|
|
|
case R001: return ResultJson.error("权限不足");
|
|
|
|
|
case R099:break;
|
|
|
|
|
default:return ResultJson.error("权限不足!!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AddressBook byId = service.getById(model.getAbId());
|
2024-05-13 10:07:53 +08:00
|
|
|
if (Objects.isNull(byId)){
|
|
|
|
|
return ResultJson.error("当前数据不存在");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// List<Versions> list = versionsService.lambdaQuery()
|
|
|
|
|
// .eq(Versions::getAbId, model.getId())
|
|
|
|
|
// .list();
|
|
|
|
|
// Integer version = 0;
|
|
|
|
|
// if (CollectionUtils.isNotEmpty(list)){
|
|
|
|
|
// version = list
|
|
|
|
|
// .stream().map(Versions::getVersion)
|
|
|
|
|
// .max(Comparator.comparing(Integer::intValue))
|
|
|
|
|
// .get();
|
|
|
|
|
// }else{
|
|
|
|
|
// log.info("当前数据在进行修改但无相关记录;" + model.getId());
|
|
|
|
|
// }
|
|
|
|
|
// // 添加日志
|
|
|
|
|
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.UPDATE_ROLE.getName()));
|
2024-05-13 14:55:42 +08:00
|
|
|
versionsService.saveInfo(byId,VersionsType.UPDATE_ROLE);
|
2024-05-13 10:07:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
// 只修改角色
|
2024-05-13 14:55:42 +08:00
|
|
|
|
|
|
|
|
boolean update = userService.lambdaUpdate().set(User::getRole, model.getRole())
|
|
|
|
|
.eq(User::getAbId, model.getAbId())
|
2024-05-13 10:07:53 +08:00
|
|
|
.update();
|
|
|
|
|
return ResultJson.ok(update);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ApiOperation(value = "删除")
|
|
|
|
|
@GetMapping(value = "del/{id}")
|
|
|
|
|
public ResultJson delete(@PathVariable("id") Integer id) {
|
|
|
|
|
|
|
|
|
|
|
2024-05-13 14:55:42 +08:00
|
|
|
Integer loginId = (Integer) StpUtil.getLoginId();
|
|
|
|
|
String role = userService.getRole(loginId);
|
|
|
|
|
|
|
|
|
|
switch (Objects.requireNonNull(Role.getByName(role))) {
|
|
|
|
|
case R000:
|
|
|
|
|
case R001: return ResultJson.error("权限不足");
|
|
|
|
|
case R099:break;
|
|
|
|
|
default:return ResultJson.error("权限不足!!");
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-13 10:07:53 +08:00
|
|
|
AddressBook model = service.getById(id);
|
|
|
|
|
if (Objects.isNull(model)) {
|
|
|
|
|
|
|
|
|
|
return ResultJson.error("当前数据不存在");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// List<Versions> list = versionsService.lambdaQuery()
|
|
|
|
|
// .eq(Versions::getAbId, model.getId())
|
|
|
|
|
// .list();
|
|
|
|
|
// Integer version = 0;
|
|
|
|
|
// if (CollectionUtils.isNotEmpty(list)){
|
|
|
|
|
// version = list
|
|
|
|
|
// .stream().map(Versions::getVersion)
|
|
|
|
|
// .max(Comparator.comparing(Integer::intValue))
|
|
|
|
|
// .get();
|
|
|
|
|
// }else{
|
|
|
|
|
// log.info("当前数据在进行修改但无相关记录;" + model.getId());
|
|
|
|
|
// }
|
|
|
|
|
// // 添加日志
|
|
|
|
|
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.DEL.getName()));
|
|
|
|
|
versionsService.saveInfo(model,VersionsType.DEL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResultJson.ok(service.removeById(id));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|