From a4bc3fc4068eff96ab73f4e0376b0f8af7d577c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E6=88=90?= <2847920761@qq.com> Date: Mon, 24 Feb 2025 15:03:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B6=88=E6=81=AF=E6=9D=BF?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/RuoYiApplication.java | 2 + .../BgtProjectRecruitApplyServiceImpl.java | 50 ++++++++++--- .../constants/WgzAndBgtMessageConstant.java | 70 +++++++++++++++++++ .../com/ruoyi/wgz/domain/WgzAttendance.java | 2 +- .../com/ruoyi/wgz/domain/WgzDailyClock.java | 2 +- .../java/com/ruoyi/wgz/domain/WgzLeave.java | 2 +- .../java/com/ruoyi/wgz/domain/WgzMessage.java | 2 +- .../ruoyi/wgz/domain/WgzPayCalculation.java | 7 +- .../wgz/domain/WgzPayCalculationFiles.java | 2 +- .../com/ruoyi/wgz/domain/WgzQuestionBank.java | 2 +- .../ruoyi/wgz/domain/WgzQuestionCategory.java | 2 +- .../com/ruoyi/wgz/domain/WgzQuestionSave.java | 2 +- .../wgz/domain/WgzQuestionsConfiguration.java | 2 +- .../com/ruoyi/wgz/domain/WgzReissueacard.java | 2 +- .../com/ruoyi/wgz/domain/WgzScoreRecord.java | 7 +- .../java/com/ruoyi/wgz/domain/WgzUser.java | 2 +- .../ruoyi/wgz/service/IWgzMessageService.java | 12 ++++ .../service/impl/WgzMessageServiceImpl.java | 15 ++++ 18 files changed, 156 insertions(+), 29 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 3a1a4ae..8e27d88 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -1,5 +1,7 @@ package com.ruoyi; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import com.ruoyi.wgz.domain.WgzMessage; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitApplyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitApplyServiceImpl.java index d77ebb8..709a937 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitApplyServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitApplyServiceImpl.java @@ -3,9 +3,9 @@ package com.ruoyi.bgt.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.injector.methods.DeleteById; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.ruoyi.bgt.bo.BgtProjectRecruitApplyQueryBo; import com.ruoyi.bgt.domain.BgtProjectRecruit; import com.ruoyi.bgt.domain.BgtProjectRecruitApply; @@ -17,8 +17,7 @@ import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO; import com.ruoyi.bgt.mapper.BgtProjectRecruitApplyMapper; import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService; import com.ruoyi.bgt.service.IBgtProjectRecruitService; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.constants.WgzAndBgtMessageConstant; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.RecruitApplyStatus; @@ -26,12 +25,12 @@ import com.ruoyi.common.exception.BaseException; import com.ruoyi.common.service.IAnnexService; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.system.service.ISysUserService; -import com.ruoyi.wgz.bo.req.WgzAppRegisteredProjectReq; import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq; import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes; +import com.ruoyi.wgz.domain.WgzMessage; import com.ruoyi.wgz.domain.WgzScoreRecord; import com.ruoyi.wgz.domain.WgzUser; +import com.ruoyi.wgz.service.IWgzMessageService; import com.ruoyi.wgz.service.IWgzScoreRecordService; import com.ruoyi.wgz.service.IWgzUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -42,6 +41,8 @@ import java.text.DecimalFormat; import java.time.LocalDate; import java.util.*; +import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.*; + /** * 包工头招工申请Service业务层处理 * @@ -51,7 +52,6 @@ import java.util.*; @Service public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl implements IBgtProjectRecruitApplyService { - @Autowired private IAnnexService annexService; @Autowired @@ -62,6 +62,8 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl0; + int insert = baseMapper.insert(bgtProjectRecruitApply); + //4、发送消息 + if (insert>0){ + Map mp = new HashMap<>(); + mp.put("projectName",appById.getRecruitName()); + //4-1、系统发送消息给当前用户 + WgzMessage wgzMessage = new WgzMessage(). + setSenderType(USERTYPE_SYSTEM). + setRecipientType(USERTYPE_WGZ). + setRecipientId(appUserId). + setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"1")). + setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"2")). + setTableId(bgtProjectRecruitApply.getId()). + setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()). + setMessageLargeType(LARGE_OTHER). + setMessageSmallType(SMALL_SYSTEM); + if (!iWgzMessageService.sendAMessage(wgzMessage)){ + throw new RuntimeException("系统消息发送失败!"); + } + //4-2、当前用户发送消息给包工头 + wgzMessage. + setSenderType(USERTYPE_WGZ). + setSenderId(appUserId). + setRecipientType(USERTYPE_BGT). + setRecipientId(appById.getUserId()). + setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"3")). + setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"4")). + setMessageLargeType(LARGE_APPLY); + if (!iWgzMessageService.sendAMessage(wgzMessage)){ + throw new RuntimeException("发送消息失败!"); + } + } + return false; } public List todayAttendanceList(BgtAttendanceDayDTO dto){ diff --git a/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java b/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java new file mode 100644 index 0000000..f2105bb --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/common/constants/WgzAndBgtMessageConstant.java @@ -0,0 +1,70 @@ +package com.ruoyi.common.constants; + +import java.util.Map; + +public class WgzAndBgtMessageConstant { + // 公共常量 + public static final String USERTYPE_SYSTEM = "0"; //系统 + public static final String USERTYPE_WGZ = "1"; //务工者 + public static final String USERTYPE_BGT = "2"; //包工头 + + public static final String LARGE_APPLY = "0"; //大类型-报名 + public static final String LARGE_SALARY = "1"; //大类型-工资 + public static final String LARGE_OTHER = "2"; //大类型-其它 + public static final String SMALL_CARD = "0"; //小类型-补卡 + public static final String SMALL_SYSTEM = "1"; //小类型-系统 + + + /** + * =====================================================务工者===================================================== + * =====================================================务工者===================================================== + * =====================================================务工者===================================================== + */ + + //【报名】系统给务工者提示 + public static final String WGZ_SYSTEM_HEADLINE_APPLY = "您已申请【%s】项目!"; + public static final String WGZ_SYSTEM_SUBHEADING_APPLY = "您已成功申请到【%s】项目,请耐心等待回复!"; + //【报名】务工者给包工头提示 + public static final String WGZ_HEADLINE_APPLY = "务工者【%s】正在向你申请【%s】的工作岗位!"; + public static final String WGZ__SUBHEADING_APPLY = "务工者【%s】正在向你申请【%s】岗位,您可点击查看更多信息!"; + + //务工者消息返回 + public static String wgzMessage(Map mp, String type) { + switch (type){ + case "1": + return String.format(WGZ_SYSTEM_HEADLINE_APPLY, mp.get("projectName")); + case "2": + return String.format(WGZ_SYSTEM_SUBHEADING_APPLY, mp.get("projectName")); + case "3": + return String.format(WGZ_HEADLINE_APPLY, mp.get("userName"), mp.get("post")); + case "4": + return String.format(WGZ__SUBHEADING_APPLY, mp.get("userName"),mp.get("post")); + default: + return "未知类型"; + } + } + + /** + * =====================================================包工头===================================================== + * =====================================================包工头===================================================== + * =====================================================包工头===================================================== + */ + + public static final String BGT_HEADLINE_APPLY = "您申请的【%s】项目,已得到回复!"; + public static final String BGT_SUBHEADING_APPLY = "您申请的【%s】项目,已经过审核人【%s】同意!"; + + //包工头消息返回 + public static String bgtMessage(Map mp, String type) { + switch (type){ + case "1": + return String.format(BGT_HEADLINE_APPLY, mp.get("projectName")); + case "2": + return String.format(BGT_SUBHEADING_APPLY, mp.get("projectName"),mp.get("auditor")); + default: + return "未知类型"; + } + } + + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzAttendance.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzAttendance.java index 87526a9..69db45b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzAttendance.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzAttendance.java @@ -34,7 +34,7 @@ public class WgzAttendance implements Serializable { /** 自增ID */ @ApiModelProperty("自增ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 项目ID */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzDailyClock.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzDailyClock.java index 27f2cf5..90f23bb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzDailyClock.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzDailyClock.java @@ -33,7 +33,7 @@ public class WgzDailyClock implements Serializable { /** 自增ID */ @ApiModelProperty("自增ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 项目ID */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzLeave.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzLeave.java index 8a4b474..e5926f4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzLeave.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzLeave.java @@ -33,7 +33,7 @@ public class WgzLeave implements Serializable { /** 主键自增ID */ @ApiModelProperty("主键自增ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 项目ID */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzMessage.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzMessage.java index aab4076..19885b5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzMessage.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzMessage.java @@ -33,7 +33,7 @@ public class WgzMessage implements Serializable { /** 主键自增ID */ @ApiModelProperty("主键自增ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 发送类型(0系统 1务工者 2包工头) */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzPayCalculation.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzPayCalculation.java index b02521a..ead98a2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzPayCalculation.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzPayCalculation.java @@ -1,9 +1,6 @@ package com.ruoyi.wgz.domain; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import com.ruoyi.common.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -33,7 +30,7 @@ public class WgzPayCalculation implements Serializable { /** 主键自增ID */ @ApiModelProperty("主键自增ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 任务ID */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzPayCalculationFiles.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzPayCalculationFiles.java index 933fa30..c48377b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzPayCalculationFiles.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzPayCalculationFiles.java @@ -33,7 +33,7 @@ public class WgzPayCalculationFiles implements Serializable { /** 主键自增ID */ @ApiModelProperty("主键自增ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 工资结算主键自增ID */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionBank.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionBank.java index b17f9ee..3d2c7ca 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionBank.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionBank.java @@ -33,7 +33,7 @@ public class WgzQuestionBank implements Serializable { /** 主键ID */ @ApiModelProperty("主键ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 题目类别(外键关联到类别表) */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionCategory.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionCategory.java index 6539af5..597ec8b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionCategory.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionCategory.java @@ -33,7 +33,7 @@ public class WgzQuestionCategory implements Serializable { /** 主键ID */ @ApiModelProperty("主键ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 题库类别 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionSave.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionSave.java index 6ab0345..108967c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionSave.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionSave.java @@ -33,7 +33,7 @@ public class WgzQuestionSave implements Serializable { /** 主键ID */ @ApiModelProperty("主键ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 务工者唯一标识 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionsConfiguration.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionsConfiguration.java index 3f7677b..d9f5fe9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionsConfiguration.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzQuestionsConfiguration.java @@ -33,7 +33,7 @@ public class WgzQuestionsConfiguration implements Serializable { /** 主键ID */ @ApiModelProperty("主键ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 单选题(单位/道) */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzReissueacard.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzReissueacard.java index 264da94..7b47be7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzReissueacard.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzReissueacard.java @@ -33,7 +33,7 @@ public class WgzReissueacard implements Serializable { /** 主键自增ID */ @ApiModelProperty("主键自增ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 项目ID */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzScoreRecord.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzScoreRecord.java index 42fb8e5..e2953bd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzScoreRecord.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzScoreRecord.java @@ -1,9 +1,6 @@ package com.ruoyi.wgz.domain; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import com.ruoyi.common.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -31,7 +28,7 @@ public class WgzScoreRecord implements Serializable { /** 主键ID */ @ApiModelProperty("主键ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** 招工ID */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzUser.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzUser.java index 14ee0a2..ca70cd0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzUser.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzUser.java @@ -28,7 +28,7 @@ public class WgzUser implements Serializable { /** 主键ID */ @ApiModelProperty("主键ID") - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private String id; /** 唯一标识 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzMessageService.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzMessageService.java index 16a60cf..71a3310 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzMessageService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzMessageService.java @@ -52,4 +52,16 @@ public interface IWgzMessageService extends IServicePlus { * @return */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * LC-APP相关 + * ================================================================================================================= + * ================================================================================================================= + * ================================================================================================================= + */ + + /** + * 发送消息 + */ + Boolean sendAMessage(WgzMessage bo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzMessageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzMessageServiceImpl.java index 64e66b3..c023b1b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzMessageServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzMessageServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.core.page.PagePlus; import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -28,6 +29,8 @@ import java.util.Collection; @Service public class WgzMessageServiceImpl extends ServicePlusImpl implements IWgzMessageService { + + @Override public WgzMessage queryById(Long id){ return getById(id); @@ -91,4 +94,16 @@ public class WgzMessageServiceImpl extends ServicePlusImpl