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, 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 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); } 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; } 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; } 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> 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> 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;