loadDictItemByKeyword(String dictCode, String keyword, Integer pageSize);
/**
- * 发送模板消息
- * @param message
+ * 新增数据日志
+ * @param dataLogDto
*/
- void sendTemplateMessage(MessageDTO message);
+ void saveDataLog(DataLogDTO dataLogDto);
/**
- * 根据模板编码获取模板内容
- * @param templateCode
- * @return
+ * 添加文件到知识库
+ * @param sysFilesModel
*/
- String getTemplateContent(String templateCode);
+ void addSysFiles(SysFilesModel sysFilesModel);
+ /**
+ * 通过文件路径获取文件id
+ * @param fileId
+ */
+ String getFileUrl(String fileId);
+
+ /**
+ * 更新头像
+ * @param loginUser
+ */
+ void updateAvatar(LoginUser loginUser);
+
+ /**
+ * 向app端 websocket推送聊天刷新消息
+ * @param userId
+ */
+ void sendAppChatSocket(String userId);
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/init/CodeTemplateInitListener.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/init/CodeTemplateInitListener.java
index 58f01f59..4bb5f745 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/init/CodeTemplateInitListener.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/init/CodeTemplateInitListener.java
@@ -18,6 +18,7 @@ import java.nio.charset.StandardCharsets;
*
* 解决JAR发布需要手工配置代码生成器模板问题
* http://doc.jeecg.com/2043922
+ * @author zhang
*/
@Slf4j
@Component
@@ -58,7 +59,7 @@ public class CodeTemplateInitListener implements ApplicationListener getDictList(){
+ List list = new ArrayList<>();
+ DictModel dictModel = null;
+ for(RangeDateEnum e: RangeDateEnum.values()){
+ dictModel = new DictModel();
+ dictModel.setValue(e.key);
+ dictModel.setText(e.title);
+ list.add(dictModel);
+ }
+ return list;
+ }
+
+ /**
+ * 根据key 获取范围时间值
+ * @param key
+ * @return
+ */
+ public static Date[] getRangeArray(String key){
+ Calendar calendar1 = Calendar.getInstance();
+ Calendar calendar2 = Calendar.getInstance();
+ Date[] array = new Date[2];
+ boolean flag = false;
+ if(JT.key.equals(key)){
+ //今天
+ } else if(ZT.key.equals(key)){
+ //昨天
+ calendar1.add(Calendar.DAY_OF_YEAR, -1);
+ calendar2.add(Calendar.DAY_OF_YEAR, -1);
+ } else if(QT.key.equals(key)){
+ //前天
+ calendar1.add(Calendar.DAY_OF_YEAR, -2);
+ calendar2.add(Calendar.DAY_OF_YEAR, -2);
+ } else if(BZ.key.equals(key)){
+ //本周
+ calendar1.set(Calendar.DAY_OF_WEEK, 2);
+
+ calendar2.add(Calendar.WEEK_OF_MONTH,1);
+ calendar2.add(Calendar.DAY_OF_WEEK,-1);
+ } else if(SZ.key.equals(key)){
+ //本周一减一周
+ calendar1.set(Calendar.DAY_OF_WEEK, 2);
+ calendar1.add(Calendar.WEEK_OF_MONTH, -1);
+
+ // 本周一减一天
+ calendar2.set(Calendar.DAY_OF_WEEK, 2);
+ calendar2.add(Calendar.DAY_OF_WEEK,-1);
+ } else if(BY.key.equals(key)){
+ //本月
+ calendar1.set(Calendar.DAY_OF_MONTH, 1);
+
+ calendar2.set(Calendar.DAY_OF_MONTH, 1);
+ calendar2.add(Calendar.MONTH, 1);
+ calendar2.add(Calendar.DAY_OF_MONTH, -1);
+ } else if(SY.key.equals(key)){
+ //本月第一天减一月
+ calendar1.set(Calendar.DAY_OF_MONTH, 1);
+ calendar1.add(Calendar.MONTH, -1);
+
+ //本月第一天减一天
+ calendar2.set(Calendar.DAY_OF_MONTH, 1);
+ calendar2.add(Calendar.DAY_OF_MONTH, -1);
+ }else{
+ flag = true;
+ }
+ if(flag){
+ return null;
+ }
+ // 开始时间00:00:00 结束时间23:59:59
+ calendar1.set(Calendar.HOUR, 0);
+ calendar1.set(Calendar.MINUTE, 0);
+ calendar1.set(Calendar.SECOND, 0);
+ calendar1.set(Calendar.MILLISECOND, 0);
+ calendar2.set(Calendar.HOUR, 23);
+ calendar2.set(Calendar.MINUTE, 59);
+ calendar2.set(Calendar.SECOND, 59);
+ calendar2.set(Calendar.MILLISECOND, 999);
+ array[0] = calendar1.getTime();
+ array[1] = calendar2.getTime();
+ return array;
+ }
+
+ public String getKey(){
+ return this.key;
+ }
+
+}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/enums/Vue3MessageHrefEnum.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/enums/Vue3MessageHrefEnum.java
new file mode 100644
index 00000000..9987bf42
--- /dev/null
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/enums/Vue3MessageHrefEnum.java
@@ -0,0 +1,65 @@
+package org.jeecg.modules.message.enums;
+
+import org.jeecg.common.system.annotation.EnumDict;
+import org.jeecg.common.system.vo.DictModel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 消息跳转【vue3】
+ * @Author taoYan
+ * @Date 2022/8/19 20:41
+ **/
+@EnumDict("messageHref")
+public enum Vue3MessageHrefEnum {
+
+ /**
+ * 流程催办
+ */
+ BPM("bpm", "/task/myHandleTaskInfo"),
+
+ /**
+ * 节点通知
+ */
+ BPM_TASK("bpm_task", "/task/myHandleTaskInfo"),
+
+ /**
+ * 邮件消息
+ */
+ EMAIL("email", "/eoa/email");
+
+ String busType;
+
+ String path;
+
+ Vue3MessageHrefEnum(String busType, String path) {
+ this.busType = busType;
+ this.path = path;
+ }
+
+ public String getBusType() {
+ return busType;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ /**
+ * 获取字典数据
+ * @return
+ */
+ public static List getDictList(){
+ List list = new ArrayList<>();
+ DictModel dictModel = null;
+ for(Vue3MessageHrefEnum e: Vue3MessageHrefEnum.values()){
+ dictModel = new DictModel();
+ dictModel.setValue(e.getBusType());
+ dictModel.setText(e.getPath());
+ list.add(dictModel);
+ }
+ return list;
+ }
+
+}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/ISendMsgHandle.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/ISendMsgHandle.java
index a58300c7..917838a0 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/ISendMsgHandle.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/ISendMsgHandle.java
@@ -10,7 +10,7 @@ public interface ISendMsgHandle {
/**
* 发送信息
- * @param esReceiver 发送人
+ * @param esReceiver 接受人
* @param esTitle 标题
* @param esContent 内容
*/
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java
index 828d8784..8ab0e042 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java
@@ -76,12 +76,15 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
List list = sysUserMapper.selectList(query);
String content = messageDTO.getContent();
String title = messageDTO.getTitle();
+ String realNameExp = "{REALNAME}";
for(SysUser user: list){
String email = user.getEmail();
if(email==null || "".equals(email)){
continue;
}
-
+ if(content.indexOf(realNameExp)>0){
+ content = content.replace(realNameExp, user.getRealname());
+ }
if(content.indexOf(CommonConstant.LOGIN_TOKEN)>0){
String token = getToken(user);
try {
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/SystemSendMsgHandle.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/SystemSendMsgHandle.java
index 7a2d2ef0..321f1329 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/SystemSendMsgHandle.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/SystemSendMsgHandle.java
@@ -8,6 +8,7 @@ import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.util.SpringContextUtils;
import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.message.enums.Vue3MessageHrefEnum;
import org.jeecg.modules.message.handle.ISendMsgHandle;
import org.jeecg.modules.message.websocket.WebSocket;
import org.jeecg.modules.system.entity.SysAnnouncement;
@@ -89,6 +90,7 @@ public class SystemSendMsgHandle implements ISendMsgHandle {
Object taskId = data.get(CommonConstant.NOTICE_MSG_BUS_ID);
if(taskId!=null){
announcement.setBusId(taskId.toString());
+ announcement.setBusType(Vue3MessageHrefEnum.BPM_TASK.getBusType());
}
}
announcement.setTitile(title);
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/oss/service/IOssFileService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/oss/service/IOssFileService.java
index 8a82a485..815d7c49 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/oss/service/IOssFileService.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/oss/service/IOssFileService.java
@@ -17,7 +17,7 @@ public interface IOssFileService extends IService {
* @param multipartFile
* @throws IOException
*/
- void upload(MultipartFile multipartFile) throws IOException;
+ void upload(MultipartFile multipartFile) throws Exception;
/**
* oss文件删除
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/oss/service/impl/OssFileServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/oss/service/impl/OssFileServiceImpl.java
index 539d90fc..33ce147f 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/oss/service/impl/OssFileServiceImpl.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/oss/service/impl/OssFileServiceImpl.java
@@ -19,7 +19,7 @@ import java.io.IOException;
public class OssFileServiceImpl extends ServiceImpl implements IOssFileService {
@Override
- public void upload(MultipartFile multipartFile) throws IOException {
+ public void upload(MultipartFile multipartFile) throws Exception {
String fileName = multipartFile.getOriginalFilename();
fileName = CommonUtils.getFileName(fileName);
OssFile ossFile = new OssFile();
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/controller/QuartzJobController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/controller/QuartzJobController.java
index d61c7201..565fd163 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/controller/QuartzJobController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/controller/QuartzJobController.java
@@ -280,4 +280,5 @@ public class QuartzJobController {
}
return Result.ok("执行成功!");
}
+
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
index e57e4a00..fcb98c6d 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.system.controller;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -16,9 +17,11 @@ import org.jeecg.common.constant.WebsocketConst;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.common.util.TokenUtils;
import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.message.enums.RangeDateEnum;
import org.jeecg.modules.message.websocket.WebSocket;
import org.jeecg.modules.system.entity.SysAnnouncement;
import org.jeecg.modules.system.entity.SysAnnouncementSend;
@@ -45,10 +48,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
import static org.jeecg.common.constant.CommonConstant.ANNOUNCEMENT_SEND_STATUS_1;
@@ -70,9 +71,9 @@ public class SysAnnouncementController {
@Resource
private WebSocket webSocket;
@Autowired
- ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
+ ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
@Autowired
- ThirdAppDingtalkServiceImpl dingtalkService;
+ ThirdAppDingtalkServiceImpl dingtalkService;
@Autowired
private SysBaseApiImpl sysBaseApi;
@Autowired
@@ -506,4 +507,47 @@ public class SysAnnouncementController {
return modelAndView;
}
+ /**
+ * 【vue3用】 消息列表查询
+ * @param fromUser
+ * @param beginDate
+ * @param endDate
+ * @param pageNo
+ * @param pageSize
+ * @return
+ */
+ @RequestMapping(value = "/vue3List", method = RequestMethod.GET)
+ public Result> vue3List(@RequestParam(name="fromUser", required = false) String fromUser,
+ @RequestParam(name="starFlag", required = false) String starFlag,
+ @RequestParam(name="rangeDateKey", required = false) String rangeDateKey,
+ @RequestParam(name="beginDate", required = false) String beginDate, @RequestParam(name="endDate", required = false) String endDate,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
+ // 后台获取开始时间/结束时间
+ Date bd=null, ed=null;
+ if(RangeDateEnum.ZDY.getKey().equals(rangeDateKey)){
+ if(oConvertUtils.isNotEmpty(beginDate)){
+ bd = DateUtils.parseDatetime(beginDate);
+ }
+ if(oConvertUtils.isNotEmpty(endDate)){
+ ed = DateUtils.parseDatetime(endDate);
+ }
+ }else{
+ Date[] arr = RangeDateEnum.getRangeArray(rangeDateKey);
+ if(arr!=null){
+ bd = arr[0];
+ ed = arr[1];
+ }
+ }
+ List ls = this.sysAnnouncementService.querySysMessageList(pageSize, pageNo, fromUser, starFlag, bd, ed);
+ //查询出来的消息全部设置为已读
+ if(ls!=null && ls.size()>0){
+ String readed = "1";
+ List annoceIdList = ls.stream().filter(item->!readed.equals(item.getReadFlag())).map(item->item.getId()).collect(Collectors.toList());
+ if(annoceIdList!=null && annoceIdList.size()>0){
+ sysAnnouncementService.updateReaded(annoceIdList);
+ }
+ }
+ return Result.ok(ls);
+ }
+
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java
index 67464e3e..72462d19 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java
@@ -126,7 +126,7 @@ public class SysAnnouncementSendController {
boolean ok = sysAnnouncementSendService.updateById(sysAnnouncementSend);
//TODO 返回false说明什么?
if(ok) {
- result.success("修改成功!");
+ result.success("操作成功!");
}
}
@@ -253,4 +253,16 @@ public class SysAnnouncementSendController {
result.setMessage("全部已读");
return result;
}
+
+
+ /**
+ * 根据消息发送记录ID获取消息内容
+ * @param sendId
+ * @return
+ */
+ @GetMapping(value = "/getOne")
+ public Result getOne(@RequestParam(name="sendId",required=true) String sendId) {
+ AnnouncementSendModel model = sysAnnouncementSendService.getOne(sendId);
+ return Result.ok(model);
+ }
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDataLogController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDataLogController.java
index bcba5d7a..9523e70c 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDataLogController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDataLogController.java
@@ -6,6 +6,7 @@ import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.system.entity.SysDataLog;
@@ -37,6 +38,7 @@ public class SysDataLogController {
public Result> queryPageList(SysDataLog dataLog,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
Result> result = new Result>();
+ dataLog.setType(CommonConstant.DATA_LOG_TYPE_JSON);
QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dataLog, req.getParameterMap());
Page page = new Page(pageNo, pageSize);
IPage pageList = service.page(page, queryWrapper);
@@ -85,6 +87,15 @@ public class SysDataLogController {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("data_table", dataTable);
queryWrapper.eq("data_id", dataId);
+ //update-begin-author:taoyan date:2022-7-26 for: 新增查询条件-type
+ String type = req.getParameter("type");
+ if (oConvertUtils.isNotEmpty(type)) {
+ queryWrapper.eq("type", type);
+ }
+ // 按时间倒序排
+ queryWrapper.orderByDesc("create_time");
+ //update-end-author:taoyan date:2022-7-26 for:新增查询条件-type
+
List list = service.list(queryWrapper);
if(list==null||list.size()<=0) {
result.error500("未找到版本信息");
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictController.java
index 172cdc72..fb5e636e 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictController.java
@@ -304,6 +304,8 @@ public class SysDictController {
/**
* 【接口签名验证】
* 根据表名——显示字段-存储字段 pid 加载树形数据
+ * @param hasChildField 是否叶子节点字段
+ * @param converIsLeafVal 是否需要系统转换 是否叶子节点的值 (0标识不转换、1标准系统自动转换)
*/
@SuppressWarnings("unchecked")
@RequestMapping(value = "/loadTreeData", method = RequestMethod.GET)
@@ -312,6 +314,7 @@ public class SysDictController {
@RequestParam(name="text") String text,
@RequestParam(name="code") String code,
@RequestParam(name="hasChildField") String hasChildField,
+ @RequestParam(name="converIsLeafVal",defaultValue ="1") int converIsLeafVal,
@RequestParam(name="condition") String condition,
@RequestParam(value = "sign",required = false) String sign,HttpServletRequest request) {
Result> result = new Result>();
@@ -322,7 +325,7 @@ public class SysDictController {
// SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件)
String dictCode = tbname+","+text+","+code+","+condition;
SqlInjectionUtil.filterContent(dictCode);
- List ls = sysDictService.queryTreeList(query,tbname, text, code, pidField, pid,hasChildField);
+ List ls = sysDictService.queryTreeList(query,tbname, text, code, pidField, pid,hasChildField,converIsLeafVal);
result.setSuccess(true);
result.setResult(ls);
return result;
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java
index 0e8217ab..9f6083ac 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysPermissionController.java
@@ -78,16 +78,32 @@ public class SysPermissionController {
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
- public Result> list() {
+ public Result> list(SysPermission sysPermission, HttpServletRequest req) {
long start = System.currentTimeMillis();
Result> result = new Result<>();
try {
LambdaQueryWrapper query = new LambdaQueryWrapper();
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.orderByAsc(SysPermission::getSortNo);
+
+ //支持通过菜单名字,模糊查询
+ if(oConvertUtils.isNotEmpty(sysPermission.getName())){
+ query.like(SysPermission::getName, sysPermission.getName());
+ }
List list = sysPermissionService.list(query);
List treeList = new ArrayList<>();
- getTreeList(treeList, list, null);
+
+ //如果有菜单名查询条件,则平铺数据 不做上下级
+ if(oConvertUtils.isNotEmpty(sysPermission.getName())){
+ if(list!=null && list.size()>0){
+ treeList = list.stream().map(e -> {
+ e.setLeaf(true);
+ return new SysPermissionTree(e);
+ }).collect(Collectors.toList());
+ }
+ }else{
+ getTreeList(treeList, list, null);
+ }
result.setResult(treeList);
result.setSuccess(true);
log.info("======获取全部菜单数据=====耗时:" + (System.currentTimeMillis() - start) + "毫秒");
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUploadController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUploadController.java
index ad0bf40f..a6e25350 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUploadController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUploadController.java
@@ -33,7 +33,7 @@ public class SysUploadController {
* @param request
*/
@PostMapping(value = "/uploadMinio")
- public Result> uploadMinio(HttpServletRequest request) {
+ public Result> uploadMinio(HttpServletRequest request) throws Exception {
Result> result = new Result<>();
String bizPath = request.getParameter("biz");
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncement.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncement.java
index a4bc772c..5cd1b0e7 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncement.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncement.java
@@ -146,5 +146,20 @@ public class SysAnnouncement implements Serializable {
/**
* 钉钉task_id,用于撤回消息
*/
- private java.lang.String dtTaskId;
+ private String dtTaskId;
+
+ /**
+ * 阅读状态 1表示已经阅读
+ */
+ private transient String readFlag;
+
+ /**
+ * 标星状态 1表示标星
+ */
+ private transient String starFlag;
+
+ /**
+ * 发送记录ID
+ */
+ private transient String sendId;
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncementSend.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncementSend.java
index c9ea685c..1d2b955c 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncementSend.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncementSend.java
@@ -45,4 +45,9 @@ public class SysAnnouncementSend implements Serializable {
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private java.util.Date updateTime;
+
+ /**
+ * 是否标星 当值为1是标星消息
+ */
+ private String starFlag;
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysDataLog.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysDataLog.java
index 2d885c5b..dd055ed3 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysDataLog.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysDataLog.java
@@ -72,4 +72,12 @@ public class SysDataLog implements Serializable {
* 版本号
*/
private String dataVersion;
+
+
+ //update-begin-author:taoyan date:2022-7-26 for: 用于表单评论记录日志 区分数据
+ /**
+ * 类型
+ */
+ private String type;
+ //update-end-author:taoyan date:2022-7-26 for: 用于表单评论记录日志 区分数据
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysThirdAccount.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysThirdAccount.java
index d9a0ca10..f3b583f8 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysThirdAccount.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysThirdAccount.java
@@ -53,11 +53,11 @@ public class SysThirdAccount {
@Excel(name = "真实姓名", width = 15)
@ApiModelProperty(value = "真实姓名")
private java.lang.String realname;
- /**真实姓名*/
- @Excel(name = "真实姓名", width = 15)
- @ApiModelProperty(value = "真实姓名")
+ /**第三方用户uuid*/
+ @Excel(name = "第三方用户uuid", width = 15)
+ @ApiModelProperty(value = "第三方用户uuid")
private java.lang.String thirdUserUuid;
- /**真实姓名*/
+ /**第三方用户账号*/
@Excel(name = "第三方用户账号", width = 15)
@ApiModelProperty(value = "第三方用户账号")
private java.lang.String thirdUserId;
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementMapper.java
index e7a6343d..33358657 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementMapper.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementMapper.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.system.mapper;
+import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
@@ -25,4 +26,14 @@ public interface SysAnnouncementMapper extends BaseMapper {
*/
List querySysCementListByUserId(Page page, @Param("userId")String userId,@Param("msgCategory")String msgCategory);
+ /**
+ * 分页查询消息列表
+ * @param page
+ * @param userId
+ * @param fromUser
+ * @param beginDate
+ * @param endDate
+ * @return
+ */
+ List queryMessageList(Page page, @Param("userId")String userId, @Param("fromUser")String fromUser, @Param("starFlag")String starFlag, @Param("beginDate")Date beginDate, @Param("endDate")Date endDate);
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java
index 65812210..7871b628 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java
@@ -32,4 +32,16 @@ public interface SysAnnouncementSendMapper extends BaseMapper getMyAnnouncementSendList(Page page,@Param("announcementSendModel") AnnouncementSendModel announcementSendModel);
+ /**
+ * 获取一条记录
+ * @param sendId
+ * @return
+ */
+ AnnouncementSendModel getOne(@Param("sendId") String sendId);
+
+
+ /**
+ * 修改为已读消息
+ */
+ void updateReaded(@Param("userId") String userId, @Param("annoceIdList") List annoceIdList);
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java
index 17c2cdd9..32c44eaa 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java
@@ -194,7 +194,7 @@ public interface SysDictMapper extends BaseMapper {
* @return
*/
@Deprecated
- List queryTreeList(@Param("query") Map query,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField,@Param("pid") String pid,@Param("hasChildField") String hasChildField);
+ List queryTreeList(@Param("query") Map query,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField,@Param("pid") String pid,@Param("hasChildField") String hasChildField,@Param("converIsLeafVal") int converIsLeafVal);
/**
* 删除
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java
index 0d544425..d68abf65 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java
@@ -25,14 +25,6 @@ public interface SysPermissionMapper extends BaseMapper {
* @return
*/
public List queryListByParentId(@Param("parentId") String parentId);
-
- /**
- * 切换vue3菜单
- */
- @Update("alter table sys_permission rename to sys_permission_v2")
- public void backupVue2Menu();
- @Update("alter table sys_permission_v3 rename to sys_permission")
- public void changeVue3Menu();
/**
* 根据用户查询用户权限
@@ -49,6 +41,14 @@ public interface SysPermissionMapper extends BaseMapper {
*/
@Update("update sys_permission set is_leaf=#{leaf} where id = #{id}")
public int setMenuLeaf(@Param("id") String id,@Param("leaf") int leaf);
+
+ /**
+ * 切换vue3菜单
+ */
+ @Update("alter table sys_permission rename to sys_permission_v2")
+ public void backupVue2Menu();
+ @Update("alter table sys_permission_v3 rename to sys_permission")
+ public void changeVue3Menu();
/**
* 获取模糊匹配规则的数据权限URL
@@ -67,5 +67,10 @@ public interface SysPermissionMapper extends BaseMapper {
public int queryCountByUsername(@Param("username") String username, @Param("permission") SysPermission sysPermission);
-
+ /**
+ * 查询部门权限数据
+ * @param departId
+ * @return
+ */
+ List queryDepartPermissionList(@Param("departId") String departId);
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserDepartMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserDepartMapper.java
index f6dba86e..841a05fb 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserDepartMapper.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserDepartMapper.java
@@ -38,4 +38,13 @@ public interface SysUserDepartMapper extends BaseMapper{
* @return
*/
IPage queryDepartUserPageList(Page page, @Param("orgCode") String orgCode, @Param("username") String username, @Param("realname") String realname);
+
+ /**
+ * 获取用户信息
+ * @param page
+ * @param orgCode
+ * @param keyword
+ * @return
+ */
+ IPage getUserInformation(Page page, @Param("orgCode") String orgCode, @Param("keyword") String keyword,@Param("userId") String userId);
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementMapper.xml
index b338ebc0..c2a02b8e 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementMapper.xml
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementMapper.xml
@@ -25,6 +25,10 @@
+
+
+
+
@@ -37,4 +41,31 @@
order by create_time DESC
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml
index 6fda72c6..9925f50a 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml
@@ -13,6 +13,7 @@
+
@@ -35,6 +36,7 @@
sa.msg_category,
sa.send_time as send_time,
sa.bus_id as bus_id,
+ sa.bus_type as bus_type,
sa.open_type as open_type,
sa.open_page as open_page,
sa.msg_abstract
@@ -64,4 +66,42 @@
order by sas.read_flag,sa.send_time desc
+
+
+
+
+
+
+
+
+ update sys_announcement_send set read_flag = '1'
+ where user_id = #{userId}
+ and annt_id in
+
+ #{id}
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml
index 24d49a25..ef1ec1df 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml
@@ -128,7 +128,14 @@
${code} as "key",
- (case when ${hasChildField} = '1' then 0 else 1 end) as isLeaf,
+
+
+ (case when ${hasChildField} = '1' then 0 else 1 end) as isLeaf,
+
+
+ ${hasChildField} as isLeaf,
+
+
${pidField} as parentId
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionMapper.xml
index 542aade7..3ded0c9e 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionMapper.xml
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysPermissionMapper.xml
@@ -103,6 +103,15 @@
) temp
-
+
+
+
\ No newline at end of file
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserDepartMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserDepartMapper.xml
index bee2bea5..4449d611 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserDepartMapper.xml
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserDepartMapper.xml
@@ -27,7 +27,7 @@
join sys_user_depart b on b.user_id = a.id
join sys_depart c on b.dep_id = c.id
- where a.del_flag = 0 and a.status = 1 and c.org_code like #{bindOrgCode}
+ where a.del_flag = 0 and a.status = 1 and c.org_code like #{bindOrgCode} and a.username!='_reserve_user_external'
and a.username like #{bindUsername}
@@ -37,4 +37,21 @@
and a.realname like #{bindRealname}
+
+
+
\ No newline at end of file
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/model/TreeSelectModel.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/model/TreeSelectModel.java
index 6fc6f369..e182d0e0 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/model/TreeSelectModel.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/model/TreeSelectModel.java
@@ -14,7 +14,9 @@ public class TreeSelectModel implements Serializable {
private String key;
private String title;
-
+ /**
+ * 是否叶子节点
+ */
private boolean isLeaf;
private String icon;
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementSendService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementSendService.java
index 60f8a2fa..a846d232 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementSendService.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementSendService.java
@@ -31,4 +31,11 @@ public interface ISysAnnouncementSendService extends IService getMyAnnouncementSendPage(Page page,AnnouncementSendModel announcementSendModel);
+ /**
+ * 根据消息发送记录ID获取消息内容
+ * @return
+ */
+ AnnouncementSendModel getOne(String sendId);
+
+
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java
index d719d660..bf0ea45f 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java
@@ -1,9 +1,11 @@
package org.jeecg.modules.system.service;
-import org.jeecg.modules.system.entity.SysAnnouncement;
-
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.system.entity.SysAnnouncement;
+
+import java.util.Date;
+import java.util.List;
/**
* @Description: 系统通告表
@@ -40,7 +42,24 @@ public interface ISysAnnouncementService extends IService {
* @param msgCategory 消息类型
* @return Page
*/
- public Page querySysCementPageByUserId(Page page,String userId,String msgCategory);
+ public Page querySysCementPageByUserId(Page page, String userId, String msgCategory);
+
+
+ /**
+ * 补全当前登录用户的消息阅读记录
+ */
+ void completeAnnouncementSendInfo();
+
+
+ /**
+ * 分页查询当前登录用户的消息, 并且标记哪些是未读消息
+ */
+ List querySysMessageList(int pageSize, int pageNo, String fromUser, String starFlag, Date beginDate, Date endDate);
+
+ /**
+ * 修改为已读消息
+ */
+ void updateReaded(List annoceIdList);
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java
index 7f9bc9e2..1680a881 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java
@@ -205,7 +205,7 @@ public interface ISysDictService extends IService {
* @return
*/
@Deprecated
- List queryTreeList(Map query,String table, String text, String code, String pidField,String pid,String hasChildField);
+ List queryTreeList(Map query,String table, String text, String code, String pidField,String pid,String hasChildField,int converIsLeafVal);
/**
* 真实删除
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java
index f75076cc..8e2a32ae 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java
@@ -18,9 +18,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @since 2018-12-21
*/
public interface ISysPermissionService extends IService {
- /**
- * 切换vue3菜单
- */
+ /**
+ * 切换vue3菜单
+ */
public void switchVue3Menu();
/**
@@ -93,4 +93,11 @@ public interface ISysPermissionService extends IService {
* @return
*/
public boolean hasPermission(String username, String url);
+
+ /**
+ * 查询部门权限数据
+ * @param departId
+ * @return
+ */
+ List queryDepartPermissionList(String departId);
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java
index 72eaaa58..9f300fc5 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java
@@ -55,4 +55,13 @@ public interface ISysUserDepartService extends IService {
*/
IPage queryDepartUserPageList(String departId, String username, String realname, int pageSize, int pageNo,String id);
+ /**
+ * 获取用户信息
+ * @param departId
+ * @param keyword
+ * @param pageSize
+ * @param pageNo
+ * @return
+ */
+ IPage getUserInformation(String departId, String keyword, Integer pageSize, Integer pageNo);
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementSendServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementSendServiceImpl.java
index d930acbf..d07af817 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementSendServiceImpl.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementSendServiceImpl.java
@@ -36,4 +36,9 @@ public class SysAnnouncementSendServiceImpl extends ServiceImpl implements ISysAnnouncementService {
@Resource
@@ -126,4 +128,61 @@ public class SysAnnouncementServiceImpl extends ServiceImpl querySaWrapper = new LambdaQueryWrapper();
+ //全部人员
+ querySaWrapper.eq(SysAnnouncement::getMsgType, CommonConstant.MSG_TYPE_ALL);
+ //未删除
+ querySaWrapper.eq(SysAnnouncement::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+ //已发布
+ querySaWrapper.eq(SysAnnouncement::getSendStatus, CommonConstant.HAS_SEND);
+ //新注册用户不看结束通知
+ querySaWrapper.ge(SysAnnouncement::getEndTime, sysUser.getCreateTime());
+ //update-begin--Author:liusq Date:20210108 for:[JT-424] 【开源issue】bug处理--------------------
+ querySaWrapper.notInSql(SysAnnouncement::getId,"select annt_id from sys_announcement_send where user_id='"+userId+"'");
+ //update-begin--Author:liusq Date:20210108 for: [JT-424] 【开源issue】bug处理--------------------
+ List announcements = this.list(querySaWrapper);
+ if(announcements.size()>0) {
+ for(int i=0;i query = new LambdaQueryWrapper<>();
+ query.eq(SysAnnouncementSend::getAnntId,announcements.get(i).getId());
+ query.eq(SysAnnouncementSend::getUserId,userId);
+ SysAnnouncementSend one = sysAnnouncementSendMapper.selectOne(query);
+ if(null==one){
+ SysAnnouncementSend announcementSend = new SysAnnouncementSend();
+ announcementSend.setAnntId(announcements.get(i).getId());
+ announcementSend.setUserId(userId);
+ announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
+ sysAnnouncementSendMapper.insert(announcementSend);
+ log.info("announcementSend.toString()",announcementSend.toString());
+ }
+ //update-end--Author:wangshuai Date:20200803 for: 通知公告消息重复LOWCOD-759------------
+ }
+ }
+
+ }
+
+ @Override
+ public List querySysMessageList(int pageSize, int pageNo, String fromUser, String starFlag, Date beginDate, Date endDate) {
+ //1. 补全send表的数据
+ completeAnnouncementSendInfo();
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ Page page = new Page(pageNo,pageSize);
+ // 2. 查询消息数据
+ List list = baseMapper.queryMessageList(page, sysUser.getId(), fromUser, starFlag, beginDate, endDate);
+ return list;
+ }
+
+ @Override
+ public void updateReaded(List annoceIdList) {
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ sysAnnouncementSendMapper.updateReaded(sysUser.getId(), annoceIdList);
+ }
+
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
index 9223a914..55ef4ce2 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
@@ -12,6 +12,7 @@ import com.google.common.base.Joiner;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.dto.DataLogDTO;
import org.jeecg.common.api.dto.OnlineAuthDTO;
import org.jeecg.common.api.dto.message.*;
import org.jeecg.common.aspect.UrlMatchEnum;
@@ -22,6 +23,7 @@ import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.*;
+import org.jeecg.common.util.HTMLUtils;
import org.jeecg.common.util.SysAnnmentTypeEnum;
import org.jeecg.common.util.YouBianCodeUtil;
import org.jeecg.common.util.dynamic.db.FreemarkerParseFactory;
@@ -101,6 +103,10 @@ public class SysBaseApiImpl implements ISysBaseAPI {
ISysCategoryService sysCategoryService;
@Autowired
private ISysUserService sysUserService;
+ @Autowired
+ private ISysDataLogService sysDataLogService;
+ @Autowired
+ private ISysFilesService sysFilesService;
@Override
//@SensitiveDecode
@@ -1191,10 +1197,13 @@ public class SysBaseApiImpl implements ISysBaseAPI {
//update-begin-author:taoyan date:2022-7-9 for: 将模板解析代码移至消息发送, 而不是调用的地方
String templateCode = message.getTemplateCode();
if(oConvertUtils.isNotEmpty(templateCode)){
- String content = getTemplateContent(templateCode);
+ SysMessageTemplate templateEntity = getTemplateEntity(templateCode);
+ boolean isMarkdown = CommonConstant.MSG_TEMPLATE_TYPE_MD.equals(templateEntity.getTemplateType());
+ String content = templateEntity.getTemplateContent();
if(oConvertUtils.isNotEmpty(content) && null!=message.getData()){
- content = FreemarkerParseFactory.parseTemplateContent(content, message.getData());
+ content = FreemarkerParseFactory.parseTemplateContent(content, message.getData(), isMarkdown);
}
+ message.setIsMarkdown(isMarkdown);
message.setContent(content);
}
if(oConvertUtils.isEmpty(message.getContent())){
@@ -1202,8 +1211,16 @@ public class SysBaseApiImpl implements ISysBaseAPI {
}
//update-end-author:taoyan date:2022-7-9 for: 将模板解析代码移至消息发送, 而不是调用的地方
if(MessageTypeEnum.XT.getType().equals(messageType)){
+ if (message.isMarkdown()) {
+ // 系统消息要解析Markdown
+ message.setContent(HTMLUtils.parseMarkdown(message.getContent()));
+ }
systemSendMsgHandle.sendMessage(message);
}else if(MessageTypeEnum.YJ.getType().equals(messageType)){
+ if (message.isMarkdown()) {
+ // 邮件消息要解析Markdown
+ message.setContent(HTMLUtils.parseMarkdown(message.getContent()));
+ }
emailSendMsgHandle.sendMessage(message);
}else if(MessageTypeEnum.DD.getType().equals(messageType)){
ddSendMsgHandle.sendMessage(message);
@@ -1220,6 +1237,64 @@ public class SysBaseApiImpl implements ISysBaseAPI {
}
return list.get(0).getTemplateContent();
}
+
+ /**
+ * 获取模板内容,解析markdown
+ *
+ * @param code
+ * @return
+ */
+ public SysMessageTemplate getTemplateEntity(String code) {
+ List list = sysMessageTemplateService.selectByCode(code);
+ if (list == null || list.size() == 0) {
+ return null;
+ }
+ return list.get(0);
+ }
+
//-------------------------------------流程节点发送模板消息-----------------------------------------------
+ @Override
+ public void saveDataLog(DataLogDTO dataLogDto) {
+ SysDataLog entity = new SysDataLog();
+ entity.setDataTable(dataLogDto.getTableName());
+ entity.setDataId(dataLogDto.getDataId());
+ entity.setDataContent(dataLogDto.getContent());
+ entity.setType(dataLogDto.getType());
+ entity.setDataVersion("1");
+ sysDataLogService.save(entity);
+ }
+
+ @Override
+ public void addSysFiles(SysFilesModel sysFilesModel) {
+ SysFiles sysFiles = new SysFiles();
+ BeanUtils.copyProperties(sysFilesModel,sysFiles);
+ String defaultValue = "0";
+ sysFiles.setIzStar(defaultValue);
+ sysFiles.setIzFolder(defaultValue);
+ sysFiles.setIzRootFolder(defaultValue);
+ sysFiles.setDelFlag(defaultValue);
+ sysFilesService.save(sysFiles);
+ }
+
+ @Override
+ public String getFileUrl(String fileId) {
+ SysFiles sysFiles = sysFilesService.getById(fileId);
+ return sysFiles.getUrl();
+ }
+
+ @Override
+ public void updateAvatar(LoginUser loginUser) {
+ SysUser sysUser = new SysUser();
+ BeanUtils.copyProperties(loginUser, sysUser);
+ sysUserService.updateById(sysUser);
+ }
+
+ @Override
+ public void sendAppChatSocket(String userId) {
+ JSONObject obj = new JSONObject();
+ obj.put(WebsocketConst.MSG_CMD, WebsocketConst.MSG_CHAT);
+ obj.put(WebsocketConst.MSG_USER_ID, userId);
+ webSocket.sendMessage(userId, obj.toJSONString());
+ }
}
\ No newline at end of file
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java
index 3b3aa217..17b7440a 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.netty.util.internal.StringUtil;
import org.apache.commons.lang.StringUtils;
@@ -138,8 +139,8 @@ public class SysDepartServiceImpl extends ServiceImpl impl
sqlWhere = " and ";
}
// update-end-author:sunjianlei date:20220112 for: 【JTC-631】判断如果 table 携带了 where 条件,那么就使用 and 查询,防止报错
- if(oConvertUtils.isNotEmpty(keyword)){
- // 判断是否是多选
- if (keyword.contains(SymbolConstant.COMMA)) {
- //update-begin--author:scott--date:20220105--for:JTC-529【表单设计器】 编辑页面报错,in参数采用双引号导致 ----
- String inKeywords = "'" + String.join("','", keyword.split(",")) + "'";
- //update-end--author:scott--date:20220105--for:JTC-529【表单设计器】 编辑页面报错,in参数采用双引号导致----
- keywordSql = "(" + text + " in (" + inKeywords + ") or " + code + " in (" + inKeywords + "))";
- } else {
- keywordSql = "("+text + " like '%"+keyword+"%' or "+ code + " like '%"+keyword+"%')";
+
+ //update-begin-author:taoyan date:2022-8-15 for: 下拉搜索组件 支持传入排序信息 查询排序
+ String orderField = "", orderType = "";
+ if (oConvertUtils.isNotEmpty(keyword)) {
+ // 关键字里面如果写入了 排序信息 xxxxx[orderby:create_time,desc]
+ String orderKey = "[orderby";
+ if (keyword.indexOf(orderKey) >= 0 && keyword.endsWith("]")) {
+ String orderInfo = keyword.substring(keyword.indexOf(orderKey) + orderKey.length() + 1, keyword.length() - 1);
+ keyword = keyword.substring(0, keyword.indexOf(orderKey));
+ String[] orderInfoArray = orderInfo.split(SymbolConstant.COMMA);
+ orderField = orderInfoArray[0];
+ orderType = orderInfoArray[1];
+ }
+
+ if (oConvertUtils.isNotEmpty(keyword)) {
+ // 判断是否是多选
+ if (keyword.contains(SymbolConstant.COMMA)) {
+ //update-begin--author:scott--date:20220105--for:JTC-529【表单设计器】 编辑页面报错,in参数采用双引号导致 ----
+ String inKeywords = "'" + String.join("','", keyword.split(",")) + "'";
+ //update-end--author:scott--date:20220105--for:JTC-529【表单设计器】 编辑页面报错,in参数采用双引号导致----
+ keywordSql = "(" + text + " in (" + inKeywords + ") or " + code + " in (" + inKeywords + "))";
+ } else {
+ keywordSql = "("+text + " like '%"+keyword+"%' or "+ code + " like '%"+keyword+"%')";
+ }
}
}
+ //update-end-author:taoyan date:2022-8-15 for: 下拉搜索组件 支持传入排序信息 查询排序
if(oConvertUtils.isNotEmpty(condition) && oConvertUtils.isNotEmpty(keywordSql)){
filterSql+= sqlWhere + condition + " and " + keywordSql;
}else if(oConvertUtils.isNotEmpty(condition)){
@@ -329,6 +345,12 @@ public class SysDictServiceImpl extends ServiceImpl impl
}else if(oConvertUtils.isNotEmpty(keywordSql)){
filterSql+= sqlWhere + keywordSql;
}
+ //update-begin-author:taoyan date:2022-8-15 for: 下拉搜索组件 支持传入排序信息 查询排序
+ // 增加排序逻辑
+ if (oConvertUtils.isNotEmpty(orderField)) {
+ filterSql += " order by " + orderField + " " + orderType;
+ }
+ //update-end-author:taoyan date:2022-8-15 for: 下拉搜索组件 支持传入排序信息 查询排序
return filterSql;
}
@Override
@@ -339,8 +361,8 @@ public class SysDictServiceImpl extends ServiceImpl impl
}
@Override
- public List queryTreeList(Map query,String table, String text, String code, String pidField,String pid,String hasChildField) {
- return baseMapper.queryTreeList(query, table, text, code, pidField, pid, hasChildField);
+ public List queryTreeList(Map query,String table, String text, String code, String pidField,String pid,String hasChildField,int converIsLeafVal) {
+ return baseMapper.queryTreeList(query, table, text, code, pidField, pid, hasChildField,converIsLeafVal);
}
@Override
@@ -398,6 +420,14 @@ public class SysDictServiceImpl extends ServiceImpl impl
//字典表
ls = this.queryDictItemsByCode(dictCode);
}
+ //update-begin-author:taoyan date:2022-8-30 for: 字典获取可以获取枚举类的数据
+ if (ls == null || ls.size() == 0) {
+ Map> map = ResourceUtil.getEnumDictData();
+ if (map.containsKey(dictCode)) {
+ return map.get(dictCode);
+ }
+ }
+ //update-end-author:taoyan date:2022-8-30 for: 字典获取可以获取枚举类的数据
return ls;
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java
index 3ebac88b..b4220f82 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java
@@ -55,17 +55,17 @@ public class SysPermissionServiceImpl extends ServiceImpl queryListByParentId(String parentId) {
- return sysPermissionMapper.queryListByParentId(parentId);
- }
-
@Override
public void switchVue3Menu() {
sysPermissionMapper.backupVue2Menu();
sysPermissionMapper.changeVue3Menu();
}
-
+
+ @Override
+ public List queryListByParentId(String parentId) {
+ return sysPermissionMapper.queryListByParentId(parentId);
+ }
+
/**
* 真实删除
*/
@@ -272,4 +272,9 @@ public class SysPermissionServiceImpl extends ServiceImpl queryDepartPermissionList(String departId) {
+ return sysPermissionMapper.queryDepartPermissionList(departId);
+ }
+
}
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java
index 8796a8b9..5a8281be 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java
@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.shiro.SecurityUtils;
import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.entity.SysUser;
@@ -57,7 +59,7 @@ public class SysUserDepartServiceImpl extends ServiceImpl depList = sysDepartService.list(queryDep);
- //[jeecg-boot/issues/3906] 逻辑判断有问题
+ //jeecg-boot/issues/3906
if(depList != null && depList.size() > 0) {
for(SysDepart depart : depList) {
depIdModelList.add(new DepartIdModel().convertByUserDepart(depart));
@@ -139,7 +141,10 @@ public class SysUserDepartServiceImpl extends ServiceImpl getUserInformation(String departId, String keyword, Integer pageSize, Integer pageNo) {
+ IPage pageList = null;
+ // 部门ID不存在 直接查询用户表即可
+ Page page = new Page<>(pageNo, pageSize);
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ if(oConvertUtils.isEmpty(departId)){
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ query.eq(SysUser::getStatus,Integer.parseInt(CommonConstant.STATUS_1));
+ query.ne(SysUser::getUsername,"_reserve_user_external");
+ //排除自己
+ query.ne(SysUser::getId,sysUser.getId());
+ //这个语法可以将or用括号包起来,避免数据查不到
+ query.and((wrapper) -> wrapper.like(SysUser::getUsername, keyword).or().like(SysUser::getRealname,keyword));
+ pageList = sysUserMapper.selectPage(page, query);
+ }else{
+ // 有部门ID 需要走自定义sql
+ SysDepart sysDepart = sysDepartService.getById(departId);
+ //update-begin---author:wangshuai ---date:20220908 for:部门排除自己------------
+ pageList = this.baseMapper.getUserInformation(page, sysDepart.getOrgCode(), keyword,sysUser.getId());
+ //update-end---author:wangshuai ---date:20220908 for:部门排除自己--------------
+ }
+ return pageList;
+ }
+
/**
* 升级SpringBoot2.6.6,不允许循环依赖
* @param userIds
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppDingtalkServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppDingtalkServiceImpl.java
index 39ff9453..e1d122cc 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppDingtalkServiceImpl.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppDingtalkServiceImpl.java
@@ -12,6 +12,7 @@ import com.jeecg.dingtalk.api.department.JdtDepartmentAPI;
import com.jeecg.dingtalk.api.department.vo.Department;
import com.jeecg.dingtalk.api.message.JdtMessageAPI;
import com.jeecg.dingtalk.api.message.vo.ActionCardMessage;
+import com.jeecg.dingtalk.api.message.vo.MarkdownMessage;
import com.jeecg.dingtalk.api.message.vo.Message;
import com.jeecg.dingtalk.api.message.vo.TextMessage;
import com.jeecg.dingtalk.api.oauth2.JdtOauth2API;
@@ -739,13 +740,49 @@ public class ThirdAppDingtalkServiceImpl implements IThirdAppService {
*/
@Override
public boolean sendMessage(MessageDTO message, boolean verifyConfig) {
- Response response = this.sendMessageResponse(message, verifyConfig);
+ Response response;
+ if (message.isMarkdown()) {
+ response = this.sendMarkdownResponse(message, verifyConfig);
+ } else {
+ response = this.sendMessageResponse(message, verifyConfig);
+ }
if (response != null) {
return response.isSuccess();
}
return false;
}
+ /**
+ * 发送Markdown消息
+ * @param message
+ * @param verifyConfig
+ * @return
+ */
+ public Response sendMarkdownResponse(MessageDTO message, boolean verifyConfig) {
+ if (verifyConfig && !thirdAppConfig.isDingtalkEnabled()) {
+ return null;
+ }
+ String accessToken = this.getAccessToken();
+ if (accessToken == null) {
+ return null;
+ }
+ // 封装钉钉消息
+ String title = message.getTitle();
+ String content = message.getContent();
+ int agentId = thirdAppConfig.getDingtalk().getAgentIdInt();
+ Message mdMessage = new Message<>(agentId, new MarkdownMessage(title, content));
+ if (message.getToAll()) {
+ mdMessage.setTo_all_user(true);
+ } else {
+ String[] toUsers = message.getToUser().split(",");
+ // 通过第三方账号表查询出第三方userId
+ List thirdAccountList = sysThirdAccountService.listThirdUserIdByUsername(toUsers, THIRD_TYPE);
+ List dtUserIds = thirdAccountList.stream().map(SysThirdAccount::getThirdUserId).collect(Collectors.toList());
+ mdMessage.setUserid_list(dtUserIds);
+ }
+ return JdtMessageAPI.sendMarkdownMessage(mdMessage, accessToken);
+ }
+
public Response sendMessageResponse(MessageDTO message, boolean verifyConfig) {
if (verifyConfig && !thirdAppConfig.isDingtalkEnabled()) {
return null;
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
index f7391a09..bf6e54d1 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
@@ -9,10 +9,7 @@ import com.jeecg.qywx.api.department.JwDepartmentAPI;
import com.jeecg.qywx.api.department.vo.DepartMsgResponse;
import com.jeecg.qywx.api.department.vo.Department;
import com.jeecg.qywx.api.message.JwMessageAPI;
-import com.jeecg.qywx.api.message.vo.Text;
-import com.jeecg.qywx.api.message.vo.TextCard;
-import com.jeecg.qywx.api.message.vo.TextCardEntity;
-import com.jeecg.qywx.api.message.vo.TextEntity;
+import com.jeecg.qywx.api.message.vo.*;
import com.jeecg.qywx.api.user.JwUserAPI;
import com.jeecg.qywx.api.user.vo.User;
import lombok.extern.slf4j.Slf4j;
@@ -747,7 +744,12 @@ public class ThirdAppWechatEnterpriseServiceImpl implements IThirdAppService {
@Override
public boolean sendMessage(MessageDTO message, boolean verifyConfig) {
- JSONObject response = this.sendMessageResponse(message, verifyConfig);
+ JSONObject response;
+ if (message.isMarkdown()) {
+ response = this.sendMarkdownResponse(message, verifyConfig);
+ } else {
+ response = this.sendMessageResponse(message, verifyConfig);
+ }
if (response != null) {
return response.getIntValue("errcode") == 0;
}
@@ -772,6 +774,23 @@ public class ThirdAppWechatEnterpriseServiceImpl implements IThirdAppService {
return JwMessageAPI.sendTextMessage(text, accessToken);
}
+ public JSONObject sendMarkdownResponse(MessageDTO message, boolean verifyConfig) {
+ if (verifyConfig && !thirdAppConfig.isWechatEnterpriseEnabled()) {
+ return null;
+ }
+ String accessToken = this.getAppAccessToken();
+ if (accessToken == null) {
+ return null;
+ }
+ Markdown markdown = new Markdown();
+ markdown.setTouser(this.getTouser(message.getToUser(), message.getToAll()));
+ MarkdownEntity entity = new MarkdownEntity();
+ entity.setContent(message.getContent());
+ markdown.setMarkdown(entity);
+ markdown.setAgentid(thirdAppConfig.getWechatEnterprise().getAgentIdInt());
+ return JwMessageAPI.sendMarkdownMessage(markdown, accessToken);
+ }
+
/**
* 发送文本卡片消息(SysAnnouncement定制)
*
diff --git a/pom.xml b/pom.xml
index 96fb62f4..5be46608 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,6 +25,7 @@
2.2.0
1.2.83
+ 1.6.0
3.0.3
2.0.9
@@ -33,9 +34,6 @@
4.0
8.0.27
5.3.8
- 3.16.1
- 1.9.4
- 29.0-jre
3.5.1
@@ -44,7 +42,7 @@
1.9.0
- 1.5.2
+ 1.5.3
2.6
2.1.0
3.11.2
@@ -121,6 +119,12 @@
fastjson
${fastjson.version}