From c85ff3384083356ac334fb72189845b4e49ebe34 Mon Sep 17 00:00:00 2001 From: sh Date: Tue, 21 Apr 2026 12:59:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=AB=98=E5=8D=B1=E6=BC=8F?= =?UTF-8?q?=E6=B4=9E=E6=8E=A5=E5=8F=A3=E2=80=94=E2=80=94=E5=AF=B9=E5=A4=96?= =?UTF-8?q?=E6=94=BE=E8=A1=8C=E7=9A=84=EF=BC=8C=E6=8A=8A=E5=B2=97=E4=BD=8D?= =?UTF-8?q?id=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/app/AppJobController.java | 110 +++++++++++++----- .../cms/controller/cms/CmsJobController.java | 49 +++++--- .../com/ruoyi/cms/domain/ESJobDocument.java | 3 + .../main/java/com/ruoyi/cms/domain/Job.java | 4 + .../cms/service/impl/ESJobSearchImpl.java | 4 + .../ruoyi/common/core/redis/RedisCache.java | 35 ++++++ 6 files changed, 164 insertions(+), 41 deletions(-) diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java index 4d851d9..0bbd346 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java @@ -8,10 +8,12 @@ import com.ruoyi.cms.service.*; import com.ruoyi.cms.util.RoleUtils; import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker; import com.ruoyi.common.annotation.BussinessLog; +import com.ruoyi.common.constant.SM4Constants; 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.DateUtils; +import com.ruoyi.common.utils.SM4Utils; import com.ruoyi.common.utils.SiteSecurityUtils; import com.ruoyi.common.utils.StringUtils; import io.swagger.annotations.Api; @@ -167,52 +169,94 @@ public class AppJobController extends BaseController * 获取岗位详细信息 */ @ApiOperation("获取岗位详细信息") - @GetMapping(value = "/{jobId}") - public AjaxResult getInfo(@PathVariable("jobId") Long jobId, HttpServletRequest request) + @GetMapping(value = "/{encryptJobId}") + public AjaxResult getInfo(@PathVariable("encryptJobId") String encryptJobId, HttpServletRequest request) { - if (jobId == null) { - return AjaxResult.error("jobId不能为空"); + if(StringUtils.isBlank(encryptJobId)){ + return error("岗位id为空!"); + } + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + //Job job = jobService.selectJobByJobIdApp(jobId); + Job job = jobService.selectHttpJobByJobIdApp(jobId,request); + return success(job); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); } - //Job job = jobService.selectJobByJobIdApp(jobId); - Job job = jobService.selectHttpJobByJobIdApp(jobId,request); - return success(job); } /** * 用户收藏岗位 */ @BussinessLog(title = "用户收藏岗位") - @PostMapping("/collection/{jobId}") + @PostMapping("/collection/{encryptJobId}") @ApiOperation("用户收藏") - public AjaxResult jobCollection(@ApiParam("岗位id") @PathVariable Long jobId) + public AjaxResult jobCollection(@ApiParam("岗位id") @PathVariable String encryptJobId) { - return toAjax(jobCollectionService.jobCollection(jobId)); + if(StringUtils.isBlank(encryptJobId)){ + return error("岗位id为空!"); + } + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + return toAjax(jobCollectionService.jobCollection(jobId)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); + } } /** * 用户取消收藏岗位 */ @BussinessLog(title = "用户取消收藏岗位") - @DeleteMapping("/collection/{jobId}") + @DeleteMapping("/collection/{encryptJobId}") @ApiOperation("用户取消收藏岗位") - public AjaxResult cancel(@ApiParam("岗位id") @PathVariable Long jobId) + public AjaxResult cancel(@ApiParam("岗位id") @PathVariable String encryptJobId) { - return toAjax(jobCollectionService.cancel(jobId)); + if(StringUtils.isBlank(encryptJobId)){ + return error("岗位id为空!"); + } + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + return toAjax(jobCollectionService.cancel(jobId)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); + } } /** * 用户申请岗位 */ @BussinessLog(title = "用户申请岗位") - @GetMapping("/apply/{jobId}") + @GetMapping("/apply/{encryptJobId}") @ApiOperation("用户申请岗位") - public AjaxResult apply(@ApiParam("岗位id") @PathVariable Long jobId) + public AjaxResult apply(@ApiParam("岗位id") @PathVariable String encryptJobId) { - return toAjax(jobCollectionService.apply(jobId)); + if(StringUtils.isBlank(encryptJobId)){ + return error("岗位id为空!"); + } + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + return toAjax(jobCollectionService.apply(jobId)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); + } } - @GetMapping("/competitiveness/{jobId}") + @GetMapping("/competitiveness/{encryptJobId}") @ApiOperation("竞争力分析") - public AjaxResult competitiveness(@ApiParam("岗位id") @PathVariable Long jobId) { - return success(jobCollectionService.competitiveness(jobId)); + public AjaxResult competitiveness(@ApiParam("岗位id") @PathVariable String encryptJobId) { + if(StringUtils.isBlank(encryptJobId)){ + return error("岗位id为空!"); + } + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + return success(jobCollectionService.competitiveness(jobId)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); + } } private TableDataInfo getTableDataInfo(EsPageInfo result){ long total = result.getTotal(); @@ -291,20 +335,32 @@ public class AppJobController extends BaseController } @ApiOperation("岗位下架") - @PutMapping("/jobDown/{jobId}") - public AjaxResult jobDown(@ApiParam("岗位id") @PathVariable Long jobId){ - if(jobId==null){ + @PutMapping("/jobDown/{encryptJobId}") + public AjaxResult jobDown(@ApiParam("岗位id") @PathVariable String encryptJobId){ + if(StringUtils.isBlank(encryptJobId)){ return error("岗位id为空"); } - return toAjax(jobService.jobDown(jobId)); + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + return toAjax(jobService.jobDown(jobId)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); + } } @ApiOperation("岗位上架") - @PutMapping("/jobUp/{jobId}") - public AjaxResult jobUp(@ApiParam("岗位id") @PathVariable Long jobId){ - if(jobId==null){ + @PutMapping("/jobUp/{encryptJobId}") + public AjaxResult jobUp(@ApiParam("岗位id") @PathVariable String encryptJobId){ + if(StringUtils.isBlank(encryptJobId)){ return error("岗位id为空"); } - return toAjax(jobService.jobUp(jobId)); + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + return toAjax(jobService.jobUp(jobId)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); + } } } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java index fe51237..f323c1f 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java @@ -14,6 +14,7 @@ import com.ruoyi.cms.util.excel.JobExcelListener; import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.SM4Constants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.AppUser; @@ -21,6 +22,7 @@ import com.ruoyi.common.core.domain.entity.Company; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.SM4Utils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; @@ -92,14 +94,20 @@ public class CmsJobController extends BaseController */ @ApiOperation("获取岗位详细信息") // @PreAuthorize("@ss.hasPermi('bussiness:job:query')") - @GetMapping(value = "/{jobId}") - public AjaxResult getInfo(@PathVariable("jobId") Long jobId, HttpServletRequest request) + @GetMapping(value = "/{encryptJobId}") + public AjaxResult getInfo(@PathVariable("encryptJobId") String encryptJobId, HttpServletRequest request) { - if (jobId == null) { - return AjaxResult.error("jobId不能为空"); + if(StringUtils.isBlank(encryptJobId)){ + return error("jobId不能为空"); + } + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + //return success(jobService.selectJobByJobId(jobId)); + return success(jobService.selectHttpJobByJobId(jobId,request)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); } - //return success(jobService.selectJobByJobId(jobId)); - return success(jobService.selectHttpJobByJobId(jobId,request)); } /** @@ -481,21 +489,34 @@ public class CmsJobController extends BaseController } @ApiOperation("岗位下架") - @PutMapping("/jobDown/{jobId}") - public AjaxResult jobDown(@PathVariable("jobId") Long jobId){ - if(jobId==null){ + @PutMapping("/jobDown/{encryptJobId}") + public AjaxResult jobDown(@PathVariable("encryptJobId") String encryptJobId){ + if(StringUtils.isBlank(encryptJobId)){ return error("岗位id为空"); } - return toAjax(jobService.jobDown(jobId)); + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + return toAjax(jobService.jobDown(jobId)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); + } } @ApiOperation("岗位上架") - @PutMapping("/jobUp/{jobId}") - public AjaxResult jobUp(@PathVariable("jobId") Long jobId) throws CryptoClient.CryptoException { - if(jobId==null){ + @PutMapping("/jobUp/{encryptJobId}") + public AjaxResult jobUp(@PathVariable("encryptJobId") String encryptJobId) throws CryptoClient.CryptoException { + if(StringUtils.isBlank(encryptJobId)){ return error("岗位id为空"); } - return toAjax(jobService.jobUp(jobId)); + try { + Long jobId=Long.parseLong(SM4Utils.decryptEcb(SM4Constants.SM4_KET, encryptJobId)); + return toAjax(jobService.jobUp(jobId)); + }catch (Exception e){ + e.printStackTrace(); + return error("参数不正确!"); + } + } /** diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java index 101160e..9515a85 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java @@ -181,4 +181,7 @@ public class ESJobDocument @ApiModelProperty("区划名称") private String regionName; + + @ApiModelProperty("加密jobid") + private String encryptJobId; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java index 6b77ce0..491e4a6 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java @@ -215,4 +215,8 @@ public class Job extends BaseEntity @TableField(exist = false) @ApiModelProperty("区划名称") private String regionName; + + @TableField(exist = false) + @ApiModelProperty("加密jobid") + private String encryptJobId; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java index 003f8e0..efcef00 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.cms.service.impl; import com.alibaba.fastjson.JSON; import com.ruoyi.cms.domain.vo.CompanyVo; import com.ruoyi.cms.service.ICompanyService; +import com.ruoyi.common.constant.SM4Constants; import com.ruoyi.common.core.domain.entity.AppUser; import com.ruoyi.cms.domain.ESJobDocument; import com.ruoyi.cms.domain.Job; @@ -16,6 +17,7 @@ import com.ruoyi.common.core.domain.entity.Company; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.SM4Utils; import com.ruoyi.common.utils.SiteSecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; @@ -178,6 +180,8 @@ public class ESJobSearchImpl implements IESJobSearchService for (Job job : jobList) { ESJobDocument esJobDocument = new ESJobDocument(); BeanUtils.copyBeanProp(esJobDocument, job); + String encryptJobId= SM4Utils.encryptEcb(SM4Constants.SM4_KET, String.valueOf(job.getJobId())); + esJobDocument.setEncryptJobId(encryptJobId); CompanyVo vo=job.getCompanyVo(); esJobDocument.setCompanyVoJson(JSON.toJSONString(vo)); esJobDocument.setAppJobUrl("https://www.xjksly.cn/app#/packageA/pages/post/post?jobId="+ Base64.getEncoder().encodeToString(String.valueOf(job.getJobId()).getBytes())); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java index fa87989..a69d306 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java @@ -278,4 +278,39 @@ public class RedisCache Boolean result = redisTemplate.opsForValue().setIfAbsent(key, value, timeout, unit); return Boolean.TRUE.equals(result); } + + /** + * 新增自增方法 + * @param key 键 + * @return 自增后的值 + */ + public Long increment(String key) { + return redisTemplate.opsForValue().increment(key); + } + + /** + * 重载:指定步长自增 + * @param key 键 + * @param step 步长 + * @return 自增后的值 + */ + public Long increment(String key, long step) { + return redisTemplate.opsForValue().increment(key, step); + } + + /** + * 重载:自增并设置过期时间 + * @param key 键 + * @param step 步长 + * @param expireTime 过期时间 + * @param timeUnit 时间单位 + * @return 自增后的值 + */ + public Long increment(String key, long step, long expireTime, TimeUnit timeUnit) { + Long value = redisTemplate.opsForValue().increment(key, step); + if (value != null) { + redisTemplate.expire(key, expireTime, timeUnit); + } + return value; + } }