zhongrj
2023-10-11 c764c7cf8eb8080180fbb61b7cd78f86adc2a119
Merge branch 'jtdev' of https://hbsl-code.gistack.cn/hbwri/manager into jtdev
8 files modified
116 ■■■■ changed files
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java 28 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/controller/PushController.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/IPushService.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java 61 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/vo/PushVO.java 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/message/mapper/MessageRecordMapper.xml 6 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java 1 ●●●● patch | view | raw | blame | history
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;