WechatGroup
This commit is contained in:
116
ruoyi-bussiness/pom.xml
Normal file
116
ruoyi-bussiness/pom.xml
Normal file
@@ -0,0 +1,116 @@
|
||||
<?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">
|
||||
<parent>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<version>3.8.8</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>ruoyi-bussiness</artifactId>
|
||||
|
||||
<description>
|
||||
bussiness系统模块
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.nls</groupId>
|
||||
<artifactId>nls-sdk-tts</artifactId>
|
||||
<version>2.2.14</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.nls</groupId>
|
||||
<artifactId>nls-sdk-common</artifactId>
|
||||
<version>2.2.14</version>
|
||||
</dependency>
|
||||
<!-- 通用工具-->
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.nls</groupId>
|
||||
<artifactId>nls-sdk-recognizer</artifactId>
|
||||
<version>2.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>1.6.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-spring-web</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-models</artifactId>
|
||||
<version>1.6.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.ruoyi</groupId>-->
|
||||
<!-- <artifactId>ruoyi-framework</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>easyexcel</artifactId>
|
||||
<version>4.0.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.elasticsearch.client</groupId>
|
||||
<artifactId>elasticsearch-rest-high-level-client</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.elasticsearch</groupId>
|
||||
<artifactId>elasticsearch</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.elasticsearch.client</groupId>
|
||||
<artifactId>elasticsearch-rest-high-level-client</artifactId>
|
||||
<version>7.14.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.elasticsearch</groupId>
|
||||
<artifactId>elasticsearch</artifactId>
|
||||
<version>7.14.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara.easy-es</groupId>
|
||||
<artifactId>easy-es-boot-starter</artifactId>
|
||||
<version>2.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>5.7.22</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-websocket</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.cms.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
|
||||
|
||||
@Configuration
|
||||
public class WebSocketConfig {
|
||||
|
||||
/**
|
||||
* 注册 WebSocket 端点
|
||||
*/
|
||||
@Bean
|
||||
public ServerEndpointExporter serverEndpointExporter() {
|
||||
return new ServerEndpointExporter();
|
||||
}
|
||||
}
|
@@ -0,0 +1,10 @@
|
||||
package com.ruoyi.cms.constant;
|
||||
|
||||
public class CommonConstant {
|
||||
/**
|
||||
* 地铁线路缓存
|
||||
*/
|
||||
public static final String SUBWAY_LINE_CACHE = "common_cache:subway";
|
||||
public static final String COMMERICIAL_AREA = "common_cache:comericial_area";
|
||||
public static final String JOB_TITLE = "common_cache:job_titile";
|
||||
}
|
@@ -0,0 +1,82 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.cms.domain.BussinessDictData;
|
||||
import com.ruoyi.cms.domain.CommercialArea;
|
||||
import com.ruoyi.cms.domain.SubwayLine;
|
||||
import com.ruoyi.cms.service.*;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.TreeSelect;
|
||||
import com.ruoyi.common.core.domain.entity.JobTitle;
|
||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.ruoyi.common.utils.PageUtils.startPage;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/app/common")
|
||||
@Api(tags = "移动端:常用参数查询")
|
||||
public class AppCommonController extends BaseController {
|
||||
@Autowired
|
||||
private ISubwayLineService iSubwayLineService;
|
||||
@Autowired
|
||||
private ICommercialAreaService iCommercialAreaService;
|
||||
@Autowired
|
||||
private IJobTitleService iJobTitleService;
|
||||
@Autowired
|
||||
private IIndustryService industryService;
|
||||
@Autowired
|
||||
private IBussinessDictTypeService iBussinessDictTypeService;
|
||||
@ApiOperation("查询地铁")
|
||||
@GetMapping("/subway")
|
||||
public AjaxResult subway()
|
||||
{
|
||||
List<SubwayLine> list = iSubwayLineService.appSubway();
|
||||
return success(list);
|
||||
}
|
||||
@ApiOperation("查询商圈")
|
||||
@GetMapping("/commercialArea")
|
||||
public AjaxResult commercialArea()
|
||||
{
|
||||
List<CommercialArea> list = iCommercialAreaService.appCommercialArea();
|
||||
return success(list);
|
||||
}
|
||||
@ApiOperation("查询职业 树结构")
|
||||
@GetMapping("/jobTitle/treeselect")
|
||||
public AjaxResult jobTitle()
|
||||
{
|
||||
List<TreeSelect> jobTitleList = iJobTitleService.appJobTitle();
|
||||
return success(jobTitleList);
|
||||
}
|
||||
@ApiOperation("查询行业 树结构")
|
||||
@GetMapping("/industry/treeselect")
|
||||
public AjaxResult industry()
|
||||
{
|
||||
List<TreeSelect> industryList = industryService.appIndustry();
|
||||
return success(industryList);
|
||||
}
|
||||
@ApiOperation("查询字典")
|
||||
@GetMapping("/dict/{dictType}")
|
||||
public AjaxResult listDict(@PathVariable String dictType)
|
||||
{
|
||||
List<BussinessDictData> dictData = iBussinessDictTypeService.selectDictDataByType(dictType);
|
||||
return success(dictData);
|
||||
}
|
||||
@GetMapping("/standar/filed")
|
||||
public AjaxResult standarFiled()
|
||||
{
|
||||
Map<String,Object> filed = iBussinessDictTypeService.standarFiled();
|
||||
return success(filed);
|
||||
}
|
||||
}
|
@@ -0,0 +1,139 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessDictData;
|
||||
import com.ruoyi.cms.domain.Company;
|
||||
import com.ruoyi.cms.domain.CompanyCard;
|
||||
import com.ruoyi.cms.domain.query.LabelQuery;
|
||||
import com.ruoyi.cms.mapper.CompanyCardMapper;
|
||||
import com.ruoyi.cms.service.ICompanyCardService;
|
||||
import com.ruoyi.cms.service.ICompanyCollectionService;
|
||||
import com.ruoyi.cms.service.ICompanyService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.page.TableSupport;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/company")
|
||||
@Api(tags = "移动端:公司")
|
||||
public class AppCompanyController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ICompanyService companyService;
|
||||
@Autowired
|
||||
private ICompanyCollectionService companyCollectionService;
|
||||
@Autowired
|
||||
private ICompanyCardService companyCardService;
|
||||
@Autowired
|
||||
private CompanyCardMapper companyCardMapper;
|
||||
/**
|
||||
* 获取公司详细信息
|
||||
*/
|
||||
@ApiOperation("获取公司详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:company:query')")
|
||||
@GetMapping(value = "/{companyId}")
|
||||
public AjaxResult getInfo(@PathVariable("companyId") Long companyId)
|
||||
{
|
||||
return success(companyService.selectCompanyByCompanyId(companyId));
|
||||
}
|
||||
/**
|
||||
* 用户收藏公司
|
||||
*/
|
||||
@Log(title = "用户收藏公司")
|
||||
@PostMapping("/collection/{companyId}")
|
||||
@ApiOperation("用户收藏公司")
|
||||
public AjaxResult companyCollection(@PathVariable("companyId") Long companyId)
|
||||
{
|
||||
return toAjax(companyCollectionService.companyCollection(companyId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户取消收藏公司
|
||||
*/
|
||||
@Log(title = "用户取消收藏公司")
|
||||
@DeleteMapping("/collection/{companyId}")
|
||||
@ApiOperation("用户取消收藏公司")
|
||||
public AjaxResult companyCancel(@PathVariable("companyId") Long companyId)
|
||||
{
|
||||
return toAjax(companyCollectionService.companyCancel(companyId));
|
||||
}
|
||||
/**
|
||||
* 公司下的岗位
|
||||
*/
|
||||
@Log(title = "公司下的岗位")
|
||||
@GetMapping("/job/{companyId}")
|
||||
@ApiOperation("公司下的岗位")
|
||||
public TableDataInfo jobCompany(@ApiParam("公司id") @PathVariable Long companyId)
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(companyCollectionService.jobCompany(companyId));
|
||||
}
|
||||
@Log(title = "查看企业卡片")
|
||||
@GetMapping("/card")
|
||||
@ApiOperation("查看企业卡片")
|
||||
public TableDataInfo card()
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(companyCardService.cardApp());
|
||||
}
|
||||
@Log(title = "收藏企业卡片")
|
||||
@PutMapping("/card/collection/{companyCardId}")
|
||||
@ApiOperation("收藏企业卡片")
|
||||
public AjaxResult cardCollection(@PathVariable Long companyCardId)
|
||||
{
|
||||
companyCardService.cardCollection(companyCardId);
|
||||
return success();
|
||||
}
|
||||
@Log(title = "取消收藏企业卡片")
|
||||
@DeleteMapping("/card/collection/{companyCardId}")
|
||||
@ApiOperation("取消收藏公司卡片")
|
||||
public AjaxResult cardCancel(@PathVariable Long companyCardId)
|
||||
{
|
||||
companyCardService.cardCancel(companyCardId);
|
||||
return success();
|
||||
}
|
||||
@Log(title = "公司招聘的岗位数量")
|
||||
@GetMapping("/count/{companyId}")
|
||||
@ApiOperation("公司招聘的岗位数量")
|
||||
public AjaxResult count(@PathVariable Long companyId)
|
||||
{
|
||||
Integer count = companyService.count(companyId);
|
||||
return success(count);
|
||||
}
|
||||
@Log(title = "公司标签下的公司")
|
||||
@GetMapping("/label")
|
||||
@ApiOperation("公司标签下的公司")
|
||||
public TableDataInfo label(LabelQuery labelQuery)
|
||||
{
|
||||
CompanyCard companyCard = companyCardMapper.selectById(labelQuery.getCardId());
|
||||
startPage();
|
||||
List<Company> companyList = companyService.label(companyCard,labelQuery);
|
||||
return getDataTable(companyList);
|
||||
}
|
||||
@GetMapping("/importLabel500")
|
||||
public void importLabel()
|
||||
{
|
||||
companyService.importLabel();
|
||||
}
|
||||
@GetMapping("/importLabelBank")
|
||||
public void importLabelBank()
|
||||
{
|
||||
companyService.importLabelBank();
|
||||
}
|
||||
}
|
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
|
||||
import com.ruoyi.cms.domain.JobFair;
|
||||
import com.ruoyi.cms.service.IFairCollectionService;
|
||||
import com.ruoyi.cms.service.IJobFairService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 招聘会Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/fair")
|
||||
@Api(tags = "移动端:招聘会")
|
||||
public class AppFairController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IJobFairService jobFairService;
|
||||
@Autowired
|
||||
private IFairCollectionService fairCollectionService;
|
||||
/**
|
||||
* 招聘会列表
|
||||
*/
|
||||
@Log(title = "招聘会列表")
|
||||
@GetMapping
|
||||
public TableDataInfo list(JobFair jobFair)
|
||||
{
|
||||
startPage();
|
||||
List<JobFair> results = jobFairService.appList(jobFair);
|
||||
return getDataTable(results);
|
||||
}
|
||||
|
||||
/**
|
||||
* 招聘会详情
|
||||
*/
|
||||
@Log(title = "招聘会详情")
|
||||
@GetMapping("/{fairId}")
|
||||
public AjaxResult appDetail(@ApiParam("招聘会id") @PathVariable Long fairId)
|
||||
{
|
||||
return success(jobFairService.appDetail(fairId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户收藏招聘会
|
||||
*/
|
||||
@Log(title = "用户收藏招聘会")
|
||||
@PostMapping("/collection/{fairId}")
|
||||
public AjaxResult companyCollection(@ApiParam("招聘会id") @PathVariable Long fairId)
|
||||
{
|
||||
return toAjax(fairCollectionService.fairCollection(fairId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户取消收藏招聘会
|
||||
*/
|
||||
@Log(title = "用户取消收藏招聘会")
|
||||
@DeleteMapping("/collection/{fairId}")
|
||||
public AjaxResult companyCancel(@ApiParam("招聘会id") @PathVariable Long fairId)
|
||||
{
|
||||
return toAjax(fairCollectionService.cancel(fairId));
|
||||
}
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.service.IFileService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/app/file")
|
||||
public class AppFileController {
|
||||
@Autowired
|
||||
private IFileService fileService;
|
||||
@PostMapping("/upload")
|
||||
public AjaxResult uploadFile(@RequestParam("file") MultipartFile file, @RequestParam(value = "bussinessId",required = false) Long bussinessId) {
|
||||
return fileService.uploadFile(file,bussinessId);
|
||||
}
|
||||
}
|
@@ -0,0 +1,294 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.ESJobDocument;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||
import com.ruoyi.cms.domain.vo.CompetitivenessResponse;
|
||||
import com.ruoyi.cms.domain.vo.RadarChart;
|
||||
import com.ruoyi.cms.service.IESJobSearchService;
|
||||
import com.ruoyi.cms.service.IJobCollectionService;
|
||||
import com.ruoyi.cms.service.IJobService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 岗位Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/job")
|
||||
@Api(tags = "移动端:岗位相关接口")
|
||||
public class AppJobController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IJobService jobService;
|
||||
@Autowired
|
||||
private IJobCollectionService jobCollectionService;
|
||||
@Autowired
|
||||
private IESJobSearchService esJobSearchService;
|
||||
|
||||
private Calendar calendar = Calendar.getInstance();
|
||||
private Date date = new Date();
|
||||
{
|
||||
calendar.set(Calendar.YEAR, 2025); // 设置年份
|
||||
calendar.set(Calendar.MONTH, Calendar.JULY); // 设置月份(7月)
|
||||
calendar.set(Calendar.DAY_OF_MONTH, 12); // 设置日期
|
||||
date = calendar.getTime(); // 转换为Date对象
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*/
|
||||
@ApiOperation("查询岗位列表")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ESJobSearch job, HttpServletRequest request)
|
||||
{
|
||||
// 打印请求参数
|
||||
System.out.println("Request Parameters:");
|
||||
request.getParameterMap().forEach((key, value) -> {
|
||||
System.out.println(key + " = " + String.join(", ", value));
|
||||
});
|
||||
// 打印请求头
|
||||
System.out.println("Request Headers:");
|
||||
Enumeration<String> headerNames = request.getHeaderNames();
|
||||
Iterator<String> iterator = Collections.list(headerNames).iterator();
|
||||
iterator.forEachRemaining(headerName -> {
|
||||
System.out.println(headerName + " = " + request.getHeader(headerName));
|
||||
});
|
||||
EsPageInfo<ESJobDocument> list = jobService.appList(job);
|
||||
return getTableDataInfo(list);
|
||||
}
|
||||
/**
|
||||
* 获取5条推荐岗位
|
||||
*/
|
||||
@ApiOperation("获取推荐岗位")
|
||||
@GetMapping("/recommend")
|
||||
public AjaxResult recommend(ESJobSearch esJobSearch)
|
||||
{
|
||||
List<ESJobDocument> jobList = jobService.recommend(esJobSearch);
|
||||
for (ESJobDocument esJobDocument:jobList){
|
||||
esJobDocument.setPostingDate(date);
|
||||
}
|
||||
return success(jobList);
|
||||
}
|
||||
@ApiOperation("获取littleVideo")
|
||||
@GetMapping("/littleVideo")
|
||||
public AjaxResult littleVideo(ESJobSearch esJobSearch)
|
||||
{
|
||||
List<ESJobDocument> jobList = jobService.littleVideo(esJobSearch);
|
||||
for (ESJobDocument esJobDocument:jobList){
|
||||
esJobDocument.setPostingDate(date);
|
||||
}
|
||||
return success(jobList);
|
||||
}
|
||||
|
||||
@ApiOperation("获取littleVideo")
|
||||
@GetMapping("/littleVideo/random")
|
||||
public AjaxResult littleVideo(@RequestParam(required = true) String uuid,@RequestParam(required = false) Integer count,@RequestParam(required = false) String jobTitle)
|
||||
{
|
||||
List<ESJobDocument> jobList = jobService.littleVideoRandom(uuid,count,jobTitle);
|
||||
for (ESJobDocument esJobDocument:jobList){
|
||||
esJobDocument.setPostingDate(date);
|
||||
}
|
||||
return success(jobList);
|
||||
}
|
||||
/**
|
||||
* 获取5条推荐岗位
|
||||
*/
|
||||
@GetMapping("/updateLon")
|
||||
public void updateLon()
|
||||
{
|
||||
jobService.updateLon();
|
||||
}
|
||||
/**
|
||||
* 附件工作
|
||||
*/
|
||||
@ApiOperation("附近工作")
|
||||
@PostMapping(value = "/nearJob")
|
||||
public TableDataInfo nearJob(@RequestBody ESJobSearch jobQuery)
|
||||
{
|
||||
EsPageInfo<ESJobDocument> list = esJobSearchService.nearJob(jobQuery);
|
||||
List<ESJobDocument> jobList = list.getList();
|
||||
for (ESJobDocument esJobDocument:jobList){
|
||||
esJobDocument.setPostingDate(date);
|
||||
}
|
||||
list.setList(jobList);
|
||||
return getTableDataInfo(list);
|
||||
}
|
||||
/**
|
||||
* 附件工作
|
||||
*/
|
||||
@ApiOperation("区县工作")
|
||||
@PostMapping(value = "/countyJob")
|
||||
public TableDataInfo countyJob(@RequestBody ESJobSearch job)
|
||||
{
|
||||
EsPageInfo<ESJobDocument> list = jobService.countyJobList(job);
|
||||
List<ESJobDocument> jobList = list.getList();
|
||||
for (ESJobDocument esJobDocument:jobList){
|
||||
esJobDocument.setPostingDate(date);
|
||||
}
|
||||
list.setList(jobList);
|
||||
return getTableDataInfo(list);
|
||||
}
|
||||
/**
|
||||
* 地铁周边
|
||||
*/
|
||||
@ApiOperation("地铁周边")
|
||||
@PostMapping(value = "/subway")
|
||||
public TableDataInfo subway(@RequestBody ESJobSearch jobQuery)
|
||||
{
|
||||
EsPageInfo<ESJobDocument> list = jobService.subway(jobQuery);
|
||||
List<ESJobDocument> jobList = list.getList();
|
||||
for (ESJobDocument esJobDocument:jobList){
|
||||
esJobDocument.setPostingDate(date);
|
||||
}
|
||||
list.setList(jobList);
|
||||
return getTableDataInfo(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 商圈周边
|
||||
*/
|
||||
@ApiOperation("商圈周边")
|
||||
@PostMapping(value = "/commercialArea")
|
||||
public TableDataInfo commercialArea(@RequestBody ESJobSearch jobQuery)
|
||||
{
|
||||
EsPageInfo<ESJobDocument> list = jobService.commercialArea(jobQuery);
|
||||
List<ESJobDocument> jobList = list.getList();
|
||||
for (ESJobDocument esJobDocument:jobList){
|
||||
esJobDocument.setPostingDate(date);
|
||||
}
|
||||
list.setList(jobList);
|
||||
return getTableDataInfo(list);
|
||||
}
|
||||
/**
|
||||
* 获取岗位详细信息
|
||||
*/
|
||||
@ApiOperation("获取岗位详细信息")
|
||||
@GetMapping(value = "/{jobId}")
|
||||
public AjaxResult getInfo(@PathVariable("jobId") Long jobId)
|
||||
{
|
||||
Job job = jobService.selectJobByJobIdApp(jobId);
|
||||
job.setPostingDate(date);
|
||||
return success(job);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户收藏岗位
|
||||
*/
|
||||
@Log(title = "用户收藏岗位")
|
||||
@PostMapping("/collection/{jobId}")
|
||||
@ApiOperation("用户收藏")
|
||||
public AjaxResult jobCollection(@ApiParam("岗位id") @PathVariable Long jobId)
|
||||
{
|
||||
return toAjax(jobCollectionService.jobCollection(jobId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户取消收藏岗位
|
||||
*/
|
||||
@Log(title = "用户取消收藏岗位")
|
||||
@DeleteMapping("/collection/{jobId}")
|
||||
@ApiOperation("用户取消收藏岗位")
|
||||
public AjaxResult cancel(@ApiParam("岗位id") @PathVariable Long jobId)
|
||||
{
|
||||
return toAjax(jobCollectionService.cancel(jobId));
|
||||
}
|
||||
/**
|
||||
* 用户申请岗位
|
||||
*/
|
||||
@Log(title = "用户申请岗位")
|
||||
@GetMapping("/apply/{jobId}")
|
||||
@ApiOperation("用户申请岗位")
|
||||
public AjaxResult apply(@ApiParam("岗位id") @PathVariable Long jobId)
|
||||
{
|
||||
return toAjax(jobCollectionService.apply(jobId));
|
||||
}
|
||||
@Log(title = "竞争力分析")
|
||||
@GetMapping("/competitiveness/{jobId}")
|
||||
@ApiOperation("竞争力分析")
|
||||
public AjaxResult competitiveness(@ApiParam("岗位id") @PathVariable Long jobId) {
|
||||
// Generate random values for the response
|
||||
Random random = new Random();
|
||||
|
||||
// Build radar chart with random values between 60-95
|
||||
RadarChart radarChart = new RadarChart();
|
||||
radarChart.setAge(60 + random.nextInt(36)); // 60-95
|
||||
radarChart.setExperience(60 + random.nextInt(36));
|
||||
radarChart.setEducation(60 + random.nextInt(36));
|
||||
radarChart.setSkill(60 + random.nextInt(36));
|
||||
radarChart.setSalary(60 + random.nextInt(36));
|
||||
radarChart.setLocation(60 + random.nextInt(36));
|
||||
|
||||
// Build response with random values
|
||||
CompetitivenessResponse response = new CompetitivenessResponse();
|
||||
response.setTotalApplicants(0); // Always 0 as requested
|
||||
response.setMatchScore(60 + random.nextInt(41)); // 60-100
|
||||
response.setRank(1 + random.nextInt(10)); // 1-10
|
||||
response.setPercentile(random.nextInt(101)); // 0-100
|
||||
response.setRadarChart(radarChart);
|
||||
|
||||
return success(response);
|
||||
}
|
||||
private TableDataInfo getTableDataInfo(EsPageInfo<ESJobDocument> result){
|
||||
long total = result.getTotal();
|
||||
TableDataInfo rspData = new TableDataInfo();
|
||||
rspData.setCode(200);
|
||||
rspData.setRows(result.getList());
|
||||
rspData.setTotal(total > 200 ? 200 : total);
|
||||
return rspData;
|
||||
}
|
||||
@GetMapping("/import")
|
||||
public AjaxResult importData()
|
||||
{
|
||||
jobService.importData();
|
||||
return success();
|
||||
}
|
||||
@GetMapping("/importRow")
|
||||
public AjaxResult importRow()
|
||||
{
|
||||
jobService.importRow();
|
||||
return success();
|
||||
}
|
||||
@GetMapping("/update")
|
||||
public AjaxResult update()
|
||||
{
|
||||
jobService.updateEs();
|
||||
return success();
|
||||
}
|
||||
@PostMapping("/getWechatUrl")
|
||||
public AjaxResult getWechatUrl(@RequestBody HashMap<String,String> url)
|
||||
{
|
||||
String s = url.get("imgUrl");
|
||||
return AjaxResult.success(jobService.getWechatUrl(s));
|
||||
}
|
||||
@PostMapping("/insert")
|
||||
public AjaxResult insertTemp(@RequestBody Job job)
|
||||
{
|
||||
return AjaxResult.success(jobService.insertTemp(job));
|
||||
}
|
||||
@ApiOperation("生成分享的html")
|
||||
@GetMapping("/htmlGen/{id}")
|
||||
public AjaxResult htmlGen(@PathVariable(required = true) Long id)
|
||||
{
|
||||
String result = jobService.htmlGen(id);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
@GetMapping("/fix")
|
||||
public void fix()
|
||||
{
|
||||
jobService.fix();
|
||||
}
|
||||
}
|
@@ -0,0 +1,66 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.Notice;
|
||||
import com.ruoyi.cms.domain.vo.AppNoticeVO;
|
||||
import com.ruoyi.cms.service.IAppNoticeService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.PageDomain;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.ruoyi.common.utils.PageUtils.startPage;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/app/notice")
|
||||
@Api(tags = "移动端:消息")
|
||||
public class AppNoticeInfoController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IAppNoticeService appNoticeService;
|
||||
@ApiOperation("消息列表")
|
||||
@GetMapping("/info")
|
||||
public AjaxResult listNotRead(@RequestParam(required = false) Integer isRead)
|
||||
{
|
||||
List<Notice> appNoticeVO = appNoticeService.listNotRead(isRead);
|
||||
return AjaxResult.success(appNoticeVO);
|
||||
}
|
||||
@ApiOperation("推荐岗位列表")
|
||||
@GetMapping("/recommend")
|
||||
public TableDataInfo recommend(@RequestParam(required = false)String jobTitle)
|
||||
{
|
||||
startPage();
|
||||
List<Job> list = appNoticeService.recommend(jobTitle);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@ApiOperation("系统通知已读")
|
||||
@PostMapping("/read/sysNotice")
|
||||
public AjaxResult sysNotice(@RequestParam String id)
|
||||
{
|
||||
appNoticeService.sysNotice(id);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
@ApiOperation("岗位推荐、招聘会已读")
|
||||
@PostMapping("/read")
|
||||
public AjaxResult read(@RequestParam String id)
|
||||
{
|
||||
appNoticeService.read(id);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
@ApiOperation("系统通知列表")
|
||||
@GetMapping("/sysNotice")
|
||||
public TableDataInfo sysNoticeList()
|
||||
{
|
||||
startPage();
|
||||
List<Notice> list = appNoticeService.sysNoticeList();
|
||||
return getDataTable(list);
|
||||
}
|
||||
}
|
@@ -0,0 +1,117 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.cms.domain.Company;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.JobFair;
|
||||
import com.ruoyi.cms.domain.query.MineJobQuery;
|
||||
import com.ruoyi.cms.service.*;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* app用户Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/user")
|
||||
@Api(tags = "移动端:用户相关")
|
||||
public class AppUserController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IAppUserService appUserService;
|
||||
@Autowired
|
||||
private IAppReviewJobService appReviewJobService;
|
||||
@Autowired
|
||||
private IJobCollectionService jobCollectionService;
|
||||
@Autowired
|
||||
private ICompanyCollectionService companyCollectionService;
|
||||
@Autowired
|
||||
private IJobApplyService jobApplyService;
|
||||
@Autowired
|
||||
private IFairCollectionService fairCollectionService;
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*/
|
||||
@ApiOperation("保存简历")
|
||||
@PostMapping("/resume")
|
||||
public AjaxResult saveResume(@RequestBody AppUser appUser)
|
||||
{
|
||||
appUser.setUserId(SecurityUtils.getUserId());
|
||||
appUserService.updateAppUser(appUser);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
@ApiOperation("查看简历")
|
||||
@GetMapping("/resume")
|
||||
public AjaxResult getResume()
|
||||
{
|
||||
AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
|
||||
return AjaxResult.success(appUser);
|
||||
}
|
||||
@ApiOperation("我的浏览")
|
||||
@GetMapping("/review")
|
||||
public TableDataInfo review(MineJobQuery jobQuery)
|
||||
{
|
||||
startPage();
|
||||
List<Job> jobs = appReviewJobService.review(jobQuery);
|
||||
return getDataTable(jobs);
|
||||
}
|
||||
@ApiOperation("我的浏览-日期数组")
|
||||
@GetMapping("/review/array")
|
||||
public AjaxResult reviewArray(MineJobQuery jobQuery)
|
||||
{
|
||||
|
||||
List<String> dateList = appReviewJobService.reviewArray();
|
||||
return AjaxResult.success(dateList);
|
||||
}
|
||||
@ApiOperation("我的岗位收藏")
|
||||
@GetMapping("/collection/job")
|
||||
public TableDataInfo collectionJob()
|
||||
{
|
||||
startPage();
|
||||
List<Job> jobs = jobCollectionService.collectionJob();
|
||||
return getDataTable(jobs);
|
||||
}
|
||||
@ApiOperation("我的公司收藏")
|
||||
@GetMapping("/collection/company")
|
||||
public TableDataInfo collectionCompany()
|
||||
{
|
||||
startPage();
|
||||
List<Company> jobs = companyCollectionService.collectionCompany();
|
||||
return getDataTable(jobs);
|
||||
}
|
||||
@ApiOperation("我的招聘会收藏")
|
||||
@GetMapping("/collection/fair")
|
||||
public TableDataInfo collectionFair(@RequestParam(name = "type") Integer type)
|
||||
{
|
||||
startPage();
|
||||
List<JobFair> jobs = fairCollectionService.appCollectionFair(type);
|
||||
return getDataTable(jobs);
|
||||
}
|
||||
@ApiOperation("我申请的岗位")
|
||||
@GetMapping("/apply/job")
|
||||
public TableDataInfo applyJob()
|
||||
{
|
||||
startPage();
|
||||
List<Job> jobs = jobApplyService.applyJob();
|
||||
return getDataTable(jobs);
|
||||
}
|
||||
@ApiOperation("统计")
|
||||
@GetMapping("/statistics")
|
||||
public AjaxResult statistics()
|
||||
{
|
||||
HashMap<String,Integer> result = jobApplyService.statistics();
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
}
|
@@ -0,0 +1,118 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessDictData;
|
||||
import com.ruoyi.cms.service.IBussinessDictDataService;
|
||||
import com.ruoyi.cms.service.IBussinessDictTypeService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据字典信息
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/dict/data")
|
||||
public class BussinessDictDataController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBussinessDictDataService dictDataService;
|
||||
|
||||
@Autowired
|
||||
private IBussinessDictTypeService dictTypeService;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BussinessDictData dictData)
|
||||
{
|
||||
startPage();
|
||||
List<BussinessDictData> list = dictDataService.selectDictDataList(dictData);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@Log(title = "字典数据", businessType = BusinessType.EXPORT)
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:export')")
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, BussinessDictData dictData)
|
||||
{
|
||||
List<BussinessDictData> list = dictDataService.selectDictDataList(dictData);
|
||||
ExcelUtil<BussinessDictData> util = new ExcelUtil<BussinessDictData>(BussinessDictData.class);
|
||||
util.exportExcel(response, list, "字典数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询字典数据详细
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:query')")
|
||||
@GetMapping(value = "/{dictCode}")
|
||||
public AjaxResult getInfo(@PathVariable Long dictCode)
|
||||
{
|
||||
return success(dictDataService.selectDictDataById(dictCode));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典类型查询字典数据信息
|
||||
*/
|
||||
@GetMapping(value = "/type/{dictType}")
|
||||
public AjaxResult dictType(@PathVariable String dictType)
|
||||
{
|
||||
List<BussinessDictData> data = dictTypeService.selectDictDataByType(dictType);
|
||||
if (StringUtils.isNull(data))
|
||||
{
|
||||
data = new ArrayList<BussinessDictData>();
|
||||
}
|
||||
return success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增字典类型
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:add')")
|
||||
@Log(title = "字典数据", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@Validated @RequestBody BussinessDictData dict)
|
||||
{
|
||||
dict.setCreateBy(getUsername());
|
||||
return toAjax(dictDataService.insertDictData(dict));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改保存字典类型
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:edit')")
|
||||
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@Validated @RequestBody BussinessDictData dict)
|
||||
{
|
||||
dict.setUpdateBy(getUsername());
|
||||
return toAjax(dictDataService.updateDictData(dict));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除字典类型
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
|
||||
@Log(title = "字典类型", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{dictCodes}")
|
||||
public AjaxResult remove(@PathVariable Long[] dictCodes)
|
||||
{
|
||||
dictDataService.deleteDictDataByIds(dictCodes);
|
||||
return success();
|
||||
}
|
||||
}
|
@@ -0,0 +1,127 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessDictType;
|
||||
import com.ruoyi.cms.service.IBussinessDictTypeService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据字典信息
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/dict/type")
|
||||
public class BussinessDictTypeController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBussinessDictTypeService dictTypeService;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BussinessDictType dictType)
|
||||
{
|
||||
startPage();
|
||||
List<BussinessDictType> list = dictTypeService.selectDictTypeList(dictType);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@Log(title = "字典类型", businessType = BusinessType.EXPORT)
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:export')")
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, BussinessDictType dictType)
|
||||
{
|
||||
List<BussinessDictType> list = dictTypeService.selectDictTypeList(dictType);
|
||||
ExcelUtil<BussinessDictType> util = new ExcelUtil<BussinessDictType>(BussinessDictType.class);
|
||||
util.exportExcel(response, list, "字典类型");
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询字典类型详细
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:query')")
|
||||
@GetMapping(value = "/{dictId}")
|
||||
public AjaxResult getInfo(@PathVariable Long dictId)
|
||||
{
|
||||
return success(dictTypeService.selectDictTypeById(dictId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增字典类型
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:add')")
|
||||
@Log(title = "字典类型", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@Validated @RequestBody BussinessDictType dict)
|
||||
{
|
||||
if (!dictTypeService.checkDictTypeUnique(dict))
|
||||
{
|
||||
return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
|
||||
}
|
||||
dict.setCreateBy(getUsername());
|
||||
return toAjax(dictTypeService.insertDictType(dict));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改字典类型
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:edit')")
|
||||
@Log(title = "字典类型", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@Validated @RequestBody BussinessDictType dict)
|
||||
{
|
||||
if (!dictTypeService.checkDictTypeUnique(dict))
|
||||
{
|
||||
return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
|
||||
}
|
||||
dict.setUpdateBy(getUsername());
|
||||
return toAjax(dictTypeService.updateDictType(dict));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除字典类型
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
|
||||
@Log(title = "字典类型", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{dictIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] dictIds)
|
||||
{
|
||||
dictTypeService.deleteDictTypeByIds(dictIds);
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新字典缓存
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
|
||||
@Log(title = "字典类型", businessType = BusinessType.CLEAN)
|
||||
@DeleteMapping("/refreshCache")
|
||||
public AjaxResult refreshCache()
|
||||
{
|
||||
dictTypeService.resetDictCache();
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字典选择框列表
|
||||
*/
|
||||
@GetMapping("/optionselect")
|
||||
public AjaxResult optionselect()
|
||||
{
|
||||
List<BussinessDictType> dictTypes = dictTypeService.selectDictTypeAll();
|
||||
return success(dictTypes);
|
||||
}
|
||||
}
|
@@ -0,0 +1,72 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessOperLog;
|
||||
import com.ruoyi.cms.service.IBussinessOperLogService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 操作日志记录
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/operlog")
|
||||
@Api(tags = "后台:App用户日志")
|
||||
public class BussinessOperlogController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBussinessOperLogService operLogService;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("日志列表")
|
||||
public TableDataInfo list(BussinessOperLog operLog)
|
||||
{
|
||||
startPage();
|
||||
List<BussinessOperLog> list = operLogService.selectOperLogList(operLog);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@Log(title = "操作日志", businessType = BusinessType.EXPORT)
|
||||
@PreAuthorize("@ss.hasPermi('monitor:operlog:export')")
|
||||
@PostMapping("/export")
|
||||
@ApiOperation("日志导出excel")
|
||||
public void export(HttpServletResponse response, BussinessOperLog operLog)
|
||||
{
|
||||
List<BussinessOperLog> list = operLogService.selectOperLogList(operLog);
|
||||
ExcelUtil<BussinessOperLog> util = new ExcelUtil<BussinessOperLog>(BussinessOperLog.class);
|
||||
util.exportExcel(response, list, "操作日志");
|
||||
}
|
||||
|
||||
@Log(title = "操作日志", businessType = BusinessType.DELETE)
|
||||
@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
|
||||
@DeleteMapping("/{operIds}")
|
||||
@ApiOperation("删除操作日志")
|
||||
public AjaxResult remove(@PathVariable Long[] operIds)
|
||||
{
|
||||
return toAjax(operLogService.deleteOperLogByIds(operIds));
|
||||
}
|
||||
|
||||
@Log(title = "操作日志", businessType = BusinessType.CLEAN)
|
||||
@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
|
||||
@DeleteMapping("/clean")
|
||||
@ApiOperation("清空操作日志")
|
||||
public AjaxResult clean()
|
||||
{
|
||||
operLogService.cleanOperLog();
|
||||
return success();
|
||||
}
|
||||
}
|
@@ -0,0 +1,114 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* APP用户Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/appUser")
|
||||
@Api(tags = "后台:APP用户管理")
|
||||
public class CmsAppUserController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IAppUserService appUserService;
|
||||
|
||||
/**
|
||||
* 查询APP用户列表
|
||||
*/
|
||||
@ApiOperation("查询APP用户列表")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:user:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(AppUser appUser)
|
||||
{
|
||||
startPage();
|
||||
List<AppUser> list = appUserService.selectAppUserList(appUser);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出APP用户列表
|
||||
*/
|
||||
@ApiOperation("导出APP用户列表")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:user:export')")
|
||||
@Log(title = "APP用户", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, AppUser appUser)
|
||||
{
|
||||
List<AppUser> list = appUserService.selectAppUserList(appUser);
|
||||
ExcelUtil<AppUser> util = new ExcelUtil<AppUser>(AppUser.class);
|
||||
util.exportExcel(response, list, "APP用户数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取APP用户详细信息
|
||||
*/
|
||||
@ApiOperation("获取APP用户详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:user:query')")
|
||||
@GetMapping(value = "/{userId}")
|
||||
public AjaxResult getInfo(@PathVariable("userId") Long userId)
|
||||
{
|
||||
return success(appUserService.selectAppUserByUserId(userId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增APP用户
|
||||
*/
|
||||
@ApiOperation("新增APP用户")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:user:add')")
|
||||
@Log(title = "APP用户", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody AppUser appUser)
|
||||
{
|
||||
return toAjax(appUserService.insertAppUser(appUser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改APP用户
|
||||
*/
|
||||
@ApiOperation("修改APP用户")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:user:edit')")
|
||||
@Log(title = "APP用户", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody AppUser appUser)
|
||||
{
|
||||
return toAjax(appUserService.updateAppUser(appUser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除APP用户
|
||||
*/
|
||||
@ApiOperation("删除APP用户")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:user:remove')")
|
||||
@Log(title = "APP用户", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{userIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] userIds)
|
||||
{
|
||||
return toAjax(appUserService.deleteAppUserByUserIds(userIds));
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,129 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||
import com.ruoyi.cms.service.IJobService;
|
||||
import com.ruoyi.common.annotation.Anonymous;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 岗位Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/job")
|
||||
@Api(tags = "后台:岗位管理")
|
||||
@Anonymous
|
||||
public class CmsJobController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IJobService jobService;
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*/
|
||||
@ApiOperation("查询岗位列表")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:job:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(Job job)
|
||||
{
|
||||
startPage();
|
||||
List<Job> list = jobService.selectJobList(job);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取岗位详细信息
|
||||
*/
|
||||
@ApiOperation("获取岗位详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:job:query')")
|
||||
@GetMapping(value = "/{jobId}")
|
||||
public AjaxResult getInfo(@PathVariable("jobId") Long jobId)
|
||||
{
|
||||
return success(jobService.selectJobByJobId(jobId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出岗位列表
|
||||
*/
|
||||
@ApiOperation("导出岗位列表")
|
||||
@PreAuthorize("@ss.hasPermi('app:job:export')")
|
||||
@Log(title = "岗位", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, Job job)
|
||||
{
|
||||
List<Job> list = jobService.selectJobList(job);
|
||||
ExcelUtil<Job> util = new ExcelUtil<Job>(Job.class);
|
||||
util.exportExcel(response, list, "岗位数据");
|
||||
}
|
||||
/**
|
||||
* 新增岗位
|
||||
*/
|
||||
@ApiOperation("新增岗位")
|
||||
@PreAuthorize("@ss.hasPermi('app:job:add')")
|
||||
@Log(title = "岗位", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody Job job)
|
||||
{
|
||||
return toAjax(jobService.insertJob(job));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改岗位
|
||||
*/
|
||||
@ApiOperation("修改岗位")
|
||||
@PreAuthorize("@ss.hasPermi('app:job:edit')")
|
||||
@Log(title = "岗位", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody Job job)
|
||||
{
|
||||
return toAjax(jobService.updateJob(job));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除岗位
|
||||
*/
|
||||
@ApiOperation("删除岗位")
|
||||
@PreAuthorize("@ss.hasPermi('app:job:remove')")
|
||||
@Log(title = "岗位", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{jobIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] jobIds)
|
||||
{
|
||||
return toAjax(jobService.deleteJobByJobIds(jobIds));
|
||||
}
|
||||
@ApiOperation("候选人查询")
|
||||
@Log(title = "岗位", businessType = BusinessType.DELETE)
|
||||
@GetMapping("/candidates")
|
||||
public TableDataInfo candidates(Long jobId)
|
||||
{
|
||||
startPage();
|
||||
List<CandidateVO> list = jobService.candidates(jobId);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/import")
|
||||
public AjaxResult importData()
|
||||
{
|
||||
jobService.importData();
|
||||
return success();
|
||||
}
|
||||
@GetMapping("/importRow")
|
||||
public AjaxResult importRow()
|
||||
{
|
||||
jobService.importRow();
|
||||
return success();
|
||||
}
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.AppNotice;
|
||||
import com.ruoyi.cms.service.IAppNoticeService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公告 信息操作处理
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/notice")
|
||||
public class CmsNoticeController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IAppNoticeService noticeService;
|
||||
|
||||
/**
|
||||
* 获取通知公告列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:notice:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(AppNotice notice)
|
||||
{
|
||||
startPage();
|
||||
List<AppNotice> list = noticeService.selectNoticeList(notice);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据通知公告编号获取详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:notice:query')")
|
||||
@GetMapping(value = "/{noticeId}")
|
||||
public AjaxResult getInfo(@PathVariable Long noticeId)
|
||||
{
|
||||
return success(noticeService.selectNoticeById(noticeId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增通知公告
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:notice:add')")
|
||||
@Log(title = "通知公告", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@Validated @RequestBody AppNotice notice)
|
||||
{
|
||||
notice.setCreateBy(getUsername());
|
||||
return toAjax(noticeService.insertNotice(notice));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改通知公告
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:notice:edit')")
|
||||
@Log(title = "通知公告", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@Validated @RequestBody AppNotice notice)
|
||||
{
|
||||
notice.setUpdateBy(getUsername());
|
||||
return toAjax(noticeService.updateNotice(notice));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除通知公告
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:notice:remove')")
|
||||
@Log(title = "通知公告", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{noticeIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] noticeIds)
|
||||
{
|
||||
return toAjax(noticeService.deleteNoticeByIds(noticeIds));
|
||||
}
|
||||
}
|
@@ -0,0 +1,113 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.cms.domain.CommercialArea;
|
||||
import com.ruoyi.cms.service.ICommercialAreaService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 商圈Controller
|
||||
*
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/area")
|
||||
@Api(tags = "后台:商圈")
|
||||
public class CommercialAreaController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ICommercialAreaService commercialAreaService;
|
||||
|
||||
/**
|
||||
* 查询商圈列表
|
||||
*/
|
||||
@ApiOperation("查询商圈列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:area:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(CommercialArea commercialArea)
|
||||
{
|
||||
startPage();
|
||||
List<CommercialArea> list = commercialAreaService.selectCommercialAreaList(commercialArea);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出商圈列表
|
||||
*/
|
||||
@ApiOperation("导出商圈列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:area:export')")
|
||||
@Log(title = "商圈", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, CommercialArea commercialArea)
|
||||
{
|
||||
List<CommercialArea> list = commercialAreaService.selectCommercialAreaList(commercialArea);
|
||||
ExcelUtil<CommercialArea> util = new ExcelUtil<CommercialArea>(CommercialArea.class);
|
||||
util.exportExcel(response, list, "商圈数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商圈详细信息
|
||||
*/
|
||||
@ApiOperation("获取商圈详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('cms:area:query')")
|
||||
@GetMapping(value = "/{commercialAreaId}")
|
||||
public AjaxResult getInfo(@PathVariable("commercialAreaId") Long commercialAreaId)
|
||||
{
|
||||
return success(commercialAreaService.selectCommercialAreaByCommercialAreaId(commercialAreaId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增商圈
|
||||
*/
|
||||
@ApiOperation("新增商圈")
|
||||
@PreAuthorize("@ss.hasPermi('cms:area:add')")
|
||||
@Log(title = "商圈", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody CommercialArea commercialArea)
|
||||
{
|
||||
return toAjax(commercialAreaService.insertCommercialArea(commercialArea));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商圈
|
||||
*/
|
||||
@ApiOperation("修改商圈")
|
||||
@PreAuthorize("@ss.hasPermi('cms:area:edit')")
|
||||
@Log(title = "商圈", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody CommercialArea commercialArea)
|
||||
{
|
||||
return toAjax(commercialAreaService.updateCommercialArea(commercialArea));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除商圈
|
||||
*/
|
||||
@ApiOperation("删除商圈")
|
||||
@PreAuthorize("@ss.hasPermi('cms:area:remove')")
|
||||
@Log(title = "商圈", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{commercialAreaIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] commercialAreaIds)
|
||||
{
|
||||
return toAjax(commercialAreaService.deleteCommercialAreaByCommercialAreaIds(commercialAreaIds));
|
||||
}
|
||||
}
|
@@ -0,0 +1,116 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.sql.Array;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.cms.domain.CompanyCard;
|
||||
import com.ruoyi.cms.service.ICompanyCardService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 公司卡片Controller
|
||||
*
|
||||
* @author ${author}
|
||||
* @date 2025-02-18
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/card")
|
||||
@Api(tags = "公司卡片")
|
||||
public class CompanyCardController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ICompanyCardService companyCardService;
|
||||
|
||||
/**
|
||||
* 查询公司卡片列表
|
||||
*/
|
||||
@ApiOperation("查询公司卡片列表")
|
||||
@PreAuthorize("@ss.hasPermi('system:card:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(CompanyCard companyCard)
|
||||
{
|
||||
startPage();
|
||||
List<CompanyCard> list = companyCardService.selectCompanyCardList(companyCard);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出公司卡片列表
|
||||
*/
|
||||
@ApiOperation("导出公司卡片列表")
|
||||
@PreAuthorize("@ss.hasPermi('system:card:export')")
|
||||
@Log(title = "公司卡片", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, CompanyCard companyCard)
|
||||
{
|
||||
List<CompanyCard> list = companyCardService.selectCompanyCardList(companyCard);
|
||||
ExcelUtil<CompanyCard> util = new ExcelUtil<CompanyCard>(CompanyCard.class);
|
||||
util.exportExcel(response, list, "公司卡片数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取公司卡片详细信息
|
||||
*/
|
||||
@ApiOperation("获取公司卡片详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('system:card:query')")
|
||||
@GetMapping(value = "/{companyCardId}")
|
||||
public AjaxResult getInfo(@PathVariable("companyCardId") Long companyCardId)
|
||||
{
|
||||
return success(companyCardService.selectCompanyCardByCompanyCardId(companyCardId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增公司卡片
|
||||
*/
|
||||
@ApiOperation("新增公司卡片")
|
||||
@PreAuthorize("@ss.hasPermi('system:card:add')")
|
||||
@Log(title = "公司卡片", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody CompanyCard companyCard)
|
||||
{
|
||||
return toAjax(companyCardService.insertCompanyCard(companyCard));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改公司卡片
|
||||
*/
|
||||
@ApiOperation("修改公司卡片")
|
||||
@PreAuthorize("@ss.hasPermi('system:card:edit')")
|
||||
@Log(title = "公司卡片", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody CompanyCard companyCard)
|
||||
{
|
||||
return toAjax(companyCardService.updateCompanyCard(companyCard));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除公司卡片
|
||||
*/
|
||||
@ApiOperation("删除公司卡片")
|
||||
@PreAuthorize("@ss.hasPermi('system:card:remove')")
|
||||
@Log(title = "公司卡片", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{companyCardIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] companyCardIds)
|
||||
{
|
||||
return toAjax(companyCardService.deleteCompanyCardByCompanyCardIds(companyCardIds));
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,110 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
|
||||
import com.ruoyi.cms.domain.Company;
|
||||
import com.ruoyi.cms.service.ICompanyCollectionService;
|
||||
import com.ruoyi.cms.service.ICompanyService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/company")
|
||||
@Api(tags = "后台:公司管理")
|
||||
public class CompanyController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ICompanyService companyService;
|
||||
|
||||
/**
|
||||
* 查询公司列表
|
||||
*/
|
||||
@ApiOperation("查询公司列表")
|
||||
@PreAuthorize("@ss.hasPermi('app:company:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(Company company)
|
||||
{
|
||||
startPage();
|
||||
List<Company> list = companyService.selectCompanyList(company);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出公司列表
|
||||
*/
|
||||
@ApiOperation("导出公司列表")
|
||||
@PreAuthorize("@ss.hasPermi('app:company:export')")
|
||||
@Log(title = "公司", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, Company company)
|
||||
{
|
||||
List<Company> list = companyService.selectCompanyList(company);
|
||||
ExcelUtil<Company> util = new ExcelUtil<Company>(Company.class);
|
||||
util.exportExcel(response, list, "公司数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取公司详细信息
|
||||
*/
|
||||
@ApiOperation("获取公司详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('app:company:query')")
|
||||
@GetMapping(value = "/{companyId}")
|
||||
public AjaxResult getInfo(@PathVariable("companyId") Long companyId)
|
||||
{
|
||||
return success(companyService.selectCompanyByCompanyId(companyId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增公司
|
||||
*/
|
||||
@ApiOperation("新增公司")
|
||||
@PreAuthorize("@ss.hasPermi('app:company:add')")
|
||||
@Log(title = "公司", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody Company company)
|
||||
{
|
||||
return toAjax(companyService.insertCompany(company));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改公司
|
||||
*/
|
||||
@ApiOperation("修改公司")
|
||||
@PreAuthorize("@ss.hasPermi('app:company:edit')")
|
||||
@Log(title = "公司", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody Company company)
|
||||
{
|
||||
return toAjax(companyService.updateCompany(company));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除公司
|
||||
*/
|
||||
@ApiOperation("删除公司")
|
||||
@PreAuthorize("@ss.hasPermi('app:company:remove')")
|
||||
@Log(title = "公司", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{companyIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] companyIds)
|
||||
{
|
||||
return toAjax(companyService.deleteCompanyByCompanyIds(companyIds));
|
||||
}
|
||||
}
|
@@ -0,0 +1,134 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.Industry;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.cms.service.IIndustryService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* 行业Controller
|
||||
*
|
||||
* @author LishunDong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/industry")
|
||||
@Api(tags = "后台:行业管理")
|
||||
public class IndustryController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IIndustryService industryService;
|
||||
|
||||
/**
|
||||
* 查询行业列表
|
||||
*/
|
||||
@ApiOperation("查询行业列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:industry:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(Industry industry)
|
||||
{
|
||||
startPage();
|
||||
List<Industry> list = industryService.selectIndustryList(industry);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@ApiOperation("行业树结构")
|
||||
@PreAuthorize("@ss.hasPermi('cms:industry:list')")
|
||||
@GetMapping("/treeselect")
|
||||
public AjaxResult treeselect(Industry industry)
|
||||
{
|
||||
List<Industry> industryList = industryService.selectIndustryList(industry);
|
||||
return success(industryService.buildIndustryTreeSelect(industryList));
|
||||
}
|
||||
/**
|
||||
* 导出行业列表
|
||||
*/
|
||||
@ApiOperation("导出行业列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:industry:export')")
|
||||
@Log(title = "行业", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, Industry industry)
|
||||
{
|
||||
List<Industry> list = industryService.selectIndustryList(industry);
|
||||
ExcelUtil<Industry> util = new ExcelUtil<Industry>(Industry.class);
|
||||
util.exportExcel(response, list, "行业数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取行业详细信息
|
||||
*/
|
||||
@ApiOperation("获取行业详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('cms:industry:query')")
|
||||
@GetMapping(value = "/{industryId}")
|
||||
public AjaxResult getInfo(@PathVariable("industryId") Long industryId)
|
||||
{
|
||||
return success(industryService.selectIndustryByIndustryId(industryId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增行业
|
||||
*/
|
||||
@ApiOperation("新增行业")
|
||||
@PreAuthorize("@ss.hasPermi('cms:industry:add')")
|
||||
@Log(title = "行业", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody Industry industry)
|
||||
{
|
||||
return toAjax(industryService.insertIndustry(industry));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改行业
|
||||
*/
|
||||
@ApiOperation("修改行业")
|
||||
@PreAuthorize("@ss.hasPermi('cms:industry:edit')")
|
||||
@Log(title = "行业", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody Industry industry)
|
||||
{
|
||||
return toAjax(industryService.updateIndustry(industry));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除行业
|
||||
*/
|
||||
@ApiOperation("删除行业")
|
||||
@PreAuthorize("@ss.hasPermi('cms:industry:remove')")
|
||||
@Log(title = "行业", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{industryId}")
|
||||
public AjaxResult remove(@PathVariable Long industryId)
|
||||
{
|
||||
if (industryService.hasChildByIndustryId(industryId))
|
||||
{
|
||||
return warn("存在子行业,不允许删除");
|
||||
}
|
||||
Long[] industryIds = {industryId};
|
||||
return toAjax(industryService.deleteIndustryByIndustryIds(industryIds));
|
||||
}
|
||||
@GetMapping("/import")
|
||||
public AjaxResult importData()
|
||||
{
|
||||
industryService.importData();
|
||||
return success();
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,110 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.cms.domain.JobFair;
|
||||
import com.ruoyi.cms.service.IJobFairService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* 招聘会信息Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/fair")
|
||||
@Api(tags = "后台:招聘会信息")
|
||||
public class JobFairController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IJobFairService jobFairService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询招聘会信息列表
|
||||
*/
|
||||
@ApiOperation("查询招聘会信息列表")
|
||||
@PreAuthorize("@ss.hasPermi('app:fair:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(JobFair jobFair)
|
||||
{
|
||||
startPage();
|
||||
List<JobFair> list = jobFairService.selectJobFairList(jobFair);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出招聘会信息列表
|
||||
*/
|
||||
@ApiOperation("导出招聘会信息列表")
|
||||
@PreAuthorize("@ss.hasPermi('app:fair:export')")
|
||||
@Log(title = "招聘会信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, JobFair jobFair)
|
||||
{
|
||||
List<JobFair> list = jobFairService.selectJobFairList(jobFair);
|
||||
ExcelUtil<JobFair> util = new ExcelUtil<JobFair>(JobFair.class);
|
||||
util.exportExcel(response, list, "招聘会信息数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取招聘会信息详细信息
|
||||
*/
|
||||
@ApiOperation("获取招聘会信息详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('app:fair:query')")
|
||||
@GetMapping(value = "/{jobFairId}")
|
||||
public AjaxResult getInfo(@PathVariable("jobFairId") Long jobFairId)
|
||||
{
|
||||
return success(jobFairService.selectJobFairByJobFairId(jobFairId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增招聘会信息
|
||||
*/
|
||||
@ApiOperation("新增招聘会信息")
|
||||
@PreAuthorize("@ss.hasPermi('app:fair:add')")
|
||||
@Log(title = "招聘会信息", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody JobFair jobFair)
|
||||
{
|
||||
return toAjax(jobFairService.insertJobFair(jobFair));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改招聘会信息
|
||||
*/
|
||||
@ApiOperation("修改招聘会信息")
|
||||
@PreAuthorize("@ss.hasPermi('app:fair:edit')")
|
||||
@Log(title = "招聘会信息", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody JobFair jobFair)
|
||||
{
|
||||
return toAjax(jobFairService.updateJobFair(jobFair));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除招聘会信息
|
||||
*/
|
||||
@ApiOperation("删除招聘会信息")
|
||||
@PreAuthorize("@ss.hasPermi('app:fair:remove')")
|
||||
@Log(title = "招聘会信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{jobFairIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] jobFairIds)
|
||||
{
|
||||
return toAjax(jobFairService.deleteJobFairByJobFairIds(jobFairIds));
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,142 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessDictData;
|
||||
import com.ruoyi.common.core.domain.entity.Industry;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.common.core.domain.entity.JobTitle;
|
||||
import com.ruoyi.cms.service.IJobTitleService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 岗位Controller
|
||||
*
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/job/titile")
|
||||
@Api(tags = "后台:职位接口")
|
||||
public class JobTitleController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IJobTitleService jobTitleService;
|
||||
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*/
|
||||
@ApiOperation("查询岗位列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:title:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(JobTitle jobTitle)
|
||||
{
|
||||
startPage();
|
||||
List<JobTitle> list = jobTitleService.selectJobTitleList(jobTitle);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出岗位列表
|
||||
*/
|
||||
@ApiOperation("导出岗位列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:title:export')")
|
||||
@Log(title = "岗位", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, JobTitle jobTitle)
|
||||
{
|
||||
List<JobTitle> list = jobTitleService.selectJobTitleList(jobTitle);
|
||||
ExcelUtil<JobTitle> util = new ExcelUtil<JobTitle>(JobTitle.class);
|
||||
util.exportExcel(response, list, "岗位数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取岗位详细信息
|
||||
*/
|
||||
@ApiOperation("获取岗位详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('cms:title:query')")
|
||||
@GetMapping(value = "/{jobId}")
|
||||
public AjaxResult getInfo(@PathVariable("jobId") Long jobId)
|
||||
{
|
||||
return success(jobTitleService.selectJobTitleByJobId(jobId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增岗位
|
||||
*/
|
||||
@ApiOperation("新增岗位")
|
||||
@PreAuthorize("@ss.hasPermi('cms:title:add')")
|
||||
@Log(title = "岗位", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody JobTitle jobTitle)
|
||||
{
|
||||
return toAjax(jobTitleService.insertJobTitle(jobTitle));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改岗位
|
||||
*/
|
||||
@ApiOperation("修改岗位")
|
||||
@PreAuthorize("@ss.hasPermi('cms:title:edit')")
|
||||
@Log(title = "岗位", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody JobTitle jobTitle)
|
||||
{
|
||||
return toAjax(jobTitleService.updateJobTitle(jobTitle));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除岗位
|
||||
*/
|
||||
@ApiOperation("删除岗位")
|
||||
@PreAuthorize("@ss.hasPermi('cms:title:remove')")
|
||||
@Log(title = "岗位", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{jobId}")
|
||||
public AjaxResult remove(@PathVariable Long jobId)
|
||||
{
|
||||
if (jobTitleService.hasChildByJobId(jobId))
|
||||
{
|
||||
return warn("存在子岗位,不允许删除");
|
||||
}
|
||||
Long[] jobIds = {jobId};
|
||||
return toAjax(jobTitleService.deleteJobTitleByJobIds(jobIds));
|
||||
}
|
||||
@ApiOperation("行业树结构")
|
||||
@GetMapping("/treeselect")
|
||||
public AjaxResult treeselect(JobTitle jobTitle)
|
||||
{
|
||||
List<JobTitle> jobTitleList = jobTitleService.selectJobTitleList(jobTitle);
|
||||
return success(jobTitleService.buildJobTitleTreeSelect(jobTitleList));
|
||||
}
|
||||
|
||||
@GetMapping("/import")
|
||||
public AjaxResult importJobTitle()
|
||||
{
|
||||
jobTitleService.importJobTitle();
|
||||
return success();
|
||||
}
|
||||
|
||||
@GetMapping("/levelOne")
|
||||
public AjaxResult levelOne()
|
||||
{
|
||||
List<JobTitle> result = jobTitleService.levelOne();
|
||||
return success(result);
|
||||
}
|
||||
}
|
@@ -0,0 +1,88 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessDictType;
|
||||
import com.ruoyi.cms.domain.query.Staticsquery;
|
||||
import com.ruoyi.cms.service.StaticsqueryService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/cms/statics")
|
||||
public class StaticsController extends BaseController {
|
||||
@Autowired
|
||||
private StaticsqueryService service;
|
||||
//分行业趋势分析
|
||||
@GetMapping("/industry")
|
||||
public AjaxResult industry(Staticsquery staticsquery)
|
||||
{
|
||||
Map<String,Object> result = service.industry(staticsquery);
|
||||
return success(result);
|
||||
}
|
||||
//分行业趋势分析
|
||||
@GetMapping("/industryGen")
|
||||
public AjaxResult industryGen()
|
||||
{
|
||||
service.industryGen();
|
||||
return success();
|
||||
}
|
||||
//分行业趋势分析
|
||||
@GetMapping("/industryAreaGen")
|
||||
public AjaxResult industryAreaGen()
|
||||
{
|
||||
service.areaGen();
|
||||
return success();
|
||||
}
|
||||
//分行业趋势分析
|
||||
@GetMapping("/salaryGen")
|
||||
public AjaxResult salarysalaryGen()
|
||||
{
|
||||
service.salarysalaryGen();
|
||||
return success();
|
||||
}
|
||||
@GetMapping("/salary")
|
||||
public AjaxResult salary(Staticsquery staticsquery)
|
||||
{
|
||||
Map<String,Object> result = service.salary(staticsquery);
|
||||
return success(result);
|
||||
}
|
||||
@GetMapping("/industryArea")
|
||||
public AjaxResult industryArea(Staticsquery staticsquery)
|
||||
{
|
||||
Map<String,Object> result = service.industryArea(staticsquery);
|
||||
return success(result);
|
||||
}
|
||||
//分行业趋势分析
|
||||
@GetMapping("/workYearGen")
|
||||
public AjaxResult workYearGen()
|
||||
{
|
||||
service.workYearGen();
|
||||
return success();
|
||||
}
|
||||
@GetMapping("/workYear")
|
||||
public AjaxResult workYear(Staticsquery staticsquery)
|
||||
{
|
||||
Map<String,Object> result = service.workYear(staticsquery);
|
||||
return success(result);
|
||||
}
|
||||
//分行业趋势分析
|
||||
@GetMapping("/educationGen")
|
||||
public AjaxResult educationGen()
|
||||
{
|
||||
service.educationGen();
|
||||
return success();
|
||||
}
|
||||
@GetMapping("/education")
|
||||
public AjaxResult education(Staticsquery staticsquery)
|
||||
{
|
||||
Map<String,Object> result = service.education(staticsquery);
|
||||
return success(result);
|
||||
}
|
||||
}
|
@@ -0,0 +1,100 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.cms.domain.SubwayLine;
|
||||
import com.ruoyi.cms.service.ISubwayLineService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 地铁线路Controller
|
||||
*
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/line")
|
||||
@Api(tags = "后台:地铁线路")
|
||||
public class SubwayLineController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ISubwayLineService subwayLineService;
|
||||
|
||||
/**
|
||||
* 查询地铁线路列表
|
||||
*/
|
||||
@ApiOperation("查询地铁线路列表")
|
||||
@GetMapping("/list")
|
||||
@BussinessLog(title = "查询地铁线路列表", businessType = BusinessType.CLEAN)
|
||||
public TableDataInfo list(SubwayLine subwayLine)
|
||||
{
|
||||
startPage();
|
||||
List<SubwayLine> list = subwayLineService.selectSubwayLineList(subwayLine);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取地铁线路详细信息
|
||||
*/
|
||||
@ApiOperation("获取地铁线路详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('system:line:query')")
|
||||
@GetMapping(value = "/{lineId}")
|
||||
public AjaxResult getInfo(@PathVariable("lineId") Long lineId)
|
||||
{
|
||||
return success(subwayLineService.selectSubwayLineByLineId(lineId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增地铁线路
|
||||
*/
|
||||
@ApiOperation("新增地铁线路")
|
||||
@PreAuthorize("@ss.hasPermi('system:line:add')")
|
||||
@Log(title = "地铁线路", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody SubwayLine subwayLine)
|
||||
{
|
||||
return toAjax(subwayLineService.insertSubwayLine(subwayLine));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改地铁线路
|
||||
*/
|
||||
@ApiOperation("修改地铁线路")
|
||||
@PreAuthorize("@ss.hasPermi('system:line:edit')")
|
||||
@Log(title = "地铁线路", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody SubwayLine subwayLine)
|
||||
{
|
||||
return toAjax(subwayLineService.updateSubwayLine(subwayLine));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除地铁线路
|
||||
*/
|
||||
@ApiOperation("删除地铁线路")
|
||||
@PreAuthorize("@ss.hasPermi('system:line:remove')")
|
||||
@Log(title = "地铁线路", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{lineId}")
|
||||
public AjaxResult remove(@PathVariable Long lineId)
|
||||
{
|
||||
return toAjax(subwayLineService.deleteSubwayLineByLineIds(lineId));
|
||||
}
|
||||
}
|
@@ -0,0 +1,103 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.cms.domain.SubwayStation;
|
||||
import com.ruoyi.cms.service.ISubwayStationService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 地铁站点Controller
|
||||
*
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/station")
|
||||
@Api(tags = "后台:地铁站点")
|
||||
public class SubwayStationController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ISubwayStationService subwayStationService;
|
||||
|
||||
/**
|
||||
* 查询地铁站点列表
|
||||
*/
|
||||
@ApiOperation("查询地铁站点列表")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SubwayStation subwayStation)
|
||||
{
|
||||
startPage();
|
||||
List<SubwayStation> list = subwayStationService.selectSubwayStationList(subwayStation);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取地铁站点详细信息
|
||||
*/
|
||||
@ApiOperation("获取地铁站点详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('system:station:query')")
|
||||
@GetMapping(value = "/{stationId}")
|
||||
public AjaxResult getInfo(@PathVariable("stationId") Long stationId)
|
||||
{
|
||||
return success(subwayStationService.selectSubwayStationByStationId(stationId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增地铁站点
|
||||
*/
|
||||
@ApiOperation("新增地铁站点")
|
||||
@PreAuthorize("@ss.hasPermi('system:station:add')")
|
||||
@Log(title = "地铁站点", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody SubwayStation subwayStation)
|
||||
{
|
||||
return toAjax(subwayStationService.insertSubwayStation(subwayStation));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改地铁站点
|
||||
*/
|
||||
@ApiOperation("修改地铁站点")
|
||||
@PreAuthorize("@ss.hasPermi('system:station:edit')")
|
||||
@Log(title = "地铁站点", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody SubwayStation subwayStation)
|
||||
{
|
||||
return toAjax(subwayStationService.updateSubwayStation(subwayStation));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除地铁站点
|
||||
*/
|
||||
@ApiOperation("删除地铁站点")
|
||||
@PreAuthorize("@ss.hasPermi('system:station:remove')")
|
||||
@Log(title = "地铁站点", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{stationIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] stationIds)
|
||||
{
|
||||
return toAjax(subwayStationService.deleteSubwayStationByStationIds(stationIds));
|
||||
}
|
||||
@GetMapping("/import")
|
||||
public AjaxResult importStation(){
|
||||
subwayStationService.importStation();
|
||||
return success();
|
||||
}
|
||||
}
|
@@ -0,0 +1,29 @@
|
||||
package com.ruoyi.cms.cron;
|
||||
|
||||
import com.ruoyi.cms.mapper.JobMapper;
|
||||
import com.ruoyi.cms.service.IBussinessOperLogService;
|
||||
import com.ruoyi.cms.service.ICompanyService;
|
||||
import com.ruoyi.cms.service.IESJobSearchService;
|
||||
import com.ruoyi.cms.service.IJobService;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
public class JobCron {
|
||||
public void isHot(){
|
||||
SpringUtils.getBean(JobMapper.class).isHot();
|
||||
}
|
||||
public void resetEs(){
|
||||
SpringUtils.getBean(IESJobSearchService.class).resetTextCache();
|
||||
}
|
||||
//查看索引是否存在,如果不存在,就更新
|
||||
public void checkEsAndFix(){
|
||||
SpringUtils.getBean(IESJobSearchService.class).checkEsAndFix();
|
||||
}
|
||||
//更新公司的招聘数量
|
||||
public void updateJobCountOfCompany(){
|
||||
SpringUtils.getBean(ICompanyService.class).updateJobCountOfCompany();
|
||||
}
|
||||
}
|
@@ -0,0 +1,103 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.xss.Xss;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 通知公告表 sys_notice
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class AppNotice extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 公告ID */
|
||||
private Long noticeId;
|
||||
|
||||
/** 公告标题 */
|
||||
private String noticeTitle;
|
||||
|
||||
/** 公告类型(1通知 2公告) */
|
||||
private String noticeType;
|
||||
|
||||
/** 公告内容 */
|
||||
private String noticeContent;
|
||||
|
||||
/** 公告状态(0正常 1关闭) */
|
||||
private String status;
|
||||
|
||||
public Long getNoticeId()
|
||||
{
|
||||
return noticeId;
|
||||
}
|
||||
|
||||
public void setNoticeId(Long noticeId)
|
||||
{
|
||||
this.noticeId = noticeId;
|
||||
}
|
||||
|
||||
public void setNoticeTitle(String noticeTitle)
|
||||
{
|
||||
this.noticeTitle = noticeTitle;
|
||||
}
|
||||
|
||||
@Xss(message = "公告标题不能包含脚本字符")
|
||||
@NotBlank(message = "公告标题不能为空")
|
||||
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
|
||||
public String getNoticeTitle()
|
||||
{
|
||||
return noticeTitle;
|
||||
}
|
||||
|
||||
public void setNoticeType(String noticeType)
|
||||
{
|
||||
this.noticeType = noticeType;
|
||||
}
|
||||
|
||||
public String getNoticeType()
|
||||
{
|
||||
return noticeType;
|
||||
}
|
||||
|
||||
public void setNoticeContent(String noticeContent)
|
||||
{
|
||||
this.noticeContent = noticeContent;
|
||||
}
|
||||
|
||||
public String getNoticeContent()
|
||||
{
|
||||
return noticeContent;
|
||||
}
|
||||
|
||||
public void setStatus(String status)
|
||||
{
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getStatus()
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("noticeId", getNoticeId())
|
||||
.append("noticeTitle", getNoticeTitle())
|
||||
.append("noticeType", getNoticeType())
|
||||
.append("noticeContent", getNoticeContent())
|
||||
.append("status", getStatus())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
@@ -0,0 +1,39 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 用户岗位浏览记录对象 app_review_job
|
||||
* @author ${author}
|
||||
* @date 2025-02-14
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("用户岗位浏览记录")
|
||||
@TableName(value = "app_review_job")
|
||||
public class AppReviewJob extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
private Long userId;
|
||||
|
||||
private Long jobId;
|
||||
|
||||
/** 浏览日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "浏览日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@ApiModelProperty("浏览日期")
|
||||
private Date reviewDate;
|
||||
|
||||
}
|
114
ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java
Normal file
114
ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java
Normal file
@@ -0,0 +1,114 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* APP用户对象 app_user
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("APP用户")
|
||||
@TableName(value = "app_user")
|
||||
public class AppUser extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 用户ID */
|
||||
@TableId(value = "user_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("用户ID")
|
||||
private Long userId;
|
||||
|
||||
/** 用户名称 */
|
||||
@Excel(name = "用户名称")
|
||||
@ApiModelProperty("用户名称")
|
||||
private String name;
|
||||
|
||||
/** 年龄段 对应字典age */
|
||||
@Excel(name = "年龄段 对应字典age")
|
||||
@ApiModelProperty("年龄段 对应字典age")
|
||||
private String age;
|
||||
|
||||
/** 用户性别(0男 1女)对应字典sex */
|
||||
@Excel(name = "用户性别", readConverterExp = "0=男,1=女")
|
||||
@ApiModelProperty("用户性别(0男 1女)对应字典sex")
|
||||
private String sex;
|
||||
|
||||
/** 生日 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@ApiModelProperty("生日")
|
||||
private Date birthDate;
|
||||
|
||||
/** 学历 对应字典education */
|
||||
@Excel(name = "学历 对应字典education")
|
||||
@ApiModelProperty("学历 对应字典education")
|
||||
private String education;
|
||||
|
||||
/** 政治面貌 */
|
||||
@Excel(name = "政治面貌")
|
||||
@ApiModelProperty("政治面貌")
|
||||
private String politicalAffiliation;
|
||||
|
||||
/** 手机号码 */
|
||||
@Excel(name = "手机号码")
|
||||
@ApiModelProperty("手机号码")
|
||||
private String phone;
|
||||
|
||||
/** 头像地址 */
|
||||
@Excel(name = "头像地址")
|
||||
@ApiModelProperty("头像地址")
|
||||
private String avatar;
|
||||
|
||||
/** 最低工资 */
|
||||
@Excel(name = "最低工资")
|
||||
@ApiModelProperty("最低工资")
|
||||
private String salaryMin;
|
||||
|
||||
/** 最高工资 */
|
||||
@Excel(name = "最高工资")
|
||||
@ApiModelProperty("最高工资")
|
||||
private String salaryMax;
|
||||
|
||||
/** 期望工作地 对应字典area */
|
||||
@Excel(name = "期望工作地 对应字典area")
|
||||
@ApiModelProperty("期望工作地 对应字典area")
|
||||
private String area;
|
||||
|
||||
/** 帐号状态(0正常 1停用) */
|
||||
@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
|
||||
@ApiModelProperty("帐号状态(0正常 1停用)")
|
||||
private String status;
|
||||
|
||||
/** 最后登录IP */
|
||||
@Excel(name = "最后登录IP")
|
||||
@ApiModelProperty("最后登录IP")
|
||||
private String loginIp;
|
||||
|
||||
/** 最后登录时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@ApiModelProperty("最后登录时间")
|
||||
private Date loginDate;
|
||||
|
||||
@ApiModelProperty("期望岗位,逗号分隔")
|
||||
private String jobTitleId;
|
||||
@ApiModelProperty("期望薪资")
|
||||
private String experience;
|
||||
@ApiModelProperty("是否开启推荐(0不推荐 1推荐)")
|
||||
private Integer isRecommend;
|
||||
@TableField(exist = false)
|
||||
private List<String> jobTitle;
|
||||
}
|
@@ -0,0 +1,177 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.annotation.Excel.ColumnType;
|
||||
import com.ruoyi.common.constant.UserConstants;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 字典数据表 sys_dict_data
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class BussinessDictData extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 字典编码 */
|
||||
@Excel(name = "字典编码", cellType = ColumnType.NUMERIC)
|
||||
private Long dictCode;
|
||||
|
||||
/** 字典排序 */
|
||||
@Excel(name = "字典排序", cellType = ColumnType.NUMERIC)
|
||||
private Long dictSort;
|
||||
|
||||
/** 字典标签 */
|
||||
@Excel(name = "字典标签")
|
||||
private String dictLabel;
|
||||
|
||||
/** 字典键值 */
|
||||
@Excel(name = "字典键值")
|
||||
private String dictValue;
|
||||
|
||||
/** 字典类型 */
|
||||
@Excel(name = "字典类型")
|
||||
private String dictType;
|
||||
|
||||
/** 样式属性(其他样式扩展) */
|
||||
private String cssClass;
|
||||
|
||||
/** 表格字典样式 */
|
||||
private String listClass;
|
||||
|
||||
/** 是否默认(Y是 N否) */
|
||||
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
|
||||
private String isDefault;
|
||||
|
||||
/** 状态(0正常 1停用) */
|
||||
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
|
||||
private String status;
|
||||
|
||||
public Long getDictCode()
|
||||
{
|
||||
return dictCode;
|
||||
}
|
||||
|
||||
public void setDictCode(Long dictCode)
|
||||
{
|
||||
this.dictCode = dictCode;
|
||||
}
|
||||
|
||||
public Long getDictSort()
|
||||
{
|
||||
return dictSort;
|
||||
}
|
||||
|
||||
public void setDictSort(Long dictSort)
|
||||
{
|
||||
this.dictSort = dictSort;
|
||||
}
|
||||
|
||||
@NotBlank(message = "字典标签不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
|
||||
public String getDictLabel()
|
||||
{
|
||||
return dictLabel;
|
||||
}
|
||||
|
||||
public void setDictLabel(String dictLabel)
|
||||
{
|
||||
this.dictLabel = dictLabel;
|
||||
}
|
||||
|
||||
@NotBlank(message = "字典键值不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
|
||||
public String getDictValue()
|
||||
{
|
||||
return dictValue;
|
||||
}
|
||||
|
||||
public void setDictValue(String dictValue)
|
||||
{
|
||||
this.dictValue = dictValue;
|
||||
}
|
||||
|
||||
@NotBlank(message = "字典类型不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
|
||||
public String getDictType()
|
||||
{
|
||||
return dictType;
|
||||
}
|
||||
|
||||
public void setDictType(String dictType)
|
||||
{
|
||||
this.dictType = dictType;
|
||||
}
|
||||
|
||||
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
|
||||
public String getCssClass()
|
||||
{
|
||||
return cssClass;
|
||||
}
|
||||
|
||||
public void setCssClass(String cssClass)
|
||||
{
|
||||
this.cssClass = cssClass;
|
||||
}
|
||||
|
||||
public String getListClass()
|
||||
{
|
||||
return listClass;
|
||||
}
|
||||
|
||||
public void setListClass(String listClass)
|
||||
{
|
||||
this.listClass = listClass;
|
||||
}
|
||||
|
||||
public boolean getDefault()
|
||||
{
|
||||
return UserConstants.YES.equals(this.isDefault);
|
||||
}
|
||||
|
||||
public String getIsDefault()
|
||||
{
|
||||
return isDefault;
|
||||
}
|
||||
|
||||
public void setIsDefault(String isDefault)
|
||||
{
|
||||
this.isDefault = isDefault;
|
||||
}
|
||||
|
||||
public String getStatus()
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status)
|
||||
{
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("dictCode", getDictCode())
|
||||
.append("dictSort", getDictSort())
|
||||
.append("dictLabel", getDictLabel())
|
||||
.append("dictValue", getDictValue())
|
||||
.append("dictType", getDictType())
|
||||
.append("cssClass", getCssClass())
|
||||
.append("listClass", getListClass())
|
||||
.append("isDefault", getIsDefault())
|
||||
.append("status", getStatus())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.annotation.Excel.ColumnType;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Pattern;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 字典类型表 sys_dict_type
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class BussinessDictType extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 字典主键 */
|
||||
@Excel(name = "字典主键", cellType = ColumnType.NUMERIC)
|
||||
private Long dictId;
|
||||
|
||||
/** 字典名称 */
|
||||
@Excel(name = "字典名称")
|
||||
private String dictName;
|
||||
|
||||
/** 字典类型 */
|
||||
@Excel(name = "字典类型")
|
||||
private String dictType;
|
||||
|
||||
/** 状态(0正常 1停用) */
|
||||
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
|
||||
private String status;
|
||||
|
||||
public Long getDictId()
|
||||
{
|
||||
return dictId;
|
||||
}
|
||||
|
||||
public void setDictId(Long dictId)
|
||||
{
|
||||
this.dictId = dictId;
|
||||
}
|
||||
|
||||
@NotBlank(message = "字典名称不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
|
||||
public String getDictName()
|
||||
{
|
||||
return dictName;
|
||||
}
|
||||
|
||||
public void setDictName(String dictName)
|
||||
{
|
||||
this.dictName = dictName;
|
||||
}
|
||||
|
||||
@NotBlank(message = "字典类型不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
|
||||
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
|
||||
public String getDictType()
|
||||
{
|
||||
return dictType;
|
||||
}
|
||||
|
||||
public void setDictType(String dictType)
|
||||
{
|
||||
this.dictType = dictType;
|
||||
}
|
||||
|
||||
public String getStatus()
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status)
|
||||
{
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("dictId", getDictId())
|
||||
.append("dictName", getDictName())
|
||||
.append("dictType", getDictType())
|
||||
.append("status", getStatus())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
@@ -0,0 +1,115 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* app操作日志记录对象 bussiness_oper_log
|
||||
* @author ${author}
|
||||
* @date 2024-11-13
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("app操作日志记录")
|
||||
@TableName(value = "bussiness_oper_log")
|
||||
public class BussinessOperLog extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 日志主键 */
|
||||
@TableId(value = "oper_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("日志主键")
|
||||
private Long operId;
|
||||
|
||||
/** 模块标题 */
|
||||
@Excel(name = "模块标题")
|
||||
@ApiModelProperty("模块标题")
|
||||
private String title;
|
||||
|
||||
/** 业务类型(0其它 1新增 2修改 3删除) */
|
||||
@Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除")
|
||||
@ApiModelProperty("业务类型(0其它 1新增 2修改 3删除)")
|
||||
private Integer businessType;
|
||||
|
||||
/** 方法名称 */
|
||||
@Excel(name = "方法名称")
|
||||
@ApiModelProperty("方法名称")
|
||||
private String method;
|
||||
|
||||
/** 请求方式 */
|
||||
@Excel(name = "请求方式")
|
||||
@ApiModelProperty("请求方式")
|
||||
private String requestMethod;
|
||||
|
||||
/** 操作类别(0其它 1后台用户 2手机端用户) */
|
||||
@Excel(name = "操作类别", readConverterExp = "0=其它,1=后台用户,2=手机端用户")
|
||||
@ApiModelProperty("操作类别(0其它 1后台用户 2手机端用户)")
|
||||
private Integer operatorType;
|
||||
|
||||
/** 操作人员 */
|
||||
@Excel(name = "操作人员")
|
||||
@ApiModelProperty("操作人员")
|
||||
private String operName;
|
||||
|
||||
/** 部门名称 */
|
||||
@Excel(name = "部门名称")
|
||||
@ApiModelProperty("部门名称")
|
||||
private String deptName;
|
||||
|
||||
/** 请求URL */
|
||||
@Excel(name = "请求URL")
|
||||
@ApiModelProperty("请求URL")
|
||||
private String operUrl;
|
||||
|
||||
/** 主机地址 */
|
||||
@Excel(name = "主机地址")
|
||||
@ApiModelProperty("主机地址")
|
||||
private String operIp;
|
||||
|
||||
/** 操作地点 */
|
||||
@Excel(name = "操作地点")
|
||||
@ApiModelProperty("操作地点")
|
||||
private String operLocation;
|
||||
|
||||
/** 请求参数 */
|
||||
@Excel(name = "请求参数")
|
||||
@ApiModelProperty("请求参数")
|
||||
private String operParam;
|
||||
|
||||
/** 返回参数 */
|
||||
@Excel(name = "返回参数")
|
||||
@ApiModelProperty("返回参数")
|
||||
private String jsonResult;
|
||||
|
||||
/** 操作状态(0正常 1异常) */
|
||||
@Excel(name = "操作状态", readConverterExp = "0=正常,1=异常")
|
||||
@ApiModelProperty("操作状态(0正常 1异常)")
|
||||
private Integer status;
|
||||
|
||||
/** 错误消息 */
|
||||
@Excel(name = "错误消息")
|
||||
@ApiModelProperty("错误消息")
|
||||
private String errorMsg;
|
||||
|
||||
/** 操作时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@ApiModelProperty("操作时间")
|
||||
private Date operTime;
|
||||
|
||||
/** 消耗时间 */
|
||||
@Excel(name = "消耗时间")
|
||||
@ApiModelProperty("消耗时间")
|
||||
private Long costTime;
|
||||
|
||||
/** 业务类型数组 */
|
||||
private Integer[] businessTypes;
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 商圈对象 commercial_area
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("商圈")
|
||||
@TableName(value = "commercial_area")
|
||||
public class CommercialArea extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "commercial_area_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long commercialAreaId;
|
||||
|
||||
/** 商圈名称 */
|
||||
@Excel(name = "商圈名称")
|
||||
@ApiModelProperty("商圈名称")
|
||||
private String commercialAreaName;
|
||||
|
||||
/** 纬度 */
|
||||
@Excel(name = "纬度")
|
||||
@ApiModelProperty("纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
/** 经度 */
|
||||
@Excel(name = "经度")
|
||||
@ApiModelProperty("经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
private String address;
|
||||
|
||||
}
|
@@ -0,0 +1,63 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 公司对象 company
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公司")
|
||||
@TableName(value = "company")
|
||||
public class Company extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 公司id */
|
||||
@TableId(value = "company_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
/** 单位名称 */
|
||||
@Excel(name = "单位名称")
|
||||
@ApiModelProperty("单位名称")
|
||||
private String name;
|
||||
|
||||
/** 单位地点 */
|
||||
@Excel(name = "单位地点")
|
||||
@ApiModelProperty("单位地点")
|
||||
private String location;
|
||||
|
||||
/** 主要行业 */
|
||||
@Excel(name = "主要行业")
|
||||
@ApiModelProperty("主要行业")
|
||||
private String industry;
|
||||
|
||||
/** 单位规模 对应字典scale */
|
||||
@Excel(name = "单位规模 对应字典scale")
|
||||
@ApiModelProperty("单位规模 对应字典scale")
|
||||
private String scale;
|
||||
@Excel(name = "信用代码")
|
||||
@ApiModelProperty("信用代码")
|
||||
private String code;
|
||||
@Excel(name = "单位介绍")
|
||||
@ApiModelProperty("单位介绍")
|
||||
private String description;
|
||||
@Excel(name = "性质")
|
||||
@ApiModelProperty("性质")
|
||||
private String nature;
|
||||
@ApiModelProperty("招聘数量")
|
||||
private Integer totalRecruitment;
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("是否收藏")
|
||||
private Integer isCollection;
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 公司卡片对象 company_card
|
||||
* @author ${author}
|
||||
* @date 2025-02-18
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公司卡片")
|
||||
@TableName(value = "company_card")
|
||||
public class CompanyCard extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 公司id */
|
||||
@TableId(value = "company_card_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyCardId;
|
||||
|
||||
/** 卡片名称 */
|
||||
@Excel(name = "卡片名称")
|
||||
@ApiModelProperty("卡片名称")
|
||||
private String name;
|
||||
|
||||
/** 标签,逗号分开 */
|
||||
@Excel(name = "标签,逗号分开")
|
||||
@ApiModelProperty("标签,逗号分开")
|
||||
private String targ;
|
||||
@Excel(name = "企业性质")
|
||||
@ApiModelProperty("企业性质,逗号分开")
|
||||
private String companyNature;
|
||||
/** 背景色 */
|
||||
@Excel(name = "背景色")
|
||||
@ApiModelProperty("背景色")
|
||||
private String backgroudColor;
|
||||
private Integer status;
|
||||
private Integer cardOrder;
|
||||
private String description;
|
||||
private String icon;
|
||||
}
|
@@ -0,0 +1,37 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 公司卡片收藏对象 company_card_collection
|
||||
* @author ${author}
|
||||
* @date 2025-02-18
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公司卡片收藏")
|
||||
@TableName(value = "company_card_collection")
|
||||
public class CompanyCardCollection extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 公司id */
|
||||
@TableId(value = "company_card_collection_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyCardCollectionId;
|
||||
|
||||
/** 用户id */
|
||||
@Excel(name = "用户id")
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
@Excel(name = "用户id")
|
||||
@ApiModelProperty("用户id")
|
||||
private Long companyCardId;
|
||||
}
|
@@ -0,0 +1,40 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 用户公司收藏对象 company_collection
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("用户公司收藏")
|
||||
@TableName(value = "company_collection")
|
||||
public class CompanyCollection extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
/** 公司id */
|
||||
@Excel(name = "公司id")
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
/** App用户id */
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
}
|
@@ -0,0 +1,33 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 公司标签对象 company_label
|
||||
* @author ${author}
|
||||
* @date 2025-02-18
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公司标签")
|
||||
@TableName(value = "company_label")
|
||||
public class CompanyLabel extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
private String dictValue;
|
||||
|
||||
private Long companyId;
|
||||
|
||||
}
|
@@ -0,0 +1,119 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
import org.dromara.easyes.annotation.IndexField;
|
||||
import org.dromara.easyes.annotation.IndexId;
|
||||
import org.dromara.easyes.annotation.IndexName;
|
||||
import org.dromara.easyes.annotation.rely.Analyzer;
|
||||
import org.dromara.easyes.annotation.rely.FieldType;
|
||||
import org.dromara.easyes.annotation.rely.IdType;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 全文索引 ES数据模型
|
||||
**/
|
||||
@IndexName("job_document_gt")
|
||||
@Data
|
||||
public class ESJobDocument
|
||||
{
|
||||
/**
|
||||
* es中的唯一id
|
||||
*/
|
||||
@IndexId(type = IdType.NONE)
|
||||
@JsonIgnore
|
||||
private String id;
|
||||
|
||||
/** 公告ID */
|
||||
private Long jobId;
|
||||
|
||||
/** 公告标题 */
|
||||
@IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD)
|
||||
private String jobTitle;
|
||||
|
||||
/** 内容 */
|
||||
@IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD)
|
||||
private String description;
|
||||
|
||||
/** 公告状态 */
|
||||
@JsonIgnore
|
||||
private String status;
|
||||
|
||||
private Long minSalary;
|
||||
|
||||
/** 最大薪资(元) */
|
||||
private Long maxSalary;
|
||||
|
||||
/** 学历要求 对应字典education */
|
||||
private String education;
|
||||
|
||||
/** 工作经验要求 对应字典experience */
|
||||
private String experience;
|
||||
|
||||
/** 用人单位名称 */
|
||||
private String companyName;
|
||||
|
||||
/** 工作地点 */
|
||||
private String jobLocation;
|
||||
|
||||
private Integer jobLocationAreaCode;
|
||||
|
||||
/** 发布时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date postingDate;
|
||||
|
||||
/** 招聘人数 */
|
||||
private Long vacancies;
|
||||
|
||||
/** 纬度 */
|
||||
private BigDecimal latitude;
|
||||
|
||||
/** 经度 */
|
||||
private BigDecimal longitude;
|
||||
|
||||
/** 浏览量 */
|
||||
private Long view;
|
||||
|
||||
/** 公司id */
|
||||
private Long companyId;
|
||||
|
||||
private Integer isHot;
|
||||
|
||||
private Integer applyNum;
|
||||
@JsonIgnore
|
||||
private Company company;
|
||||
|
||||
private Integer isApply;
|
||||
|
||||
private Integer isCollection;
|
||||
|
||||
private String dataSource;
|
||||
|
||||
private String jobUrl;
|
||||
@JsonIgnore
|
||||
@IndexField(fieldType = FieldType.GEO_POINT)
|
||||
private String latAndLon;
|
||||
@JsonIgnore
|
||||
private String scaleDictCode;
|
||||
|
||||
private String industry;
|
||||
|
||||
private String jobCategory;
|
||||
@JsonIgnore
|
||||
private Integer education_int;
|
||||
@JsonIgnore
|
||||
private Integer experience_int;
|
||||
// @JsonIgnore
|
||||
private Integer scale;
|
||||
|
||||
private String appJobUrl;
|
||||
|
||||
private String companyNature;
|
||||
|
||||
private Integer isExplain;
|
||||
private String explainUrl;
|
||||
private String cover;
|
||||
}
|
@@ -0,0 +1,41 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 用户岗位收藏对象 job_collection
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("用户和招聘会收藏")
|
||||
@TableName(value = "fair_collection")
|
||||
public class FairCollection extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
/** 岗位id */
|
||||
@Excel(name = "招聘会id")
|
||||
@ApiModelProperty("招聘会id")
|
||||
private Long fairId;
|
||||
|
||||
/** App用户id */
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
}
|
@@ -0,0 +1,40 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 公司招聘会关联对象 fair_company
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("公司招聘会关联")
|
||||
@TableName(value = "fair_company")
|
||||
public class FairCompany extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
/** 公司id */
|
||||
@Excel(name = "公司id")
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
/** 招聘会id */
|
||||
@Excel(name = "招聘会id")
|
||||
@ApiModelProperty("招聘会id")
|
||||
private Long jobFairId;
|
||||
|
||||
}
|
40
ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/File.java
Normal file
40
ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/File.java
Normal file
@@ -0,0 +1,40 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 文件对象 file
|
||||
* @author ${author}
|
||||
* @date 2025-03-18
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("文件")
|
||||
@TableName(value = "file")
|
||||
public class File extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
/** url */
|
||||
@Excel(name = "url")
|
||||
@ApiModelProperty("url")
|
||||
private String fileUrl;
|
||||
|
||||
/** 业务id */
|
||||
@Excel(name = "业务id")
|
||||
@ApiModelProperty("业务id")
|
||||
private Long bussinessId;
|
||||
|
||||
}
|
148
ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java
Normal file
148
ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java
Normal file
@@ -0,0 +1,148 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 岗位对象 job
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("岗位")
|
||||
@TableName(value = "job")
|
||||
public class Job extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 工作id */
|
||||
@TableId(value = "job_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("工作id")
|
||||
private Long jobId;
|
||||
|
||||
/** 职位名称 */
|
||||
@Excel(name = "职位名称")
|
||||
@ApiModelProperty("职位名称")
|
||||
private String jobTitle;
|
||||
|
||||
/** 最小薪资(元) */
|
||||
@Excel(name = "最小薪资", readConverterExp = "元=")
|
||||
@ApiModelProperty("最小薪资(元)")
|
||||
private Long minSalary;
|
||||
|
||||
/** 最大薪资(元) */
|
||||
@Excel(name = "最大薪资", readConverterExp = "元=")
|
||||
@ApiModelProperty("最大薪资(元)")
|
||||
private Long maxSalary;
|
||||
|
||||
/** 学历要求 对应字典education */
|
||||
@Excel(name = "学历要求 对应字典education")
|
||||
@ApiModelProperty("学历要求 对应字典education")
|
||||
private String education;
|
||||
|
||||
/** 工作经验要求 对应字典experience */
|
||||
@Excel(name = "工作经验要求 对应字典experience")
|
||||
@ApiModelProperty("工作经验要求 对应字典experience")
|
||||
private String experience;
|
||||
|
||||
/** 用人单位名称 */
|
||||
@Excel(name = "用人单位名称")
|
||||
@ApiModelProperty("用人单位名称")
|
||||
private String companyName;
|
||||
|
||||
/** 工作地点 */
|
||||
@Excel(name = "工作地点")
|
||||
@ApiModelProperty("工作地点")
|
||||
private String jobLocation;
|
||||
|
||||
@ApiModelProperty("工作地点区县字典代码")
|
||||
private Integer jobLocationAreaCode;
|
||||
|
||||
/** 发布时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@ApiModelProperty("发布时间")
|
||||
private Date postingDate;
|
||||
|
||||
/** 招聘人数 */
|
||||
@Excel(name = "招聘人数")
|
||||
@ApiModelProperty("招聘人数")
|
||||
private Long vacancies;
|
||||
|
||||
/** 纬度 */
|
||||
@Excel(name = "纬度")
|
||||
@ApiModelProperty("纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
/** 经度 */
|
||||
@Excel(name = "经度")
|
||||
@ApiModelProperty("经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
/** 浏览量 */
|
||||
@Excel(name = "浏览量")
|
||||
@ApiModelProperty("浏览量")
|
||||
@TableField("\"VIEW\"")
|
||||
private Long view;
|
||||
|
||||
/** 公司id */
|
||||
@Excel(name = "公司id")
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
@ApiModelProperty("是否火")
|
||||
private Integer isHot;
|
||||
|
||||
@ApiModelProperty("申请次数")
|
||||
@JsonIgnore
|
||||
private Integer applyNum;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("公司信息")
|
||||
private Company company;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("是否申请 0为否 1为是")
|
||||
private Integer isApply;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("是否收藏 0为否 1为是")
|
||||
private Integer isCollection;
|
||||
|
||||
@ApiModelProperty("工作地点")
|
||||
private String description;
|
||||
|
||||
@ApiModelProperty("是否发布 0未发布 1发布")
|
||||
private Integer isPublish;
|
||||
@ApiModelProperty("数据来源")
|
||||
private String dataSource;
|
||||
@ApiModelProperty("数据来源")
|
||||
private String jobUrl;
|
||||
|
||||
private Long rowId;
|
||||
@TableField(exist = false)
|
||||
private String scale;
|
||||
@TableField(exist = false)
|
||||
private String industry;
|
||||
@ApiModelProperty("岗位分类")
|
||||
private String jobCategory;
|
||||
@TableField(exist = false)
|
||||
private String companyNature;
|
||||
@TableField(exist = false)
|
||||
private String applyTime;
|
||||
|
||||
private Integer isExplain;
|
||||
private String explainUrl;
|
||||
private String cover;
|
||||
}
|
@@ -0,0 +1,45 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 岗位申请对象 job_apply
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("岗位申请")
|
||||
@TableName(value = "job_apply")
|
||||
public class JobApply extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
/** 岗位id */
|
||||
@Excel(name = "岗位id")
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
|
||||
/** App用户id */
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
/** 匹配度 */
|
||||
@Excel(name = "匹配度")
|
||||
@ApiModelProperty("匹配度")
|
||||
private Long matchingDegree;
|
||||
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 用户岗位收藏对象 job_collection
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("用户岗位收藏")
|
||||
@TableName(value = "job_collection")
|
||||
public class JobCollection extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
/** 岗位id */
|
||||
@Excel(name = "岗位id")
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
|
||||
/** App用户id */
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
}
|
@@ -0,0 +1,82 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 招聘会信息对象 job_fair
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("招聘会信息")
|
||||
@TableName(value = "job_fair")
|
||||
public class JobFair extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 招聘会id */
|
||||
@TableId(value = "job_fair_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("招聘会id")
|
||||
private Long jobFairId;
|
||||
|
||||
/** 招聘会名称 */
|
||||
@Excel(name = "招聘会名称")
|
||||
@ApiModelProperty("招聘会名称")
|
||||
private String name;
|
||||
|
||||
/** 招聘会类型 对应字典 job_fair_type */
|
||||
@Excel(name = "招聘会类型 对应字典 job_fair_type")
|
||||
@ApiModelProperty("招聘会类型 对应字典 job_fair_type")
|
||||
private String jobFairType;
|
||||
|
||||
/** 地点 */
|
||||
@Excel(name = "地点")
|
||||
@ApiModelProperty("地点")
|
||||
private String location;
|
||||
|
||||
/** 纬度 */
|
||||
@Excel(name = "纬度")
|
||||
@ApiModelProperty("纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
/** 经度 */
|
||||
@Excel(name = "经度")
|
||||
@ApiModelProperty("经度")
|
||||
private BigDecimal longitude;
|
||||
@ApiModelProperty("描述")
|
||||
private String description;
|
||||
@ApiModelProperty("地点")
|
||||
private String address;
|
||||
/** 招聘会开始时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "招聘会开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("招聘会开始时间")
|
||||
private Date startTime;
|
||||
|
||||
/** 招聘会结束时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "招聘会结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("招聘会结束时间")
|
||||
private Date endTime;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<Company> companyList;
|
||||
@TableField(exist = false)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date queryDate;
|
||||
@TableField(exist = false)
|
||||
public Integer isCollection;
|
||||
}
|
@@ -0,0 +1,41 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 用户岗位收藏对象 job_collection
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("用户岗位收藏")
|
||||
@TableName(value = "job_recommend")
|
||||
public class JobRecomment extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
/** 岗位id */
|
||||
@Excel(name = "岗位id")
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
|
||||
/** App用户id */
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
}
|
@@ -0,0 +1,35 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName(value = "notice")
|
||||
public class Notice extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** ID */
|
||||
@TableId(value = "notice_id",type = IdType.AUTO)
|
||||
private Long noticeId;
|
||||
/** 公告标题 */
|
||||
private String title;
|
||||
private String subTitle;
|
||||
private Integer notReadCount;
|
||||
private Integer isRead;
|
||||
@JsonFormat(pattern = "MM-dd")
|
||||
private Date date;
|
||||
private String noticeType;
|
||||
/** 公告内容 */
|
||||
private String noticeContent;
|
||||
private Long userId;
|
||||
private Long bussinessId;
|
||||
}
|
@@ -0,0 +1,60 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
@Data
|
||||
public class RowWork {
|
||||
|
||||
private String Id;
|
||||
|
||||
private String TaskId;
|
||||
private String TaskName;
|
||||
private String Std_class;
|
||||
private String JobCategory;
|
||||
private String SF;
|
||||
private String ZCMC;
|
||||
private String Aca112;
|
||||
private String Acb22a;
|
||||
private String Aac011;
|
||||
private String Acb240;
|
||||
private String Recruit_Num;
|
||||
private String Acb202;
|
||||
private String Aab302;
|
||||
private String Acb241;
|
||||
private String Salary;
|
||||
private String SalaryLow;
|
||||
private String SalaryHight;
|
||||
private Date Aae397;
|
||||
private String AAB004;
|
||||
private String AAB022;
|
||||
private String AAB019;
|
||||
private String AAE006;
|
||||
private String AAB092;
|
||||
private String ORG;
|
||||
private String ACE760;
|
||||
private String AAE004;
|
||||
private String AAE005;
|
||||
private String Num_employers;
|
||||
private String Experience;
|
||||
private String Highlight;
|
||||
private String Minimum_age;
|
||||
private String Maximum_age;
|
||||
private String Sex;
|
||||
private String IndustryType;
|
||||
private String IndustrySub;
|
||||
private String AAB019_OK;
|
||||
private String Aac011_OK;
|
||||
private String Experience_OK;
|
||||
private String Num_OK;
|
||||
private Date Collect_time;
|
||||
private String ClearFlag;
|
||||
private String Province;
|
||||
private String City;
|
||||
private String County;
|
||||
private String importdate;
|
||||
private String YearMonth;
|
||||
private String IsRepeat;
|
||||
private String latitude;
|
||||
private String longitude;
|
||||
}
|
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 文件对象 file
|
||||
* @author ${author}
|
||||
* @date 2025-03-18
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "statics")
|
||||
public class Statics extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** id */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
private Long id;
|
||||
private String time;
|
||||
private String type;
|
||||
private String name;
|
||||
private String data;
|
||||
}
|
@@ -0,0 +1,41 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 地铁线路对象 subway_line
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("地铁线路")
|
||||
@TableName(value = "subway_line")
|
||||
public class SubwayLine extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "line_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long lineId;
|
||||
|
||||
/** 线路名称 */
|
||||
@Excel(name = "线路名称")
|
||||
@ApiModelProperty("线路名称")
|
||||
private String lineName;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("站点列表")
|
||||
private List<SubwayStation> subwayStationList;
|
||||
}
|
@@ -0,0 +1,59 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
/**
|
||||
* 地铁站点对象 subway_station
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("地铁站点")
|
||||
@TableName(value = "subway_station")
|
||||
public class SubwayStation extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
@TableId(value = "station_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long stationId;
|
||||
|
||||
/** 地铁名称 */
|
||||
@Excel(name = "地铁名称")
|
||||
@ApiModelProperty("地铁名称")
|
||||
private String stationName;
|
||||
|
||||
/** 所属线路名称 */
|
||||
@Excel(name = "所属线路名称")
|
||||
@ApiModelProperty("所属线路名称")
|
||||
private String lineName;
|
||||
|
||||
/** 线路id */
|
||||
@Excel(name = "线路id")
|
||||
@ApiModelProperty("线路id")
|
||||
private Long lineId;
|
||||
|
||||
/** 纬度 */
|
||||
@Excel(name = "纬度")
|
||||
@ApiModelProperty("纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
/** 经度 */
|
||||
@Excel(name = "经度")
|
||||
@ApiModelProperty("经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
private Integer stationOrder;
|
||||
private String address;
|
||||
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class VectorJob {
|
||||
private String jobTitle; // Aca112
|
||||
private String jobId; // id
|
||||
private String scale; // Num_employers
|
||||
private String education; // Aac011_OK
|
||||
private String nature; // AAB019_OK
|
||||
private String experience; // Experience_OK
|
||||
private String salary; // Acb241
|
||||
private String companyName; // aab004
|
||||
private String area; // Aab302
|
||||
private String jobLocation; // acb202
|
||||
private String description; // Acb22a
|
||||
private String jobUrl; // ACE760
|
||||
private String minSalary;
|
||||
private String maxSalary;
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
package com.ruoyi.cms.domain.query;
|
||||
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 前端搜索对象
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class ESJobSearch extends Job
|
||||
{
|
||||
/** 搜索值 */
|
||||
private String searchValue;
|
||||
|
||||
/** 当前记录起始索引 */
|
||||
private Integer current;
|
||||
|
||||
/** 每页显示记录数 */
|
||||
private Integer pageSize;
|
||||
|
||||
private String sessionId;
|
||||
|
||||
private String radius;
|
||||
|
||||
@ApiModelProperty("排序方式 0:推荐 1:最热 2:最新发布")
|
||||
private Integer order;
|
||||
|
||||
//商圈id
|
||||
private List<Long> commercialAreaIds;
|
||||
|
||||
//区县id
|
||||
private List<String> countyIds;
|
||||
|
||||
//地铁id
|
||||
private List<Integer> subwayIds;
|
||||
|
||||
/** 纬度 */
|
||||
private BigDecimal latitude;
|
||||
/** 经度 */
|
||||
private BigDecimal longitude;
|
||||
//是否发布 0未发布 1发布
|
||||
private Integer isPublish;
|
||||
|
||||
private String salaryDictCode;
|
||||
|
||||
private String scaleDictCode;
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
package com.ruoyi.cms.domain.query;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LabelQuery {
|
||||
private Long cardId;
|
||||
private String companyName;
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.cms.domain.query;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class MineJobQuery extends Job {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty("发布时间")
|
||||
private String startDate;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty("发布时间")
|
||||
private String endDate;
|
||||
}
|
@@ -0,0 +1,222 @@
|
||||
package com.ruoyi.cms.domain.query;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.Year;
|
||||
import java.time.YearMonth;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class Staticsquery {
|
||||
//月/季度/年
|
||||
private String timeDimension;
|
||||
//岗位发布数量 招聘增长率
|
||||
private String type;
|
||||
private String startTime;
|
||||
private String endTime;
|
||||
|
||||
public List<String> generateTimeRange() {
|
||||
switch (timeDimension) {
|
||||
case "月":
|
||||
return generateMonthRange();
|
||||
case "季度":
|
||||
return generateQuarterRange();
|
||||
case "年":
|
||||
return generateYearRange();
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid time dimension: " + timeDimension);
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> generateMonthRange() {
|
||||
List<String> months = new ArrayList<>();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
|
||||
|
||||
try {
|
||||
YearMonth start = YearMonth.parse(startTime, formatter);
|
||||
YearMonth end = YearMonth.parse(endTime, formatter);
|
||||
|
||||
if (start.isAfter(end)) {
|
||||
YearMonth temp = start;
|
||||
start = end;
|
||||
end = temp;
|
||||
}
|
||||
|
||||
YearMonth current = end;
|
||||
while (!current.isBefore(start)) {
|
||||
months.add(current.format(formatter));
|
||||
current = current.minusMonths(1);
|
||||
}
|
||||
|
||||
if (!start.isAfter(end)) {
|
||||
Collections.reverse(months);
|
||||
}
|
||||
|
||||
} catch (DateTimeParseException e) {
|
||||
throw new IllegalArgumentException("Invalid month format. Please use yyyy-MM format.");
|
||||
}
|
||||
|
||||
return months;
|
||||
}
|
||||
|
||||
private List<String> generateQuarterRange() {
|
||||
List<String> quarters = new ArrayList<>();
|
||||
|
||||
try {
|
||||
Quarter start = Quarter.parse(startTime);
|
||||
Quarter end = Quarter.parse(endTime);
|
||||
|
||||
if (start.isAfter(end)) {
|
||||
Quarter temp = start;
|
||||
start = end;
|
||||
end = temp;
|
||||
}
|
||||
|
||||
Quarter current = end;
|
||||
while (!current.isBefore(start)) {
|
||||
quarters.add(current.toString());
|
||||
current = current.previous();
|
||||
}
|
||||
|
||||
if (!start.isAfter(end)) {
|
||||
Collections.reverse(quarters);
|
||||
}
|
||||
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new IllegalArgumentException("Invalid quarter format. Please use yyyy-第x季度 format (e.g. 2024-第一季度).");
|
||||
}
|
||||
|
||||
return quarters;
|
||||
}
|
||||
|
||||
private List<String> generateYearRange() {
|
||||
List<String> years = new ArrayList<>();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
|
||||
|
||||
try {
|
||||
Year start = Year.parse(startTime, formatter);
|
||||
Year end = Year.parse(endTime, formatter);
|
||||
|
||||
if (start.isAfter(end)) {
|
||||
Year temp = start;
|
||||
start = end;
|
||||
end = temp;
|
||||
}
|
||||
|
||||
Year current = end;
|
||||
while (!current.isBefore(start)) {
|
||||
years.add(current.format(formatter));
|
||||
current = current.minusYears(1);
|
||||
}
|
||||
|
||||
if (!start.isAfter(end)) {
|
||||
Collections.reverse(years);
|
||||
}
|
||||
|
||||
} catch (DateTimeParseException e) {
|
||||
throw new IllegalArgumentException("Invalid year format. Please use yyyy format.");
|
||||
}
|
||||
|
||||
return years;
|
||||
}
|
||||
|
||||
// Helper class for quarter handling with Chinese characters
|
||||
private static class Quarter implements Comparable<Quarter> {
|
||||
private final int year;
|
||||
private final int quarter;
|
||||
private static final String[] CHINESE_QUARTERS = {"第一季度", "第二季度", "第三季度", "第四季度"};
|
||||
|
||||
private Quarter(int year, int quarter) {
|
||||
if (quarter < 1 || quarter > 4) {
|
||||
throw new IllegalArgumentException("Quarter must be between 1 and 4");
|
||||
}
|
||||
this.year = year;
|
||||
this.quarter = quarter;
|
||||
}
|
||||
|
||||
public static Quarter parse(String quarterStr) {
|
||||
String[] parts = quarterStr.split("-");
|
||||
if (parts.length != 2 || !parts[1].startsWith("第") || !parts[1].endsWith("季度")) {
|
||||
throw new IllegalArgumentException("Invalid quarter format");
|
||||
}
|
||||
|
||||
int year = Integer.parseInt(parts[0]);
|
||||
String quarterStrPart = parts[1];
|
||||
|
||||
// Find which quarter this matches
|
||||
int quarter = -1;
|
||||
for (int i = 0; i < CHINESE_QUARTERS.length; i++) {
|
||||
if (CHINESE_QUARTERS[i].equals(quarterStrPart)) {
|
||||
quarter = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (quarter == -1) {
|
||||
throw new IllegalArgumentException("Invalid quarter name: " + quarterStrPart);
|
||||
}
|
||||
|
||||
return new Quarter(year, quarter);
|
||||
}
|
||||
|
||||
public Quarter previous() {
|
||||
if (quarter == 1) {
|
||||
return new Quarter(year - 1, 4);
|
||||
} else {
|
||||
return new Quarter(year, quarter - 1);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isBefore(Quarter other) {
|
||||
if (this.year < other.year) return true;
|
||||
if (this.year > other.year) return false;
|
||||
return this.quarter < other.quarter;
|
||||
}
|
||||
|
||||
public boolean isAfter(Quarter other) {
|
||||
return other.isBefore(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return year + "-" + CHINESE_QUARTERS[quarter - 1];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Quarter other) {
|
||||
if (this.year != other.year) {
|
||||
return Integer.compare(this.year, other.year);
|
||||
}
|
||||
return Integer.compare(this.quarter, other.quarter);
|
||||
}
|
||||
}
|
||||
// public static void main(String[] args) {
|
||||
// // Month example
|
||||
// Staticsquery monthQuery = new Staticsquery();
|
||||
// monthQuery.setTimeDimension("月");
|
||||
// monthQuery.setStartTime("2024-01");
|
||||
// monthQuery.setEndTime("2024-04");
|
||||
// System.out.println(monthQuery.generateTimeRange());
|
||||
// // Output: [2024-01, 2024-02, 2024-03, 2024-04]
|
||||
//
|
||||
// // Quarter example
|
||||
// Staticsquery quarterQuery = new Staticsquery();
|
||||
// quarterQuery.setTimeDimension("季度");
|
||||
// quarterQuery.setStartTime("2023-第四季度");
|
||||
// quarterQuery.setEndTime("2024-第二季度");
|
||||
// System.out.println(quarterQuery.generateTimeRange());
|
||||
// // Output: [2023-第4季度, 2024-第1季度, 2024-第2季度]
|
||||
//
|
||||
// // Year example
|
||||
// Staticsquery yearQuery = new Staticsquery();
|
||||
// yearQuery.setTimeDimension("年");
|
||||
// yearQuery.setStartTime("2020");
|
||||
// yearQuery.setEndTime("2024");
|
||||
// System.out.println(yearQuery.generateTimeRange());
|
||||
// // Output: [2020, 2021, 2022, 2023, 2024]
|
||||
// }
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class AppNoticeVO {
|
||||
private Long id;
|
||||
private String title;
|
||||
private String subTitle;
|
||||
private Integer notReadCount;
|
||||
private Integer isRead;
|
||||
@JsonFormat(pattern = "MM-dd")
|
||||
private Date date;
|
||||
}
|
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class CandidateVO extends AppUser {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date applyDate;
|
||||
private Integer matchingDegree;
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.ruoyi.cms.domain.CompanyCard;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CompanyCardVO extends CompanyCard {
|
||||
private Integer isCollection = 0;
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CompetitivenessResponse {
|
||||
private Integer totalApplicants; // 总申请人数
|
||||
private Integer matchScore; // 匹配分数(0-100)
|
||||
private Integer rank; // 排名
|
||||
private Integer percentile; // 超过百分比(0-100)
|
||||
private RadarChart radarChart; // 雷达图6维度数据
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class JobApplyVO extends Job {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date applyDate;
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class JobCollectionVO extends Job {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date collectionDate;
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class JobReviewVO extends Job {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date reviewDate;
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RadarChart {
|
||||
private Integer skill; // 技能(0-100)
|
||||
private Integer experience; // 工作经验(0-100)
|
||||
private Integer education; // 学历(0-100)
|
||||
private Integer salary; // 薪资(0-100)
|
||||
private Integer age; // 年龄(0-100)
|
||||
private Integer location; // 工作地(0-100)
|
||||
}
|
@@ -0,0 +1,143 @@
|
||||
//package com.ruoyi.cms.handler;
|
||||
//import java.io.File;
|
||||
//import java.io.FileOutputStream;
|
||||
//import java.io.IOException;
|
||||
//import java.nio.ByteBuffer;
|
||||
//
|
||||
//import com.alibaba.nls.client.AccessToken;
|
||||
//import com.alibaba.nls.client.protocol.NlsClient;
|
||||
//import com.alibaba.nls.client.protocol.OutputFormatEnum;
|
||||
//import com.alibaba.nls.client.protocol.SampleRateEnum;
|
||||
//import com.alibaba.nls.client.protocol.tts.SpeechSynthesizer;
|
||||
//import com.alibaba.nls.client.protocol.tts.SpeechSynthesizerListener;
|
||||
//import com.alibaba.nls.client.protocol.tts.SpeechSynthesizerResponse;
|
||||
//import org.slf4j.Logger;
|
||||
//import org.slf4j.LoggerFactory;
|
||||
///**
|
||||
// * 此示例演示了:
|
||||
// * 长文本语音合成API调用(setLongText)。
|
||||
// * 流式合成TTS。
|
||||
// * 首包延迟计算。
|
||||
// *
|
||||
// * 说明:该示例和nls-example-tts下的SpeechSynthesizerLongTextDemo不完全相同,长文本语音合成是单独的产品功能,是将一长串文本直接发送给服务端去合成,
|
||||
// * 而SpeechSynthesizerLongTextDemo演示的是将一长串文本在调用方处切割然后分段调用语音合成接口。
|
||||
// */
|
||||
//public class SpeechLongSynthesizerDemo {
|
||||
// private static final Logger logger = LoggerFactory.getLogger(SpeechLongSynthesizerDemo.class);
|
||||
// private static long startTime;
|
||||
// private String appKey;
|
||||
// NlsClient client;
|
||||
// public SpeechLongSynthesizerDemo(String appKey, String token, String url) {
|
||||
// this.appKey = appKey;
|
||||
// //创建NlsClient实例应用全局创建一个即可。生命周期可和整个应用保持一致,默认服务地址为阿里云线上服务地址。
|
||||
// if(url.isEmpty()) {
|
||||
// client = new NlsClient(token);
|
||||
// } else {
|
||||
// client = new NlsClient(url, token);
|
||||
// }
|
||||
// }
|
||||
// private static SpeechSynthesizerListener getSynthesizerListener() {
|
||||
// SpeechSynthesizerListener listener = null;
|
||||
// try {
|
||||
// listener = new SpeechSynthesizerListener() {
|
||||
// File f=new File("ttsForLongText.wav");
|
||||
// FileOutputStream fout = new FileOutputStream(f);
|
||||
// private boolean firstRecvBinary = true;
|
||||
// //语音合成结束
|
||||
// @Override
|
||||
// public void onComplete(SpeechSynthesizerResponse response) {
|
||||
// // 调用onComplete时,表示所有TTS数据已经接收完成,因此为整个合成数据的延迟。该延迟可能较大,不一定满足实时场景。
|
||||
// System.out.println("name: " + response.getName() + ", status: " + response.getStatus()+", output file :"+f.getAbsolutePath());
|
||||
// }
|
||||
// //语音合成的语音二进制数据
|
||||
// @Override
|
||||
// public void onMessage(ByteBuffer message) {
|
||||
// try {
|
||||
// if(firstRecvBinary) {
|
||||
// // 此处计算首包语音流的延迟,收到第一包语音流时,即可以进行语音播放,以提升响应速度(特别是实时交互场景下)。
|
||||
// firstRecvBinary = false;
|
||||
// long now = System.currentTimeMillis();
|
||||
// logger.info("tts first latency : " + (now - SpeechLongSynthesizerDemo.startTime) + " ms");
|
||||
// }
|
||||
// byte[] bytesArray = new byte[message.remaining()];
|
||||
// message.get(bytesArray, 0, bytesArray.length);
|
||||
// //System.out.println("write array:" + bytesArray.length);
|
||||
// fout.write(bytesArray);
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// @Override
|
||||
// public void onFail(SpeechSynthesizerResponse response){
|
||||
// // task_id是调用方和服务端通信的唯一标识,当遇到问题时,需要提供此task_id以便排查。
|
||||
// System.out.println(
|
||||
// "task_id: " + response.getTaskId() +
|
||||
// //状态码
|
||||
// ", status: " + response.getStatus() +
|
||||
// //错误信息
|
||||
// ", status_text: " + response.getStatusText());
|
||||
// }
|
||||
// };
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// return listener;
|
||||
// }
|
||||
// public void process(String text) {
|
||||
// SpeechSynthesizer synthesizer = null;
|
||||
// try {
|
||||
// //创建实例,建立连接。
|
||||
// synthesizer = new SpeechSynthesizer(client, getSynthesizerListener());
|
||||
// synthesizer.setAppKey(appKey);
|
||||
// //设置返回音频的编码格式。
|
||||
// synthesizer.setFormat(OutputFormatEnum.WAV);
|
||||
// //设置返回音频的采样率。
|
||||
// synthesizer.setSampleRate(SampleRateEnum.SAMPLE_RATE_16K);
|
||||
// //发音人。注意Java SDK不支持调用超高清场景对应的发音人(例如"zhiqi"),如需调用请使用restfulAPI方式。
|
||||
// synthesizer.setVoice("siyue");
|
||||
// //语调,范围是-500~500,可选,默认是0。
|
||||
// synthesizer.setPitchRate(0);
|
||||
// //语速,范围是-500~500,默认是0。
|
||||
// synthesizer.setSpeechRate(0);
|
||||
// //设置用于语音合成的文本
|
||||
// // 此处调用的是setLongText接口(原语音合成接口是setText)。
|
||||
// synthesizer.setLongText(text);
|
||||
// //此方法将以上参数设置序列化为JSON发送给服务端,并等待服务端确认。
|
||||
// long start = System.currentTimeMillis();
|
||||
// synthesizer.start();
|
||||
// logger.info("tts start latency " + (System.currentTimeMillis() - start) + " ms");
|
||||
// SpeechLongSynthesizerDemo.startTime = System.currentTimeMillis();
|
||||
// //等待语音合成结束
|
||||
// synthesizer.waitForComplete();
|
||||
// logger.info("tts stop latency " + (System.currentTimeMillis() - start) + " ms");
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// } finally {
|
||||
// //关闭连接
|
||||
// if (null != synthesizer) {
|
||||
// synthesizer.close();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// public void shutdown() {
|
||||
// client.shutdown();
|
||||
// }
|
||||
// public static void main(String[] args) throws Exception {
|
||||
// AccessToken accessToken = new AccessToken("LTAI5tRBahK93vPNF1JDVEPA", "x95OWb4cV6ccQVtbEJ2Gxm2Uwl2thJ");
|
||||
// accessToken.apply();
|
||||
// String token = accessToken.getToken();
|
||||
// String appKey = "mtA2pwmvCeefHT3Y";
|
||||
// // url取默认值
|
||||
// String url = "wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1";
|
||||
//
|
||||
// String ttsTextLong = "百草堂与三味书屋 鲁迅 \n" +
|
||||
// "我家的后面有一个很大的园,相传叫作百草园。现在是早已并屋子一起卖给朱文公的子孙了,连那最末次的相见也已经隔了七八年,其中似乎确凿只有一些野草;但那时却是我的乐园。\n" +
|
||||
// "不必说碧绿的菜畦,光滑的石井栏,高大的皂荚树,紫红的桑葚;也不必说鸣蝉在树叶里长吟,肥胖的黄蜂伏在菜花上,轻捷的叫天子(云雀)忽然从草间直窜向云霄里去了。\n" +
|
||||
// "单是周围的短短的泥墙根一带,就有无限趣味。油蛉在这里低唱,蟋蟀们在这里弹琴。翻开断砖来,有时会遇见蜈蚣;还有斑蝥,倘若用手指按住它的脊梁,便会啪的一声,\n" +
|
||||
// "从后窍喷出一阵烟雾。何首乌藤和木莲藤缠络着,木莲有莲房一般的果实,何首乌有臃肿的根。有人说,何首乌根是有像人形的,吃了便可以成仙,我于是常常拔它起来,牵连不断地拔起来,\n" +
|
||||
// "也曾因此弄坏了泥墙,却从来没有见过有一块根像人样! 如果不怕刺,还可以摘到覆盆子,像小珊瑚珠攒成的小球,又酸又甜,色味都比桑葚要好得远......";
|
||||
// SpeechLongSynthesizerDemo demo = new SpeechLongSynthesizerDemo(appKey, token, url);
|
||||
// demo.process(ttsTextLong);
|
||||
// demo.shutdown();
|
||||
// }
|
||||
//}
|
@@ -0,0 +1,63 @@
|
||||
package com.ruoyi.cms.handler;
|
||||
|
||||
import com.alibaba.nls.client.protocol.asr.SpeechRecognizer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.websocket.*;
|
||||
import javax.websocket.server.ServerEndpoint;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
@Component
|
||||
@ServerEndpoint("/speech-recognition")
|
||||
public class SpeechRecognitionWebSocketHandler {
|
||||
|
||||
private SpeechRecognizerAI recognizerDemo;
|
||||
|
||||
public SpeechRecognitionWebSocketHandler() {
|
||||
// 初始化语音识别器
|
||||
String appKey = "LuvNcrddU3PH8Tau";
|
||||
String id = "LTAI5tRBahK93vPNF1JDVEPA";
|
||||
String secret = "x95OWb4cV6ccQVtbEJ2Gxm2Uwl2thJ";
|
||||
String url = System.getenv().getOrDefault("NLS_GATEWAY_URL", "wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1");
|
||||
recognizerDemo = new SpeechRecognizerAI(appKey, id, secret, url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 连接建立成功调用的方法
|
||||
*/
|
||||
@OnOpen
|
||||
public void onOpen(Session session) {
|
||||
System.out.println("WebSocket 连接建立成功,sessionId = " + session.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 收到客户端消息后调用的方法
|
||||
*/
|
||||
@OnMessage(maxMessageSize=5242880)
|
||||
public void onMessage(ByteBuffer message, Session session) throws IOException {
|
||||
byte[] audioData = new byte[message.remaining()];
|
||||
message.get(audioData);
|
||||
|
||||
// 处理音频数据
|
||||
recognizerDemo.processStream(session, new ByteArrayInputStream(audioData), 16000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 连接关闭调用的方法
|
||||
*/
|
||||
@OnClose
|
||||
public void onClose(Session session) {
|
||||
System.out.println("WebSocket 连接关闭,sessionId = " + session.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 发生错误时调用的方法
|
||||
*/
|
||||
@OnError
|
||||
public void onError(Session session, Throwable error) {
|
||||
System.err.println("WebSocket 发生错误:" + error.getMessage());
|
||||
error.printStackTrace();
|
||||
}
|
||||
}
|
@@ -0,0 +1,117 @@
|
||||
package com.ruoyi.cms.handler;
|
||||
|
||||
import com.alibaba.nls.client.AccessToken;
|
||||
import com.alibaba.nls.client.protocol.InputFormatEnum;
|
||||
import com.alibaba.nls.client.protocol.NlsClient;
|
||||
import com.alibaba.nls.client.protocol.SampleRateEnum;
|
||||
import com.alibaba.nls.client.protocol.asr.SpeechRecognizer;
|
||||
import com.alibaba.nls.client.protocol.asr.SpeechRecognizerListener;
|
||||
import com.alibaba.nls.client.protocol.asr.SpeechRecognizerResponse;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.websocket.Session;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
public class SpeechRecognizerAI {
|
||||
private static final Logger logger = LoggerFactory.getLogger(SpeechRecognizerAI.class);
|
||||
private String appKey;
|
||||
private NlsClient client;
|
||||
|
||||
public SpeechRecognizerAI(String appKey, String id, String secret, String url) {
|
||||
this.appKey = appKey;
|
||||
|
||||
// 获取 AccessToken
|
||||
AccessToken accessToken = new AccessToken(id, secret);
|
||||
try {
|
||||
accessToken.apply(); // 申请 Token
|
||||
logger.info("Token: {}, Expire Time: {}", accessToken.getToken(), accessToken.getExpireTime());
|
||||
|
||||
// 初始化 NlsClient
|
||||
if (url.isEmpty()) {
|
||||
this.client = new NlsClient(accessToken.getToken()); // 使用默认服务地址
|
||||
} else {
|
||||
this.client = new NlsClient(url, accessToken.getToken()); // 使用自定义服务地址
|
||||
}
|
||||
} catch (IOException e) {
|
||||
logger.error("Failed to initialize NlsClient: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void processStream(Session session, InputStream inputStream, int sampleRate) {
|
||||
SpeechRecognizer recognizer = null;
|
||||
try {
|
||||
// 创建 SpeechRecognizer 实例
|
||||
recognizer = new SpeechRecognizer(client, new SpeechRecognizerListener() {
|
||||
@Override
|
||||
public void onRecognitionResultChanged(SpeechRecognizerResponse response) {
|
||||
// 打印中间识别结果
|
||||
String text = response.getRecognizedText();
|
||||
logger.info("中间识别结果: {}", text);
|
||||
|
||||
sendResult(session, text,false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecognitionCompleted(SpeechRecognizerResponse response) {
|
||||
// 打印最终识别结果
|
||||
String text = response.getRecognizedText();
|
||||
logger.info("最终识别结果: {}", text);
|
||||
sendResult(session, text,true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStarted(SpeechRecognizerResponse response) {
|
||||
logger.info("识别开始, TaskId: {}", response.getTaskId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(SpeechRecognizerResponse response) {
|
||||
logger.error("识别失败: {}", response.getStatusText());
|
||||
}
|
||||
});
|
||||
|
||||
// 设置语音识别参数
|
||||
recognizer.setAppKey(appKey);
|
||||
recognizer.setFormat(InputFormatEnum.PCM);
|
||||
recognizer.setSampleRate(sampleRate == 16000 ?
|
||||
SampleRateEnum.SAMPLE_RATE_16K : SampleRateEnum.SAMPLE_RATE_8K);
|
||||
recognizer.setEnableIntermediateResult(true);
|
||||
recognizer.addCustomedParam("enable_voice_detection", true);
|
||||
|
||||
// 启动识别
|
||||
recognizer.start();
|
||||
|
||||
// 读取音频流并发送
|
||||
byte[] buffer = new byte[3200];
|
||||
int len;
|
||||
while ((len = inputStream.read(buffer)) > 0) {
|
||||
recognizer.send(buffer, len);
|
||||
}
|
||||
|
||||
// 停止识别
|
||||
recognizer.stop();
|
||||
} catch (Exception e) {
|
||||
logger.error("处理音频流时出错: {}", e.getMessage());
|
||||
} finally {
|
||||
if (recognizer != null) {
|
||||
recognizer.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void sendResult(Session session, String text,Boolean asrEnd) {
|
||||
try {
|
||||
session.getBasicRemote().sendText("{\"text\": \"" + text + "\",\"asrEnd\":\"" + asrEnd + "\"}");
|
||||
} catch (IOException e) {
|
||||
logger.error("发送识别结果失败: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void shutdown() {
|
||||
if (client != null) {
|
||||
client.shutdown();
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,145 @@
|
||||
package com.ruoyi.cms.handler;
|
||||
|
||||
import com.alibaba.nls.client.AccessToken;
|
||||
import com.alibaba.nls.client.protocol.NlsClient;
|
||||
import com.alibaba.nls.client.protocol.OutputFormatEnum;
|
||||
import com.alibaba.nls.client.protocol.SampleRateEnum;
|
||||
import com.alibaba.nls.client.protocol.tts.SpeechSynthesizer;
|
||||
import com.alibaba.nls.client.protocol.tts.SpeechSynthesizerListener;
|
||||
import com.alibaba.nls.client.protocol.tts.SpeechSynthesizerResponse;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.websocket.*;
|
||||
import javax.websocket.server.ServerEndpoint;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
@Component
|
||||
@ServerEndpoint("/speech-synthesis")
|
||||
public class SpeechSynthesisWebSocketHandler {
|
||||
private static final Logger logger = LoggerFactory.getLogger(SpeechSynthesisWebSocketHandler.class);
|
||||
|
||||
private NlsClient client;
|
||||
private String appKey = "mtA2pwmvCeefHT3Y";
|
||||
private String accessKeyId = "LTAI5tRBahK93vPNF1JDVEPA";
|
||||
private String accessKeySecret = "x95OWb4cV6ccQVtbEJ2Gxm2Uwl2thJ";
|
||||
private String url = "wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1";
|
||||
|
||||
public SpeechSynthesisWebSocketHandler() {
|
||||
// Initialize NLS client with token
|
||||
AccessToken accessToken = new AccessToken(accessKeyId, accessKeySecret);
|
||||
try {
|
||||
accessToken.apply();
|
||||
String token = accessToken.getToken();
|
||||
if(url.isEmpty()) {
|
||||
this.client = new NlsClient(token);
|
||||
} else {
|
||||
this.client = new NlsClient(url, token);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Failed to initialize NLS client", e);
|
||||
}
|
||||
}
|
||||
|
||||
@OnOpen
|
||||
public void onOpen(Session session) {
|
||||
logger.info("WebSocket connected for speech synthesis, sessionId: {}", session.getId());
|
||||
}
|
||||
|
||||
@OnMessage(maxMessageSize=5242880)
|
||||
public void onMessage(String text, Session session) {
|
||||
logger.info("Received text for synthesis: {}", text);
|
||||
|
||||
SpeechSynthesizer synthesizer = null;
|
||||
try {
|
||||
// Create synthesizer with a session-specific listener
|
||||
synthesizer = new SpeechSynthesizer(client, createSynthesizerListener(session));
|
||||
|
||||
// Configure synthesizer
|
||||
synthesizer.setAppKey(appKey);
|
||||
synthesizer.setFormat(OutputFormatEnum.WAV);
|
||||
synthesizer.setSampleRate(SampleRateEnum.SAMPLE_RATE_16K);
|
||||
synthesizer.setVoice("aiqi");
|
||||
synthesizer.setPitchRate(0);
|
||||
synthesizer.setSpeechRate(0);
|
||||
|
||||
// Use long text synthesis
|
||||
synthesizer.setLongText(text);
|
||||
|
||||
// Start synthesis
|
||||
synthesizer.start();
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("Error during speech synthesis", e);
|
||||
try {
|
||||
session.close(new CloseReason(CloseReason.CloseCodes.UNEXPECTED_CONDITION, "Synthesis error"));
|
||||
} catch (IOException ioException) {
|
||||
logger.error("Error closing session", ioException);
|
||||
}
|
||||
} finally {
|
||||
// Note: We can't close the synthesizer here because synthesis is async
|
||||
// It should be closed in the listener's onComplete/onFail methods
|
||||
}
|
||||
}
|
||||
|
||||
@OnClose
|
||||
public void onClose(Session session) {
|
||||
logger.info("WebSocket closed for speech synthesis, sessionId: {}", session.getId());
|
||||
}
|
||||
|
||||
@OnError
|
||||
public void onError(Session session, Throwable error) {
|
||||
logger.error("WebSocket error for session {}: {}", session.getId(), error.getMessage(), error);
|
||||
}
|
||||
|
||||
private SpeechSynthesizerListener createSynthesizerListener(Session session) {
|
||||
return new SpeechSynthesizerListener() {
|
||||
private boolean firstRecvBinary = true;
|
||||
private long startTime;
|
||||
|
||||
@Override
|
||||
public void onComplete(SpeechSynthesizerResponse response) {
|
||||
logger.info("Synthesis completed for session {}, status: {}", session.getId(), response.getStatus());
|
||||
try {
|
||||
// Send a close message or marker to indicate completion
|
||||
session.getBasicRemote().sendText("{\"status\":\"complete\"}");
|
||||
} catch (IOException e) {
|
||||
logger.error("Error sending completion message", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessage(ByteBuffer message) {
|
||||
try {
|
||||
if (firstRecvBinary) {
|
||||
firstRecvBinary = false;
|
||||
startTime = System.currentTimeMillis();
|
||||
logger.info("First audio packet received for session {}", session.getId());
|
||||
}
|
||||
|
||||
// Send audio data to client
|
||||
byte[] bytesArray = new byte[message.remaining()];
|
||||
message.get(bytesArray, 0, bytesArray.length);
|
||||
session.getBasicRemote().sendBinary(ByteBuffer.wrap(bytesArray));
|
||||
|
||||
} catch (IOException e) {
|
||||
logger.error("Error sending audio data to client", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(SpeechSynthesizerResponse response) {
|
||||
logger.error("Synthesis failed for session {}: task_id: {}, status: {}, status_text: {}",
|
||||
session.getId(), response.getTaskId(), response.getStatus(), response.getStatusText());
|
||||
try {
|
||||
session.close(new CloseReason(CloseReason.CloseCodes.UNEXPECTED_CONDITION,
|
||||
"Synthesis failed: " + response.getStatusText()));
|
||||
} catch (IOException e) {
|
||||
logger.error("Error closing failed session", e);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
@@ -0,0 +1,83 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Real-time Speech Recognition</title>
|
||||
</head>
|
||||
<body>
|
||||
<button id="start">Start Recording</button>
|
||||
<button id="stop" disabled>Stop Recording</button>
|
||||
<div id="output"></div>
|
||||
|
||||
<script>
|
||||
const startButton = document.getElementById('start');
|
||||
const stopButton = document.getElementById('stop');
|
||||
const outputDiv = document.getElementById('output');
|
||||
let mediaRecorder;
|
||||
let socket;
|
||||
|
||||
// 初始化 WebSocket
|
||||
function initWebSocket() {
|
||||
socket = new WebSocket('ws://127.0.0.1:8080/speech-recognition'); // 确保端口正确
|
||||
|
||||
socket.onopen = () => {
|
||||
console.log('WebSocket connection established');
|
||||
startButton.disabled = false;
|
||||
};
|
||||
|
||||
socket.onmessage = (event) => {
|
||||
const result = JSON.parse(event.data);
|
||||
outputDiv.innerHTML += `<p>${result.text}</p>`;
|
||||
};
|
||||
|
||||
socket.onclose = () => {
|
||||
console.log('WebSocket connection closed');
|
||||
// 尝试重连
|
||||
setTimeout(() => {
|
||||
console.log('Reconnecting WebSocket...');
|
||||
initWebSocket();
|
||||
}, 3000); // 3 秒后重连
|
||||
};
|
||||
|
||||
socket.onerror = (error) => {
|
||||
console.error('WebSocket error:', error);
|
||||
};
|
||||
}
|
||||
|
||||
// 开始录音
|
||||
startButton.addEventListener('click', async () => {
|
||||
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
|
||||
mediaRecorder = new MediaRecorder(stream, { mimeType: 'audio/webm; codecs=opus' }); // 使用 Opus 编码
|
||||
|
||||
mediaRecorder.ondataavailable = (event) => {
|
||||
if (event.data.size > 0) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = () => {
|
||||
if (socket.readyState === WebSocket.OPEN) { // 检查 WebSocket 状态
|
||||
const audioData = reader.result;
|
||||
socket.send(audioData); // 发送音频数据
|
||||
} else {
|
||||
console.error('WebSocket is not open. Current state:', socket.readyState);
|
||||
}
|
||||
};
|
||||
reader.readAsArrayBuffer(event.data);
|
||||
}
|
||||
};
|
||||
|
||||
mediaRecorder.start(1000); // 每 1 秒发送一次数据
|
||||
startButton.disabled = true;
|
||||
stopButton.disabled = false;
|
||||
});
|
||||
|
||||
// 停止录音
|
||||
stopButton.addEventListener('click', () => {
|
||||
mediaRecorder.stop();
|
||||
startButton.disabled = false;
|
||||
stopButton.disabled = true;
|
||||
});
|
||||
|
||||
// 初始化 WebSocket
|
||||
initWebSocket();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@@ -0,0 +1,69 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.AppNotice;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.JobFair;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 通知公告表 数据层
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface AppNoticeMapper extends BaseMapper<AppNotice>
|
||||
{
|
||||
/**
|
||||
* 查询公告信息
|
||||
*
|
||||
* @param noticeId 公告ID
|
||||
* @return 公告信息
|
||||
*/
|
||||
public AppNotice selectNoticeById(Long noticeId);
|
||||
|
||||
/**
|
||||
* 查询公告列表
|
||||
*
|
||||
* @param notice 公告信息
|
||||
* @return 公告集合
|
||||
*/
|
||||
public List<AppNotice> selectNoticeList(AppNotice notice);
|
||||
|
||||
/**
|
||||
* 新增公告
|
||||
*
|
||||
* @param notice 公告信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertNotice(AppNotice notice);
|
||||
|
||||
/**
|
||||
* 修改公告
|
||||
*
|
||||
* @param notice 公告信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateNotice(AppNotice notice);
|
||||
|
||||
/**
|
||||
* 批量删除公告
|
||||
*
|
||||
* @param noticeId 公告ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNoticeById(Long noticeId);
|
||||
|
||||
/**
|
||||
* 批量删除公告信息
|
||||
*
|
||||
* @param noticeIds 需要删除的公告ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNoticeByIds(Long[] noticeIds);
|
||||
|
||||
List<Job> recommend(@Param("jobTitle")String jobTitle,@Param("userId") Long userId);
|
||||
}
|
@@ -0,0 +1,29 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.AppReviewJob;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.query.MineJobQuery;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户岗位浏览记录Mapper接口
|
||||
* @author ${author}
|
||||
* @date 2025-02-14
|
||||
*/
|
||||
public interface AppReviewJobMapper extends BaseMapper<AppReviewJob>
|
||||
{
|
||||
/**
|
||||
* 查询用户岗位浏览记录列表
|
||||
*
|
||||
* @param appReviewJob 用户岗位浏览记录
|
||||
* @return 用户岗位浏览记录集合
|
||||
*/
|
||||
public List<AppReviewJob> selectAppReviewJobList(AppReviewJob appReviewJob);
|
||||
|
||||
List<Job> review(@Param("userId")Long userId, @Param("jobQuery") MineJobQuery jobQuery);
|
||||
|
||||
List<AppReviewJob> reviewArray(Long userId);
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
|
||||
/**
|
||||
* APP用户Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
public interface AppUserMapper extends BaseMapper<AppUser>
|
||||
{
|
||||
/**
|
||||
* 查询APP用户列表
|
||||
*
|
||||
* @param appUser APP用户
|
||||
* @return APP用户集合
|
||||
*/
|
||||
public List<AppUser> selectAppUserList(AppUser appUser);
|
||||
}
|
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessDictData;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 字典表 数据层
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface BussinessDictDataMapper
|
||||
{
|
||||
/**
|
||||
* 根据条件分页查询字典数据
|
||||
*
|
||||
* @param dictData 字典数据信息
|
||||
* @return 字典数据集合信息
|
||||
*/
|
||||
public List<BussinessDictData> selectDictDataList(BussinessDictData dictData);
|
||||
|
||||
/**
|
||||
* 根据字典类型查询字典数据
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @return 字典数据集合信息
|
||||
*/
|
||||
public List<BussinessDictData> selectDictDataByType(String dictType);
|
||||
|
||||
/**
|
||||
* 根据字典类型和字典键值查询字典数据信息
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @param dictValue 字典键值
|
||||
* @return 字典标签
|
||||
*/
|
||||
public String selectDictLabel(@Param("dictType") String dictType, @Param("dictValue") String dictValue);
|
||||
|
||||
/**
|
||||
* 根据字典数据ID查询信息
|
||||
*
|
||||
* @param dictCode 字典数据ID
|
||||
* @return 字典数据
|
||||
*/
|
||||
public BussinessDictData selectDictDataById(Long dictCode);
|
||||
|
||||
/**
|
||||
* 查询字典数据
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @return 字典数据
|
||||
*/
|
||||
public int countDictDataByType(String dictType);
|
||||
|
||||
/**
|
||||
* 通过字典ID删除字典数据信息
|
||||
*
|
||||
* @param dictCode 字典数据ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDictDataById(Long dictCode);
|
||||
|
||||
/**
|
||||
* 批量删除字典数据信息
|
||||
*
|
||||
* @param dictCodes 需要删除的字典数据ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDictDataByIds(Long[] dictCodes);
|
||||
|
||||
/**
|
||||
* 新增字典数据信息
|
||||
*
|
||||
* @param dictData 字典数据信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertDictData(BussinessDictData dictData);
|
||||
|
||||
/**
|
||||
* 修改字典数据信息
|
||||
*
|
||||
* @param dictData 字典数据信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateDictData(BussinessDictData dictData);
|
||||
|
||||
/**
|
||||
* 同步修改字典类型
|
||||
*
|
||||
* @param oldDictType 旧字典类型
|
||||
* @param newDictType 新旧字典类型
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType);
|
||||
}
|
@@ -0,0 +1,86 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessDictType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 字典表 数据层
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface BussinessDictTypeMapper
|
||||
{
|
||||
/**
|
||||
* 根据条件分页查询字典类型
|
||||
*
|
||||
* @param dictType 字典类型信息
|
||||
* @return 字典类型集合信息
|
||||
*/
|
||||
public List<BussinessDictType> selectDictTypeList(BussinessDictType dictType);
|
||||
|
||||
/**
|
||||
* 根据所有字典类型
|
||||
*
|
||||
* @return 字典类型集合信息
|
||||
*/
|
||||
public List<BussinessDictType> selectDictTypeAll();
|
||||
|
||||
/**
|
||||
* 根据字典类型ID查询信息
|
||||
*
|
||||
* @param dictId 字典类型ID
|
||||
* @return 字典类型
|
||||
*/
|
||||
public BussinessDictType selectDictTypeById(Long dictId);
|
||||
|
||||
/**
|
||||
* 根据字典类型查询信息
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @return 字典类型
|
||||
*/
|
||||
public BussinessDictType selectDictTypeByType(String dictType);
|
||||
|
||||
/**
|
||||
* 通过字典ID删除字典信息
|
||||
*
|
||||
* @param dictId 字典ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDictTypeById(Long dictId);
|
||||
|
||||
/**
|
||||
* 批量删除字典类型信息
|
||||
*
|
||||
* @param dictIds 需要删除的字典ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDictTypeByIds(Long[] dictIds);
|
||||
|
||||
/**
|
||||
* 新增字典类型信息
|
||||
*
|
||||
* @param dictType 字典类型信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertDictType(BussinessDictType dictType);
|
||||
|
||||
/**
|
||||
* 修改字典类型信息
|
||||
*
|
||||
* @param dictType 字典类型信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateDictType(BussinessDictType dictType);
|
||||
|
||||
/**
|
||||
* 校验字典类型称是否唯一
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @return 结果
|
||||
*/
|
||||
public BussinessDictType checkDictTypeUnique(String dictType);
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.ruoyi.cms.domain.BussinessOperLog;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 操作日志 数据层
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface BussinessOperLogMapper
|
||||
{
|
||||
/**
|
||||
* 新增操作日志
|
||||
*
|
||||
* @param operLog 操作日志对象
|
||||
*/
|
||||
public void insertOperlog(BussinessOperLog operLog);
|
||||
|
||||
/**
|
||||
* 查询系统操作日志集合
|
||||
*
|
||||
* @param operLog 操作日志对象
|
||||
* @return 操作日志集合
|
||||
*/
|
||||
public List<BussinessOperLog> selectOperLogList(BussinessOperLog operLog);
|
||||
|
||||
/**
|
||||
* 批量删除系统操作日志
|
||||
*
|
||||
* @param operIds 需要删除的操作日志ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteOperLogByIds(Long[] operIds);
|
||||
|
||||
/**
|
||||
* 查询操作日志详细
|
||||
*
|
||||
* @param operId 操作ID
|
||||
* @return 操作日志对象
|
||||
*/
|
||||
public BussinessOperLog selectOperLogById(Long operId);
|
||||
|
||||
/**
|
||||
* 清空操作日志
|
||||
*/
|
||||
public void cleanOperLog();
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.CommercialArea;
|
||||
|
||||
/**
|
||||
* 商圈Mapper接口
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
public interface CommercialAreaMapper extends BaseMapper<CommercialArea>
|
||||
{
|
||||
/**
|
||||
* 查询商圈列表
|
||||
*
|
||||
* @param commercialArea 商圈
|
||||
* @return 商圈集合
|
||||
*/
|
||||
public List<CommercialArea> selectCommercialAreaList(CommercialArea commercialArea);
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.CompanyCardCollection;
|
||||
|
||||
/**
|
||||
* 公司卡片收藏Mapper接口
|
||||
* @author ${author}
|
||||
* @date 2025-02-18
|
||||
*/
|
||||
public interface CompanyCardCollectionMapper extends BaseMapper<CompanyCardCollection>
|
||||
{
|
||||
/**
|
||||
* 查询公司卡片收藏列表
|
||||
*
|
||||
* @param companyCardCollection 公司卡片收藏
|
||||
* @return 公司卡片收藏集合
|
||||
*/
|
||||
public List<CompanyCardCollection> selectCompanyCardCollectionList(CompanyCardCollection companyCardCollection);
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.CompanyCard;
|
||||
import com.ruoyi.cms.domain.vo.CompanyCardVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 公司卡片Mapper接口
|
||||
* @author ${author}
|
||||
* @date 2025-02-18
|
||||
*/
|
||||
public interface CompanyCardMapper extends BaseMapper<CompanyCard>
|
||||
{
|
||||
/**
|
||||
* 查询公司卡片列表
|
||||
*
|
||||
* @param companyCard 公司卡片
|
||||
* @return 公司卡片集合
|
||||
*/
|
||||
public List<CompanyCard> selectCompanyCardList(CompanyCard companyCard);
|
||||
|
||||
List<CompanyCardVO> selectCompanyCardListVO(CompanyCard companyCard);
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.cms.domain.Company;
|
||||
import com.ruoyi.cms.domain.CompanyCollection;
|
||||
|
||||
/**
|
||||
* 用户公司收藏Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
public interface CompanyCollectionMapper extends BaseMapper<CompanyCollection>
|
||||
{
|
||||
/**
|
||||
* 查询用户公司收藏列表
|
||||
*
|
||||
* @param companyCollection 用户公司收藏
|
||||
* @return 用户公司收藏集合
|
||||
*/
|
||||
public List<CompanyCollection> selectCompanyCollectionList(CompanyCollection companyCollection);
|
||||
|
||||
List<Company> collectionJob(Long userId);
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.CompanyLabel;
|
||||
|
||||
|
||||
|
||||
public interface CompanyLabelMapper extends BaseMapper<CompanyLabel>
|
||||
{
|
||||
|
||||
}
|
@@ -0,0 +1,28 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.Company;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 公司Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
public interface CompanyMapper extends BaseMapper<Company>
|
||||
{
|
||||
/**
|
||||
* 查询公司列表
|
||||
*
|
||||
* @param company 公司
|
||||
* @return 公司集合
|
||||
*/
|
||||
public List<Company> selectCompanyList(Company company);
|
||||
|
||||
void batchInsert(List<Company> companyBatch);
|
||||
|
||||
void updateJobCountOfCompany();
|
||||
|
||||
List<Company> label(@Param("companyNature") String companyNature, @Param("targ")String targ,@Param("companyName")String companyName);
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.FairCollection;
|
||||
import com.ruoyi.cms.domain.JobCollection;
|
||||
import com.ruoyi.cms.domain.JobFair;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户招聘会收藏Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
public interface FairCollectionMapper extends BaseMapper<FairCollection>
|
||||
{
|
||||
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.FairCompany;
|
||||
|
||||
/**
|
||||
* 公司招聘会关联Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
public interface FairCompanyMapper extends BaseMapper<FairCompany>
|
||||
{
|
||||
/**
|
||||
* 查询公司招聘会关联列表
|
||||
*
|
||||
* @param fairCompany 公司招聘会关联
|
||||
* @return 公司招聘会关联集合
|
||||
*/
|
||||
public List<FairCompany> selectFairCompanyList(FairCompany fairCompany);
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.File;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 文件Mapper接口
|
||||
* @author ${author}
|
||||
* @date 2025-03-18
|
||||
*/
|
||||
public interface FileMapper extends BaseMapper<File>
|
||||
{
|
||||
/**
|
||||
* 查询文件列表
|
||||
*
|
||||
* @param file 文件
|
||||
* @return 文件集合
|
||||
*/
|
||||
public List<File> selectFileList(File file);
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.common.core.domain.entity.Industry;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 行业Mapper接口
|
||||
* @author LishunDong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
public interface IndustryMapper extends BaseMapper<Industry>
|
||||
{
|
||||
/**
|
||||
* 查询行业列表
|
||||
*
|
||||
* @param industry 行业
|
||||
* @return 行业集合
|
||||
*/
|
||||
public List<Industry> selectIndustryList(Industry industry);
|
||||
}
|
@@ -0,0 +1,29 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.JobApply;
|
||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||
|
||||
/**
|
||||
* 岗位申请Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
public interface JobApplyMapper extends BaseMapper<JobApply>
|
||||
{
|
||||
/**
|
||||
* 查询岗位申请列表
|
||||
*
|
||||
* @param jobApply 岗位申请
|
||||
* @return 岗位申请集合
|
||||
*/
|
||||
public List<JobApply> selectJobApplyList(JobApply jobApply);
|
||||
|
||||
//todo
|
||||
List<Job> applyJob(Long userId);
|
||||
|
||||
List<CandidateVO> candidates(Long jobId);
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.JobCollection;
|
||||
|
||||
/**
|
||||
* 用户岗位收藏Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
public interface JobCollectionMapper extends BaseMapper<JobCollection>
|
||||
{
|
||||
/**
|
||||
* 查询用户岗位收藏列表
|
||||
*
|
||||
* @param jobCollection 用户岗位收藏
|
||||
* @return 用户岗位收藏集合
|
||||
*/
|
||||
public List<JobCollection> selectJobCollectionList(JobCollection jobCollection);
|
||||
|
||||
List<Job> collectionJob(Long userId);
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.JobFair;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 招聘会信息Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
public interface JobFairMapper extends BaseMapper<JobFair>
|
||||
{
|
||||
/**
|
||||
* 查询招聘会信息列表
|
||||
*
|
||||
* @param jobFair 招聘会信息
|
||||
* @return 招聘会信息集合
|
||||
*/
|
||||
public List<JobFair> selectJobFairList(JobFair jobFair);
|
||||
|
||||
List<JobFair> appList(JobFair jobFair);
|
||||
|
||||
List<JobFair> selectAppList(@Param("userId")Long userId, @Param("type")Integer type);
|
||||
}
|
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.ruoyi.cms.domain.Company;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.RowWork;
|
||||
import com.ruoyi.cms.domain.VectorJob;
|
||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
/**
|
||||
* 岗位Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
public interface JobMapper extends BaseMapper<Job>
|
||||
{
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*
|
||||
* @param job 岗位
|
||||
* @return 岗位集合
|
||||
*/
|
||||
public List<Job> selectJobList(Job job);
|
||||
|
||||
void isHot();
|
||||
|
||||
List<Job> selectAppJobList(ESJobSearch jobQuery);
|
||||
|
||||
void insertBatchRowWork(RowWork rowWorks);
|
||||
|
||||
List<RowWork> selectAllRowWork();
|
||||
|
||||
List<Company> selectRowCompany();
|
||||
|
||||
|
||||
|
||||
void batchInsert(List<Job> jobBatch);
|
||||
|
||||
List<Job> selectAllJob(Map<String, Object> params);
|
||||
|
||||
void insertBatchRowWork(List<RowWork> batchList);
|
||||
|
||||
List<RowWork> selectAllInsertRowWork();
|
||||
|
||||
void insertBatchRowWorkTmp(List<RowWork> batchList);
|
||||
|
||||
VectorJob selectVectorJob(Long jobId);
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.JobCollection;
|
||||
import com.ruoyi.cms.domain.JobRecomment;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户岗位收藏Mapper接口
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
public interface JobRecommentMapper extends BaseMapper<JobRecomment>
|
||||
{
|
||||
|
||||
void recommendJobForUser(@Param("userId") Long userId);
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.common.core.domain.entity.JobTitle;
|
||||
|
||||
/**
|
||||
* 岗位Mapper接口
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
public interface JobTitleMapper extends BaseMapper<JobTitle>
|
||||
{
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*
|
||||
* @param jobTitle 岗位
|
||||
* @return 岗位集合
|
||||
*/
|
||||
public List<JobTitle> selectJobTitleList(JobTitle jobTitle);
|
||||
}
|
@@ -0,0 +1,10 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.Notice;
|
||||
|
||||
public interface NoticeMapper extends BaseMapper<Notice>
|
||||
{
|
||||
|
||||
}
|
@@ -0,0 +1,10 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.Statics;
|
||||
|
||||
public interface StaticsMapper extends BaseMapper<Statics>
|
||||
{
|
||||
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.SubwayLine;
|
||||
|
||||
/**
|
||||
* 地铁线路Mapper接口
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
public interface SubwayLineMapper extends BaseMapper<SubwayLine>
|
||||
{
|
||||
/**
|
||||
* 查询地铁线路列表
|
||||
*
|
||||
* @param subwayLine 地铁线路
|
||||
* @return 地铁线路集合
|
||||
*/
|
||||
public List<SubwayLine> selectSubwayLineList(SubwayLine subwayLine);
|
||||
|
||||
List<SubwayLine> appSubway();
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.SubwayStation;
|
||||
|
||||
/**
|
||||
* 地铁站点Mapper接口
|
||||
* @author Lishundong
|
||||
* @date 2024-11-12
|
||||
*/
|
||||
public interface SubwayStationMapper extends BaseMapper<SubwayStation>
|
||||
{
|
||||
/**
|
||||
* 查询地铁站点列表
|
||||
*
|
||||
* @param subwayStation 地铁站点
|
||||
* @return 地铁站点集合
|
||||
*/
|
||||
public List<SubwayStation> selectSubwayStationList(SubwayStation subwayStation);
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.cms.mapper.es;
|
||||
|
||||
import com.ruoyi.cms.domain.ESJobDocument;
|
||||
import org.dromara.easyes.core.kernel.BaseEsMapper;
|
||||
|
||||
/**
|
||||
* 全文索引检索实体
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface EsJobDocumentMapper extends BaseEsMapper<ESJobDocument>
|
||||
{
|
||||
}
|
@@ -0,0 +1,79 @@
|
||||
package com.ruoyi.cms.service;
|
||||
|
||||
|
||||
|
||||
import com.ruoyi.cms.domain.AppNotice;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.Notice;
|
||||
import com.ruoyi.cms.domain.vo.AppNoticeVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公告 服务层
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IAppNoticeService
|
||||
{
|
||||
/**
|
||||
* 查询公告信息
|
||||
*
|
||||
* @param noticeId 公告ID
|
||||
* @return 公告信息
|
||||
*/
|
||||
public AppNotice selectNoticeById(Long noticeId);
|
||||
|
||||
/**
|
||||
* 查询公告列表
|
||||
*
|
||||
* @param notice 公告信息
|
||||
* @return 公告集合
|
||||
*/
|
||||
public List<AppNotice> selectNoticeList(AppNotice notice);
|
||||
|
||||
/**
|
||||
* 新增公告
|
||||
*
|
||||
* @param notice 公告信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertNotice(AppNotice notice);
|
||||
|
||||
/**
|
||||
* 修改公告
|
||||
*
|
||||
* @param notice 公告信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateNotice(AppNotice notice);
|
||||
|
||||
/**
|
||||
* 删除公告信息
|
||||
*
|
||||
* @param noticeId 公告ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNoticeById(Long noticeId);
|
||||
|
||||
/**
|
||||
* 批量删除公告信息
|
||||
*
|
||||
* @param noticeIds 需要删除的公告ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNoticeByIds(Long[] noticeIds);
|
||||
|
||||
List<Notice> listNotRead(Integer isRead);
|
||||
|
||||
List<Job> recommend(String jobTitle);
|
||||
|
||||
void sysNotice(String ids);
|
||||
|
||||
void read(String ids);
|
||||
|
||||
List<Notice> sysNoticeList();
|
||||
|
||||
void recommendJobCron();
|
||||
void fairCompanyCron();
|
||||
}
|
@@ -0,0 +1,62 @@
|
||||
package com.ruoyi.cms.service;
|
||||
|
||||
import com.ruoyi.cms.domain.AppReviewJob;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.query.MineJobQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 用户岗位浏览记录Service接口
|
||||
*
|
||||
* @author ${author}
|
||||
* @date 2025-02-14
|
||||
*/
|
||||
public interface IAppReviewJobService
|
||||
{
|
||||
/**
|
||||
* 查询用户岗位浏览记录
|
||||
*
|
||||
* @param id 用户岗位浏览记录主键
|
||||
* @return 用户岗位浏览记录
|
||||
*/
|
||||
public AppReviewJob selectAppReviewJobById(Long id);
|
||||
|
||||
/**
|
||||
* 查询用户岗位浏览记录列表
|
||||
*
|
||||
* @param appReviewJob 用户岗位浏览记录
|
||||
* @return 用户岗位浏览记录集合
|
||||
*/
|
||||
public List<AppReviewJob> selectAppReviewJobList(AppReviewJob appReviewJob);
|
||||
|
||||
/**
|
||||
* 新增用户岗位浏览记录
|
||||
*
|
||||
* @param appReviewJob 用户岗位浏览记录
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertAppReviewJob(AppReviewJob appReviewJob);
|
||||
|
||||
/**
|
||||
* 修改用户岗位浏览记录
|
||||
*
|
||||
* @param appReviewJob 用户岗位浏览记录
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateAppReviewJob(AppReviewJob appReviewJob);
|
||||
|
||||
/**
|
||||
* 批量删除用户岗位浏览记录
|
||||
*
|
||||
* @param ids 需要删除的用户岗位浏览记录主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteAppReviewJobByIds(Long[] ids);
|
||||
|
||||
List<Job> review(MineJobQuery jobQuery);
|
||||
|
||||
|
||||
List<String> reviewArray();
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
package com.ruoyi.cms.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
|
||||
/**
|
||||
* APP用户Service接口
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
public interface IAppUserService
|
||||
{
|
||||
/**
|
||||
* 查询APP用户
|
||||
*
|
||||
* @param userId APP用户主键
|
||||
* @return APP用户
|
||||
*/
|
||||
public AppUser selectAppUserByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 查询APP用户列表
|
||||
*
|
||||
* @param appUser APP用户
|
||||
* @return APP用户集合
|
||||
*/
|
||||
public List<AppUser> selectAppUserList(AppUser appUser);
|
||||
|
||||
/**
|
||||
* 新增APP用户
|
||||
*
|
||||
* @param appUser APP用户
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertAppUser(AppUser appUser);
|
||||
|
||||
/**
|
||||
* 修改APP用户
|
||||
*
|
||||
* @param appUser APP用户
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateAppUser(AppUser appUser);
|
||||
|
||||
/**
|
||||
* 批量删除APP用户
|
||||
*
|
||||
* @param userIds 需要删除的APP用户主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteAppUserByUserIds(Long[] userIds);
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user