first commit
This commit is contained in:
@@ -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,77 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
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 io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@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);
|
||||
}
|
||||
@ApiOperation("字段标准")
|
||||
@GetMapping("/standar/filed")
|
||||
public AjaxResult standarFiled()
|
||||
{
|
||||
Map<String,Object> filed = iBussinessDictTypeService.standarFiled();
|
||||
return success(filed);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
|
||||
import com.ruoyi.cms.domain.vo.CompanyContactVo;
|
||||
import com.ruoyi.cms.service.CompanyContactService;
|
||||
import com.ruoyi.cms.util.ListUtil;
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.CompanyContact;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
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;
|
||||
|
||||
|
||||
/**
|
||||
* 公司联系人
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-09-30 15:57:06
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/companycontact")
|
||||
@Api(tags = "移动端:公司联系人")
|
||||
public class AppCompanyContactController extends BaseController {
|
||||
@Autowired
|
||||
private CompanyContactService companyContactService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("公司联系人列表")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(CompanyContact companyContact){
|
||||
List<CompanyContact> list=companyContactService.getSelectList(companyContact);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@BussinessLog(title = "移动端保存企业联系人")
|
||||
@PostMapping("/batchInsertUpdate")
|
||||
public AjaxResult batchInsertUpdate(@RequestBody CompanyContactVo contactVo)
|
||||
{
|
||||
if (contactVo == null) {
|
||||
return AjaxResult.error("请求参数不能为空");
|
||||
}
|
||||
List<CompanyContact> contactList = contactVo.getCompanyContactList();
|
||||
if (ListUtil.isListObjectEmptyOrNull(contactList)) { // 假设 ListUtil 工具类判断 null 或空集合
|
||||
return AjaxResult.error("请至少填写一条联系人信息");
|
||||
}
|
||||
companyContactService.insertUpadteCompanyContact(contactList);
|
||||
return success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.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.BussinessLog;
|
||||
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.StringUtils;
|
||||
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.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("获取公司详细信息")
|
||||
@GetMapping(value = "/{companyId}")
|
||||
public AjaxResult getInfo(@PathVariable("companyId") Long companyId)
|
||||
{
|
||||
return success(companyService.selectCompanyByCompanyId(companyId));
|
||||
}
|
||||
/**
|
||||
* 用户收藏公司
|
||||
*/
|
||||
@BussinessLog(title = "用户收藏公司")
|
||||
@PostMapping("/collection/{companyId}")
|
||||
@ApiOperation("用户收藏公司")
|
||||
public AjaxResult companyCollection(@PathVariable("companyId") Long companyId)
|
||||
{
|
||||
return toAjax(companyCollectionService.companyCollection(companyId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户取消收藏公司
|
||||
*/
|
||||
@BussinessLog(title = "用户取消收藏公司")
|
||||
@DeleteMapping("/collection/{companyId}")
|
||||
@ApiOperation("用户取消收藏公司")
|
||||
public AjaxResult companyCancel(@PathVariable("companyId") Long companyId)
|
||||
{
|
||||
return toAjax(companyCollectionService.companyCancel(companyId));
|
||||
}
|
||||
/**
|
||||
* 公司下的岗位
|
||||
*/
|
||||
@GetMapping("/job/{companyId}")
|
||||
@ApiOperation("公司下的岗位")
|
||||
public TableDataInfo jobCompany(@ApiParam("公司id") @PathVariable Long companyId)
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(companyCollectionService.jobCompany(companyId));
|
||||
}
|
||||
@GetMapping("/card")
|
||||
@ApiOperation("查看企业卡片")
|
||||
public TableDataInfo card()
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(companyCardService.cardApp());
|
||||
}
|
||||
@BussinessLog(title = "收藏企业卡片")
|
||||
@PutMapping("/card/collection/{companyCardId}")
|
||||
@ApiOperation("收藏企业卡片")
|
||||
public AjaxResult cardCollection(@PathVariable Long companyCardId)
|
||||
{
|
||||
companyCardService.cardCollection(companyCardId);
|
||||
return success();
|
||||
}
|
||||
@BussinessLog(title = "取消收藏企业卡片")
|
||||
@DeleteMapping("/card/collection/{companyCardId}")
|
||||
@ApiOperation("取消收藏公司卡片")
|
||||
public AjaxResult cardCancel(@PathVariable Long companyCardId)
|
||||
{
|
||||
companyCardService.cardCancel(companyCardId);
|
||||
return success();
|
||||
}
|
||||
@GetMapping("/count/{companyId}")
|
||||
@ApiOperation("公司招聘的岗位数量")
|
||||
public AjaxResult count(@PathVariable Long companyId)
|
||||
{
|
||||
Integer count = companyService.count(companyId);
|
||||
return success(count);
|
||||
}
|
||||
@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);
|
||||
}
|
||||
@PostMapping("/register")
|
||||
@ApiOperation("招聘企业登记")
|
||||
@BussinessLog(title = "招聘企业登记")
|
||||
public AjaxResult register(Company company)
|
||||
{
|
||||
companyService.register(company);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
@GetMapping("/register/status")
|
||||
@ApiOperation("招聘企业登记进度查询")
|
||||
public AjaxResult registerStatus()
|
||||
{
|
||||
Company status = companyService.registerStatus();
|
||||
return AjaxResult.success(status);
|
||||
}
|
||||
|
||||
@GetMapping("/queryCodeCompany")
|
||||
@ApiOperation("根据社会信用代码查询企业")
|
||||
public AjaxResult queryCodeCompany(@RequestParam("code") String code)
|
||||
{
|
||||
if (!StringUtils.hasText(code)) {
|
||||
return AjaxResult.error("社会信用代码不能为空");
|
||||
}
|
||||
return AjaxResult.success(companyService.queryCodeCompany(code));
|
||||
}
|
||||
|
||||
@ApiOperation("模糊查询公司列表")
|
||||
@GetMapping("/likeList")
|
||||
public TableDataInfo likeList(Company company)
|
||||
{
|
||||
List<Company> list = companyService.selectLikeCompanyList(company);
|
||||
return getDataTable(list);
|
||||
}
|
||||
}
|
||||
@@ -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.BussinessLog;
|
||||
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;
|
||||
/**
|
||||
* 招聘会列表
|
||||
*/
|
||||
@BussinessLog(title = "招聘会列表")
|
||||
@GetMapping
|
||||
public TableDataInfo list(JobFair jobFair)
|
||||
{
|
||||
startPage();
|
||||
List<JobFair> results = jobFairService.appList(jobFair);
|
||||
return getDataTable(results);
|
||||
}
|
||||
|
||||
/**
|
||||
* 招聘会详情
|
||||
*/
|
||||
@BussinessLog(title = "招聘会详情")
|
||||
@GetMapping("/{fairId}")
|
||||
public AjaxResult appDetail(@ApiParam("招聘会id") @PathVariable Long fairId)
|
||||
{
|
||||
return success(jobFairService.appDetail(fairId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户收藏招聘会
|
||||
*/
|
||||
@BussinessLog(title = "用户收藏招聘会")
|
||||
@PostMapping("/collection/{fairId}")
|
||||
public AjaxResult companyCollection(@ApiParam("招聘会id") @PathVariable Long fairId)
|
||||
{
|
||||
return toAjax(fairCollectionService.fairCollection(fairId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户取消收藏招聘会
|
||||
*/
|
||||
@BussinessLog(title = "用户取消收藏招聘会")
|
||||
@DeleteMapping("/collection/{fairId}")
|
||||
public AjaxResult companyCancel(@ApiParam("招聘会id") @PathVariable Long fairId)
|
||||
{
|
||||
return toAjax(fairCollectionService.cancel(fairId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
import com.ruoyi.cms.service.IFileService;
|
||||
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.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/app/file")
|
||||
public class AppFileController extends BaseController {
|
||||
@Autowired
|
||||
private IFileService fileService;
|
||||
@ApiOperation("上传文件")
|
||||
@PostMapping("/upload")
|
||||
public AjaxResult uploadFile(@RequestParam("file") MultipartFile file, @RequestParam(value = "bussinessid",required = false) Long bussinessId) {
|
||||
return fileService.uploadFile(file,bussinessId);
|
||||
}
|
||||
|
||||
@ApiOperation("获取附件列表")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(File file)
|
||||
{
|
||||
List<File> results = fileService.selectFileList(file);
|
||||
return getDataTable(results);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,235 @@
|
||||
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.service.ICompanyService;
|
||||
import com.ruoyi.cms.service.IESJobSearchService;
|
||||
import com.ruoyi.cms.service.IJobCollectionService;
|
||||
import com.ruoyi.cms.service.IJobService;
|
||||
import com.ruoyi.cms.util.RoleUtils;
|
||||
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
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.apache.commons.lang3.ArrayUtils;
|
||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 岗位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;
|
||||
@Autowired
|
||||
private SensitiveWordChecker sensitiveWordChecker;
|
||||
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*/
|
||||
@ApiOperation("查询岗位列表")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ESJobSearch job)
|
||||
{
|
||||
EsPageInfo<ESJobDocument> list = jobService.appList(job);
|
||||
return getTableDataInfo2(list,job);
|
||||
}
|
||||
|
||||
private TableDataInfo getTableDataInfo2(EsPageInfo<ESJobDocument> list, ESJobSearch job) {
|
||||
long total = list.getTotal();
|
||||
TableDataInfo rspData = new TableDataInfo();
|
||||
rspData.setCode(200);
|
||||
rspData.setRows(list.getList());
|
||||
rspData.setTotal(total > 200 ? 200 : total);
|
||||
job.setCompany(null);
|
||||
rspData.setData(job);
|
||||
return rspData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取5条推荐岗位
|
||||
*/
|
||||
@ApiOperation("获取推荐岗位")
|
||||
@GetMapping("/recommend")
|
||||
public AjaxResult recommend(ESJobSearch esJobSearch)
|
||||
{
|
||||
if (RoleUtils.getAppCurrentUseridCard() != null) {
|
||||
esJobSearch.setCode(RoleUtils.getAppCurrentUseridCard());
|
||||
esJobSearch.setUserType(RoleUtils.getAppIscompanyUser());
|
||||
}
|
||||
List<ESJobDocument> jobList = jobService.recommend(esJobSearch);
|
||||
return success(jobList);
|
||||
}
|
||||
@ApiOperation("获取短视频")
|
||||
@GetMapping("/littleVideo")
|
||||
public AjaxResult littleVideo(ESJobSearch esJobSearch)
|
||||
{
|
||||
List<ESJobDocument> jobList = jobService.littleVideo(esJobSearch);
|
||||
return success(jobList);
|
||||
}
|
||||
|
||||
@ApiOperation("随机获取短视频")
|
||||
@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);
|
||||
return success(jobList);
|
||||
}
|
||||
/**
|
||||
* 附件工作
|
||||
*/
|
||||
@ApiOperation("附近工作")
|
||||
@PostMapping(value = "/nearJob")
|
||||
public TableDataInfo nearJob(@RequestBody ESJobSearch jobQuery)
|
||||
{
|
||||
EsPageInfo<ESJobDocument> list = esJobSearchService.nearJob(jobQuery);
|
||||
List<ESJobDocument> jobList = list.getList();
|
||||
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();
|
||||
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();
|
||||
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();
|
||||
list.setList(jobList);
|
||||
return getTableDataInfo(list);
|
||||
}
|
||||
/**
|
||||
* 获取岗位详细信息
|
||||
*/
|
||||
@ApiOperation("获取岗位详细信息")
|
||||
@GetMapping(value = "/{jobId}")
|
||||
public AjaxResult getInfo(@PathVariable("jobId") Long jobId)
|
||||
{
|
||||
Job job = jobService.selectJobByJobIdApp(jobId);
|
||||
return success(job);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户收藏岗位
|
||||
*/
|
||||
@BussinessLog(title = "用户收藏岗位")
|
||||
@PostMapping("/collection/{jobId}")
|
||||
@ApiOperation("用户收藏")
|
||||
public AjaxResult jobCollection(@ApiParam("岗位id") @PathVariable Long jobId)
|
||||
{
|
||||
return toAjax(jobCollectionService.jobCollection(jobId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户取消收藏岗位
|
||||
*/
|
||||
@BussinessLog(title = "用户取消收藏岗位")
|
||||
@DeleteMapping("/collection/{jobId}")
|
||||
@ApiOperation("用户取消收藏岗位")
|
||||
public AjaxResult cancel(@ApiParam("岗位id") @PathVariable Long jobId)
|
||||
{
|
||||
return toAjax(jobCollectionService.cancel(jobId));
|
||||
}
|
||||
/**
|
||||
* 用户申请岗位
|
||||
*/
|
||||
@BussinessLog(title = "用户申请岗位")
|
||||
@GetMapping("/apply/{jobId}")
|
||||
@ApiOperation("用户申请岗位")
|
||||
public AjaxResult apply(@ApiParam("岗位id") @PathVariable Long jobId)
|
||||
{
|
||||
return toAjax(jobCollectionService.apply(jobId));
|
||||
}
|
||||
@GetMapping("/competitiveness/{jobId}")
|
||||
@ApiOperation("竞争力分析")
|
||||
public AjaxResult competitiveness(@ApiParam("岗位id") @PathVariable Long jobId) {
|
||||
return success(jobCollectionService.competitiveness(jobId));
|
||||
}
|
||||
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;
|
||||
}
|
||||
@BussinessLog(title = "移动端发布岗位")
|
||||
@PostMapping("/publishJob")
|
||||
public AjaxResult fix(@RequestBody Job job)
|
||||
{
|
||||
// 校验描述中的敏感词
|
||||
List<String> sensitiveWords = sensitiveWordChecker.checkSensitiveWords(job.getDescription());
|
||||
if (!sensitiveWords.isEmpty()) {
|
||||
String errorMsg = "描述中包含敏感词:" + String.join("、", sensitiveWords);
|
||||
return AjaxResult.error(errorMsg);
|
||||
}
|
||||
jobService.publishJob(job);
|
||||
return success();
|
||||
}
|
||||
|
||||
@GetMapping("/jobCompare")
|
||||
@ApiOperation("根据多个岗位id查询岗位详情")
|
||||
public AjaxResult jobCompare(@ApiParam("岗位ID数组") @RequestParam("jobIds") Long[] jobIds) {
|
||||
if (ArrayUtils.isEmpty(jobIds)) {
|
||||
return AjaxResult.error("请传递岗位ID参数(jobIds),多个ID用&分隔");
|
||||
}
|
||||
if (jobIds.length > 5) {
|
||||
return AjaxResult.error("最多支持对比5个岗位,请减少参数数量");
|
||||
}
|
||||
return success(esJobSearchService.selectByIds(jobIds));
|
||||
}
|
||||
|
||||
@GetMapping("/applyJobList")
|
||||
@ApiOperation("根据岗位id查询岗位申请人员")
|
||||
public AjaxResult applyJobList(@ApiParam("岗位id") @RequestParam("jobId") Long jobId) {
|
||||
if (jobId==null) {
|
||||
return AjaxResult.error("请传递岗位ID");
|
||||
}
|
||||
return success(jobService.selectApplyJobUserList(jobId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.Notice;
|
||||
import com.ruoyi.cms.service.IAppNoticeService;
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@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")
|
||||
@BussinessLog(title = "系统通知标记已读")
|
||||
public AjaxResult sysNotice(@RequestParam String id)
|
||||
{
|
||||
appNoticeService.sysNotice(id);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
@ApiOperation("岗位推荐、招聘会已读")
|
||||
@PostMapping("/read")
|
||||
@BussinessLog(title = "岗位推荐、招聘会已读标记已读")
|
||||
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,61 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.service.ICompanyService;
|
||||
import com.ruoyi.cms.service.IJobService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import io.swagger.annotations.Api;
|
||||
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.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 岗位Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/script")
|
||||
@Api(tags = "移动端:脚本")
|
||||
public class AppScriptController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IJobService jobService;
|
||||
@Autowired
|
||||
private ICompanyService companyService;
|
||||
//更新经纬度
|
||||
@GetMapping("/updateLon")
|
||||
public void updateLon()
|
||||
{
|
||||
jobService.updateLon();
|
||||
}
|
||||
//导入数据
|
||||
@GetMapping("/import")
|
||||
public AjaxResult importData()
|
||||
{
|
||||
jobService.importData();
|
||||
return success();
|
||||
}
|
||||
//导入原始数据
|
||||
@GetMapping("/importRow")
|
||||
public AjaxResult importRow(@RequestParam String path)
|
||||
{
|
||||
jobService.importRow(path);
|
||||
return success();
|
||||
}
|
||||
// 导入500强
|
||||
@GetMapping("/importLabel500")
|
||||
public void importLabel()
|
||||
{
|
||||
companyService.importLabel();
|
||||
}
|
||||
// 随机导入3个公司到银行标签
|
||||
@GetMapping("/importLabelBank")
|
||||
public void importLabelBank()
|
||||
{
|
||||
companyService.importLabelBank();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
|
||||
import com.ruoyi.cms.service.AppSkillService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.AppSkill;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
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.web.bind.annotation.*;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 用户技能信息
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-21 12:22:09
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/appskill")
|
||||
@Api(tags = "移动端:用户技能")
|
||||
public class AppSkillController extends BaseController {
|
||||
@Autowired
|
||||
private AppSkillService appSkillService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("获取技能列表")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(AppSkill appSkill){
|
||||
startPage();
|
||||
List<AppSkill> list=appSkillService.getList(appSkill);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 信息
|
||||
*/
|
||||
@ApiOperation("获取技能详细信息")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult info(@PathVariable("id") Long id){
|
||||
return success(appSkillService.getAppskillById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@ApiOperation("新增技能信息")
|
||||
@PostMapping("/add")
|
||||
public AjaxResult save(@RequestBody AppSkill appSkill){
|
||||
return toAjax(appSkillService.insertAppskill(appSkill));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@ApiOperation("修改技能详细信息")
|
||||
@PutMapping("/edit")
|
||||
public AjaxResult update(@RequestBody AppSkill appSkill){
|
||||
return toAjax(appSkillService.updateAppskillById(appSkill));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@ApiOperation("删除技能详细信息")
|
||||
@DeleteMapping("/{id}")
|
||||
public AjaxResult delete(@ApiParam("主键id") @PathVariable Long id){
|
||||
return toAjax(appSkillService.removeAppskillIds(new Long[]{id}));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.alibaba.nls.client.AccessToken;
|
||||
import com.ruoyi.cms.handler.SpeechRecognizerAI;
|
||||
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 org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* app语音Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/speech")
|
||||
@Api(tags = "移动端:用户相关")
|
||||
public class AppSpeechController extends BaseController
|
||||
{
|
||||
private String appKey = "4lFYn2yPsQymwGu8";
|
||||
private String id = "LTAI5t9hhSqdDHqwH3RjgyYj";
|
||||
private String secret = "ni5aW3vxrWouMwcGqJPfh9Uu56PBuv";
|
||||
private String url = System.getenv().getOrDefault("NLS_GATEWAY_URL", "wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1");
|
||||
@ApiOperation("统计")
|
||||
@GetMapping("/getToken")
|
||||
public AjaxResult getToken()
|
||||
{
|
||||
SpeechRecognizerAI recognizerDemo = new SpeechRecognizerAI(appKey, id, secret, url);
|
||||
AccessToken accessToken = recognizerDemo.getAccessToken();
|
||||
String token = "wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1?appkey="+appKey+"&token="+accessToken.getToken();
|
||||
return AjaxResult.success(token);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.AppReviewJob;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.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.annotation.BussinessLog;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.cms.domain.vo.AppUserLky;
|
||||
import com.ruoyi.common.core.domain.model.RegisterBody;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
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.web.bind.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
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("/registerUser")
|
||||
@BussinessLog(title = "保存简历")
|
||||
public AjaxResult registerUser(@RequestBody RegisterBody registerBody)
|
||||
{
|
||||
appUserService.registerAppUser(registerBody);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@ApiOperation("保存简历")
|
||||
@PostMapping("/resume")
|
||||
public AjaxResult saveResume(@RequestBody AppUser appUser)
|
||||
{
|
||||
appUser.setUserId(SiteSecurityUtils.getUserId());
|
||||
appUserService.updateAppUser(appUser);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@ApiOperation("查看简历")
|
||||
@GetMapping("/resume")
|
||||
public AjaxResult getResume()
|
||||
{
|
||||
AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.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);
|
||||
}
|
||||
|
||||
@ApiOperation("根据条件查询用户信息")
|
||||
@GetMapping("/list")
|
||||
public AjaxResult getUserList(AppUser appUser)
|
||||
{
|
||||
List<AppUser> list = appUserService.selectAppUserList(appUser);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
@ApiOperation("返回求职者劳科院-当前职位名称、技能标签")
|
||||
@GetMapping("/appUserInfo")
|
||||
public AjaxResult appUserInfo(AppUser appUser)
|
||||
{
|
||||
if(!SiteSecurityUtils.isLogin()){
|
||||
return AjaxResult.error("未登录!");
|
||||
}
|
||||
appUser.setUserId(SiteSecurityUtils.getUserId());
|
||||
AppUserLky appUserLky = appUserService.selectAppUserInfo(appUser);
|
||||
return AjaxResult.success(appUserLky);
|
||||
}
|
||||
|
||||
@PostMapping("/browse")
|
||||
@ApiOperation("用户浏览")
|
||||
public AjaxResult browse(@RequestBody AppReviewJob appReviewJob)
|
||||
{
|
||||
if(appReviewJob.getJobId()==null){
|
||||
return AjaxResult.error("岗位id为空");
|
||||
}
|
||||
if(!SiteSecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
if(StringUtils.isEmpty(appReviewJob.getReviewDate())){
|
||||
appReviewJob.setReviewDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,new Date()));
|
||||
}
|
||||
appReviewJob.setUserId(SiteSecurityUtils.getUserId());
|
||||
return toAjax(appReviewJobService.insertAppReviewJob(appReviewJob));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
|
||||
import com.ruoyi.cms.service.UserWorkExperiencesService;
|
||||
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.SiteSecurityUtils;
|
||||
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.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 用户工作经历表
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-10 16:26:26
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app/userworkexperiences")
|
||||
@Api(tags = "移动端:用户工作经历")
|
||||
public class AppUserWorkExperiencesController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private UserWorkExperiencesService userWorkExperiencesService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("工作经历列表信息")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(UserWorkExperiences userWorkExperiences){
|
||||
if(userWorkExperiences.getUserId()==null){
|
||||
userWorkExperiences.setUserId(SiteSecurityUtils.getUserId());
|
||||
}
|
||||
startPage();
|
||||
List<UserWorkExperiences> list=userWorkExperiencesService.getWorkExperiencesList(userWorkExperiences);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取详细信息
|
||||
*/
|
||||
@ApiOperation("获取工作经历详细信息")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult query(@PathVariable("id") Long id){
|
||||
return success(userWorkExperiencesService.getWorkExperiencesById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@ApiOperation("新增工作经历")
|
||||
@PostMapping("/add")
|
||||
public AjaxResult add(@RequestBody UserWorkExperiences userWorkExperiences){
|
||||
if(userWorkExperiences.getUserId()==null){
|
||||
userWorkExperiences.setUserId(SiteSecurityUtils.getUserId());
|
||||
}
|
||||
return toAjax(userWorkExperiencesService.insertWorkExperiences(userWorkExperiences));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@ApiOperation("修改工作经历")
|
||||
@PutMapping("/edit")
|
||||
public AjaxResult update(@RequestBody UserWorkExperiences userWorkExperiences){
|
||||
return toAjax(userWorkExperiencesService.updateWorkExperiencesById(userWorkExperiences));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@ApiOperation("删除工作经历")
|
||||
@DeleteMapping("/{id}")
|
||||
public AjaxResult remove(@ApiParam("招聘会id") @PathVariable Long id){
|
||||
|
||||
return toAjax(userWorkExperiencesService.deleteWorkExperiencesIds(new Long[]{id}));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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,52 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
|
||||
import com.ruoyi.cms.service.BussinessDictJobCategoryService;
|
||||
import com.ruoyi.common.annotation.Anonymous;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.core.domain.entity.BussinessDictJobCategory;
|
||||
|
||||
|
||||
/**
|
||||
* 技能字典表
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-30 19:25:48
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/dict")
|
||||
@Anonymous
|
||||
public class BussinessDictJobCategoryController {
|
||||
@Autowired
|
||||
private BussinessDictJobCategoryService bussinessDictJobCategoryService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@GetMapping("/jobCategory")
|
||||
public AjaxResult jobCategory(BussinessDictJobCategory bussinessDictJobCategory){
|
||||
if (!hasAnyQueryCondition(bussinessDictJobCategory)) {
|
||||
return AjaxResult.error("请传递至少一个查询条件(大类、中类、小类、名称),避免数据量过大!");
|
||||
}
|
||||
return AjaxResult.success(bussinessDictJobCategoryService.getList(bussinessDictJobCategory));
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否包含至少一个有效的查询条件
|
||||
*/
|
||||
private boolean hasAnyQueryCondition(BussinessDictJobCategory queryParam) {
|
||||
// 避免空指针(若 queryParam 可能为 null,需先判断)
|
||||
if (queryParam == null) {
|
||||
return false;
|
||||
}
|
||||
// 检查四个字段中是否有非空值
|
||||
return StringUtils.isNotEmpty(queryParam.getLabd())
|
||||
|| StringUtils.isNotEmpty(queryParam.getLabz())
|
||||
|| StringUtils.isNotEmpty(queryParam.getLabx())
|
||||
|| StringUtils.isNotEmpty(queryParam.getName());
|
||||
}
|
||||
}
|
||||
@@ -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,174 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.cms.util.RoleUtils;
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
import com.ruoyi.common.core.domain.model.RegisterBody;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
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.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('cms:appUser:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(AppUser appUser)
|
||||
{
|
||||
startPage();
|
||||
List<AppUser> list = appUserService.selectAppUserList(appUser);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出APP用户列表
|
||||
*/
|
||||
@ApiOperation("导出APP用户列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:appUser: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用户")
|
||||
@Log(title = "APP用户", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody AppUser appUser)
|
||||
{
|
||||
if(appUser.getUserId()==null){
|
||||
return AjaxResult.error("参数userId为空");
|
||||
}
|
||||
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));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取APP用户详细信息(pc端获取移动端简历信息)
|
||||
*/
|
||||
@ApiOperation("pc端个人简历信息-获取APP用户详细信息")
|
||||
@GetMapping(value = "/getUserInfo")
|
||||
public AjaxResult getUserInfo()
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("未登录!");
|
||||
}
|
||||
return success(appUserService.getUserInfo());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户简历信息-(技能信息、经历信息)
|
||||
*/
|
||||
@ApiOperation("修改用户简历信息")
|
||||
@PostMapping("/editRegisterUser")
|
||||
@BussinessLog(title = "保存简历")
|
||||
public AjaxResult editRegisterUser(@RequestBody RegisterBody registerBody)
|
||||
{
|
||||
if (registerBody == null) {
|
||||
return AjaxResult.error("入参registerBody不能为空!");
|
||||
}
|
||||
if(registerBody.getAppUser()==null){
|
||||
return AjaxResult.error("用户信息为空!");
|
||||
}
|
||||
return AjaxResult.success(appUserService.editRegisterUser(registerBody));
|
||||
}
|
||||
|
||||
@ApiOperation("查询APP用户列表")
|
||||
@GetMapping("/noTmlist")
|
||||
public TableDataInfo noTmlist(AppUser appUser)
|
||||
{
|
||||
startPage();
|
||||
List<AppUser> list = appUserService.selectNoTmAppUserList(appUser);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@ApiOperation("查询我的中(已经投递的,收藏的,足迹,预约)")
|
||||
@GetMapping("/getMyTj")
|
||||
public AjaxResult getMyTj()
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("未登录!");
|
||||
}
|
||||
if(StringUtils.isEmpty(RoleUtils.getCurrentUseridCard())){
|
||||
return AjaxResult.error("用户信息为空!");
|
||||
}
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(RoleUtils.getCurrentUseridCard());
|
||||
return AjaxResult.success(appUserService.getMyTj(appUser.getUserId()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,317 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.ruoyi.cms.domain.*;
|
||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||
import com.ruoyi.cms.domain.vo.CompanyVo;
|
||||
import com.ruoyi.cms.service.*;
|
||||
import com.ruoyi.cms.util.RoleUtils;
|
||||
import com.ruoyi.cms.util.StringUtil;
|
||||
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
|
||||
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.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.Company;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
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.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 岗位Controller
|
||||
*
|
||||
* @author lishundong
|
||||
* @date 2024-09-03
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/job")
|
||||
@Api(tags = "后台:岗位管理")
|
||||
@Anonymous
|
||||
public class CmsJobController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IJobService jobService;
|
||||
@Autowired
|
||||
SensitiveWordChecker sensitiveWordChecker;
|
||||
@Autowired
|
||||
private ICompanyService companyService;
|
||||
@Autowired
|
||||
private IJobCollectionService jobCollectionService;
|
||||
@Autowired
|
||||
private IAppUserService appUserService;
|
||||
@Autowired
|
||||
private IJobApplyService iJobApplyService;
|
||||
@Autowired
|
||||
private IAppReviewJobService iAppReviewJobService;
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*/
|
||||
@ApiOperation("查询岗位列表")
|
||||
// @PreAuthorize("@ss.hasPermi('cms:job:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(Job job)
|
||||
{
|
||||
if (RoleUtils.isCompanyAdmin()) {
|
||||
Company company = companyService.queryCodeCompany(RoleUtils.getCurrentUseridCard());
|
||||
job.setCompanyId(Objects.nonNull(company) ? company.getCompanyId() : null);
|
||||
}
|
||||
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('bussiness: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('bussiness:job:add')")
|
||||
@Log(title = "岗位", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody Job job)
|
||||
{
|
||||
// 校验描述中的敏感词
|
||||
List<String> sensitiveWords = sensitiveWordChecker.checkSensitiveWords(job.getDescription());
|
||||
if (!sensitiveWords.isEmpty()) {
|
||||
String errorMsg = "描述中包含敏感词:" + String.join("、", sensitiveWords);
|
||||
return AjaxResult.error(errorMsg);
|
||||
}
|
||||
// 无敏感词,执行插入
|
||||
return toAjax(jobService.insertJob(job));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改岗位
|
||||
*/
|
||||
@ApiOperation("修改岗位")
|
||||
// @PreAuthorize("@ss.hasPermi('bussiness:job:edit')")
|
||||
@Log(title = "岗位", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody Job job)
|
||||
{
|
||||
// 校验描述中的敏感词
|
||||
List<String> sensitiveWords = sensitiveWordChecker.checkSensitiveWords(job.getDescription());
|
||||
if (!sensitiveWords.isEmpty()) {
|
||||
String errorMsg = "描述中包含敏感词:" + String.join("、", sensitiveWords);
|
||||
return AjaxResult.error(errorMsg);
|
||||
}
|
||||
return toAjax(jobService.updateJob(job));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除岗位
|
||||
*/
|
||||
@ApiOperation("删除岗位")
|
||||
// @PreAuthorize("@ss.hasPermi('bussiness: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")
|
||||
@PreAuthorize("@ss.hasPermi('bussiness:job:candidates')")
|
||||
public TableDataInfo candidates(Long jobId)
|
||||
{
|
||||
startPage();
|
||||
List<CandidateVO> list = jobService.candidates(jobId);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@ApiOperation("获取推荐岗位")
|
||||
@GetMapping("/recommend")
|
||||
public AjaxResult recommend(ESJobSearch esJobSearch)
|
||||
{
|
||||
if (RoleUtils.isCompanyAdmin()) {
|
||||
esJobSearch.setCode(RoleUtils.getCurrentUseridCard());
|
||||
esJobSearch.setUserType(StringUtil.IS_COMPANY_USER);
|
||||
}
|
||||
esJobSearch.setPageSize(20);
|
||||
List<ESJobDocument> jobList = jobService.sysRecommend(esJobSearch);
|
||||
List<Job> jobs=new ArrayList<>();
|
||||
jobList.stream().forEach(it->{
|
||||
Job job=new Job();
|
||||
BeanUtils.copyBeanProp(job, it);
|
||||
job.setCompanyVo(JSON.parseObject(it.getCompanyVoJson(), CompanyVo.class));
|
||||
jobs.add(job);
|
||||
});
|
||||
return success(jobs);
|
||||
}
|
||||
|
||||
@ApiOperation("获取所有岗位")
|
||||
@GetMapping("/selectAllJob")
|
||||
public AjaxResult selectAllJob()
|
||||
{
|
||||
List<Job> jobList = jobService.selectAllJob();
|
||||
return success(jobList);
|
||||
}
|
||||
|
||||
@PostMapping("/collection")
|
||||
@ApiOperation("用户收藏")
|
||||
public AjaxResult jobCollection(@RequestBody JobCollection jobCollection)
|
||||
{
|
||||
if(jobCollection.getJobId()==null){
|
||||
return AjaxResult.error("岗位id为空");
|
||||
}
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
if(jobCollection.getUserId()==null){
|
||||
String idCard=RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
jobCollection.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
return toAjax(jobCollectionService.pcJobCollection(jobCollection));
|
||||
}
|
||||
|
||||
@ApiOperation("获取用户岗位收藏列表")
|
||||
@GetMapping("/getAppUserYhsc")
|
||||
public AjaxResult getAppUserYhsc(JobCollection jobCollection)
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
if(jobCollection.getUserId()==null){
|
||||
String idCard=RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
jobCollection.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
return success(jobCollectionService.selectJobCollectionListJob(jobCollection));
|
||||
}
|
||||
|
||||
@ApiOperation("获取用户岗位申请列表")
|
||||
@GetMapping("/getAppUserYhsq")
|
||||
public AjaxResult getAppUserYhsq(JobApply jobApply)
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
if(jobApply.getUserId()==null){
|
||||
String idCard=RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
jobApply.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
return success(iJobApplyService.selectJobApplyListJob(jobApply));
|
||||
}
|
||||
|
||||
@ApiOperation("获取用户岗位访问足迹列表")
|
||||
@GetMapping("/getAppUserYhfwzj")
|
||||
public AjaxResult getAppUserYhfwzj(AppReviewJob appReviewJob)
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
if(appReviewJob.getUserId()==null){
|
||||
String idCard=RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
appReviewJob.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
return success(iAppReviewJobService.selectAppReviewJobListJob(appReviewJob));
|
||||
}
|
||||
|
||||
@PostMapping("/collectionCancel")
|
||||
@ApiOperation("取消收藏")
|
||||
public AjaxResult pcCancel(@RequestBody JobCollection jobCollection)
|
||||
{
|
||||
if(jobCollection.getJobId()==null){
|
||||
return AjaxResult.error("岗位id为空");
|
||||
}
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
if(jobCollection.getUserId()==null){
|
||||
String idCard=RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
jobCollection.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
return toAjax(jobCollectionService.pcCancel(jobCollection));
|
||||
}
|
||||
|
||||
@PostMapping("/browse")
|
||||
@ApiOperation("岗位浏览")
|
||||
public AjaxResult browse(@RequestBody AppReviewJob appReviewJob)
|
||||
{
|
||||
if(appReviewJob.getJobId()==null){
|
||||
return AjaxResult.error("岗位id为空");
|
||||
}
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
if(StringUtils.isEmpty(appReviewJob.getReviewDate())){
|
||||
appReviewJob.setReviewDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,new Date()));
|
||||
}
|
||||
if(appReviewJob.getUserId()==null){
|
||||
String idCard=RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
appReviewJob.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
return toAjax(iAppReviewJobService.insertAppReviewJob(appReviewJob));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.AppNotice;
|
||||
import com.ruoyi.cms.domain.Notice;
|
||||
import com.ruoyi.cms.domain.vo.NoticeTotal;
|
||||
import com.ruoyi.cms.service.IAppNoticeService;
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
import com.ruoyi.cms.util.notice.NoticeUtils;
|
||||
import com.ruoyi.cms.util.RoleUtils;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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;
|
||||
@Autowired
|
||||
private IAppUserService appUserService;
|
||||
|
||||
/**
|
||||
* 获取通知公告列表
|
||||
*/
|
||||
@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));
|
||||
}
|
||||
|
||||
@ApiOperation("pc端获取消息列表")
|
||||
@GetMapping("/appNoticList")
|
||||
public TableDataInfo selectListAppNotics(Notice notice)
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
error(HttpStatus.ERROR,"未登录!");
|
||||
}
|
||||
if(notice.getUserId()==null){
|
||||
String idCard= RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
error(HttpStatus.ERROR,"用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
notice.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
startPage();
|
||||
List<Notice> notices = noticeService.selectListAppNotics(notice);
|
||||
return getDataTable(notices);
|
||||
}
|
||||
|
||||
@ApiOperation("pc端获取未读消息列表")
|
||||
@GetMapping("/appNoticReadList")
|
||||
public TableDataInfo appNoticReadList(Notice notice)
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
error(HttpStatus.ERROR,"未登录!");
|
||||
}
|
||||
if(notice.getUserId()==null){
|
||||
String idCard= RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
error(HttpStatus.ERROR,"用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
notice.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
startPage();
|
||||
List<Notice> notices = noticeService.selectListAppNotRead(notice);
|
||||
return getDataTable(notices);
|
||||
}
|
||||
|
||||
@ApiOperation("pc端获已读消息列表")
|
||||
@GetMapping("/appNoticYdList")
|
||||
public TableDataInfo appNoticYdList(Notice notice)
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
error(HttpStatus.ERROR,"未登录!");
|
||||
}
|
||||
if(notice.getUserId()==null){
|
||||
String idCard= RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
error(HttpStatus.ERROR,"用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
notice.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
startPage();
|
||||
notice.setIsRead(NoticeUtils.NOTICE_YD);
|
||||
notice.setRemark(NoticeUtils.NOTICE_REMARK);
|
||||
List<Notice> notices = noticeService.selectListAppNotices(notice);
|
||||
return getDataTable(notices);
|
||||
}
|
||||
|
||||
@ApiOperation("系统通知标记已读")
|
||||
@PostMapping("/read/sysNotice")
|
||||
public AjaxResult sysNotice(@RequestParam String id)
|
||||
{
|
||||
Long userId=null;
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("未登录!");
|
||||
}
|
||||
if(userId==null){
|
||||
String idCard= RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
userId=appUser.getUserId();
|
||||
}
|
||||
}
|
||||
noticeService.readSysNotices(id,userId);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取消息条数
|
||||
*/
|
||||
@ApiOperation("获取移动端用户消息条数")
|
||||
@GetMapping("/noticTotal")
|
||||
public AjaxResult getNoticTotal(Notice notice){
|
||||
if(!SecurityUtils.isLogin()){
|
||||
error(HttpStatus.ERROR,"未登录!");
|
||||
}
|
||||
if(notice.getUserId()==null){
|
||||
String idCard= RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
error(HttpStatus.ERROR,"用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
notice.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
startPage();
|
||||
NoticeTotal notices = noticeService.noticTotal(notice);
|
||||
return success(notices);
|
||||
}
|
||||
|
||||
@ApiOperation("获取移动端用户消息条数")
|
||||
@DeleteMapping("/deleteNotice/{ids}")
|
||||
public AjaxResult deleteNotice(@PathVariable Long[] ids){
|
||||
return success(noticeService.removeNotice(ids));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
|
||||
import com.ruoyi.cms.service.AppSkillService;
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
import com.ruoyi.cms.util.RoleUtils;
|
||||
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.domain.entity.AppSkill;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
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.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 用户技能信息
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-21 12:22:09
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/appskill")
|
||||
@Api(tags = "后台:用户技能")
|
||||
public class CmsSkillController extends BaseController {
|
||||
@Autowired
|
||||
private AppSkillService appSkillService;
|
||||
@Autowired
|
||||
private IAppUserService appUserService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("获取技能列表")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(AppSkill appSkill){
|
||||
startPage();
|
||||
List<AppSkill> list=appSkillService.getList(appSkill);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 信息
|
||||
*/
|
||||
@ApiOperation("获取技能详情")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult info(@PathVariable("id") Long id){
|
||||
return success(appSkillService.getAppskillById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@ApiOperation("新增技能")
|
||||
@Log(title = "技能", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/add")
|
||||
public AjaxResult save(@RequestBody AppSkill appSkill){
|
||||
if(!SecurityUtils.isLogin()){
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(RoleUtils.getCurrentUseridCard());
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("未传递userId!");
|
||||
}
|
||||
appSkill.setUserId(appUser.getUserId());
|
||||
}
|
||||
return toAjax(appSkillService.insertAppskill(appSkill));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@ApiOperation("修改技能")
|
||||
@Log(title = "技能", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/edit")
|
||||
public AjaxResult update(@RequestBody AppSkill appSkill){
|
||||
if (appSkill.getId()==null){
|
||||
return AjaxResult.error("参数id未传递!");
|
||||
}
|
||||
return toAjax(appSkillService.updateAppskillById(appSkill));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@Log(title = "删除技能", businessType = BusinessType.DELETE)
|
||||
@ApiOperation("技能")
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult delete(@ApiParam("主键ids") @PathVariable Long[] ids){
|
||||
if(ids==null){
|
||||
return AjaxResult.error("参数ids未传递!");
|
||||
}
|
||||
return toAjax(appSkillService.removeAppskillIds(ids));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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,42 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.CompanyContact;
|
||||
import com.ruoyi.cms.service.CompanyContactService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
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.List;
|
||||
|
||||
|
||||
/**
|
||||
* 公司联系人
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-09-30 15:57:06
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/companycontact")
|
||||
@Api(tags = "后台:公司联系人")
|
||||
public class CompanyContactController extends BaseController {
|
||||
@Autowired
|
||||
private CompanyContactService companyContactService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("公司联系人列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:companycontact:list')")
|
||||
@RequestMapping("/list")
|
||||
public TableDataInfo list(CompanyContact companyContact){
|
||||
List<CompanyContact> list=companyContactService.getSelectList(companyContact);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
|
||||
import com.ruoyi.cms.util.RoleUtils;
|
||||
import com.ruoyi.common.core.domain.entity.Company;
|
||||
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 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('cms:company:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(Company company)
|
||||
{
|
||||
if (RoleUtils.isCompanyAdmin()) {
|
||||
company.setCode(RoleUtils.getCurrentUseridCard());
|
||||
}
|
||||
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));
|
||||
}
|
||||
|
||||
@ApiOperation("企业资质审核列表")
|
||||
@PreAuthorize("@ss.hasPermi('app:company:approval:list')")
|
||||
@GetMapping("/approval/list")
|
||||
public TableDataInfo approvalList(Company company)
|
||||
{
|
||||
startPage();
|
||||
List<Company> list = companyService.approvalList(company);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@ApiOperation("企业资质修改")
|
||||
// @PreAuthorize("@ss.hasPermi('app:company:approval:edit')")
|
||||
@GetMapping("/approval/edit")
|
||||
public AjaxResult approvalEdit(Company company)
|
||||
{
|
||||
startPage();
|
||||
List<Company> list = companyService.approvalList(company);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@ApiOperation("查询公司列表")
|
||||
// @PreAuthorize("@ss.hasPermi('cms:company:list')")
|
||||
@GetMapping("/listPage")
|
||||
public TableDataInfo listPage(Company company)
|
||||
{
|
||||
startPage();
|
||||
List<Company> list = companyService.selectCompanyList(company);
|
||||
return getDataTable(list);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.EmployeeConfirm;
|
||||
import com.ruoyi.cms.service.EmployeeConfirmService;
|
||||
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 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.List;
|
||||
|
||||
|
||||
/**
|
||||
* 新入职员工确认信息
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-10 10:42:16
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/employeeConfirm")
|
||||
@Api(tags = "后台:新入职员工确认信息")
|
||||
public class EmployeeConfirmController extends BaseController {
|
||||
@Autowired
|
||||
private EmployeeConfirmService employeeConfirmService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("新入职员工确认信息列表")
|
||||
// @PreAuthorize("@ss.hasPermi('cms:employeeConfirm:list')")
|
||||
@RequestMapping("/list")
|
||||
public TableDataInfo list(EmployeeConfirm employeeConfirm){
|
||||
List<EmployeeConfirm> list=employeeConfirmService.getEmployeeConfirmList(employeeConfirm);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@ApiOperation("新增新入职员工确认信息")
|
||||
// @PreAuthorize("@ss.hasPermi('cms:employeeConfirm:add')")
|
||||
@Log(title = "职员工确认信息", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody EmployeeConfirm employeeConfirm){
|
||||
return toAjax(employeeConfirmService.insertEmployeeConfirm(employeeConfirm));
|
||||
}
|
||||
|
||||
@ApiOperation("修改新入职员工确认信息")
|
||||
// @PreAuthorize("@ss.hasPermi('cms:employeeConfirm:edit')")
|
||||
@Log(title = "职员工确认信息", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody EmployeeConfirm employeeConfirm){
|
||||
return toAjax(employeeConfirmService.updateEmployeeConfirm(employeeConfirm));
|
||||
}
|
||||
|
||||
@ApiOperation("删除新入职员工确认信息")
|
||||
// @PreAuthorize("@ss.hasPermi('app:employeeConfirm:remove')")
|
||||
@Log(title = "公司", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{employeeConfirmIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] employeeConfirmIds)
|
||||
{
|
||||
return toAjax(employeeConfirmService.deleteEmployeeConfirmIds(employeeConfirmIds));
|
||||
}
|
||||
}
|
||||
@@ -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,95 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.JobApply;
|
||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
import com.ruoyi.cms.service.IJobApplyService;
|
||||
import com.ruoyi.cms.util.RoleUtils;
|
||||
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.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.Company;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
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.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/cms/jobApply")
|
||||
@Api(tags = "后台:岗位申请")
|
||||
public class JobApplyController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
IJobApplyService iJobApplyService;
|
||||
@Autowired
|
||||
private IAppUserService appUserService;
|
||||
|
||||
@GetMapping("/trendChart")
|
||||
public AjaxResult trendChart(JobApply jobApply)
|
||||
{
|
||||
HashMap<String,Integer> result = iJobApplyService.trendChart(jobApply);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出APP用户列表
|
||||
*/
|
||||
@ApiOperation("导出岗位申请APP用户")
|
||||
@PreAuthorize("@ss.hasPermi('cms:jobApply:export')")
|
||||
@Log(title = "APP用户", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, Job job)
|
||||
{
|
||||
List<CandidateVO> list = iJobApplyService.selectAppUserList(job);
|
||||
ExcelUtil<CandidateVO> util = new ExcelUtil<CandidateVO>(CandidateVO.class);
|
||||
util.exportExcel(response, list, "APP用户数据");
|
||||
}
|
||||
|
||||
@ApiOperation("获取求职者列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:jobApply:applyJobUserList')")
|
||||
@GetMapping("/applyJobUserList")
|
||||
public TableDataInfo applyJobList(AppUser appUser)
|
||||
{
|
||||
if (RoleUtils.isCompanyAdmin()) {
|
||||
Company company=new Company();
|
||||
company.setCode(RoleUtils.getCurrentUseridCard());
|
||||
}
|
||||
startPage();
|
||||
List<CandidateVO> list = iJobApplyService.selectApplyJobUserList(appUser);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log(title = "岗位", businessType = BusinessType.UPDATE)
|
||||
@ApiOperation("用户申请岗位")
|
||||
public AjaxResult apply(@RequestBody JobApply jobApply)
|
||||
{
|
||||
if(jobApply.getJobId()==null){
|
||||
return AjaxResult.error("岗位id为空");
|
||||
}
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
if(jobApply.getUserId()==null){
|
||||
String idCard=RoleUtils.getCurrentUseridCard();
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(idCard);
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("用户信息未完善,请完善身份证信息!");
|
||||
}else{
|
||||
jobApply.setUserId(appUser.getUserId());
|
||||
}
|
||||
}
|
||||
return success(iJobApplyService.applyComJob(jobApply));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.JobContact;
|
||||
import com.ruoyi.cms.service.JobContactService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
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.List;
|
||||
|
||||
|
||||
/**
|
||||
* 岗位联系人
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-09-30 15:57:06
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/jobcontact")
|
||||
@Api(tags = "后台:岗位联系人")
|
||||
public class JobContactController extends BaseController {
|
||||
@Autowired
|
||||
private JobContactService jobContactService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("岗位联系人列表")
|
||||
@PreAuthorize("@ss.hasPermi('cms:jobcontact:list')")
|
||||
@RequestMapping("/list")
|
||||
public TableDataInfo list(JobContact jobContact){
|
||||
startPage();
|
||||
List<JobContact> list = jobContactService.getSelectList(jobContact);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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,171 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.domain.SensitiveWordData;
|
||||
import com.ruoyi.cms.service.SensitiveWordDataService;
|
||||
import com.ruoyi.cms.util.EasyExcelUtils;
|
||||
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 io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 敏感词库
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-10 10:42:16
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/sensitiveworddata")
|
||||
@Api(tags = "后台:敏感词库")
|
||||
@Anonymous
|
||||
public class SensitiveWordDataController extends BaseController {
|
||||
@Autowired
|
||||
private SensitiveWordDataService sensitiveWordDataService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("敏感词库详细信息")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SensitiveWordData sensitiveWordData){
|
||||
startPage();
|
||||
List<SensitiveWordData> list = sensitiveWordDataService.selectSensitiveworddataList(sensitiveWordData);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取详细信息
|
||||
*/
|
||||
@ApiOperation("获取敏感词库详细信息")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult list(@PathVariable("id") Long id){
|
||||
return success(sensitiveWordDataService.selectById(id));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@ApiOperation("新增敏感词")
|
||||
@Log(title = "敏感词", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult save(@RequestBody SensitiveWordData sensitiveWordData){
|
||||
|
||||
return toAjax(sensitiveWordDataService.insertSensitiveworddata(sensitiveWordData));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@ApiOperation("修改敏感词")
|
||||
@Log(title = "敏感词", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody SensitiveWordData sensitiveWordData){
|
||||
return toAjax(sensitiveWordDataService.updateSensitiveworddata(sensitiveWordData));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除敏感词
|
||||
*/
|
||||
@ApiOperation("删除敏感词")
|
||||
@Log(title = "敏感词", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
if(ids.length==0){
|
||||
return AjaxResult.error("请传递参数!");
|
||||
}
|
||||
return toAjax(sensitiveWordDataService.deleteSensitiveworddataIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用上传请求(单个)
|
||||
*/
|
||||
@PostMapping("/exoprt")
|
||||
public AjaxResult uploadFile(@RequestParam("file") MultipartFile file) throws Exception
|
||||
{
|
||||
// 参数校验
|
||||
if (file.isEmpty()) {
|
||||
return AjaxResult.error("上传文件不能为空");
|
||||
}
|
||||
String fileName = file.getOriginalFilename();
|
||||
//类型验证
|
||||
if (fileName == null || !fileName.endsWith(".xlsx") && !fileName.endsWith(".xls")) {
|
||||
return AjaxResult.error("请上传Excel格式的文件");
|
||||
}
|
||||
//名称验证
|
||||
if (fileName == null || !"mgc.xlsx".equals(fileName)) {
|
||||
return AjaxResult.error("请上传正确的模板文件:mgc.xlsx");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
InputStream inputStream = file.getInputStream();
|
||||
EasyExcelUtils.readExcelByBatch(inputStream, SensitiveWordData.class, 100, list -> {
|
||||
// 处理逻辑:如批量保存到数据库
|
||||
sensitiveWordDataService.batchInsert(list);
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return AjaxResult.error(e.getMessage());
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@PostMapping("/downloadModel")
|
||||
public void downloadModel(HttpServletRequest request, HttpServletResponse response)throws Exception{
|
||||
String name = "mgc.xlsx";
|
||||
String pathFile="/data/downloadmodel/"+name;
|
||||
File url = new File(pathFile);
|
||||
|
||||
String resMsg = "";
|
||||
try {
|
||||
request.setCharacterEncoding("utf-8");
|
||||
} catch (UnsupportedEncodingException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
try {
|
||||
name = new String(name.getBytes("gb2312"), "ISO8859-1");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
response.reset();
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment; filename="+ name);
|
||||
response.setHeader("Pragma", "public");
|
||||
response.setHeader("Cache-Control", "max-age=0");
|
||||
InputStream in = null;
|
||||
try {
|
||||
in = new FileInputStream(url);
|
||||
} catch (FileNotFoundException e1) {
|
||||
resMsg = "文件未找到";
|
||||
e1.printStackTrace();
|
||||
response.getWriter().write(resMsg + ":" + name);
|
||||
}
|
||||
OutputStream ou = response.getOutputStream();
|
||||
byte[] buffer = new byte[1024];
|
||||
int i = -1;
|
||||
while ((i = in.read(buffer)) != -1) {
|
||||
ou.write(buffer, 0, i);
|
||||
}
|
||||
ou.flush();
|
||||
ou.close();
|
||||
in.close();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
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);
|
||||
}
|
||||
|
||||
//分学历-分薪资
|
||||
@GetMapping("/educationSalaryGen")
|
||||
public AjaxResult educationSalaryGen()
|
||||
{
|
||||
service.educationSalaryGen();
|
||||
return success();
|
||||
}
|
||||
|
||||
@GetMapping("/educationSalary")
|
||||
public AjaxResult educationSalary(Staticsquery staticsquery)
|
||||
{
|
||||
Map<String,Object> result = service.educationSalary(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,108 @@
|
||||
package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
import com.ruoyi.cms.util.RoleUtils;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
|
||||
import com.ruoyi.cms.service.UserWorkExperiencesService;
|
||||
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 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.List;
|
||||
|
||||
|
||||
/**
|
||||
* 用户工作经历表
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-10 16:26:26
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/userworkexperiences")
|
||||
@Api(tags = "后台:用户工作经历")
|
||||
public class UserWorkExperiencesController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private UserWorkExperiencesService userWorkExperiencesService;
|
||||
@Autowired
|
||||
private IAppUserService appUserService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation("工作经历列表信息")
|
||||
@PreAuthorize("@ss.hasPermi('cms:userworkexperiences:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(UserWorkExperiences userWorkExperiences){
|
||||
startPage();
|
||||
List<UserWorkExperiences> list=userWorkExperiencesService.getWorkExperiencesList(userWorkExperiences);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 信息
|
||||
*/
|
||||
/**
|
||||
* 获取详细信息
|
||||
*/
|
||||
@ApiOperation("获取工作经历详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('cms:userworkexperiences:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult query(@PathVariable("id") Long id){
|
||||
return success(userWorkExperiencesService.getWorkExperiencesById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@ApiOperation("新增工作经历")
|
||||
@Log(title = "工作经历", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody UserWorkExperiences userWorkExperiences){
|
||||
if(userWorkExperiences.getUserId()==null){
|
||||
AppUser appUser=appUserService.selectAppuserByIdcard(RoleUtils.getCurrentUseridCard());
|
||||
if(appUser==null){
|
||||
return AjaxResult.error("未传递userId!");
|
||||
}
|
||||
userWorkExperiences.setUserId(appUser.getUserId());
|
||||
}
|
||||
return toAjax(userWorkExperiencesService.insertWorkExperiences(userWorkExperiences));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@ApiOperation("修改工作经历")
|
||||
@Log(title = "工作经历", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult update(@RequestBody UserWorkExperiences userWorkExperiences){
|
||||
if (userWorkExperiences.getId()==null){
|
||||
return AjaxResult.error("参数id未传递!");
|
||||
}
|
||||
return toAjax(userWorkExperiencesService.updateWorkExperiencesById(userWorkExperiences));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@ApiOperation("删除工作经历")
|
||||
@Log(title = "工作经历", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids){
|
||||
if(ids.length==0){
|
||||
return AjaxResult.error("参数ids未传递!");
|
||||
}
|
||||
return toAjax(userWorkExperiencesService.deleteWorkExperiencesIds(ids));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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,42 @@
|
||||
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.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.xss.Xss;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
@Data
|
||||
@ApiModel("APP通知")
|
||||
@TableName(value = "app_notice")
|
||||
public class AppNotice extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "notice_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("公司id")
|
||||
private Long noticeId;
|
||||
|
||||
@Xss(message = "消息标题不能包含脚本字符")
|
||||
@NotBlank(message = "消息标题不能为空")
|
||||
@Size(min = 0, max = 50, message = "消息标题不能超过50个字符")
|
||||
private String noticeTitle;
|
||||
|
||||
@ApiModelProperty("消息类型")
|
||||
private String noticeType;
|
||||
|
||||
@ApiModelProperty("消息内容")
|
||||
private String noticeContent;
|
||||
|
||||
@ApiModelProperty("消息状态 0正常 1关闭")
|
||||
private String status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
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.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
/**
|
||||
* 用户岗位浏览记录对象 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;
|
||||
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "浏览日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@ApiModelProperty("浏览日期")
|
||||
private String reviewDate;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
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.annotation.Excel.ColumnType;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
|
||||
@Data
|
||||
@ApiModel("业务数据表")
|
||||
@TableName(value = "bussiness_dict_data")
|
||||
public class BussinessDictData extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("字典编码")
|
||||
@Excel(name = "字典编码", cellType = ColumnType.NUMERIC)
|
||||
@TableId(value = "dict_code",type = IdType.AUTO)
|
||||
private Long dictCode;
|
||||
|
||||
@ApiModelProperty("字典排序")
|
||||
@Excel(name = "字典排序", cellType = ColumnType.NUMERIC)
|
||||
private Long dictSort;
|
||||
|
||||
@Excel(name = "字典标签")
|
||||
@ApiModelProperty("字典标签")
|
||||
@NotBlank(message = "字典标签不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
|
||||
private String dictLabel;
|
||||
|
||||
@Excel(name = "字典键值")
|
||||
@ApiModelProperty("字典键值")
|
||||
@NotBlank(message = "字典键值不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
|
||||
private String dictValue;
|
||||
|
||||
@ApiModelProperty("字典类型")
|
||||
@Excel(name = "字典类型")
|
||||
@NotBlank(message = "字典类型不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
|
||||
private String dictType;
|
||||
|
||||
@ApiModelProperty("样式属性(其他样式扩展)")
|
||||
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
|
||||
private String cssClass;
|
||||
|
||||
@ApiModelProperty("表格字典样式")
|
||||
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
|
||||
private String listClass;
|
||||
|
||||
@ApiModelProperty("是否默认(Y是 N否)")
|
||||
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
|
||||
private String isDefault;
|
||||
|
||||
@ApiModelProperty("状态 0=正常,1=停用 ")
|
||||
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
|
||||
private String status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.annotation.Excel.ColumnType;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Pattern;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
|
||||
@Data
|
||||
@ApiModel("字典类型表")
|
||||
@TableName(value = "bussiness_dict_type")
|
||||
public class BussinessDictType extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 字典主键 */
|
||||
@Excel(name = "字典主键", cellType = ColumnType.NUMERIC)
|
||||
private Long dictId;
|
||||
|
||||
/** 字典名称 */
|
||||
@Excel(name = "字典名称")
|
||||
@NotBlank(message = "字典名称不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
|
||||
private String dictName;
|
||||
|
||||
/** 字典类型 */
|
||||
@Excel(name = "字典类型")
|
||||
@NotBlank(message = "字典类型不能为空")
|
||||
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
|
||||
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
|
||||
private String dictType;
|
||||
|
||||
/** 状态(0正常 1停用) */
|
||||
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
|
||||
private String status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
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;
|
||||
|
||||
@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;
|
||||
|
||||
@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;
|
||||
|
||||
@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;
|
||||
|
||||
@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;
|
||||
|
||||
@ApiModelProperty("业务类型数组")
|
||||
private Integer[] businessTypes;
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
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;
|
||||
|
||||
@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;
|
||||
|
||||
@Excel(name = "地址")
|
||||
@ApiModelProperty("地址")
|
||||
private String address;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
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;
|
||||
|
||||
@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;
|
||||
|
||||
@ApiModelProperty("状态 0未发布 1发布")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("排序")
|
||||
private Integer cardOrder;
|
||||
|
||||
@ApiModelProperty("描述")
|
||||
private String description;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@TableId(value = "company_card_collection_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyCardCollectionId;
|
||||
|
||||
|
||||
@Excel(name = "用户id")
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
@Excel(name = "公司卡片id")
|
||||
@ApiModelProperty("公司卡片id")
|
||||
private Long companyCardId;
|
||||
}
|
||||
@@ -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_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;
|
||||
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "公司id")
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
@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.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;
|
||||
|
||||
@ApiModelProperty("公司标签")
|
||||
private String dictValue;
|
||||
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.ruoyi.common.core.domain.entity.Company;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
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")
|
||||
@Data
|
||||
public class ESJobDocument
|
||||
{
|
||||
|
||||
@ApiModelProperty("es中的唯一id")
|
||||
@IndexId(type = IdType.NONE)
|
||||
@JsonIgnore
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
|
||||
@ApiModelProperty("公告标题")
|
||||
@IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD)
|
||||
private String jobTitle;
|
||||
|
||||
@ApiModelProperty("内容")
|
||||
@IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD)
|
||||
private String description;
|
||||
|
||||
@ApiModelProperty("最小薪资(元)")
|
||||
private Long minSalary;
|
||||
|
||||
@ApiModelProperty("最大薪资(元)")
|
||||
private Long maxSalary;
|
||||
|
||||
@ApiModelProperty("学历要求 对应字典education")
|
||||
private String education;
|
||||
|
||||
@ApiModelProperty("工作经验要求 对应字典experience")
|
||||
private String experience;
|
||||
|
||||
@ApiModelProperty("用人单位名称")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty("工作地点")
|
||||
private String jobLocation;
|
||||
|
||||
@ApiModelProperty("工作地点区县字典代码")
|
||||
private Integer jobLocationAreaCode;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty("发布时间")
|
||||
private Date postingDate;
|
||||
|
||||
@ApiModelProperty("招聘人数")
|
||||
private Long vacancies;
|
||||
|
||||
@ApiModelProperty("纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
@ApiModelProperty("经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
@ApiModelProperty("浏览量")
|
||||
private Long view;
|
||||
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
@ApiModelProperty("是否火")
|
||||
private Integer isHot;
|
||||
|
||||
@ApiModelProperty("申请次数")
|
||||
private Integer applyNum;
|
||||
|
||||
@JsonIgnore
|
||||
@ApiModelProperty("公司")
|
||||
private Company company;
|
||||
|
||||
@ApiModelProperty("是否申请 0为否 1为是")
|
||||
private Integer isApply;
|
||||
|
||||
@ApiModelProperty("是否收藏 0为否 1为是")
|
||||
private Integer isCollection;
|
||||
|
||||
@ApiModelProperty("数据来源")
|
||||
private String dataSource;
|
||||
|
||||
@ApiModelProperty("岗位链接")
|
||||
private String jobUrl;
|
||||
|
||||
@JsonIgnore
|
||||
@IndexField(fieldType = FieldType.GEO_POINT)
|
||||
@ApiModelProperty("经纬度")
|
||||
private String latAndLon;
|
||||
|
||||
@JsonIgnore
|
||||
@ApiModelProperty("公司规模")
|
||||
private String scaleDictCode;
|
||||
|
||||
@ApiModelProperty("行业分类")
|
||||
private String industry;
|
||||
|
||||
@ApiModelProperty("岗位分类")
|
||||
private String jobCategory;
|
||||
|
||||
@JsonIgnore
|
||||
@ApiModelProperty("学历要求 对应字典education int类型 es方便查询")
|
||||
private Integer education_int;
|
||||
@JsonIgnore
|
||||
@ApiModelProperty("工作经验要求 对应字典experience int类型 es方便查询")
|
||||
private Integer experience_int;
|
||||
|
||||
@ApiModelProperty("公司规模 int类型 es方便查询")
|
||||
private Integer scale;
|
||||
|
||||
@ApiModelProperty("岗位链接 APP内")
|
||||
private String appJobUrl;
|
||||
|
||||
@ApiModelProperty("公司性质")
|
||||
private String companyNature;
|
||||
|
||||
@ApiModelProperty("是否有视频介绍")
|
||||
private Integer isExplain;
|
||||
|
||||
@ApiModelProperty("视频介绍URL")
|
||||
private String explainUrl;
|
||||
|
||||
@ApiModelProperty("视频封面URL")
|
||||
private String cover;
|
||||
|
||||
@ApiModelProperty("岗位类型 0疆内 1疆外")
|
||||
private String jobType;
|
||||
|
||||
@ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 对应字段字典position_type")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty("信用代码")
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty("公司信息")
|
||||
@IndexField(fieldType = FieldType.TEXT)
|
||||
private String companyVoJson;
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
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.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 新入职员工确认信息
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-10 10:42:16
|
||||
*/
|
||||
@Data
|
||||
@TableName("employee_confirm")
|
||||
public class EmployeeConfirm extends BaseEntity {
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
/**
|
||||
* 企业id
|
||||
*/
|
||||
@ApiModelProperty("企业id")
|
||||
private Long companyId;
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@ApiModelProperty("姓名")
|
||||
private String contactPerson;
|
||||
/**
|
||||
* 身份证
|
||||
*/
|
||||
@ApiModelProperty("身份证")
|
||||
private String idCard;
|
||||
/**
|
||||
* 入职日期
|
||||
*/
|
||||
@ApiModelProperty("入职日期")
|
||||
private String entryDate;
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
@ApiModelProperty("联系电话")
|
||||
private String contactPersonPhone;
|
||||
/**
|
||||
* 劳动合同期限
|
||||
*/
|
||||
@ApiModelProperty("劳动合同期限")
|
||||
private String contractTerm;
|
||||
|
||||
@ApiModelProperty("工作id")
|
||||
private Long jobId;
|
||||
|
||||
@ApiModelProperty("移动端用户id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 申请id
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Long applyId;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
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;
|
||||
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "招聘会id")
|
||||
@ApiModelProperty("招聘会id")
|
||||
private Long fairId;
|
||||
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
/**
|
||||
* 公司招聘会关联对象 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;
|
||||
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "公司id")
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
@Excel(name = "招聘会id")
|
||||
@ApiModelProperty("招聘会id")
|
||||
private Long jobFairId;
|
||||
|
||||
}
|
||||
187
ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java
Normal file
187
ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java
Normal file
@@ -0,0 +1,187 @@
|
||||
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.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.ruoyi.cms.domain.vo.CompanyVo;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.domain.entity.Company;
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 岗位对象 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;
|
||||
|
||||
@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;
|
||||
|
||||
@Excel(name = "学历要求 对应字典education")
|
||||
@ApiModelProperty("学历要求 对应字典education")
|
||||
private String education;
|
||||
|
||||
@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 String 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;
|
||||
|
||||
@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;
|
||||
|
||||
@ApiModelProperty("jobRow对应id")
|
||||
private Long rowId;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("公司规模")
|
||||
private String scale;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("行业分类")
|
||||
private String industry;
|
||||
|
||||
@ApiModelProperty("岗位分类")
|
||||
private String jobCategory;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("公司性质")
|
||||
private String companyNature;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("申请时间")
|
||||
private String applyTime;
|
||||
|
||||
@ApiModelProperty("是否有视频介绍")
|
||||
private Integer isExplain;
|
||||
|
||||
@ApiModelProperty("视频介绍URL")
|
||||
private String explainUrl;
|
||||
|
||||
@ApiModelProperty("视频封面URL")
|
||||
private String cover;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("薪酬")
|
||||
private String compensation;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("信用代码")
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty("岗位类型 0疆内 1疆外")
|
||||
private String jobType;
|
||||
|
||||
@ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 4零工 对应字段字典position_type")
|
||||
private String type;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("岗位联系人列表")
|
||||
private List<JobContact> jobContactList;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("附件列表")
|
||||
private List<File> filesList;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("公司信息")
|
||||
private CompanyVo companyVo;
|
||||
|
||||
@TableField(exist = false)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty("时间(足迹、投简历、收藏)")
|
||||
private String shareTime;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
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;
|
||||
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "岗位id")
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
@Excel(name = "匹配度")
|
||||
@ApiModelProperty("匹配度")
|
||||
private Long matchingDegree;
|
||||
|
||||
@ApiModelProperty("是否录用 0录用 2或null未录用")
|
||||
private String hire;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
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_collection")
|
||||
public class JobCollection extends BaseEntity
|
||||
{
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "岗位id")
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
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.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 岗位联系人
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-09-30 15:57:06
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("岗位联系人")
|
||||
@TableName("job_contact")
|
||||
public class JobContact extends BaseEntity {
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
/**
|
||||
* 岗位id
|
||||
*/
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
/**
|
||||
* 联系人
|
||||
*/
|
||||
@ApiModelProperty("联系人")
|
||||
private String contactPerson;
|
||||
/**
|
||||
* 联系人电话
|
||||
*/
|
||||
@ApiModelProperty("联系人电话")
|
||||
private String contactPersonPhone;
|
||||
/**
|
||||
* 职务
|
||||
*/
|
||||
@ApiModelProperty("职务")
|
||||
private String position;
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.entity.Company;
|
||||
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;
|
||||
|
||||
@TableId(value = "job_fair_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("招聘会id")
|
||||
private Long jobFairId;
|
||||
|
||||
@Excel(name = "招聘会名称")
|
||||
@ApiModelProperty("招聘会名称")
|
||||
private String name;
|
||||
|
||||
@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)
|
||||
@ApiModelProperty("公司列表")
|
||||
private List<Company> companyList;
|
||||
|
||||
@TableField(exist = false)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty("程序时间")
|
||||
private Date queryDate;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("是否收藏")
|
||||
public Integer isCollection;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
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;
|
||||
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "岗位id")
|
||||
@ApiModelProperty("岗位id")
|
||||
private Long jobId;
|
||||
|
||||
@Excel(name = "App用户id")
|
||||
@ApiModelProperty("App用户id")
|
||||
private Long userId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
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 io.swagger.annotations.ApiModelProperty;
|
||||
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;
|
||||
|
||||
@TableId(value = "notice_id",type = IdType.AUTO)
|
||||
private Long noticeId;
|
||||
|
||||
@ApiModelProperty("标题")
|
||||
private String title;
|
||||
|
||||
@ApiModelProperty("副标题")
|
||||
private String subTitle;
|
||||
|
||||
@ApiModelProperty("未读数量")
|
||||
private Integer notReadCount;
|
||||
|
||||
@ApiModelProperty("是否阅读 0未读 1已读")
|
||||
private String isRead;
|
||||
|
||||
@JsonFormat(pattern = "MM-dd")
|
||||
@ApiModelProperty("日期")
|
||||
private Date date;
|
||||
|
||||
@ApiModelProperty("通知类型 1系统通知(包括录用) 2职位上新")
|
||||
private String noticeType;
|
||||
|
||||
@ApiModelProperty("公告内容")
|
||||
private String noticeContent;
|
||||
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("业务id")
|
||||
private Long bussinessId;
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
@Data
|
||||
@TableName(value = "row_work")
|
||||
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,45 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
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 io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 敏感词库
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-10 10:42:16
|
||||
*/
|
||||
@Data
|
||||
@TableName("sensitive_word_data")
|
||||
public class SensitiveWordData extends BaseEntity {
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long id;
|
||||
/**
|
||||
* 敏感词
|
||||
*/
|
||||
@ExcelProperty(value = "敏感词", index = 0)
|
||||
@ApiModelProperty("敏感词")
|
||||
private String sensitiveWord;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型", index = 1)
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
|
||||
}
|
||||
@@ -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.core.domain.BaseEntity;
|
||||
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;
|
||||
@ApiModelProperty("时间")
|
||||
private String time;
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
@ApiModelProperty("名称")
|
||||
private String name;
|
||||
@ApiModelProperty("数据")
|
||||
private String data;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
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;
|
||||
|
||||
@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,56 @@
|
||||
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;
|
||||
|
||||
@TableId(value = "station_id",type = IdType.AUTO)
|
||||
@ApiModelProperty("id")
|
||||
private Long stationId;
|
||||
|
||||
@Excel(name = "地铁名称")
|
||||
@ApiModelProperty("地铁名称")
|
||||
private String stationName;
|
||||
|
||||
@Excel(name = "所属线路名称")
|
||||
@ApiModelProperty("所属线路名称")
|
||||
private String lineName;
|
||||
|
||||
@Excel(name = "线路id")
|
||||
@ApiModelProperty("线路id")
|
||||
private Long lineId;
|
||||
|
||||
@Excel(name = "纬度")
|
||||
@ApiModelProperty("纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
@Excel(name = "经度")
|
||||
@ApiModelProperty("经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
@ApiModelProperty("排序")
|
||||
private Integer stationOrder;
|
||||
|
||||
@ApiModelProperty("地址")
|
||||
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,58 @@
|
||||
package com.ruoyi.cms.domain.query;
|
||||
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
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:最新发布 3:最大薪资")
|
||||
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;
|
||||
|
||||
private String area;
|
||||
|
||||
/*** 用户角色app角色:0企业,1求职者,2网格员 3内部政府人员*/
|
||||
private String userType;
|
||||
}
|
||||
@@ -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,198 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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,17 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.AppSkill;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AppSkillVo extends AppSkill {
|
||||
|
||||
/**
|
||||
* 技能名称
|
||||
*/
|
||||
private String nameStr;
|
||||
/**
|
||||
* 技能等级
|
||||
*/
|
||||
private String levelStr;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户注册对象
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class AppUserLky
|
||||
{
|
||||
|
||||
@ApiModelProperty("技能列表")
|
||||
private List<AppSkillVo> appSkillsList;
|
||||
|
||||
@ApiModelProperty("当前职位名称")
|
||||
private List<String> jobTitles;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.entity.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;
|
||||
private String applyId;
|
||||
|
||||
@Excel(name = "公司名称", sort = 0)
|
||||
private String companyName;
|
||||
@Excel(name = "岗位名称", sort = 1)
|
||||
private String jobName;
|
||||
}
|
||||
@@ -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 com.ruoyi.common.core.domain.entity.CompanyContact;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class CompanyContactVo {
|
||||
|
||||
private List<CompanyContact> companyContactList;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.entity.CompanyContact;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司对象 company
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@Data
|
||||
public class CompanyVo implements Serializable
|
||||
{
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
@Excel(name = "单位名称")
|
||||
@ApiModelProperty("单位名称")
|
||||
private String name;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("公司描述")
|
||||
private String companyDescription;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("企业联系人列表")
|
||||
private List<CompanyContact> companyContactList;
|
||||
}
|
||||
@@ -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,18 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 消息条数
|
||||
*/
|
||||
@Data
|
||||
public class NoticeTotal {
|
||||
/**
|
||||
* 未读消息
|
||||
*/
|
||||
private Integer qbxx;
|
||||
/**
|
||||
* 全部未读
|
||||
*/
|
||||
private Integer wdxx;
|
||||
}
|
||||
@@ -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,64 @@
|
||||
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 = "4lFYn2yPsQymwGu8";
|
||||
String id = "LTAI5t9hhSqdDHqwH3RjgyYj";
|
||||
String secret = "ni5aW3vxrWouMwcGqJPfh9Uu56PBuv";
|
||||
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,142 @@
|
||||
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 lombok.Data;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.websocket.Session;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@Data
|
||||
public class SpeechRecognizerAI {
|
||||
private static final Logger logger = LoggerFactory.getLogger(SpeechRecognizerAI.class);
|
||||
private String appKey;
|
||||
private NlsClient client;
|
||||
private AccessToken accessToken;
|
||||
public SpeechRecognizerAI(String appKey, String id, String secret, String url) {
|
||||
this.appKey = appKey;
|
||||
|
||||
// 获取 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();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 获取当前有效的 AccessToken
|
||||
*
|
||||
* @param id 阿里云 AccessKey ID
|
||||
* @param secret 阿里云 AccessKey Secret
|
||||
* @return 返回申请到的 AccessToken 字符串,失败时返回 null
|
||||
*/
|
||||
public static String getAccessToken(String id, String secret) {
|
||||
try {
|
||||
AccessToken accessToken = new AccessToken(id, secret);
|
||||
accessToken.apply(); // 申请 token
|
||||
|
||||
if (accessToken.getToken() != null) {
|
||||
logger.info("成功获取 Token: {}, 过期时间: {}", accessToken.getToken(), accessToken.getExpireTime());
|
||||
return accessToken.getToken();
|
||||
} else {
|
||||
logger.error("get token fail:"+accessToken.getToken());
|
||||
return null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
logger.error("申请 Token 时发生网络错误: {}", e.getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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,31 @@
|
||||
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);
|
||||
|
||||
List<Job> selectAppReviewJobListJob(AppReviewJob appReviewJob);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.vo.AppSkillVo;
|
||||
import com.ruoyi.common.core.domain.entity.AppSkill;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户技能信息
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-21 12:22:09
|
||||
*/
|
||||
public interface AppSkillMapper extends BaseMapper<AppSkill> {
|
||||
|
||||
List<AppSkill> getList(AppSkill appSkill);
|
||||
|
||||
int batchInsert(List<AppSkill> list);
|
||||
|
||||
List<AppSkillVo> getUserSkillList(AppSkill appSkill);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.MyChart;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
List<AppUser> selectByJobId(Long jobId);
|
||||
|
||||
AppUser selectByOpenid(String openid);
|
||||
|
||||
int insertSysUserRole(Map<String,Object> map);
|
||||
|
||||
int insertSysUser(SysUser sysUser);
|
||||
|
||||
MyChart getMyTj(Long userId);
|
||||
}
|
||||
@@ -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,18 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.BussinessDictJobCategory;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 技能字典表
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-10-30 19:25:48
|
||||
*/
|
||||
public interface BussinessDictJobCategoryMapper {
|
||||
|
||||
List<BussinessDictJobCategory> getList(BussinessDictJobCategory bussinessDictJobCategory);
|
||||
}
|
||||
@@ -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,28 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.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);
|
||||
|
||||
List<AppUser> selectAppuserList(Long companyId);
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.common.core.domain.entity.CompanyContact;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司联系人
|
||||
*
|
||||
* @author
|
||||
* @email
|
||||
* @date 2025-09-30 15:57:06
|
||||
*/
|
||||
public interface CompanyContactMapper extends BaseMapper<CompanyContact> {
|
||||
|
||||
List<CompanyContact> getSelectList(CompanyContact companyContact);
|
||||
|
||||
int batchInsert(List<CompanyContact> list);
|
||||
|
||||
int batchUpdate(List<CompanyContact> list);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user