diff --git a/buildAndStart.sh b/buildAndStart.sh
index cbaa5ec..26f111a 100644
--- a/buildAndStart.sh
+++ b/buildAndStart.sh
@@ -7,7 +7,7 @@ JAR_PATH=${DES_PATH}/ruoyi-admin/target/ruoyi-admin.jar
LOG_PATH=${DES_PATH}/logs
LOG_FILE=${LOG_PATH}/backend.log
BACK_LOG=${LOG_PATH}/back/backend-info.log
-MODEL_NAME=backend
+MODEL_NAME=${JAR_PATH}
PROFILE=dev
# JVM配置
@@ -32,37 +32,77 @@ __red() {
}
__kill() {
- local process_name=$1
- PID=$(ps -ef | grep "${process_name}.jar" | grep -v grep | awk '{print $2}' | xargs)
+ local jar_path="$1"
local sleep_seconds=10
local cur_sleep_second=1
+ local pids=()
- if [[ -z "$PID" ]]; then
- __green "进程 ${process_name} 未运行"
+ # 使用临时文件或直接遍历 jps 输出(避免进程替换)
+ jps -l 2>/dev/null | while read -r pid main_class; do
+ if [ "$main_class" = "$jar_path" ]; then
+ echo "$pid"
+ fi
+ done > /tmp/ruoyi_pids.$$
+
+ # 读取匹配的 PID 到数组(在当前 shell 中)
+ while IFS= read -r pid; do
+ [ -n "$pid" ] && pids+=("$pid")
+ done < /tmp/ruoyi_pids.$$
+
+ # 清理临时文件
+ rm -f /tmp/ruoyi_pids.$$
+
+ if [ ${#pids[@]} -eq 0 ]; then
+ __green "未找到运行中的进程: $jar_path"
return 0
fi
- while [[ -n "$PID" && "$sleep_seconds" -ge "$cur_sleep_second" ]]; do
- __green "尝试kill PID: ${PID}"
+ __green "找到 ${#pids[@]} 个匹配进程: ${pids[*]}"
- if [ "$sleep_seconds" -eq "$cur_sleep_second" ]; then
- __red "强制关闭: ${cur_sleep_second}"
- kill -9 $PID >> /dev/null 2>&1
- else
- kill $PID >> /dev/null 2>&1
- fi
-
- __green "停止程序计时: ${cur_sleep_second}秒"
- sleep 1
- cur_sleep_second="$(_math "$cur_sleep_second" + 1)"
- PID=$(ps -ef | grep "${process_name}.jar" | grep -v grep | awk '{print $2}' | xargs)
+ # 发送 SIGTERM
+ for pid in "${pids[@]}"; do
+ __green "发送 SIGTERM 到 PID: $pid"
+ kill "$pid" >/dev/null 2>&1
done
- if [[ -n "$PID" ]]; then
- __red "无法停止进程 ${process_name}, PID: ${PID}"
+ # 等待退出
+ while [ $cur_sleep_second -le $sleep_seconds ]; do
+ remaining=()
+ for pid in "${pids[@]}"; do
+ if kill -0 "$pid" 2>/dev/null; then
+ remaining+=("$pid")
+ fi
+ done
+
+ if [ ${#remaining[@]} -eq 0 ]; then
+ __green "所有进程已成功停止"
+ return 0
+ fi
+
+ __green "等待进程退出... (${cur_sleep_second}/${sleep_seconds} 秒)"
+ sleep 1
+ cur_sleep_second=$((cur_sleep_second + 1))
+ done
+
+ # 强制 kill -9
+ __red "优雅关闭超时,强制终止剩余进程: ${remaining[*]}"
+ for pid in "${remaining[@]}"; do
+ kill -9 "$pid" 2>/dev/null
+ done
+
+ # 检查是否还有存活
+ still_alive=()
+ for pid in "${remaining[@]}"; do
+ if kill -0 "$pid" 2>/dev/null; then
+ still_alive+=("$pid")
+ fi
+ done
+
+ if [ ${#still_alive[@]} -gt 0 ]; then
+ __red "无法终止进程: ${still_alive[*]}"
return 1
else
- __green "进程 ${process_name} 已成功停止"
+ __green "所有进程已强制终止"
return 0
fi
}
diff --git a/ruoyi-abuwx/pom.xml b/ruoyi-abuwx/pom.xml
deleted file mode 100644
index 4c9b28e..0000000
--- a/ruoyi-abuwx/pom.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
- ruoyi
- com.ruoyi
- 3.8.8
-
- 4.0.0
-
- ruoyi-abuwx
-
- 微信小程序
-
-
-
-
- com.ruoyi
- ruoyi-common
-
-
-
- com.ruoyi
- ruoyi-system
-
-
- com.ruoyi
- ruoyi-framework
-
-
- com.ruoyi
- ruoyi-common
-
-
- org.projectlombok
- lombok
-
-
- cn.hutool
- hutool-all
- 5.8.31
-
-
-
-
\ No newline at end of file
diff --git a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/controller/AbucoderWxuserController.java b/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/controller/AbucoderWxuserController.java
deleted file mode 100644
index 42b3c77..0000000
--- a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/controller/AbucoderWxuserController.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package com.ruoyi.abuwx.controller;
-
-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 com.ruoyi.abuwx.domain.AbucoderWxuser;
-import com.ruoyi.abuwx.service.IAbucoderWxuserService;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
-
-/**
- * 微信用户Controller
- *
- * @author 阿卜Coder QQ932696181
- * @date 2022-06-26
- */
-@RestController
-@RequestMapping("/abuwx/wxuser")
-public class AbucoderWxuserController extends BaseController
-{
- @Autowired
- private IAbucoderWxuserService abucoderWxuserService;
-
- /**
- * 查询微信用户列表
- */
- @PreAuthorize("@ss.hasPermi('abuwx:wxuser:list')")
- @GetMapping("/list")
- public TableDataInfo list(AbucoderWxuser abucoderWxuser)
- {
- startPage();
- List list = abucoderWxuserService.selectAbucoderWxuserList(abucoderWxuser);
- return getDataTable(list);
- }
-
- /**
- * 导出微信用户列表
- */
- @PreAuthorize("@ss.hasPermi('abuwx:wxuser:export')")
- @Log(title = "微信用户", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, AbucoderWxuser abucoderWxuser)
- {
- List list = abucoderWxuserService.selectAbucoderWxuserList(abucoderWxuser);
- ExcelUtil util = new ExcelUtil(AbucoderWxuser.class);
- util.exportExcel(response, list, "微信用户数据");
- }
-
- /**
- * 获取微信用户详细信息
- */
- @PreAuthorize("@ss.hasPermi('abuwx:wxuser:query')")
- @GetMapping(value = "/{id}")
- public AjaxResult getInfo(@PathVariable("id") Long id)
- {
- return AjaxResult.success(abucoderWxuserService.selectAbucoderWxuserById(id));
- }
-
- /**
- * 新增微信用户
- */
- @PreAuthorize("@ss.hasPermi('abuwx:wxuser:add')")
- @Log(title = "微信用户", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@RequestBody AbucoderWxuser abucoderWxuser)
- {
- return toAjax(abucoderWxuserService.insertAbucoderWxuser(abucoderWxuser));
- }
-
- /**
- * 修改微信用户
- */
- @PreAuthorize("@ss.hasPermi('abuwx:wxuser:edit')")
- @Log(title = "微信用户", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult edit(@RequestBody AbucoderWxuser abucoderWxuser)
- {
- return toAjax(abucoderWxuserService.updateAbucoderWxuser(abucoderWxuser));
- }
-
- /**
- * 删除微信用户
- */
- @PreAuthorize("@ss.hasPermi('abuwx:wxuser:remove')")
- @Log(title = "微信用户", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@PathVariable Long[] ids)
- {
- return toAjax(abucoderWxuserService.deleteAbucoderWxuserByIds(ids));
- }
-}
diff --git a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/domain/AbucoderWxuser.java b/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/domain/AbucoderWxuser.java
deleted file mode 100644
index cec85c4..0000000
--- a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/domain/AbucoderWxuser.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.ruoyi.abuwx.domain;
-
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.core.domain.BaseEntity;
-import lombok.Data;
-
-@Data
-public class AbucoderWxuser extends BaseEntity
-{
- private static final long serialVersionUID = 1L;
-
- /** ID */
- private Long id;
-
- /** 微信名称 */
- @Excel(name = "微信名称")
- private String nickname;
-
- /** 头像 */
- @Excel(name = "头像")
- private String avatar;
-
- /** OpenID */
- @Excel(name = "OpenID")
- private String openid;
-
- /** 性别 */
- @Excel(name = "性别")
- private Integer gender;
-}
diff --git a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/mapper/AbucoderWxuserMapper.java b/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/mapper/AbucoderWxuserMapper.java
deleted file mode 100644
index d05d4f4..0000000
--- a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/mapper/AbucoderWxuserMapper.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.ruoyi.abuwx.mapper;
-
-import java.util.List;
-import com.ruoyi.abuwx.domain.AbucoderWxuser;
-
-/**
- * 微信用户Mapper接口
- *
- * @author 阿卜Coder QQ932696181
- * @date 2022-06-26
- */
-public interface AbucoderWxuserMapper
-{
- /**
- * 查询微信用户
- *
- * @param id 微信用户主键
- * @return 微信用户
- */
- public AbucoderWxuser selectAbucoderWxuserById(Long id);
-
- /**
- * 查询微信用户列表
- *
- * @param abucoderWxuser 微信用户
- * @return 微信用户集合
- */
- public List selectAbucoderWxuserList(AbucoderWxuser abucoderWxuser);
-
- /**
- * 新增微信用户
- *
- * @param abucoderWxuser 微信用户
- * @return 结果
- */
- public int insertAbucoderWxuser(AbucoderWxuser abucoderWxuser);
-
- /**
- * 修改微信用户
- *
- * @param abucoderWxuser 微信用户
- * @return 结果
- */
- public int updateAbucoderWxuser(AbucoderWxuser abucoderWxuser);
-
- /**
- * 删除微信用户
- *
- * @param id 微信用户主键
- * @return 结果
- */
- public int deleteAbucoderWxuserById(Long id);
-
- /**
- * 批量删除微信用户
- *
- * @param ids 需要删除的数据主键集合
- * @return 结果
- */
- public int deleteAbucoderWxuserByIds(Long[] ids);
-
- /**
- * 通过OpenID查询微信用户信息
- * @param openid
- * @return
- */
- public AbucoderWxuser selectAbucoderWxuserOpenID(String openid);
-}
diff --git a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/service/IAbucoderWxuserService.java b/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/service/IAbucoderWxuserService.java
deleted file mode 100644
index 7ceb1d3..0000000
--- a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/service/IAbucoderWxuserService.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.ruoyi.abuwx.service;
-
-import java.util.List;
-import com.ruoyi.abuwx.domain.AbucoderWxuser;
-
-/**
- * 微信用户Service接口
- *
- * @author 阿卜Coder QQ932696181
- * @date 2022-06-26
- */
-public interface IAbucoderWxuserService
-{
- /**
- * 查询微信用户
- *
- * @param id 微信用户主键
- * @return 微信用户
- */
- public AbucoderWxuser selectAbucoderWxuserById(Long id);
-
- /**
- * 查询微信用户列表
- *
- * @param abucoderWxuser 微信用户
- * @return 微信用户集合
- */
- public List selectAbucoderWxuserList(AbucoderWxuser abucoderWxuser);
-
- /**
- * 新增微信用户
- *
- * @param abucoderWxuser 微信用户
- * @return 结果
- */
- public int insertAbucoderWxuser(AbucoderWxuser abucoderWxuser);
-
- /**
- * 修改微信用户
- *
- * @param abucoderWxuser 微信用户
- * @return 结果
- */
- public int updateAbucoderWxuser(AbucoderWxuser abucoderWxuser);
-
- /**
- * 批量删除微信用户
- *
- * @param ids 需要删除的微信用户主键集合
- * @return 结果
- */
- public int deleteAbucoderWxuserByIds(Long[] ids);
-
- /**
- * 删除微信用户信息
- *
- * @param id 微信用户主键
- * @return 结果
- */
- public int deleteAbucoderWxuserById(Long id);
-
- /**
- * 通过OpenID查询微信用户信息
- * @param openid
- * @return
- */
- public AbucoderWxuser selectAbucoderWxuserOpenID(String openid);
-}
diff --git a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/service/impl/AbucoderWxuserServiceImpl.java b/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/service/impl/AbucoderWxuserServiceImpl.java
deleted file mode 100644
index e5318e3..0000000
--- a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwx/service/impl/AbucoderWxuserServiceImpl.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.ruoyi.abuwx.service.impl;
-
-import java.util.List;
-import com.ruoyi.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ruoyi.abuwx.mapper.AbucoderWxuserMapper;
-import com.ruoyi.abuwx.domain.AbucoderWxuser;
-import com.ruoyi.abuwx.service.IAbucoderWxuserService;
-
-/**
- * 微信用户Service业务层处理
- *
- * @author 阿卜Coder QQ932696181
- * @date 2022-06-26
- */
-@Service
-public class AbucoderWxuserServiceImpl implements IAbucoderWxuserService
-{
- @Autowired
- private AbucoderWxuserMapper abucoderWxuserMapper;
-
- /**
- * 查询微信用户
- *
- * @param id 微信用户主键
- * @return 微信用户
- */
- @Override
- public AbucoderWxuser selectAbucoderWxuserById(Long id)
- {
- return abucoderWxuserMapper.selectAbucoderWxuserById(id);
- }
-
- /**
- * 查询微信用户列表
- *
- * @param abucoderWxuser 微信用户
- * @return 微信用户
- */
- @Override
- public List selectAbucoderWxuserList(AbucoderWxuser abucoderWxuser)
- {
- return abucoderWxuserMapper.selectAbucoderWxuserList(abucoderWxuser);
- }
-
- /**
- * 新增微信用户
- *
- * @param abucoderWxuser 微信用户
- * @return 结果
- */
- @Override
- public int insertAbucoderWxuser(AbucoderWxuser abucoderWxuser)
- {
- abucoderWxuser.setCreateTime(DateUtils.getNowDate());
- return abucoderWxuserMapper.insertAbucoderWxuser(abucoderWxuser);
- }
-
- /**
- * 修改微信用户
- *
- * @param abucoderWxuser 微信用户
- * @return 结果
- */
- @Override
- public int updateAbucoderWxuser(AbucoderWxuser abucoderWxuser)
- {
- abucoderWxuser.setUpdateTime(DateUtils.getNowDate());
- return abucoderWxuserMapper.updateAbucoderWxuser(abucoderWxuser);
- }
-
- /**
- * 批量删除微信用户
- *
- * @param ids 需要删除的微信用户主键
- * @return 结果
- */
- @Override
- public int deleteAbucoderWxuserByIds(Long[] ids)
- {
- return abucoderWxuserMapper.deleteAbucoderWxuserByIds(ids);
- }
-
- /**
- * 删除微信用户信息
- *
- * @param id 微信用户主键
- * @return 结果
- */
- @Override
- public int deleteAbucoderWxuserById(Long id)
- {
- return abucoderWxuserMapper.deleteAbucoderWxuserById(id);
- }
-
- /**
- * 通过OpenID查询微信用户信息
- * @param openid
- * @return
- */
- @Override
- public AbucoderWxuser selectAbucoderWxuserOpenID(String openid) {
- return abucoderWxuserMapper.selectAbucoderWxuserOpenID(openid);
- }
-}
diff --git a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwxapi/WxLoginController.java b/ruoyi-abuwx/src/main/java/com/ruoyi/abuwxapi/WxLoginController.java
deleted file mode 100644
index 6e7497e..0000000
--- a/ruoyi-abuwx/src/main/java/com/ruoyi/abuwxapi/WxLoginController.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package com.ruoyi.abuwxapi;
-import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
-import com.ruoyi.abuwx.domain.AbucoderWxuser;
-import com.ruoyi.abuwx.service.IAbucoderWxuserService;
-import com.ruoyi.common.config.RuoYiConfig;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.file.FileUploadUtils;
-import com.ruoyi.common.utils.file.FileUtils;
-import com.ruoyi.common.utils.http.HttpUtils;
-import com.ruoyi.framework.config.ServerConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-@RestController
-@RequestMapping("/wxapi/")
-public class WxLoginController {
- private static final Logger log = LoggerFactory.getLogger(WxLoginController.class);
- @Autowired
- private IAbucoderWxuserService iAbucoderWxuserService;
-
- @Autowired
- private ServerConfig serverConfig;
-
- /**
- * 你自己的微信小程序APPID
- */
-
- private final static String AppID = "你自己的微信小程序APPID";
- /**
- * 你自己的微信APP密钥
- */
- private final static String AppSecret = "你自己的微信APP密钥";
-
- /**
- * 登录时获取的 code(微信官方提供的临时凭证)
- * @param object
- * @return
- */
- @PostMapping("/wxlogin")
- public AjaxResult wxLogin(@RequestBody JSONObject object){
- //微信官方提供的微信小程序登录授权时使用的URL地址
- String url = "https://api.weixin.qq.com/sns/jscode2session";
- log.info("微信登录,传入参数:"+object);
- /**
- * 拼接需要的参数
- * appid = AppID 你自己的微信小程序APPID
- * js_code = AppSecret 你自己的微信APP密钥
- * grant_type=authorization_code = code 微信官方提供的临时凭证
- */
- String params = StrUtil.format("appid={}&secret={}&js_code={}&grant_type=authorization_code", AppID, AppSecret, object.get("code"));
- //开始发起网络请求,若依管理系统自带网络请求工具,直接使用即可
- String res = HttpUtils.sendGet(url,params);
- JSONObject jsonObject = JSON.parseObject(res);
- String openid = (String) jsonObject.get("openid");
- if (StrUtil.isEmpty(openid)) {
- return AjaxResult.error("未获取到openid");
- }
- /**先通过openid来查询是否存在*/
- AbucoderWxuser abucoderWxuser = iAbucoderWxuserService.selectAbucoderWxuserOpenID(openid);
- if (abucoderWxuser == null){
- /**如果不存在就插入到我们的数据库里*/
- AbucoderWxuser wxuser = new AbucoderWxuser();
- wxuser.setOpenid(openid);
- wxuser.setCreateTime(DateUtils.getNowDate());
- iAbucoderWxuserService.insertAbucoderWxuser(wxuser);
- /**返回结果集到前段*/
- return AjaxResult.success(wxuser);
- }else {
- /**返回结果集到前段*/
- return AjaxResult.success(abucoderWxuser);
- }
- }
-
- @PostMapping("/upload")
- @ResponseBody
- public AjaxResult uploadFile(MultipartFile file) throws Exception
- {
- System.out.println(file);
- try
- {
- // 上传文件路径
- String filePath = RuoYiConfig.getUploadPath();
- // 上传并返回新文件名称
- String fileName = FileUploadUtils.upload(filePath, file);
- String url = serverConfig.getUrl() + fileName;
- AjaxResult ajax = AjaxResult.success();
- ajax.put("url", url);
- ajax.put("fileName", fileName);
- ajax.put("newFileName", FileUtils.getName(fileName));
- ajax.put("originalFilename", file.getOriginalFilename());
- return ajax;
- }
- catch (Exception e)
- {
- return AjaxResult.error(e.getMessage());
- }
- }
-
- /**
- * 保存昵称与头像信息到用户信息里
- * @param object
- * @return
- */
- @PostMapping("/saveUserInfo")
- @ResponseBody
- public AjaxResult saveUserInfo(@RequestBody JSONObject object){
- System.out.println(object);
- AbucoderWxuser abucoderWxuser = iAbucoderWxuserService.selectAbucoderWxuserOpenID(String.valueOf(object.get("openid")));
- if (StringUtils.hasLength(String.valueOf(object.get("nickName")))){
- abucoderWxuser.setNickname(String.valueOf(object.get("nickName")));
- abucoderWxuser.setCreateBy(String.valueOf(object.get("nickName")));
- }
- if (StringUtils.hasLength(String.valueOf(object.get("avatarUrl")))){
- abucoderWxuser.setAvatar(String.valueOf(object.get("avatarUrl")));
- }
- abucoderWxuser.setUpdateTime(DateUtils.getNowDate());
- iAbucoderWxuserService.updateAbucoderWxuser(abucoderWxuser);
- //返回前段需要的数据
- return AjaxResult.success(abucoderWxuser);
- }
-
-}
diff --git a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderBannersMapper.xml b/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderBannersMapper.xml
deleted file mode 100644
index b4dd303..0000000
--- a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderBannersMapper.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select id, banner_title, banner_url, banner_img, create_by, create_time, update_by, update_time, remark from abucoder_banners
-
-
-
-
-
-
-
- insert into abucoder_banners
-
- banner_title,
- banner_url,
- banner_img,
- create_by,
- create_time,
- update_by,
- update_time,
- remark,
-
-
- #{bannerTitle},
- #{bannerUrl},
- #{bannerImg},
- #{createBy},
- #{createTime},
- #{updateBy},
- #{updateTime},
- #{remark},
-
-
-
-
- update abucoder_banners
-
- banner_title = #{bannerTitle},
- banner_url = #{bannerUrl},
- banner_img = #{bannerImg},
- create_by = #{createBy},
- create_time = #{createTime},
- update_by = #{updateBy},
- update_time = #{updateTime},
- remark = #{remark},
-
- where id = #{id}
-
-
-
- delete from abucoder_banners where id = #{id}
-
-
-
- delete from abucoder_banners where id in
-
- #{id}
-
-
-
\ No newline at end of file
diff --git a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderItemsMapper.xml b/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderItemsMapper.xml
deleted file mode 100644
index 944b6dd..0000000
--- a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderItemsMapper.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select id, item_name, item_desc, item_content, create_by, create_time, update_by, update_time, remark from abucoder_items
-
-
-
-
-
-
-
- insert into abucoder_items
-
- item_name,
- item_desc,
- item_content,
- create_by,
- create_time,
- update_by,
- update_time,
- remark,
-
-
- #{itemName},
- #{itemDesc},
- #{itemContent},
- #{createBy},
- #{createTime},
- #{updateBy},
- #{updateTime},
- #{remark},
-
-
-
-
- update abucoder_items
-
- item_name = #{itemName},
- item_desc = #{itemDesc},
- item_content = #{itemContent},
- create_by = #{createBy},
- create_time = #{createTime},
- update_by = #{updateBy},
- update_time = #{updateTime},
- remark = #{remark},
-
- where id = #{id}
-
-
-
- delete from abucoder_items where id = #{id}
-
-
-
- delete from abucoder_items where id in
-
- #{id}
-
-
-
\ No newline at end of file
diff --git a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderProgramsMapper.xml b/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderProgramsMapper.xml
deleted file mode 100644
index c65334d..0000000
--- a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderProgramsMapper.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select id, program_name, program_tag, program_img, program_content, create_by, create_time, update_by, update_time, remark from abucoder_programs
-
-
-
-
-
-
-
- insert into abucoder_programs
-
- program_name,
- program_tag,
- program_img,
- program_content,
- create_by,
- create_time,
- update_by,
- update_time,
- remark,
-
-
- #{programName},
- #{programTag},
- #{programImg},
- #{programContent},
- #{createBy},
- #{createTime},
- #{updateBy},
- #{updateTime},
- #{remark},
-
-
-
-
- update abucoder_programs
-
- program_name = #{programName},
- program_tag = #{programTag},
- program_img = #{programImg},
- program_content = #{programContent},
- create_by = #{createBy},
- create_time = #{createTime},
- update_by = #{updateBy},
- update_time = #{updateTime},
- remark = #{remark},
-
- where id = #{id}
-
-
-
- delete from abucoder_programs where id = #{id}
-
-
-
- delete from abucoder_programs where id in
-
- #{id}
-
-
-
\ No newline at end of file
diff --git a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderWxappConfigMapper.xml b/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderWxappConfigMapper.xml
deleted file mode 100644
index 8e365ee..0000000
--- a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderWxappConfigMapper.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select id, appid, app_secret, state, create_by, create_time, update_by, update_time, remark from abucoder_wxapp_config
-
-
-
-
-
-
-
-
- insert into abucoder_wxapp_config
-
- appid,
- app_secret,
- state,
- create_by,
- create_time,
- update_by,
- update_time,
- remark,
-
-
- #{appid},
- #{appSecret},
- #{state},
- #{createBy},
- #{createTime},
- #{updateBy},
- #{updateTime},
- #{remark},
-
-
-
-
- update abucoder_wxapp_config
-
- appid = #{appid},
- app_secret = #{appSecret},
- state = #{state},
- create_by = #{createBy},
- create_time = #{createTime},
- update_by = #{updateBy},
- update_time = #{updateTime},
- remark = #{remark},
-
- where id = #{id}
-
-
-
- delete from abucoder_wxapp_config where id = #{id}
-
-
-
- delete from abucoder_wxapp_config where id in
-
- #{id}
-
-
-
\ No newline at end of file
diff --git a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderWxuserMapper.xml b/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderWxuserMapper.xml
deleted file mode 100644
index 7232fbe..0000000
--- a/ruoyi-abuwx/src/main/resources/mapper/abuwx/AbucoderWxuserMapper.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select id, nickname, avatar, openid, gender, create_by, create_time, update_by, update_time, remark from abucoder_wxuser
-
-
-
-
-
-
-
-
- insert into abucoder_wxuser
-
- nickname,
- avatar,
- openid,
- gender,
- create_by,
- create_time,
- update_by,
- update_time,
- remark,
-
-
- #{nickname},
- #{avatar},
- #{openid},
- #{gender},
- #{createBy},
- #{createTime},
- #{updateBy},
- #{updateTime},
- #{remark},
-
-
-
-
- update abucoder_wxuser
-
- nickname = #{nickname},
- avatar = #{avatar},
- openid = #{openid},
- gender = #{gender},
- create_by = #{createBy},
- create_time = #{createTime},
- update_by = #{updateBy},
- update_time = #{updateTime},
- remark = #{remark},
-
- where id = #{id}
-
-
-
- delete from abucoder_wxuser where id = #{id}
-
-
-
- delete from abucoder_wxuser where id in
-
- #{id}
-
-
-
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
index dfbaab3..38297c8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
@@ -16,6 +16,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
@@ -33,6 +35,8 @@ public class SysOssController extends BaseController
@PostMapping("/upload")
public AjaxResult upload(@RequestParam("file") MultipartFile file) throws Exception
{
+ LocalDateTime now = LocalDateTime.now();
+ String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
if (file.isEmpty())
{
throw new OssException("上传文件不能为空");
@@ -48,7 +52,7 @@ public class SysOssController extends BaseController
ossEntity.setFileSuffix(suffix);
ossEntity.setCreateBy(SecurityUtils.getUsername());
ossEntity.setFileName(fileName);
- ossEntity.setCreateTime(new Date());
+ ossEntity.setCreateTime(formattedDate);
ossEntity.setService(storage.getService());
return toAjax(sysOssService.save(ossEntity)).put("url", ossEntity.getUrl()).put("fileName",ossEntity.getFileName());
}
diff --git a/ruoyi-admin/src/main/resources/application-local.yml b/ruoyi-admin/src/main/resources/application-local.yml
index d25e787..5214637 100644
--- a/ruoyi-admin/src/main/resources/application-local.yml
+++ b/ruoyi-admin/src/main/resources/application-local.yml
@@ -59,11 +59,32 @@ spring:
wall:
config:
multi-statement-allow: true
+ redis:
+ # 地址
+ host: 124.243.245.42
+ # 端口,默认为6379
+ port: 5379
+ # 数据库索引
+ database: 5
+ # 密码
+ password: ZKR2024@@.com
+ # 连接超时时间
+ timeout: 10s
+ lettuce:
+ pool:
+ # 连接池中的最小空闲连接
+ min-idle: 0
+ # 连接池中的最大空闲连接
+ max-idle: 8
+ # 连接池的最大数据库连接数
+ max-active: 8
+ # #连接池最大阻塞等待时间(使用负值表示没有限制)
+ max-wait: -1ms
# easy-es
easy-es:
enable: true
banner: false
- address: 127.0.0.1
+ address: 124.243.245.42:9200
global-config:
process-index-mode: manual
db-config:
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index feb412f..24ad9af 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -52,7 +52,7 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
- active: dev
+ active: local
# 文件上传
servlet:
multipart:
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCommonController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCommonController.java
index 4afc17e..ed9bfdd 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCommonController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCommonController.java
@@ -1,6 +1,5 @@
package com.ruoyi.cms.controller.app;
-import com.ruoyi.cms.domain.AppUser;
import com.ruoyi.cms.domain.BussinessDictData;
import com.ruoyi.cms.domain.CommercialArea;
import com.ruoyi.cms.domain.SubwayLine;
@@ -8,22 +7,17 @@ import com.ruoyi.cms.service.*;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.TreeSelect;
-import com.ruoyi.common.core.domain.entity.JobTitle;
-import com.ruoyi.common.core.domain.entity.SysDictData;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import 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.ArrayList;
import java.util.List;
import java.util.Map;
-import static com.ruoyi.common.utils.PageUtils.startPage;
-
@RestController
@RequestMapping("/app/common")
@Api(tags = "移动端:常用参数查询")
@@ -73,6 +67,7 @@ public class AppCommonController extends BaseController {
List dictData = iBussinessDictTypeService.selectDictDataByType(dictType);
return success(dictData);
}
+ @ApiOperation("字段标准")
@GetMapping("/standar/filed")
public AjaxResult standarFiled()
{
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCompanyController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCompanyController.java
index ec64e90..1a55f9a 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCompanyController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCompanyController.java
@@ -1,7 +1,6 @@
package com.ruoyi.cms.controller.app;
-import com.ruoyi.cms.domain.BussinessDictData;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.cms.domain.CompanyCard;
import com.ruoyi.cms.domain.query.LabelQuery;
@@ -9,16 +8,14 @@ import com.ruoyi.cms.mapper.CompanyCardMapper;
import com.ruoyi.cms.service.ICompanyCardService;
import com.ruoyi.cms.service.ICompanyCollectionService;
import com.ruoyi.cms.service.ICompanyService;
-import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.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.core.page.TableSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -46,7 +43,6 @@ public class AppCompanyController extends BaseController
* 获取公司详细信息
*/
@ApiOperation("获取公司详细信息")
- @PreAuthorize("@ss.hasPermi('bussiness:company:query')")
@GetMapping(value = "/{companyId}")
public AjaxResult getInfo(@PathVariable("companyId") Long companyId)
{
@@ -55,7 +51,7 @@ public class AppCompanyController extends BaseController
/**
* 用户收藏公司
*/
- @Log(title = "用户收藏公司")
+ @BussinessLog(title = "用户收藏公司")
@PostMapping("/collection/{companyId}")
@ApiOperation("用户收藏公司")
public AjaxResult companyCollection(@PathVariable("companyId") Long companyId)
@@ -66,7 +62,7 @@ public class AppCompanyController extends BaseController
/**
* 用户取消收藏公司
*/
- @Log(title = "用户取消收藏公司")
+ @BussinessLog(title = "用户取消收藏公司")
@DeleteMapping("/collection/{companyId}")
@ApiOperation("用户取消收藏公司")
public AjaxResult companyCancel(@PathVariable("companyId") Long companyId)
@@ -76,7 +72,6 @@ public class AppCompanyController extends BaseController
/**
* 公司下的岗位
*/
- @Log(title = "公司下的岗位")
@GetMapping("/job/{companyId}")
@ApiOperation("公司下的岗位")
public TableDataInfo jobCompany(@ApiParam("公司id") @PathVariable Long companyId)
@@ -84,7 +79,6 @@ public class AppCompanyController extends BaseController
startPage();
return getDataTable(companyCollectionService.jobCompany(companyId));
}
- @Log(title = "查看企业卡片")
@GetMapping("/card")
@ApiOperation("查看企业卡片")
public TableDataInfo card()
@@ -92,7 +86,7 @@ public class AppCompanyController extends BaseController
startPage();
return getDataTable(companyCardService.cardApp());
}
- @Log(title = "收藏企业卡片")
+ @BussinessLog(title = "收藏企业卡片")
@PutMapping("/card/collection/{companyCardId}")
@ApiOperation("收藏企业卡片")
public AjaxResult cardCollection(@PathVariable Long companyCardId)
@@ -100,7 +94,7 @@ public class AppCompanyController extends BaseController
companyCardService.cardCollection(companyCardId);
return success();
}
- @Log(title = "取消收藏企业卡片")
+ @BussinessLog(title = "取消收藏企业卡片")
@DeleteMapping("/card/collection/{companyCardId}")
@ApiOperation("取消收藏公司卡片")
public AjaxResult cardCancel(@PathVariable Long companyCardId)
@@ -108,7 +102,6 @@ public class AppCompanyController extends BaseController
companyCardService.cardCancel(companyCardId);
return success();
}
- @Log(title = "公司招聘的岗位数量")
@GetMapping("/count/{companyId}")
@ApiOperation("公司招聘的岗位数量")
public AjaxResult count(@PathVariable Long companyId)
@@ -116,24 +109,28 @@ public class AppCompanyController extends BaseController
Integer count = companyService.count(companyId);
return success(count);
}
- @Log(title = "公司标签下的公司")
@GetMapping("/label")
@ApiOperation("公司标签下的公司")
- public TableDataInfo label(LabelQuery labelQuery)
+ public TableDataInfo label(@RequestBody LabelQuery labelQuery)
{
CompanyCard companyCard = companyCardMapper.selectById(labelQuery.getCardId());
startPage();
List companyList = companyService.label(companyCard,labelQuery);
return getDataTable(companyList);
}
- @GetMapping("/importLabel500")
- public void importLabel()
+ @PostMapping("/register")
+ @ApiOperation("招聘企业登记")
+ @BussinessLog(title = "招聘企业登记")
+ public AjaxResult register(Company company)
{
- companyService.importLabel();
+ companyService.register(company);
+ return AjaxResult.success();
}
- @GetMapping("/importLabelBank")
- public void importLabelBank()
+ @GetMapping("/register/status")
+ @ApiOperation("招聘企业登记进度查询")
+ public AjaxResult registerStatus()
{
- companyService.importLabelBank();
+ Company status = companyService.registerStatus();
+ return AjaxResult.success(status);
}
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppFairController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppFairController.java
index b7040bd..8bfad01 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppFairController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppFairController.java
@@ -4,7 +4,7 @@ package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.JobFair;
import com.ruoyi.cms.service.IFairCollectionService;
import com.ruoyi.cms.service.IJobFairService;
-import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -33,7 +33,7 @@ public class AppFairController extends BaseController
/**
* 招聘会列表
*/
- @Log(title = "招聘会列表")
+ @BussinessLog(title = "招聘会列表")
@GetMapping
public TableDataInfo list(JobFair jobFair)
{
@@ -45,7 +45,7 @@ public class AppFairController extends BaseController
/**
* 招聘会详情
*/
- @Log(title = "招聘会详情")
+ @BussinessLog(title = "招聘会详情")
@GetMapping("/{fairId}")
public AjaxResult appDetail(@ApiParam("招聘会id") @PathVariable Long fairId)
{
@@ -55,7 +55,7 @@ public class AppFairController extends BaseController
/**
* 用户收藏招聘会
*/
- @Log(title = "用户收藏招聘会")
+ @BussinessLog(title = "用户收藏招聘会")
@PostMapping("/collection/{fairId}")
public AjaxResult companyCollection(@ApiParam("招聘会id") @PathVariable Long fairId)
{
@@ -65,7 +65,7 @@ public class AppFairController extends BaseController
/**
* 用户取消收藏招聘会
*/
- @Log(title = "用户取消收藏招聘会")
+ @BussinessLog(title = "用户取消收藏招聘会")
@DeleteMapping("/collection/{fairId}")
public AjaxResult companyCancel(@ApiParam("招聘会id") @PathVariable Long fairId)
{
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppFileController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppFileController.java
index 44e0b35..f05317c 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppFileController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppFileController.java
@@ -1,6 +1,7 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.service.IFileService;
+import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@@ -14,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile;
public class AppFileController {
@Autowired
private IFileService fileService;
+ @BussinessLog(title = "上传文件")
@PostMapping("/upload")
public AjaxResult uploadFile(@RequestParam("file") MultipartFile file, @RequestParam(value = "bussinessId",required = false) Long bussinessId) {
return fileService.uploadFile(file,bussinessId);
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java
index 26f9733..d5f6d77 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java
@@ -3,12 +3,10 @@ package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.ESJobDocument;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.query.ESJobSearch;
-import com.ruoyi.cms.domain.vo.CompetitivenessResponse;
-import com.ruoyi.cms.domain.vo.RadarChart;
import com.ruoyi.cms.service.IESJobSearchService;
import com.ruoyi.cms.service.IJobCollectionService;
import com.ruoyi.cms.service.IJobService;
-import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -18,8 +16,8 @@ import io.swagger.annotations.ApiParam;
import org.dromara.easyes.core.biz.EsPageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import javax.servlet.http.HttpServletRequest;
-import java.util.*;
+
+import java.util.List;
/**
* 岗位Controller
@@ -39,37 +37,28 @@ public class AppJobController extends BaseController
@Autowired
private IESJobSearchService esJobSearchService;
- private Calendar calendar = Calendar.getInstance();
- private Date date = new Date();
- {
- calendar.set(Calendar.YEAR, 2025); // 设置年份
- calendar.set(Calendar.MONTH, Calendar.JULY); // 设置月份(7月)
- calendar.set(Calendar.DAY_OF_MONTH, 12); // 设置日期
- date = calendar.getTime(); // 转换为Date对象
-}
-
/**
* 查询岗位列表
*/
@ApiOperation("查询岗位列表")
@GetMapping("/list")
- public TableDataInfo list(ESJobSearch job, HttpServletRequest request)
+ public TableDataInfo list(ESJobSearch job)
{
- // 打印请求参数
- System.out.println("Request Parameters:");
- request.getParameterMap().forEach((key, value) -> {
- System.out.println(key + " = " + String.join(", ", value));
- });
- // 打印请求头
- System.out.println("Request Headers:");
- Enumeration headerNames = request.getHeaderNames();
- Iterator iterator = Collections.list(headerNames).iterator();
- iterator.forEachRemaining(headerName -> {
- System.out.println(headerName + " = " + request.getHeader(headerName));
- });
EsPageInfo list = jobService.appList(job);
- return getTableDataInfo(list);
+ return getTableDataInfo2(list,job);
}
+
+ private TableDataInfo getTableDataInfo2(EsPageInfo 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条推荐岗位
*/
@@ -78,12 +67,9 @@ public class AppJobController extends BaseController
public AjaxResult recommend(ESJobSearch esJobSearch)
{
List jobList = jobService.recommend(esJobSearch);
- for (ESJobDocument esJobDocument:jobList){
- esJobDocument.setPostingDate(date);
- }
return success(jobList);
}
- @ApiOperation("获取littleVideo")
+ @ApiOperation("获取短视频")
@GetMapping("/littleVideo")
public AjaxResult littleVideo(ESJobSearch esJobSearch)
{
@@ -91,21 +77,13 @@ public class AppJobController extends BaseController
return success(jobList);
}
- @ApiOperation("获取littleVideo")
+ @ApiOperation("随机获取短视频")
@GetMapping("/littleVideo/random")
public AjaxResult littleVideo(@RequestParam(required = true) String uuid,@RequestParam(required = false) Integer count,@RequestParam(required = false) String jobTitle)
{
List jobList = jobService.littleVideoRandom(uuid,count,jobTitle);
return success(jobList);
}
- /**
- * 获取5条推荐岗位
- */
- @GetMapping("/updateLon")
- public void updateLon()
- {
- jobService.updateLon();
- }
/**
* 附件工作
*/
@@ -115,9 +93,6 @@ public class AppJobController extends BaseController
{
EsPageInfo list = esJobSearchService.nearJob(jobQuery);
List jobList = list.getList();
- for (ESJobDocument esJobDocument:jobList){
- esJobDocument.setPostingDate(date);
- }
list.setList(jobList);
return getTableDataInfo(list);
}
@@ -130,9 +105,6 @@ public class AppJobController extends BaseController
{
EsPageInfo list = jobService.countyJobList(job);
List jobList = list.getList();
- for (ESJobDocument esJobDocument:jobList){
- esJobDocument.setPostingDate(date);
- }
list.setList(jobList);
return getTableDataInfo(list);
}
@@ -145,9 +117,6 @@ public class AppJobController extends BaseController
{
EsPageInfo list = jobService.subway(jobQuery);
List jobList = list.getList();
- for (ESJobDocument esJobDocument:jobList){
- esJobDocument.setPostingDate(date);
- }
list.setList(jobList);
return getTableDataInfo(list);
}
@@ -161,9 +130,6 @@ public class AppJobController extends BaseController
{
EsPageInfo list = jobService.commercialArea(jobQuery);
List jobList = list.getList();
- for (ESJobDocument esJobDocument:jobList){
- esJobDocument.setPostingDate(date);
- }
list.setList(jobList);
return getTableDataInfo(list);
}
@@ -175,14 +141,13 @@ public class AppJobController extends BaseController
public AjaxResult getInfo(@PathVariable("jobId") Long jobId)
{
Job job = jobService.selectJobByJobIdApp(jobId);
- job.setPostingDate(date);
return success(job);
}
/**
* 用户收藏岗位
*/
- @Log(title = "用户收藏岗位")
+ @BussinessLog(title = "用户收藏岗位")
@PostMapping("/collection/{jobId}")
@ApiOperation("用户收藏")
public AjaxResult jobCollection(@ApiParam("岗位id") @PathVariable Long jobId)
@@ -193,7 +158,7 @@ public class AppJobController extends BaseController
/**
* 用户取消收藏岗位
*/
- @Log(title = "用户取消收藏岗位")
+ @BussinessLog(title = "用户取消收藏岗位")
@DeleteMapping("/collection/{jobId}")
@ApiOperation("用户取消收藏岗位")
public AjaxResult cancel(@ApiParam("岗位id") @PathVariable Long jobId)
@@ -203,38 +168,17 @@ public class AppJobController extends BaseController
/**
* 用户申请岗位
*/
- @Log(title = "用户申请岗位")
+ @BussinessLog(title = "用户申请岗位")
@GetMapping("/apply/{jobId}")
@ApiOperation("用户申请岗位")
public AjaxResult apply(@ApiParam("岗位id") @PathVariable Long jobId)
{
return toAjax(jobCollectionService.apply(jobId));
}
- @Log(title = "竞争力分析")
@GetMapping("/competitiveness/{jobId}")
@ApiOperation("竞争力分析")
public AjaxResult competitiveness(@ApiParam("岗位id") @PathVariable Long jobId) {
- // Generate random values for the response
- Random random = new Random();
-
- // Build radar chart with random values between 60-95
- RadarChart radarChart = new RadarChart();
- radarChart.setAge(60 + random.nextInt(36)); // 60-95
- radarChart.setExperience(60 + random.nextInt(36));
- radarChart.setEducation(60 + random.nextInt(36));
- radarChart.setSkill(60 + random.nextInt(36));
- radarChart.setSalary(60 + random.nextInt(36));
- radarChart.setLocation(60 + random.nextInt(36));
-
- // Build response with random values
- CompetitivenessResponse response = new CompetitivenessResponse();
- response.setTotalApplicants(0); // Always 0 as requested
- response.setMatchScore(60 + random.nextInt(41)); // 60-100
- response.setRank(1 + random.nextInt(10)); // 1-10
- response.setPercentile(random.nextInt(101)); // 0-100
- response.setRadarChart(radarChart);
-
- return success(response);
+ return success(jobCollectionService.competitiveness(jobId));
}
private TableDataInfo getTableDataInfo(EsPageInfo result){
long total = result.getTotal();
@@ -244,45 +188,11 @@ public class AppJobController extends BaseController
rspData.setTotal(total > 200 ? 200 : total);
return rspData;
}
- @GetMapping("/import")
- public AjaxResult importData()
+ @BussinessLog(title = "移动端发布岗位")
+ @PostMapping("/publishJob")
+ public AjaxResult fix(@RequestBody Job job)
{
- jobService.importData();
+ jobService.publishJob(job);
return success();
}
- @GetMapping("/importRow")
- public AjaxResult importRow()
- {
- jobService.importRow();
- return success();
- }
- @GetMapping("/update")
- public AjaxResult update()
- {
- jobService.updateEs();
- return success();
- }
- @PostMapping("/getWechatUrl")
- public AjaxResult getWechatUrl(@RequestBody HashMap url)
- {
- String s = url.get("imgUrl");
- return AjaxResult.success(jobService.getWechatUrl(s));
- }
- @PostMapping("/insert")
- public AjaxResult insertTemp(@RequestBody Job job)
- {
- return AjaxResult.success(jobService.insertTemp(job));
- }
- @ApiOperation("生成分享的html")
- @GetMapping("/htmlGen/{id}")
- public AjaxResult htmlGen(@PathVariable(required = true) Long id)
- {
- String result = jobService.htmlGen(id);
- return AjaxResult.success(result);
- }
- @GetMapping("/fix")
- public void fix()
- {
- jobService.fix();
- }
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppNoticeInfoController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppNoticeInfoController.java
index 55ed43a..6a913a3 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppNoticeInfoController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppNoticeInfoController.java
@@ -1,15 +1,12 @@
package com.ruoyi.cms.controller.app;
-import com.ruoyi.cms.domain.AppUser;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.Notice;
-import com.ruoyi.cms.domain.vo.AppNoticeVO;
import com.ruoyi.cms.service.IAppNoticeService;
+import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -17,8 +14,6 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
-import static com.ruoyi.common.utils.PageUtils.startPage;
-
@RestController
@RequestMapping("/app/notice")
@Api(tags = "移动端:消息")
@@ -43,6 +38,7 @@ public class AppNoticeInfoController extends BaseController {
}
@ApiOperation("系统通知已读")
@PostMapping("/read/sysNotice")
+ @BussinessLog(title = "系统通知标记已读")
public AjaxResult sysNotice(@RequestParam String id)
{
appNoticeService.sysNotice(id);
@@ -50,6 +46,7 @@ public class AppNoticeInfoController extends BaseController {
}
@ApiOperation("岗位推荐、招聘会已读")
@PostMapping("/read")
+ @BussinessLog(title = "岗位推荐、招聘会已读标记已读")
public AjaxResult read(@RequestParam String id)
{
appNoticeService.read(id);
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppScriptController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppScriptController.java
new file mode 100644
index 0000000..bdc1461
--- /dev/null
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppScriptController.java
@@ -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();
+ }
+}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppSpeechController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppSpeechController.java
new file mode 100644
index 0000000..d1f9776
--- /dev/null
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppSpeechController.java
@@ -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);
+ }
+}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppUserController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppUserController.java
index 9a85baf..d8ed998 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppUserController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppUserController.java
@@ -6,6 +6,7 @@ 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.common.core.page.TableDataInfo;
@@ -46,6 +47,7 @@ public class AppUserController extends BaseController
*/
@ApiOperation("保存简历")
@PostMapping("/resume")
+ @BussinessLog(title = "保存简历")
public AjaxResult saveResume(@RequestBody AppUser appUser)
{
appUser.setUserId(SecurityUtils.getUserId());
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/BussinessOperlogController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/BussinessOperlogController.java
index a74eb71..ec89663 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/BussinessOperlogController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/BussinessOperlogController.java
@@ -24,7 +24,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("/cms/operlog")
-@Api(tags = "后台:App用户日志")
+@Api(tags = "后台:App用户操作日志")
public class BussinessOperlogController extends BaseController
{
@Autowired
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java
index c8c4b84..ddaabc3 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java
@@ -61,7 +61,7 @@ public class CmsJobController extends BaseController
* 导出岗位列表
*/
@ApiOperation("导出岗位列表")
- @PreAuthorize("@ss.hasPermi('app:job:export')")
+ @PreAuthorize("@ss.hasPermi('bussiness:job:export')")
@Log(title = "岗位", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Job job)
@@ -74,7 +74,7 @@ public class CmsJobController extends BaseController
* 新增岗位
*/
@ApiOperation("新增岗位")
- @PreAuthorize("@ss.hasPermi('app:job:add')")
+ @PreAuthorize("@ss.hasPermi('bussiness:job:add')")
@Log(title = "岗位", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Job job)
@@ -86,7 +86,7 @@ public class CmsJobController extends BaseController
* 修改岗位
*/
@ApiOperation("修改岗位")
- @PreAuthorize("@ss.hasPermi('app:job:edit')")
+ @PreAuthorize("@ss.hasPermi('bussiness:job:edit')")
@Log(title = "岗位", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Job job)
@@ -98,32 +98,22 @@ public class CmsJobController extends BaseController
* 删除岗位
*/
@ApiOperation("删除岗位")
- @PreAuthorize("@ss.hasPermi('app:job:remove')")
+ @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 list = jobService.candidates(jobId);
return getDataTable(list);
}
- @GetMapping("/import")
- public AjaxResult importData()
- {
- jobService.importData();
- return success();
- }
- @GetMapping("/importRow")
- public AjaxResult importRow()
- {
- jobService.importRow();
- return success();
- }
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppNotice.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppNotice.java
index 1e21dfa..730eb5f 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppNotice.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppNotice.java
@@ -1,103 +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 org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
-/**
- * 通知公告表 sys_notice
- *
- * @author ruoyi
- */
+@Data
+@ApiModel("APP通知")
+@TableName(value = "app_notice")
public class AppNotice extends BaseEntity
{
+ @TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** 公告ID */
+ @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;
- /** 公告类型(1通知 2公告) */
+ @ApiModelProperty("消息类型")
private String noticeType;
- /** 公告内容 */
+ @ApiModelProperty("消息内容")
private String noticeContent;
- /** 公告状态(0正常 1关闭) */
+ @ApiModelProperty("消息状态 0正常 1关闭")
private String status;
- public Long getNoticeId()
- {
- return noticeId;
- }
-
- public void setNoticeId(Long noticeId)
- {
- this.noticeId = noticeId;
- }
-
- public void setNoticeTitle(String noticeTitle)
- {
- this.noticeTitle = noticeTitle;
- }
-
- @Xss(message = "公告标题不能包含脚本字符")
- @NotBlank(message = "公告标题不能为空")
- @Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
- public String getNoticeTitle()
- {
- return noticeTitle;
- }
-
- public void setNoticeType(String noticeType)
- {
- this.noticeType = noticeType;
- }
-
- public String getNoticeType()
- {
- return noticeType;
- }
-
- public void setNoticeContent(String noticeContent)
- {
- this.noticeContent = noticeContent;
- }
-
- public String getNoticeContent()
- {
- return noticeContent;
- }
-
- public void setStatus(String status)
- {
- this.status = status;
- }
-
- public String getStatus()
- {
- return status;
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- .append("noticeId", getNoticeId())
- .append("noticeTitle", getNoticeTitle())
- .append("noticeType", getNoticeType())
- .append("noticeContent", getNoticeContent())
- .append("status", getStatus())
- .append("createBy", getCreateBy())
- .append("createTime", getCreateTime())
- .append("updateBy", getUpdateBy())
- .append("updateTime", getUpdateTime())
- .append("remark", getRemark())
- .toString();
- }
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppReviewJob.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppReviewJob.java
index b185ebb..5c78277 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppReviewJob.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppReviewJob.java
@@ -1,16 +1,15 @@
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.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}
@@ -26,14 +25,15 @@ public class AppReviewJob extends BaseEntity
@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 Date reviewDate;
+ private String reviewDate;
}
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java
index 795fd56..e22c815 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java
@@ -26,78 +26,63 @@ public class AppUser extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** 用户ID */
@TableId(value = "user_id",type = IdType.AUTO)
@ApiModelProperty("用户ID")
private Long userId;
- /** 用户名称 */
@Excel(name = "用户名称")
@ApiModelProperty("用户名称")
private String name;
- /** 年龄段 对应字典age */
@Excel(name = "年龄段 对应字典age")
@ApiModelProperty("年龄段 对应字典age")
private String age;
- /** 用户性别(0男 1女)对应字典sex */
@Excel(name = "用户性别", readConverterExp = "0=男,1=女")
@ApiModelProperty("用户性别(0男 1女)对应字典sex")
private String sex;
- /** 生日 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("生日")
private Date birthDate;
- /** 学历 对应字典education */
@Excel(name = "学历 对应字典education")
@ApiModelProperty("学历 对应字典education")
private String education;
- /** 政治面貌 */
@Excel(name = "政治面貌")
@ApiModelProperty("政治面貌")
private String politicalAffiliation;
- /** 手机号码 */
@Excel(name = "手机号码")
@ApiModelProperty("手机号码")
private String phone;
- /** 头像地址 */
@Excel(name = "头像地址")
@ApiModelProperty("头像地址")
private String avatar;
- /** 最低工资 */
@Excel(name = "最低工资")
@ApiModelProperty("最低工资")
private String salaryMin;
- /** 最高工资 */
@Excel(name = "最高工资")
@ApiModelProperty("最高工资")
private String salaryMax;
- /** 期望工作地 对应字典area */
@Excel(name = "期望工作地 对应字典area")
@ApiModelProperty("期望工作地 对应字典area")
private String area;
- /** 帐号状态(0正常 1停用) */
@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
@ApiModelProperty("帐号状态(0正常 1停用)")
private String status;
- /** 最后登录IP */
@Excel(name = "最后登录IP")
@ApiModelProperty("最后登录IP")
private String loginIp;
- /** 最后登录时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("最后登录时间")
@@ -105,10 +90,14 @@ public class AppUser extends BaseEntity
@ApiModelProperty("期望岗位,逗号分隔")
private String jobTitleId;
+
@ApiModelProperty("期望薪资")
private String experience;
+
@ApiModelProperty("是否开启推荐(0不推荐 1推荐)")
private Integer isRecommend;
+
@TableField(exist = false)
+ @ApiModelProperty("期望岗位列表")
private List jobTitle;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessDictData.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessDictData.java
index 3f47830..21d2094 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessDictData.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessDictData.java
@@ -1,177 +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.constant.UserConstants;
import com.ruoyi.common.core.domain.BaseEntity;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
-/**
- * 字典数据表 sys_dict_data
- *
- * @author ruoyi
- */
+
+@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;
- /** 是否默认(Y是 N否) */
+ @ApiModelProperty("是否默认(Y是 N否)")
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
private String isDefault;
- /** 状态(0正常 1停用) */
+ @ApiModelProperty("状态 0=正常,1=停用 ")
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
- public Long getDictCode()
- {
- return dictCode;
- }
-
- public void setDictCode(Long dictCode)
- {
- this.dictCode = dictCode;
- }
-
- public Long getDictSort()
- {
- return dictSort;
- }
-
- public void setDictSort(Long dictSort)
- {
- this.dictSort = dictSort;
- }
-
- @NotBlank(message = "字典标签不能为空")
- @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
- public String getDictLabel()
- {
- return dictLabel;
- }
-
- public void setDictLabel(String dictLabel)
- {
- this.dictLabel = dictLabel;
- }
-
- @NotBlank(message = "字典键值不能为空")
- @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
- public String getDictValue()
- {
- return dictValue;
- }
-
- public void setDictValue(String dictValue)
- {
- this.dictValue = dictValue;
- }
-
- @NotBlank(message = "字典类型不能为空")
- @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
- public String getDictType()
- {
- return dictType;
- }
-
- public void setDictType(String dictType)
- {
- this.dictType = dictType;
- }
-
- @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
- public String getCssClass()
- {
- return cssClass;
- }
-
- public void setCssClass(String cssClass)
- {
- this.cssClass = cssClass;
- }
-
- public String getListClass()
- {
- return listClass;
- }
-
- public void setListClass(String listClass)
- {
- this.listClass = listClass;
- }
-
- public boolean getDefault()
- {
- return UserConstants.YES.equals(this.isDefault);
- }
-
- public String getIsDefault()
- {
- return isDefault;
- }
-
- public void setIsDefault(String isDefault)
- {
- this.isDefault = isDefault;
- }
-
- public String getStatus()
- {
- return status;
- }
-
- public void setStatus(String status)
- {
- this.status = status;
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- .append("dictCode", getDictCode())
- .append("dictSort", getDictSort())
- .append("dictLabel", getDictLabel())
- .append("dictValue", getDictValue())
- .append("dictType", getDictType())
- .append("cssClass", getCssClass())
- .append("listClass", getListClass())
- .append("isDefault", getIsDefault())
- .append("status", getStatus())
- .append("createBy", getCreateBy())
- .append("createTime", getCreateTime())
- .append("updateBy", getUpdateBy())
- .append("updateTime", getUpdateTime())
- .append("remark", getRemark())
- .toString();
- }
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessDictType.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessDictType.java
index 34fe65d..e18f14a 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessDictType.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessDictType.java
@@ -1,20 +1,20 @@
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 org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
-/**
- * 字典类型表 sys_dict_type
- *
- * @author ruoyi
- */
+
+@Data
+@ApiModel("字典类型表")
+@TableName(value = "bussiness_dict_type")
public class BussinessDictType extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -25,73 +25,19 @@ public class BussinessDictType extends BaseEntity
/** 字典名称 */
@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;
- public Long getDictId()
- {
- return dictId;
- }
-
- public void setDictId(Long dictId)
- {
- this.dictId = dictId;
- }
-
- @NotBlank(message = "字典名称不能为空")
- @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
- public String getDictName()
- {
- return dictName;
- }
-
- public void setDictName(String dictName)
- {
- this.dictName = dictName;
- }
-
- @NotBlank(message = "字典类型不能为空")
- @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
- @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
- public String getDictType()
- {
- return dictType;
- }
-
- public void setDictType(String dictType)
- {
- this.dictType = dictType;
- }
-
- public String getStatus()
- {
- return status;
- }
-
- public void setStatus(String status)
- {
- this.status = status;
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- .append("dictId", getDictId())
- .append("dictName", getDictName())
- .append("dictType", getDictType())
- .append("status", getStatus())
- .append("createBy", getCreateBy())
- .append("createTime", getCreateTime())
- .append("updateBy", getUpdateBy())
- .append("updateTime", getUpdateTime())
- .append("remark", getRemark())
- .toString();
- }
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessOperLog.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessOperLog.java
index 497e688..d813ec6 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessOperLog.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/BussinessOperLog.java
@@ -24,92 +24,75 @@ public class BussinessOperLog extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** 日志主键 */
@TableId(value = "oper_id",type = IdType.AUTO)
@ApiModelProperty("日志主键")
private Long operId;
- /** 模块标题 */
@Excel(name = "模块标题")
@ApiModelProperty("模块标题")
private String title;
- /** 业务类型(0其它 1新增 2修改 3删除) */
@Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除")
@ApiModelProperty("业务类型(0其它 1新增 2修改 3删除)")
private Integer businessType;
- /** 方法名称 */
@Excel(name = "方法名称")
@ApiModelProperty("方法名称")
private String method;
- /** 请求方式 */
@Excel(name = "请求方式")
@ApiModelProperty("请求方式")
private String requestMethod;
- /** 操作类别(0其它 1后台用户 2手机端用户) */
@Excel(name = "操作类别", readConverterExp = "0=其它,1=后台用户,2=手机端用户")
@ApiModelProperty("操作类别(0其它 1后台用户 2手机端用户)")
private Integer operatorType;
- /** 操作人员 */
@Excel(name = "操作人员")
@ApiModelProperty("操作人员")
private String operName;
- /** 部门名称 */
@Excel(name = "部门名称")
@ApiModelProperty("部门名称")
private String deptName;
- /** 请求URL */
@Excel(name = "请求URL")
@ApiModelProperty("请求URL")
private String operUrl;
- /** 主机地址 */
@Excel(name = "主机地址")
@ApiModelProperty("主机地址")
private String operIp;
- /** 操作地点 */
@Excel(name = "操作地点")
@ApiModelProperty("操作地点")
private String operLocation;
- /** 请求参数 */
@Excel(name = "请求参数")
@ApiModelProperty("请求参数")
private String operParam;
- /** 返回参数 */
@Excel(name = "返回参数")
@ApiModelProperty("返回参数")
private String jsonResult;
- /** 操作状态(0正常 1异常) */
@Excel(name = "操作状态", readConverterExp = "0=正常,1=异常")
@ApiModelProperty("操作状态(0正常 1异常)")
private Integer status;
- /** 错误消息 */
@Excel(name = "错误消息")
@ApiModelProperty("错误消息")
private String errorMsg;
- /** 操作时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("操作时间")
private Date operTime;
- /** 消耗时间 */
@Excel(name = "消耗时间")
@ApiModelProperty("消耗时间")
private Long costTime;
- /** 业务类型数组 */
+ @ApiModelProperty("业务类型数组")
private Integer[] businessTypes;
}
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CommercialArea.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CommercialArea.java
index c4ae16d..02210f0 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CommercialArea.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CommercialArea.java
@@ -23,26 +23,24 @@ public class CommercialArea extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "commercial_area_id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long commercialAreaId;
- /** 商圈名称 */
@Excel(name = "商圈名称")
@ApiModelProperty("商圈名称")
private String commercialAreaName;
- /** 纬度 */
@Excel(name = "纬度")
@ApiModelProperty("纬度")
private BigDecimal latitude;
- /** 经度 */
@Excel(name = "经度")
@ApiModelProperty("经度")
private BigDecimal longitude;
+ @Excel(name = "地址")
+ @ApiModelProperty("地址")
private String address;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Company.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Company.java
index 63a2476..19b98ba 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Company.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Company.java
@@ -22,42 +22,69 @@ public class Company extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** 公司id */
@TableId(value = "company_id",type = IdType.AUTO)
@ApiModelProperty("公司id")
private Long companyId;
- /** 单位名称 */
@Excel(name = "单位名称")
@ApiModelProperty("单位名称")
private String name;
- /** 单位地点 */
@Excel(name = "单位地点")
@ApiModelProperty("单位地点")
private String location;
- /** 主要行业 */
@Excel(name = "主要行业")
@ApiModelProperty("主要行业")
private String industry;
- /** 单位规模 对应字典scale */
@Excel(name = "单位规模 对应字典scale")
@ApiModelProperty("单位规模 对应字典scale")
private String scale;
+
@Excel(name = "信用代码")
@ApiModelProperty("信用代码")
private String code;
+
@Excel(name = "单位介绍")
@ApiModelProperty("单位介绍")
private String description;
+
@Excel(name = "性质")
@ApiModelProperty("性质")
private String nature;
+
@ApiModelProperty("招聘数量")
private Integer totalRecruitment;
+
@TableField(exist = false)
@ApiModelProperty("是否收藏")
private Integer isCollection;
+
+ @ApiModelProperty("所属用户id")
+ private Long userId;
+
+ @ApiModelProperty("营业执照Url")
+ private String businessLicenseUrl;
+
+ @ApiModelProperty("法人身份证复印件-正面")
+ private String idCardPictureUrl;
+
+ @ApiModelProperty("法人身份证复印件-反面")
+ private String idCardPictureBackUrl;
+
+ @ApiModelProperty("授权代理书")
+ private String powerOfAttorneyUrl;
+
+ @ApiModelProperty("联系人")
+ private String contactPerson;
+
+ @ApiModelProperty("联系人电话")
+ private String contactPersonPhone;
+
+ @ApiModelProperty("审核状态 0审核中 1审核通过 2审核未通过")
+ private Integer status;
+
+ @ApiModelProperty("审核未通过原因")
+ private String notPassReason;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCard.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCard.java
index 29b0105..08fc357 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCard.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCard.java
@@ -22,29 +22,33 @@ public class CompanyCard extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** 公司id */
@TableId(value = "company_card_id",type = IdType.AUTO)
- @ApiModelProperty("公司id")
+ @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;
- private String icon;
+
}
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCardCollection.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCardCollection.java
index 3f80fa1..053cf53 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCardCollection.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCardCollection.java
@@ -22,16 +22,16 @@ public class CompanyCardCollection extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** 公司id */
@TableId(value = "company_card_collection_id",type = IdType.AUTO)
@ApiModelProperty("公司id")
private Long companyCardCollectionId;
- /** 用户id */
+
@Excel(name = "用户id")
@ApiModelProperty("用户id")
private Long userId;
- @Excel(name = "用户id")
- @ApiModelProperty("用户id")
+
+ @Excel(name = "公司卡片id")
+ @ApiModelProperty("公司卡片id")
private Long companyCardId;
}
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCollection.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCollection.java
index 739f605..97d030d 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCollection.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyCollection.java
@@ -22,17 +22,14 @@ public class CompanyCollection extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
- /** 公司id */
@Excel(name = "公司id")
@ApiModelProperty("公司id")
private Long companyId;
- /** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyLabel.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyLabel.java
index b428b99..825ea4d 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyLabel.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyLabel.java
@@ -26,8 +26,10 @@ public class CompanyLabel extends BaseEntity
@TableId(value = "id",type = IdType.AUTO)
private Long id;
+ @ApiModelProperty("公司标签")
private String dictValue;
+ @ApiModelProperty("公司id")
private Long companyId;
}
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java
index 0c9d667..5130122 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java
@@ -2,6 +2,7 @@ package com.ruoyi.cms.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.IndexId;
@@ -16,104 +17,126 @@ import java.util.Date;
/**
* 全文索引 ES数据模型
**/
-@IndexName("job_document_gt")
+@IndexName("job_document")
@Data
public class ESJobDocument
{
- /**
- * es中的唯一id
- */
+
+ @ApiModelProperty("es中的唯一id")
@IndexId(type = IdType.NONE)
@JsonIgnore
private String id;
- /** 公告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;
- /** 公告状态 */
- @JsonIgnore
- private String status;
-
+ @ApiModelProperty("最小薪资(元)")
private Long minSalary;
- /** 最大薪资(元) */
+ @ApiModelProperty("最大薪资(元)")
private Long maxSalary;
- /** 学历要求 对应字典education */
+ @ApiModelProperty("学历要求 对应字典education")
private String education;
- /** 工作经验要求 对应字典experience */
+ @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;
- /** 公司id */
+ @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;
-// @JsonIgnore
+
+ @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;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/FairCollection.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/FairCollection.java
index 6881f5b..9ef1748 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/FairCollection.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/FairCollection.java
@@ -23,17 +23,14 @@ public class FairCollection extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
- /** 岗位id */
@Excel(name = "招聘会id")
@ApiModelProperty("招聘会id")
private Long fairId;
- /** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/FairCompany.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/FairCompany.java
index e5af236..e67a97c 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/FairCompany.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/FairCompany.java
@@ -22,17 +22,14 @@ public class FairCompany extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
- /** 公司id */
@Excel(name = "公司id")
@ApiModelProperty("公司id")
private Long companyId;
- /** 招聘会id */
@Excel(name = "招聘会id")
@ApiModelProperty("招聘会id")
private Long jobFairId;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/File.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/File.java
index 2de4338..ad6843a 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/File.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/File.java
@@ -22,17 +22,14 @@ public class File extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
- /** url */
@Excel(name = "url")
@ApiModelProperty("url")
private String fileUrl;
- /** 业务id */
@Excel(name = "业务id")
@ApiModelProperty("业务id")
private Long bussinessId;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java
index 4a22338..28a38f2 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java
@@ -1,18 +1,18 @@
package com.ruoyi.cms.domain;
-import java.math.BigDecimal;
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import lombok.Data;
-import com.ruoyi.common.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+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;
+
+import java.math.BigDecimal;
/**
* 岗位对象 job
* @author lishundong
@@ -26,42 +26,34 @@ public class Job extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** 工作id */
@TableId(value = "job_id",type = IdType.AUTO)
@ApiModelProperty("工作id")
private Long jobId;
- /** 职位名称 */
@Excel(name = "职位名称")
@ApiModelProperty("职位名称")
private String jobTitle;
- /** 最小薪资(元) */
@Excel(name = "最小薪资", readConverterExp = "元=")
@ApiModelProperty("最小薪资(元)")
private Long minSalary;
- /** 最大薪资(元) */
@Excel(name = "最大薪资", readConverterExp = "元=")
@ApiModelProperty("最大薪资(元)")
private Long maxSalary;
- /** 学历要求 对应字典education */
@Excel(name = "学历要求 对应字典education")
@ApiModelProperty("学历要求 对应字典education")
private String education;
- /** 工作经验要求 对应字典experience */
@Excel(name = "工作经验要求 对应字典experience")
@ApiModelProperty("工作经验要求 对应字典experience")
private String experience;
- /** 用人单位名称 */
@Excel(name = "用人单位名称")
@ApiModelProperty("用人单位名称")
private String companyName;
- /** 工作地点 */
@Excel(name = "工作地点")
@ApiModelProperty("工作地点")
private String jobLocation;
@@ -69,34 +61,28 @@ public class Job extends BaseEntity
@ApiModelProperty("工作地点区县字典代码")
private Integer jobLocationAreaCode;
- /** 发布时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("发布时间")
- private Date postingDate;
+ 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\"")
+ @TableField("\"view\"")
private Long view;
- /** 公司id */
@Excel(name = "公司id")
@ApiModelProperty("公司id")
private Long companyId;
@@ -125,24 +111,41 @@ public class Job extends BaseEntity
@ApiModelProperty("是否发布 0未发布 1发布")
private Integer isPublish;
+
@ApiModelProperty("数据来源")
private String dataSource;
- @ApiModelProperty("数据来源")
+
+ @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;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobApply.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobApply.java
index ac00d3a..c6818da 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobApply.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobApply.java
@@ -22,22 +22,18 @@ public class JobApply extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
- /** 岗位id */
@Excel(name = "岗位id")
@ApiModelProperty("岗位id")
private Long jobId;
- /** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
- /** 匹配度 */
@Excel(name = "匹配度")
@ApiModelProperty("匹配度")
private Long matchingDegree;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobCollection.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobCollection.java
index 5f63dde..4a1f6d2 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobCollection.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobCollection.java
@@ -1,15 +1,14 @@
package com.ruoyi.cms.domain;
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import lombok.Data;
+import com.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 com.ruoyi.common.core.domain.BaseEntity;
-
-import java.util.Date;
+import lombok.Data;
/**
* 用户岗位收藏对象 job_collection
@@ -24,17 +23,14 @@ public class JobCollection extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
- /** 岗位id */
@Excel(name = "岗位id")
@ApiModelProperty("岗位id")
private Long jobId;
- /** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobFair.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobFair.java
index 4f889ef..66bbc85 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobFair.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobFair.java
@@ -27,56 +27,56 @@ public class JobFair extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** 招聘会id */
@TableId(value = "job_fair_id",type = IdType.AUTO)
@ApiModelProperty("招聘会id")
private Long jobFairId;
- /** 招聘会名称 */
@Excel(name = "招聘会名称")
@ApiModelProperty("招聘会名称")
private String name;
- /** 招聘会类型 对应字典 job_fair_type */
@Excel(name = "招聘会类型 对应字典 job_fair_type")
@ApiModelProperty("招聘会类型 对应字典 job_fair_type")
private String jobFairType;
- /** 地点 */
@Excel(name = "地点")
@ApiModelProperty("地点")
private String location;
- /** 纬度 */
@Excel(name = "纬度")
@ApiModelProperty("纬度")
private BigDecimal latitude;
- /** 经度 */
@Excel(name = "经度")
@ApiModelProperty("经度")
private BigDecimal longitude;
+
@ApiModelProperty("描述")
private String description;
+
@ApiModelProperty("地点")
private String address;
- /** 招聘会开始时间 */
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "招聘会开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招聘会开始时间")
private Date startTime;
- /** 招聘会结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "招聘会结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招聘会结束时间")
private Date endTime;
@TableField(exist = false)
+ @ApiModelProperty("公司列表")
private List companyList;
+
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty("程序时间")
private Date queryDate;
+
@TableField(exist = false)
+ @ApiModelProperty("是否收藏")
public Integer isCollection;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobRecomment.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobRecomment.java
index 678cd1f..dbd6a3a 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobRecomment.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobRecomment.java
@@ -23,17 +23,14 @@ public class JobRecomment extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
- /** 岗位id */
@Excel(name = "岗位id")
@ApiModelProperty("岗位id")
private Long jobId;
- /** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Notice.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Notice.java
index e2a161e..1ac25f6 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Notice.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Notice.java
@@ -6,6 +6,7 @@ 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;
@@ -17,19 +18,34 @@ public class Notice extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** ID */
@TableId(value = "notice_id",type = IdType.AUTO)
private Long noticeId;
- /** 公告标题 */
+
+ @ApiModelProperty("标题")
private String title;
+
+ @ApiModelProperty("副标题")
private String subTitle;
+
+ @ApiModelProperty("未读数量")
private Integer notReadCount;
+
+ @ApiModelProperty("是否阅读")
private Integer isRead;
+
@JsonFormat(pattern = "MM-dd")
+ @ApiModelProperty("日期")
private Date date;
+
+ @ApiModelProperty("通知类型")
private String noticeType;
- /** 公告内容 */
+
+ @ApiModelProperty("公告内容")
private String noticeContent;
+
+ @ApiModelProperty("用户id")
private Long userId;
+
+ @ApiModelProperty("业务id")
private Long bussinessId;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/RowWork.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/RowWork.java
index 56d10ad..f1a9778 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/RowWork.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/RowWork.java
@@ -1,9 +1,11 @@
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;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Statics.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Statics.java
index aa2472c..89d6927 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Statics.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Statics.java
@@ -4,9 +4,7 @@ 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;
@@ -24,8 +22,12 @@ public class Statics extends BaseEntity
/** 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;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/SubwayLine.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/SubwayLine.java
index ae3f913..e6a7840 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/SubwayLine.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/SubwayLine.java
@@ -25,12 +25,10 @@ public class SubwayLine extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "line_id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long lineId;
- /** 线路名称 */
@Excel(name = "线路名称")
@ApiModelProperty("线路名称")
private String lineName;
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/SubwayStation.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/SubwayStation.java
index 1fb16c3..c7988c8 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/SubwayStation.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/SubwayStation.java
@@ -23,37 +23,34 @@ public class SubwayStation extends BaseEntity
@TableField(exist = false)
private static final long serialVersionUID = 1L;
- /** id */
@TableId(value = "station_id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long stationId;
- /** 地铁名称 */
@Excel(name = "地铁名称")
@ApiModelProperty("地铁名称")
private String stationName;
- /** 所属线路名称 */
@Excel(name = "所属线路名称")
@ApiModelProperty("所属线路名称")
private String lineName;
- /** 线路id */
@Excel(name = "线路id")
@ApiModelProperty("线路id")
private Long lineId;
- /** 纬度 */
@Excel(name = "纬度")
@ApiModelProperty("纬度")
private BigDecimal latitude;
- /** 经度 */
@Excel(name = "经度")
@ApiModelProperty("经度")
private BigDecimal longitude;
+ @ApiModelProperty("排序")
private Integer stationOrder;
+
+ @ApiModelProperty("地址")
private String address;
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/ESJobSearch.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/ESJobSearch.java
index 73a28ee..b14443e 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/ESJobSearch.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/ESJobSearch.java
@@ -51,4 +51,7 @@ public class ESJobSearch extends Job
private String salaryDictCode;
private String scaleDictCode;
+
+ private String area;
+
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/Staticsquery.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/Staticsquery.java
index c82dd29..6dd20c3 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/Staticsquery.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/Staticsquery.java
@@ -194,29 +194,5 @@ public class Staticsquery {
return Integer.compare(this.quarter, other.quarter);
}
}
-// public static void main(String[] args) {
-// // Month example
-// Staticsquery monthQuery = new Staticsquery();
-// monthQuery.setTimeDimension("月");
-// monthQuery.setStartTime("2024-01");
-// monthQuery.setEndTime("2024-04");
-// System.out.println(monthQuery.generateTimeRange());
-// // Output: [2024-01, 2024-02, 2024-03, 2024-04]
-//
-// // Quarter example
-// Staticsquery quarterQuery = new Staticsquery();
-// quarterQuery.setTimeDimension("季度");
-// quarterQuery.setStartTime("2023-第四季度");
-// quarterQuery.setEndTime("2024-第二季度");
-// System.out.println(quarterQuery.generateTimeRange());
-// // Output: [2023-第4季度, 2024-第1季度, 2024-第2季度]
-//
-// // Year example
-// Staticsquery yearQuery = new Staticsquery();
-// yearQuery.setTimeDimension("年");
-// yearQuery.setStartTime("2020");
-// yearQuery.setEndTime("2024");
-// System.out.println(yearQuery.generateTimeRange());
-// // Output: [2020, 2021, 2022, 2023, 2024]
-// }
+
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/handler/SpeechRecognitionWebSocketHandler.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/handler/SpeechRecognitionWebSocketHandler.java
index 5b146bd..398afd6 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/handler/SpeechRecognitionWebSocketHandler.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/handler/SpeechRecognitionWebSocketHandler.java
@@ -17,9 +17,9 @@ public class SpeechRecognitionWebSocketHandler {
public SpeechRecognitionWebSocketHandler() {
// 初始化语音识别器
- String appKey = "LuvNcrddU3PH8Tau";
- String id = "LTAI5tRBahK93vPNF1JDVEPA";
- String secret = "x95OWb4cV6ccQVtbEJ2Gxm2Uwl2thJ";
+ 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);
}
@@ -44,6 +44,7 @@ public class SpeechRecognitionWebSocketHandler {
recognizerDemo.processStream(session, new ByteArrayInputStream(audioData), 16000);
}
+
/**
* 连接关闭调用的方法
*/
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/handler/SpeechRecognizerAI.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/handler/SpeechRecognizerAI.java
index f0f33ab..17b1203 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/handler/SpeechRecognizerAI.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/handler/SpeechRecognizerAI.java
@@ -7,23 +7,24 @@ 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 accessToken = new AccessToken(id, secret);
+ accessToken = new AccessToken(id, secret);
try {
accessToken.apply(); // 申请 Token
logger.info("Token: {}, Expire Time: {}", accessToken.getToken(), accessToken.getExpireTime());
@@ -114,4 +115,28 @@ public class SpeechRecognizerAI {
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;
+ }
+ }
}
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/AppUserMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/AppUserMapper.java
index 5b0dba2..29fcbbf 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/AppUserMapper.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/AppUserMapper.java
@@ -18,4 +18,6 @@ public interface AppUserMapper extends BaseMapper
* @return APP用户集合
*/
public List selectAppUserList(AppUser appUser);
+
+ List selectByJobId(Long jobId);
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobApplyMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobApplyMapper.java
index 6ead1dd..9c662f9 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobApplyMapper.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobApplyMapper.java
@@ -22,7 +22,7 @@ public interface JobApplyMapper extends BaseMapper
*/
public List selectJobApplyList(JobApply jobApply);
- //todo
+
List applyJob(Long userId);
List candidates(Long jobId);
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ICompanyService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ICompanyService.java
index 500517f..65c8122 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ICompanyService.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ICompanyService.java
@@ -1,5 +1,6 @@
package com.ruoyi.cms.service;
+import java.util.HashMap;
import java.util.List;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.cms.domain.CompanyCard;
@@ -68,4 +69,8 @@ public interface ICompanyService
void importLabel();
void importLabelBank();
+
+ void register(Company company);
+
+ Company registerStatus();
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IESJobSearchService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IESJobSearchService.java
index f485a83..e109201 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IESJobSearchService.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IESJobSearchService.java
@@ -63,4 +63,8 @@ public interface IESJobSearchService
ESJobDocument selectById(Long jobId);
void fix();
+
+ void updateJob(Long jobId);
+
+ void deleteJob(Long jobId);
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobCollectionService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobCollectionService.java
index 3b5921d..4dfda81 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobCollectionService.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobCollectionService.java
@@ -4,6 +4,7 @@ import java.util.List;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.JobCollection;
+import com.ruoyi.cms.domain.vo.CompetitivenessResponse;
/**
* 用户岗位收藏Service接口
@@ -70,5 +71,5 @@ public interface IJobCollectionService
List collectionJob();
- String competitiveness(Long jobId);
+ CompetitivenessResponse competitiveness(Long jobId);
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java
index 07a778a..63998ec 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java
@@ -78,7 +78,7 @@ public interface IJobService
Job selectJobByJobIdApp(Long jobId);
- void importRow();
+ void importRow(String path);
List candidates(Long jobId);
@@ -88,13 +88,5 @@ public interface IJobService
List littleVideoRandom(String uuid, Integer count,String jobTitle);
- void updateEs();
-
- AppWechatEntity getWechatUrl(String wechatUrl);
-
- String insertTemp(Job job);
-
- String htmlGen(Long id);
-
- void fix();
+ void publishJob(Job job);
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppReviewJobServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppReviewJobServiceImpl.java
index 5ecd53e..56c5ff7 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppReviewJobServiceImpl.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppReviewJobServiceImpl.java
@@ -1,25 +1,20 @@
package com.ruoyi.cms.service.impl;
-import java.text.SimpleDateFormat;
-import java.util.List;
-import java.util.Arrays;
-import java.util.stream.Collectors;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cms.domain.AppReviewJob;
-import com.ruoyi.cms.domain.Company;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.query.MineJobQuery;
import com.ruoyi.cms.mapper.AppReviewJobMapper;
import com.ruoyi.cms.service.IAppReviewJobService;
-import com.ruoyi.cms.service.IJobService;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
* 用户岗位浏览记录Service业务层处理
@@ -32,8 +27,7 @@ public class AppReviewJobServiceImpl extends ServiceImpl imple
companyLabelMapper.insert(label);
});
}
+
+ @Override
+ public void register(Company company) {
+ Long userId = SecurityUtils.getUserId();
+ company.setUserId(userId);
+ if(companyMapper.selectCount(Wrappers.lambdaQuery().eq(Company::getName, company.getName()).in(Company::getStatus,Arrays.asList(0,1)))>0){
+ throw new ServiceException(company.getName()+"已经存在");
+ }
+ company.setStatus(0);
+ }
+
+ @Override
+ public Company registerStatus() {
+ Long userId = SecurityUtils.getUserId();
+ Company company = companyMapper.selectOne(Wrappers.lambdaQuery().eq(Company::getUserId, userId).orderByDesc(Company::getUpdateTime));
+ return company;
+ }
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java
index b75fe0f..0b1b9e6 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java
@@ -75,7 +75,7 @@ public class ESJobSearchImpl implements IESJobSearchService
public void resetTextCache() {
logger.info("正在重新刷新es");
// 删除并重新创建索引
- esJobDocumentMapper.deleteIndex("job_document_gt");
+ esJobDocumentMapper.deleteIndex("job_document");
esJobDocumentMapper.createIndex();
// 分批次处理数据
@@ -107,14 +107,14 @@ public class ESJobSearchImpl implements IESJobSearchService
if(!StringUtil.isEmptyOrNull(job.getExperience())){
esJobDocument.setExperience_int(Integer.valueOf(job.getExperience()));
}else {
- esJobDocument.setExperience("8");
- esJobDocument.setEducation_int(8);
+ esJobDocument.setExperience("0");
+ esJobDocument.setEducation_int(0);
}
if(!StringUtil.isEmptyOrNull(job.getEducation())){
esJobDocument.setEducation_int(Integer.valueOf(job.getEducation()));
}else {
- esJobDocument.setEducation("11");
- esJobDocument.setExperience_int(11);
+ esJobDocument.setEducation("-1");
+ esJobDocument.setExperience_int(-1);
}
if (esJobDocument.getLatitude() != null) {
esJobDocument.setLatAndLon(esJobDocument.getLatitude().toString() + "," + esJobDocument.getLongitude().toString());
@@ -137,37 +137,97 @@ public class ESJobSearchImpl implements IESJobSearchService
@Override
public List selectTextListExceptJobId(ESJobSearch esJobSearch, List jobIds) {
+ ESJobSearch newSearch = new ESJobSearch();
+ BeanUtils.copyProperties(esJobSearch,newSearch);
//查询
if(SecurityUtils.isLogin()){
AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
- if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())&&!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){
- esJobSearch.setJobTitle(String.join(",", appUser.getJobTitle()));
+ if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
+ List jobTitle = appUser.getJobTitle();
+ newSearch.setJobTitle(String.join(",", jobTitle));
}
- if(!StringUtil.isEmptyOrNull(appUser.getEducation())&&!StringUtil.isEmptyOrNull(esJobSearch.getEducation())){
- esJobSearch.setEducation(appUser.getEducation());
+ if(!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){
+ newSearch.setJobTitle(esJobSearch.getJobTitle());
}
+ if(!StringUtil.isEmptyOrNull(appUser.getEducation())){
+ newSearch.setEducation(appUser.getEducation());
+ }
+ if(!StringUtil.isEmptyOrNull(esJobSearch.getEducation())){
+ newSearch.setEducation(esJobSearch.getEducation());
+ }
+
if(!StringUtil.isEmptyOrNull(appUser.getArea())){
- esJobSearch.setJobLocationAreaCode(Integer.valueOf(appUser.getArea()));
+ newSearch.setArea(appUser.getArea());
}
- if(!StringUtil.isEmptyOrNull(appUser.getExperience())&&!StringUtil.isEmptyOrNull(esJobSearch.getExperience())){
- esJobSearch.setExperience(appUser.getExperience());
+ if(!StringUtil.isEmptyOrNull(esJobSearch.getArea())){
+ newSearch.setArea(esJobSearch.getArea());
+ }
+ if(!StringUtil.isEmptyOrNull(appUser.getExperience())){
+ newSearch.setExperience(appUser.getExperience());
+ }
+ if(!StringUtil.isEmptyOrNull(esJobSearch.getExperience())){
+ newSearch.setExperience(esJobSearch.getExperience());
}
if(!StringUtil.isEmptyOrNull(appUser.getSalaryMax())){
- esJobSearch.setMaxSalary(Long.valueOf(appUser.getSalaryMax()));
+ newSearch.setMaxSalary(Long.valueOf(appUser.getSalaryMax()));
}
if(!StringUtil.isEmptyOrNull(appUser.getSalaryMin())){
- esJobSearch.setMaxSalary(Long.valueOf(appUser.getSalaryMin()));
+ newSearch.setMinSalary(Long.valueOf(appUser.getSalaryMin()));
}
}
- LambdaEsQueryWrapper wrapper = getWrapper(esJobSearch);
- if(!ListUtil.isListEmptyOrNull(jobIds)){
- wrapper.in(ESJobDocument::getJobId, jobIds);
- }
+ LambdaEsQueryWrapper wrapper = getWrapper(newSearch,jobIds);
+
//todo 暂时
wrapper.limit(esJobSearch.getPageSize());
- wrapper.orderByDesc(ESJobDocument::getCompanyId);
- return esJobDocumentMapper.selectList(wrapper);
+ List esJobDocuments = esJobDocumentMapper.selectList(wrapper);
+
+ if (esJobDocuments.size() < esJobSearch.getPageSize()) {
+ // 定义要逐步放宽的搜索条件字段
+ List relaxConditions = new ArrayList<>();
+ relaxConditions.add(() -> newSearch.setArea(null));
+ relaxConditions.add(() -> newSearch.setExperience(null));
+ relaxConditions.add(() -> newSearch.setMaxSalary(null));
+ relaxConditions.add(() -> newSearch.setMinSalary(null));
+ relaxConditions.add(() -> newSearch.setEducation(null));
+ relaxConditions.add(()-> newSearch.setJobTitle(null));
+ // 保存所有查询到的文档
+ List allDocuments = new ArrayList<>(esJobDocuments);
+
+ // 记录已经放宽的条件数量
+ int relaxedConditions = 0;
+
+ // 继续放宽条件直到满足分页或所有条件都已放宽
+ while (allDocuments.size() < esJobSearch.getPageSize()
+ && relaxedConditions < relaxConditions.size()) {
+ // 放宽下一个条件
+ relaxConditions.get(relaxedConditions).run();
+ relaxedConditions++;
+
+ // 查询新增的文档(不包含之前已经查询到的)
+ wrapper = getWrapper(newSearch, jobIds);
+ wrapper.limit(esJobSearch.getPageSize() - allDocuments.size());
+ if (!allDocuments.isEmpty()) {
+ // 排除已经查询到的文档ID
+ Set existingIds = allDocuments.stream()
+ .map(ESJobDocument::getId)
+ .collect(Collectors.toSet());
+ wrapper.not().in(ESJobDocument::getId, existingIds);
+ }
+
+ List newDocuments = esJobDocumentMapper.selectList(wrapper);
+ allDocuments.addAll(newDocuments);
+ }
+
+ // 如果总数超过分页大小,截取所需数量
+ if (allDocuments.size() > esJobSearch.getPageSize()) {
+ esJobDocuments = allDocuments.subList(0, esJobSearch.getPageSize());
+ } else {
+ esJobDocuments = allDocuments;
+ }
+ }
+
+ return esJobDocuments;
}
@@ -221,7 +281,7 @@ public class ESJobSearchImpl implements IESJobSearchService
public EsPageInfo nearJob(ESJobSearch jobQuery) {
Integer pageNum = jobQuery.getCurrent();
Integer pageSize = jobQuery.getPageSize();
- LambdaEsQueryWrapper wrapper = getWrapper(jobQuery);
+ LambdaEsQueryWrapper wrapper = getWrapper(jobQuery,null);
EsPageInfo esJobDocumentEsPageInfo = esJobDocumentMapper.pageQuery(wrapper, pageNum, pageSize);
return esJobDocumentEsPageInfo;
}
@@ -230,7 +290,7 @@ public class ESJobSearchImpl implements IESJobSearchService
public EsPageInfo countyJobList(ESJobSearch jobQuery) {
Integer pageNum = jobQuery.getCurrent();
Integer pageSize = jobQuery.getPageSize();
- LambdaEsQueryWrapper wrapper = getWrapper(jobQuery);
+ LambdaEsQueryWrapper wrapper = getWrapper(jobQuery, null);
if(jobQuery.getCountyIds()!=null){
wrapper.and(x->x.in(ESJobDocument::getJobLocationAreaCode,jobQuery.getCountyIds()));
}
@@ -242,7 +302,7 @@ public class ESJobSearchImpl implements IESJobSearchService
public EsPageInfo subway(ESJobSearch jobQuery) {
Integer pageNum = jobQuery.getCurrent();
Integer pageSize = jobQuery.getPageSize();
- LambdaEsQueryWrapper wrapper = getWrapper(jobQuery);
+ LambdaEsQueryWrapper wrapper = getWrapper(jobQuery,null);
EsPageInfo esJobDocumentEsPageInfo = esJobDocumentMapper.pageQuery(wrapper, pageNum, pageSize);
return esJobDocumentEsPageInfo;
}
@@ -251,7 +311,7 @@ public class ESJobSearchImpl implements IESJobSearchService
public EsPageInfo commercialArea(ESJobSearch jobQuery) {
Integer pageNum = jobQuery.getCurrent();
Integer pageSize = jobQuery.getPageSize();
- LambdaEsQueryWrapper wrapper = getWrapper(jobQuery);
+ LambdaEsQueryWrapper wrapper = getWrapper(jobQuery,null);
if(jobQuery.getLongitude()!=null){
wrapper.geoDistance(ESJobDocument::getLatAndLon,Double.valueOf(jobQuery.getRadius()), DistanceUnit.KILOMETERS,new GeoPoint(Double.parseDouble(jobQuery.getLatitude().toString()), Double.parseDouble(jobQuery.getLongitude().toString())));
}
@@ -263,7 +323,6 @@ public class ESJobSearchImpl implements IESJobSearchService
public List littleVideo(ESJobSearch esJobSearch) {
LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>();
wrapper.eq(ESJobDocument::getIsExplain, 1);
- wrapper.orderByDesc(ESJobDocument::getIsExplain);
wrapper.limit(esJobSearch.getPageSize());
return esJobDocumentMapper.selectList(wrapper);
}
@@ -297,29 +356,17 @@ public class ESJobSearchImpl implements IESJobSearchService
return esJobDocumentMapper.selectList(wrapper);
}
- private LambdaEsQueryWrapper getWrapper(ESJobSearch esJobSearch){
- List searchList = new ArrayList<>();
- if(!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){
- searchList.add(esJobSearch.getJobTitle());
- }else {
- if(SecurityUtils.isLogin()){
- AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
- List jobTitleList = appUser.getJobTitle();
- if(!jobTitleList.isEmpty()){
- searchList.addAll(jobTitleList);
- }
- }
- }
+ private LambdaEsQueryWrapper getWrapper(ESJobSearch esJobSearch,List jobIds){
+
LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>();
- if (!searchList.isEmpty())
- {
- for (String keyWords:searchList){
- wrapper.or(a -> a.like(ESJobDocument::getJobTitle, keyWords, 5.0f)
- .or()
- .like(ESJobDocument::getDescription, keyWords, 1.0f)
+ if(!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){
+ for (String keyWord:esJobSearch.getJobTitle().split(",")) {
+ wrapper.and(a -> a.match(ESJobDocument::getJobTitle, keyWord, 5.0f)
);
}
+
}
+
if(esJobSearch.getLongitude()!=null){
wrapper.geoDistance(ESJobDocument::getLatAndLon,Double.valueOf(esJobSearch.getRadius()), DistanceUnit.KILOMETERS,new GeoPoint(Double.parseDouble(esJobSearch.getLatitude().toString()), Double.parseDouble(esJobSearch.getLongitude().toString())));
}
@@ -344,6 +391,10 @@ public class ESJobSearchImpl implements IESJobSearchService
Integer maxValue = StringUtil.findMaxValue(esJobSearch.getScale());
wrapper.and(x->x.le(ESJobDocument::getScale,maxValue));
}
+ if(!StringUtil.isEmptyOrNull(esJobSearch.getArea())){
+ List integers = StringUtil.convertStringToIntegerList(esJobSearch.getArea());
+ wrapper.and(x->x.in(ESJobDocument::getJobLocationAreaCode,integers));
+ }
if(Objects.nonNull(esJobSearch.getOrder())){
if(esJobSearch.getOrder()==1){
wrapper.orderByDesc(ESJobDocument::getIsHot);
@@ -352,7 +403,9 @@ public class ESJobSearchImpl implements IESJobSearchService
wrapper.orderByDesc(ESJobDocument::getPostingDate);
}
}
- //TODO LIST
+ if(!ListUtil.isListEmptyOrNull(jobIds)){
+ wrapper.not().in(ESJobDocument::getJobId, jobIds);
+ }
return wrapper;
}
@@ -362,6 +415,13 @@ public class ESJobSearchImpl implements IESJobSearchService
Integer pageNum = jobQuery.getCurrent();
Integer pageSize = jobQuery.getPageSize();
LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>();
+// if(SecurityUtils.isLogin()){
+// AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
+// if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
+// List jobTitle = appUser.getJobTitle();
+// jobQuery.setJobTitle(String.join(",", jobTitle));
+// }
+// }
if(!StringUtil.isEmptyOrNull(jobQuery.getJobTitle())){
wrapper.and(a->a.match(ESJobDocument::getJobTitle,jobQuery.getJobTitle(),5.0f)
.or()
@@ -370,7 +430,10 @@ public class ESJobSearchImpl implements IESJobSearchService
if(!StringUtil.isEmptyOrNull(jobQuery.getEducation())){
wrapper.and(a->a.le(ESJobDocument::getEducation,jobQuery.getEducation()));
}
-
+ if(!StringUtil.isEmptyOrNull(jobQuery.getArea())){
+ List integers = StringUtil.convertStringToIntegerList(jobQuery.getArea());
+ wrapper.and(x->x.in(ESJobDocument::getJobLocationAreaCode,integers));
+ }
if(!StringUtil.isEmptyOrNull(jobQuery.getExperience())){
wrapper.and(a->a.le(ESJobDocument::getExperience,jobQuery.getExperience()));
}
@@ -430,7 +493,51 @@ public class ESJobSearchImpl implements IESJobSearchService
for (ESJobDocument esJobDocument : esJobDocuments) {
Job job = new Job();
BeanUtils.copyProperties(esJobDocument,job);
+ job.setJobId(null);
jobMapper.insert(job);
}
}
+
+ @Override
+ public void deleteJob(Long jobId) {
+ LambdaEsQueryWrapper lambdaEsQueryWrapper = new LambdaEsQueryWrapper();
+ lambdaEsQueryWrapper.eq(ESJobDocument::getJobId,jobId);
+ esJobDocumentMapper.delete(lambdaEsQueryWrapper);
+ }
+
+ @Override
+ public void updateJob(Long jobId) {
+ ESJobDocument esJobDocument = new ESJobDocument();
+ Job job = jobMapper.selectById(jobId);
+
+ BeanUtils.copyBeanProp(esJobDocument, job);
+ esJobDocument.setAppJobUrl("https://ks.zhaopinzao8dian.com/app#/packageA/pages/post/post?jobId="+ Base64.getEncoder().encodeToString(String.valueOf(job.getJobId()).getBytes()));
+ if(!StringUtil.isEmptyOrNull(job.getScale())){
+ esJobDocument.setScale(Integer.valueOf(job.getScale()));
+ }else {
+ esJobDocument.setScale(0);
+ }
+ if(!StringUtil.isEmptyOrNull(job.getExperience())){
+ esJobDocument.setExperience_int(Integer.valueOf(job.getExperience()));
+ }else {
+ esJobDocument.setExperience("0");
+ esJobDocument.setExperience_int(0);
+ }
+ if(!StringUtil.isEmptyOrNull(job.getEducation())){
+ esJobDocument.setEducation_int(Integer.valueOf(job.getEducation()));
+ }else {
+ esJobDocument.setEducation("-1");
+ esJobDocument.setEducation_int(-1);
+ }
+ if (esJobDocument.getLatitude() != null) {
+ esJobDocument.setLatAndLon(esJobDocument.getLatitude().toString() + "," + esJobDocument.getLongitude().toString());
+ }
+ if(StringUtil.isEmptyOrNull(job.getCompanyNature())){
+ esJobDocument.setCompanyNature("6");
+ }
+ LambdaEsQueryWrapper lambdaEsQueryWrapper = new LambdaEsQueryWrapper();
+ lambdaEsQueryWrapper.eq(ESJobDocument::getJobId,job.getJobId());
+ esJobDocumentMapper.delete(lambdaEsQueryWrapper);
+ esJobDocumentMapper.insert(esJobDocument);
+ }
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobCollectionServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobCollectionServiceImpl.java
index 36043db..3f33709 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobCollectionServiceImpl.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobCollectionServiceImpl.java
@@ -1,21 +1,24 @@
package com.ruoyi.cms.service.impl;
-import java.util.List;
-import java.util.Arrays;
+import java.time.LocalDate;
+import java.time.Period;
+import java.time.ZoneId;
+import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.cms.domain.AppUser;
-import com.ruoyi.cms.domain.Job;
-import com.ruoyi.cms.domain.JobApply;
+import com.ruoyi.cms.domain.*;
+import com.ruoyi.cms.domain.vo.CompetitivenessResponse;
+import com.ruoyi.cms.domain.vo.RadarChart;
import com.ruoyi.cms.mapper.AppUserMapper;
import com.ruoyi.cms.mapper.JobApplyMapper;
+import com.ruoyi.cms.mapper.JobMapper;
+import com.ruoyi.cms.service.IBussinessDictTypeService;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.ruoyi.cms.mapper.JobCollectionMapper;
-import com.ruoyi.cms.domain.JobCollection;
import com.ruoyi.cms.service.IJobCollectionService;
import org.springframework.transaction.annotation.Transactional;
@@ -34,6 +37,10 @@ public class JobCollectionServiceImpl extends ServiceImpl appUsers = appUserMapper.selectByJobId(jobId);
+ Long applyCount = (long) appUsers.size();
+
+ if (appUsers.isEmpty()) {
+ // 没有人申请,返回默认值或0
+ CompetitivenessResponse emptyResponse = new CompetitivenessResponse();
+ emptyResponse.setTotalApplicants(0);
+ emptyResponse.setMatchScore(0);
+ emptyResponse.setRank(0);
+ emptyResponse.setPercentile(0);
+ RadarChart radarChart = new RadarChart();
+ emptyResponse.setRadarChart(radarChart);
+ return emptyResponse;
+ }
+
+ // ================== 数据字典映射(用于排序比较)==================
+ // 假设你有字典工具类,如 DictUtils.getSort("education", value) 返回排序值
+ // 这里我们用 Map 模拟字典排序(越小要求越低)
+ // 获取字典数据
+ List educationDict = iBussinessDictTypeService.selectDictDataByType("education");
+ List experienceDict = iBussinessDictTypeService.selectDictDataByType("experience");
+
+ // 构建学历排序映射:dictLabel -> dictSort(越小要求越低)
+ Map educationRank = educationDict.stream()
+ .collect(Collectors.toMap(
+ BussinessDictData::getDictLabel,
+ data -> Math.toIntExact(data.getDictSort()),
+ (a, b) -> a // 若有重复 key,保留第一个
+ ));
+
+ Map experienceRank = experienceDict.stream()
+ .collect(Collectors.toMap(
+ BussinessDictData::getDictLabel,
+ data -> Math.toIntExact(data.getDictSort()),
+ (a, b) -> a
+ ));
+
+ // ================== 提取岗位要求 ==================
+ Integer jobEducationRank = educationRank.getOrDefault(job.getEducation(), 999);
+ Integer jobExperienceRank = experienceRank.getOrDefault(job.getExperience(), 999);
+ Integer jobMinSalary = job.getMinSalary() != null ? job.getMinSalary().intValue() : 0;
+ String jobLocation = job.getJobLocation();
+
+ // ================== 聚合用户数据用于分析 ==================
+ List userScores = new ArrayList<>();
+
+ for (AppUser user : appUsers) {
+ int matchScore = 0;
+ int totalFactors = 6; // 年龄、经验、学历、技能(暂用期望岗位匹配)、薪资、地点
+
+ // 1. 学历匹配(越接近越好)
+ Integer userEduRank = educationRank.getOrDefault(user.getEducation(), 999);
+ if (userEduRank <= jobEducationRank) {
+ matchScore += 1; // 达标
+ } else if (userEduRank == jobEducationRank + 1) {
+ matchScore += 0.5; // 略高也算匹配
+ }
+
+ // 2. 经验匹配
+ Integer userExpRank = experienceRank.getOrDefault(user.getExperience(), 999);
+ if (userExpRank >= jobExperienceRank) {
+ matchScore += 1; // 满足经验要求
+ }
+
+ // 3. 薪资匹配(用户期望 <= 岗位最大薪资,且不低于最小太多)
+ Integer userMinSalary = parseSalary(user.getSalaryMin());
+ if (userMinSalary != null && userMinSalary <= job.getMaxSalary()) {
+ if (userMinSalary >= job.getMinSalary()) {
+ matchScore += 1;
+ } else if (userMinSalary >= job.getMinSalary() * 0.8) {
+ matchScore += 0.5;
+ }
+ }
+
+ // 4. 地点匹配
+ if (user.getArea() != null && user.getArea().contains(jobLocation) || jobLocation.contains(user.getArea())) {
+ matchScore += 1;
+ }
+
+ // 5. 年龄估算(从生日计算)
+ int userAge = getUserAge(user.getBirthDate());
+ // 假设最佳年龄区间为 22-35,越接近越匹配
+ if (userAge >= 22 && userAge <= 35) {
+ matchScore += 1;
+ } else if (userAge >= 18 && userAge <= 45) {
+ matchScore += 0.5;
+ }
+
+ // 6. 技能/岗位匹配(简化:期望岗位是否包含该岗位关键词)
+ boolean jobMatch = user.getJobTitle() != null &&
+ user.getJobTitle().stream().anyMatch(title -> title.contains(job.getJobTitle()) || job.getJobTitle().contains(title));
+ if (jobMatch) {
+ matchScore += 1;
+ }
+
+ // 匹配度:0-6 → 映射为 0-100 分
+ int finalScore = (int) Math.round((matchScore / (double) totalFactors) * 100);
+ userScores.add(new UserCompetitiveness(user, finalScore));
+ }
+
+ // 按匹配度降序
+ userScores.sort((a, b) -> Integer.compare(b.getScore(), a.getScore()));
+
+ // ================== 计算雷达图数据(取平均值)==================
+ RadarChart radarChart = new RadarChart();
+
+ double avgAgeScore = userScores.stream().mapToInt(u -> getAgeScore(u.getUser().getBirthDate())).average().orElse(0);
+ double avgExperienceScore = userScores.stream().mapToInt(u -> getExperienceScore(u.getUser().getExperience(), job.getExperience(), experienceRank)).average().orElse(0);
+ double avgEducationScore = userScores.stream().mapToInt(u -> getEducationScore(u.getUser().getEducation(), job.getEducation(), educationRank)).average().orElse(0);
+ double avgSkillScore = userScores.stream().mapToInt(u -> getSkillScore(u.getUser(), job)).average().orElse(0);
+ double avgSalaryScore = userScores.stream().mapToInt(u -> getSalaryScore(u.getUser(), job)).average().orElse(0);
+ double avgLocationScore = userScores.stream().mapToInt(u -> getLocationScore(u.getUser(), job)).average().orElse(0);
+
+ radarChart.setAge((int) avgAgeScore);
+ radarChart.setExperience((int) avgExperienceScore);
+ radarChart.setEducation((int) avgEducationScore);
+ radarChart.setSkill((int) avgSkillScore);
+ radarChart.setSalary((int) avgSalaryScore);
+ radarChart.setLocation((int) avgLocationScore);
+
+ // ================== 返回响应 ==================
+ CompetitivenessResponse response = new CompetitivenessResponse();
+ response.setTotalApplicants(Math.toIntExact(applyCount));
+
+ // Top 用户的匹配分
+ int topMatchScore = userScores.get(0).getScore();
+ response.setMatchScore(topMatchScore);
+
+ // 排名(Top1)
+ response.setRank(1);
+
+ // 百分位:top用户超过多少人?(100%)
+ response.setPercentile(100);
+
+ response.setRadarChart(radarChart);
+
+ return response;
+ }
+ private int getUserAge(Date birthDate) {
+ if (birthDate == null) return 0;
+ try {
+ LocalDate birth = birthDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ return Period.between(birth, LocalDate.now()).getYears();
+ } catch (Exception e) {
+ return 0;
+ }
+ }
+ private int getEducationScore(String userEdu, String jobEdu, Map rankMap) {
+ if (userEdu == null || jobEdu == null) return 60;
+ Integer u = rankMap.getOrDefault(userEdu, 999);
+ Integer j = rankMap.getOrDefault(jobEdu, 999);
+ if (u <= j) return 90;
+ if (u == j + 1) return 75;
+ return 60;
+ }
+ private int getExperienceScore(String userExp, String jobExp, Map rankMap) {
+ if (userExp == null || jobExp == null) return 60;
+ Integer u = rankMap.getOrDefault(userExp, 999);
+ Integer j = rankMap.getOrDefault(jobExp, 999);
+ if (u >= j) return 90;
+ if (u >= j - 1) return 75; // 容忍略低一年
+ return 60;
+ }
+ private int getSalaryScore(AppUser user, Job job) {
+ Integer min = parseSalary(user.getSalaryMin());
+ if (min == null) return 60;
+ if (job.getMinSalary() == null || job.getMaxSalary() == null) return 60;
+
+ long jobMin = job.getMinSalary();
+ long jobMax = job.getMaxSalary();
+
+ if (min >= jobMin && min <= jobMax) return 90;
+ if (min >= jobMin * 0.8 && min <= jobMax * 1.2) return 75;
+ return 60;
+ }
+ private int getLocationScore(AppUser user, Job job) {
+ String area = user.getArea();
+ String loc = job.getJobLocation();
+ if (area != null && (area.contains(loc) || loc.contains(area))) return 90;
+ return 60;
+ }
+ private int getSkillScore(AppUser user, Job job) {
+ String jobTitle = job.getJobTitle();
+ List userTitles = user.getJobTitle();
+ if (jobTitle == null || userTitles == null || userTitles.isEmpty()) return 60;
+
+ boolean match = userTitles.stream()
+ .anyMatch(title -> title != null &&
+ (title.contains(jobTitle) || jobTitle.contains(title)));
+ return match ? 90 : 60;
+ }
+ private Integer parseSalary(String salaryStr) {
+ if (salaryStr == null || salaryStr.trim().isEmpty()) return null;
+ try {
+ // 提取第一个连续数字
+ String numberStr = salaryStr.replaceAll("[^0-9]", "");
+ return numberStr.isEmpty() ? null : Integer.parseInt(numberStr);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+ private int getAgeScore(Date birthDate) {
+ int age = getUserAge(birthDate);
+ if (age == 0) return 60; // 无法获取年龄,默认低分
+ if (age >= 22 && age <= 35) return 90;
+ if (age >= 18 && age <= 45) return 75;
+ return 60;
+ }
+ private static class UserCompetitiveness {
+ private final AppUser user;
+ private final int score;
+
+ public UserCompetitiveness(AppUser user, int score) {
+ this.user = user;
+ this.score = score;
+ }
+
+ public AppUser getUser() {
+ return user;
+ }
+
+ public int getScore() {
+ return score;
+ }
}
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java
index 2fe3279..e1e1d7d 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java
@@ -33,6 +33,8 @@ import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -253,12 +255,17 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
@Override
public int updateJob(Job job)
{
+ LocalDateTime now = LocalDateTime.now();
+ String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ //修改岗位状态
//修改岗位状态
if(job.getIsPublish()!=null) {
if(job.getIsPublish()==1){
- job.setPostingDate(new Date());
+ job.setPostingDate(formattedDate);
+ iesJobSearchService.updateJob(job.getJobId());
}else {
job.setPostingDate(null);
+ iesJobSearchService.deleteJob(job.getJobId());
}
}
return jobMapper.updateById(job);
@@ -295,7 +302,6 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
}else {
jobList = cacheObject.toList(Long.class);
}
- //从kafka中消费 bert模型跑出来的结果
//从es中查询
List jobListResult = iesJobSearchService.selectTextListExceptJobId(esJobSearch,jobList);
//存入当前session中查看的岗位 避免重复 todo 定时删除 key上保存用户信息
@@ -331,41 +337,36 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
@Override
public Job selectJobByJobIdApp(Long jobId) {
- try {
- Job job = new Job();
- ESJobDocument esJobDocument = iesJobSearchService.selectById(jobId);
- BeanUtils.copyProperties(esJobDocument,job);
+ Job job = jobMapper.selectById(jobId);
//查询公司信息
if(Objects.nonNull(job.getCompanyId())){
Company company = companyMapper.selectById(job.getCompanyId());
job.setCompany(company);
}
-// if(SecurityUtils.isLogin()){
-// //查询申请信息
-// Long applyCount = jobApplyMapper.selectCount(Wrappers.lambdaQuery().eq(JobApply::getJobId, jobId).eq(JobApply::getUserId, SecurityUtils.getUserId()));
-// job.setIsApply(applyCount>0?1:0);
-// //查询收藏信息
-// Long collectionCount = jobCollectionMapper.selectCount(Wrappers.lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, SecurityUtils.getUserId()));
-// job.setIsCollection(collectionCount>0?1:0);
-// //todo asyn
-// //保存浏览记录
-// List appReviewJobs = appReviewJobMapper.selectList(Wrappers.lambdaQuery().eq(AppReviewJob::getUserId, SecurityUtils.getUserId()).eq(AppReviewJob::getJobId, jobId));
-// //之前相同岗位的记录删除 保存最新的浏览记录
-// if(!appReviewJobs.isEmpty()){
-// appReviewJobMapper.deleteBatchIds(appReviewJobs.stream().map(AppReviewJob::getId).collect(Collectors.toList()));
-// }
-// AppReviewJob appReviewJob = new AppReviewJob();
-// appReviewJob.setUserId(SecurityUtils.getUserId());
-// appReviewJob.setReviewDate(new Date());
-// appReviewJob.setJobId(jobId);
-// appReviewJobMapper.insert(appReviewJob);
-// }
- //浏览量+1
-// this.view(jobId);
+ if(SecurityUtils.isLogin()){
+ //查询申请信息
+ Long applyCount = jobApplyMapper.selectCount(Wrappers.lambdaQuery().eq(JobApply::getJobId, jobId).eq(JobApply::getUserId, SecurityUtils.getUserId()));
+ job.setIsApply(applyCount>0?1:0);
+ //查询收藏信息
+ Long collectionCount = jobCollectionMapper.selectCount(Wrappers.lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, SecurityUtils.getUserId()));
+ job.setIsCollection(collectionCount>0?1:0);
+ //todo asyn
+ //保存浏览记录
+ List appReviewJobs = appReviewJobMapper.selectList(Wrappers.lambdaQuery().eq(AppReviewJob::getUserId, SecurityUtils.getUserId()).eq(AppReviewJob::getJobId, jobId));
+ //之前相同岗位的记录删除 保存最新的浏览记录
+ if(!appReviewJobs.isEmpty()){
+ appReviewJobMapper.deleteBatchIds(appReviewJobs.stream().map(AppReviewJob::getId).collect(Collectors.toList()));
+ }
+ AppReviewJob appReviewJob = new AppReviewJob();
+ appReviewJob.setUserId(SecurityUtils.getUserId());
+ LocalDateTime now = LocalDateTime.now();
+ String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ appReviewJob.setReviewDate(formattedDate);
+ appReviewJob.setJobId(jobId);
+ appReviewJobMapper.insert(appReviewJob);
+ }
+ this.view(jobId);
return job;
- }catch (Exception e){
- return this.selectJobByJobId(jobId);
- }
}
@@ -398,12 +399,9 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
@Override
public List littleVideo(ESJobSearch esJobSearch) {
- return iesJobSearchService.littleVideo(esJobSearch);
- }
- @Override
- public void updateEs() {
- iesJobSearchService.updateEs();
+ return iesJobSearchService.littleVideo(esJobSearch);
+
}
@Override
@@ -450,77 +448,12 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
return esJobDocuments;
}
- // @Override
-// public void importRow() {
-//
-//
-// try {
-// logger.info("开始导入Excel数据...");
-//
-// // 读取Excel文件中的数据
-// List rowWorks = ExcelToObject.readExcelToObjects("D:\\QD\\青岛市近一个月数据.xlsx", RowWork.class);
-// logger.info("从Excel中读取到 {} 条数据", rowWorks.size());
-//
-// // 从数据库中获取已有的数据
-// List rowWorksInMysql = jobMapper.selectAllRowWork();
-// logger.info("从数据库中查询到 {} 条已有数据", rowWorksInMysql.size());
-//
-// // 创建一个Set来存储数据库中已有的记录的唯一标识
-// Set existingRecords = new HashSet<>();
-// for (RowWork rowWork : rowWorksInMysql) {
-// String uniqueKey = rowWork.getJobCategory() + "_" + rowWork.getAca112() + "_" + rowWork.getAcb202();
-// existingRecords.add(uniqueKey);
-// }
-// logger.info("已加载 {} 条唯一标识到内存", existingRecords.size());
-//
-// // 创建一个列表来收集待插入的数据
-// List batchList = new ArrayList<>();
-// int batchSize = 100; // 每批次插入的数量
-// int totalInserted = 0; // 记录总共插入的数据量
-//
-// // 遍历Excel中的数据,进行去重并收集待插入的数据
-// for (RowWork rowWork : rowWorks) {
-// String uniqueKey = rowWork.getStd_class() + "_" + rowWork.getAca112() + "_" + rowWork.getAcb202();
-// if (!existingRecords.contains(uniqueKey)) {
-// batchList.add(rowWork); // 添加到待插入列表
-// existingRecords.add(uniqueKey); // 添加到已存在集合,避免重复
-// // 当待插入列表达到批次大小时,执行批量插入
-// if (batchList.size() >= batchSize) {
-// try {
-// jobMapper.insertBatchRowWork(batchList); // 批量插入
-// totalInserted += batchList.size();
-// logger.info("成功插入 {} 条数据,当前总共插入 {} 条数据", batchList.size(), totalInserted);
-// batchList.clear(); // 清空列表,准备下一批次
-// } catch (Exception e) {
-// logger.error("批量插入失败: " + e.getMessage(), e);
-// }
-// }
-// }
-// }
-//
-// // 插入剩余的数据(如果不足100条)
-// if (!batchList.isEmpty()) {
-// try {
-// jobMapper.insertBatchRowWork(batchList); // 插入剩余数据
-// totalInserted += batchList.size();
-// logger.info("成功插入剩余的 {} 条数据,当前总共插入 {} 条数据", batchList.size(), totalInserted);
-// } catch (Exception e) {
-// logger.error("批量插入剩余数据失败: " + e.getMessage(), e);
-// }
-// }
-//
-// logger.info("数据导入完成,总共插入 {} 条数据", totalInserted);
-// } catch (Exception e) {
-// logger.error("导入数据过程中发生异常: " + e.getMessage(), e);
-// throw new RuntimeException(e);
-// }
-// }
@Override
- public void importRow() {
+ public void importRow(String path) {
try {
logger.info("开始导入Excel数据...");
// 读取Excel文件中的数据
- List rowWorks = ExcelToObject.readExcelToObjects("/home/lapuda/Desktop/import.xlsx", RowWork.class);
+ List rowWorks = ExcelToObject.readExcelToObjects(path, RowWork.class);
logger.info("从Excel中读取到 {} 条数据", rowWorks.size());
// 按ORG分类存储数据
@@ -647,18 +580,30 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
int totalJobInserted = 0;
String string = UUID.randomUUID().toString();
logger.info("生成唯一标识符: {}", string);
-
+ LocalDateTime now = LocalDateTime.now();
+ String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
for (RowWork rowWork : rowWorks) {
try {
Job job = new Job();
+ if(StringUtil.isEmptyOrNull(rowWork.getAca112())){
+ continue;
+ }
job.setJobTitle(rowWork.getAca112());
job.setMinSalary(Long.valueOf(rowWork.getSalaryLow()));
job.setMaxSalary(Long.valueOf(rowWork.getSalaryHight()));
- job.setEducation(iBussinessDictDataService.findCode(dictData, rowWork.getAac011()));
- job.setExperience(iBussinessDictDataService.findCode(expData, rowWork.getExperience()));
+ if(Objects.isNull(rowWork.getAac011())){
+ job.setEducation("-1");
+ }else {
+ job.setEducation(iBussinessDictDataService.findCode(dictData, rowWork.getAac011()));
+ }
+ if(Objects.isNull(rowWork.getExperience())){
+ job.setExperience("0");
+ }else {
+ job.setExperience(iBussinessDictDataService.findCode(expData, rowWork.getExperience()));
+ }
job.setCompanyName(rowWork.getAAB004());
job.setJobLocation(rowWork.getAAE006());
- job.setPostingDate(new Date());
+ job.setPostingDate(formattedDate);
job.setJobCategory(rowWork.getJobCategory());
if (rowWork.getAcb240() == null) {
job.setVacancies(-1L);
@@ -673,7 +618,11 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
job.setCompanyId(getCompanyId(allCompany, rowWork.getAAB004()));
job.setIsHot(0);
job.setApplyNum(0);
- job.setJobLocationAreaCode(Integer.valueOf(Objects.requireNonNull(iBussinessDictDataService.findCode(areaData, rowWork.getCounty()))));
+ if(Objects.isNull(rowWork.getCounty())){
+ job.setJobLocationAreaCode(null);
+ }else {
+ job.setJobLocationAreaCode(Integer.valueOf(Objects.requireNonNull(iBussinessDictDataService.findCode(areaData, rowWork.getCounty()))));
+ }
job.setDescription(rowWork.getAcb22a());
job.setIsPublish(1);
job.setDataSource(rowWork.getORG());
@@ -681,7 +630,7 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
job.setRemark(string);
job.setDelFlag("0");
job.setCreateBy(string);
- job.setCreateTime(new Date());
+ job.setCreateTime(formattedDate);
job.setRowId(Long.valueOf(rowWork.getId()));
jobBatch.add(job);
@@ -726,23 +675,34 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
List natureData = iBussinessDictTypeService.selectDictDataByType("company_nature");
List treeSelects = industryService.appIndustry();
List companyList = new ArrayList<>();
+ LocalDateTime now = LocalDateTime.now();
+ String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
for(Company company:companyRowList){
Company companyNew = new Company();
companyNew.setName(company.getName());
companyNew.setLocation(company.getLocation());
- companyNew.setScale(iBussinessDictDataService.findCode(scaleData,company.getScale()));
+ if(Objects.isNull(company.getScale())){
+ companyNew.setScale("0");
+ }else {
+ companyNew.setScale(iBussinessDictDataService.findCode(scaleData,company.getScale()));
+ }
companyNew.setDelFlag("0");
companyNew.setCreateBy("system");
- companyNew.setCreateTime(new Date());
+ companyNew.setCreateTime(formattedDate);
companyNew.setRemark("add");
companyNew.setDescription(company.getDescription());
companyNew.setIndustry(findIndustry(treeSelects,company));
- companyNew.setNature(iBussinessDictDataService.findCode(natureData,company.getNature()));
+ if(Objects.isNull(company.getNature())){
+ companyNew.setNature("8");
+ }else {
+ companyNew.setNature(iBussinessDictDataService.findCode(natureData,company.getNature()));
+ }
companyList.add(companyNew);
}
return companyList;
}
+
private String findIndustry(List treeSelects, Company company) {
if(company.getRemark()==null){return "";}
if(Objects.equals(company.getRemark(), "")){return "";}
@@ -776,108 +736,16 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe
}
return jobs;
}
- @Autowired
- private WechatUtil wechatUtil;
- @Override
- public AppWechatEntity getWechatUrl(String weChatUrl) {
- return wechatUtil.sign(weChatUrl);
- }
@Override
- public String insertTemp(Job job) {
- String companyName = job.getCompanyName();
- Company company = new Company();
- company.setName(companyName);
- companyMapper.insert(company);
+ public void publishJob(Job job) {
+ job.setIsPublish(0);
+ Long userId = SecurityUtils.getUserId();
+ Company company = companyMapper.selectOne(Wrappers.lambdaQuery().eq(Company::getUserId, userId).eq(Company::getStatus, 1));
+ if(Objects.isNull(company)){
+ throw new ServiceException("请先完成招聘企业登记");
+ }
job.setCompanyId(company.getCompanyId());
- this.insertJob(job);
- System.out.println(job.getJobId());
- String url = "https://qd.zhaopinzao8dian.com/app#/packageA/pages/post/post?jobId="+Base64.getEncoder().encodeToString(String.valueOf(job.getJobId()).getBytes());
- return url;
- }
-
- @Override
- public String htmlGen(Long id) {
- ESJobDocument esJobDocument = iesJobSearchService.selectById(id);
- String jobTitle = esJobDocument.getJobTitle();
- Long maxSalary = esJobDocument.getMaxSalary();
- Long minSalary = esJobDocument.getMinSalary();
- String companyName = esJobDocument.getCompanyName();
- Long vacancies = esJobDocument.getVacancies();
-
- // 1. 从服务器获取模板文件内容
- String templateContent = fetchTemplateFromServer();
- if (templateContent == null || templateContent.isEmpty()) {
- return "";
- }
-
- // 2. 替换模板中的动态变量
- String htmlContent = templateContent
- .replace("${jobTitle}", jobTitle)
- .replace("${companyName}", companyName)
- .replace("${minSalary}", String.valueOf(minSalary))
- .replace("${maxSalary}", String.valueOf(maxSalary))
- .replace("${vacancies}", String.valueOf(vacancies))
- .replace("${jobId}", String.valueOf(id));
-
- // 3. 检查并创建目录
- String directoryPath = "/data/file/share";
- String directoryPath_domain = "/file/share";
- File directory = new File(directoryPath);
- if (!directory.exists()) {
- directory.mkdirs();
- }
-
- // 4. 生成HTML文件
- String fileName = "share_" + id + ".html";
- String filePath = directoryPath + "/" + fileName;
- File htmlFile = new File(filePath);
-
- try {
- // 如果文件已存在,先删除
- if (htmlFile.exists()) {
- return "https://qd.zhaopinzao8dian.com/file/share/"+fileName;
- }
-
- // 写入新内容
- FileWriter writer = new FileWriter(htmlFile);
- writer.write(htmlContent);
- writer.close();
-
- return "https://qd.zhaopinzao8dian.com/file/share/"+fileName;
- } catch (IOException e) {
- e.printStackTrace();
- return "";
- }
- }
-
- private String fetchTemplateFromServer() {
- String templateUrl = "https://qd.zhaopinzao8dian.com/file/share/template.html";
- try {
- URL url = new URL(templateUrl);
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setRequestMethod("GET");
-
- if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8));
- StringBuilder response = new StringBuilder();
- String line;
-
- while ((line = reader.readLine()) != null) {
- response.append(line).append("\n");
- }
- reader.close();
- return response.toString();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- @Override
- public void fix() {
- iesJobSearchService.fix();
+ jobMapper.insert(job);
}
}
diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java
index 4ef1f52..2bf2d61 100644
--- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java
+++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java
@@ -1,5 +1,7 @@
package com.ruoyi.cms.util;
+import com.ruoyi.cms.domain.query.ESJobSearch;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -47,4 +49,13 @@ public class StringUtil {
}
+ public static List convertStringToStringList(String input) {
+ if (isEmptyOrNull(input)) {
+ return new ArrayList<>();
+ }
+
+ return Arrays.stream(input.split(",")) // 按逗号分割字符串
+ .map(String::trim) // 去除每个部分的前后空格
+ .collect(Collectors.toList()); // 收集为List
+ }
}
diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/AppReviewJobMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/AppReviewJobMapper.xml
index 5629426..1ba16be 100644
--- a/ruoyi-bussiness/src/main/resources/mapper/app/AppReviewJobMapper.xml
+++ b/ruoyi-bussiness/src/main/resources/mapper/app/AppReviewJobMapper.xml
@@ -17,7 +17,7 @@
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml
index 4b1f260..a1953f5 100644
--- a/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml
+++ b/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml
@@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
\ No newline at end of file
diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/CommercialAreaMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/CommercialAreaMapper.xml
index 7c77ec5..a463c53 100644
--- a/ruoyi-bussiness/src/main/resources/mapper/app/CommercialAreaMapper.xml
+++ b/ruoyi-bussiness/src/main/resources/mapper/app/CommercialAreaMapper.xml
@@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"