commit
Some checks failed
API接口参数变更检测 / api-param-check (push) Has been cancelled

This commit is contained in:
2026-06-05 16:18:40 +08:00
parent 1ca34c6bb2
commit 3cba3bb74e
4393 changed files with 450030 additions and 103 deletions

View File

@@ -0,0 +1,27 @@
package jnpf.util.im;
/**
* todo
*
* @author Flynn Chan
* @create 2024-04-10
*/
public class ImConst {
public static final String SYSTEM_APP_NAME = "人事管理";
public static final String HR_APP_NAME = "人事管理";
public static final String SYSTEM_LOGO = "https://jnpf-resource-1304460613.cos.ap-chengdu.myqcloud.com/jnpf-resources/UserAvatar/665ecb69e4b0ae5df114c87a.png";
public static final String HR_LOGO = "https://jnpf-resource-1304460613.cos.ap-chengdu.myqcloud.com/jnpf-resources/UserAvatar/665ecb69e4b0ae5df114c87a.png";
/**
* 转正
**/
public static String TITLE_BECOME_REGULAR_EMPLOYEE = "转正结果";
public static String SUCCESSFULLY_BECAME_A_REGULAR_EMPLOYEE = "%s, 恭喜您通过试用期考核,成为正式员工!希望今后继续努力,取得更好成绩。";
public static String FAILED_TO_BECOME_A_REGULAR_EMPLOYEE = "%s, 很抱歉通知您,因没有达到岗位期望要求,您的试用期考核结果为不合格,感谢您在公司的这段时间以来的努力和表现!";
/**
* 入职登记邀请
**/
public static String TITLE_INVITE_TO_JOIN = "邀请填写入职登记表";
public static String INVITE_TO_JOIN = "您的入职登记表还未提交,现在就去填写吧!";
public static String BUTTON_INVITE_TO_JOIN = "点击填写入职信息";
}

View File

@@ -0,0 +1,108 @@
package jnpf.util.im;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.alibaba.fastjson.JSON;
import jnpf.ImRobotApi;
import jnpf.from.*;
import jnpf.model.im.UserAndLinkDTO;
import jnpf.model.im.UserSuccessDTO;
import jnpf.permission.UserApi;
import jnpf.permission.entity.UserEntity;
import jnpf.util.UserProvider;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Component
public class ImMessageNoticeUtils {
@Autowired
private UserApi userApi;
@Resource
private ImRobotApi imRobotApi;
@Resource
private UserProvider userProvider;
public void becomeRegularEmployee(List<UserSuccessDTO> successDTOS) {
successDTOS.forEach(
dto -> {
if (CollUtil.isNotEmpty(dto.getUserIds())) {
List<UserEntity> userEntityList = userApi.getUserName(dto.getUserIds());
userEntityList.forEach(userEntity -> {
SingleSendRobotNoticeForm singleSendRobotNoticeForm = new SingleSendRobotNoticeForm();
singleSendRobotNoticeForm.setRobotTypeEnum(ImRobotTypeEnum.FTB_XZS);
singleSendRobotNoticeForm.setMessageAttributionRobotMpId("__UNI__1EF82DA");
singleSendRobotNoticeForm.setTenantId(userProvider.get().getTenantId());
singleSendRobotNoticeForm.setToUserIds(List.of(userEntity.getId()));
SendRobotNoticeDataForm robotNoticeDataForm = new SendRobotNoticeDataForm();
robotNoticeDataForm.setAppName(ImConst.SYSTEM_APP_NAME);
robotNoticeDataForm.setLogo(ImConst.SYSTEM_LOGO);
robotNoticeDataForm.setTitle(ImConst.TITLE_BECOME_REGULAR_EMPLOYEE);
String content = String.format(dto.getSuccess() ? ImConst.SUCCESSFULLY_BECAME_A_REGULAR_EMPLOYEE : ImConst.FAILED_TO_BECOME_A_REGULAR_EMPLOYEE, userEntity.getRealName());
robotNoticeDataForm.setContent(content);
singleSendRobotNoticeForm.setRobotNoticeDataForm(robotNoticeDataForm);
imRobotApi.sendSingleRobotNotice(singleSendRobotNoticeForm);
});
}
}
);
}
public void inviteToJoin(List<UserAndLinkDTO> dtoList) {
if (CollUtil.isNotEmpty(dtoList)) {
List<UserEntity> userEntityList = userApi.getUserName(dtoList.stream().map(UserAndLinkDTO::getUserId).distinct().collect(Collectors.toList()));
dtoList.forEach(dto -> {
UserEntity thisUser = userEntityList.stream().filter(user -> user.getId().equals(dto.getUserId())).findFirst().orElse(null);
if (thisUser != null) {
SingleSendRobotNoticeForm singleSendRobotNoticeForm = new SingleSendRobotNoticeForm();
singleSendRobotNoticeForm.setRobotTypeEnum(ImRobotTypeEnum.FTB_XZS);
singleSendRobotNoticeForm.setTenantId(userProvider.get().getTenantId());
singleSendRobotNoticeForm.setToUserIds(List.of(thisUser.getId()));
SendRobotNoticeDataForm robotNoticeDataForm = new SendRobotNoticeDataForm();
robotNoticeDataForm.setAppName(ImConst.HR_APP_NAME);
robotNoticeDataForm.setLogo(ImConst.HR_LOGO);
robotNoticeDataForm.setTitle(ImConst.TITLE_INVITE_TO_JOIN);
String content = String.format(ImConst.INVITE_TO_JOIN);
robotNoticeDataForm.setContent(content);
if (StrUtil.isNotBlank(dto.getLinkUrl())) {
JumpUrlListModel jumpUrlListModel = new JumpUrlListModel();
jumpUrlListModel.setDisplayMethodEnum(JumpUrlListModel.DisplayMethodEnum.TRUE);
jumpUrlListModel.setButtonName(ImConst.BUTTON_INVITE_TO_JOIN);
jumpUrlListModel.setReqMethod(JumpUrlListModel.ReqMethodEnum.GET);
jumpUrlListModel.setType(1);
jumpUrlListModel.setUrl(dto.getLinkUrl());
MiniAppUrl miniAppUrl = new MiniAppUrl();
miniAppUrl.setMpId("__UNI__1EF82DA");
String[] split = dto.getLinkUrl().split("url=");
miniAppUrl.setMpPage(split[0]);
JSONObject entries = new JSONObject();
entries.set("url",split[1]);
miniAppUrl.setMpParam(JSON.toJSONString(entries));
jumpUrlListModel.setMiniAppUrl(miniAppUrl);
log.error("入职请链接生成: " + dto.getLinkUrl());
LinkedList<JumpUrlListModel> jumpUrlListModels = new LinkedList<>();
jumpUrlListModels.add(jumpUrlListModel);
robotNoticeDataForm.setJumpUrlList(jumpUrlListModels);
}
singleSendRobotNoticeForm.setRobotNoticeDataForm(robotNoticeDataForm);
imRobotApi.sendSingleRobotNotice(singleSendRobotNoticeForm);
}
});
}
}
}