From c764c7cf8eb8080180fbb61b7cd78f86adc2a119 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 11 Oct 2023 22:33:47 +0800
Subject: [PATCH] Merge branch 'jtdev' of https://hbsl-code.gistack.cn/hbwri/manager into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java | 1
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java | 1
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml | 4 +-
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java | 13 ++++++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java | 2 +
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java | 28 ++++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml | 6 +++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java | 61 ++++++++++++++++++++++--------
8 files changed, 98 insertions(+), 18 deletions(-)
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
index 5e5fbe9..c8927ea 100644
--- a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
@@ -17,11 +17,17 @@
package cn.gistack.auth.service;
import cn.gistack.auth.constant.AuthConstant;
+import cn.gistack.common.utils.Base64Utils;
+import cn.gistack.pwd.dto.CBCResultDTO;
+import cn.gistack.pwd.dto.ResultDTO;
+import cn.gistack.pwd.fegin.IPwdClient;
import cn.gistack.sm.collect.feign.ICollectClient;
import cn.gistack.sm.collect.feign.ICollectClientFallback;
import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
import cn.gistack.system.entity.Dept;
+import cn.gistack.system.user.supo.UserSUPO;
+import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.StringUtils;
import io.jsonwebtoken.Claims;
import lombok.AllArgsConstructor;
@@ -47,6 +53,7 @@
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.time.Duration;
+import java.util.Base64;
import java.util.List;
/**
@@ -70,6 +77,8 @@
private final JwtProperties jwtProperties;
private final ICollectClient collectClient;
+
+ private final IPwdClient pwdClient;
@Override
@SneakyThrows
@@ -178,6 +187,25 @@
String collectResIds = collectClient.getMyCollect(user.getId().toString());
userInfo.getDetail().set("collect",collectResIds);
+ User loginUserInfo = userInfo.getUser();
+
+ //获取解密后的Base64字符串
+ R<ResultDTO> encryptRes = pwdClient.getDecrypt(loginUserInfo.getSm4iv(), loginUserInfo.getKeyindexs(),loginUserInfo.getEncdata());
+
+ if (encryptRes.getCode() != 200){
+ throw new UserDeniedAuthorizationException("获取密钥失败");
+ }
+
+ //解码Base64
+ String base64Decode = Base64Utils.getBase64Decode(encryptRes.getData().getData());
+
+ UserSUPO userSUPO = JSONObject.parseObject(base64Decode, UserSUPO.class);
+
+ //若登录用户的电话、角色、部门与原加密数据不符,登录失败
+ if (!(loginUserInfo.getPhone().equals(userSUPO.getPhone()) && loginUserInfo.getRoleId().equals(userSUPO.getRoleId()) && loginUserInfo.getDeptId().equals(userSUPO.getDeptId())) ){
+ throw new UserDeniedAuthorizationException("用户信息异常,请联系管理员");
+ }
+
return new BladeUserDetails(user.getId(),
user.getTenantId(), StringPool.EMPTY, user.getName(), user.getRealName(), user.getDeptId(), user.getPostId(), user.getRoleId(), Func.join(userInfo.getRoles()), Func.toStr(user.getAvatar(), TokenUtil.DEFAULT_AVATAR),
username, AuthConstant.ENCRYPT + user.getPassword(), userInfo.getDetail(), true, true, true, true,
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java
index 3110d78..66e4b85 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java
@@ -37,6 +37,19 @@
}
/**
+ * 通过用户id推送消息,用于2.0测试(多人)
+ * @param pushVO
+ * @return
+ */
+ @PostMapping("/pushMessageByUserList")
+ public R pushMessageByUserList(PushVO pushVO){
+ return R.data(pushService.pushMessageByUserList(pushVO));
+ }
+
+
+
+
+ /**
* 清空redis中的缓存
* @param userId
* @return
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java
index 7692fc3..69b7f2e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java
@@ -56,4 +56,6 @@
* @return
*/
Boolean geTuiPushMessage(PushVO pushVO);
+
+ Boolean pushMessageByUserList(PushVO pushVO);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
index 3389cd7..33d26e6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
@@ -46,26 +46,28 @@
//uni-push 一次推送最多500名用户,所以分批推送
List<List<String>> groupList = groupListByQuantity(cIdList, 400);
- groupList.forEach(item->{
+ Boolean push = false;
+ for(List<String> cids :groupList){
PushVO pushVO = new PushVO();
- pushVO.setCIds(cIdList);
+ pushVO.setCIds(cids);
pushVO.setTitle(messageRecordList.get(0).getTheme());
pushVO.setContent(messageRecordList.get(0).getContent());
- HashMap<String,Object> payload = new HashMap<>();
- payload.put("title",messageRecordList.get(0).getTheme());
- payload.put("content",messageRecordList.get(0).getContent());
- payload.put("payload","test");
+ HashMap<String, Object> payload = new HashMap<>();
+ payload.put("title", messageRecordList.get(0).getTheme());
+ payload.put("content", messageRecordList.get(0).getContent());
+ payload.put("payload", "test");
pushVO.setPayload(payload);
- pushMessage(pushVO);
+ push = pushMessage(pushVO);
+ }
- });
- return true;
+ return push;
}
/**
* 新增测试信息
+ *
* @param messageRecordList
*/
private void addSendMsgTest(List<MessageRecord> messageRecordList) {
@@ -120,10 +122,10 @@
cIdList.add(clientIdByUserId);
pushVO.setCIds(cIdList);
- HashMap<String,Object> payload = new HashMap<>();
- payload.put("title",pushVO.getTitle());
- payload.put("content",pushVO.getContent());
- payload.put("payload","test");
+ HashMap<String, Object> payload = new HashMap<>();
+ payload.put("title", pushVO.getTitle());
+ payload.put("content", pushVO.getContent());
+ payload.put("payload", "test");
pushVO.setPayload(payload);
@@ -136,6 +138,32 @@
cIdList.add(getClientIdByUserId(pushVO.getUserId()));
// return geTuiUtils.pushMsg(cIdList, pushVO.getTitle(), pushVO.getContent());
return geTuiUtils.myPushMessage(cIdList, pushVO.getTitle(), pushVO.getContent());
+ }
+
+ @Override
+ public Boolean pushMessageByUserList(PushVO pushVO) {
+
+ if (Func.isEmpty(pushVO.getUserId())) {
+ throw new ServiceException("请填写用户id!");
+ }
+
+ //获取userIdList
+ List<String> userIdList = Arrays.asList(pushVO.getUserId().split(","));
+ List<MessageRecord> messageRecordList = new ArrayList<>();
+
+ userIdList.forEach(userId->{
+ MessageRecord messageRecord = new MessageRecord();
+
+ messageRecord.setContent(pushVO.getContent());
+ messageRecord.setTheme(pushVO.getTitle());
+ messageRecord.setRecipient(userId);
+
+ messageRecordList.add(messageRecord);
+ });
+
+ Boolean aBoolean = pushMessageList(messageRecordList);
+
+ return aBoolean;
}
/**
@@ -169,7 +197,7 @@
params.put("requestId", UUID.randomUUID());
- params.put("payload",pushVO.getPayload());
+ params.put("payload", pushVO.getPayload());
UniCloudReturnRes uniCloudReturnRes = template.postForObject(UNI_CLOUD_PUSH_URL, params, UniCloudReturnRes.class);
return uniCloudReturnRes.getErrCode().equals("0") ? true : false;
@@ -177,12 +205,13 @@
/**
* 对集合按指定数量进行分组
- * @param list 分组的集合
+ *
+ * @param list 分组的集合
* @param quantity 数量
* @param <T>
* @return
*/
- public <T> List<List<T>> groupListByQuantity(List list, int quantity) {
+ public <T> List<List<T>> groupListByQuantity(List list, int quantity) {
if (list == null || list.size() == 0) {
return list;
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java
index ba30ad2..48ca6f4 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java
@@ -17,4 +17,5 @@
private String userId;
private HashMap<String,Object> payload;
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml
index bc59eea..7d0bbbb 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml
@@ -26,6 +26,12 @@
<if test="messageRecord.source!=null and messageRecord.source!=''">
and source = #{messageRecord.source}
</if>
+
+ <if test="messageRecord.createTime != null">
+ AND DATE_FORMAT(create_time,'%Y-%m-%d') = DATE_FORMAT(#{messageRecord.createTime},'%Y-%m-%d')
+ </if>
+
+
ORDER BY ID DESC
</select>
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
index af62c8e..5413003 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
@@ -61,7 +61,7 @@
<if test="param1!=null">
<choose>
<when test="param2.super!=null and param1==0">
- and menu.parent_id = #{param1} and (menu.name = 'web' or menu.name = 'newWeb' or menu.name = 'app')
+ and menu.parent_id = #{param1} and (menu.name = 'web' or menu.name = 'newWeb' or menu.name='superWeb' or menu.name = 'app')
</when>
<otherwise>
and menu.parent_id = #{param1}
@@ -533,7 +533,7 @@
<!--查询菜单列表(排除 web,app 之外的菜单)-->
<select id="grantTreeNew" resultMap="treeNodeResultMap">
select id, parent_id, name as title, id as "value", id as "key" from blade_menu
- where is_deleted = 0 start with ( name = 'web' or name = 'app' or name = 'newWeb') CONNECT BY PRIOR id = parent_id order by sort asc
+ where is_deleted = 0 start with ( name = 'web' or name = 'app' or name = 'newWeb' or name ='superWeb') CONNECT BY PRIOR id = parent_id order by sort asc
</select>
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
index dfec50d..13036c9 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
@@ -319,6 +319,7 @@
List<MenuVO> list = routes.stream().filter(r -> Func.equals(r.getAlias(), "web")).collect(Collectors.toList());
list.addAll(routes.stream().filter(r -> Func.equals(r.getAlias(), "newWeb")).collect(Collectors.toList()));
+ list.addAll(routes.stream().filter(r -> Func.equals(r.getAlias(), "superWeb")).collect(Collectors.toList()));
if (list.size()>0){
MenuVO menuVO = list.get(0);
// int level = 0;
--
Gitblit v1.9.3