提交 32c5bd78 作者: 方治民

Merge branch 'dev_lijing' of https://gitlab.yiring.com/chemical-kesai/kshg-api into dev_fzm

...@@ -73,4 +73,7 @@ dependencies { ...@@ -73,4 +73,7 @@ dependencies {
// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign
implementation "org.springframework.cloud:spring-cloud-starter-openfeign:${openfeignVersion}" implementation "org.springframework.cloud:spring-cloud-starter-openfeign:${openfeignVersion}"
// feign-okhttp
implementation "io.github.openfeign:feign-okhttp:${feignOkhttpVersion}"
} }
...@@ -6,6 +6,7 @@ import com.yiring.common.domain.BasicEntity; ...@@ -6,6 +6,7 @@ import com.yiring.common.domain.BasicEntity;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashSet; import java.util.HashSet;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
...@@ -94,6 +95,9 @@ public class LocationBeacon extends BasicEntity implements Serializable { ...@@ -94,6 +95,9 @@ public class LocationBeacon extends BasicEntity implements Serializable {
@Comment("电量单位") @Comment("电量单位")
String voltUnit; String voltUnit;
@Comment("状态更新时间")
LocalDateTime time;
@Comment("围栏集合") @Comment("围栏集合")
@Builder.Default @Builder.Default
@ManyToMany @ManyToMany
......
...@@ -99,6 +99,10 @@ public class LocationTag extends BasicEntity implements Serializable { ...@@ -99,6 +99,10 @@ public class LocationTag extends BasicEntity implements Serializable {
@Comment("电量单位") @Comment("电量单位")
String voltUnit; String voltUnit;
@FieldMapping
@Comment("类型(1:内部/2:访客/3:承包商)")
Integer category;
@FieldMapping(value = "raiseTimestamp", desc = "更新时间戳", type = Long.class) @FieldMapping(value = "raiseTimestamp", desc = "更新时间戳", type = Long.class)
@Comment("更新时间") @Comment("更新时间")
LocalDateTime updateTime; LocalDateTime updateTime;
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.excel.dept; package com.yiring.app.excel.dept;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn; import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import com.github.liaochong.myexcel.core.annotation.ExcelModel; import com.github.liaochong.myexcel.core.annotation.ExcelModel;
import com.yiring.auth.domain.dept.Department; import com.yiring.auth.domain.dept.Department;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -33,19 +30,22 @@ public class DepartmentExportExcel implements Serializable { ...@@ -33,19 +30,22 @@ public class DepartmentExportExcel implements Serializable {
@ExcelColumn(title = "部门名称") @ExcelColumn(title = "部门名称")
String name; String name;
@ExcelColumn(title = "创建时间") @ExcelColumn(title = "负责人")
String createTime; String realName;
public static List<DepartmentExportExcel> transforms(List<Department> departments) { @ExcelColumn(title = "手机号")
return departments String mobile;
.stream()
.map(department -> @ExcelColumn(title = "是否启用")
DepartmentExportExcel String enable;
.builder()
.name(department.getName()) public static DepartmentExportExcel transform(Department department) {
.createTime(LocalDateTimeUtil.format(department.getCreateTime(), "yyyy-MM-dd HH:mm:ss")) return DepartmentExportExcel
.build() .builder()
) .name(department.getName())
.collect(Collectors.toList()); .realName(department.getLeader().getRealName())
.mobile(department.getLeader().getMobile())
.enable(department.getEnable() ? "启用" : "禁用")
.build();
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.excel.dept;
import cn.hutool.core.util.StrUtil;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import com.yiring.auth.domain.dept.Department;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 部门导入
*
* @author LJ-2204
* @date 2022/4/25
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class DepartmentImportExcel implements Serializable {
@Serial
private static final long serialVersionUID = -1287875741111587840L;
@ExcelColumn(title = "部门名称")
@NotNull
String name;
@ExcelColumn(title = "负责人")
String realName;
@ExcelColumn(title = "手机号码")
String mobile;
@ExcelColumn(title = "状态")
String enable;
public static Department transform(DepartmentImportExcel departmentImportExcel) {
return Department
.builder()
.name(departmentImportExcel.getName())
.enable(StrUtil.equals(departmentImportExcel.getEnable(), "启用"))
.build();
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.excel.location; package com.yiring.app.excel.location.tag;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn; import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
...@@ -7,8 +7,6 @@ import com.github.liaochong.myexcel.core.annotation.ExcelModel; ...@@ -7,8 +7,6 @@ import com.github.liaochong.myexcel.core.annotation.ExcelModel;
import com.yiring.app.domain.location.LocationTag; import com.yiring.app.domain.location.LocationTag;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -51,20 +49,15 @@ public class LocationTagExportExcel implements Serializable { ...@@ -51,20 +49,15 @@ public class LocationTagExportExcel implements Serializable {
@ExcelColumn(title = "最近更新时间") @ExcelColumn(title = "最近更新时间")
String updateTime; String updateTime;
public static List<LocationTagExportExcel> transforms(List<LocationTag> locationTags) { public static LocationTagExportExcel transform(LocationTag locationTag) {
return locationTags return LocationTagExportExcel
.stream() .builder()
.map(locationTag -> .code(locationTag.getCode())
LocationTagExportExcel .type(locationTag.getType())
.builder() .silent(locationTag.getSilent())
.code(locationTag.getCode()) .imei(locationTag.getImei())
.type(locationTag.getType()) .volt(locationTag.getVolt())
.silent(locationTag.getSilent()) .updateTime(LocalDateTimeUtil.format(locationTag.getUpdateTime(), "yyyy-MM-dd HH:mm:ss"))
.imei(locationTag.getImei()) .build();
.volt(locationTag.getVolt())
.updateTime(LocalDateTimeUtil.format(locationTag.getUpdateTime(), "yyyy-MM-dd HH:mm:ss"))
.build()
)
.collect(Collectors.toList());
} }
} }
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.excel.location; package com.yiring.app.excel.location.tag;
import cn.hutool.core.util.StrUtil;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn; import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import com.yiring.app.domain.location.LocationTag; import com.yiring.app.domain.location.LocationTag;
import java.io.Serial; import java.io.Serial;
...@@ -25,23 +26,23 @@ public class LocationTagImportExcel implements Serializable { ...@@ -25,23 +26,23 @@ public class LocationTagImportExcel implements Serializable {
private static final long serialVersionUID = -8817732062049005201L; private static final long serialVersionUID = -8817732062049005201L;
// 编号 // 编号
@ExcelColumn(index = 0) @ExcelColumn(title = "编号")
String code; String code;
// 标签型号 // 标签型号
@ExcelColumn(index = 1) @ExcelColumn(title = "标签型号")
String type; String type;
// 设备编码 // 设备编码
@ExcelColumn(index = 2) @ExcelColumn(title = "imei")
String imei; String imei;
public LocationTag transform() { public static LocationTag transform(LocationTagImportExcel locationTagImportExcel) {
return LocationTag return LocationTag
.builder() .builder()
.code(this.code) .code(locationTagImportExcel.code)
.type(LocationTag.Type.valueOf(this.type)) .type(LocationTag.Type.valueOf(locationTagImportExcel.type))
.imei(this.imei) .imei(StrUtil.isEmpty(locationTagImportExcel.imei) ? null : locationTagImportExcel.imei)
.createTime(LocalDateTime.now()) .createTime(LocalDateTime.now())
.build(); .build();
} }
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.excel.user; package com.yiring.app.excel.user;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn; import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import com.yiring.app.vo.user.UserVo; import com.yiring.app.vo.user.UserVo;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
/** /**
* 部门信息控制器 * 用户导出
* *
* @author LJ-2204 * @author LJ-2204
* @date 2022/4/24 * @date 2022/4/24
...@@ -31,19 +28,49 @@ public class UserExportExcel implements Serializable { ...@@ -31,19 +28,49 @@ public class UserExportExcel implements Serializable {
@ExcelColumn(title = "真实姓名") @ExcelColumn(title = "真实姓名")
String realName; String realName;
@ExcelColumn(title = "创建时间") @ExcelColumn(title = "工号")
String createTime; String uuid;
public static List<UserExportExcel> transforms(List<UserVo> userVos) { // 图标类型
return userVos @ExcelColumn(title = "图标类型")
.stream() String type;
.map(userVo ->
UserExportExcel // 手机号
.builder() @ExcelColumn(title = "手机号")
.realName(userVo.getRealName()) String mobile;
.createTime(LocalDateTimeUtil.format(userVo.getCreateTime(), "yyyy-MM-dd HH:mm:ss"))
.build() // 部门id
) @ExcelColumn(title = "部门名称")
.collect(Collectors.toList()); String deptName;
// 职位id
@ExcelColumn(title = "职位名称")
String postName;
// 标签号
@ExcelColumn(title = "标签号")
String code;
// 性别
@ExcelColumn(title = "性别")
Boolean gender;
// 是否为特殊人员
@ExcelColumn(title = "是否为特殊人员")
Boolean isSpecial;
public static UserExportExcel transform(UserVo userVo) {
return UserExportExcel
.builder()
.realName(userVo.getRealName())
.uuid(userVo.getUuid())
.type(userVo.getType().text())
.mobile(userVo.getMobile())
.deptName(userVo.getDepartment())
.postName(userVo.getPost())
.code(userVo.getCode())
.gender(userVo.getGender())
.isSpecial(userVo.getIsSpecial())
.build();
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.excel.user;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import com.yiring.auth.domain.user.User;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 用户导入
*
* @author LJ-2204
* @date 2022/4/25
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserImportExcel implements Serializable {
@Serial
private static final long serialVersionUID = 3471291755743945051L;
// 姓名
@ExcelColumn(title = "姓名")
String realName;
// 工号
@ExcelColumn(title = "工号")
String uuid;
// 图标类型
@ExcelColumn(title = "图标类型")
String type;
// 手机号
@ExcelColumn(title = "手机号码")
String mobile;
// 部门id
@ExcelColumn(title = "部门名称")
String deptName;
// 职位id
@ExcelColumn(title = "职位名称")
String postName;
// 标签号
@ExcelColumn(title = "标签编号")
String code;
// 性别
@ExcelColumn(title = "性别")
Boolean gender;
// 是否为特殊人员
@ExcelColumn(title = "特殊人员")
Boolean isSpecial;
public static User transform(UserImportExcel userImportExcel) {
return User
.builder()
.realName(userImportExcel.getRealName())
.uuid(userImportExcel.getUuid())
.type(User.Type.valueOf(userImportExcel.getType()))
.mobile(userImportExcel.getMobile())
.gender(userImportExcel.getGender())
.isSpecial(userImportExcel.getIsSpecial())
.build();
}
}
...@@ -2,12 +2,10 @@ ...@@ -2,12 +2,10 @@
package com.yiring.app.param.dept; package com.yiring.app.param.dept;
import com.yiring.auth.domain.dept.Department; import com.yiring.auth.domain.dept.Department;
import com.yiring.auth.domain.user.User;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -31,7 +29,7 @@ public class DepartmentAddParam implements Serializable { ...@@ -31,7 +29,7 @@ public class DepartmentAddParam implements Serializable {
@ApiModelProperty(value = "上级部门", example = "1", required = true) @ApiModelProperty(value = "上级部门", example = "1", required = true)
@NotNull @NotNull
Long pid; Long id;
@ApiModelProperty(value = "名称", example = "Java", required = true) @ApiModelProperty(value = "名称", example = "Java", required = true)
@NotNull @NotNull
...@@ -43,15 +41,12 @@ public class DepartmentAddParam implements Serializable { ...@@ -43,15 +41,12 @@ public class DepartmentAddParam implements Serializable {
@ApiModelProperty(value = "部门状态", example = "1") @ApiModelProperty(value = "部门状态", example = "1")
Boolean enable; Boolean enable;
public Department transform() { public static Department transform(DepartmentAddParam departmentAddParam) {
return Department return Department
.builder() .builder()
.pid(this.pid) .pid(departmentAddParam.getId())
.name(this.name) .name(departmentAddParam.getName())
.leader(User.builder().id(this.leaderId).build()) .enable(departmentAddParam.getEnable())
.enable(this.enable)
.createTime(LocalDateTime.now())
.updateTime(LocalDateTime.now())
.build(); .build();
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.dept;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 部门导入
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("DepartmentExportParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class DepartmentExportParam implements Serializable {
@Serial
private static final long serialVersionUID = 6314061369190511168L;
@ApiModelProperty(value = "部门状态", example = "启用/禁用")
Boolean enable;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.dept;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ObjectUtil;
import com.yiring.auth.domain.dept.Department;
import com.yiring.auth.domain.user.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 部门修改入参
*
* @author LJ-2204
* @date 2022/4/24
*/
@ApiModel("DepartmentModifyParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class DepartmentModifyParam implements Serializable {
@Serial
private static final long serialVersionUID = 8839239258775446219L;
@ApiModelProperty(value = "主键", example = "1", required = true)
@NotNull
Long id;
@ApiModelProperty(value = "上级部门", example = "1", required = true)
@NotNull
Long pid;
@ApiModelProperty(value = "名称", example = "Java", required = true)
@NotNull
String name;
@ApiModelProperty(value = "负责人", example = "1")
Long leaderId;
public void transform(DepartmentModifyParam departmentModifyParam, Department department) {
department.setPid(departmentModifyParam.getPid());
department.setName(departmentModifyParam.getName());
if (ObjectUtil.isNotEmpty(departmentModifyParam.getLeaderId())) {
department.setLeader(User.builder().id(departmentModifyParam.getLeaderId()).build());
}
department.setUpdateTime(LocalDateTimeUtil.now());
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location; package com.yiring.app.param.location.tag;
import com.yiring.app.domain.location.LocationTag; import com.yiring.app.domain.location.LocationTag;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -39,12 +39,12 @@ public class LocationTagAddParam implements Serializable { ...@@ -39,12 +39,12 @@ public class LocationTagAddParam implements Serializable {
@ApiModelProperty(value = "imei 设备编码标识", example = "88888888") @ApiModelProperty(value = "imei 设备编码标识", example = "88888888")
String imei; String imei;
public LocationTag transform() { public static LocationTag transform(LocationTagAddParam locationTagAddParam) {
return LocationTag return LocationTag
.builder() .builder()
.code(this.code) .code(locationTagAddParam.getCode())
.type(this.type) .type(locationTagAddParam.getType())
.imei(this.imei) .imei(locationTagAddParam.getImei())
.used(false) .used(false)
.silent(false) .silent(false)
.volt(0) .volt(0)
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location; package com.yiring.app.param.location.tag;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -29,8 +29,4 @@ public class LocationTagDeleteParam implements Serializable { ...@@ -29,8 +29,4 @@ public class LocationTagDeleteParam implements Serializable {
@ApiModelProperty(value = "ids", example = "145235231,145235232", required = true) @ApiModelProperty(value = "ids", example = "145235231,145235232", required = true)
@NotNull(message = "ids 不能为空") @NotNull(message = "ids 不能为空")
Long[] ids; Long[] ids;
@ApiModelProperty(value = "codes", example = "BTT99999998,BTT99999999", required = true)
@NotNull(message = "codes 不能为空")
String[] codes;
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location.tag;
import com.yiring.app.domain.location.LocationTag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 部门信息控制器
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("LocationTagExportParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class LocationTagExportParam implements Serializable {
@Serial
private static final long serialVersionUID = -344458727454884014L;
@ApiModelProperty(value = "编号", example = "BTT88888888")
String code;
@ApiModelProperty(value = "标签类型", example = "蓝牙人员定位卡")
LocationTag.Type type;
@ApiModelProperty(value = "状态", example = "true")
Boolean silent;
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location; package com.yiring.app.param.location.tag;
import com.yiring.app.domain.location.LocationTag; import com.yiring.app.domain.location.LocationTag;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location; package com.yiring.app.param.location.tag;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.yiring.app.domain.location.LocationTag; import com.yiring.app.domain.location.LocationTag;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -38,7 +39,10 @@ public class LocationTagModifyParam implements Serializable { ...@@ -38,7 +39,10 @@ public class LocationTagModifyParam implements Serializable {
@ApiModelProperty(value = "imei 设备编码标识", example = "88888888") @ApiModelProperty(value = "imei 设备编码标识", example = "88888888")
String imei; String imei;
public LocationTag transform() { public static void transform(LocationTagModifyParam locationTagModifyParam, LocationTag locationTag) {
return LocationTag.builder().code(this.code).type(this.type).imei(this.imei).build(); locationTag.setCode(locationTagModifyParam.getCode());
locationTag.setType(locationTagModifyParam.getType());
locationTag.setImei(locationTagModifyParam.getImei());
locationTag.setUpdateTime(LocalDateTimeUtil.now());
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location.tag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 标签分配
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("LocationTagTypeFindParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class LocationTagTypeFindParam implements Serializable {
@Serial
private static final long serialVersionUID = -647961131755069990L;
@ApiModelProperty(value = "编号", example = "BTT8888888")
String code;
@ApiModelProperty(value = "类别", example = "1内部/2访客")
Integer category;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.post;
import com.yiring.auth.domain.post.Post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 职位新增
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("PostAddParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PostAddParam implements Serializable {
@Serial
private static final long serialVersionUID = -7451952048517810923L;
@ApiModelProperty(value = "名称", example = "Java", required = true)
@NotNull(message = "名称不能为空")
String name;
@ApiModelProperty(value = "描述", example = "描述")
String describe;
@ApiModelProperty(value = "是否启用", example = "true")
Boolean enable;
public static Post transform(PostAddParam param) {
return Post.builder().name(param.getName()).describe(param.getDescribe()).enable(param.getEnable()).build();
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 职位导入入参
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("PostExportParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PostExportParam implements Serializable {
@Serial
private static final long serialVersionUID = 86398868302287802L;
@ApiModelProperty(value = "名称", example = "Java")
String name;
@ApiModelProperty(value = "是否启用", example = "true")
Boolean enable;
}
...@@ -9,7 +9,7 @@ import lombok.*; ...@@ -9,7 +9,7 @@ import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
/** /**
* 职位分页入参 * 职位条件入参
* @author LJ-2204 * @author LJ-2204
* @date 2022/4/13 * @date 2022/4/13
*/ */
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.post;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.yiring.auth.domain.post.Post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 职位修改
*
* @author LJ-2204
* @date 2022/4/25
*/
@ApiModel("PostModifyParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PostModifyParam implements Serializable {
@Serial
private static final long serialVersionUID = 9182648236336186660L;
@ApiModelProperty(value = "主键", example = "1", required = true)
@NotNull(message = "编号不能为空")
Long id;
@ApiModelProperty(value = "名称", example = "Java", required = true)
@NotNull(message = "名称不能为空")
String name;
@ApiModelProperty(value = "描述", example = "描述")
String describe;
@ApiModelProperty(value = "是否启用", example = "true")
Boolean enable;
public void transform(PostModifyParam postParam, Post post) {
post.setName(postParam.getName());
post.setDescribe(postParam.getDescribe());
post.setEnable(postParam.getEnable());
post.setUpdateTime(LocalDateTimeUtil.now());
}
}
...@@ -28,16 +28,16 @@ public class PostParam implements Serializable { ...@@ -28,16 +28,16 @@ public class PostParam implements Serializable {
private static final long serialVersionUID = 5247408856592333466L; private static final long serialVersionUID = 5247408856592333466L;
@ApiModelProperty(value = "名称", example = "Java", required = true) @ApiModelProperty(value = "名称", example = "Java", required = true)
@NotNull @NotNull(message = "名称不能为空")
String name; String name;
@ApiModelProperty(value = "描述", example = "描述", required = true) @ApiModelProperty(value = "描述", example = "描述")
String describe; String describe;
@ApiModelProperty(value = "是否启用", example = "true", required = true) @ApiModelProperty(value = "是否启用", example = "true")
Boolean enable; Boolean enable;
public Post transform() { public static Post transform(PostParam postParam) {
return Post.builder().name(this.name).describe(this.describe).enable(this.enable).build(); return Post.builder().name(postParam.name).describe(postParam.describe).enable(postParam.enable).build();
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.user;
import com.yiring.auth.domain.user.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 用户新增入参
*
* @author LJ-2204
* @date 2022/4/25
*/
@ApiModel("UserAddParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserAddParam implements Serializable {
@Serial
private static final long serialVersionUID = -4976674015255774601L;
@ApiModelProperty(value = "头像", example = "url")
String avatar;
@ApiModelProperty(value = "真实姓名", example = "张三", required = true)
String realName;
@ApiModelProperty(value = "电话", example = "1888888888", required = true)
String mobile;
@ApiModelProperty(value = "图标类型", example = "EMPLOYEES人员、GUEST访客", required = true)
User.Type type;
@ApiModelProperty(value = "性别", example = "0/1")
Boolean gender;
@ApiModelProperty(value = "归属部门", example = "1", required = true)
Long deptId;
@ApiModelProperty(value = "工号", example = "1888888888", required = true)
String uuid;
@ApiModelProperty(value = "职位", example = "1")
Long postId;
@ApiModelProperty(value = "是否特殊人员", example = "0/1", required = true)
Boolean isSpecial;
public static User transform(UserAddParam userAddParam) {
return User
.builder()
.avatar(userAddParam.getAvatar())
.realName(userAddParam.getRealName())
.mobile(userAddParam.getMobile())
.type(userAddParam.getType())
.gender(userAddParam.getGender())
.uuid(userAddParam.getUuid())
.isSpecial(userAddParam.getIsSpecial())
.build();
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.user;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.yiring.auth.domain.dept.Department;
import com.yiring.auth.domain.post.Post;
import com.yiring.auth.domain.user.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 用户修改入参
*
* @author LJ-2204
* @date 2022/4/25
*/
@ApiModel("UserModifyParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserModifyParam implements Serializable {
@Serial
private static final long serialVersionUID = -5475181111082029313L;
@ApiModelProperty(value = "主键", example = "11", required = true)
@NotNull
Long id;
@ApiModelProperty(value = "头像", example = "url")
String avatar;
@ApiModelProperty(value = "真实姓名", example = "张三", required = true)
@NotNull
String realName;
@ApiModelProperty(value = "电话", example = "1888888888", required = true)
@NotNull
String mobile;
@ApiModelProperty(value = "图标类型", example = "EMPLOYEES人员、GUEST访客", required = true)
@NotNull
User.Type type;
@ApiModelProperty(value = "性别", example = "0/1")
Boolean gender;
@ApiModelProperty(value = "归属部门", example = "1", required = true)
@NotNull
Long deptId;
@ApiModelProperty(value = "工号", example = "1888888888", required = true)
@NotNull
String uuid;
@ApiModelProperty(value = "职位", example = "1")
Long postId;
@ApiModelProperty(value = "是否特殊人员", example = "0/1", required = true)
@NotNull
Boolean isSpecial;
public static void transform(UserModifyParam userModifyParam, User user) {
user.setAvatar(userModifyParam.getAvatar());
user.setRealName(userModifyParam.getRealName());
user.setMobile(userModifyParam.getMobile());
user.setType(userModifyParam.getType());
user.setGender(userModifyParam.getGender());
user.setDepartment(Department.builder().id(Convert.toLong(userModifyParam.getDeptId())).build());
user.setUuid(userModifyParam.getUuid());
if (ObjectUtil.isNotEmpty(userModifyParam.getPostId())) {
user.setPost(Post.builder().id(Convert.toLong(userModifyParam.getPostId())).build());
}
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location.zy; package com.yiring.app.param.zy.location.tag;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.yiring.app.domain.location.LocationTag; import com.yiring.app.domain.location.LocationTag;
import com.yiring.app.excel.location.LocationTagImportExcel;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -42,6 +39,9 @@ public class ZyLocationTagAddParam implements Serializable { ...@@ -42,6 +39,9 @@ public class ZyLocationTagAddParam implements Serializable {
@ApiModelProperty(value = "实体类型", example = "car", required = true) @ApiModelProperty(value = "实体类型", example = "car", required = true)
String entityType; String entityType;
@ApiModelProperty(value = "card", example = "card")
String card;
public static ZyLocationTagAddParam transform(LocationTag locationTag, Integer orgId) { public static ZyLocationTagAddParam transform(LocationTag locationTag, Integer orgId) {
String entityType = StrUtil.equals(locationTag.getType().name(), "BTT02") ? "car" : "staff"; String entityType = StrUtil.equals(locationTag.getType().name(), "BTT02") ? "car" : "staff";
return ZyLocationTagAddParam return ZyLocationTagAddParam
...@@ -50,25 +50,7 @@ public class ZyLocationTagAddParam implements Serializable { ...@@ -50,25 +50,7 @@ public class ZyLocationTagAddParam implements Serializable {
.tagId(locationTag.getCode()) .tagId(locationTag.getCode())
.types(locationTag.getType()) .types(locationTag.getType())
.entityType(entityType) .entityType(entityType)
.card(locationTag.getImei())
.build(); .build();
} }
public static List<ZyLocationTagAddParam> transforms(
List<LocationTagImportExcel> locationTagImportExcels,
Integer orgId
) {
return locationTagImportExcels
.stream()
.map(locationTagImportExcel -> {
String entityType = StrUtil.equals(locationTagImportExcel.getType(), "BTT02") ? "car" : "staff";
return ZyLocationTagAddParam
.builder()
.entityType(entityType)
.orgId(orgId)
.tagId(locationTagImportExcel.getCode())
.types(LocationTag.Type.valueOf(locationTagImportExcel.getType()))
.build();
})
.collect(Collectors.toList());
}
} }
...@@ -67,7 +67,7 @@ public class ZyConfigProperties { ...@@ -67,7 +67,7 @@ public class ZyConfigProperties {
String api; String api;
String tenant; String tenant;
@Resource @Resource(name = "ZyConfigProxyClient")
ZyConfigProxyClient client; ZyConfigProxyClient client;
@Resource @Resource
...@@ -75,7 +75,7 @@ public class ZyConfigProperties { ...@@ -75,7 +75,7 @@ public class ZyConfigProperties {
@Data @Data
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
@Component @Component("ZyConfigProxyClient")
@ConfigurationProperties(prefix = "zy-config.proxy.client") @ConfigurationProperties(prefix = "zy-config.proxy.client")
public static class ZyConfigProxyClient { public static class ZyConfigProxyClient {
......
...@@ -2,13 +2,19 @@ ...@@ -2,13 +2,19 @@
package com.yiring.app.service.dept; package com.yiring.app.service.dept;
import com.yiring.app.param.dept.DepartmentAddParam; import com.yiring.app.param.dept.DepartmentAddParam;
import com.yiring.app.param.dept.DepartmentExportParam;
import com.yiring.app.param.dept.DepartmentFindParam; import com.yiring.app.param.dept.DepartmentFindParam;
import com.yiring.app.param.dept.DepartmentModifyParam;
import com.yiring.app.vo.dept.DepartmentInfoVo; import com.yiring.app.vo.dept.DepartmentInfoVo;
import com.yiring.app.vo.dept.DepartmentVo; import com.yiring.app.vo.dept.DepartmentVo;
import com.yiring.auth.domain.dept.Department;
import com.yiring.auth.param.IdsParam;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import java.util.HashMap;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 部门管理 * 部门管理
...@@ -18,17 +24,17 @@ import javax.servlet.http.HttpServletResponse; ...@@ -18,17 +24,17 @@ import javax.servlet.http.HttpServletResponse;
public interface DepartmentService { public interface DepartmentService {
/** /**
* 新增部门 * 新增部门
* @param param DepartmentAddParam * @param departmentAddParam DepartmentAddParam
* @return Result<String> * @return Result<String>
*/ */
Result<String> addDepartment(DepartmentAddParam param); Result<String> addDepartment(DepartmentAddParam departmentAddParam);
/** /**
* 查询树状图 * 查询树状图
* @param param DepartmentFindParam * @param departmentFindParam DepartmentFindParam
* @return Result<PageVo<DepartmentVo>> * @return Result<PageVo<DepartmentVo>>
*/ */
Result<PageVo<DepartmentVo>> findDepartmentTree(DepartmentFindParam param); Result<PageVo<DepartmentVo>> findDepartmentTree(DepartmentFindParam departmentFindParam);
/** /**
* 根据id查询详细信息 * 根据id查询详细信息
...@@ -39,10 +45,10 @@ public interface DepartmentService { ...@@ -39,10 +45,10 @@ public interface DepartmentService {
/** /**
* 导出部门 * 导出部门
* @param param DepartmentFindParam * @param departmentExportParam DepartmentFindParam
* @param response HttpServletResponse * @param response HttpServletResponse
*/ */
void exportDepartment(DepartmentFindParam param, HttpServletResponse response); void exportDepartment(DepartmentExportParam departmentExportParam, HttpServletResponse response);
/** /**
* 逻辑删除部门 * 逻辑删除部门
...@@ -52,9 +58,30 @@ public interface DepartmentService { ...@@ -52,9 +58,30 @@ public interface DepartmentService {
Result<String> deleteDepartment(IdParam idParam); Result<String> deleteDepartment(IdParam idParam);
/** /**
* 启用/停用 * 部门添加岗位
* @param idParam IdParam * @param idParam IdParam
* @param idsParam IdsParam
* @return Result<String> * @return Result<String>
*/ */
Result<String> stateDepartment(IdParam idParam); Result<String> deptBingPost(IdParam idParam, IdsParam idsParam);
/**
* 部门修改
* @param departmentModifyParam DepartmentModifyParam
* @return Result<String>
*/
Result<String> modifyDept(DepartmentModifyParam departmentModifyParam);
/**
* 导入部门
* @param file MultipartFile
* @return Result<String>
*/
Result<String> importDepartment(MultipartFile file);
/**
* 部门名称字符串形式
* @return HashMap<String, Department>
*/
HashMap<String, Department> getStringDepartmentHashMap();
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.location.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder;
import com.github.liaochong.myexcel.core.SaxExcelReader;
import com.yiring.app.domain.location.LocationTag;
import com.yiring.app.domain.location.LocationTagRepository;
import com.yiring.app.excel.location.LocationTagExportExcel;
import com.yiring.app.excel.location.LocationTagImportExcel;
import com.yiring.app.param.location.LocationTagAddParam;
import com.yiring.app.param.location.LocationTagDeleteParam;
import com.yiring.app.param.location.LocationTagFindParam;
import com.yiring.app.param.location.LocationTagModifyParam;
import com.yiring.app.param.location.zy.ZyLocationTagAddParam;
import com.yiring.app.service.location.LocationTagService;
import com.yiring.app.service.zy.ZyHttpService;
import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.common.core.Result;
import com.yiring.common.core.Status;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate;
import javax.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.jetbrains.annotations.NotNull;
import org.springframework.data.domain.*;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
/**
* 定位标签
* @author LJ-2204
* @date 2022/4/14
*/
@Transactional(rollbackFor = RuntimeException.class)
@Service
@Slf4j
public class LocationTagServiceImpl implements LocationTagService {
final Integer FACTORY_ID = 100;
@Resource
ZyHttpService zyHttpService;
@Resource
LocationTagRepository locationTagRepository;
@Override
public Result<String> addLocationTag(LocationTagAddParam param) {
if (hasLocationTagInfoByCode(param.getCode())) return Result.no(Status.BAD_REQUEST, "编号已存在");
LocationTag locationTag = param.transform();
ZyLocationTagAddParam zyLocationTagAddParam = ZyLocationTagAddParam.transform(locationTag, FACTORY_ID);
List<ZyLocationTagAddParam> of = ListUtil.of(zyLocationTagAddParam);
zyHttpService.post("/positionApi/api/tag/saveTag", of, 3000);
locationTagRepository.save(locationTag);
return Result.ok();
}
@Override
public Result<PageVo<LocationTagVo>> findLocationTagPage(LocationTagFindParam param, PageParam pageParam) {
Specification<LocationTag> specification = getLocationTagPageSpecification(param);
Sort sort = Sort.by(Sort.Order.desc(LocationTag.Fields.createTime));
if (ObjectUtil.isNotEmpty(pageParam.getPageNo()) && ObjectUtil.isNotEmpty(pageParam.getPageSize())) {
//分页
Pageable pageable = PageRequest.of(pageParam.getPageNo() - 1, pageParam.getPageSize());
Page<LocationTag> locationTags = locationTagRepository.findAll(specification, pageable);
List<LocationTagVo> locationTagVos = LocationTagVo.transforms(locationTags.getContent());
PageVo<LocationTagVo> page = PageVo.build(locationTagVos, locationTags.getTotalElements());
return Result.ok(page);
} else {
List<LocationTag> locationTags = locationTagRepository.findAll(specification, sort);
List<LocationTagVo> locationTagVos = LocationTagVo.transforms(locationTags);
PageVo<LocationTagVo> page = PageVo.build(locationTagVos, locationTagVos.size());
return Result.ok(page);
}
}
@Override
public Result<String> deleteLocationTag(LocationTagDeleteParam param) {
if (ObjectUtil.isEmpty(param)) return Result.no(Status.EXPECTATION_FAILED);
Map<Object, Object> map = MapUtil.createMap(HashMap.class);
map.put("tagIds", param.getCodes());
map.put("orgId", FACTORY_ID);
zyHttpService.delete("/positionApi/api/tag/delete", map, 3000);
locationTagRepository.deleteAllById(ListUtil.toList(param.getIds()));
return Result.ok();
}
@Override
public void exportLocationTagInfo(LocationTagFindParam param, HttpServletResponse response) {
Specification<LocationTag> specification = getLocationTagPageSpecification(param);
List<LocationTag> locationTags = locationTagRepository.findAll(specification);
List<LocationTagExportExcel> locationTagExportExcels = LocationTagExportExcel.transforms(locationTags);
try (
DefaultStreamExcelBuilder<LocationTagExportExcel> streamExcelBuilder = DefaultStreamExcelBuilder
.of(LocationTagExportExcel.class)
.threadPool(Executors.newFixedThreadPool(2))
.rowHeight(14)
.titleRowHeight(14)
.style(
"cell->vertical-align:center;text-align:center",
"title->vertical-align:center;text-align:center;font-weight:bold;font-family:等线"
)
.start()
) {
streamExcelBuilder.append(locationTagExportExcels);
String fileName = URLEncoder.encode("定位标签信息.xlsx", StandardCharsets.UTF_8);
response.setContentType("application/octet-stream");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
OutputStream out = response.getOutputStream();
Workbook workbook = streamExcelBuilder.fixedTitles().build();
workbook.write(out);
workbook.close();
out.flush();
out.close();
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new RuntimeException("导出岗位信息失败: " + e.getMessage());
}
}
@Override
public Result<String> importLocationTagInfo(MultipartFile file) {
if (file.isEmpty()) throw new RuntimeException("请选择文件");
List<LocationTagImportExcel> locationTagImportExcels;
try (InputStream inputStream = file.getInputStream()) {
locationTagImportExcels =
SaxExcelReader
.of(LocationTagImportExcel.class)
.rowFilter(row -> row.getRowNum() > 0)
.ignoreBlankRow()
.read(inputStream);
} catch (IOException e) {
log.info(e.getMessage());
throw new RuntimeException("文件导入异常");
}
List<LocationTag> locationTags;
locationTags =
locationTagImportExcels
.stream()
.filter(locationTagImportExcel -> !hasLocationTagInfoByCode(locationTagImportExcel.getCode()))
.map(LocationTagImportExcel::transform)
.collect(Collectors.toList());
List<ZyLocationTagAddParam> zyLocationTagAddParams = ZyLocationTagAddParam.transforms(
locationTagImportExcels,
FACTORY_ID
);
zyHttpService.post("/positionApi/api/tag/saveTag", zyLocationTagAddParams, 3000);
locationTagRepository.saveAll(locationTags);
return Result.ok();
}
@Override
public Result<String> modifyLocationTag(LocationTagModifyParam param) {
Optional<LocationTag> locationTagOptional = locationTagRepository.findById(param.getId());
if (locationTagOptional.isEmpty()) return Result.no(Status.BAD_REQUEST, "被修改的数据不存在");
LocationTag locationTag = locationTagOptional.get();
if (!StrUtil.equals(locationTag.getCode(), param.getCode())) {
if (hasLocationTagInfoByCode(param.getCode())) return Result.no(Status.BAD_REQUEST, "编号已存在");
}
locationTag = param.transform();
locationTag.setId(param.getId());
locationTagRepository.save(locationTag);
return Result.ok();
}
private boolean hasLocationTagInfoByCode(String code) {
LocationTag locationTag = LocationTag.builder().code(code).build();
return locationTagRepository.count(Example.of(locationTag)) > 0;
}
@NotNull
private Specification<LocationTag> getLocationTagPageSpecification(LocationTagFindParam param) {
return (root, cq, cb) -> {
List<Predicate> predicates = ListUtil.toList();
if (StrUtil.isNotEmpty(param.getCode())) {
predicates.add(cb.like(root.get(LocationTag.Fields.code), "%" + param.getCode() + "%"));
}
if (ObjectUtil.isNotEmpty(param.getType())) {
predicates.add(cb.equal(root.get(LocationTag.Fields.type), param.getType()));
}
if (ObjectUtil.isNotEmpty(param.getSilent())) {
predicates.add(cb.equal(root.get(LocationTag.Fields.silent), param.getSilent()));
}
Order order = cb.desc(root.get(LocationTag.Fields.createTime));
return cq.orderBy(order).where(predicates.toArray(new Predicate[0])).getRestriction();
};
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.location; package com.yiring.app.service.location.tag;
import com.yiring.app.param.location.LocationTagAddParam; import com.yiring.app.param.location.tag.*;
import com.yiring.app.param.location.LocationTagDeleteParam; import com.yiring.app.vo.location.tag.LocationTagIndexVo;
import com.yiring.app.param.location.LocationTagFindParam; import com.yiring.app.vo.location.tag.LocationTagVo;
import com.yiring.app.param.location.LocationTagModifyParam;
import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IndexParam;
import com.yiring.common.param.PageParam; import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -20,31 +19,31 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -20,31 +19,31 @@ import org.springframework.web.multipart.MultipartFile;
public interface LocationTagService { public interface LocationTagService {
/** /**
* 新增定位标签 * 新增定位标签
* @param param 入参 * @param locationTagAddParam LocationTagAddParam
* @return Result<String> * @return Result<String>
*/ */
Result<String> addLocationTag(LocationTagAddParam param); Result<String> addLocationTag(LocationTagAddParam locationTagAddParam);
/** /**
* 分页查询 * 分页查询
* @param param 入参 * @param locationTagFindParam LocationTagFindParam
* @return Result<PageVo<LocationTagVo>> * @return Result<PageVo<LocationTagVo>>
*/ */
Result<PageVo<LocationTagVo>> findLocationTagPage(LocationTagFindParam param, PageParam pageParam); Result<PageVo<LocationTagVo>> findLocationTagPage(LocationTagFindParam locationTagFindParam, PageParam pageParam);
/** /**
* 销毁定位标签 * 销毁定位标签
* @param param 入参 * @param locationTagDeleteParam 入参
* @return Result<String> * @return Result<String>
*/ */
Result<String> deleteLocationTag(LocationTagDeleteParam param); Result<String> deleteLocationTag(LocationTagDeleteParam locationTagDeleteParam);
/** /**
* 导出定位标签 * 导出定位标签
* @param param 入参 * @param locationTagExportParam 入参
* @param response 响应信息 * @param response 响应信息
*/ */
void exportLocationTagInfo(LocationTagFindParam param, HttpServletResponse response); void exportLocationTagInfo(LocationTagExportParam locationTagExportParam, HttpServletResponse response);
/** /**
* 导入定位标签 * 导入定位标签
...@@ -53,10 +52,17 @@ public interface LocationTagService { ...@@ -53,10 +52,17 @@ public interface LocationTagService {
*/ */
Result<String> importLocationTagInfo(MultipartFile file); Result<String> importLocationTagInfo(MultipartFile file);
/** /* *//**
* 修改定位标签 * 修改定位标签
* @param param 入参 * @param locationTagModifyParam 入参
* @return Result<String> * @return Result<String>
*//*
Result<String> modifyLocationTag(LocationTagModifyParam locationTagModifyParam);*/
/**
* 检索标签
* @param indexParam IndexParam
* @return Result<PageVo<LocationTagIndexVo>>
*/ */
Result<String> modifyLocationTag(LocationTagModifyParam param); Result<PageVo<LocationTagIndexVo>> indexLocationTag(IndexParam indexParam);
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.location.tag;
import com.yiring.app.param.location.tag.LocationTagTypeFindParam;
import com.yiring.app.param.location.tag.LocationTagTypeSendParam;
import com.yiring.app.vo.location.tag.LocationTagTypeVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
/**
* 标签分配
*
* @author LJ-2204
* @date 2022/4/27
*/
public interface LocationTagTypeService {
/**
* 分页查询
* @param locationTagTypeFindParam LocationTagTypeFindParam
* @param pageParam PageParam
* @return Result<PageVo<LocationTagTypeVo>>
*/
Result<PageVo<LocationTagTypeVo>> findLocationTagType(
LocationTagTypeFindParam locationTagTypeFindParam,
PageParam pageParam
);
/**
* 批量分配内部/外部
* @param locationtagtypeSendParam LocationTagTypeSendParam
* @return Result<String>
*/
Result<String> sendLocationTagType(LocationTagTypeSendParam locationtagtypeSendParam);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.location.tag.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.yiring.app.domain.location.LocationTag;
import com.yiring.app.domain.location.LocationTagRepository;
import com.yiring.app.feign.zy.location.tag.LocationTagTypeClient;
import com.yiring.app.param.location.tag.LocationTagTypeFindParam;
import com.yiring.app.param.location.tag.LocationTagTypeSendParam;
import com.yiring.app.param.zy.location.tag.ZyLocationTagTypeSendParam;
import com.yiring.app.service.location.tag.LocationTagTypeService;
import com.yiring.app.util.zy.ZyUtil;
import com.yiring.app.vo.location.tag.LocationTagTypeVo;
import com.yiring.common.core.Result;
import com.yiring.common.domain.BasicEntity;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 部门信息控制器
*
* @author LJ-2204
* @date 2022/4/27
*/
@Transactional(rollbackFor = RuntimeException.class)
@Service
@Slf4j
public class LocationTagTypeServiceImpl implements LocationTagTypeService {
final Integer FACTORY_ID = 100;
@Resource
LocationTagRepository locationTagRepository;
@Resource
LocationTagTypeClient locationTagTypeClient;
@Override
public Result<PageVo<LocationTagTypeVo>> findLocationTagType(
LocationTagTypeFindParam locationTagTypeFindParam,
PageParam pageParam
) {
Specification<LocationTag> specification = (root, cq, cb) -> {
List<Predicate> predicates = ListUtil.toList();
if (StrUtil.isNotEmpty(locationTagTypeFindParam.getCode())) {
predicates.add(
cb.like(root.get(LocationTag.Fields.code), "%" + locationTagTypeFindParam.getCode() + "%")
);
}
if (ObjectUtil.isNotEmpty(locationTagTypeFindParam.getCategory())) {
predicates.add(cb.equal(root.get(LocationTag.Fields.category), locationTagTypeFindParam.getCategory()));
}
Order order = cb.desc(root.get(LocationTag.Fields.createTime));
return cq.orderBy(order).where(predicates.toArray(new Predicate[0])).getRestriction();
};
List<LocationTag> locationTags = locationTagRepository.findAll(specification);
List<LocationTagTypeVo> locationTagTypeVos = locationTags
.stream()
.map(LocationTagTypeVo::transform)
.collect(Collectors.toList());
PageVo<LocationTagTypeVo> pageVo = PageVo.build(locationTagTypeVos, locationTagTypeVos.size());
return Result.ok(pageVo);
}
@Override
public Result<String> sendLocationTagType(LocationTagTypeSendParam locationtagtypeSendParam) {
ZyLocationTagTypeSendParam zyLocationTagTypeSendParam = ZyLocationTagTypeSendParam
.builder()
.orgId(FACTORY_ID)
.category(locationtagtypeSendParam.getCategory())
.build();
String[] split = locationtagtypeSendParam.getIds().split(",");
ArrayList<Long> ids = ListUtil.toList();
ArrayList<String> list = ListUtil.toList(split);
for (String id : list) {
Optional<LocationTag> locationTagOptional = locationTagRepository.findById(Convert.toLong(id));
locationTagOptional.ifPresent(locationTag -> ids.add(locationTag.getLinkId()));
}
zyLocationTagTypeSendParam.setIds(Convert.toLongArray(ids));
JSONObject jsonObject = locationTagTypeClient.updateEntityType(
JSONUtil.toJsonStr(zyLocationTagTypeSendParam),
ZyUtil.manageLogin()
);
if (!ObjectUtil.equals(jsonObject.get("code"), 200)) {
throw new RuntimeException(StrUtil.toString(jsonObject.get("msg")));
}
Specification<LocationTag> specification = (root, cq, cb) -> {
List<Predicate> predicates = ListUtil.toList();
if (StrUtil.isNotEmpty(locationtagtypeSendParam.getIds())) {
CriteriaBuilder.In<Object> in = cb.in(root.get(BasicEntity.Fields.id));
for (String id : list) in.value(Convert.toLong(id));
predicates.add(cb.and(in));
}
Order order = cb.desc(root.get(LocationTag.Fields.createTime));
return cq.orderBy(order).where(predicates.toArray(new Predicate[0])).getRestriction();
};
List<LocationTag> locationTags = locationTagRepository.findAll(specification);
locationTags =
locationTags
.stream()
.peek(locationTag -> locationTag.setCategory(locationtagtypeSendParam.getCategory()))
.collect(Collectors.toList());
locationTagRepository.saveAll(locationTags);
return Result.ok();
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.post; package com.yiring.app.service.post;
import com.yiring.app.param.post.PostFindParam; import com.yiring.app.param.post.*;
import com.yiring.app.param.post.PostParam; import com.yiring.app.vo.post.PostIndexVo;
import com.yiring.app.vo.post.PostInfoVo;
import com.yiring.app.vo.post.PostVo; import com.yiring.app.vo.post.PostVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.param.PageParam; import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -18,57 +20,58 @@ import javax.servlet.http.HttpServletResponse; ...@@ -18,57 +20,58 @@ import javax.servlet.http.HttpServletResponse;
public interface PostService { public interface PostService {
/** /**
* 新增职位信息 * 新增职位信息
* @param postParam 入参 * @param postAddParam PostAddParam
* @return Result<String> * @return Result<String>
*/ */
Result<String> addPost(PostParam postParam); Result<String> addPost(PostAddParam postAddParam);
/** /**
* 修改职位信息 * 修改职位信息
* @param postParam 入参 * @param postModifyParam PostModifyParam
* @param idParam id
* @return Result<String> * @return Result<String>
*/ */
Result<String> modifyPost(PostParam postParam, IdParam idParam); Result<String> modifyPost(PostModifyParam postModifyParam);
/** /**
* 销毁职位信息 * 销毁职位信息
* @param idParam id * @param idParam IdParam
* @return Result<String> * @return Result<String>
*/ */
Result<String> deletePost(IdParam idParam); Result<String> deletePost(IdParam idParam);
/** /**
* 职位信息分页 * 职位信息分页
* @param param 入参 * @param postFindParam PostFindParam
* @param pageParam PageParam
* @return Result<PageVo<PostVo>> * @return Result<PageVo<PostVo>>
*/ */
Result<PageVo<PostVo>> findPostPage(PostFindParam param, PageParam pageParam); Result<PageVo<PostVo>> findPostPage(PostFindParam postFindParam, PageParam pageParam);
/** /**
* 详细信息查询 * 详细信息查询
* @param idParam id * @param idParam IdParam
* @return Result<PostVo> * @return Result<PostInfoVo>
*/ */
Result<PostVo> findPostById(IdParam idParam); Result<PostInfoVo> findPostById(IdParam idParam);
/** /**
* 根据名称判断是否存在职业信息 * 根据名称判断是否存在职业信息
* @param name 职业名称 * @param name String
* @return T/F * @return boolean
*/ */
boolean hasPostInfo(String name); boolean hasPostInfo(String name);
/** /**
* 导出职位信息 * 导出职位信息
* @param param 入参 * @param postExportParam PostExportParam
* @param response 响应信息 * @param response HttpServletResponse
*/ */
void exportPostInfo(PostFindParam param, HttpServletResponse response); void exportPostInfo(PostExportParam postExportParam, HttpServletResponse response);
/** /**
* 下拉菜单 * 职位检索
* @return Result<PageVo<PostVo>> * @param indexParam IndexParam
* @return Result<PageVo<PostIndexVo>>
*/ */
Result<PageVo<PostVo>> selectPost(); Result<PageVo<PostIndexVo>> indexPost(IndexParam indexParam);
} }
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.user; package com.yiring.app.service.user;
import com.yiring.app.param.user.UserBingTagParam; import com.yiring.app.param.user.*;
import com.yiring.app.param.user.UserFindParam; import com.yiring.app.vo.user.UserInfoVo;
import com.yiring.app.vo.user.UserVo; import com.yiring.app.vo.user.UserVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.param.PageParam; import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 用户 * 用户
...@@ -18,25 +20,25 @@ import javax.servlet.http.HttpServletResponse; ...@@ -18,25 +20,25 @@ import javax.servlet.http.HttpServletResponse;
public interface UserService { public interface UserService {
/** /**
* 表格查询 * 表格查询
* @param param UserByNameParam * @param userFindParam UserByNameParam
* @param pageParam PageParam * @param pageParam PageParam
* @return Result<PageVo<UserAutoVo>> * @return Result<PageVo<UserAutoVo>>
*/ */
Result<PageVo<UserVo>> findUserPage(UserFindParam param, PageParam pageParam); Result<PageVo<UserVo>> findUserPage(UserFindParam userFindParam, PageParam pageParam);
/** /**
* 用户详细信息 * 用户详细信息
* @param idParam IdParam * @param idParam IdParam
* @return Result<UserVo> * @return Result<UserVo>
*/ */
Result<UserVo> findUserById(IdParam idParam); Result<UserInfoVo> findUserById(IdParam idParam);
/** /**
* 用户绑定标签 * 用户绑定标签
* @param param UserBingTagParam * @param userBingTagParam UserBingTagParam
* @return Result<String> * @return Result<String>
*/ */
Result<String> userBingTag(UserBingTagParam param); Result<String> userBingTag(UserBingTagParam userBingTagParam);
/** /**
* 收卡 * 收卡
...@@ -53,15 +55,44 @@ public interface UserService { ...@@ -53,15 +55,44 @@ public interface UserService {
Result<String> deleteUser(IdParam idParam); Result<String> deleteUser(IdParam idParam);
/** /**
* 下拉菜单 * 导出用户
* @return Result<PageVo<UserVo>> * @param userFindParam UserFindParam
* @param response HttpServletResponse
*/ */
Result<PageVo<UserVo>> selectUser(); void exportUser(UserFindParam userFindParam, HttpServletResponse response);
/** /**
* 导出用户 * 启用/停用
* @param param UserFindParam * @param idParam IdParam
* @param response HttpServletResponse * @return Result<String>
*/
Result<String> stateUser(IdParam idParam);
/**
* 修改用户
* @param userModifyParam UserModifyParam
* @return Result<String>
*/
Result<String> modifyUser(UserModifyParam userModifyParam);
/**
* 新增用户
* @param userAddParam UserAddParam
* @return Result<String>
*/
Result<String> addUser(UserAddParam userAddParam);
/**
* 导入
* @param file MultipartFile
* @return Result<String>
*/
Result<String> importUser(MultipartFile file);
/**
* 用户索引
* @param indexParam IndexParam
* @return Result<PageVo<UserVo>>
*/ */
void exportUser(UserFindParam param, HttpServletResponse response); Result<PageVo<UserVo>> indexUser(IndexParam indexParam);
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.zy;
import com.yiring.common.core.Result;
import java.io.Serializable;
import java.util.concurrent.CompletableFuture;
/**
* ZyHttp请求
* @author LJ-2204
* @date 2022/4/18
*/
public interface ZyHttpService {
/**
* get请求
* @param urlString 路径
* @param obj 参数
* @param timeout 请求时长
* @return json
*/
CompletableFuture<Result<Serializable>> get(String urlString, Object obj, int timeout);
/**
* post请求
* @param urlString 路径
* @param obj 参数
* @param timeout 请求时长
* @return json
*/
CompletableFuture<Result<Serializable>> post(String urlString, Object obj, int timeout);
/**
* put请求
* @param urlString 路径
* @param obj 参数
* @param timeout 请求时长
* @return json
*/
CompletableFuture<Result<Serializable>> put(String urlString, Object obj, int timeout);
/**
* delete请求
* @param urlString 路径
* @param obj 参数
* @param timeout 请求时长
* @return json
*/
CompletableFuture<Result<Serializable>> delete(String urlString, Object obj, int timeout);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.zy.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.yiring.app.service.zy.ZyHttpService;
import com.yiring.auth.util.ZyUtil;
import com.yiring.common.core.Result;
import java.io.Serializable;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* ZyHttp请求
* @author LJ-2204
* @date 2022/4/18
*/
@Transactional(rollbackFor = RuntimeException.class)
@Service
@Slf4j
public class ZyHttpServiceImpl implements ZyHttpService {
public final String TOKEN_TYPE = "bearer ";
public final String URL_PREFIX = "http://project.yz-online.com:789";
@Override
@Async("httpThreadPool")
public CompletableFuture<Result<Serializable>> get(String urlString, Object obj, int timeout) {
String json = JSONUtil.toJsonStr(obj);
String token = ZyUtil.login();
String body = HttpRequest
.get(URL_PREFIX + urlString)
.header(Header.AUTHORIZATION, TOKEN_TYPE + token)
.header(Header.CONTENT_TYPE, "application/json")
.body(json)
.timeout(timeout)
.execute()
.body();
return CompletableFuture.completedFuture(getResult(body));
}
@Override
@Async("httpThreadPool")
public CompletableFuture<Result<Serializable>> post(String urlString, Object obj, int timeout) {
String json = JSONUtil.toJsonStr(obj);
String token = ZyUtil.login();
String body = HttpRequest
.post(URL_PREFIX + urlString)
.header(Header.AUTHORIZATION, TOKEN_TYPE + token)
.header(Header.CONTENT_TYPE, "application/json")
.body(json)
.timeout(timeout)
.execute()
.body();
return CompletableFuture.completedFuture(getResult(body));
}
@Override
@Async("httpThreadPool")
public CompletableFuture<Result<Serializable>> put(String urlString, Object obj, int timeout) {
String json = JSONUtil.toJsonStr(obj);
String token = ZyUtil.login();
String body = HttpRequest
.put(URL_PREFIX + urlString)
.header(Header.AUTHORIZATION, TOKEN_TYPE + token)
.header(Header.CONTENT_TYPE, "application/json")
.body(json)
.timeout(timeout)
.execute()
.body();
return CompletableFuture.completedFuture(getResult(body));
}
@Override
@Async("httpThreadPool")
public CompletableFuture<Result<Serializable>> delete(String urlString, Object obj, int timeout) {
String json = JSONUtil.toJsonStr(obj);
String token = ZyUtil.login();
String body = HttpRequest
.delete(URL_PREFIX + urlString)
.header(Header.AUTHORIZATION, TOKEN_TYPE + token)
.header(Header.CONTENT_TYPE, "application/x-www-form-urlencoded")
.body(json)
.timeout(timeout)
.execute()
.body();
return CompletableFuture.completedFuture(getResult(body));
}
/**
* 返回类型转换
* @param body json
* @return Result
*/
private static Result<Serializable> getResult(String body) {
String data = null;
Map map = JSONUtil.toBean(body, Map.class);
Integer code = Convert.toInt(map.get("code"));
String msg = Convert.toStr(map.get("msg"));
if (ObjectUtil.isNotEmpty(map.get("data"))) {
data = Convert.toStr(map.get("data"));
}
return Result.builder().status(code).message(msg).body(data).build();
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.util.zy;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.yiring.app.rabbit.config.ZyConfigProperties;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import lombok.experimental.UtilityClass;
import org.springframework.data.redis.core.RedisTemplate;
/**
* 真源授权工具
* @author LJ-2204
* @date 2022/4/15
*/
@UtilityClass
public class ZyUtil {
RedisTemplate<String, Object> redisTemplate;
ZyConfigProperties.ZyConfigOpen zyConfigOpen;
ZyConfigProperties.ZyConfigProxy zyConfigProxy;
static {
redisTemplate = SpringUtil.getBean("redisTemplate");
zyConfigOpen = SpringUtil.getBean("zyConfigProperties.ZyConfigOpen");
zyConfigProxy = SpringUtil.getBean("zyConfigProperties.ZyConfigProxy");
}
public final Integer ORG_ID = 100;
public final String OPEN_KEY = "zy_open_token";
// public final String CLIENT_KEY = "zy_client_token";
// public final String MANAGE_KEY = "zy_manage_token";
/**
* 获取openToken
* @return token
*/
public static String openLogin() {
Object obj = redisTemplate.opsForValue().get(OPEN_KEY);
if (ObjectUtil.isNotEmpty(obj)) {
return String.valueOf(obj);
}
Map<String, Object> map = MapUtil.createMap(HashMap.class);
map.put("client_id", zyConfigOpen.getClientId());
map.put("client_secret", zyConfigOpen.getClientSecret());
map.put("grant_type", zyConfigOpen.getGrantType());
String json = HttpUtil.get(zyConfigOpen.getApi() + "/oauth/token", map);
JSONObject jsonObject = JSONUtil.parseObj(json);
String access_token = Convert.toStr(jsonObject.get("access_token"));
Integer expires_in = Convert.toInt(jsonObject.get("expires_in"));
redisTemplate.opsForValue().set(OPEN_KEY, access_token, expires_in, TimeUnit.SECONDS);
return access_token;
}
/**
* 获取应用平台token
* @return token
*/
public static String clientLogin() {
// Object obj = redisTemplate.opsForValue().get(CLIENT_KEY);
// if (ObjectUtil.isNotEmpty(obj)) {
// return String.valueOf(obj);
// }
Map<String, Object> map = MapUtil.createMap(HashMap.class);
map.put("orgId", ORG_ID);
map.put("tenantId", zyConfigProxy.getTenant());
map.put("username", zyConfigProxy.getClient().getUsername());
map.put("password", zyConfigProxy.getClient().getPassword());
String json = HttpRequest
.post(zyConfigProxy.getApi() + "/position/login")
.header(Header.CONTENT_TYPE, "application/json")
.body(JSONUtil.toJsonStr(map))
.execute()
.body();
JSONObject jsonObject = JSONUtil.parseObj(json);
// String token = Convert.toStr(jsonObject.get("token"));
// redisTemplate.opsForValue().set(CLIENT_KEY, token, 1200, TimeUnit.SECONDS);
return Convert.toStr(jsonObject.get("token"));
}
/**
* 获取管理平台token
* @return token
*/
public static String manageLogin() {
// Object obj = redisTemplate.opsForValue().get(MANAGE_KEY);
// if (ObjectUtil.isNotEmpty(obj)) {
// return String.valueOf(obj);
// }
Map<String, Object> map = MapUtil.createMap(HashMap.class);
map.put("orgId", ORG_ID);
map.put("tenantId", zyConfigProxy.getTenant());
map.put("username", zyConfigProxy.getManage().getUsername());
map.put("password", zyConfigProxy.getManage().getPassword());
String json = HttpRequest
.post(zyConfigProxy.getApi() + "/position/login")
.header(Header.CONTENT_TYPE, "application/json")
.body(JSONUtil.toJsonStr(map))
.execute()
.body();
JSONObject jsonObject = JSONUtil.parseObj(json);
// String token = Convert.toStr(jsonObject.get("token"));
// redisTemplate.opsForValue().set(MANAGE_KEY, token, 1200, TimeUnit.SECONDS);
return Convert.toStr(jsonObject.get("token"));
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.dept; package com.yiring.app.vo.dept;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.vo.user.UserVo; import com.yiring.app.vo.user.UserVo;
import com.yiring.auth.domain.dept.Department; import com.yiring.auth.domain.dept.Department;
import com.yiring.auth.domain.post.Post; import com.yiring.auth.domain.post.Post;
...@@ -41,6 +43,7 @@ public class DepartmentInfoVo implements Serializable { ...@@ -41,6 +43,7 @@ public class DepartmentInfoVo implements Serializable {
@ApiModelProperty(value = "是否启用", example = "T/F") @ApiModelProperty(value = "是否启用", example = "T/F")
Boolean enable; Boolean enable;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "上级部门", example = "0根目录") @ApiModelProperty(value = "上级部门", example = "0根目录")
Long pid; Long pid;
...@@ -61,7 +64,7 @@ public class DepartmentInfoVo implements Serializable { ...@@ -61,7 +64,7 @@ public class DepartmentInfoVo implements Serializable {
return DepartmentInfoVo return DepartmentInfoVo
.builder() .builder()
.name(department.getName()) .name(department.getName())
.userVo(UserVo.transform(department.getLeader())) .userVo(UserVo.transformDept(department.getLeader()))
.enable(department.getEnable()) .enable(department.getEnable())
.posts(department.getPosts()) .posts(department.getPosts())
.pid(department.getPid()) .pid(department.getPid())
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.dept; package com.yiring.app.vo.dept;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.vo.user.UserVo; import com.yiring.app.vo.user.UserVo;
import com.yiring.auth.domain.dept.Department; import com.yiring.auth.domain.dept.Department;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
...@@ -9,7 +12,6 @@ import java.io.Serial; ...@@ -9,7 +12,6 @@ import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -31,9 +33,14 @@ public class DepartmentVo implements Serializable { ...@@ -31,9 +33,14 @@ public class DepartmentVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = -8193039102015929156L; private static final long serialVersionUID = -8193039102015929156L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键", example = "111") @ApiModelProperty(value = "主键", example = "111")
Long id; Long id;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "上级部门", example = "0根目录")
Long pid;
@ApiModelProperty(value = "部门名称", example = "研发部") @ApiModelProperty(value = "部门名称", example = "研发部")
String name; String name;
...@@ -43,9 +50,6 @@ public class DepartmentVo implements Serializable { ...@@ -43,9 +50,6 @@ public class DepartmentVo implements Serializable {
@ApiModelProperty(value = "是否启用", example = "T/F") @ApiModelProperty(value = "是否启用", example = "T/F")
Boolean enable; Boolean enable;
@ApiModelProperty(value = "上级部门", example = "0根目录")
Long pid;
@ApiModelProperty(value = "上级部门名称", example = "前端") @ApiModelProperty(value = "上级部门名称", example = "前端")
String pName; String pName;
...@@ -58,21 +62,19 @@ public class DepartmentVo implements Serializable { ...@@ -58,21 +62,19 @@ public class DepartmentVo implements Serializable {
@ApiModelProperty(value = "子节点") @ApiModelProperty(value = "子节点")
List<DepartmentVo> childList; List<DepartmentVo> childList;
public static List<DepartmentVo> transforms(List<Department> departments) { public static DepartmentVo transform(Department department) {
return departments DepartmentVo departmentVo = DepartmentVo
.stream() .builder()
.map(department -> .id(department.getId())
DepartmentVo .name(department.getName())
.builder() .enable(department.getEnable())
.id(department.getId()) .pid(department.getPid())
.name(department.getName()) .updateTime(department.getUpdateTime())
.leader(UserVo.transform(department.getLeader())) .createTime(department.getCreateTime())
.enable(department.getEnable()) .build();
.pid(department.getPid()) if (ObjectUtil.isNotEmpty(department.getLeader())) {
.updateTime(department.getUpdateTime()) departmentVo.setLeader(UserVo.transformDept(department.getLeader()));
.createTime(department.getCreateTime()) }
.build() return departmentVo;
)
.collect(Collectors.toList());
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.location.tag;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.domain.location.LocationTag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 定位索引
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("LocationTagIndexVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class LocationTagIndexVo implements Serializable {
@Serial
private static final long serialVersionUID = -1459205162627200071L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键", example = "188354391834")
Long id;
@ApiModelProperty(value = "编号", example = "BTT88888888")
String code;
@ApiModelProperty(value = "标签型号", example = "BTT01")
LocationTag.Type type;
@ApiModelProperty(value = "是否启用", example = "0/1")
Boolean used;
public static LocationTagIndexVo transform(LocationTag locationTag) {
return LocationTagIndexVo
.builder()
.id(locationTag.getId())
.code(locationTag.getCode())
.type(locationTag.getType())
.used(locationTag.getUsed())
.build();
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.location.tag;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.domain.location.LocationTag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 标签分配
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("LocationTagTypeVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class LocationTagTypeVo implements Serializable {
@Serial
private static final long serialVersionUID = -5223102796143763942L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键", example = "188354391834")
Long id;
@ApiModelProperty(value = "编号", example = "BTT88888888")
String code;
@ApiModelProperty(value = "标签型号", example = "BTT01")
LocationTag.Type type;
@ApiModelProperty(value = "标签类型", example = "人员")
String tagType;
@ApiModelProperty(value = "类型", example = "类型(1:内部/2:访客/3:承包商)")
Integer category;
public static LocationTagTypeVo transform(LocationTag locationTag) {
String entityType = StrUtil.equals(locationTag.getType().name(), "BTT02") ? "car" : "staff";
return LocationTagTypeVo
.builder()
.id(locationTag.getId())
.code(locationTag.getCode())
.type(locationTag.getType())
.tagType(entityType)
.category(locationTag.getCategory())
.build();
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.location; package com.yiring.app.vo.location.tag;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
...@@ -9,8 +9,6 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -9,8 +9,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -44,30 +42,25 @@ public class LocationTagVo implements Serializable { ...@@ -44,30 +42,25 @@ public class LocationTagVo implements Serializable {
@ApiModelProperty(value = "状态", example = "静止") @ApiModelProperty(value = "状态", example = "静止")
Boolean silent; Boolean silent;
@ApiModelProperty(value = "电量", example = "1")
Integer volt;
@ApiModelProperty(value = "imei 设备编码", example = "88888888") @ApiModelProperty(value = "imei 设备编码", example = "88888888")
String imei; String imei;
@ApiModelProperty(value = "电量", example = "1")
Integer volt;
@ApiModelProperty(value = "最近更新时间", example = "2022-01-01 00:00:00") @ApiModelProperty(value = "最近更新时间", example = "2022-01-01 00:00:00")
LocalDateTime updateTime; LocalDateTime updateTime;
public static List<LocationTagVo> transforms(List<LocationTag> locationTags) { public static LocationTagVo transform(LocationTag locationTag) {
return locationTags return LocationTagVo
.stream() .builder()
.map(locationTag -> .id(locationTag.getId())
LocationTagVo .code(locationTag.getCode())
.builder() .type(locationTag.getType())
.id(locationTag.getId()) .silent(locationTag.getSilent())
.code(locationTag.getCode()) .volt(locationTag.getVolt())
.type(locationTag.getType()) .imei(locationTag.getImei())
.silent(locationTag.getSilent()) .updateTime(locationTag.getUpdateTime())
.volt(locationTag.getVolt()) .build();
.imei(locationTag.getImei())
.updateTime(locationTag.getUpdateTime())
.build()
)
.collect(Collectors.toList());
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.post;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.auth.domain.post.Post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 职位索引视图
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("PostIndexVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PostIndexVo implements Serializable {
@Serial
private static final long serialVersionUID = 6787422359697016766L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键", example = "1")
Long id;
@ApiModelProperty(value = "名称", example = "Java")
String name;
public static PostIndexVo transform(Post post) {
return PostIndexVo.builder().id(post.getId()).name(post.getName()).build();
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.post;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.auth.domain.post.Post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 职位详细视图
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("PostInfoVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class PostInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = -8256863200798776816L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键", example = "1")
Long id;
@ApiModelProperty(value = "名称", example = "Java")
String name;
@ApiModelProperty(value = "描述", example = "描述")
String describe;
@ApiModelProperty(value = "创建时间", example = "创建时间")
LocalDateTime createTime;
@ApiModelProperty(value = "更新时间", example = "更新时间")
LocalDateTime updateTime;
@ApiModelProperty(value = "职位状态", example = "true")
Boolean enable;
public static PostInfoVo transform(Post post) {
return PostInfoVo
.builder()
.id(post.getId())
.name(post.getName())
.describe(post.getDescribe())
.enable(post.getEnable())
.createTime(post.getCreateTime())
.updateTime(post.getUpdateTime())
.build();
}
}
...@@ -9,8 +9,6 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -9,8 +9,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -38,16 +36,13 @@ public class PostVo implements Serializable { ...@@ -38,16 +36,13 @@ public class PostVo implements Serializable {
@ApiModelProperty(value = "名称", example = "Java") @ApiModelProperty(value = "名称", example = "Java")
String name; String name;
@ApiModelProperty(value = "描述", example = "描述")
String describe;
@ApiModelProperty(value = "创建时间", example = "创建时间") @ApiModelProperty(value = "创建时间", example = "创建时间")
LocalDateTime createTime; LocalDateTime createTime;
@ApiModelProperty(value = "更新时间", example = "更新时间") @ApiModelProperty(value = "描述", example = "描述")
LocalDateTime updateTime; String describe;
@ApiModelProperty(value = "是否启用", example = "true") @ApiModelProperty(value = "职位状态", example = "true")
Boolean enable; Boolean enable;
public static PostVo transform(Post post) { public static PostVo transform(Post post) {
...@@ -55,27 +50,9 @@ public class PostVo implements Serializable { ...@@ -55,27 +50,9 @@ public class PostVo implements Serializable {
.builder() .builder()
.id(post.getId()) .id(post.getId())
.name(post.getName()) .name(post.getName())
.describe(post.getDescribe())
.enable(post.getEnable()) .enable(post.getEnable())
.describe(post.getDescribe())
.createTime(post.getCreateTime()) .createTime(post.getCreateTime())
.updateTime(post.getUpdateTime())
.build(); .build();
} }
public static List<PostVo> transforms(List<Post> posts) {
return posts
.stream()
.map(post ->
PostVo
.builder()
.id(post.getId())
.name(post.getName())
.describe(post.getDescribe())
.enable(post.getEnable())
.createTime(post.getCreateTime())
.updateTime(post.getUpdateTime())
.build()
)
.collect(Collectors.toList());
}
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.user;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.auth.domain.user.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 用户详细信息模型
*
* @author LJ-2204
* @date 2022/4/27
*/
@ApiModel("UserInfoVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = -1040199557851348068L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "主键", example = "1")
Long id;
@ApiModelProperty(value = "真实姓名", example = "超级用户")
String realName;
@ApiModelProperty(value = "工号", example = "8888888")
String uuid;
@ApiModelProperty(value = "类型", example = "员工")
User.Type type;
@ApiModelProperty(value = "部门", example = "系统管理员")
String department;
@ApiModelProperty(value = "手机号", example = "13012345678")
String mobile;
@ApiModelProperty(value = "职位", example = "系统管理员")
String post;
@ApiModelProperty(value = "邮箱", example = "developer@yiring.com")
String email;
@ApiModelProperty(value = "头像", example = "https://s1.ax1x.com/2022/03/30/qggJH0.jpg")
String avatar;
@ApiModelProperty(value = "是否启用", example = "true")
Boolean enabled;
@ApiModelProperty(value = "是否删除", example = "false")
Boolean deleted;
@ApiModelProperty(value = "是否特殊", example = "false")
Boolean isSpecial;
@ApiModelProperty(value = "性别", example = "false")
Boolean gender;
@ApiModelProperty(value = "创建时间", example = "2022-01-01 00:00:00")
LocalDateTime createTime;
@ApiModelProperty(value = "更新时间", example = "2022-01-01 00:00:00")
LocalDateTime updateTime;
public static UserInfoVo transform(User user) {
return UserInfoVo
.builder()
.id(user.getId())
.realName(user.getRealName())
.uuid(user.getUuid())
.type(user.getType())
.department(user.getDepartment().getName())
.mobile(user.getMobile())
.post(user.getPost().getName())
.email(user.getEmail())
.avatar(user.getAvatar())
.enabled(user.getEnabled())
.deleted(user.getDeleted())
.isSpecial(user.getIsSpecial())
.gender(user.getGender())
.createTime(user.getCreateTime())
.updateTime(user.getUpdateTime())
.build();
}
}
...@@ -8,9 +8,6 @@ import io.swagger.annotations.ApiModel; ...@@ -8,9 +8,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -47,86 +44,51 @@ public class UserVo implements Serializable { ...@@ -47,86 +44,51 @@ public class UserVo implements Serializable {
@ApiModelProperty(value = "部门", example = "系统管理员") @ApiModelProperty(value = "部门", example = "系统管理员")
String department; String department;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "部门id", example = "200")
Long departmentId;
@ApiModelProperty(value = "手机号", example = "13012345678") @ApiModelProperty(value = "手机号", example = "13012345678")
String mobile; String mobile;
@ApiModelProperty(value = "职位", example = "系统管理员") @ApiModelProperty(value = "职位", example = "系统管理员")
String post; String post;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "职位id", example = "100")
Long postId;
@ApiModelProperty(value = "标签编号", example = "BTT88888888") @ApiModelProperty(value = "标签编号", example = "BTT88888888")
String code; String code;
@ApiModelProperty(value = "用户名", example = "admin") @ApiModelProperty(value = "是否特殊", example = "false")
String username; Boolean isSpecial;
@ApiModelProperty(value = "性别", example = "false")
Boolean gender;
@ApiModelProperty(value = "邮箱", example = "developer@yiring.com") @ApiModelProperty(value = "邮箱", example = "developer@yiring.com")
String email; String email;
@ApiModelProperty(value = "头像", example = "https://s1.ax1x.com/2022/03/30/qggJH0.jpg") @ApiModelProperty(value = "头像", example = "baidu.com")
String avatar; String avatar;
@ApiModelProperty(value = "是否启用", example = "true")
Boolean enabled;
@ApiModelProperty(value = "是否删除", example = "false")
Boolean deleted;
@ApiModelProperty(value = "最后登录IP地址", example = "127.0.0.1")
String lastLoginIp;
@ApiModelProperty(value = "最后登录时间", example = "2022-10-24 10:24:00")
LocalDateTime lastLoginTime;
@ApiModelProperty(value = "创建时间", example = "2022-01-01 00:00:00")
LocalDateTime createTime;
public static UserVo transform(User user) {
return UserVo
.builder()
.id(user.getId())
.realName(user.getRealName())
.username(user.getUsername())
.mobile(user.getMobile())
.email(user.getEmail())
.enabled(user.getEnabled())
.deleted(user.getDeleted())
.lastLoginIp(user.getLastLoginIp())
.lastLoginTime(user.getLastLoginTime())
.createTime(user.getCreateTime())
.build();
}
public static List<UserVo> transforms(List<User> users) {
return users
.stream()
.map(user ->
UserVo
.builder()
.id(user.getId())
.realName(user.getRealName())
.username(user.getUsername())
.mobile(user.getMobile())
.email(user.getEmail())
.avatar(user.getAvatar())
.enabled(user.getEnabled())
.deleted(user.getDeleted())
.lastLoginIp(user.getLastLoginIp())
.lastLoginTime(user.getLastLoginTime())
.createTime(user.getCreateTime())
.build()
)
.collect(Collectors.toList());
}
public UserVo( public UserVo(
Long id,
String realName, String realName,
String uuid, String uuid,
User.Type type, User.Type type,
String department, String department,
String mobile, String mobile,
String post, String post,
String code String code,
Boolean gender,
Boolean isSpecial,
Long departmentId,
Long postId,
String avatar
) { ) {
this.id = id;
this.realName = realName; this.realName = realName;
this.uuid = uuid; this.uuid = uuid;
this.type = type; this.type = type;
...@@ -134,22 +96,20 @@ public class UserVo implements Serializable { ...@@ -134,22 +96,20 @@ public class UserVo implements Serializable {
this.mobile = mobile; this.mobile = mobile;
this.post = post; this.post = post;
this.code = code; this.code = code;
this.gender = gender;
this.isSpecial = isSpecial;
this.departmentId = departmentId;
this.postId = postId;
this.avatar = avatar;
} }
public static UserVo transformUserInfo(User user) { public static UserVo transformDept(User user) {
return UserVo return UserVo
.builder() .builder()
.id(user.getId()) .id(user.getId())
.realName(user.getRealName()) .realName(user.getRealName())
.username(user.getUsername())
.mobile(user.getMobile()) .mobile(user.getMobile())
.email(user.getEmail()) .email(user.getEmail())
.avatar(user.getAvatar())
.enabled(user.getEnabled())
.deleted(user.getDeleted())
.lastLoginIp(user.getLastLoginIp())
.lastLoginTime(user.getLastLoginTime())
.createTime(user.getCreateTime())
.build(); .build();
} }
} }
...@@ -3,6 +3,7 @@ package com.yiring.app.web; ...@@ -3,6 +3,7 @@ package com.yiring.app.web;
import com.yiring.app.constant.Code; import com.yiring.app.constant.Code;
import com.yiring.app.exception.CodeException; import com.yiring.app.exception.CodeException;
import com.yiring.app.util.zy.ZyUtil;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.PageParam; import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
...@@ -46,4 +47,9 @@ public class HelloController { ...@@ -46,4 +47,9 @@ public class HelloController {
PageVo<String> vo = PageVo.build(data, data.size()); PageVo<String> vo = PageVo.build(data, data.size());
return Result.ok(vo); return Result.ok(vo);
} }
@GetMapping("test")
public Result<String> test() {
return Result.ok(ZyUtil.manageLogin());
}
} }
...@@ -2,10 +2,13 @@ ...@@ -2,10 +2,13 @@
package com.yiring.app.web.dept; package com.yiring.app.web.dept;
import com.yiring.app.param.dept.DepartmentAddParam; import com.yiring.app.param.dept.DepartmentAddParam;
import com.yiring.app.param.dept.DepartmentExportParam;
import com.yiring.app.param.dept.DepartmentFindParam; import com.yiring.app.param.dept.DepartmentFindParam;
import com.yiring.app.param.dept.DepartmentModifyParam;
import com.yiring.app.service.dept.DepartmentService; import com.yiring.app.service.dept.DepartmentService;
import com.yiring.app.vo.dept.DepartmentInfoVo; import com.yiring.app.vo.dept.DepartmentInfoVo;
import com.yiring.app.vo.dept.DepartmentVo; import com.yiring.app.vo.dept.DepartmentVo;
import com.yiring.auth.param.IdsParam;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
...@@ -17,6 +20,7 @@ import javax.validation.Valid; ...@@ -17,6 +20,7 @@ import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 部门信息控制器 * 部门信息控制器
...@@ -36,14 +40,14 @@ public class DepartmentController { ...@@ -36,14 +40,14 @@ public class DepartmentController {
@ApiOperation("新增部门") @ApiOperation("新增部门")
@PostMapping("addDepartment") @PostMapping("addDepartment")
public Result<String> addDepartment(@Valid DepartmentAddParam param) { public Result<String> addDepartment(@Valid DepartmentAddParam departmentAddParam) {
return departmentService.addDepartment(param); return departmentService.addDepartment(departmentAddParam);
} }
@ApiOperation("树形表格") @ApiOperation("树形表格")
@GetMapping("findDepartmentTree") @GetMapping("findDepartmentTree")
public Result<PageVo<DepartmentVo>> findDepartmentTree(@Valid DepartmentFindParam param) { public Result<PageVo<DepartmentVo>> findDepartmentTree(@Valid DepartmentFindParam departmentFindParam) {
return departmentService.findDepartmentTree(param); return departmentService.findDepartmentTree(departmentFindParam);
} }
@ApiOperation("部门详细信息") @ApiOperation("部门详细信息")
...@@ -54,8 +58,8 @@ public class DepartmentController { ...@@ -54,8 +58,8 @@ public class DepartmentController {
@ApiOperation("部门导出") @ApiOperation("部门导出")
@GetMapping("exportDepartment") @GetMapping("exportDepartment")
public void exportDepartment(@Valid DepartmentFindParam param, HttpServletResponse response) { public void exportDepartment(@Valid DepartmentExportParam departmentExportParam, HttpServletResponse response) {
departmentService.exportDepartment(param, response); departmentService.exportDepartment(departmentExportParam, response);
} }
@ApiOperation("逻辑删除部门") @ApiOperation("逻辑删除部门")
...@@ -64,9 +68,21 @@ public class DepartmentController { ...@@ -64,9 +68,21 @@ public class DepartmentController {
return departmentService.deleteDepartment(idParam); return departmentService.deleteDepartment(idParam);
} }
@ApiOperation("启用/停用") @ApiOperation("给部门添加职位")
@PutMapping("stateDepartment") @PutMapping("deptBingPost")
public Result<String> stateDepartment(@Valid IdParam idParam) { public Result<String> deptBingPost(@Valid IdParam idParam, @Valid IdsParam idsParam) {
return departmentService.stateDepartment(idParam); return departmentService.deptBingPost(idParam, idsParam);
}
@ApiOperation("部门编辑")
@PutMapping("modifyDepartment")
public Result<String> modifyDepartment(@Valid DepartmentModifyParam departmentModifyParam) {
return departmentService.modifyDept(departmentModifyParam);
}
@ApiOperation("部门导入")
@PostMapping("importDepartment")
public Result<String> importDepartment(@RequestParam("file") MultipartFile file) {
return departmentService.importDepartment(file);
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.location.beacon;
import com.yiring.app.param.location.beacon.LocationBeaconExportParam;
import com.yiring.app.param.location.beacon.LocationBeaconFindParam;
import com.yiring.app.service.location.beacon.LocationBeaconService;
import com.yiring.app.vo.location.beacon.LocationBeaconVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 定位信标
*
* @author LJ-2204
* @date 2022/4/27
*/
@Slf4j
@Validated
@Api(tags = "定位信标")
@RestController
@RequestMapping("/location/beacon/")
public class LocationBeaconController {
@Resource
LocationBeaconService locationBeaconService;
@ApiOperation("添加定位信标")
@PostMapping("saveLocationBeacon")
public void saveLocationBeacon() {
locationBeaconService.saveLocationBeacon();
}
@ApiOperation("表格查询")
@GetMapping("findLocationBeacon")
public Result<PageVo<LocationBeaconVo>> findLocationBeacon(
@Valid LocationBeaconFindParam locationBeaconFindParam,
@Valid PageParam pageParam
) {
return locationBeaconService.findLocationBeacon(locationBeaconFindParam, pageParam);
}
@ApiOperation("导出")
@GetMapping("exportLocationBeacon")
public void exportLocationBeacon(
@Valid LocationBeaconExportParam locationBeaconExportParam,
HttpServletResponse response
) {
locationBeaconService.exportLocationBeacon(locationBeaconExportParam, response);
}
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.location.tag; package com.yiring.app.web.location.tag;
import com.yiring.app.param.location.LocationTagAddParam; import com.yiring.app.param.location.tag.*;
import com.yiring.app.param.location.LocationTagDeleteParam; import com.yiring.app.service.location.tag.LocationTagService;
import com.yiring.app.param.location.LocationTagFindParam; import com.yiring.app.vo.location.tag.LocationTagIndexVo;
import com.yiring.app.param.location.LocationTagModifyParam; import com.yiring.app.vo.location.tag.LocationTagVo;
import com.yiring.app.service.location.LocationTagService;
import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IndexParam;
import com.yiring.common.param.PageParam; import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -38,26 +37,32 @@ public class LocationTagController { ...@@ -38,26 +37,32 @@ public class LocationTagController {
@ApiOperation("新增定位标签") @ApiOperation("新增定位标签")
@PostMapping("addLocationTag") @PostMapping("addLocationTag")
public Result<String> addLocationTag(@Valid LocationTagAddParam param) { public Result<String> addLocationTag(@Valid LocationTagAddParam locationTagAddParam) {
return locationTagService.addLocationTag(param); return locationTagService.addLocationTag(locationTagAddParam);
} }
@ApiOperation("分页查询") @ApiOperation("分页查询")
@GetMapping("findLocationTagPage") @GetMapping("findLocationTagPage")
public Result<PageVo<LocationTagVo>> findLocationTagPage(@Valid LocationTagFindParam param, PageParam pageParam) { public Result<PageVo<LocationTagVo>> findLocationTagPage(
return locationTagService.findLocationTagPage(param, pageParam); @Valid LocationTagFindParam locationTagFindParam,
@Valid PageParam pageParam
) {
return locationTagService.findLocationTagPage(locationTagFindParam, pageParam);
} }
@ApiOperation("销毁定位标签") @ApiOperation("销毁定位标签")
@DeleteMapping("deleteLocationTag") @DeleteMapping("deleteLocationTag")
public Result<String> deleteLocationTag(@Valid LocationTagDeleteParam param) { public Result<String> deleteLocationTag(@Valid LocationTagDeleteParam locationTagDeleteParam) {
return locationTagService.deleteLocationTag(param); return locationTagService.deleteLocationTag(locationTagDeleteParam);
} }
@ApiOperation("导出定位标签") @ApiOperation("导出定位标签")
@GetMapping("exportLocationTagInfo") @GetMapping("exportLocationTagInfo")
public void exportLocationTagInfo(@Valid LocationTagFindParam param, HttpServletResponse response) { public void exportLocationTagInfo(
locationTagService.exportLocationTagInfo(param, response); @Valid LocationTagExportParam locationTagExportParam,
HttpServletResponse response
) {
locationTagService.exportLocationTagInfo(locationTagExportParam, response);
} }
@ApiOperation("导入定位标签") @ApiOperation("导入定位标签")
...@@ -66,9 +71,15 @@ public class LocationTagController { ...@@ -66,9 +71,15 @@ public class LocationTagController {
return locationTagService.importLocationTagInfo(file); return locationTagService.importLocationTagInfo(file);
} }
@ApiOperation("修改定位标签") /* @ApiOperation("修改定位标签")
@PutMapping("modifyLocationTag") @PutMapping("modifyLocationTag")
public Result<String> modifyLocationTag(@Valid LocationTagModifyParam param) { public Result<String> modifyLocationTag(@Valid LocationTagModifyParam locationTagModifyParam) {
return locationTagService.modifyLocationTag(param); return locationTagService.modifyLocationTag(locationTagModifyParam);
}*/
@ApiOperation("标签检索")
@GetMapping("indexLocationTag")
public Result<PageVo<LocationTagIndexVo>> indexLocationTag(@Valid IndexParam indexParam) {
return locationTagService.indexLocationTag(indexParam);
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.location.tag;
import com.yiring.app.param.location.tag.LocationTagTypeFindParam;
import com.yiring.app.param.location.tag.LocationTagTypeSendParam;
import com.yiring.app.service.location.tag.LocationTagTypeService;
import com.yiring.app.vo.location.tag.LocationTagTypeVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 标签分配
*
* @author LJ-2204
* @date 2022/4/27
*/
@Slf4j
@Validated
@Api(tags = "标签分配")
@RestController
@RequestMapping("/location/tag/type")
public class LocationTagTypeController {
@Resource
LocationTagTypeService locationTagTypeService;
@ApiOperation("分页查询")
@GetMapping("findLocationTagType")
public Result<PageVo<LocationTagTypeVo>> findLocationTagType(
@Valid LocationTagTypeFindParam locationTagTypeFindParam,
@Valid PageParam pageParam
) {
return locationTagTypeService.findLocationTagType(locationTagTypeFindParam, pageParam);
}
@ApiOperation("批量分配内部/外部")
@PutMapping("sendLocationTagType")
public Result<String> sendLocationTagType(@Valid LocationTagTypeSendParam locationtagtypeSendParam) {
return locationTagTypeService.sendLocationTagType(locationtagtypeSendParam);
}
}
...@@ -3,7 +3,7 @@ package com.yiring.app.web.map; ...@@ -3,7 +3,7 @@ package com.yiring.app.web.map;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yiring.app.feign.MapClient; import com.yiring.app.feign.MapClient;
import com.yiring.auth.util.ZyUtil; import com.yiring.app.util.zy.ZyUtil;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
...@@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.RestController;
* 地图控制器 * 地图控制器
* @author Administrator * @author Administrator
* @version 1.0 * @version 1.0
* @description: TODO
* @date 2022/4/24 13:48 * @date 2022/4/24 13:48
*/ */
@Slf4j @Slf4j
...@@ -36,7 +35,7 @@ public class MapController { ...@@ -36,7 +35,7 @@ public class MapController {
@GetMapping("/mapSelect") @GetMapping("/mapSelect")
@ApiImplicitParams({ @ApiImplicitParam(value = "orgId", required = true, name = "orgId") }) @ApiImplicitParams({ @ApiImplicitParam(value = "orgId", required = true, name = "orgId") })
public Result<Serializable> fail(String orgId) { public Result<Serializable> fail(String orgId) {
String login = ZyUtil.login(); String login = ZyUtil.openLogin();
JSONObject jsonObject = mapClient.selectMap(orgId, "bearer " + login); JSONObject jsonObject = mapClient.selectMap(orgId, "bearer " + login);
return Result.ok(jsonObject.get("data").toString()); return Result.ok(jsonObject.get("data").toString());
} }
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.post; package com.yiring.app.web.post;
import com.yiring.app.param.post.PostAddParam;
import com.yiring.app.param.post.PostExportParam;
import com.yiring.app.param.post.PostFindParam; import com.yiring.app.param.post.PostFindParam;
import com.yiring.app.param.post.PostParam; import com.yiring.app.param.post.PostModifyParam;
import com.yiring.app.service.post.PostService; import com.yiring.app.service.post.PostService;
import com.yiring.app.vo.post.PostIndexVo;
import com.yiring.app.vo.post.PostInfoVo;
import com.yiring.app.vo.post.PostVo; import com.yiring.app.vo.post.PostVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.param.PageParam; import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -36,14 +41,14 @@ public class PostController { ...@@ -36,14 +41,14 @@ public class PostController {
@ApiOperation(value = "新增职位") @ApiOperation(value = "新增职位")
@PostMapping("addPost") @PostMapping("addPost")
public Result<String> addPost(@Valid PostParam postParam) { public Result<String> addPost(@Valid PostAddParam postAddParam) {
return postService.addPost(postParam); return postService.addPost(postAddParam);
} }
@ApiOperation(value = "修改职位") @ApiOperation(value = "修改职位")
@PutMapping("modifyPost") @PutMapping("modifyPost")
public Result<String> modifyPost(@Valid PostParam postParam, @Valid IdParam idParam) { public Result<String> modifyPost(@Valid PostModifyParam postModifyParam) {
return postService.modifyPost(postParam, idParam); return postService.modifyPost(postModifyParam);
} }
@ApiOperation(value = "销毁职位") @ApiOperation(value = "销毁职位")
...@@ -54,25 +59,25 @@ public class PostController { ...@@ -54,25 +59,25 @@ public class PostController {
@ApiOperation(value = "分页查询") @ApiOperation(value = "分页查询")
@GetMapping("findPostPage") @GetMapping("findPostPage")
public Result<PageVo<PostVo>> findPostPage(@Valid PostFindParam param, @Valid PageParam pageParam) { public Result<PageVo<PostVo>> findPostPage(@Valid PostFindParam postFindParam, @Valid PageParam pageParam) {
return postService.findPostPage(param, pageParam); return postService.findPostPage(postFindParam, pageParam);
} }
@ApiOperation(value = "详细信息查询") @ApiOperation(value = "详细信息查询")
@GetMapping("findPostById") @GetMapping("findPostById")
public Result<PostVo> findPostById(@Valid IdParam idParam) { public Result<PostInfoVo> findPostById(@Valid IdParam idParam) {
return postService.findPostById(idParam); return postService.findPostById(idParam);
} }
@ApiOperation(value = "导出职位信息") @ApiOperation(value = "导出职位信息")
@GetMapping("exportPostInfo") @GetMapping("exportPostInfo")
public void exportPostInfo(@Valid PostFindParam param, HttpServletResponse response) { public void exportPostInfo(@Valid PostExportParam postExportParam, HttpServletResponse response) {
postService.exportPostInfo(param, response); postService.exportPostInfo(postExportParam, response);
} }
@ApiOperation(value = "下拉菜单") @ApiOperation(value = "职位检索")
@GetMapping("selectPost") @GetMapping("indexPost")
public Result<PageVo<PostVo>> selectPost() { public Result<PageVo<PostIndexVo>> indexPost(@Valid IndexParam indexParam) {
return postService.selectPost(); return postService.indexPost(indexParam);
} }
} }
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.user; package com.yiring.app.web.user;
import com.yiring.app.param.user.UserBingTagParam; import com.yiring.app.param.user.*;
import com.yiring.app.param.user.UserFindParam;
import com.yiring.app.service.user.UserService; import com.yiring.app.service.user.UserService;
import com.yiring.app.vo.user.UserInfoVo;
import com.yiring.app.vo.user.UserVo; import com.yiring.app.vo.user.UserVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.param.IndexParam;
import com.yiring.common.param.PageParam; import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -17,6 +18,7 @@ import javax.validation.Valid; ...@@ -17,6 +18,7 @@ import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 用户信息 * 用户信息
...@@ -28,9 +30,9 @@ import org.springframework.web.bind.annotation.*; ...@@ -28,9 +30,9 @@ import org.springframework.web.bind.annotation.*;
@Slf4j @Slf4j
@Validated @Validated
@Api(tags = "User") @Api(tags = "人员管理")
@RestController @RestController
@RequestMapping("/user/") @RequestMapping("/user/app/")
public class UserAppController { public class UserAppController {
@Resource @Resource
...@@ -38,20 +40,20 @@ public class UserAppController { ...@@ -38,20 +40,20 @@ public class UserAppController {
@ApiOperation("表格查询") @ApiOperation("表格查询")
@GetMapping("findUserPage") @GetMapping("findUserPage")
public Result<PageVo<UserVo>> findUserPage(@Valid UserFindParam param, @Valid PageParam pageParam) { public Result<PageVo<UserVo>> findUserPage(@Valid UserFindParam userFindParam, @Valid PageParam pageParam) {
return userService.findUserPage(param, pageParam); return userService.findUserPage(userFindParam, pageParam);
} }
@ApiOperation("用户详细信息查询") @ApiOperation("用户详细信息查询")
@GetMapping("findUserById") @GetMapping("findUserById")
public Result<UserVo> findUserById(@Valid IdParam idParam) { public Result<UserInfoVo> findUserById(@Valid IdParam idParam) {
return userService.findUserById(idParam); return userService.findUserById(idParam);
} }
@ApiOperation("给用户分配标签卡") @ApiOperation("给用户分配标签卡")
@PutMapping("userBingTag") @PutMapping("userBingTag")
public Result<String> userBingTag(@Valid UserBingTagParam param) { public Result<String> userBingTag(@Valid UserBingTagParam userBingTagParam) {
return userService.userBingTag(param); return userService.userBingTag(userBingTagParam);
} }
@ApiOperation("收卡") @ApiOperation("收卡")
...@@ -66,15 +68,39 @@ public class UserAppController { ...@@ -66,15 +68,39 @@ public class UserAppController {
return userService.deleteUser(idParam); return userService.deleteUser(idParam);
} }
@ApiOperation("下拉菜单")
@GetMapping("selectUser")
public Result<PageVo<UserVo>> selectUser() {
return userService.selectUser();
}
@ApiOperation("用户导出") @ApiOperation("用户导出")
@GetMapping("exportUser") @GetMapping("exportUser")
public void exportUser(@Valid UserFindParam param, HttpServletResponse response) { public void exportUser(@Valid UserFindParam userFindParam, HttpServletResponse response) {
userService.exportUser(param, response); userService.exportUser(userFindParam, response);
}
@ApiOperation("启用/停用")
@PutMapping("stateUser")
public Result<String> stateUser(@Valid IdParam idParam) {
return userService.stateUser(idParam);
}
@ApiOperation("编辑用户")
@PutMapping("modifyUser")
public Result<String> modifyUser(@Valid UserModifyParam userModifyParam) {
return userService.modifyUser(userModifyParam);
}
@ApiOperation("新增用户")
@PostMapping("addUser")
public Result<String> addUser(@Valid UserAddParam userAddParam) {
return userService.addUser(userAddParam);
}
@ApiOperation("导入")
@PostMapping("importUser")
public Result<String> importUser(@RequestParam("file") MultipartFile file) {
return userService.importUser(file);
}
@ApiOperation("用户信息检索")
@GetMapping("indexUser")
public Result<PageVo<UserVo>> indexUser(@Valid IndexParam indexParam) {
return userService.indexUser(indexParam);
} }
} }
...@@ -37,6 +37,11 @@ spring: ...@@ -37,6 +37,11 @@ spring:
simple: simple:
# 手动确认消息 # 手动确认消息
acknowledge-mode: manual acknowledge-mode: manual
servlet:
multipart:
enabled: true
max-file-size: 50MB
max-request-size: 100MB
# knife4j # knife4j
knife4j: knife4j:
...@@ -61,7 +66,6 @@ logging: ...@@ -61,7 +66,6 @@ logging:
level: level:
# sql bind parameter # sql bind parameter
org.hibernate.type.descriptor.sql.BasicBinder: trace org.hibernate.type.descriptor.sql.BasicBinder: trace
# 真源定位系统相关配置 # 真源定位系统相关配置
zy-config: zy-config:
host: project.yz-online.com host: project.yz-online.com
...@@ -93,3 +97,10 @@ zy-config: ...@@ -93,3 +97,10 @@ zy-config:
manage: manage:
username: test123 username: test123
password: test123 password: test123
feign:
httpclient:
enabled: false
okhttp:
enabled: true
...@@ -5,20 +5,17 @@ import com.fasterxml.jackson.annotation.JsonIgnore; ...@@ -5,20 +5,17 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yiring.auth.domain.post.Post; import com.yiring.auth.domain.post.Post;
import com.yiring.auth.domain.user.User; import com.yiring.auth.domain.user.User;
import com.yiring.common.annotation.FieldMapping; import com.yiring.common.annotation.FieldMapping;
import com.yiring.common.domain.BasicEntity;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.HashSet; import java.util.HashSet;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import javax.persistence.*; import javax.persistence.*;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants; import lombok.experimental.FieldNameConstants;
import org.hibernate.Hibernate; import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.Comment; import org.hibernate.annotations.Comment;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.snowflake.SnowflakeId;
/** /**
* 部门 * 部门
...@@ -30,7 +27,7 @@ import org.hibernate.snowflake.SnowflakeId; ...@@ -30,7 +27,7 @@ import org.hibernate.snowflake.SnowflakeId;
@Getter @Getter
@Setter @Setter
@ToString @ToString
@Builder @SuperBuilder(toBuilder = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@FieldNameConstants @FieldNameConstants
...@@ -38,17 +35,11 @@ import org.hibernate.snowflake.SnowflakeId; ...@@ -38,17 +35,11 @@ import org.hibernate.snowflake.SnowflakeId;
@Entity @Entity
@Comment("系统部门") @Comment("系统部门")
@Table(name = "SYS_DEPARTMENT", indexes = { @Index(columnList = "pid"), @Index(columnList = "tree") }) @Table(name = "SYS_DEPARTMENT", indexes = { @Index(columnList = "pid"), @Index(columnList = "tree") })
public class Department implements Serializable { public class Department extends BasicEntity implements Serializable {
@Serial @Serial
private static final long serialVersionUID = -5402731145404250150L; private static final long serialVersionUID = -5402731145404250150L;
@Comment("主键")
@Id
@GeneratedValue(generator = SnowflakeId.GENERATOR)
@GenericGenerator(name = SnowflakeId.GENERATOR, strategy = SnowflakeId.Strategy.LONG)
Long id;
/** /**
* 数据来源于【真源人员定位系统 - 部门】 * 数据来源于【真源人员定位系统 - 部门】
* 作用: 用于双向联动进行数据同步 * 作用: 用于双向联动进行数据同步
...@@ -87,12 +78,6 @@ public class Department implements Serializable { ...@@ -87,12 +78,6 @@ public class Department implements Serializable {
@Comment("树节点标识") @Comment("树节点标识")
String tree; String tree;
@Comment("更新时间")
LocalDateTime updateTime;
@Comment("创建时间")
LocalDateTime createTime;
@Comment("岗位集合") @Comment("岗位集合")
@Builder.Default @Builder.Default
@ToString.Exclude @ToString.Exclude
...@@ -105,14 +90,6 @@ public class Department implements Serializable { ...@@ -105,14 +90,6 @@ public class Department implements Serializable {
Set<Post> posts = new HashSet<>(0); Set<Post> posts = new HashSet<>(0);
@Override @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
Department that = (Department) o;
return id != null && Objects.equals(id, that.id);
}
@Override
public int hashCode() { public int hashCode() {
return getClass().hashCode(); return getClass().hashCode();
} }
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.auth.domain.post; package com.yiring.auth.domain.post;
import com.yiring.common.domain.BasicEntity;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table; import javax.persistence.Table;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants; import lombok.experimental.FieldNameConstants;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.Comment; import org.hibernate.annotations.Comment;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.snowflake.SnowflakeId;
/** /**
* 岗位 * 岗位
...@@ -25,7 +22,7 @@ import org.hibernate.snowflake.SnowflakeId; ...@@ -25,7 +22,7 @@ import org.hibernate.snowflake.SnowflakeId;
@Getter @Getter
@Setter @Setter
@ToString @ToString
@Builder @SuperBuilder(toBuilder = true)
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@FieldNameConstants @FieldNameConstants
...@@ -33,29 +30,17 @@ import org.hibernate.snowflake.SnowflakeId; ...@@ -33,29 +30,17 @@ import org.hibernate.snowflake.SnowflakeId;
@Entity @Entity
@Comment("系统岗位") @Comment("系统岗位")
@Table(name = "SYS_POST") @Table(name = "SYS_POST")
public class Post implements Serializable { public class Post extends BasicEntity implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 3744892781714515997L; private static final long serialVersionUID = 3744892781714515997L;
@Comment("主键")
@Id
@GeneratedValue(generator = SnowflakeId.GENERATOR)
@GenericGenerator(name = SnowflakeId.GENERATOR, strategy = SnowflakeId.Strategy.LONG)
Long id;
@Comment("名称") @Comment("名称")
String name; String name;
@Comment("描述") @Comment("描述")
String describe; String describe;
@Comment("创建时间")
LocalDateTime createTime;
@Comment("更新时间")
LocalDateTime updateTime;
@Comment("是否启用") @Comment("是否启用")
Boolean enable; Boolean enable;
} }
...@@ -98,6 +98,12 @@ public class User extends BasicEntity implements Serializable { ...@@ -98,6 +98,12 @@ public class User extends BasicEntity implements Serializable {
@Comment("是否删除") @Comment("是否删除")
Boolean deleted; Boolean deleted;
@Comment("是否特殊")
Boolean isSpecial;
@Comment("性别")
Boolean gender;
@JsonIgnore @JsonIgnore
@Builder.Default @Builder.Default
@Comment("角色集合") @Comment("角色集合")
......
...@@ -5,8 +5,6 @@ import cn.hutool.core.date.LocalDateTimeUtil; ...@@ -5,8 +5,6 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn; import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import com.github.liaochong.myexcel.core.annotation.ExcelModel; import com.github.liaochong.myexcel.core.annotation.ExcelModel;
import com.yiring.auth.domain.post.Post; import com.yiring.auth.domain.post.Post;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -40,19 +38,13 @@ public class PostExcel { ...@@ -40,19 +38,13 @@ public class PostExcel {
@ExcelColumn(title = "创建时间") @ExcelColumn(title = "创建时间")
String createTime; String createTime;
public static List<PostExcel> transforms(List<Post> posts) { public static PostExcel transform(Post post) {
return posts return PostExcel
.stream() .builder()
.map(post -> .name(post.getName())
PostExcel .describe(post.getDescribe())
.builder() .enable(post.getEnable() ? "启用" : "禁用")
// .id(post.getId()) .createTime(LocalDateTimeUtil.format(post.getCreateTime(), "yyyy-MM-dd HH:mm:ss"))
.name(post.getName()) .build();
.describe(post.getDescribe())
.enable(post.getEnable() ? "启用" : "禁用")
.createTime(LocalDateTimeUtil.format(post.getCreateTime(), "yyyy-MM-dd HH:mm:ss"))
.build()
)
.collect(Collectors.toList());
} }
} }
/* (C) 2022 YiRing, Inc. */
package com.yiring.auth.util;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import lombok.experimental.UtilityClass;
import org.springframework.data.redis.core.RedisTemplate;
/**
* 真源授权工具
* @author LJ-2204
* @date 2022/4/15
*/
@UtilityClass
public class ZyUtil {
RedisTemplate<String, Object> redisTemplate;
static {
redisTemplate = SpringUtil.getBean("redisTemplate");
}
public final String CLIENT_ID = "sc21080400";
public final String CLIENT_SECRET = "12A14FDC";
public final String GRANT_TYPE = "client_credentials";
public final String KEY = "zy_token";
/**
* 获取token
* @return token
*/
public static String login() {
Object obj = redisTemplate.opsForValue().get(KEY);
if (ObjectUtil.isNotEmpty(obj)) {
return String.valueOf(obj);
}
Map<String, Object> map = MapUtil.createMap(HashMap.class);
map.put("client_id", CLIENT_ID);
map.put("client_secret", CLIENT_SECRET);
map.put("grant_type", GRANT_TYPE);
String json = HttpUtil.get("http://project.yz-online.com:789/positionApi/oauth/token", map);
Map result = JSON.parseObject(json, Map.class);
String access_token = result.get("access_token").toString();
String expires_in = result.get("expires_in").toString();
redisTemplate.opsForValue().set(KEY, access_token, Convert.toInt(expires_in), TimeUnit.SECONDS);
return access_token;
}
/**
* 判断token是否有效
* @return T/F
*/
public static boolean getToken() {
return ObjectUtil.isNotEmpty(redisTemplate.opsForValue().get(KEY));
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.common.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.Valid;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 公共下拉str查询入参
*
* @author LJ-2204
* @date 2022/4/26
*/
@ApiModel("IndexParam")
@Valid
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class IndexParam implements Serializable {
@Serial
private static final long serialVersionUID = 1175269732754454737L;
@ApiModelProperty(value = "下拉查询")
String str;
}
...@@ -29,7 +29,7 @@ public class MinioConfig { ...@@ -29,7 +29,7 @@ public class MinioConfig {
String bucket; String bucket;
String domain; String domain;
@Bean @Bean("MinioClient")
public MinioClient getClient() { public MinioClient getClient() {
return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build(); return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();
} }
......
...@@ -28,7 +28,7 @@ public class Minio { ...@@ -28,7 +28,7 @@ public class Minio {
@Resource @Resource
public MinioConfig config; public MinioConfig config;
@Resource @Resource(name = "MinioClient")
public MinioClient client; public MinioClient client;
/** /**
......
...@@ -31,6 +31,8 @@ buildscript { ...@@ -31,6 +31,8 @@ buildscript {
myexcelVersion = '4.1.1' myexcelVersion = '4.1.1'
// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign
openfeignVersion = '3.1.1' openfeignVersion = '3.1.1'
// https://mvnrepository.com/artifact/io.github.openfeign/feign-okhttp
feignOkhttpVersion= '11.8'
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论