Compare commits

...

100 Commits

Author SHA1 Message Date
sh
8b3b7f63f9 1.sys_user添加idCard字段-与企业(company)能关联上
2.注册时保存idCard字段
2025-10-22 19:38:08 +08:00
sh
9b9e80dc62 修改求职者保存信息 2025-10-22 17:54:02 +08:00
sh
7752c74063 1.app_user表中添加工作经验(workExperience)字段
2.求职者注册时自动填充userId
2025-10-22 17:18:47 +08:00
sh
f4730c60fb 移动端岗位发布-添加岗位联系人 2025-10-22 16:00:57 +08:00
sh
d57ce9e3fc 移动端岗位查询-添加五险一金、企业类型查询条件 2025-10-22 15:28:32 +08:00
sh
8988c52594 修改移动端-授权第一次登录增加返回字段idCard、isCompanyUser 2025-10-22 15:20:13 +08:00
sh
ba3e66a3c4 修改移动端-注册接口 2025-10-22 14:55:14 +08:00
sh
aa55276a81 企业表-添加法人姓名、法人身份证、法人联系方式 2025-10-22 11:29:51 +08:00
sh
8c5ec3e0b3 app发布岗位时,添加描述-敏感词验证 2025-10-21 19:53:28 +08:00
sh
c795e63e96 添加查询岗位详情时-查询对应的附件信息 2025-10-21 19:20:33 +08:00
sh
9281eb700b 企业表添加-企业类型(0普通 1就业见习基地) 2025-10-21 18:51:36 +08:00
sh
8cf753ad54 1.添加多个企业查询功能-用户移动端企业比对 2025-10-21 18:19:06 +08:00
sh
65487c073f 1.添加多个企业查询功能-用户移动端企业比对 2025-10-21 18:14:12 +08:00
sh
4c28d07bc3 添加根据企业社会信用代码查询企业信息接口。 2025-10-21 17:16:31 +08:00
sh
a6d43c0bca /appLogin返回参数添加角色和idcard 2025-10-21 16:56:19 +08:00
sh
070239d1d5 /appLogin返回idCard(身份证或社会信用代码) 2025-10-21 16:15:03 +08:00
sh
6680622a85 /appLogin返回code(身份证或社会信用代码) 2025-10-21 16:11:22 +08:00
sh
0eee50be78 appid改为冯辉的 2025-10-21 15:52:51 +08:00
sh
2616b60283 Merge remote-tracking branch 'origin/main' 2025-10-21 15:13:08 +08:00
sh
be0b432140 修改技能表user_id改为id 2025-10-21 15:12:51 +08:00
Lishundong
fca00d41a2 Merge remote-tracking branch 'origin/main' 2025-10-21 15:02:11 +08:00
Lishundong
b4da3c25a5 修改发布岗位 2025-10-21 15:01:18 +08:00
sh
b7686c31b1 修改注册接口-添加新方法不影响之前方法 2025-10-21 14:54:55 +08:00
sh
a6b5c06e63 修改注册接口-1.保存pc端sys_user和sys_user_role 2025-10-21 14:49:58 +08:00
sh
44ec48c49d 修改注册接口-1.保存企业联系2.保存工作经历和用户技能 2025-10-21 13:01:34 +08:00
sh
e56a8a285d 修改微信授权逻辑 2025-10-20 19:49:28 +08:00
sh
418c22d78d 修改微信授权登录参数-冯辉的参数 2025-10-20 17:40:24 +08:00
sh
d5473d922c 测试微信授权登录参数 2025-10-20 17:27:45 +08:00
sh
c0aa835d19 修改微信授权登录参数 2025-10-20 17:07:59 +08:00
sh
dcc96bf689 修改微信授权登录参数 2025-10-20 15:14:44 +08:00
sh
a4cc7d8dbb app_user添加民族 2025-10-20 13:30:09 +08:00
sh
7defcb6158 1.测试微信授权登录接口 2025-10-20 10:51:09 +08:00
sh
47351f41eb 1.添加微信小程序验证登录
2.添加敏感词上传
3.保存工作描述时,验证敏感词
2025-10-20 09:54:51 +08:00
sh
da48a9c33a 添加工作经历-添加查询条件 2025-10-16 19:39:06 +08:00
sh
ac2d427a71 岗位-添加岗位类型(0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位) 2025-10-16 14:55:26 +08:00
sh
7994112283 添加岗位申请导出-完成 2025-10-16 13:14:35 +08:00
sh
2502d9726b 1.修改公司权限登录访问接口
2.添加岗位申请导出-未完成
2025-10-16 12:36:29 +08:00
Lishundong
5e1012a3fb 修改发布岗位 2025-10-15 20:02:11 +08:00
sh
64e991155d 企业用户返回审核状态、驳回原因、驳回时间等。 2025-10-15 10:35:54 +08:00
sh
32424bc404 1.修改企业审核保存-传递参数时添加@RequestBody 2025-10-15 10:12:05 +08:00
sh
fcb421f97d 1.修改企业审核保存
2.baseEntity返回update_time
2025-10-14 18:57:33 +08:00
sh
1181ef0b1c 岗位-详情查询联系人 2025-10-14 17:50:30 +08:00
sh
5a6cfd695b 查询详情时-查询联系人 2025-10-14 16:30:12 +08:00
sh
e3975f557e 修改HighGo数据库时mybatis like查询方式 2025-10-14 14:57:41 +08:00
sh
1ddb62166a 修改HighGo数据库时mybatis like查询方式 2025-10-14 14:55:46 +08:00
sh
98f9182d43 1.修改接口保存联系人和联系方式 2025-10-14 13:52:49 +08:00
sh
d843197e5b 1.修改保存是create_time为空情况
2.修改职务录用是,修改岗位申请表录用状态
2025-10-14 13:32:46 +08:00
sh
60a9445e6f 保存日志时SecurityUtils与SiteSecurityUtils 区分 2025-10-14 09:54:19 +08:00
sh
86b28f0071 1.修改用户经历保存接口
2.SecurityUtils与SiteSecurityUtils 保存数据时区分
2025-10-13 17:16:28 +08:00
sh
73d8bdd402 工作经历-添加app接口 2025-10-13 15:27:05 +08:00
sh
7ee0b08b0d 修改问题 2025-10-13 12:11:13 +08:00
Lishundong
db413c57aa oss 单点 2025-10-11 16:02:04 +08:00
sh
0076eeeb48 修改es 2025-10-11 15:20:19 +08:00
sh
2f28aa9c4d 1.我的简历-用户工作经历表
2.敏感词库
3.新入职员工确认信息等对应后台功能
2025-10-10 18:45:44 +08:00
sh
27746bd727 修改问题 2025-10-10 11:13:42 +08:00
sh
439b2b65af 注释es-PostConstruct 2025-10-10 11:11:13 +08:00
Lishundong
9df9b42d20 WechatGroup 2025-10-09 22:35:52 +08:00
Lishundong
6d6439fbd9 Revert "WechatGroup"
This reverts commit 2ec8ab942a.
2025-10-09 22:22:50 +08:00
Lishundong
2ec8ab942a WechatGroup 2025-10-09 22:10:32 +08:00
Lishundong
131d6dd84f WechatGroup 2025-10-09 21:49:17 +08:00
Lishundong
cb133254b6 WechatGroup 2025-10-09 21:25:56 +08:00
sh
eb99236124 1.岗位时,修改和删除对应的联系人
2.公司联系人,修改和删除对应联系人
2025-10-09 19:53:25 +08:00
sh
97fd823178 修改岗位时,修改对应的联系人 2025-10-09 19:39:50 +08:00
sh
3f4558ba51 1.修改公司时,修改联系人接口 2025-10-09 19:10:45 +08:00
sh
10cf0369c4 1.company添加isAbnormal 字段
2.岗位分析-添加educationSalary方法
2025-10-09 18:42:03 +08:00
sh
22ffa7db9c 1.app_user添加isCompanyUser 字段
2.company添加registeredAddress 字段
2025-10-09 13:03:20 +08:00
sh
70360355a6 修改配置文件 2025-10-09 12:37:02 +08:00
sh
195828d706 修改配置文件 2025-10-09 12:31:25 +08:00
sh
39a5c380dd 1.职位发布与管理-添加表(job_contact)补充对应后端代码
2.企业联系人管理-添加表(company_contact)补充对应后台代码
3.岗位管理-添加信用代码、薪酬查询条件
4.用户管理-添加身份证显示(脱敏)、是否录用
5.岗位管理-添加字段岗位类型(疆内、疆外)
2025-09-30 18:32:20 +08:00
577732344@qq.com
f8a2ab99e3 Merge remote-tracking branch 'origin/main' 2025-09-29 13:22:08 +08:00
577732344@qq.com
c934e29ad1 publish 2025-09-29 13:22:03 +08:00
Lishundong
e8d18b1fe6 WechatGroup 2025-09-28 12:42:34 +08:00
Lishundong
bdc8a31b61 Merge remote-tracking branch 'origin/main' 2025-09-28 12:22:38 +08:00
Lishundong
cd35b9a4dc WechatGroup 2025-09-28 12:20:21 +08:00
577732344@qq.com
09b0a350c8 publish 2025-09-26 16:22:44 +08:00
577732344@qq.com
fce0d2aa94 publish 2025-09-26 16:16:26 +08:00
577732344@qq.com
50ed24fa65 publish 2025-09-26 16:14:17 +08:00
577732344@qq.com
b0f78c0eb6 publish 2025-09-25 16:30:40 +08:00
577732344@qq.com
2092de62f1 publish 2025-09-25 11:39:57 +08:00
577732344@qq.com
16864079e9 publish 2025-09-25 11:22:58 +08:00
577732344@qq.com
ecf5dd2c24 publish 2025-09-25 11:15:13 +08:00
577732344@qq.com
92e544d5c4 publish 2025-09-24 14:54:51 +08:00
577732344@qq.com
5fccf7c864 publish 2025-09-24 13:23:13 +08:00
577732344@qq.com
2a064ad812 publish 2025-09-24 13:21:08 +08:00
577732344@qq.com
ed00d6202d publish 2025-09-24 13:12:13 +08:00
577732344@qq.com
3b42f1ac0f publish 2025-09-24 12:57:39 +08:00
577732344@qq.com
6588d1115e highgo 2025-09-24 12:21:42 +08:00
577732344@qq.com
be1004c9ab highgo 2025-09-24 12:19:33 +08:00
577732344@qq.com
bb3bc5b701 highgo 2025-09-24 12:16:23 +08:00
577732344@qq.com
14bbeead60 highgo 2025-09-24 11:38:07 +08:00
577732344@qq.com
85d6b57314 sh update 2025-09-24 11:22:01 +08:00
577732344@qq.com
230c430284 sh update 2025-09-24 11:16:20 +08:00
577732344@qq.com
c58f57ff17 ifnull -> COALESCE 2025-09-24 11:11:21 +08:00
577732344@qq.com
312a04a42b highgo database 2025-09-24 10:49:59 +08:00
577732344@qq.com
c85805c336 update 2025-09-23 16:06:42 +08:00
577732344@qq.com
d144992bb0 update 2025-09-23 10:58:36 +08:00
577732344@qq.com
1039e8fcdb update 2025-09-23 10:56:48 +08:00
577732344@qq.com
c23fc9f9f5 update 2025-09-23 10:54:46 +08:00
Lishundong
e08cbe45d4 WechatGroup 2025-09-22 20:48:55 +08:00
Lishundong
4ecdf7f477 WechatGroup 2025-09-22 19:49:06 +08:00
179 changed files with 5318 additions and 2314 deletions

View File

@@ -7,11 +7,11 @@ 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配置
JVM_MEMORY=" -Xms256M -Xmx256M -XX:MaxDirectMemorySize=256M"
JVM_MEMORY=" -Xms2048M -Xmx2048M -XX:MaxDirectMemorySize=2048M"
# 远程调试
JVM_DEBUG=""
# JVM_DEBUG=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6011"
@@ -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
}

View File

@@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
<version>3.8.8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-abuwx</artifactId>
<description>微信小程序</description>
<dependencies>
<!-- 通用工具 -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
<!-- 通用工具 -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.31</version>
</dependency>
</dependencies>
</project>

View File

@@ -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<AbucoderWxuser> 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<AbucoderWxuser> list = abucoderWxuserService.selectAbucoderWxuserList(abucoderWxuser);
ExcelUtil<AbucoderWxuser> util = new ExcelUtil<AbucoderWxuser>(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));
}
}

View File

@@ -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;
}

View File

@@ -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<AbucoderWxuser> 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);
}

View File

@@ -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<AbucoderWxuser> 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);
}

View File

@@ -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<AbucoderWxuser> 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);
}
}

View File

@@ -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);
}
}

View File

@@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.abuwx.mapper.AbucoderBannersMapper">
<resultMap type="AbucoderBanners" id="AbucoderBannersResult">
<result property="id" column="id" />
<result property="bannerTitle" column="banner_title" />
<result property="bannerUrl" column="banner_url" />
<result property="bannerImg" column="banner_img" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectAbucoderBannersVo">
select id, banner_title, banner_url, banner_img, create_by, create_time, update_by, update_time, remark from abucoder_banners
</sql>
<select id="selectAbucoderBannersList" parameterType="AbucoderBanners" resultMap="AbucoderBannersResult">
<include refid="selectAbucoderBannersVo"/>
<where>
</where>
</select>
<select id="selectAbucoderBannersById" parameterType="Long" resultMap="AbucoderBannersResult">
<include refid="selectAbucoderBannersVo"/>
where id = #{id}
</select>
<insert id="insertAbucoderBanners" parameterType="AbucoderBanners" useGeneratedKeys="true" keyProperty="id">
insert into abucoder_banners
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bannerTitle != null">banner_title,</if>
<if test="bannerUrl != null">banner_url,</if>
<if test="bannerImg != null">banner_img,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="bannerTitle != null">#{bannerTitle},</if>
<if test="bannerUrl != null">#{bannerUrl},</if>
<if test="bannerImg != null">#{bannerImg},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateAbucoderBanners" parameterType="AbucoderBanners">
update abucoder_banners
<trim prefix="SET" suffixOverrides=",">
<if test="bannerTitle != null">banner_title = #{bannerTitle},</if>
<if test="bannerUrl != null">banner_url = #{bannerUrl},</if>
<if test="bannerImg != null">banner_img = #{bannerImg},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteAbucoderBannersById" parameterType="Long">
delete from abucoder_banners where id = #{id}
</delete>
<delete id="deleteAbucoderBannersByIds" parameterType="String">
delete from abucoder_banners where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.abuwx.mapper.AbucoderItemsMapper">
<resultMap type="AbucoderItems" id="AbucoderItemsResult">
<result property="id" column="id" />
<result property="itemName" column="item_name" />
<result property="itemDesc" column="item_desc" />
<result property="itemContent" column="item_content" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectAbucoderItemsVo">
select id, item_name, item_desc, item_content, create_by, create_time, update_by, update_time, remark from abucoder_items
</sql>
<select id="selectAbucoderItemsList" parameterType="AbucoderItems" resultMap="AbucoderItemsResult">
<include refid="selectAbucoderItemsVo"/>
<where>
<if test="itemName != null and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
</where>
</select>
<select id="selectAbucoderItemsById" parameterType="Long" resultMap="AbucoderItemsResult">
<include refid="selectAbucoderItemsVo"/>
where id = #{id}
</select>
<insert id="insertAbucoderItems" parameterType="AbucoderItems" useGeneratedKeys="true" keyProperty="id">
insert into abucoder_items
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="itemName != null">item_name,</if>
<if test="itemDesc != null">item_desc,</if>
<if test="itemContent != null">item_content,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="itemName != null">#{itemName},</if>
<if test="itemDesc != null">#{itemDesc},</if>
<if test="itemContent != null">#{itemContent},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateAbucoderItems" parameterType="AbucoderItems">
update abucoder_items
<trim prefix="SET" suffixOverrides=",">
<if test="itemName != null">item_name = #{itemName},</if>
<if test="itemDesc != null">item_desc = #{itemDesc},</if>
<if test="itemContent != null">item_content = #{itemContent},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteAbucoderItemsById" parameterType="Long">
delete from abucoder_items where id = #{id}
</delete>
<delete id="deleteAbucoderItemsByIds" parameterType="String">
delete from abucoder_items where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -1,88 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.abuwx.mapper.AbucoderProgramsMapper">
<resultMap type="AbucoderPrograms" id="AbucoderProgramsResult">
<result property="id" column="id" />
<result property="programName" column="program_name" />
<result property="programTag" column="program_tag" />
<result property="programImg" column="program_img" />
<result property="programContent" column="program_content" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectAbucoderProgramsVo">
select id, program_name, program_tag, program_img, program_content, create_by, create_time, update_by, update_time, remark from abucoder_programs
</sql>
<select id="selectAbucoderProgramsList" parameterType="AbucoderPrograms" resultMap="AbucoderProgramsResult">
<include refid="selectAbucoderProgramsVo"/>
<where>
<if test="programName != null and programName != ''"> and program_name like concat('%', #{programName}, '%')</if>
</where>
</select>
<select id="selectAbucoderProgramsById" parameterType="Long" resultMap="AbucoderProgramsResult">
<include refid="selectAbucoderProgramsVo"/>
where id = #{id}
</select>
<insert id="insertAbucoderPrograms" parameterType="AbucoderPrograms" useGeneratedKeys="true" keyProperty="id">
insert into abucoder_programs
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="programName != null">program_name,</if>
<if test="programTag != null">program_tag,</if>
<if test="programImg != null">program_img,</if>
<if test="programContent != null">program_content,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="programName != null">#{programName},</if>
<if test="programTag != null">#{programTag},</if>
<if test="programImg != null">#{programImg},</if>
<if test="programContent != null">#{programContent},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateAbucoderPrograms" parameterType="AbucoderPrograms">
update abucoder_programs
<trim prefix="SET" suffixOverrides=",">
<if test="programName != null">program_name = #{programName},</if>
<if test="programTag != null">program_tag = #{programTag},</if>
<if test="programImg != null">program_img = #{programImg},</if>
<if test="programContent != null">program_content = #{programContent},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteAbucoderProgramsById" parameterType="Long">
delete from abucoder_programs where id = #{id}
</delete>
<delete id="deleteAbucoderProgramsByIds" parameterType="String">
delete from abucoder_programs where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -1,90 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.abuwx.mapper.AbucoderWxappConfigMapper">
<resultMap type="AbucoderWxappConfig" id="AbucoderWxappConfigResult">
<result property="id" column="id" />
<result property="appid" column="appid" />
<result property="appSecret" column="app_secret" />
<result property="state" column="state" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectAbucoderWxappConfigVo">
select id, appid, app_secret, state, create_by, create_time, update_by, update_time, remark from abucoder_wxapp_config
</sql>
<select id="selectAbucoderWxappConfigList" parameterType="AbucoderWxappConfig" resultMap="AbucoderWxappConfigResult">
<include refid="selectAbucoderWxappConfigVo"/>
<where>
<if test="appid != null and appid != ''"> and appid = #{appid}</if>
<if test="appSecret != null and appSecret != ''"> and app_secret = #{appSecret}</if>
<if test="state != null "> and state = #{state}</if>
</where>
</select>
<select id="selectAbucoderWxappConfigById" parameterType="Long" resultMap="AbucoderWxappConfigResult">
<include refid="selectAbucoderWxappConfigVo"/>
where id = #{id}
</select>
<select id="selectAbucoderWxappConfig" resultMap="AbucoderWxappConfigResult">
<include refid="selectAbucoderWxappConfigVo"/>
where state = 0
</select>
<insert id="insertAbucoderWxappConfig" parameterType="AbucoderWxappConfig" useGeneratedKeys="true" keyProperty="id">
insert into abucoder_wxapp_config
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="appid != null">appid,</if>
<if test="appSecret != null">app_secret,</if>
<if test="state != null">state,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="appid != null">#{appid},</if>
<if test="appSecret != null">#{appSecret},</if>
<if test="state != null">#{state},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateAbucoderWxappConfig" parameterType="AbucoderWxappConfig">
update abucoder_wxapp_config
<trim prefix="SET" suffixOverrides=",">
<if test="appid != null">appid = #{appid},</if>
<if test="appSecret != null">app_secret = #{appSecret},</if>
<if test="state != null">state = #{state},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteAbucoderWxappConfigById" parameterType="Long">
delete from abucoder_wxapp_config where id = #{id}
</delete>
<delete id="deleteAbucoderWxappConfigByIds" parameterType="String">
delete from abucoder_wxapp_config where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -1,93 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.abuwx.mapper.AbucoderWxuserMapper">
<resultMap type="AbucoderWxuser" id="AbucoderWxuserResult">
<result property="id" column="id" />
<result property="nickname" column="nickname" />
<result property="avatar" column="avatar" />
<result property="openid" column="openid" />
<result property="gender" column="gender" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectAbucoderWxuserVo">
select id, nickname, avatar, openid, gender, create_by, create_time, update_by, update_time, remark from abucoder_wxuser
</sql>
<select id="selectAbucoderWxuserList" parameterType="AbucoderWxuser" resultMap="AbucoderWxuserResult">
<include refid="selectAbucoderWxuserVo"/>
<where>
<if test="openid != null and openid != ''"> and openid = #{openid}</if>
<if test="gender != null "> and gender = #{gender}</if>
</where>
</select>
<select id="selectAbucoderWxuserById" parameterType="Long" resultMap="AbucoderWxuserResult">
<include refid="selectAbucoderWxuserVo"/>
where id = #{id}
</select>
<select id="selectAbucoderWxuserOpenID" resultMap="AbucoderWxuserResult">
<include refid="selectAbucoderWxuserVo"/>
where openid = #{openid}
</select>
<insert id="insertAbucoderWxuser" parameterType="AbucoderWxuser" useGeneratedKeys="true" keyProperty="id">
insert into abucoder_wxuser
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="nickname != null">nickname,</if>
<if test="avatar != null">avatar,</if>
<if test="openid != null">openid,</if>
<if test="gender != null">gender,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="nickname != null">#{nickname},</if>
<if test="avatar != null">#{avatar},</if>
<if test="openid != null">#{openid},</if>
<if test="gender != null">#{gender},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateAbucoderWxuser" parameterType="AbucoderWxuser">
update abucoder_wxuser
<trim prefix="SET" suffixOverrides=",">
<if test="nickname != null">nickname = #{nickname},</if>
<if test="avatar != null">avatar = #{avatar},</if>
<if test="openid != null">openid = #{openid},</if>
<if test="gender != null">gender = #{gender},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteAbucoderWxuserById" parameterType="Long">
delete from abucoder_wxuser where id = #{id}
</delete>
<delete id="deleteAbucoderWxuserByIds" parameterType="String">
delete from abucoder_wxuser where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -2,11 +2,9 @@ package com.ruoyi.web.controller.system;
import java.util.List;
import java.util.Set;
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.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysMenu;
@@ -59,6 +57,15 @@ public class SysLoginController
ajax.put(Constants.TOKEN, token);
return ajax;
}
@PostMapping("/app/appLogin")
public AjaxResult appLogin(@RequestBody LoginBody loginBody)
{
AjaxResult ajax = AjaxResult.success();
ajax=loginService.appLogin(loginBody);
return ajax;
}
/**
* 获取用户信息
*
@@ -91,4 +98,15 @@ public class SysLoginController
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
return AjaxResult.success(menuService.buildMenus(menus));
}
@GetMapping("/sso/callback")
public String ssoCallback(@RequestParam("ticket") String ticket) {
String frontendIndexUrl = "http://domain.com";
String ruoyiJwtToken = loginService.loginOss(ticket);
String redirectUrl = frontendIndexUrl + "/index?token=" + ruoyiJwtToken;
// 返回 "redirect:" 即可触发 302 重定向
return "redirect:" + redirectUrl;
}
}

View File

@@ -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());
}

View File

@@ -4,7 +4,8 @@ import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import io.swagger.annotations.Api;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.cms.service.ICompanyService;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -56,6 +57,8 @@ public class SysUserController extends BaseController
@Autowired
private ISysPostService postService;
@Autowired
private ICompanyService companyService;
/**
* 获取用户列表
*/
@@ -256,4 +259,34 @@ public class SysUserController extends BaseController
{
return success(deptService.selectDeptTreeList(dept));
}
@ApiOperation("企业资质审核")
@PreAuthorize("@ss.hasPermi('app:company:approval:list')")
@PostMapping("/approval")
public AjaxResult approval(@RequestBody Company company)
{
Company company1 = companyService.approval(company);
SysUser sysUser = new SysUser();
sysUser.setNickName(company1.getContactPerson());
sysUser.setDeptId(101L);
String contactPersonPhone = company1.getContactPersonPhone();
if(StringUtils.isNotEmpty(contactPersonPhone)){
String lastSixDigits = contactPersonPhone.substring(contactPersonPhone.length() - 6);
sysUser.setPassword(lastSixDigits);
sysUser.setUserName(company1.getContactPersonPhone());
sysUser.setPhonenumber(company1.getContactPersonPhone());
sysUser.setNickName(company1.getContactPersonPhone());
}else{
sysUser.setPassword("123456");
sysUser.setUserName(company1.getName());
sysUser.setNickName(company1.getName());
}
sysUser.setPhonenumber(getUsername());
Long[] postIds = {1L};
Long[] roleIds = {100L};
sysUser.setPostIds(postIds);
sysUser.setRoleIds(roleIds);
userService.insertUser(sysUser);
return AjaxResult.success();
}
}

View File

@@ -7,8 +7,10 @@ spring:
# 主库数据源
master:
url: jdbc:highgo://127.0.0.1:5866/highgo?useUnicode=true&characterEncoding=utf8&currentSchema=ks_db4&stringtype=unspecified
#username: syssso
username: sysdba
password: ZKR2024@com
password: ZKR2024@comzkr
# 从库数据源
slave:
# 从数据源开关/默认关闭
@@ -90,3 +92,5 @@ easy-es:
process-index-mode: manual
db-config:
refresh-policy: immediate
username: elastic
password: zkr2024@@.com

View File

@@ -8,7 +8,7 @@ spring:
master:
url: jdbc:highgo://124.243.245.42:5866/highgo?useUnicode=true&characterEncoding=utf8&currentSchema=ks_db4&stringtype=unspecified
username: sysdba
password: ZKR2024@com
password: ZKR2024@comzkr
# 从库数据源
slave:
# 从数据源开关/默认关闭
@@ -59,12 +59,35 @@ 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:9200
address: 124.243.245.42:9200
global-config:
process-index-mode: manual
db-config:
refresh-policy: immediate
username: elastic
password: zkr2024@@.com

View File

@@ -52,7 +52,7 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: dev
active: local
# 文件上传
servlet:
multipart:

View File

@@ -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<BussinessDictData> dictData = iBussinessDictTypeService.selectDictDataByType(dictType);
return success(dictData);
}
@ApiOperation("字段标准")
@GetMapping("/standar/filed")
public AjaxResult standarFiled()
{

View File

@@ -1,24 +1,22 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.BussinessDictData;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.cms.domain.CompanyCard;
import com.ruoyi.cms.domain.query.LabelQuery;
import com.ruoyi.cms.mapper.CompanyCardMapper;
import com.ruoyi.cms.service.ICompanyCardService;
import com.ruoyi.cms.service.ICompanyCollectionService;
import com.ruoyi.cms.service.ICompanyService;
import com.ruoyi.common.annotation.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 com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -46,7 +44,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 +52,7 @@ public class AppCompanyController extends BaseController
/**
* 用户收藏公司
*/
@Log(title = "用户收藏公司")
@BussinessLog(title = "用户收藏公司")
@PostMapping("/collection/{companyId}")
@ApiOperation("用户收藏公司")
public AjaxResult companyCollection(@PathVariable("companyId") Long companyId)
@@ -66,7 +63,7 @@ public class AppCompanyController extends BaseController
/**
* 用户取消收藏公司
*/
@Log(title = "用户取消收藏公司")
@BussinessLog(title = "用户取消收藏公司")
@DeleteMapping("/collection/{companyId}")
@ApiOperation("用户取消收藏公司")
public AjaxResult companyCancel(@PathVariable("companyId") Long companyId)
@@ -76,7 +73,6 @@ public class AppCompanyController extends BaseController
/**
* 公司下的岗位
*/
@Log(title = "公司下的岗位")
@GetMapping("/job/{companyId}")
@ApiOperation("公司下的岗位")
public TableDataInfo jobCompany(@ApiParam("公司id") @PathVariable Long companyId)
@@ -84,7 +80,6 @@ public class AppCompanyController extends BaseController
startPage();
return getDataTable(companyCollectionService.jobCompany(companyId));
}
@Log(title = "查看企业卡片")
@GetMapping("/card")
@ApiOperation("查看企业卡片")
public TableDataInfo card()
@@ -92,7 +87,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 +95,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 +103,6 @@ public class AppCompanyController extends BaseController
companyCardService.cardCancel(companyCardId);
return success();
}
@Log(title = "公司招聘的岗位数量")
@GetMapping("/count/{companyId}")
@ApiOperation("公司招聘的岗位数量")
public AjaxResult count(@PathVariable Long companyId)
@@ -116,7 +110,6 @@ public class AppCompanyController extends BaseController
Integer count = companyService.count(companyId);
return success(count);
}
@Log(title = "公司标签下的公司")
@GetMapping("/label")
@ApiOperation("公司标签下的公司")
public TableDataInfo label(LabelQuery labelQuery)
@@ -126,14 +119,29 @@ public class AppCompanyController extends BaseController
List<Company> 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);
}
@GetMapping("/queryCodeCompany")
@ApiOperation("根据社会信用代码查询企业")
public AjaxResult queryCodeCompany(@RequestParam("code") String code)
{
if (!StringUtils.hasText(code)) {
return AjaxResult.error("社会信用代码不能为空");
}
return AjaxResult.success(companyService.queryCodeCompany(code));
}
}

View File

@@ -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)
{

View File

@@ -1,21 +1,33 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.File;
import com.ruoyi.cms.service.IFileService;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@RestController
@RequestMapping("/app/file")
public class AppFileController {
public class AppFileController extends BaseController {
@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);
}
@BussinessLog(title = "获取附件列表")
@GetMapping("/list")
public TableDataInfo list(File file)
{
List<File> results = fileService.selectFileList(file);
return getDataTable(results);
}
}

View File

@@ -3,23 +3,23 @@ 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.cms.util.sensitiveWord.SensitiveWordChecker;
import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.ArrayUtils;
import org.dromara.easyes.core.biz.EsPageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.List;
/**
* 岗位Controller
@@ -38,38 +38,31 @@ public class AppJobController extends BaseController
private IJobCollectionService jobCollectionService;
@Autowired
private IESJobSearchService esJobSearchService;
private Calendar calendar = Calendar.getInstance();
private Date date = new Date();
{
calendar.set(Calendar.YEAR, 2025); // 设置年份
calendar.set(Calendar.MONTH, Calendar.JULY); // 设置月份7月
calendar.set(Calendar.DAY_OF_MONTH, 12); // 设置日期
date = calendar.getTime(); // 转换为Date对象
}
@Autowired
private SensitiveWordChecker sensitiveWordChecker;
/**
* 查询岗位列表
*/
@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<String> headerNames = request.getHeaderNames();
Iterator<String> iterator = Collections.list(headerNames).iterator();
iterator.forEachRemaining(headerName -> {
System.out.println(headerName + " = " + request.getHeader(headerName));
});
EsPageInfo<ESJobDocument> list = jobService.appList(job);
return getTableDataInfo(list);
return getTableDataInfo2(list,job);
}
private TableDataInfo getTableDataInfo2(EsPageInfo<ESJobDocument> list, ESJobSearch job) {
long total = list.getTotal();
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(200);
rspData.setRows(list.getList());
rspData.setTotal(total > 200 ? 200 : total);
job.setCompany(null);
rspData.setData(job);
return rspData;
}
/**
* 获取5条推荐岗位
*/
@@ -78,40 +71,23 @@ public class AppJobController extends BaseController
public AjaxResult recommend(ESJobSearch esJobSearch)
{
List<ESJobDocument> jobList = jobService.recommend(esJobSearch);
for (ESJobDocument esJobDocument:jobList){
esJobDocument.setPostingDate(date);
}
return success(jobList);
}
@ApiOperation("获取littleVideo")
@ApiOperation("获取短视频")
@GetMapping("/littleVideo")
public AjaxResult littleVideo(ESJobSearch esJobSearch)
{
List<ESJobDocument> jobList = jobService.littleVideo(esJobSearch);
for (ESJobDocument esJobDocument:jobList){
esJobDocument.setPostingDate(date);
}
return success(jobList);
}
@ApiOperation("获取littleVideo")
@ApiOperation("随机获取短视频")
@GetMapping("/littleVideo/random")
public AjaxResult littleVideo(@RequestParam(required = true) String uuid,@RequestParam(required = false) Integer count,@RequestParam(required = false) String jobTitle)
{
List<ESJobDocument> jobList = jobService.littleVideoRandom(uuid,count,jobTitle);
for (ESJobDocument esJobDocument:jobList){
esJobDocument.setPostingDate(date);
}
return success(jobList);
}
/**
* 获取5条推荐岗位
*/
@GetMapping("/updateLon")
public void updateLon()
{
jobService.updateLon();
}
/**
* 附件工作
*/
@@ -121,9 +97,6 @@ public class AppJobController extends BaseController
{
EsPageInfo<ESJobDocument> list = esJobSearchService.nearJob(jobQuery);
List<ESJobDocument> jobList = list.getList();
for (ESJobDocument esJobDocument:jobList){
esJobDocument.setPostingDate(date);
}
list.setList(jobList);
return getTableDataInfo(list);
}
@@ -136,9 +109,6 @@ public class AppJobController extends BaseController
{
EsPageInfo<ESJobDocument> list = jobService.countyJobList(job);
List<ESJobDocument> jobList = list.getList();
for (ESJobDocument esJobDocument:jobList){
esJobDocument.setPostingDate(date);
}
list.setList(jobList);
return getTableDataInfo(list);
}
@@ -151,9 +121,6 @@ public class AppJobController extends BaseController
{
EsPageInfo<ESJobDocument> list = jobService.subway(jobQuery);
List<ESJobDocument> jobList = list.getList();
for (ESJobDocument esJobDocument:jobList){
esJobDocument.setPostingDate(date);
}
list.setList(jobList);
return getTableDataInfo(list);
}
@@ -167,9 +134,6 @@ public class AppJobController extends BaseController
{
EsPageInfo<ESJobDocument> list = jobService.commercialArea(jobQuery);
List<ESJobDocument> jobList = list.getList();
for (ESJobDocument esJobDocument:jobList){
esJobDocument.setPostingDate(date);
}
list.setList(jobList);
return getTableDataInfo(list);
}
@@ -181,14 +145,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)
@@ -199,7 +162,7 @@ public class AppJobController extends BaseController
/**
* 用户取消收藏岗位
*/
@Log(title = "用户取消收藏岗位")
@BussinessLog(title = "用户取消收藏岗位")
@DeleteMapping("/collection/{jobId}")
@ApiOperation("用户取消收藏岗位")
public AjaxResult cancel(@ApiParam("岗位id") @PathVariable Long jobId)
@@ -209,38 +172,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<ESJobDocument> result){
long total = result.getTotal();
@@ -250,45 +192,29 @@ 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();
// 校验描述中的敏感词
List<String> sensitiveWords = sensitiveWordChecker.checkSensitiveWords(job.getDescription());
if (!sensitiveWords.isEmpty()) {
String errorMsg = "描述中包含敏感词:" + String.join("", sensitiveWords);
return AjaxResult.error(errorMsg);
}
jobService.publishJob(job);
return success();
}
@GetMapping("/importRow")
public AjaxResult importRow()
{
jobService.importRow();
return success();
}
@GetMapping("/update")
public AjaxResult update()
{
jobService.updateEs();
return success();
}
@PostMapping("/getWechatUrl")
public AjaxResult getWechatUrl(@RequestBody HashMap<String,String> url)
{
String s = url.get("imgUrl");
return AjaxResult.success(jobService.getWechatUrl(s));
}
@PostMapping("/insert")
public AjaxResult insertTemp(@RequestBody Job job)
{
return AjaxResult.success(jobService.insertTemp(job));
}
@ApiOperation("生成分享的html")
@GetMapping("/htmlGen/{id}")
public AjaxResult htmlGen(@PathVariable(required = true) Long id)
{
String result = jobService.htmlGen(id);
return AjaxResult.success(result);
}
@GetMapping("/fix")
public void fix()
{
jobService.fix();
@GetMapping("/jobCompare")
@ApiOperation("根据多个岗位id查询岗位详情")
public AjaxResult jobCompare(@ApiParam("岗位ID数组") @RequestParam("jobIds") Long[] jobIds) {
if (ArrayUtils.isEmpty(jobIds)) {
return AjaxResult.error("请传递岗位ID参数jobIds多个ID用&分隔");
}
if (jobIds.length > 5) {
return AjaxResult.error("最多支持对比5个岗位请减少参数数量");
}
return success(esJobSearchService.selectByIds(jobIds));
}
}

View File

@@ -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);

View File

@@ -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();
}
}

View File

@@ -0,0 +1,81 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.service.AppSkillService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.AppSkill;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 用户技能信息
*
* @author
* @email
* @date 2025-10-21 12:22:09
*/
@RestController
@RequestMapping("/appskill/list")
@Api(tags = "移动端:用户技能")
public class AppSkillController extends BaseController {
@Autowired
private AppSkillService appSkillService;
/**
* 列表
*/
@ApiOperation("获取工作经历详细信息")
@GetMapping("/list")
public TableDataInfo list(AppSkill appSkill){
startPage();
List<AppSkill> list=appSkillService.getList(appSkill);
return getDataTable(list);
}
/**
* 信息
*/
@ApiOperation("获取工作经历详细信息")
@GetMapping(value = "/{id}")
public AjaxResult info(@PathVariable("id") Long id){
return success(appSkillService.getAppskillById(id));
}
/**
* 保存
*/
@ApiOperation("获取工作经历详细信息")
@PostMapping("/add")
public AjaxResult save(@RequestBody AppSkill appSkill){
return toAjax(appSkillService.insertAppskill(appSkill));
}
/**
* 修改
*/
@ApiOperation("获取工作经历详细信息")
@PutMapping("/edit")
public AjaxResult update(@RequestBody AppSkill appSkill){
return toAjax(appSkillService.updateAppskillById(appSkill));
}
/**
* 删除
*/
@ApiOperation("获取工作经历详细信息")
@DeleteMapping("/{id}")
public AjaxResult delete(@ApiParam("主键id") @PathVariable Long id){
return toAjax(appSkillService.removeAppskillIds(new Long[]{id}));
}
}

View File

@@ -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);
}
}

View File

@@ -1,15 +1,17 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.AppUser;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.JobFair;
import com.ruoyi.cms.domain.query.MineJobQuery;
import com.ruoyi.cms.service.*;
import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.RegisterBody;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.SiteSecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -44,19 +46,30 @@ public class AppUserController extends BaseController
/**
* 查询岗位列表
*/
@ApiOperation("保存注册信息")
@PostMapping("/registerUser")
@BussinessLog(title = "保存简历")
public AjaxResult saveResume(@RequestBody RegisterBody registerBody)
{
appUserService.registerAppUser(registerBody);
return AjaxResult.success();
}
@ApiOperation("保存简历")
@PostMapping("/resume")
@BussinessLog(title = "保存简历")
public AjaxResult saveResume(@RequestBody AppUser appUser)
{
appUser.setUserId(SecurityUtils.getUserId());
appUser.setUserId(SiteSecurityUtils.getUserId());
appUserService.updateAppUser(appUser);
return AjaxResult.success();
}
@ApiOperation("查看简历")
@GetMapping("/resume")
public AjaxResult getResume()
{
AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId());
return AjaxResult.success(appUser);
}
@ApiOperation("我的浏览")
@@ -114,4 +127,12 @@ public class AppUserController extends BaseController
HashMap<String,Integer> result = jobApplyService.statistics();
return AjaxResult.success(result);
}
@ApiOperation("根据条件查询用户信息")
@GetMapping("/list")
public AjaxResult getUserList(AppUser appUser)
{
List<AppUser> list = appUserService.selectAppUserList(appUser);
return AjaxResult.success(list);
}
}

View File

@@ -0,0 +1,88 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import com.ruoyi.cms.service.UserWorkExperiencesService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.SiteSecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 用户工作经历表
*
* @author
* @email
* @date 2025-10-10 16:26:26
*/
@RestController
@RequestMapping("/app/userworkexperiences")
@Api(tags = "移动端:用户工作经历")
public class AppUserWorkExperiencesController extends BaseController {
@Autowired
private UserWorkExperiencesService userWorkExperiencesService;
/**
* 列表
*/
@ApiOperation("工作经历列表信息")
@GetMapping("/list")
public TableDataInfo list(UserWorkExperiences userWorkExperiences){
if(userWorkExperiences.getUserId()==null){
userWorkExperiences.setUserId(SiteSecurityUtils.getUserId());
}
startPage();
List<UserWorkExperiences> list=userWorkExperiencesService.getWorkExperiencesList(userWorkExperiences);
return getDataTable(list);
}
/**
* 获取详细信息
*/
@ApiOperation("获取工作经历详细信息")
@GetMapping(value = "/{id}")
public AjaxResult query(@PathVariable("id") Long id){
return success(userWorkExperiencesService.getWorkExperiencesById(id));
}
/**
* 保存
*/
@ApiOperation("新增工作经历")
@PostMapping("/add")
public AjaxResult add(@RequestBody UserWorkExperiences userWorkExperiences){
if(userWorkExperiences.getUserId()==null){
userWorkExperiences.setUserId(SiteSecurityUtils.getUserId());
}
return toAjax(userWorkExperiencesService.insertWorkExperiences(userWorkExperiences));
}
/**
* 修改
*/
@ApiOperation("修改工作经历")
@PutMapping("/edit")
public AjaxResult update(@RequestBody UserWorkExperiences userWorkExperiences){
return toAjax(userWorkExperiencesService.updateWorkExperiencesById(userWorkExperiences));
}
/**
* 删除
*/
@ApiOperation("删除工作经历")
@DeleteMapping("/{id}")
public AjaxResult remove(@ApiParam("招聘会id") @PathVariable Long id){
return toAjax(userWorkExperiencesService.deleteWorkExperiencesIds(new Long[]{id}));
}
}

View File

@@ -24,7 +24,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("/cms/operlog")
@Api(tags = "后台App用户日志")
@Api(tags = "后台App用户操作日志")
public class BussinessOperlogController extends BaseController
{
@Autowired

View File

@@ -18,7 +18,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.ruoyi.cms.domain.AppUser;
import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.cms.service.IAppUserService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -41,7 +41,7 @@ public class CmsAppUserController extends BaseController
* 查询APP用户列表
*/
@ApiOperation("查询APP用户列表")
@PreAuthorize("@ss.hasPermi('bussiness:user:list')")
@PreAuthorize("@ss.hasPermi('cms:appUser:list')")
@GetMapping("/list")
public TableDataInfo list(AppUser appUser)
{
@@ -54,7 +54,7 @@ public class CmsAppUserController extends BaseController
* 导出APP用户列表
*/
@ApiOperation("导出APP用户列表")
@PreAuthorize("@ss.hasPermi('bussiness:user:export')")
@PreAuthorize("@ss.hasPermi('cms:appUser:export')")
@Log(title = "APP用户", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, AppUser appUser)

View File

@@ -3,6 +3,7 @@ package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.vo.CandidateVO;
import com.ruoyi.cms.service.IJobService;
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
@@ -33,11 +34,13 @@ public class CmsJobController extends BaseController
{
@Autowired
private IJobService jobService;
@Autowired
SensitiveWordChecker sensitiveWordChecker;
/**
* 查询岗位列表
*/
@ApiOperation("查询岗位列表")
@PreAuthorize("@ss.hasPermi('bussiness:job:list')")
@PreAuthorize("@ss.hasPermi('cms:job:list')")
@GetMapping("/list")
public TableDataInfo list(Job job)
{
@@ -61,7 +64,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,11 +77,18 @@ 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)
{
// 校验描述中的敏感词
List<String> sensitiveWords = sensitiveWordChecker.checkSensitiveWords(job.getDescription());
if (!sensitiveWords.isEmpty()) {
String errorMsg = "描述中包含敏感词:" + String.join("", sensitiveWords);
return AjaxResult.error(errorMsg);
}
// 无敏感词,执行插入
return toAjax(jobService.insertJob(job));
}
@@ -86,11 +96,17 @@ 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)
{
// 校验描述中的敏感词
List<String> sensitiveWords = sensitiveWordChecker.checkSensitiveWords(job.getDescription());
if (!sensitiveWords.isEmpty()) {
String errorMsg = "描述中包含敏感词:" + String.join("", sensitiveWords);
return AjaxResult.error(errorMsg);
}
return toAjax(jobService.updateJob(job));
}
@@ -98,32 +114,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<CandidateVO> list = jobService.candidates(jobId);
return getDataTable(list);
}
@GetMapping("/import")
public AjaxResult importData()
{
jobService.importData();
return success();
}
@GetMapping("/importRow")
public AjaxResult importRow()
{
jobService.importRow();
return success();
}
}

View File

@@ -0,0 +1,42 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import com.ruoyi.cms.service.CompanyContactService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 公司联系人
*
* @author
* @email
* @date 2025-09-30 15:57:06
*/
@RestController
@RequestMapping("/cms/companycontact")
@Api(tags = "后台:公司联系人")
public class CompanyContactController extends BaseController {
@Autowired
private CompanyContactService companyContactService;
/**
* 列表
*/
@ApiOperation("公司联系人列表")
@PreAuthorize("@ss.hasPermi('cms:companycontact:list')")
@RequestMapping("/list")
public TableDataInfo list(CompanyContact companyContact){
List<CompanyContact> list=companyContactService.getSelectList(companyContact);
return getDataTable(list);
}
}

View File

@@ -1,8 +1,7 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.cms.service.ICompanyCollectionService;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.cms.service.ICompanyService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
@@ -12,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -38,7 +36,7 @@ public class CompanyController extends BaseController
* 查询公司列表
*/
@ApiOperation("查询公司列表")
@PreAuthorize("@ss.hasPermi('app:company:list')")
@PreAuthorize("@ss.hasPermi('cms:company:list')")
@GetMapping("/list")
public TableDataInfo list(Company company)
{
@@ -107,4 +105,23 @@ public class CompanyController extends BaseController
{
return toAjax(companyService.deleteCompanyByCompanyIds(companyIds));
}
@ApiOperation("企业资质审核列表")
@PreAuthorize("@ss.hasPermi('app:company:approval:list')")
@GetMapping("/approval/list")
public TableDataInfo approvalList(Company company)
{
startPage();
List<Company> list = companyService.approvalList(company);
return getDataTable(list);
}
@ApiOperation("企业资质修改")
@PreAuthorize("@ss.hasPermi('app:company:approval:edit')")
@GetMapping("/approval/edit")
public AjaxResult approvalEdit(Company company)
{
startPage();
List<Company> list = companyService.approvalList(company);
return AjaxResult.success();
}
}

View File

@@ -0,0 +1,71 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.EmployeeConfirm;
import com.ruoyi.cms.service.EmployeeConfirmService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 新入职员工确认信息
*
* @author
* @email
* @date 2025-10-10 10:42:16
*/
@RestController
@RequestMapping("/cms/employeeConfirm")
@Api(tags = "后台:新入职员工确认信息")
public class EmployeeConfirmController extends BaseController {
@Autowired
private EmployeeConfirmService employeeConfirmService;
/**
* 列表
*/
@ApiOperation("新入职员工确认信息列表")
@PreAuthorize("@ss.hasPermi('cms:employeeConfirm:list')")
@RequestMapping("/list")
public TableDataInfo list(EmployeeConfirm employeeConfirm){
List<EmployeeConfirm> list=employeeConfirmService.getEmployeeConfirmList(employeeConfirm);
return getDataTable(list);
}
/**
* 保存
*/
@ApiOperation("新增新入职员工确认信息")
@PreAuthorize("@ss.hasPermi('cms:employeeConfirm:add')")
@Log(title = "职员工确认信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody EmployeeConfirm employeeConfirm){
return toAjax(employeeConfirmService.insertEmployeeConfirm(employeeConfirm));
}
@ApiOperation("修改新入职员工确认信息")
@PreAuthorize("@ss.hasPermi('cms:employeeConfirm:edit')")
@Log(title = "职员工确认信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody EmployeeConfirm employeeConfirm){
return toAjax(employeeConfirmService.updateEmployeeConfirm(employeeConfirm));
}
@ApiOperation("删除新入职员工确认信息")
@PreAuthorize("@ss.hasPermi('app:employeeConfirm:remove')")
@Log(title = "公司", businessType = BusinessType.DELETE)
@DeleteMapping("/{employeeConfirmIds}")
public AjaxResult remove(@PathVariable Long[] employeeConfirmIds)
{
return toAjax(employeeConfirmService.deleteEmployeeConfirmIds(employeeConfirmIds));
}
}

View File

@@ -0,0 +1,50 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.JobApply;
import com.ruoyi.cms.domain.vo.CandidateVO;
import com.ruoyi.cms.service.IJobApplyService;
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.common.utils.poi.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
@RestController
@RequestMapping("/cms/jobApply")
@Api(tags = "后台:岗位申请")
public class JobApplyController extends BaseController {
@Autowired
IJobApplyService iJobApplyService;
@GetMapping("/trendChart")
public AjaxResult trendChart(JobApply jobApply)
{
HashMap<String,Integer> result = iJobApplyService.trendChart(jobApply);
return success(result);
}
/**
* 导出APP用户列表
*/
@ApiOperation("导出岗位申请APP用户")
@PreAuthorize("@ss.hasPermi('cms:jobApply:export')")
@Log(title = "APP用户", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Job job)
{
List<CandidateVO> list = iJobApplyService.selectAppUserList(job);
ExcelUtil<CandidateVO> util = new ExcelUtil<CandidateVO>(CandidateVO.class);
util.exportExcel(response, list, "APP用户数据");
}
}

View File

@@ -0,0 +1,43 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.JobContact;
import com.ruoyi.cms.service.JobContactService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 岗位联系人
*
* @author
* @email
* @date 2025-09-30 15:57:06
*/
@RestController
@RequestMapping("/cms/jobcontact")
@Api(tags = "后台:岗位联系人")
public class JobContactController extends BaseController {
@Autowired
private JobContactService jobContactService;
/**
* 列表
*/
@ApiOperation("岗位联系人列表")
@PreAuthorize("@ss.hasPermi('cms:jobcontact:list')")
@RequestMapping("/list")
public TableDataInfo list(JobContact jobContact){
startPage();
List<JobContact> list = jobContactService.getSelectList(jobContact);
return getDataTable(list);
}
}

View File

@@ -0,0 +1,114 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.SensitiveWordData;
import com.ruoyi.cms.service.SensitiveWordDataService;
import com.ruoyi.cms.util.EasyExcelUtils;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.List;
/**
* 敏感词库
*
* @author
* @email
* @date 2025-10-10 10:42:16
*/
@RestController
@RequestMapping("/cms/sensitiveworddata")
@Api(tags = "后台:敏感词库")
public class SensitiveWordDataController extends BaseController {
@Autowired
private SensitiveWordDataService sensitiveWordDataService;
/**
* 列表
*/
@ApiOperation("敏感词库详细信息")
@PreAuthorize("@ss.hasPermi('cms:sensitiveworddata:list')")
@GetMapping("/list")
public TableDataInfo list(SensitiveWordData sensitiveWordData){
startPage();
List<SensitiveWordData> list = sensitiveWordDataService.selectSensitiveworddataList(sensitiveWordData);
return getDataTable(list);
}
/**
* 获取详细信息
*/
@ApiOperation("获取敏感词库详细信息")
@PreAuthorize("@ss.hasPermi('cms:sensitiveworddata:query')")
@GetMapping(value = "/{id}")
public AjaxResult list(@PathVariable("id") Long id){
return success(sensitiveWordDataService.selectById(id));
}
/**
* 保存
*/
@ApiOperation("新增敏感词")
@PreAuthorize("@ss.hasPermi('cms:sensitiveworddata:add')")
@Log(title = "敏感词", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult save(@RequestBody SensitiveWordData sensitiveWordData){
return toAjax(sensitiveWordDataService.insertSensitiveworddata(sensitiveWordData));
}
/**
* 修改
*/
@ApiOperation("修改敏感词")
@PreAuthorize("@ss.hasPermi('cms:sensitiveworddata:edit')")
@Log(title = "敏感词", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SensitiveWordData sensitiveWordData){
return toAjax(sensitiveWordDataService.updateSensitiveworddata(sensitiveWordData));
}
/**
* 删除敏感词
*/
@ApiOperation("删除敏感词")
@PreAuthorize("@ss.hasPermi('cms:sensitiveworddata:remove')")
@Log(title = "敏感词", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(sensitiveWordDataService.deleteSensitiveworddataIds(ids));
}
/**
* 通用上传请求(单个)
*/
@PostMapping("/exoprt")
public AjaxResult uploadFile(@RequestParam("file") MultipartFile file) throws Exception
{
try
{
InputStream inputStream = file.getInputStream();
EasyExcelUtils.readExcelByBatch(inputStream, SensitiveWordData.class, 100, list -> {
// 处理逻辑:如批量保存到数据库
sensitiveWordDataService.batchInsert(list);
});
}
catch (Exception e)
{
return AjaxResult.error(e.getMessage());
}
return AjaxResult.success();
}
}

View File

@@ -85,4 +85,19 @@ public class StaticsController extends BaseController {
Map<String,Object> result = service.education(staticsquery);
return success(result);
}
//分学历-分薪资
@GetMapping("/educationSalaryGen")
public AjaxResult educationSalaryGen()
{
service.educationSalaryGen();
return success();
}
@GetMapping("/educationSalary")
public AjaxResult educationSalary(Staticsquery staticsquery)
{
Map<String,Object> result = service.educationSalary(staticsquery);
return success(result);
}
}

View File

@@ -0,0 +1,93 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import com.ruoyi.cms.service.UserWorkExperiencesService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 用户工作经历表
*
* @author
* @email
* @date 2025-10-10 16:26:26
*/
@RestController
@RequestMapping("/cms/userworkexperiences")
@Api(tags = "后台:用户工作经历")
public class UserWorkExperiencesController extends BaseController {
@Autowired
private UserWorkExperiencesService userWorkExperiencesService;
/**
* 列表
*/
@ApiOperation("工作经历列表信息")
@PreAuthorize("@ss.hasPermi('cms:userworkexperiences:list')")
@GetMapping("/list")
public TableDataInfo list(UserWorkExperiences userWorkExperiences){
startPage();
List<UserWorkExperiences> list=userWorkExperiencesService.getWorkExperiencesList(userWorkExperiences);
return getDataTable(list);
}
/**
* 信息
*/
/**
* 获取详细信息
*/
@ApiOperation("获取工作经历详细信息")
@PreAuthorize("@ss.hasPermi('cms:userworkexperiences:query')")
@GetMapping(value = "/{id}")
public AjaxResult query(@PathVariable("id") Long id){
return success(userWorkExperiencesService.getWorkExperiencesById(id));
}
/**
* 保存
*/
@ApiOperation("新增工作经历")
@PreAuthorize("@ss.hasPermi('cms:userworkexperiences:add')")
@Log(title = "工作经历", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody UserWorkExperiences userWorkExperiences){
return toAjax(userWorkExperiencesService.insertWorkExperiences(userWorkExperiences));
}
/**
* 修改
*/
@ApiOperation("修改工作经历")
@PreAuthorize("@ss.hasPermi('cms:userworkexperiences:edit')")
@Log(title = "工作经历", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult update(@RequestBody UserWorkExperiences userWorkExperiences){
return toAjax(userWorkExperiencesService.updateWorkExperiencesById(userWorkExperiences));
}
/**
* 删除
*/
@ApiOperation("删除工作经历")
@PreAuthorize("@ss.hasPermi('cms:sensitiveworddata:remove')")
@Log(title = "工作经历", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(Long[] ids){
return toAjax(userWorkExperiencesService.deleteWorkExperiencesIds(ids));
}
}

View File

@@ -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();
}
}

View File

@@ -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;
}

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -1,63 +0,0 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 公司对象 company
* @author lishundong
* @date 2024-09-04
*/
@Data
@ApiModel("公司")
@TableName(value = "company")
public class Company extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 公司id */
@TableId(value = "company_id",type = IdType.AUTO)
@ApiModelProperty("公司id")
private Long companyId;
/** 单位名称 */
@Excel(name = "单位名称")
@ApiModelProperty("单位名称")
private String name;
/** 单位地点 */
@Excel(name = "单位地点")
@ApiModelProperty("单位地点")
private String location;
/** 主要行业 */
@Excel(name = "主要行业")
@ApiModelProperty("主要行业")
private String industry;
/** 单位规模 对应字典scale */
@Excel(name = "单位规模 对应字典scale")
@ApiModelProperty("单位规模 对应字典scale")
private String scale;
@Excel(name = "信用代码")
@ApiModelProperty("信用代码")
private String code;
@Excel(name = "单位介绍")
@ApiModelProperty("单位介绍")
private String description;
@Excel(name = "性质")
@ApiModelProperty("性质")
private String nature;
@ApiModelProperty("招聘数量")
private Integer totalRecruitment;
@TableField(exist = false)
@ApiModelProperty("是否收藏")
private Integer isCollection;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -2,6 +2,8 @@ package com.ruoyi.cms.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.core.domain.entity.Company;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.IndexId;
@@ -16,104 +18,132 @@ 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;
@ApiModelProperty("岗位类型 0疆内 1疆外")
private String jobType;
@ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 对应字段字典position_type")
private String type;
}

View File

@@ -0,0 +1,71 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 新入职员工确认信息
*
* @author
* @email
* @date 2025-10-10 10:42:16
*/
@Data
@TableName("employee_confirm")
public class EmployeeConfirm extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/**
* 企业id
*/
@ApiModelProperty("企业id")
private Long companyId;
/**
* 姓名
*/
@ApiModelProperty("姓名")
private String contactPerson;
/**
* 身份证
*/
@ApiModelProperty("身份证")
private String idCard;
/**
* 入职日期
*/
@ApiModelProperty("入职日期")
private String entryDate;
/**
* 联系电话
*/
@ApiModelProperty("联系电话")
private String contactPersonPhone;
/**
* 劳动合同期限
*/
@ApiModelProperty("劳动合同期限")
private String contractTerm;
@ApiModelProperty("工作id")
private Long jobId;
/**
* 申请id
*/
@TableField(exist = false)
private Long applyId;
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -1,18 +1,21 @@
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 com.ruoyi.common.core.domain.entity.Company;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* 岗位对象 job
* @author lishundong
@@ -26,42 +29,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 +64,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;
@@ -120,29 +109,68 @@ public class Job extends BaseEntity
@ApiModelProperty("是否收藏 0为否 1为是")
private Integer isCollection;
@ApiModelProperty("工作地点")
@ApiModelProperty("岗位描述")
private String description;
@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;
@TableField(exist = false)
@ApiModelProperty("薪酬")
private String compensation;
@TableField(exist = false)
@ApiModelProperty("信用代码")
private String code;
@ApiModelProperty("岗位类型 0疆内 1疆外")
private String jobType;
@ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 对应字段字典position_type")
private String type;
@TableField(exist = false)
@ApiModelProperty("岗位联系人列表")
private List<JobContact> jobContactList;
@TableField(exist = false)
@ApiModelProperty("附件列表")
private List<File> filesList;
}

View File

@@ -22,24 +22,22 @@ 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;
@ApiModelProperty("是否录用 0录用 2或null未录用")
private String hire;
}

View File

@@ -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;

View File

@@ -0,0 +1,53 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 岗位联系人
*
* @author
* @email
* @date 2025-09-30 15:57:06
*/
@Data
@ApiModel("岗位联系人")
@TableName("job_contact")
public class JobContact extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/**
* 岗位id
*/
@ApiModelProperty("岗位id")
private Long jobId;
/**
* 联系人
*/
@ApiModelProperty("联系人")
private String contactPerson;
/**
* 联系人电话
*/
@ApiModelProperty("联系人电话")
private String contactPersonPhone;
/**
* 职务
*/
@ApiModelProperty("职务")
private String position;
}

View File

@@ -5,6 +5,7 @@ import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.Company;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
@@ -27,56 +28,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<Company> companyList;
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("程序时间")
private Date queryDate;
@TableField(exist = false)
@ApiModelProperty("是否收藏")
public Integer isCollection;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -0,0 +1,45 @@
package com.ruoyi.cms.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 敏感词库
*
* @author
* @email
* @date 2025-10-10 10:42:16
*/
@Data
@TableName("sensitive_word_data")
public class SensitiveWordData extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/**
* 敏感词
*/
@ExcelProperty(value = "敏感词", index = 0)
@ApiModelProperty("敏感词")
private String sensitiveWord;
/**
* 类型
*/
@ExcelProperty(value = "类型", index = 1)
@ApiModelProperty("类型")
private String type;
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -29,7 +29,7 @@ public class ESJobSearch extends Job
private String radius;
@ApiModelProperty("排序方式 0推荐 1最热 2最新发布")
@ApiModelProperty("排序方式 0推荐 1最热 2最新发布 3最大薪资")
private Integer order;
//商圈id
@@ -51,4 +51,7 @@ public class ESJobSearch extends Job
private String salaryDictCode;
private String scaleDictCode;
private String area;
}

View File

@@ -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]
// }
}

View File

@@ -1,7 +1,8 @@
package com.ruoyi.cms.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.cms.domain.AppUser;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.entity.AppUser;
import lombok.Data;
import java.util.Date;
@@ -11,4 +12,10 @@ public class CandidateVO extends AppUser {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date applyDate;
private Integer matchingDegree;
private String applyId;
@Excel(name = "公司名称", sort = 0)
private String companyName;
@Excel(name = "岗位名称", sort = 1)
private String jobName;
}

View File

@@ -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);
}
/**
* 连接关闭调用的方法
*/

View File

@@ -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;
}
}
}

View File

@@ -0,0 +1,20 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.entity.AppSkill;
import java.util.List;
/**
* 用户技能信息
*
* @author
* @email
* @date 2025-10-21 12:22:09
*/
public interface AppSkillMapper extends BaseMapper<AppSkill> {
List<AppSkill> getList(AppSkill appSkill);
int batchInsert(List<AppSkill> list);
}

View File

@@ -2,7 +2,10 @@ package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import com.ruoyi.cms.domain.AppUser;
import java.util.Map;
import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.common.core.domain.entity.SysUser;
/**
* APP用户Mapper接口
@@ -18,4 +21,12 @@ public interface AppUserMapper extends BaseMapper<AppUser>
* @return APP用户集合
*/
public List<AppUser> selectAppUserList(AppUser appUser);
List<AppUser> selectByJobId(Long jobId);
AppUser selectByOpenid(String openid);
int insertSysUserRole(Map<String,Object> map);
int insertSysUser(SysUser sysUser);
}

View File

@@ -3,7 +3,7 @@ package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.cms.domain.CompanyCollection;
/**

View File

@@ -0,0 +1,20 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import java.util.List;
/**
* 公司联系人
*
* @author
* @email
* @date 2025-09-30 15:57:06
*/
public interface CompanyContactMapper extends BaseMapper<CompanyContact> {
List<CompanyContact> getSelectList(CompanyContact companyContact);
int batchInsert(List<CompanyContact> list);
}

View File

@@ -2,7 +2,7 @@ package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.common.core.domain.entity.Company;
import org.apache.ibatis.annotations.Param;
/**

View File

@@ -0,0 +1,19 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.EmployeeConfirm;
import java.util.List;
/**
* 新入职员工确认信息
*
* @author
* @email
* @date 2025-10-10 10:42:16
*/
public interface EmployeeConfirmMapper extends BaseMapper<EmployeeConfirm> {
List<EmployeeConfirm> getEmployeeConfirmList(EmployeeConfirm employeeConfirm);
}

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.HashMap;
import java.util.List;
import com.ruoyi.cms.domain.Job;
@@ -22,8 +24,12 @@ public interface JobApplyMapper extends BaseMapper<JobApply>
*/
public List<JobApply> selectJobApplyList(JobApply jobApply);
//todo
List<Job> applyJob(Long userId);
List<CandidateVO> candidates(Long jobId);
HashMap<String,Integer> trendChart(JobApply jobApply);
List<CandidateVO> selectAppUserList(Job job);
}

View File

@@ -0,0 +1,20 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.JobContact;
import java.util.List;
/**
* 岗位联系人
*
* @author
* @email
* @date 2025-09-30 15:57:06
*/
public interface JobContactMapper extends BaseMapper<JobContact> {
List<JobContact> getSelectList(JobContact jobContact);
int batchInsert(List<JobContact> list);
}

View File

@@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.RowWork;
import com.ruoyi.cms.domain.VectorJob;
import com.ruoyi.cms.domain.query.ESJobSearch;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.repository.query.Param;
/**
* 岗位Mapper接口

View File

@@ -0,0 +1,21 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.SensitiveWordData;
import java.util.List;
/**
* 敏感词库
*
* @author
* @email
* @date 2025-10-10 10:42:16
*/
public interface SensitiveWordDataMapper extends BaseMapper<SensitiveWordData> {
List<SensitiveWordData> selectSensitiveworddataList(SensitiveWordData sensitiveWordData);
int batchInsert(List<SensitiveWordData> list);
}

View File

@@ -0,0 +1,20 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import java.util.List;
/**
* 用户工作经历表
*
* @author
* @email
* @date 2025-10-10 16:26:26
*/
public interface UserWorkExperiencesMapper extends BaseMapper<UserWorkExperiences> {
List<UserWorkExperiences> getWorkExperiencesList(UserWorkExperiences userWorkExperiences);
int batchInsert(List<UserWorkExperiences> list);
}

View File

@@ -0,0 +1,26 @@
package com.ruoyi.cms.service;
import com.ruoyi.common.core.domain.entity.AppSkill;
import java.util.List;
/**
* 用户技能信息
*
* @author
* @email
* @date 2025-10-21 12:22:09
*/
public interface AppSkillService{
List<AppSkill> getList(AppSkill appSkill);
int insertAppskill(AppSkill appSkill);
int updateAppskillById(AppSkill appSkill);
int removeAppskillIds(Long[] ids);
AppSkill getAppskillById(Long id);
}

View File

@@ -0,0 +1,18 @@
package com.ruoyi.cms.service;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import java.util.List;
/**
* 公司联系人
*
* @author
* @email
* @date 2025-09-30 15:57:06
*/
public interface CompanyContactService {
List<CompanyContact> getSelectList(CompanyContact companyContact);
}

View File

@@ -0,0 +1,24 @@
package com.ruoyi.cms.service;
import com.ruoyi.cms.domain.EmployeeConfirm;
import java.util.List;
/**
* 新入职员工确认信息
*
* @author
* @email
* @date 2025-10-10 10:42:16
*/
public interface EmployeeConfirmService {
List<EmployeeConfirm> getEmployeeConfirmList(EmployeeConfirm employeeConfirm);
int insertEmployeeConfirm(EmployeeConfirm employeeConfirm);
int updateEmployeeConfirm(EmployeeConfirm employeeConfirm);
int deleteEmployeeConfirmIds(Long[] ids);
}

View File

@@ -1,7 +1,8 @@
package com.ruoyi.cms.service;
import java.util.List;
import com.ruoyi.cms.domain.AppUser;
import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.common.core.domain.model.RegisterBody;
/**
* APP用户Service接口
@@ -51,4 +52,9 @@ public interface IAppUserService
*/
public int deleteAppUserByUserIds(Long[] userIds);
public AppUser getPhone(String phone);
AppUser selectByOpenid(String openid);
public int registerAppUser(RegisterBody registerBody);
}

View File

@@ -2,7 +2,7 @@ package com.ruoyi.cms.service;
import java.util.List;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.cms.domain.CompanyCollection;
import com.ruoyi.cms.domain.Job;

View File

@@ -1,10 +1,9 @@
package com.ruoyi.cms.service;
import java.util.List;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.cms.domain.CompanyCard;
import com.ruoyi.cms.domain.query.LabelQuery;
import com.ruoyi.common.core.page.PageDomain;
/**
* 公司Service接口
@@ -68,4 +67,14 @@ public interface ICompanyService
void importLabel();
void importLabelBank();
void register(Company company);
Company registerStatus();
List<Company> approvalList(Company company);
Company approval(Company company);
Company queryCodeCompany(String code);
}

View File

@@ -63,4 +63,10 @@ public interface IESJobSearchService
ESJobDocument selectById(Long jobId);
void fix();
void updateJob(Long jobId);
void deleteJob(Long jobId);
List<ESJobDocument> selectByIds(Long[] jobIds);
}

View File

@@ -1,7 +1,6 @@
package com.ruoyi.cms.service;
import com.ruoyi.cms.domain.Company;
import com.ruoyi.cms.domain.FairCollection;
import com.ruoyi.cms.domain.JobFair;

View File

@@ -5,6 +5,7 @@ import java.util.List;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.JobApply;
import com.ruoyi.cms.domain.vo.CandidateVO;
/**
* 岗位申请Service接口
@@ -57,4 +58,8 @@ public interface IJobApplyService
List<Job> applyJob();
HashMap<String, Integer> statistics();
HashMap<String,Integer> trendChart(JobApply jobApply);
List<CandidateVO> selectAppUserList(Job job);
}

View File

@@ -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<Job> collectionJob();
String competitiveness(Long jobId);
CompetitivenessResponse competitiveness(Long jobId);
}

View File

@@ -78,7 +78,7 @@ public interface IJobService
Job selectJobByJobIdApp(Long jobId);
void importRow();
void importRow(String path);
List<CandidateVO> candidates(Long jobId);
@@ -88,13 +88,5 @@ public interface IJobService
List<ESJobDocument> 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);
}

View File

@@ -0,0 +1,18 @@
package com.ruoyi.cms.service;
import com.ruoyi.cms.domain.JobContact;
import java.util.List;
/**
* 岗位联系人
*
* @author
* @email
* @date 2025-09-30 15:57:06
*/
public interface JobContactService{
List<JobContact> getSelectList(JobContact jobContact);
}

View File

@@ -0,0 +1,28 @@
package com.ruoyi.cms.service;
import com.ruoyi.cms.domain.SensitiveWordData;
import java.util.List;
/**
* 敏感词库
*
* @author
* @email
* @date 2025-10-10 10:42:16
*/
public interface SensitiveWordDataService {
List<SensitiveWordData> selectSensitiveworddataList(SensitiveWordData sensitiveworddata);
SensitiveWordData selectById(Long id);
int insertSensitiveworddata(SensitiveWordData sensitiveWordData);
int updateSensitiveworddata(SensitiveWordData sensitiveWordData);
int deleteSensitiveworddataIds(Long[] ids);
int batchInsert(List<SensitiveWordData> list);
}

View File

@@ -23,4 +23,8 @@ public interface StaticsqueryService {
void educationGen();
Map<String, Object> education(Staticsquery staticsquery);
void educationSalaryGen();
Map<String, Object> educationSalary(Staticsquery staticsquery);
}

View File

@@ -0,0 +1,26 @@
package com.ruoyi.cms.service;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import java.util.List;
/**
* 用户工作经历表
*
* @author
* @email
* @date 2025-10-10 16:26:26
*/
public interface UserWorkExperiencesService {
List<UserWorkExperiences> getWorkExperiencesList(UserWorkExperiences userWorkExperiences);
int insertWorkExperiences(UserWorkExperiences userWorkExperiences);
int updateWorkExperiencesById(UserWorkExperiences userWorkExperiences);
int deleteWorkExperiencesIds(Long[] ids);
UserWorkExperiences getWorkExperiencesById(Long id);
}

Some files were not shown because too many files have changed in this diff Show More