一 统一返回结果定义
1 枚举类
package com.baiyee.sdgt.common.result;
import lombok.Getter;
@Getter
public enum ResultCodeEnum {
SUCCESS(200, "成功"),
FAIL(201, "失败"),
PARAM_ERROR(202, "参数不正确"),
SERVICE_ERROR(203, "服务异常"),
DATA_ERROR(204, "数据异常"),
DATA_UPDATE_ERROR(205, "数据版本异常"),
LOGIN_AUTH(208, "未登陆"),
PERMISSION(209, "没有权限"),
CODE_ERROR(210, "验证码错误"),
LOGIN_MOBLE_ERROR(211, "账号不正确"),
LOGIN_DISABLED_ERROR(212, "改用户已被禁用"),
REGISTER_MOBLE_ERROR(213, "手机号已被使用"),
LOGIN_AURH(214, "需要登录"),
LOGIN_ACL(215, "没有权限"),
URL_ENCODE_ERROR(216, "URL编码失败"),
ILLEGAL_CALLBACK_REQUEST_ERROR(217, "非法回调请求"),
FETCH_ACCESSTOKEN_FAILD(218, "获取accessToken失败"),
FETCH_USERINFO_ERROR(219, "获取用户信息失败"),
LOGIN_ERROR(23005, "登录失败"),
;
private Integer code;
private String message;
private ResultCodeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
2 统计返回结果
package com.baiyee.sdgt.common.result;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "全局统一返回结果")
public class Result {
@ApiModelProperty(value = "返回码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "返回数据")
private T data;
public Result() {
}
protected static Result build(T data) {
Result result = new Result();
if (data != null)
result.setData(data);
return result;
}
public static Result build(T body, ResultCodeEnum resultCodeEnum) {
Result result = build(body);
result.setCode(resultCodeEnum.getCode());
result.setMessage(resultCodeEnum.getMessage());
return result;
}
public static Result build(Integer code, String message) {
Result result = build(null);
result.setCode(code);
result.setMessage(message);
return result;
}
public static Result ok() {
return Result.ok(null);
}
public static Result ok(T data) {
Result result = build(data);
return build(data, ResultCodeEnum.SUCCESS);
}
public static Result fail() {
return Result.fail(null);
}
public static Result fail(T data) {
Result result = build(data);
return build(data, ResultCodeEnum.FAIL);
}
public Result message(String msg) {
this.setMessage(msg);
return this;
}
public Result code(Integer code) {
this.setCode(code);
return this;
}
public boolean isOk() {
if (this.getCode().intValue() == ResultCodeEnum.SUCCESS.getCode().intValue()) {
return true;
}
return false;
}
}
二 条件查询带分页中的条件封装
@Data
public class HospitalQueryVo {
@ApiModelProperty(value = "医院名称")
private String name;
@ApiModelProperty(value = "所在省")
private String province;
@ApiModelProperty(value = "所在市")
private String city;
@ApiModelProperty(value = "所在区")
private String district;
@ApiModelProperty(value = "状态")
private Integer status;
}
三 医院接口
@Api(tags = "医院管理")
@RestController
@RequestMapping("/admin/hospital")
public class HospitalController {
// 注入service
@Autowired
private HospitalService hospitalService;
// 查询医院所有信息
@ApiOperation(value = "获取所有医院")
@GetMapping("findAll")
public Result findAllHospitalSet() {
// 调用 service 的方法
List list = hospitalService.list();
return Result.ok(list);
}
// 逻辑删除医院
@ApiOperation(value = "逻辑删除医院")
@DeleteMapping("{id}")
public Result removeHospSet(@PathVariable String id) {
boolean flag = hospitalService.removeById(id);
if (flag) {
return Result.ok();
} else {
return Result.fail();
}
}
// 条件查询带分页
@PostMapping("findPageHospital/{current}/{limit}")
public Result findPageHospSet(@PathVariable long current,
@PathVariable long limit,
@RequestBody(required = false) HospitalQueryVo hospitalQueryVo) {
//创建page对象,传递当前页,每页记录数
Page page = new Page<>(current, limit);
//构建条件
QueryWrapper wrapper = new QueryWrapper<>();
String name = hospitalQueryVo.getName(); // 医院名称
String province = hospitalQueryVo.getProvince(); // 省
String city = hospitalQueryVo.getCity(); // 市
String district = hospitalQueryVo.getDistrict(); // 区
Integer status = hospitalQueryVo.getStatus(); // 启用状态
if (!StringUtils.isEmpty(name)) {
wrapper.like("NAME", name);
}
if (!StringUtils.isEmpty(province)) {
wrapper.eq("PROVINCE", province);
}
if (!StringUtils.isEmpty(city)) {
wrapper.eq("CITY", city);
}
if (!StringUtils.isEmpty(district)) {
wrapper.eq("DISTRICT", district);
}
if (status != null) {
wrapper.eq("STATUS", status);
}
// 调用方法实现分页查询
IPage pageHospitalSet = hospitalService.page(page, wrapper);
// 返回结果
return Result.ok(pageHospitalSet);
}
// 4 添加医院
@PostMapping("saveHospital")
public Result saveHospitalSet(@RequestBody Hospital hospital) {
// 设置状态 1 启用 0 禁用
hospital.setStatus(1);
boolean save = hospitalService.save(hospital);
if (save) {
return Result.ok();
} else {
return Result.fail();
}
}
// 5 根据 id 获取医院
@GetMapping("getHospSet/{id}")
public Result getHospSet(@PathVariable Long id) {
Hospital hospital = hospitalService.getById(id);
return Result.ok(hospital);
}
// 6 修改医院
@PostMapping("updateHospital")
public Result updateHospital(@RequestBody Hospital hospital) {
boolean flag = hospitalService.updateById(hospital);
if (flag) {
return Result.ok();
} else {
return Result.fail();
}
}
// 7 批量删除医院
@DeleteMapping("batchRemove")
public Result batchRemoveHospital(@RequestBody List idList) {
hospitalService.removeByIds(idList);
return Result.ok();
}
// 8 医院启动和禁用
@PutMapping("lockHospital/{id}/{status}")
public Result lockHospitalSet(@PathVariable Long id,
@PathVariable Integer status) {
// 根据 id 查询医院设置信息
Hospital hospitalSet = hospitalService.getById(id);
// 设置状态
hospitalSet.setStatus(status);
// 调用方法
hospitalService.updateById(hospitalSet);
return Result.ok();
}
}