提交 da2748df authored 作者: wangmenglong's avatar wangmenglong

首次提交

上级
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
差异被折叠。
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jy.jxjy</groupId>
<artifactId>jxjy</artifactId>
<version>1.0</version>
</parent>
<groupId>com.jy.jxjy</groupId>
<artifactId>jxjy-lib</artifactId>
<version>1.0</version>
<name>jxjy-lib</name>
<description>lib</description>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.70</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
import java.util.ArrayList;
import java.util.List;
public class TestArrayList {
private static List<Integer> list = new ArrayList<>();
public static void main(String[] args) throws InterruptedException {
// for (int i = 0; i < 10; i++) {
testList();
// list.clear();
// }
}
private static void testList() throws InterruptedException {
Runnable runnable = () -> {
for (int i = 0; i < 10000; i++) {
list.add(i);
}
System.out.println(list.size());
};
Thread t1 = new Thread(runnable);
Thread t2 = new Thread(runnable);
Thread t3 = new Thread(runnable);
t1.start();
t2.start();
t3.start();
t1.join();
System.out.println("==========================1");
t2.join();
System.out.println("==========================2");
t3.join();
}
}
package base.controller;
import javax.servlet.http.HttpServletRequest;
/**
* web层通用数据处理
*
* @author ruoyi
*/
public class BaseController
{
public int pageNum ;
public int pageSize ;
public void PageInit(HttpServletRequest request) {
// 在这里处理请求参数
pageNum = request.getParameter("pageNum") != null ? Integer.parseInt(request.getParameter("pageNum")) : 1;
pageSize = request.getParameter("pageSize") != null ? Integer.parseInt(request.getParameter("pageSize")) : 10;
}
}
package base.result;
import enums.ExceptionCodeEnum;
public class BaseResult {
private Object data;
private boolean isSuccess = false;
private String status = "";
private String message = "";
private String code;
public BaseResult() {
}
public static BaseResult success(String code, Object data) {
BaseResult result = new BaseResult();
result.data = data;
result.code = code;
result.isSuccess = true;
result.status = "success";
return result;
}
public static BaseResult success(String code) {
BaseResult result = new BaseResult();
result.code = code;
result.isSuccess = true;
result.status = "success";
return result;
}
public static BaseResult success(Object data) {
BaseResult result = new BaseResult();
result.data = data;
result.code = "normal_001";
result.isSuccess = true;
result.status = "success";
return result;
}
public static BaseResult success() {
BaseResult result = new BaseResult();
result.code = "normal_001";
result.isSuccess = true;
result.status = "success";
return result;
}
public static BaseResult error(String code) {
BaseResult result = new BaseResult();
result.code = code;
result.isSuccess = false;
result.status = "error";
return result;
}
public static BaseResult error(String code,Object data) {
BaseResult result = new BaseResult();
result.code = code;
result.isSuccess = false;
result.status = "error";
result.data = data;
return result;
}
public static BaseResult error(ExceptionCodeEnum exceptionCodeEnum) {
BaseResult result = new BaseResult();
result.code = exceptionCodeEnum.getCode();
result.message = exceptionCodeEnum.getMessage();
result.isSuccess = false;
result.status = "error";
return result;
}
public Object getData() {
return this.data;
}
public boolean getIsSuccess() {
return this.isSuccess;
}
public String getStatus() {
return this.status;
}
public String getMessage() {
return this.message;
}
public String getCode() {
return this.code;
}
}
\ No newline at end of file
package data.parent;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
@Data
abstract public class IdentityObj implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("id")
private String id;
@TableField(value = "del")
private Boolean del;
@TableField(value = "base_code")
private String baseCode;
@TableField(value = "create_time")
private String createTime;
@TableField(value = "update_time")
private String updateTime;
@TableField(value = "user_id")
private String userId;
@TableField(value = "user_name")
private String userName;
/**
* @description: 删除时间(如果数据使用过,执行删除操作时更新del=1和删除时间;如果未使用过,直接真删)
* @author: wangmenglong
* @date; 2023/12/8 10:20
**/
@TableField(value = "del_time")
private String delTime;
}
package data.parent;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
@Data
abstract public class NameObj extends IdentityObj implements Serializable {
private static final long serialVersionUID = 1L;
@TableField("name")
private String name;
}
package data.parent;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
abstract public class SimpleIdentityObj {
@TableId("id")
private String id;
@TableField(value = "base_code")
private String baseCode;
}
package data.parent;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
/**
* @author wangmenglong
* @description:
* @date 2023/12/28 14:22
*/
@Data
public class SimpleNameObj extends SimpleIdentityObj{
@TableField("name")
private String name;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 收藏记录
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_collect")
public class Collect extends IdentityObj {
/**
* 人员id
**/
@TableField("person_id")
private String personId;
/**
* 招聘id
**/
@TableField("recruit_id")
private String recruitId;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 报名记录
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_driver_school_record")
public class DriverSchoolRecord extends IdentityObj {
/**
* 人员id
**/
@TableField("person_id")
private String personId;
/**
* revisit已回访 new未回访
**/
@TableField("state")
private String state;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 经验描述
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_experience")
public class Experience extends IdentityObj {
/**
* 经验描述
**/
@TableField("description")
private String description;
/**
* 经验描述
**/
@TableField("code")
private String code;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 报名记录
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_higher_school_record")
public class HigherSchoolRecord extends IdentityObj {
/**
* 人员id
**/
@TableField("person_id")
private String personId;
/**
* revisit已回访 new未回访
**/
@TableField("state")
private String state;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.NameObj;
import lombok.Data;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.List;
/**
* @author wangmenglong
* @description: 行业
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_industry")
public class Industry extends NameObj implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 阿里行业编号
**/
@TableField("code")
private String code;
/**
* 阿里行业编号
**/
@TableField("parent_id")
private String parentId;
/**
* 阿里行业编号
**/
@TableField("`sort`")
private int sort;
/**
* 阿里行业编号
**/
@TableField(exist = false)
private List<Industry> chilList;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import data.parent.NameObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 消息内容
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_message")
public class Message extends IdentityObj {
/**
* 标题
**/
@TableField("title")
private String title;
/**
* 内容
**/
@TableField("content")
private String content;
/**
* 内容
**/
@TableField("recruit_id")
private String recruitId;
/**
* start 开始发送 , end 发送结束不再定时任务
**/
@TableField("state")
private String state;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 消息内容
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_message_record")
public class MessageRecord extends IdentityObj {
/**
* 标题
**/
@TableField("title")
private String title;
/**
* 内容
**/
@TableField("content")
private String content;
/**
* 内容
**/
@TableField("recruit_id")
private String recruitId;
/**
* 是否已读
**/
@TableField("is_read")
private Boolean isRead;
/**
* start 开始发送 , end 发送结束不再定时任务
**/
@TableField("personnel_id")
private String personnelId;
/**
* 岗位
**/
@TableField(exist = false)
private Recruit recruit;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 求职意向
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_objective")
public class Objective extends IdentityObj {
/**
* 城市
**/
@TableField("city")
private String city;
/**
* 省
**/
@TableField("province")
private String province;
/**
* 区
**/
@TableField("region")
private String region;
/**
* 薪资要求-开始
**/
@TableField("salary_min")
private Integer salaryMin;
/**
* 薪资要求-结束
**/
@TableField("salary_max")
private Integer salaryMax;
/**
* 工作性质
**/
@TableField("work_type")
private String workType;
/**
* 人id
**/
@TableField("person_id")
private String personId;
/**
* 行业
**/
@TableField("industry_id")
private String industryId;
/**
* 行业
**/
@TableField("industry_name")
private String industryName;
/**
* 行业
**/
@TableField(exist = false)
private Person person;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 期望行业
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_objective_industry")
public class ObjectiveIndustry extends IdentityObj {
/**
* 人员id
**/
@TableField("person_id")
private String personId;
/**
* 行业id
**/
@TableField("industry_id")
private String industryId;
/**
* 行业名
**/
@TableField(exist = false)
private String name;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.NameObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 企业
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_org")
public class Org extends NameObj {
/**
* logo
**/
@TableField("logo")
private String logo;
/**
* 邮政编号
**/
@TableField("region_code")
private String regionCode;
/**
* 地址
**/
@TableField("address")
private String address;
/**
* 详情
**/
@TableField("descr")
private String descr;
/**
* 省
**/
@TableField("province")
private String province;
/**
* 市
**/
@TableField("city")
private String city;
/**
* 区
**/
@TableField("region")
private String region;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.NameObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 报名记录
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_person")
public class Person extends NameObj {
/**
* 证件号码
**/
@TableField("id_no")
private String idNo;
/**
* 手机号
**/
@TableField("phone_number")
private String phoneNumber;
/**
* 报名时间
**/
@TableField("register_time")
private String registerTime;
/**
* 年龄
**/
@TableField("age")
private Integer age;
/**
* 性别
**/
@TableField("sex")
private Boolean sex;
/**
* 民族
**/
@TableField("nation")
private String nation;
/**
* 支付宝openid
**/
@TableField("open_id")
private String openId;
/**
* 招聘类型
**/
@TableField("recruit_type_id")
private String recruitTypeId;
/**
* 招聘类型
**/
@TableField("recruit_type")
private String recruitType;
/**
* 教育经历
**/
@TableField("educational_background")
private String educationalBackground;
/**
* 自我评价
**/
@TableField("self_evaluation")
private String selfEvaluation;
/**
* 工作经历
**/
@TableField("work_experience")
private String workExperience;
/**
* 报名状态
**/
@TableField(exist = false)
private String recordState;
/**
* 头像
**/
@TableField("header_url")
private String headerUrl;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 教育经历
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_person_educational")
public class PersonEducational extends IdentityObj {
/**
* 学历id
**/
@TableField("qualification_id")
private String qualificationId;
/**
* 学历id
**/
@TableField("qualification")
private String qualification;
/**
* 学校
**/
@TableField("school")
private String school;
/**
* 学校id
**/
@TableField("school_id")
private String schoolId;
/**
* 专业
**/
@TableField("major")
private String major;
/**
* 开始时间
**/
@TableField("start_time")
private String startTime;
/**
* 结束时间
**/
@TableField("end_time")
private String endTime;
/**
* 人id
**/
@TableField("person_id")
private String personId;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 经验描述
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_qualification")
public class Qualification extends IdentityObj {
/**
* 经验描述
**/
@TableField("name")
private String name;
/**
* 经验描述
**/
@TableField("code")
private String code;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.NameObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 报名记录
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_recruit")
public class Recruit extends NameObj {
/**
* 职位描述
**/
@TableField("details")
private String details;
/**
* 招聘类型
**/
@TableField("recruit_type_id")
private String recruitTypeId;
/**
* 招聘类型
**/
@TableField("recruit_type")
private String recruitType;
/**
* 经验要求
**/
@TableField("experience_id")
private String experienceId;
/**
* 经验要求
**/
@TableField("experience")
private String experience;
/**
* 学历要求
**/
@TableField("qualification_id")
private String qualificationId;
/**
* 学历要求
**/
@TableField("qualification")
private String qualification;
/**
* 学历要求
**/
@TableField("qualification_code")
private String qualificationCode;
/**
* 薪资范围开始
**/
@TableField("salary_min")
private Integer salaryMin;
/**
* 薪资范围结束
**/
@TableField("salary_max")
private Integer salaryMax;
/**
* 类型,day 日结 month 月
**/
@TableField("pay_times")
private String payTimes;
/**
* 关键词
**/
@TableField("tags")
private String tags;
/**
* 奖金绩效
**/
@TableField("bonus")
private String bonus;
/**
* 地址
**/
@TableField("address")
private String address;
/**
* 支付宝行业id
**/
@TableField("industry_id")
private String industryId;
/**
* 支付宝行业id
**/
@TableField("industry_name")
private String industryName;
/**
* 支付宝行业id
**/
@TableField("one_industry_name")
private String oneIndustryName;
/**
* 支付宝行业id
**/
@TableField("one_industry_id")
private String oneIndustryId;
/**
* 支付宝行业id
**/
@TableField("tow_industry_name")
private String towIndustryName;
/**
* 支付宝行业id
**/
@TableField("tow_industry_id")
private String towIndustryId;
/**
* 次数
**/
@TableField("times")
private Integer times;
/**
* 企业id
**/
@TableField("org_id")
private String orgId;
/**
* 企业名
**/
@TableField("org_name")
private String orgName;
/**
* 员工
**/
@TableField(exist = false)
private Person person;
/**
* 员工
**/
@TableField(exist = false)
private String personId;
/**
* 企业
**/
@TableField(exist = false)
private Org org;
/**
* 搜索的行业
**/
@TableField(exist = false)
private String selTitle;
/**
* 行业code
**/
@TableField("industry_code")
private String industryCode;
/**
* 开始时间
**/
@TableField("start_date")
private String startDate;
/**
* 结束时间
**/
@TableField("expired_date")
private String expiredDate;
/**
* 经验code
**/
@TableField("experience_code")
private String experienceCode;
/**
* up发布 down下架
**/
@TableField("status")
private String status;
/**
* 省
**/
@TableField("province")
private String province;
/**
* 市
**/
@TableField("city")
private String city;
/**
* 区
**/
@TableField("region")
private String region;
/**
* 员工证件号
**/
@TableField(exist = false)
private String personIdno;
/**
* 员工姓名
**/
@TableField(exist = false)
private String personName;
/**
* 报名时间
**/
@TableField(exist = false)
private String rtTime;
/**
* 状态
**/
@TableField(exist = false)
private String recordState;
/**
* id
**/
@TableField(exist = false)
private String recordId;
/**
* 是否上架过
**/
@TableField("launch")
private String launch;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.NameObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 招聘类型
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_recruit_type")
public class RecruitType extends NameObj {
/**
* 编号
**/
@TableField("code")
private String code;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.NameObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 学校
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_school")
public class School extends NameObj {
/**
* 地址
**/
@TableField("address")
private String address;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 报名记录
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_sign_record")
public class SignRecord extends IdentityObj {
/**
* 人员id
**/
@TableField("person_id")
private String personId;
/**
* 招聘id
**/
@TableField("recruit_id")
private String recruitId;
/**
* state =
* 面试中: INTERVIEW
* 未录取: APPLY_FAILED
* 已录取: APPLY_SUCCESS
* 已入职: ON_BOARDING
* 邀请面试: INVITING_INTERVIEW
* 已投递:APPLYING
**/
@TableField("state")
private String state;
}
package data.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.IdentityObj;
import lombok.Data;
/**
* @author wangmenglong
* @description: 工作经历
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_work_experience")
public class WorkExperience extends IdentityObj {
/**
* 公司名
**/
@TableField("org_name")
private String orgName;
/**
* 职位
**/
@TableField("job")
private String job;
/**
* 开始时间
**/
@TableField("start_time")
private String startTime;
/**
* 结束时间
**/
@TableField("end_time")
private String endTime;
/**
* 支付宝行业id
**/
@TableField("industry_id")
private String industryId;
/**
* 支付宝行业
**/
@TableField("industry_name")
private String industryName;
/**
* 金额
**/
@TableField("money")
private String money;
/**
* 描述
**/
@TableField("descr")
private String descr;
/**
* 人id
**/
@TableField("person_id")
private String personId;
}
package data.user;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import data.parent.NameObj;
import lombok.Data;
import mongo.parent.MongoNameObj;
/**
* @author wangmenglong
* @description: 用户
* @date 2023/12/11 10:50
*/
@Data
@TableName(value = "tb_user")
public class User extends NameObj {
/**
* 用户名
**/
@TableField("account")
private String account;
/**
* 密码
**/
@TableField("password")
private String password;
/**
* 状态(normal 正常,disable停用)
**/
@TableField("state")
private String state;
/**
* 用户类型,普通(只能登录前端general),管理(前后端都可以登录admin),
**/
@TableField("type")
private String type;
}
package enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
/**
* 异常码枚举
*/
@AllArgsConstructor
@Getter
public enum ExceptionCodeEnum {
NORMAL_001("normal_001", "保存成功"),
NORMAL_002("normal_002", "提交成功"),
ERROR_001("error_001", "保存失败"),
ERROR_002("error_002", "提交失败")
;
private static final Map<String, ExceptionCodeEnum> CACHE = new HashMap<>(ExceptionCodeEnum.values().length);
static {
for (ExceptionCodeEnum value : ExceptionCodeEnum.values()) {
CACHE.put(value.getCode(), value);
}
}
private final String code;
private final String message;
public static ExceptionCodeEnum getByCode(String code) {
return CACHE.get(code);
}
}
package mongo.collection;
/**
* 集合名称
*/
public class CollectionName {
/**
* 后台账号
*/
public static final String USER_ACCOUNT = "user";
/**
* 对话框
*/
public static final String DIALOGUE = "dialogue";
/**
* 内容
*/
public static final String CONTENT = "content";
/**
* 系统设置
*/
public static final String SYSTEM_CONFIG = "system_config";
/**
* 热词排行
*/
public static final String PROBLEM_TOP = "problem_top";
/**
* 热词排行
*/
public static final String PROBLEM_YEAR_TOP = "problem_year_top";
/**
* 热词排行
*/
public static final String PROBLEM_MONTH_TOP = "problem_month_top";
}
package mongo.parent;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.context.annotation.Primary;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
@Data
@Primary
abstract public class MongoIdentityObj {
private String id;
private Boolean del;
private String baseCode;
//@TableField(value = "createTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
private String userId;
private String userName;
/**
* @description: 删除时间(如果数据使用过,执行删除操作时更新del=1和删除时间;如果未使用过,直接真删)
* @author: wangmenglong
* @date; 2023/12/8 10:20
**/
private String delTime;
public MongoIdentityObj(){
this.del = false;
try {
//this.createTime = getMongoDate(new Date());
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 计算得到MongoDB存储的日期,(默认情况下mongo中存储的是标准的时间,中国时间是东八区,存在mongo中少8小时,所以增加8小时)
* http://www.iteye.com/problems/88507
*
* @author: Gao Peng
* @date: 2016年5月4日 上午9:26:23
* @param: @param
* date
* @param: @return
* @return: Date
*/
public static Date getMongoDate(Date date) throws Exception{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar ca = Calendar.getInstance();
ca.setTime(date);
ca.add(Calendar.HOUR_OF_DAY, 8);
return DateUtils.parseDate(sdf.format(ca.getTime()));
}
}
package mongo.parent;
import lombok.Data;
@Data
abstract public class MongoNameObj extends MongoIdentityObj {
private String name;
}
package redis;
public class RedisKey {
/**
* 微信消息的token
*/
public static final String WX_MESSAGE_TOKEN = "jxjy:wx:message:token";
/**
* 订阅消息增加次数key
*/
public static final String TENCENT_MESSAGE_NUMBER = "jxjy:tencent:message:number";
/**
* @Author wangmenglong
* @Description 微信的token 微信官方7200秒失效 就服通系统保存6000秒
* @Date 2021/12/21
* @Param
* @return
**/
public static final String Wx_Token = "jxjy:token:weixin";
}
package util;
public class AppStartParam {
public static String getMqInstanceId(String[] args) {
String instanceId = "";
if (args.length >= 6) {
String param = args[6];
// String param = "--rocketmq.instance-id=MQ_INST_1776639105090731_BX4zKKfW%";
instanceId = param.substring(param.indexOf("=") + 1, param.length());
}
return instanceId;
}
// public static void main(String[] args) {
// System.setProperty("instanceId",getMqInstanceId());
// System.out.println(System.getProperty("instanceId"));
// }
}
package util;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Author wangmenglong
* @Description 公共工具类
* @Date 2022/3/8 10:04
* @Version 1.0
*/
public class CommonUtils {
/**
* @Author wangmenglong
* @Description 去除字符串中的空格、回车、换行符、制表符
* @Date 2022/3/8 10:22
* @Param [str]
* @return java.lang.String
**/
public static String replaceBlank(String str) {
String dest = "";
if (!StringUtils.isEmpty(str)) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(str);
dest = m.replaceAll("");
}
return dest;
}
/**
* @author: wangmenglong
* @date; 2024/1/9 15:26
* @description: 计算当前时间距离明天凌晨0时0分0秒的秒数
* @param: [currentDate]
* @return: java.lang.Integer
**/
public static Integer getRemainSecondsOneDay(Date currentDate) {
//使用plusDays加传入的时间加1天,将时分秒设置成0
LocalDateTime midnight = LocalDateTime.ofInstant(currentDate.toInstant(),
ZoneId.systemDefault()).plusDays(1).withHour(0).withMinute(0)
.withSecond(0).withNano(0);
LocalDateTime currentDateTime = LocalDateTime.ofInstant(currentDate.toInstant(),
ZoneId.systemDefault());
//使用ChronoUnit.SECONDS.between方法,传入两个LocalDateTime对象即可得到相差的秒数
long seconds = ChronoUnit.SECONDS.between(currentDateTime, midnight);
return (int) seconds;
}
/**
* @author: wangmenglong
* @date; 2024/3/8 14:42
* @description: 获取两个日期之间所有的日期yyyy-MM-dd
* @param: [startDate, endDate]
* @return: java.util.List<java.lang.String>
**/
public static List<String> getDateRange(String startDate, String endDate) {
List<String> dateRange = new ArrayList<>();
LocalDate startLocalDate = LocalDate.parse(startDate);
LocalDate endLocalDate = LocalDate.parse(endDate);
long daysBetween = ChronoUnit.DAYS.between(startLocalDate, endLocalDate);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
for (int i = 0; i <= daysBetween; i++) {
LocalDate currentDate = startLocalDate.plusDays(i);
String localDateNowStr = currentDate.format(formatter);
dateRange.add(localDateNowStr);
}
return dateRange;
}
/**
* @author: wangmenglong
* @date; 2024/3/8 14:42
* @description: 获取两个日期之间所有的月份yyyy-MM
* @param: [startDate, endDate]
* @return: java.util.List<java.lang.String>
**/
public static List<String> getMonthDateRange(String startDate, String endDate) {
List<String> dateRange = new ArrayList<>();
LocalDate startLocalDate = LocalDate.parse(startDate);
LocalDate endLocalDate = LocalDate.parse(endDate);
long monthsBetween = ChronoUnit.MONTHS.between(startLocalDate, endLocalDate);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
for (int i = 0; i <= monthsBetween; i++) {
LocalDate date = startLocalDate.plusMonths(i);
String localDateNowStr = date.format(formatter);
dateRange.add(localDateNowStr);
}
return dateRange;
}
/**
* @author: wangmenglong
* @date; 2024/5/15 18:13
* @description: 比较金额是否在区间范围内
* @param: [value, lower, upper]
* @return: boolean
**/
public static boolean isInRange(BigDecimal value, BigDecimal lower, BigDecimal upper) {
int lowerCompare = value.compareTo(lower);
int upperCompare = value.compareTo(upper);
return lowerCompare >= 0 && upperCompare <= 0;
}
}
package util;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
/**
* 常用配置
*/
public class ConfigCache {
/**
* 数值及状态名
*/
private static Map<Integer, String> valStateMap;
/**
* 状态名及数值
*/
private static Map<String, Integer> stateValMap;
private static ConfigCache instance;
private ConfigCache() {
valStateMap = new HashMap<>();
/**
* 招聘状态取值
* 报备report 1,状态:上车:bycar 2,到达:arrived 3,面试:interview 4,面试通过:interviewpass 5,入职:entry 6
*/
valStateMap.put(2, "bycar");
valStateMap.put(3, "arrived");
valStateMap.put(4, "interview");
valStateMap.put(5, "interviewpass");
valStateMap.put(6, "entry");
stateValMap = new HashMap<>();
stateValMap.put("bycar", 2);
stateValMap.put("arrived", 3);
stateValMap.put("interview", 4);
}
public static ConfigCache getInstance() {
if (instance == null) {
instance = new ConfigCache();
}
return instance;
}
public Map<Integer, String> getValStateMap() {
return valStateMap;
}
public Map<String, Integer> getstateValMap() {
return stateValMap;
}
}
package util;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
import java.util.Objects;
import java.util.TreeMap;
/**
* @author yuetianwang
* @description 加密工具类
* @date 2021/8/4 18:38
*/
public class CryptoUtil {
public static final String SALT = "K2mQCycm";
/**
* 加盐签名
*
* @param map 签名的数据
* @return
*/
public static String SHA256(String slat, TreeMap<String, Object> map) {
StringBuilder sb = new StringBuilder();
map.forEach((k, v) -> {
sb.append(k).append("=").append("v");
sb.append("&");
});
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
sb.append(slat);
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
messageDigest.update(sb.toString().getBytes(StandardCharsets.UTF_8));
byte[] digest = messageDigest.digest();
return byte2Hex(digest);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
/**
* 校验加盐签名
*
* @param map 签名的数据
* @param sign 比对的签名
* @return
*/
public static boolean SHA256Validate(String slat, TreeMap<String, Object> map, String sign) {
String otherSign = SHA256(slat, map);
return Objects.equals(sign, otherSign);
}
/**
* 将byte转为16进制
*
* @param bytes
* @return
*/
private static String byte2Hex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
String temp = null;
for (int i = 0; i < bytes.length; i++) {
temp = Integer.toHexString(bytes[i] & 0xFF);
if (temp.length() == 1) {
//1得到一位的进行补0操作
sb.append("0");
}
sb.append(temp);
}
return sb.toString();
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论