增加任务分类

This commit is contained in:
2022-05-30 19:05:25 +08:00
parent e01f90088f
commit 7a1f3c787f
26 changed files with 922 additions and 3 deletions
@@ -0,0 +1,15 @@
package cn.iocoder.yudao.module.system.enums.wxcp;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum WxCpMsgTypeEnum {
project,
task;
}
@@ -0,0 +1,44 @@
package cn.iocoder.yudao.module.system.controller.admin.CpUser.dto;
import cn.iocoder.yudao.module.system.enums.wxcp.WxCpMsgTypeEnum;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
@Data
@ApiModel("企业微信发送推送消息")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CpMessageDto {
private WxCpMsgTypeEnum typeEnum;
private Long id;
// 标题
private String title;
// 子标题
private String description;
private Map<String,String> contentItems;
// 是否放大第一对item
private Boolean emphasisFirstItem;
/**
* 用于微信消息推送的 - 模板ID 不一定适用于企业微信
*/
private String templateId;
/**
* 接收人userid
*/
private List<String> reciveIds;
}
@@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.system.service.CpUser;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.system.controller.admin.CpUser.dto.CpMessageDto;
import cn.iocoder.yudao.module.system.controller.admin.CpUser.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -73,4 +75,5 @@ public interface CpUserService extends IService<CpUserDO> {
void cpUserSync() throws WxErrorException;
void sendMessage(CpMessageDto cpMessage) throws WxErrorException;
}
@@ -1,6 +1,9 @@
package cn.iocoder.yudao.module.system.service.CpUser;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.module.system.controller.admin.CpUser.dto.CpMessageDto;
import cn.iocoder.yudao.module.system.enums.wxcp.WxCpMsgTypeEnum;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
@@ -8,6 +11,7 @@ import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpDepart;
import me.chanjar.weixin.cp.bean.WxCpUser;
import me.chanjar.weixin.cp.bean.message.WxCpMessage;
import me.chanjar.weixin.cp.config.WxCpConfigStorage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -102,6 +106,7 @@ public class CpUserServiceImpl extends ServiceImpl<CpUserMapper,CpUserDO> implem
return cpUserMapper.selectList(exportReqVO);
}
public void cpUserSync() throws WxErrorException {
WxCpConfigStorage config = wxCpService.getWxCpConfigStorage();
List<WxCpDepart> departList = wxCpService.getDepartmentService().list(null);
@@ -131,4 +136,24 @@ public class CpUserServiceImpl extends ServiceImpl<CpUserMapper,CpUserDO> implem
}
@Override
public void sendMessage(CpMessageDto cpMessage) throws WxErrorException {
WxCpMessage message = new WxCpMessage();
String agentId = wxCpService.getWxCpConfigStorage().getAgentId().toString();
String page = String.format("/pages/task/%sDetail/index?id=%d",
cpMessage.getTypeEnum().equals(WxCpMsgTypeEnum.project) ? "project" : "task",
cpMessage.getId());
message.setMsgType("miniprogram_notice");
message.setAppId(agentId);
message.setPage(page);
message.setTitle(cpMessage.getTitle());
message.setDescription(cpMessage.getDescription());
message.setContentItems(cpMessage.getContentItems());
message.setToUser(String.join("|", cpMessage.getReciveIds()));
wxCpService.getMessageService().send(message);
}
}