diff --git a/pom.xml b/pom.xml index 9fb7ab85e5ac9927849b9144f4f793aa09b34d3d..e25b6cf100d3cd9d90d552017f8154dd8c4bed9c 100644 --- a/pom.xml +++ b/pom.xml @@ -1,121 +1,72 @@ - + 4.0.0 - com.hz - getjob_backend - 0.0.1-SNAPSHOT - getjob_backend - Demo project for Spring Boot + + org.springframework.boot + spring-boot-starter-parent + 2.2.6.RELEASE + + + club.kittybunny + GetJobSys_BackEnd + 1.0-SNAPSHOT 1.8 - UTF-8 - UTF-8 - 2.3.0.RELEASE - org.springframework.boot spring-boot-starter-web - org.springframework.boot - spring-boot-starter-actuator + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.2 - org.springframework.boot - spring-boot-starter-aop + org.apache.commons + commons-dbcp2 - - org.springframework.boot - spring-boot-starter-test - test - - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - - org.mybatis.generator - mybatis-generator-core - 1.3.5 - - - mysql mysql-connector-java - 8.0.15 - - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - org.springframework.boot spring-boot-starter-test test + + + org.junit.vintage + junit-vintage-engine + + - - - - org.springframework.boot - spring-boot-dependencies - ${spring-boot.version} - pom - import - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - 1.8 - 1.8 - UTF-8 - - org.springframework.boot spring-boot-maven-plugin - 2.3.0.RELEASE - - com.hz.GetjobBackendApplication - - - - repackage - - repackage - - - + + + + + maven-compiler-plugin + + 1.8 + 1.8 + + + + - + \ No newline at end of file diff --git a/src/main/java/club/kittybunny/getjobsysbackend/GetJobSysApplication.java b/src/main/java/club/kittybunny/getjobsysbackend/GetJobSysApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..3d2aa736c131b702479043dac3481c76875b974e --- /dev/null +++ b/src/main/java/club/kittybunny/getjobsysbackend/GetJobSysApplication.java @@ -0,0 +1,17 @@ +package club.kittybunny.getjobsysbackend; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @Author: bunny + * @Description: 我是兔子我会喵,我叫喵星兔 + */ +@MapperScan(basePackages = {"club.kittybunny.getjobsysbackend.dao"}) +@SpringBootApplication +public class GetJobSysApplication { + public static void main(String[] args) { + SpringApplication.run(GetJobSysApplication.class, args); + } +} diff --git a/src/main/java/club/kittybunny/getjobsysbackend/controller/JobTypeController.java b/src/main/java/club/kittybunny/getjobsysbackend/controller/JobTypeController.java new file mode 100644 index 0000000000000000000000000000000000000000..a1340ad33cd78ab64d35ecf6006fcf57ba70a793 --- /dev/null +++ b/src/main/java/club/kittybunny/getjobsysbackend/controller/JobTypeController.java @@ -0,0 +1,124 @@ +package club.kittybunny.getjobsysbackend.controller; + +import club.kittybunny.getjobsysbackend.entity.JobType; +import club.kittybunny.getjobsysbackend.service.JobTypeService; +import club.kittybunny.getjobsysbackend.vo.JobTypeEditVO; +import club.kittybunny.getjobsysbackend.vo.JobTypeVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: bunny + * @Description: 我是兔子我会喵,我叫喵星兔 + */ +@RestController +@RequestMapping(value = "/jobtype") +public class JobTypeController { + @Autowired + private JobTypeService jobTypeService; + + /** + * 访问地址:http://127.0.0.1:8777/jobtype/findbyupper/0 0是参数 + * + * 首页查询职位分类用,get方式调用 + * + * @param upperid 父节点主键,如果是0说明没有父节点。传入0查询出最大分类,传入id查询这个id主分类下子分类 + * @return + */ + @RequestMapping(value = "/findbyupper/{upperid}", method = RequestMethod.GET) + public List findJobTypeByUpper(@PathVariable("upperid") int upperid) { + List result = new ArrayList(); + + try { + List list = jobTypeService.findByUpperid(upperid, true); + for (JobType type : list) { + result.add(new JobTypeVO().create(type)); + } + + } catch (Exception e) { + e.printStackTrace(); + result = new ArrayList(); + } + + + return result; + } + + /** + * 新增分类时使用,只支持post + * + * 测试命令(post方式) curl -d "name=测试&upperId=1" http://127.0.0.1:8777/jobtype/insert + * + * @param name 工作类型名字,非空 + * @param upperId 上级节点主键,空或者数据库不存在则判断为0 + * @return + */ + @RequestMapping(value = "/insert", method = RequestMethod.POST) + public int insert(@RequestParam String name, Integer upperId) { + int id = jobTypeService.insert(name, upperId, 1); + return id; + } + + /** + * 访问地址:http://127.0.0.1:8777/jobtype/findbyid/1 1是参数主键 + * + * 根据主键查询分类信息,用于修改等场景,get方式 + * 只要是数据库有的数据直接查询出来,不管是否生效 + * + * @param id 主键,非空 + * @return + */ + @RequestMapping(value = "/findbyid/{id}", method = RequestMethod.GET) + public JobTypeEditVO findById(@PathVariable("id") int id) { + JobTypeEditVO result = new JobTypeEditVO(); + JobType jobType = jobTypeService.findById(id); + if (jobType == null) { + return null; + } + result = new JobTypeEditVO().create(jobType); + return result; + } + /** + * 接口地址和测试命令(post方式) curl -d "id=2&name=1&status=1" http://127.0.0.1:8777/jobtype/update + * + * 修改分类时使用,只支持post, + * 只能修改名字和是否生效,暂时设计为修改父节点要通过删除和增加实现,所以父节点id、菜单层级等无法修改。 + * + * + * @param id 主键,非空 + * @param name 工作类型名字,非空 + * @param status 是否生效,非空,1-生效,0-无效 + * @return 成功修改的数据条数,1-成功,0-失败 + */ + @RequestMapping(value = "/update", method = RequestMethod.POST) + public int update(@RequestParam Integer id,@RequestParam String name, @RequestParam String status) { + JobType obj = new JobType(); + obj.setId(id); + obj.setName(name); + obj.setStatus(status); + int result = jobTypeService.updateById(obj); + return result; + } + /** + * 访问地址: http://127.0.0.1:8777/jobtype/deleteById/1 1是主键参数 + * + * 根据主键删除分类信息,get方式 + * 为真实删除,若想分类不生效或者隐藏应该修改类型状态为不生效(status=0) + * 只能没有子分类或者没有相应职位的才可以删除,否则删除失败。 + * 如果像删除有子分类的可以考虑设置为无效状态。 + * + * 是否有职位目前未完成,因为还没有职位表。 + * + * @param id 主键,非空 + * @return 1-删除成功,0-删除失败。 + */ + @RequestMapping(value = "/deleteById/{id}", method = RequestMethod.GET) + public int deleteById(@PathVariable("id") int id) { + int result = jobTypeService.deleteById(id); + return result; + } + +} diff --git a/src/main/java/club/kittybunny/getjobsysbackend/dao/JobTypeMapper.java b/src/main/java/club/kittybunny/getjobsysbackend/dao/JobTypeMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..db4eada0131586a60e7be326bce9518f03f6df98 --- /dev/null +++ b/src/main/java/club/kittybunny/getjobsysbackend/dao/JobTypeMapper.java @@ -0,0 +1,30 @@ +package club.kittybunny.getjobsysbackend.dao; + +import club.kittybunny.getjobsysbackend.entity.JobType; +import club.kittybunny.getjobsysbackend.entity.JobTypeExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface JobTypeMapper { + long countByExample(JobTypeExample example); + + int deleteByExample(JobTypeExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(JobType record); + + int insertSelective(JobType record); + + List selectByExample(JobTypeExample example); + + JobType selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") JobType record, @Param("example") JobTypeExample example); + + int updateByExample(@Param("record") JobType record, @Param("example") JobTypeExample example); + + int updateByPrimaryKeySelective(JobType record); + + int updateByPrimaryKey(JobType record); +} \ No newline at end of file diff --git a/src/main/java/club/kittybunny/getjobsysbackend/entity/JobType.java b/src/main/java/club/kittybunny/getjobsysbackend/entity/JobType.java new file mode 100644 index 0000000000000000000000000000000000000000..3a24cee47def41e0b279056e0dee83ee2bde103e --- /dev/null +++ b/src/main/java/club/kittybunny/getjobsysbackend/entity/JobType.java @@ -0,0 +1,63 @@ +package club.kittybunny.getjobsysbackend.entity; + +public class JobType { + private Integer id; + + private String name; + + private Integer upperId; + + private Integer level; + + private String status; + + private Integer serno; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public Integer getUpperId() { + return upperId; + } + + public void setUpperId(Integer upperId) { + this.upperId = upperId; + } + + public Integer getLevel() { + return level; + } + + public void setLevel(Integer level) { + this.level = level; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public Integer getSerno() { + return serno; + } + + public void setSerno(Integer serno) { + this.serno = serno; + } +} \ No newline at end of file diff --git a/src/main/java/club/kittybunny/getjobsysbackend/entity/JobTypeExample.java b/src/main/java/club/kittybunny/getjobsysbackend/entity/JobTypeExample.java new file mode 100644 index 0000000000000000000000000000000000000000..bab523d4efb1702c139c909b90b882d1a57f9674 --- /dev/null +++ b/src/main/java/club/kittybunny/getjobsysbackend/entity/JobTypeExample.java @@ -0,0 +1,580 @@ +package club.kittybunny.getjobsysbackend.entity; + +import java.util.ArrayList; +import java.util.List; + +public class JobTypeExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public JobTypeExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andUpperIdIsNull() { + addCriterion("upper_id is null"); + return (Criteria) this; + } + + public Criteria andUpperIdIsNotNull() { + addCriterion("upper_id is not null"); + return (Criteria) this; + } + + public Criteria andUpperIdEqualTo(Integer value) { + addCriterion("upper_id =", value, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdNotEqualTo(Integer value) { + addCriterion("upper_id <>", value, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdGreaterThan(Integer value) { + addCriterion("upper_id >", value, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdGreaterThanOrEqualTo(Integer value) { + addCriterion("upper_id >=", value, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdLessThan(Integer value) { + addCriterion("upper_id <", value, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdLessThanOrEqualTo(Integer value) { + addCriterion("upper_id <=", value, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdIn(List values) { + addCriterion("upper_id in", values, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdNotIn(List values) { + addCriterion("upper_id not in", values, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdBetween(Integer value1, Integer value2) { + addCriterion("upper_id between", value1, value2, "upperId"); + return (Criteria) this; + } + + public Criteria andUpperIdNotBetween(Integer value1, Integer value2) { + addCriterion("upper_id not between", value1, value2, "upperId"); + return (Criteria) this; + } + + public Criteria andLevelIsNull() { + addCriterion("level is null"); + return (Criteria) this; + } + + public Criteria andLevelIsNotNull() { + addCriterion("level is not null"); + return (Criteria) this; + } + + public Criteria andLevelEqualTo(Integer value) { + addCriterion("level =", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotEqualTo(Integer value) { + addCriterion("level <>", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThan(Integer value) { + addCriterion("level >", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThanOrEqualTo(Integer value) { + addCriterion("level >=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThan(Integer value) { + addCriterion("level <", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThanOrEqualTo(Integer value) { + addCriterion("level <=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelIn(List values) { + addCriterion("level in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotIn(List values) { + addCriterion("level not in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelBetween(Integer value1, Integer value2) { + addCriterion("level between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotBetween(Integer value1, Integer value2) { + addCriterion("level not between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(String value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(String value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(String value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(String value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(String value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(String value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLike(String value) { + addCriterion("status like", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotLike(String value) { + addCriterion("status not like", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(String value1, String value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(String value1, String value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andSernoIsNull() { + addCriterion("serno is null"); + return (Criteria) this; + } + + public Criteria andSernoIsNotNull() { + addCriterion("serno is not null"); + return (Criteria) this; + } + + public Criteria andSernoEqualTo(Integer value) { + addCriterion("serno =", value, "serno"); + return (Criteria) this; + } + + public Criteria andSernoNotEqualTo(Integer value) { + addCriterion("serno <>", value, "serno"); + return (Criteria) this; + } + + public Criteria andSernoGreaterThan(Integer value) { + addCriterion("serno >", value, "serno"); + return (Criteria) this; + } + + public Criteria andSernoGreaterThanOrEqualTo(Integer value) { + addCriterion("serno >=", value, "serno"); + return (Criteria) this; + } + + public Criteria andSernoLessThan(Integer value) { + addCriterion("serno <", value, "serno"); + return (Criteria) this; + } + + public Criteria andSernoLessThanOrEqualTo(Integer value) { + addCriterion("serno <=", value, "serno"); + return (Criteria) this; + } + + public Criteria andSernoIn(List values) { + addCriterion("serno in", values, "serno"); + return (Criteria) this; + } + + public Criteria andSernoNotIn(List values) { + addCriterion("serno not in", values, "serno"); + return (Criteria) this; + } + + public Criteria andSernoBetween(Integer value1, Integer value2) { + addCriterion("serno between", value1, value2, "serno"); + return (Criteria) this; + } + + public Criteria andSernoNotBetween(Integer value1, Integer value2) { + addCriterion("serno not between", value1, value2, "serno"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/src/main/java/club/kittybunny/getjobsysbackend/service/JobTypeService.java b/src/main/java/club/kittybunny/getjobsysbackend/service/JobTypeService.java new file mode 100644 index 0000000000000000000000000000000000000000..744804f6f75a1b1e2317f32df1ae519505b952bb --- /dev/null +++ b/src/main/java/club/kittybunny/getjobsysbackend/service/JobTypeService.java @@ -0,0 +1,85 @@ +package club.kittybunny.getjobsysbackend.service; + +import club.kittybunny.getjobsysbackend.dao.JobTypeMapper; +import club.kittybunny.getjobsysbackend.entity.JobType; +import club.kittybunny.getjobsysbackend.entity.JobTypeExample; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: bunny + * @Description: 我是兔子我会喵,我叫喵星兔 + */ +@Service +public class JobTypeService { + @Autowired + private JobTypeMapper jobTypeMapper; + + /** + * + * @param upperid 父节点主键 + * @param status 是否要求生效状态,如果是false则查询所有,true则查询生效的 + * @return + * @throws Exception + */ + public List findByUpperid(int upperid, boolean status) throws Exception { + JobTypeExample e = new JobTypeExample(); + + if (status) { + e.or().andUpperIdEqualTo(upperid).andStatusEqualTo("1"); + } else { + e.or().andUpperIdEqualTo(upperid); + } + List list = jobTypeMapper.selectByExample(e); + return list == null ? new ArrayList() : list; + } + + public int insert(String name, Integer upperId, Integer serno) { + JobType obj = new JobType(); + obj.setName(name); + obj.setStatus("1"); + obj.setSerno(serno > 0 ? serno : 1); + JobType upper = jobTypeMapper.selectByPrimaryKey(upperId); + if (upper == null) { + obj.setLevel(1); + obj.setUpperId(0); + + } else { + obj.setLevel(upper.getLevel() + 1); + obj.setUpperId(upperId); + } + int result = jobTypeMapper.insert(obj); + return obj.getId()== null ? 0 : obj.getId(); + } + + public JobType findById(int id) { + return jobTypeMapper.selectByPrimaryKey(id); + } + + public int updateById(JobType obj) { + return jobTypeMapper.updateByPrimaryKeySelective(obj); + } + + /** + * 根据主键删除 + * 只能没有子分类或者没有相应职位的才可以删除,否则删除失败。 + * @param id + * @return + */ + public int deleteById(int id) { + //是否有子分类 + JobTypeExample e = new JobTypeExample(); + e.or().andUpperIdEqualTo(id); + List list = jobTypeMapper.selectByExample(e); + if (list.size() > 0) { + return 0; + } + //是否有职位,待定 + + + return jobTypeMapper.deleteByPrimaryKey(id); + } +} diff --git a/src/main/java/club/kittybunny/getjobsysbackend/vo/JobTypeEditVO.java b/src/main/java/club/kittybunny/getjobsysbackend/vo/JobTypeEditVO.java new file mode 100644 index 0000000000000000000000000000000000000000..ddd0540755f478cb7a902345fcd9485acf511ac8 --- /dev/null +++ b/src/main/java/club/kittybunny/getjobsysbackend/vo/JobTypeEditVO.java @@ -0,0 +1,43 @@ +package club.kittybunny.getjobsysbackend.vo; + +import club.kittybunny.getjobsysbackend.entity.JobType; + +/** + * @Author: bunny + * @Description: 我是兔子我会喵,我叫喵星兔 + */ +public class JobTypeEditVO { + private Integer id; + private String name; + private String status; + public JobTypeEditVO create(JobType jobType) { + this.id = jobType.getId(); + this.name = jobType.getName(); + this.status = jobType.getStatus(); + return this; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/src/main/java/club/kittybunny/getjobsysbackend/vo/JobTypeVO.java b/src/main/java/club/kittybunny/getjobsysbackend/vo/JobTypeVO.java new file mode 100644 index 0000000000000000000000000000000000000000..839128dfcf403e424b2324bcdb5f588860002be7 --- /dev/null +++ b/src/main/java/club/kittybunny/getjobsysbackend/vo/JobTypeVO.java @@ -0,0 +1,43 @@ +package club.kittybunny.getjobsysbackend.vo; + +import club.kittybunny.getjobsysbackend.entity.JobType; + +/** + * @Author: bunny + * @Description: 我是兔子我会喵,我叫喵星兔 + */ +public class JobTypeVO { + private Integer id; + private String name; + //private Integer serno; + public JobTypeVO create(JobType jobType) { + this.id = jobType.getId(); + this.name = jobType.getName(); + //this.serno = jobType.getSerno(); + return this; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /* public Integer getSerno() { + return serno; + } + + public void setSerno(Integer serno) { + this.serno = serno; + }*/ +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 2ee3dd79cb51702bd51b130204920584a85c0a29..3d0ee1d236886cc96ce06d3d38138519eb543b6f 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,13 +1,21 @@ -#应用程序名称 -spring.application.name=getjob_backend -#访问端口号 -server.address=127.0.0.1 -server.port=8089 -#编码格式 -server.tomcat.uri-encoding=utf-8 -# 数据库相关配置 -spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.url=jdbc:mysql://localhost:3306/db_getJob?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +server.port=8777 +#server.servlet.context-path=/bunnybatis +spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource +spring.datasource.dbcp2.max-wait-millis=60000 +spring.datasource.dbcp2.min-idle=20 +spring.datasource.dbcp2.initial-size=2 +spring.datasource.dbcp2.validation-query=SELECT 1 +spring.datasource.dbcp2.connection-properties=characterEncoding=utf8 +spring.datasource.dbcp2.test-while-idle=true +spring.datasource.dbcp2.test-on-borrow=true +spring.datasource.dbcp2.test-on-return=false + +spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver +spring.datasource.url=jdbc:mysql://127.0.0.1:3306/getjobsys?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC spring.datasource.username=root -spring.datasource.password=long -mybatis.mapper-locations=classpath:mapper/*.xml,classpath*:com/**/mapper/*.xml \ No newline at end of file +spring.datasource.password=123456 + + +#mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl + +mybatis.mapper-locations=classpath:mybatis/sqlmap/*.xml \ No newline at end of file diff --git a/src/main/resources/db/getjobsys.sql b/src/main/resources/db/getjobsys.sql new file mode 100644 index 0000000000000000000000000000000000000000..964c0e2492a23ecfb1f2164c2be71662492acaf0 --- /dev/null +++ b/src/main/resources/db/getjobsys.sql @@ -0,0 +1,54 @@ +/* + Navicat MySQL Data Transfer + + Source Server : ali + Source Server Type : MySQL + Source Server Version : 50562 + Source Host : localhost:3306 + Source Schema : getjobsys + + Target Server Type : MySQL + Target Server Version : 50562 + File Encoding : 65001 + + Date: 18/08/2020 09:55:50 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for t_job_type +-- ---------------------------- +DROP TABLE IF EXISTS `t_job_type`; +CREATE TABLE `t_job_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键,自增长', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '职位类别名称', + `upper_id` int(11) NOT NULL COMMENT '上级分类主键', + `level` int(11) NOT NULL COMMENT '分类层级', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '是否生效,1-生效,0-无效', + `serno` int(11) NOT NULL COMMENT '同级别编号,目前未使用', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact; + +-- ---------------------------- +-- Records of t_job_type +-- ---------------------------- +INSERT INTO `t_job_type` VALUES (1, '互联网IT', 0, 1, '1', 1); +INSERT INTO `t_job_type` VALUES (2, '金融', 0, 1, '1', 1); +INSERT INTO `t_job_type` VALUES (4, 'UI设计', 1, 1, '1', 1); +INSERT INTO `t_job_type` VALUES (5, '投资经理', 2, 1, '1', 1); +INSERT INTO `t_job_type` VALUES (6, '财产保险', 2, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (7, '服务业', 0, 1, '1', 1); +INSERT INTO `t_job_type` VALUES (8, '贸易/零售', 0, 1, '1', 1); +INSERT INTO `t_job_type` VALUES (9, '算法工程师', 1, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (10, '产品经理', 1, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (11, '精算师', 2, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (12, '导游', 7, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (13, '保安', 7, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (14, '美容师', 7, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (15, '外贸跟单', 8, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (16, '销售', 8, 2, '1', 1); +INSERT INTO `t_job_type` VALUES (17, '人事/行政', 0, 1, '1', 1); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/src/main/resources/mybatis/sqlmap/JobTypeMapper.xml b/src/main/resources/mybatis/sqlmap/JobTypeMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..583194d96496d6237cec5b32264d957ca9273034 --- /dev/null +++ b/src/main/resources/mybatis/sqlmap/JobTypeMapper.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, upper_id, level, status, serno + + + + + delete from t_job_type + where id = #{id,jdbcType=INTEGER} + + + delete from t_job_type + + + + + + + SELECT LAST_INSERT_ID() + + insert into t_job_type (name, upper_id, level, + status, serno) + values (#{name,jdbcType=VARCHAR}, #{upperId,jdbcType=INTEGER}, #{level,jdbcType=INTEGER}, + #{status,jdbcType=CHAR}, #{serno,jdbcType=INTEGER}) + + + + SELECT LAST_INSERT_ID() + + insert into t_job_type + + + name, + + + upper_id, + + + level, + + + status, + + + serno, + + + + + #{name,jdbcType=VARCHAR}, + + + #{upperId,jdbcType=INTEGER}, + + + #{level,jdbcType=INTEGER}, + + + #{status,jdbcType=CHAR}, + + + #{serno,jdbcType=INTEGER}, + + + + + + update t_job_type + + + id = #{record.id,jdbcType=INTEGER}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + upper_id = #{record.upperId,jdbcType=INTEGER}, + + + level = #{record.level,jdbcType=INTEGER}, + + + status = #{record.status,jdbcType=CHAR}, + + + serno = #{record.serno,jdbcType=INTEGER}, + + + + + + + + update t_job_type + set id = #{record.id,jdbcType=INTEGER}, + name = #{record.name,jdbcType=VARCHAR}, + upper_id = #{record.upperId,jdbcType=INTEGER}, + level = #{record.level,jdbcType=INTEGER}, + status = #{record.status,jdbcType=CHAR}, + serno = #{record.serno,jdbcType=INTEGER} + + + + + + update t_job_type + + + name = #{name,jdbcType=VARCHAR}, + + + upper_id = #{upperId,jdbcType=INTEGER}, + + + level = #{level,jdbcType=INTEGER}, + + + status = #{status,jdbcType=CHAR}, + + + serno = #{serno,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update t_job_type + set name = #{name,jdbcType=VARCHAR}, + upper_id = #{upperId,jdbcType=INTEGER}, + level = #{level,jdbcType=INTEGER}, + status = #{status,jdbcType=CHAR}, + serno = #{serno,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/src/test/java/Test.java b/src/test/java/Test.java new file mode 100644 index 0000000000000000000000000000000000000000..ca34f763b8e733e0f9bd542d3b45b23081eed91d --- /dev/null +++ b/src/test/java/Test.java @@ -0,0 +1,6 @@ +/** + * @Author: bunny + * @Description: 我是兔子我会喵,我叫喵星兔 + */ +public class Test { +}