Compare commits
27 Commits
2616b60283
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ee26b01d0 | |||
| 4c7331427a | |||
| 1ed62647de | |||
| ef44b1a19b | |||
| d4683f1299 | |||
| 115f47118f | |||
| 802ea1fe76 | |||
| f65ca791b5 | |||
| d21a9cf882 | |||
| 8b3b7f63f9 | |||
| 9b9e80dc62 | |||
| 7752c74063 | |||
| f4730c60fb | |||
| d57ce9e3fc | |||
| 8988c52594 | |||
| ba3e66a3c4 | |||
| aa55276a81 | |||
| 8c5ec3e0b3 | |||
| c795e63e96 | |||
| 9281eb700b | |||
| 8cf753ad54 | |||
| 65487c073f | |||
| 4c28d07bc3 | |||
| a6d43c0bca | |||
| 070239d1d5 | |||
| 6680622a85 | |||
| 0eee50be78 |
@@ -3,6 +3,9 @@ package com.ruoyi.web.controller.system;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.ruoyi.common.annotation.BussinessLog;
|
||||||
|
import com.ruoyi.common.core.domain.model.RegisterBody;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
@@ -109,4 +112,16 @@ public class SysLoginController
|
|||||||
// 返回 "redirect:" 即可触发 302 重定向
|
// 返回 "redirect:" 即可触发 302 重定向
|
||||||
return "redirect:" + redirectUrl;
|
return "redirect:" + redirectUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存简历-重新返回token
|
||||||
|
*/
|
||||||
|
@ApiOperation("保存注册信息")
|
||||||
|
@PostMapping("/registerUser")
|
||||||
|
@BussinessLog(title = "保存简历")
|
||||||
|
public AjaxResult registerUser(@RequestBody RegisterBody registerBody)
|
||||||
|
{
|
||||||
|
String token=loginService.registerAppUser(registerBody);
|
||||||
|
return AjaxResult.success().put("token",token);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.ruoyi.common.annotation.BussinessLog;
|
|||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
@@ -133,4 +134,22 @@ public class AppCompanyController extends BaseController
|
|||||||
Company status = companyService.registerStatus();
|
Company status = companyService.registerStatus();
|
||||||
return AjaxResult.success(status);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,12 @@ package com.ruoyi.cms.controller.app;
|
|||||||
import com.ruoyi.cms.domain.ESJobDocument;
|
import com.ruoyi.cms.domain.ESJobDocument;
|
||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||||
|
import com.ruoyi.cms.service.ICompanyService;
|
||||||
import com.ruoyi.cms.service.IESJobSearchService;
|
import com.ruoyi.cms.service.IESJobSearchService;
|
||||||
import com.ruoyi.cms.service.IJobCollectionService;
|
import com.ruoyi.cms.service.IJobCollectionService;
|
||||||
import com.ruoyi.cms.service.IJobService;
|
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.annotation.BussinessLog;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
@@ -13,6 +16,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
|||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@@ -36,6 +40,10 @@ public class AppJobController extends BaseController
|
|||||||
private IJobCollectionService jobCollectionService;
|
private IJobCollectionService jobCollectionService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IESJobSearchService esJobSearchService;
|
private IESJobSearchService esJobSearchService;
|
||||||
|
@Autowired
|
||||||
|
private SensitiveWordChecker sensitiveWordChecker;
|
||||||
|
@Autowired
|
||||||
|
private ICompanyService companyService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询岗位列表
|
* 查询岗位列表
|
||||||
@@ -66,6 +74,9 @@ public class AppJobController extends BaseController
|
|||||||
@GetMapping("/recommend")
|
@GetMapping("/recommend")
|
||||||
public AjaxResult recommend(ESJobSearch esJobSearch)
|
public AjaxResult recommend(ESJobSearch esJobSearch)
|
||||||
{
|
{
|
||||||
|
if (RoleUtils.getAppCurrentUseridCard() != null) {
|
||||||
|
esJobSearch.setCode(RoleUtils.getAppCurrentUseridCard());
|
||||||
|
}
|
||||||
List<ESJobDocument> jobList = jobService.recommend(esJobSearch);
|
List<ESJobDocument> jobList = jobService.recommend(esJobSearch);
|
||||||
return success(jobList);
|
return success(jobList);
|
||||||
}
|
}
|
||||||
@@ -192,7 +203,34 @@ public class AppJobController extends BaseController
|
|||||||
@PostMapping("/publishJob")
|
@PostMapping("/publishJob")
|
||||||
public AjaxResult fix(@RequestBody Job job)
|
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);
|
jobService.publishJob(job);
|
||||||
return success();
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class AppUserController extends BaseController
|
|||||||
@ApiOperation("保存注册信息")
|
@ApiOperation("保存注册信息")
|
||||||
@PostMapping("/registerUser")
|
@PostMapping("/registerUser")
|
||||||
@BussinessLog(title = "保存简历")
|
@BussinessLog(title = "保存简历")
|
||||||
public AjaxResult saveResume(@RequestBody RegisterBody registerBody)
|
public AjaxResult registerUser(@RequestBody RegisterBody registerBody)
|
||||||
{
|
{
|
||||||
appUserService.registerAppUser(registerBody);
|
appUserService.registerAppUser(registerBody);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
|
|||||||
@@ -2,12 +2,15 @@ package com.ruoyi.cms.controller.cms;
|
|||||||
|
|
||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||||
|
import com.ruoyi.cms.service.ICompanyService;
|
||||||
import com.ruoyi.cms.service.IJobService;
|
import com.ruoyi.cms.service.IJobService;
|
||||||
|
import com.ruoyi.cms.util.RoleUtils;
|
||||||
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
|
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
|
||||||
import com.ruoyi.common.annotation.Anonymous;
|
import com.ruoyi.common.annotation.Anonymous;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.domain.entity.Company;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
@@ -19,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 岗位Controller
|
* 岗位Controller
|
||||||
@@ -36,6 +40,8 @@ public class CmsJobController extends BaseController
|
|||||||
private IJobService jobService;
|
private IJobService jobService;
|
||||||
@Autowired
|
@Autowired
|
||||||
SensitiveWordChecker sensitiveWordChecker;
|
SensitiveWordChecker sensitiveWordChecker;
|
||||||
|
@Autowired
|
||||||
|
private ICompanyService companyService;
|
||||||
/**
|
/**
|
||||||
* 查询岗位列表
|
* 查询岗位列表
|
||||||
*/
|
*/
|
||||||
@@ -44,6 +50,10 @@ public class CmsJobController extends BaseController
|
|||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo list(Job job)
|
public TableDataInfo list(Job job)
|
||||||
{
|
{
|
||||||
|
if (RoleUtils.isCompanyAdmin()) {
|
||||||
|
Company company = companyService.queryCodeCompany(RoleUtils.getCurrentUseridCard());
|
||||||
|
job.setCompanyId(Objects.nonNull(company) ? company.getCompanyId() : null);
|
||||||
|
}
|
||||||
startPage();
|
startPage();
|
||||||
List<Job> list = jobService.selectJobList(job);
|
List<Job> list = jobService.selectJobList(job);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.cms.controller.cms;
|
package com.ruoyi.cms.controller.cms;
|
||||||
|
|
||||||
|
|
||||||
|
import com.ruoyi.cms.util.RoleUtils;
|
||||||
import com.ruoyi.common.core.domain.entity.Company;
|
import com.ruoyi.common.core.domain.entity.Company;
|
||||||
import com.ruoyi.cms.service.ICompanyService;
|
import com.ruoyi.cms.service.ICompanyService;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
@@ -40,6 +41,9 @@ public class CompanyController extends BaseController
|
|||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo list(Company company)
|
public TableDataInfo list(Company company)
|
||||||
{
|
{
|
||||||
|
if (RoleUtils.isCompanyAdmin()) {
|
||||||
|
company.setCode(RoleUtils.getCurrentUseridCard());
|
||||||
|
}
|
||||||
startPage();
|
startPage();
|
||||||
List<Company> list = companyService.selectCompanyList(company);
|
List<Company> list = companyService.selectCompanyList(company);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
|
|||||||
@@ -4,9 +4,13 @@ import com.ruoyi.cms.domain.Job;
|
|||||||
import com.ruoyi.cms.domain.JobApply;
|
import com.ruoyi.cms.domain.JobApply;
|
||||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||||
import com.ruoyi.cms.service.IJobApplyService;
|
import com.ruoyi.cms.service.IJobApplyService;
|
||||||
|
import com.ruoyi.cms.util.RoleUtils;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
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.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -47,4 +51,18 @@ public class JobApplyController extends BaseController {
|
|||||||
ExcelUtil<CandidateVO> util = new ExcelUtil<CandidateVO>(CandidateVO.class);
|
ExcelUtil<CandidateVO> util = new ExcelUtil<CandidateVO>(CandidateVO.class);
|
||||||
util.exportExcel(response, list, "APP用户数据");
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,4 +146,7 @@ public class ESJobDocument
|
|||||||
|
|
||||||
@ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 对应字段字典position_type")
|
@ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 对应字段字典position_type")
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
|
@ApiModelProperty("信用代码")
|
||||||
|
private String code;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public class Job extends BaseEntity
|
|||||||
@ApiModelProperty("是否收藏 0为否 1为是")
|
@ApiModelProperty("是否收藏 0为否 1为是")
|
||||||
private Integer isCollection;
|
private Integer isCollection;
|
||||||
|
|
||||||
@ApiModelProperty("工作地点")
|
@ApiModelProperty("岗位描述")
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
@ApiModelProperty("是否发布 0未发布 1发布")
|
@ApiModelProperty("是否发布 0未发布 1发布")
|
||||||
@@ -163,10 +163,14 @@ public class Job extends BaseEntity
|
|||||||
@ApiModelProperty("岗位类型 0疆内 1疆外")
|
@ApiModelProperty("岗位类型 0疆内 1疆外")
|
||||||
private String jobType;
|
private String jobType;
|
||||||
|
|
||||||
@ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 对应字段字典position_type")
|
@ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 4零工 对应字段字典position_type")
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@ApiModelProperty("岗位联系人列表")
|
@ApiModelProperty("岗位联系人列表")
|
||||||
private List<JobContact> jobContactList;
|
private List<JobContact> jobContactList;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty("附件列表")
|
||||||
|
private List<File> filesList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,4 +25,6 @@ public interface CompanyMapper extends BaseMapper<Company>
|
|||||||
void updateJobCountOfCompany();
|
void updateJobCountOfCompany();
|
||||||
|
|
||||||
List<Company> label(@Param("companyNature") String companyNature, @Param("targ")String targ,@Param("companyName")String companyName);
|
List<Company> label(@Param("companyNature") String companyNature, @Param("targ")String targ,@Param("companyName")String companyName);
|
||||||
|
|
||||||
|
List<Company> selectLikeCompanyList(Company company);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import java.util.List;
|
|||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.cms.domain.JobApply;
|
import com.ruoyi.cms.domain.JobApply;
|
||||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 岗位申请Mapper接口
|
* 岗位申请Mapper接口
|
||||||
@@ -32,4 +33,6 @@ public interface JobApplyMapper extends BaseMapper<JobApply>
|
|||||||
HashMap<String,Integer> trendChart(JobApply jobApply);
|
HashMap<String,Integer> trendChart(JobApply jobApply);
|
||||||
|
|
||||||
List<CandidateVO> selectAppUserList(Job job);
|
List<CandidateVO> selectAppUserList(Job job);
|
||||||
|
|
||||||
|
List<CandidateVO> selectApplyJobUserList(AppUser appUser);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,4 +15,6 @@ import java.util.List;
|
|||||||
public interface JobContactMapper extends BaseMapper<JobContact> {
|
public interface JobContactMapper extends BaseMapper<JobContact> {
|
||||||
|
|
||||||
List<JobContact> getSelectList(JobContact jobContact);
|
List<JobContact> getSelectList(JobContact jobContact);
|
||||||
|
|
||||||
|
int batchInsert(List<JobContact> list);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import com.ruoyi.common.core.domain.entity.Company;
|
import com.ruoyi.common.core.domain.entity.Company;
|
||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.cms.domain.RowWork;
|
import com.ruoyi.cms.domain.RowWork;
|
||||||
@@ -48,4 +49,6 @@ public interface JobMapper extends BaseMapper<Job>
|
|||||||
void insertBatchRowWorkTmp(List<RowWork> batchList);
|
void insertBatchRowWorkTmp(List<RowWork> batchList);
|
||||||
|
|
||||||
VectorJob selectVectorJob(Long jobId);
|
VectorJob selectVectorJob(Long jobId);
|
||||||
|
|
||||||
|
List<AppUser> selectApplyJobUserList(Long jobId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,5 +56,5 @@ public interface IAppUserService
|
|||||||
|
|
||||||
AppUser selectByOpenid(String openid);
|
AppUser selectByOpenid(String openid);
|
||||||
|
|
||||||
public int registerAppUser(RegisterBody registerBody);
|
public AppUser registerAppUser(RegisterBody registerBody);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,4 +75,8 @@ public interface ICompanyService
|
|||||||
List<Company> approvalList(Company company);
|
List<Company> approvalList(Company company);
|
||||||
|
|
||||||
Company approval(Company company);
|
Company approval(Company company);
|
||||||
|
|
||||||
|
Company queryCodeCompany(String code);
|
||||||
|
|
||||||
|
List<Company> selectLikeCompanyList(Company company);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,4 +67,6 @@ public interface IESJobSearchService
|
|||||||
void updateJob(Long jobId);
|
void updateJob(Long jobId);
|
||||||
|
|
||||||
void deleteJob(Long jobId);
|
void deleteJob(Long jobId);
|
||||||
|
|
||||||
|
List<ESJobDocument> selectByIds(Long[] jobIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import java.util.List;
|
|||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.cms.domain.JobApply;
|
import com.ruoyi.cms.domain.JobApply;
|
||||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 岗位申请Service接口
|
* 岗位申请Service接口
|
||||||
@@ -62,4 +63,6 @@ public interface IJobApplyService
|
|||||||
HashMap<String,Integer> trendChart(JobApply jobApply);
|
HashMap<String,Integer> trendChart(JobApply jobApply);
|
||||||
|
|
||||||
List<CandidateVO> selectAppUserList(Job job);
|
List<CandidateVO> selectAppUserList(Job job);
|
||||||
|
|
||||||
|
List<CandidateVO> selectApplyJobUserList(AppUser appUser);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.ruoyi.cms.domain.Job;
|
|||||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||||
import com.ruoyi.cms.util.AppWechatEntity;
|
import com.ruoyi.cms.util.AppWechatEntity;
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -89,4 +90,6 @@ public interface IJobService
|
|||||||
List<ESJobDocument> littleVideoRandom(String uuid, Integer count,String jobTitle);
|
List<ESJobDocument> littleVideoRandom(String uuid, Integer count,String jobTitle);
|
||||||
|
|
||||||
void publishJob(Job job);
|
void publishJob(Job job);
|
||||||
|
|
||||||
|
List<AppUser> selectApplyJobUserList(Long jobId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import java.util.Map;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.ruoyi.cms.mapper.*;
|
import com.ruoyi.cms.mapper.*;
|
||||||
import com.ruoyi.cms.util.StringUtil;
|
import com.ruoyi.cms.util.StringUtil;
|
||||||
import com.ruoyi.common.core.domain.entity.JobTitle;
|
import com.ruoyi.common.core.domain.entity.*;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
||||||
import com.ruoyi.common.core.domain.model.RegisterBody;
|
import com.ruoyi.common.core.domain.model.RegisterBody;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||||
@@ -18,7 +18,6 @@ import com.ruoyi.common.utils.StringUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
|
||||||
import com.ruoyi.cms.service.IAppUserService;
|
import com.ruoyi.cms.service.IAppUserService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -58,6 +57,22 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
|||||||
List<JobTitle> jobs = jobTitleMapper.selectBatchIds(collect);
|
List<JobTitle> jobs = jobTitleMapper.selectBatchIds(collect);
|
||||||
appUser.setJobTitle(jobs.stream().map(JobTitle::getJobName).collect(Collectors.toList()));
|
appUser.setJobTitle(jobs.stream().map(JobTitle::getJobName).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
//查询企业信息
|
||||||
|
if("0".equals(appUser.getIsCompanyUser())){
|
||||||
|
Company company=companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getCode, appUser.getIdCard()).orderByDesc(Company::getUpdateTime).last("LIMIT 1"));
|
||||||
|
appUser.setCompany(company);
|
||||||
|
if(company!=null){
|
||||||
|
CompanyContact contact=new CompanyContact();
|
||||||
|
contact.setCompanyId(company.getCompanyId());
|
||||||
|
List<CompanyContact> companyContactList=companyContactMapper.getSelectList(contact);
|
||||||
|
company.setCompanyContactList(companyContactList);
|
||||||
|
}
|
||||||
|
}else if("1".equals(appUser.getIsCompanyUser())){
|
||||||
|
UserWorkExperiences workExperiences=new UserWorkExperiences();
|
||||||
|
workExperiences.setUserId(appUser.getUserId());
|
||||||
|
List<UserWorkExperiences> experiences =userWorkExperiencesMapper.getWorkExperiencesList(workExperiences);
|
||||||
|
appUser.setExperiencesList(experiences);
|
||||||
|
}
|
||||||
return appUser;
|
return appUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,15 +143,25 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int registerAppUser(RegisterBody registerBody) {
|
public AppUser registerAppUser(RegisterBody registerBody) {
|
||||||
AppUser appUser=registerBody.getAppUser();
|
AppUser appUser=registerBody.getAppUser();
|
||||||
appUser.setUserId(SiteSecurityUtils.getUserId());
|
System.out.println("userId================"+SiteSecurityUtils.getUserId());
|
||||||
|
if(SiteSecurityUtils.isLogin()){
|
||||||
|
AppUser appUserResult=appUserMapper.selectById(SiteSecurityUtils.getUserId());
|
||||||
|
if(appUser==null){
|
||||||
|
appUser=appUserResult;
|
||||||
|
}else{
|
||||||
|
appUser.setPhone(appUserResult.getPhone());
|
||||||
|
appUser.setUserId(appUserResult.getUserId());
|
||||||
|
}
|
||||||
|
}
|
||||||
//角色集合
|
//角色集合
|
||||||
Map mapUserRole=new HashMap<>();
|
Map mapUserRole=new HashMap<>();
|
||||||
switch (appUser.getIsCompanyUser()){
|
switch (appUser.getIsCompanyUser()){
|
||||||
case "0"://企业
|
case "0"://企业
|
||||||
if(registerBody.getCompany()!=null){
|
if(registerBody.getCompany()!=null){
|
||||||
Long companyId=registerBody.getCompany().getCompanyId();
|
Company company=registerBody.getCompany();
|
||||||
|
Long companyId=company.getCompanyId();
|
||||||
if(companyId==null){
|
if(companyId==null){
|
||||||
companyMapper.insert(registerBody.getCompany());
|
companyMapper.insert(registerBody.getCompany());
|
||||||
registerBody.getCompany().getCompanyContactList().forEach(it->{
|
registerBody.getCompany().getCompanyContactList().forEach(it->{
|
||||||
@@ -146,33 +171,43 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
|||||||
if(registerBody.getCompany().getCompanyContactList()!=null){
|
if(registerBody.getCompany().getCompanyContactList()!=null){
|
||||||
companyContactMapper.batchInsert(registerBody.getCompany().getCompanyContactList());
|
companyContactMapper.batchInsert(registerBody.getCompany().getCompanyContactList());
|
||||||
}
|
}
|
||||||
|
//保存app_user信息
|
||||||
|
appUser.setIdCard(company.getCode());
|
||||||
|
appUser.setName(company.getName());
|
||||||
}
|
}
|
||||||
mapUserRole.put("roleId",100);
|
mapUserRole.put("roleId",100);
|
||||||
break;
|
break;
|
||||||
default://求职者
|
default://求职者
|
||||||
if(registerBody.getExperiencesList()!=null){
|
if(registerBody.getExperiencesList()!=null){
|
||||||
|
registerBody.getExperiencesList().forEach(it->{
|
||||||
|
it.setUserId(SiteSecurityUtils.getUserId());
|
||||||
|
});
|
||||||
userWorkExperiencesMapper.batchInsert(registerBody.getExperiencesList());
|
userWorkExperiencesMapper.batchInsert(registerBody.getExperiencesList());
|
||||||
}
|
}
|
||||||
if(registerBody.getAppSkillsList()!=null){
|
if(registerBody.getAppSkillsList()!=null){
|
||||||
|
registerBody.getAppSkillsList().forEach(it->{
|
||||||
|
it.setUserId(SiteSecurityUtils.getUserId());
|
||||||
|
});
|
||||||
appSkillMapper.batchInsert(registerBody.getAppSkillsList());
|
appSkillMapper.batchInsert(registerBody.getAppSkillsList());
|
||||||
}
|
}
|
||||||
mapUserRole.put("roleId",1);
|
mapUserRole.put("roleId",1);
|
||||||
}
|
}
|
||||||
//保存sys_user
|
//保存sys_user
|
||||||
SysUser sysUser=new SysUser();
|
SysUser sysUser=new SysUser();
|
||||||
sysUser.setUserId(appUser.getUserId());
|
|
||||||
sysUser.setUserName(appUser.getPhone());
|
sysUser.setUserName(appUser.getPhone());
|
||||||
sysUser.setNickName(appUser.getName());
|
sysUser.setNickName(StringUtils.isEmpty(appUser.getName())?appUser.getPhone():appUser.getName());
|
||||||
sysUser.setPassword(SecurityUtils.encryptPassword("123456"));
|
sysUser.setPassword(SecurityUtils.encryptPassword("123456"));
|
||||||
sysUser.setPhonenumber(appUser.getPhone());
|
sysUser.setPhonenumber(appUser.getPhone());
|
||||||
sysUser.setSex(appUser.getSex());
|
sysUser.setSex(appUser.getSex());
|
||||||
sysUser.setStatus("0");
|
sysUser.setStatus("0");
|
||||||
sysUser.setLoginIp(appUser.getLoginIp());
|
sysUser.setLoginIp(appUser.getLoginIp());
|
||||||
sysUser.setLoginDate(appUser.getLoginDate());
|
sysUser.setLoginDate(appUser.getLoginDate());
|
||||||
|
sysUser.setIdCard(appUser.getIdCard());
|
||||||
appUserMapper.insertSysUser(sysUser);
|
appUserMapper.insertSysUser(sysUser);
|
||||||
//保存sys_user_role
|
//保存sys_user_role
|
||||||
mapUserRole.put("userId",appUser.getUserId());
|
mapUserRole.put("userId",appUser.getUserId());
|
||||||
appUserMapper.insertSysUserRole(mapUserRole);
|
appUserMapper.insertSysUserRole(mapUserRole);
|
||||||
return appUserMapper.updateById(appUser);
|
appUserMapper.updateById(appUser);
|
||||||
|
return appUser;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -296,4 +296,19 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
|
|||||||
return company1;
|
return company1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Company queryCodeCompany(String code) {
|
||||||
|
Company companyResult = companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getCode, code).orderByDesc(Company::getUpdateTime).last("LIMIT 1"));
|
||||||
|
if(companyResult!=null){
|
||||||
|
CompanyContact contact=new CompanyContact();
|
||||||
|
contact.setCompanyId(companyResult.getCompanyId());
|
||||||
|
List<CompanyContact> contacts=companyContactMapper.getSelectList(contact);
|
||||||
|
}
|
||||||
|
return companyResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Company> selectLikeCompanyList(Company company) {
|
||||||
|
return companyMapper.selectLikeCompanyList(company);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.cms.service.impl;
|
package com.ruoyi.cms.service.impl;
|
||||||
|
|
||||||
|
import com.ruoyi.cms.service.ICompanyService;
|
||||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import com.ruoyi.cms.domain.ESJobDocument;
|
import com.ruoyi.cms.domain.ESJobDocument;
|
||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
@@ -9,6 +10,7 @@ import com.ruoyi.cms.mapper.JobMapper;
|
|||||||
import com.ruoyi.cms.service.IESJobSearchService;
|
import com.ruoyi.cms.service.IESJobSearchService;
|
||||||
import com.ruoyi.cms.util.ListUtil;
|
import com.ruoyi.cms.util.ListUtil;
|
||||||
import com.ruoyi.cms.util.StringUtil;
|
import com.ruoyi.cms.util.StringUtil;
|
||||||
|
import com.ruoyi.common.core.domain.entity.Company;
|
||||||
import com.ruoyi.common.core.text.Convert;
|
import com.ruoyi.common.core.text.Convert;
|
||||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||||
@@ -42,6 +44,8 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AppUserServiceImpl appUserService;
|
private AppUserServiceImpl appUserService;
|
||||||
|
@Autowired
|
||||||
|
private ICompanyService iCompanyService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BussinessDictDataServiceImpl bussinessDictDataServicel;
|
private BussinessDictDataServiceImpl bussinessDictDataServicel;
|
||||||
@@ -178,6 +182,15 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
|
||||||
newSearch.setType(esJobSearch.getType());
|
newSearch.setType(esJobSearch.getType());
|
||||||
}
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getDescription())){
|
||||||
|
newSearch.setDescription(esJobSearch.getDescription());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
|
||||||
|
newSearch.setCompanyNature(esJobSearch.getCompanyNature());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getCode())){
|
||||||
|
newSearch.setCode(esJobSearch.getCode());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds);
|
LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds);
|
||||||
@@ -405,6 +418,15 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
|
||||||
wrapper.and(x->x.eq(ESJobDocument::getType,esJobSearch.getType()));
|
wrapper.and(x->x.eq(ESJobDocument::getType,esJobSearch.getType()));
|
||||||
}
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getDescription())){
|
||||||
|
wrapper.and(x->x.like(ESJobDocument::getDescription,esJobSearch.getDescription()));
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
|
||||||
|
wrapper.and(x->x.eq(ESJobDocument::getCompanyNature,esJobSearch.getCompanyNature()));
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getCode())){
|
||||||
|
wrapper.and(x->x.eq(ESJobDocument::getCode,esJobSearch.getCode()));
|
||||||
|
}
|
||||||
if(Objects.nonNull(esJobSearch.getOrder())){
|
if(Objects.nonNull(esJobSearch.getOrder())){
|
||||||
if(esJobSearch.getOrder()==1){
|
if(esJobSearch.getOrder()==1){
|
||||||
wrapper.orderByDesc(ESJobDocument::getIsHot);
|
wrapper.orderByDesc(ESJobDocument::getIsHot);
|
||||||
@@ -522,6 +544,12 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
public void updateJob(Long jobId) {
|
public void updateJob(Long jobId) {
|
||||||
ESJobDocument esJobDocument = new ESJobDocument();
|
ESJobDocument esJobDocument = new ESJobDocument();
|
||||||
Job job = jobMapper.selectById(jobId);
|
Job job = jobMapper.selectById(jobId);
|
||||||
|
if(job!=null){
|
||||||
|
if(job.getCompanyId()!=null){
|
||||||
|
Company company=iCompanyService.selectCompanyByCompanyId(job.getCompanyId());
|
||||||
|
job.setCode(company.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BeanUtils.copyBeanProp(esJobDocument, job);
|
BeanUtils.copyBeanProp(esJobDocument, job);
|
||||||
esJobDocument.setAppJobUrl("https://ks.zhaopinzao8dian.com/app#/packageA/pages/post/post?jobId="+ Base64.getEncoder().encodeToString(String.valueOf(job.getJobId()).getBytes()));
|
esJobDocument.setAppJobUrl("https://ks.zhaopinzao8dian.com/app#/packageA/pages/post/post?jobId="+ Base64.getEncoder().encodeToString(String.valueOf(job.getJobId()).getBytes()));
|
||||||
@@ -553,4 +581,10 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
esJobDocumentMapper.delete(lambdaEsQueryWrapper);
|
esJobDocumentMapper.delete(lambdaEsQueryWrapper);
|
||||||
esJobDocumentMapper.insert(esJobDocument);
|
esJobDocumentMapper.insert(esJobDocument);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<ESJobDocument> selectByIds(Long[] jobIds) {
|
||||||
|
LambdaEsQueryWrapper<ESJobDocument> wrapper = new LambdaEsQueryWrapper<>();
|
||||||
|
wrapper.in(ESJobDocument::getJobId,jobIds);
|
||||||
|
return esJobDocumentMapper.selectList(wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.ruoyi.cms.domain.query.MineJobQuery;
|
|||||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||||
import com.ruoyi.cms.mapper.*;
|
import com.ruoyi.cms.mapper.*;
|
||||||
import com.ruoyi.cms.service.IJobApplyService;
|
import com.ruoyi.cms.service.IJobApplyService;
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -127,4 +128,9 @@ public class JobApplyServiceImpl extends ServiceImpl<JobApplyMapper,JobApply> im
|
|||||||
public List<CandidateVO> selectAppUserList(Job job) {
|
public List<CandidateVO> selectAppUserList(Job job) {
|
||||||
return jobApplyMapper.selectAppUserList(job);
|
return jobApplyMapper.selectAppUserList(job);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CandidateVO> selectApplyJobUserList(AppUser appUser) {
|
||||||
|
return jobApplyMapper.selectApplyJobUserList(appUser);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.ruoyi.cms.domain.*;
|
import com.ruoyi.cms.domain.*;
|
||||||
|
import com.ruoyi.cms.domain.File;
|
||||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||||
import com.ruoyi.cms.mapper.*;
|
import com.ruoyi.cms.mapper.*;
|
||||||
@@ -16,6 +17,7 @@ import com.ruoyi.cms.service.*;
|
|||||||
import com.ruoyi.cms.util.*;
|
import com.ruoyi.cms.util.*;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.core.domain.TreeSelect;
|
import com.ruoyi.common.core.domain.TreeSelect;
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import com.ruoyi.common.core.domain.entity.Company;
|
import com.ruoyi.common.core.domain.entity.Company;
|
||||||
import com.ruoyi.common.core.domain.entity.JobTitle;
|
import com.ruoyi.common.core.domain.entity.JobTitle;
|
||||||
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
@@ -75,6 +77,8 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
private RedisCache redisCache;
|
private RedisCache redisCache;
|
||||||
@Autowired
|
@Autowired
|
||||||
private JobContactMapper jobContactMapper;
|
private JobContactMapper jobContactMapper;
|
||||||
|
@Autowired
|
||||||
|
private FileMapper fileMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新工作地址的经纬度信息
|
* 更新工作地址的经纬度信息
|
||||||
@@ -206,6 +210,14 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
if(contacts!=null){
|
if(contacts!=null){
|
||||||
job.setJobContactList(contacts);
|
job.setJobContactList(contacts);
|
||||||
}
|
}
|
||||||
|
//查询附件
|
||||||
|
File file=new File();
|
||||||
|
file.setBussinessId(jobId);
|
||||||
|
List<File> filesList=fileMapper.selectFileList(file);
|
||||||
|
if(filesList!=null){
|
||||||
|
job.setFilesList(filesList);
|
||||||
|
}
|
||||||
|
|
||||||
return job;
|
return job;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -784,6 +796,17 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
// }
|
// }
|
||||||
// job.setCompanyId(company.getCompanyId());
|
// job.setCompanyId(company.getCompanyId());
|
||||||
jobMapper.insert(job);
|
jobMapper.insert(job);
|
||||||
|
if(job.getJobContactList()!=null){
|
||||||
|
job.getJobContactList().forEach(it->{
|
||||||
|
it.setJobId(job.getJobId());
|
||||||
|
});
|
||||||
|
jobContactMapper.batchInsert(job.getJobContactList());
|
||||||
|
}
|
||||||
iesJobSearchService.updateJob(job.getJobId());
|
iesJobSearchService.updateJob(job.getJobId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AppUser> selectApplyJobUserList(Long jobId) {
|
||||||
|
return jobMapper.selectApplyJobUserList(jobId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package com.ruoyi.cms.util;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||||
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断是否企业用户
|
||||||
|
*/
|
||||||
|
public class RoleUtils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证用户角色是否是企业用户
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean isCompanyAdmin() {
|
||||||
|
// 先判断用户是否登录
|
||||||
|
if (!SecurityUtils.isLogin()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 获取当前登录用户的角色列表,判断是否包含企业管理员角色ID
|
||||||
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
|
return loginUser.getUser().getRoles().stream()
|
||||||
|
.anyMatch(role -> StringUtil.COMPANY_ADMIN_ROLE_KEY.equals(role.getRoleId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取身份证或统一信用代码
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getCurrentUseridCard() {
|
||||||
|
LoginUser loginUser = SecurityUtils.getLoginUser(); // 已包含登录校验
|
||||||
|
SysUser sysUser = loginUser.getUser();
|
||||||
|
if (sysUser == null) {
|
||||||
|
throw new IllegalArgumentException("用户信息为空,无法获取身份证号");
|
||||||
|
}
|
||||||
|
return sysUser.getIdCard();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取App用户身份证或统一信用代码
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getAppCurrentUseridCard(){
|
||||||
|
if (!SiteSecurityUtils.isLogin()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
LoginSiteUser loginSiteUser = SiteSecurityUtils.getLoginUser();
|
||||||
|
AppUser appUser = loginSiteUser.getUser();
|
||||||
|
if (appUser == null) {
|
||||||
|
throw new IllegalArgumentException("用户信息为空,无法获取身份证号"); // 用户信息为空仍抛异常,避免空指针
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("0".equals(appUser.getIsCompanyUser())) {
|
||||||
|
return appUser.getIdCard();
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,9 @@ import java.util.Objects;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class StringUtil {
|
public class StringUtil {
|
||||||
|
|
||||||
|
public static final Long COMPANY_ADMIN_ROLE_KEY = 100L;
|
||||||
|
|
||||||
public static Boolean isEmptyOrNull(String s){
|
public static Boolean isEmptyOrNull(String s){
|
||||||
if(Objects.isNull(s)){return true;}
|
if(Objects.isNull(s)){return true;}
|
||||||
return s.isEmpty();
|
return s.isEmpty();
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ public class WechatUtil {
|
|||||||
/**
|
/**
|
||||||
* 生成signature
|
* 生成signature
|
||||||
**/
|
**/
|
||||||
private static String appid = "wxee0d0655e464f184";
|
private static String appid = "wx9d1cbc11c8c40ba7";
|
||||||
private static String secret = "38a71cb90ea12c6b2eee4434ae7932cf";
|
private static String secret = "38e87cf6251945446e8ac091a0ba9ab2";
|
||||||
public AppWechatEntity sign(String url) {
|
public AppWechatEntity sign(String url) {
|
||||||
Map<String, String> ret = new HashMap();
|
Map<String, String> ret = new HashMap();
|
||||||
String nonceStr = create_nonce_str();
|
String nonceStr = create_nonce_str();
|
||||||
|
|||||||
@@ -29,10 +29,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="jobTitleId" column="job_title_id" />
|
<result property="jobTitleId" column="job_title_id" />
|
||||||
<result property="isRecommend" column="is_recommend" />
|
<result property="isRecommend" column="is_recommend" />
|
||||||
<result property="idCard" column="id_card" />
|
<result property="idCard" column="id_card" />
|
||||||
|
<result property="workExperience" column="work_experience" />
|
||||||
|
<result property="isCompanyUser" column="is_company_user" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectAppUserVo">
|
<sql id="selectAppUserVo">
|
||||||
select user_id, name, age, sex, birth_date, education, political_affiliation, phone, avatar, salary_min, salary_max, area, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark,job_title_id,is_recommend,id_card from app_user
|
select user_id, name, age, sex, birth_date, education, political_affiliation, phone, avatar, salary_min, salary_max, area, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark,job_title_id,is_recommend,id_card,work_experience,is_company_user from app_user
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectAppUserList" parameterType="AppUser" resultMap="AppUserResult">
|
<select id="selectAppUserList" parameterType="AppUser" resultMap="AppUserResult">
|
||||||
@@ -64,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectByOpenid" resultType="com.ruoyi.common.core.domain.entity.AppUser">
|
<select id="selectByOpenid" resultType="com.ruoyi.common.core.domain.entity.AppUser">
|
||||||
SELECT * FROM app_user WHERE DEL_FLAG = '0' and openid=#{openid} LIMIT 1
|
<include refid="selectAppUserVo"/> WHERE DEL_FLAG = '0' and openid=#{openid} LIMIT 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertSysUserRole" parameterType="java.util.Map">
|
<insert id="insertSysUserRole" parameterType="java.util.Map">
|
||||||
|
|||||||
@@ -31,10 +31,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="notPassReason" column="not_pass_reason" />
|
<result property="notPassReason" column="not_pass_reason" />
|
||||||
<result property="registeredAddress" column="registered_address" />
|
<result property="registeredAddress" column="registered_address" />
|
||||||
<result property="isAbnormal" column="is_abnormal" />
|
<result property="isAbnormal" column="is_abnormal" />
|
||||||
|
<result property="enterpriseType" column="enterprise_type" />
|
||||||
|
<result property="isImpCompany" column="is_imp_company" />
|
||||||
|
<result property="impCompanyType" column="imp_company_type" />
|
||||||
|
<result property="legalPerson" column="legal_person" />
|
||||||
|
<result property="legalIdCard" column="legal_id_card" />
|
||||||
|
<result property="legalPhone" column="legal_phone" />
|
||||||
|
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectCompanyVo">
|
<sql id="selectCompanyVo">
|
||||||
select company_id, name, location, industry, scale, del_flag, create_by, create_time, update_by, update_time, remark,code,description,nature,total_recruitment,registered_address,contact_person,contact_person_phone,is_abnormal,not_pass_reason,status,case when status='2' then update_time else null end reject_time from company
|
select company_id, name, location, industry, scale, del_flag, create_by, create_time, update_by, update_time, remark,code,description,nature,total_recruitment,registered_address,contact_person,contact_person_phone,is_abnormal,not_pass_reason,status,case when status='2' then update_time else null end reject_time,is_imp_company,imp_company_type,enterprise_type,legal_person,legal_id_card,legal_phone from company
|
||||||
</sql>
|
</sql>
|
||||||
<insert id="batchInsert" parameterType="java.util.List">
|
<insert id="batchInsert" parameterType="java.util.List">
|
||||||
INSERT INTO company (
|
INSERT INTO company (
|
||||||
@@ -82,4 +89,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</if>)
|
</if>)
|
||||||
<if test="companyName != null and companyName != ''"> and name like concat('%',#{companyName},'%')</if>
|
<if test="companyName != null and companyName != ''"> and name like concat('%',#{companyName},'%')</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectLikeCompanyList" parameterType="Company" resultMap="CompanyResult">
|
||||||
|
<include refid="selectCompanyVo"/>
|
||||||
|
<where> del_flag = '0'
|
||||||
|
<if test="name != null and name != ''"> and name like concat('%', cast(#{name, jdbcType=VARCHAR} as varchar), '%')</if>
|
||||||
|
<if test="location != null and location != ''"> and location = #{location}</if>
|
||||||
|
<if test="industry != null and industry != ''"> and industry = #{industry}</if>
|
||||||
|
<if test="scale != null and scale != ''"> and scale = #{scale}</if>
|
||||||
|
<if test="nature != null and nature != ''"> and nature = #{nature}</if>
|
||||||
|
<if test="code != null and code != ''"> and code = #{code}</if>
|
||||||
|
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||||
|
</where>
|
||||||
|
LIMIT 50
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -101,4 +101,19 @@
|
|||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectApplyJobUserList" parameterType="com.ruoyi.common.core.domain.entity.AppUser" resultType="com.ruoyi.cms.domain.vo.CandidateVO">
|
||||||
|
select b.job_title jobName,l.name companyName,e.* from job_apply a
|
||||||
|
INNER join job b on a.job_id=b.job_id and b.del_flag='0'
|
||||||
|
INNER join app_user e on a.user_id =e.user_id and e.del_flag='0'
|
||||||
|
INNER join company l on b.company_id =l.company_id and l.del_flag='0'
|
||||||
|
where a.del_flag='0'
|
||||||
|
<if test="company != null and company.jobTitle != null and company.jobTitle != ''"> and b.job_title like concat('%', cast(#{company.jobTitle, jdbcType=VARCHAR} as varchar), '%')</if>
|
||||||
|
<if test="company != null and company.education != null and company.education != ''"> and b.education = #{company.education}</if>
|
||||||
|
<if test="company != null and company.experience != null and company.experience != ''"> and b.experience = #{company.experience}</if>
|
||||||
|
<if test="company != null and company.companyName != null and company.companyName != ''"> and b.company_name like concat('%', cast(#{company.companyName, jdbcType=VARCHAR} as varchar), '%')</if>
|
||||||
|
<if test="company != null and company.companyId != null "> and b.company_id = #{company.companyId}</if>
|
||||||
|
<if test="company != null and company.code != null "> and l.code =#{company.code}</if>
|
||||||
|
<if test="name != null and name != '' "> and b.job_title like concat('%', cast(#{name, jdbcType=VARCHAR} as varchar), '%')</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -42,4 +42,17 @@
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<insert id="batchInsert" parameterType="java.util.List">
|
||||||
|
INSERT INTO job_contact (
|
||||||
|
job_id, contact_person, contact_person_phone,position,
|
||||||
|
create_by, create_time, del_flag,remark
|
||||||
|
) VALUES
|
||||||
|
<foreach collection="list" item="item" separator=",">
|
||||||
|
(
|
||||||
|
#{item.jobId}, #{item.contactPerson}, #{item.contactPersonPhone},#{item.position},
|
||||||
|
#{item.createBy}, #{item.createTime}, #{item.delFlag},#{item.remark}
|
||||||
|
)
|
||||||
|
</foreach>
|
||||||
|
</insert>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -215,7 +215,7 @@
|
|||||||
)
|
)
|
||||||
</select>
|
</select>
|
||||||
<select id="selectAllJob" resultType="com.ruoyi.cms.domain.Job">
|
<select id="selectAllJob" resultType="com.ruoyi.cms.domain.Job">
|
||||||
SELECT j.*,c.industry,c.scale,c.nature as company_nature FROM job as j
|
SELECT j.*,c.industry,c.scale,c.nature as company_nature,c.code FROM job as j
|
||||||
left join company as c on c.company_id = j.company_id limit #{offset},#{batchSize}
|
left join company as c on c.company_id = j.company_id limit #{offset},#{batchSize}
|
||||||
</select>
|
</select>
|
||||||
<select id="selectAllInsertRowWork" resultType="com.ruoyi.cms.domain.RowWork">
|
<select id="selectAllInsertRowWork" resultType="com.ruoyi.cms.domain.RowWork">
|
||||||
@@ -254,4 +254,13 @@
|
|||||||
left join qd.bussiness_dict_data as ac on ac.dict_type = 'scale' and ac.dict_value = c.scale
|
left join qd.bussiness_dict_data as ac on ac.dict_type = 'scale' and ac.dict_value = c.scale
|
||||||
where job_id =#{jobId}
|
where job_id =#{jobId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<sql id="selectAppUserResult">
|
||||||
|
select a.user_id, a.name, a.age, a.sex, a.birth_date, a.education, a.political_affiliation, a.phone, a.avatar, a.salary_min, a.salary_max, a.area, a.status, a.del_flag, a.login_ip, a.login_date, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,a.job_title_id,a.is_recommend,a.id_card,a.work_experience,a.is_company_user from job_apply e
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectApplyJobUserList" resultType="com.ruoyi.common.core.domain.entity.AppUser">
|
||||||
|
<include refid="selectAppUserResult"/>inner join app_user a on e.user_id =a.user_id and a.del_flag='0'
|
||||||
|
where e.del_flag='0' and e.job_id=#{jobId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -127,4 +127,15 @@ public class AppUser extends BaseEntity
|
|||||||
|
|
||||||
@ApiModelProperty("民族")
|
@ApiModelProperty("民族")
|
||||||
private String nation;
|
private String nation;
|
||||||
|
|
||||||
|
@ApiModelProperty("工作经验")
|
||||||
|
private String workExperience;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty("公司信息")
|
||||||
|
private Company company;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty("工作经历列表")
|
||||||
|
private List<UserWorkExperiences> experiencesList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class Company extends BaseEntity
|
|||||||
@ApiModelProperty("单位介绍")
|
@ApiModelProperty("单位介绍")
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
@Excel(name = "性质")
|
@Excel(name = "性质-已改为企业类型")
|
||||||
@ApiModelProperty("性质")
|
@ApiModelProperty("性质")
|
||||||
private String nature;
|
private String nature;
|
||||||
|
|
||||||
@@ -111,4 +111,16 @@ public class Company extends BaseEntity
|
|||||||
|
|
||||||
@ApiModelProperty("本地重点发展产业")
|
@ApiModelProperty("本地重点发展产业")
|
||||||
private String impCompanyType;
|
private String impCompanyType;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否是就业见习基地 0是 1否")
|
||||||
|
private String enterpriseType;
|
||||||
|
|
||||||
|
@ApiModelProperty("法人姓名")
|
||||||
|
private String legalPerson;
|
||||||
|
|
||||||
|
@ApiModelProperty("法人身份证")
|
||||||
|
private String legalIdCard;
|
||||||
|
|
||||||
|
@ApiModelProperty("法人联系方式")
|
||||||
|
private String legalPhone;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,9 @@ public class SysUser extends BaseEntity
|
|||||||
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
|
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
|
||||||
private Date loginDate;
|
private Date loginDate;
|
||||||
|
|
||||||
|
@Excel(name = "身份证/信用代码")
|
||||||
|
private String idCard;
|
||||||
|
|
||||||
/** 部门对象 */
|
/** 部门对象 */
|
||||||
@Excels({
|
@Excels({
|
||||||
@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
|
@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
|
||||||
@@ -297,6 +300,14 @@ public class SysUser extends BaseEntity
|
|||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getIdCard() {
|
||||||
|
return idCard;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdCard(String idCard) {
|
||||||
|
this.idCard = idCard;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
@@ -319,6 +330,7 @@ public class SysUser extends BaseEntity
|
|||||||
.append("updateTime", getUpdateTime())
|
.append("updateTime", getUpdateTime())
|
||||||
.append("remark", getRemark())
|
.append("remark", getRemark())
|
||||||
.append("dept", getDept())
|
.append("dept", getDept())
|
||||||
|
.append("idCard", getIdCard())
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import com.ruoyi.common.core.domain.AjaxResult;
|
|||||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import com.ruoyi.common.core.domain.model.LoginBody;
|
import com.ruoyi.common.core.domain.model.LoginBody;
|
||||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||||
|
import com.ruoyi.common.core.domain.model.RegisterBody;
|
||||||
|
import com.ruoyi.common.utils.*;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
import org.springframework.security.authentication.BadCredentialsException;
|
import org.springframework.security.authentication.BadCredentialsException;
|
||||||
@@ -28,9 +30,6 @@ import com.ruoyi.common.exception.user.CaptchaException;
|
|||||||
import com.ruoyi.common.exception.user.CaptchaExpireException;
|
import com.ruoyi.common.exception.user.CaptchaExpireException;
|
||||||
import com.ruoyi.common.exception.user.UserNotExistsException;
|
import com.ruoyi.common.exception.user.UserNotExistsException;
|
||||||
import com.ruoyi.common.exception.user.UserPasswordNotMatchException;
|
import com.ruoyi.common.exception.user.UserPasswordNotMatchException;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
|
||||||
import com.ruoyi.common.utils.MessageUtils;
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
|
||||||
import com.ruoyi.common.utils.ip.IpUtils;
|
import com.ruoyi.common.utils.ip.IpUtils;
|
||||||
import com.ruoyi.framework.manager.AsyncManager;
|
import com.ruoyi.framework.manager.AsyncManager;
|
||||||
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
||||||
@@ -256,9 +255,15 @@ public class SysLoginService
|
|||||||
//验证是否登录过
|
//验证是否登录过
|
||||||
AppUser existingUser=appUserService.selectByOpenid(openid);
|
AppUser existingUser=appUserService.selectByOpenid(openid);
|
||||||
if(existingUser!=null){
|
if(existingUser!=null){
|
||||||
|
if(StringUtils.isEmpty(existingUser.getIsCompanyUser())){
|
||||||
|
existingUser.setIsCompanyUser(dto.getUserType());
|
||||||
|
appUserService.updateAppUser(existingUser);
|
||||||
|
}
|
||||||
String token = loginUserIdApp(existingUser);
|
String token = loginUserIdApp(existingUser);
|
||||||
ajax.put(Constants.TOKEN, token);
|
ajax.put(Constants.TOKEN, token);
|
||||||
ajax.put("isNewUser", false);
|
ajax.put("isNewUser", false);
|
||||||
|
ajax.put("idCard",existingUser.getIdCard());
|
||||||
|
ajax.put("isCompanyUser",existingUser.getIsCompanyUser());
|
||||||
return ajax;
|
return ajax;
|
||||||
}else {
|
}else {
|
||||||
JSONObject phoneInfo = wechatUtil.decryptPhoneNumber(dto.getEncryptedData(), sessionKey, dto.getIv());
|
JSONObject phoneInfo = wechatUtil.decryptPhoneNumber(dto.getEncryptedData(), sessionKey, dto.getIv());
|
||||||
@@ -269,23 +274,42 @@ public class SysLoginService
|
|||||||
|
|
||||||
// 3. 检查手机号是否已被绑定
|
// 3. 检查手机号是否已被绑定
|
||||||
AppUser existUser = appUserService.getPhone(phone);
|
AppUser existUser = appUserService.getPhone(phone);
|
||||||
|
String token="";
|
||||||
|
boolean isNewUser=false;
|
||||||
if (existUser != null) {
|
if (existUser != null) {
|
||||||
return AjaxResult.error("该手机号已注册");
|
existUser.setOpenid(openid);
|
||||||
|
appUserService.updateAppUser(existUser);
|
||||||
|
// 5. 生成系统令牌
|
||||||
|
token = loginUserIdApp(existUser);
|
||||||
|
ajax.put("idCard",existUser.getIdCard());
|
||||||
|
ajax.put("isCompanyUser",existUser.getIsCompanyUser());
|
||||||
|
}else{
|
||||||
|
// 4. 创建用户并存储所有信息
|
||||||
|
AppUser appUser = new AppUser();
|
||||||
|
appUser.setOpenid(openid);
|
||||||
|
appUser.setUnionid(unionid);
|
||||||
|
appUser.setPhone(phone);
|
||||||
|
appUser.setIsCompanyUser(dto.getUserType());//保存角色
|
||||||
|
appUserService.insertAppUser(appUser);
|
||||||
|
// 5. 生成系统令牌
|
||||||
|
token = loginUserIdApp(appUser);
|
||||||
|
isNewUser=true;
|
||||||
|
ajax.put("idCard",null);
|
||||||
|
ajax.put("isCompanyUser",dto.getUserType());
|
||||||
}
|
}
|
||||||
|
ajax.put("isNewUser", isNewUser);
|
||||||
// 4. 创建用户并存储所有信息
|
|
||||||
AppUser appUser = new AppUser();
|
|
||||||
appUser.setOpenid(openid);
|
|
||||||
appUser.setUnionid(unionid);
|
|
||||||
appUser.setPhone(phone);
|
|
||||||
appUser.setIsCompanyUser(dto.getUserType());//保存角色
|
|
||||||
appUserService.insertAppUser(appUser);
|
|
||||||
|
|
||||||
// 5. 生成系统令牌
|
|
||||||
String token = loginUserIdApp(appUser);
|
|
||||||
ajax.put(Constants.TOKEN, token);
|
ajax.put(Constants.TOKEN, token);
|
||||||
ajax.put("isNewUser", true);
|
|
||||||
return ajax;
|
return ajax;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册
|
||||||
|
* @param registerBody
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String registerAppUser(RegisterBody registerBody) {
|
||||||
|
AppUser appUser=appUserService.registerAppUser(registerBody);
|
||||||
|
return loginUserIdApp(appUser);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="updateBy" column="update_by" />
|
<result property="updateBy" column="update_by" />
|
||||||
<result property="updateTime" column="update_time" />
|
<result property="updateTime" column="update_time" />
|
||||||
<result property="remark" column="remark" />
|
<result property="remark" column="remark" />
|
||||||
|
<result property="idCard" column="id_card" />
|
||||||
<association property="dept" javaType="SysDept" resultMap="deptResult" />
|
<association property="dept" javaType="SysDept" resultMap="deptResult" />
|
||||||
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
|
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
@@ -49,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<sql id="selectUserVo">
|
<sql id="selectUserVo">
|
||||||
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||||
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
||||||
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
|
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.id_card
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
left join sys_user_role ur on u.user_id = ur.user_id
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -57,20 +58,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
|
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
|
||||||
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
|
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader,u.id_card from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
where u.del_flag = '0'
|
where u.del_flag = '0'
|
||||||
<if test="userId != null and userId != 0">
|
<if test="userId != null and userId != 0">
|
||||||
AND u.user_id = #{userId}
|
AND u.user_id = #{userId}
|
||||||
</if>
|
</if>
|
||||||
<if test="userName != null and userName != ''">
|
<if test="userName != null and userName != ''">
|
||||||
AND u.user_name like concat('%', #{userName}, '%')
|
AND u.user_name like concat('%', CAST(#{userName} AS VARCHAR), '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="status != null and status != ''">
|
<if test="status != null and status != ''">
|
||||||
AND u.status = #{status}
|
AND u.status = #{status}
|
||||||
</if>
|
</if>
|
||||||
<if test="phonenumber != null and phonenumber != ''">
|
<if test="phonenumber != null and phonenumber != ''">
|
||||||
AND u.phonenumber like concat('%', #{phonenumber}, '%')
|
AND u.phonenumber like concat('%', CAST(#{phonenumber} AS VARCHAR), '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
|
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
|
||||||
AND date_format(u.create_time,'%Y%m%d') >= date_format(#{params.beginTime},'%Y%m%d')
|
AND date_format(u.create_time,'%Y%m%d') >= date_format(#{params.beginTime},'%Y%m%d')
|
||||||
@@ -81,12 +82,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="deptId != null and deptId != 0">
|
<if test="deptId != null and deptId != 0">
|
||||||
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
|
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
|
||||||
</if>
|
</if>
|
||||||
|
<if test="idCard != null and idCard != ''">
|
||||||
|
AND u.id_card = #{idCard}
|
||||||
|
</if>
|
||||||
<!-- 数据范围过滤 -->
|
<!-- 数据范围过滤 -->
|
||||||
${params.dataScope}
|
${params.dataScope}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
||||||
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
|
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time,id_card
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
left join sys_user_role ur on u.user_id = ur.user_id
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -98,12 +102,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="phonenumber != null and phonenumber != ''">
|
<if test="phonenumber != null and phonenumber != ''">
|
||||||
AND u.phonenumber like concat('%', #{phonenumber}, '%')
|
AND u.phonenumber like concat('%', #{phonenumber}, '%')
|
||||||
</if>
|
</if>
|
||||||
|
<if test="idCard != null and idCard != ''">
|
||||||
|
AND u.id_card =#{idCard}
|
||||||
|
</if>
|
||||||
<!-- 数据范围过滤 -->
|
<!-- 数据范围过滤 -->
|
||||||
${params.dataScope}
|
${params.dataScope}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
||||||
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
|
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time,u.id_card
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
left join sys_user_role ur on u.user_id = ur.user_id
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -116,6 +123,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="phonenumber != null and phonenumber != ''">
|
<if test="phonenumber != null and phonenumber != ''">
|
||||||
AND u.phonenumber like concat('%', #{phonenumber}, '%')
|
AND u.phonenumber like concat('%', #{phonenumber}, '%')
|
||||||
</if>
|
</if>
|
||||||
|
<if test="idCard != null and idCard != ''">
|
||||||
|
AND u.id_card =#{idCard}
|
||||||
|
</if>
|
||||||
<!-- 数据范围过滤 -->
|
<!-- 数据范围过滤 -->
|
||||||
${params.dataScope}
|
${params.dataScope}
|
||||||
</select>
|
</select>
|
||||||
@@ -159,6 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="status != null and status != ''">status,</if>
|
<if test="status != null and status != ''">status,</if>
|
||||||
<if test="createBy != null and createBy != ''">create_by,</if>
|
<if test="createBy != null and createBy != ''">create_by,</if>
|
||||||
<if test="remark != null and remark != ''">remark,</if>
|
<if test="remark != null and remark != ''">remark,</if>
|
||||||
|
<if test="idCard != null and idCard != ''">id_card,</if>
|
||||||
create_time
|
create_time
|
||||||
)values(
|
)values(
|
||||||
<if test="userId != null and userId != ''">#{userId},</if>
|
<if test="userId != null and userId != ''">#{userId},</if>
|
||||||
@@ -173,6 +184,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="status != null and status != ''">#{status},</if>
|
<if test="status != null and status != ''">#{status},</if>
|
||||||
<if test="createBy != null and createBy != ''">#{createBy},</if>
|
<if test="createBy != null and createBy != ''">#{createBy},</if>
|
||||||
<if test="remark != null and remark != ''">#{remark},</if>
|
<if test="remark != null and remark != ''">#{remark},</if>
|
||||||
|
<if test="idCard != null and idCard != ''">#{idCard},</if>
|
||||||
sysdate()
|
sysdate()
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
@@ -193,6 +205,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="loginDate != null">login_date = #{loginDate},</if>
|
<if test="loginDate != null">login_date = #{loginDate},</if>
|
||||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
||||||
<if test="remark != null">remark = #{remark},</if>
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
<if test="idCard != null">id_card = #{idCard},</if>
|
||||||
update_time = sysdate()
|
update_time = sysdate()
|
||||||
</set>
|
</set>
|
||||||
where user_id = #{userId}
|
where user_id = #{userId}
|
||||||
|
|||||||
Reference in New Issue
Block a user