101captain
2021-09-16 e0be0c7b977895f7ffdec3302ab9a299d17e7c81
一键报警相关功能修改
8个文件已修改
1个文件已添加
284 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnsVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/LoginApi.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java
@@ -197,4 +197,16 @@
        return R.ok(loginReturnVO);
    }
    /**
     * 一键报警APP登录
     * @param account   账号
     * @param password  密码
     * @return  登录结果
     */
    @PostMapping("/loginAlarmApp")
    public R loginAlarmApp(@RequestParam("account") String account, @RequestParam("password") String password) {
        LoginReturnsVO loginReturnVO = loginService.loginAlarmApp(account, password);
        return R.ok(loginReturnVO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java
@@ -103,4 +103,15 @@
     * @return  登录结果
     */
    LoginReturnVO loginCgBackage(String account, String password);
    /**
     * 一键报警APP登录
     *
     * @param account
     *            账户
     * @param password
     *            密码
     * @return 登录结果
     */
    LoginReturnsVO loginAlarmApp(String account, String password);
}
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
@@ -223,4 +223,20 @@
        return loginReturnVO;
    }
    @Override
    public LoginReturnsVO loginAlarmApp(String account, String password) {
        Authentication authentication = null;
        authentication =
                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_9", password));
        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
        String token = JWTTokenUtil.generateToken(loginUser);
        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
        LoginReturnsVO loginReturnVO = new LoginReturnsVO();
        loginReturnVO.setToken(token);
        loginReturnVO.setRefreshToken(refeshToken);
        loginReturnVO.setUserId(loginUser.getUserId());
        loginReturnVO.setCommunityId(loginUser.getCommunityId());
        return loginReturnVO;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnsVO.java
@@ -19,4 +19,6 @@
    private String refreshToken;
    @ApiModelProperty("用户id")
    private Long userId;
    @ApiModelProperty("社区id")
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java
@@ -112,4 +112,13 @@
     */
    @PostMapping("/loginCgBackage")
    R loginCgBackage(@RequestParam("account") String account, @RequestParam("password") String password);
    /**
     * 一键报警APP登录
     * @param account   账号
     * @param password  密码
     * @return  登录结果
     */
    @PostMapping("/loginAlarmApp")
    R loginAlarmApp(@RequestParam("account") String account, @RequestParam("password") String password);
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/LoginApi.java
@@ -2,6 +2,7 @@
import javax.annotation.Resource;
import com.panzhihua.common.model.vos.LoginReturnsVO;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
@@ -73,5 +74,18 @@
        R r = tokenService.loginCgBackage(account, password);
        return r;
    }
    @ApiOperation(value = "一键报警APP登录",response = LoginReturnsVO.class)
    @PostMapping("alarm/login")
    public  R alarmLogin(@RequestBody LoginBody loginBody){
        String account = loginBody.getAccount();
        String password = loginBody.getPassword();
        boolean empty = ObjectUtils.isEmpty(account);
        boolean empty1 = ObjectUtils.isEmpty(password);
        if (empty || empty1) {
            return R.fail("账户密码不能为空");
        }
        R r = tokenService.loginAlarmApp(account, password);
        return r;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml
@@ -28,6 +28,16 @@
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.jpush.api</groupId>
            <artifactId>jpush-client</artifactId>
            <version>3.4.6</version>
        </dependency>
        <dependency>
            <groupId>cn.jpush.api</groupId>
            <artifactId>jiguang-common</artifactId>
            <version>1.1.8</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java
New file
@@ -0,0 +1,156 @@
package com.panzhihua.service_property.util;
import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Message;
import cn.jpush.api.push.model.Options;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.AndroidNotification;
import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
import lombok.extern.slf4j.Slf4j;
import java.util.Map;
/**
 * @ClassName JPushUtil
 * @Description:
 * @Author gzm
 * @Date 2020/6/12 10:14
 **/
@Slf4j
public class JPushUtil {
    /** 设置好账号的app_key和masterSecret是必须的
     用自己创建以用后的APP_KEY和MASTER_SECRET
     替换即可,后期可写到yml配置文件中*/
    private static String APP_KEY = "a13e73a76eb2a9abd434451c";
    private static String MASTER_SECRET = "98d696e5ae5bfb329cd32a8e";
    // 极光推送>>Android
    //Map<String, String> parm是我自己传过来的参数,可以自定义参数
    public static void jpushAndroid(Map<String, String> parm) {
        // 创建JPushClient(极光推送的实例)
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
        // 推送的关键,构造一个payload
        PushPayload payload = PushPayload.newBuilder()
                // 指定android平台的用户
                .setPlatform(Platform.android())
                // 你项目中的所有用户
                .setAudience(Audience.all())
//                .setAudience(Audience.alias(parm.get("alias"))) // 设置别名发送,单发,点对点方式
                //.setAudience(Audience.tag("tag1")) // 设置按标签发送,相当于群发
//                .setAudience(Audience.registrationId(parm.get("id"))) // registrationId指定用户
                // 发送内容
                .setNotification(Notification.android(parm.get("msg"),
                        parm.get("title"), parm))
                // apnProduction指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式) 不用设置也没关系
                // TimeToLive 两个小时的缓存时间
                .setOptions(Options.newBuilder().setApnsProduction(true).setTimeToLive(7200).build())
                // 自定义信息
                .setMessage(Message.content(parm.get("msg")))
                .build();
        try {
            PushResult pu = jpushClient.sendPush(payload);
            System.out.println(pu.toString());
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }
    }
    // 极光推送>>ios
    // Map<String, String> parm是我自己传过来的参数,可以自定义参数
    public static  void jpushIOS(Map<String, String> parm) {
        // 创建JPushClient
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
        PushPayload payload = PushPayload.newBuilder()
                // ios平台的用户
                .setPlatform(Platform.ios())
                // 所有用户
                .setAudience(Audience.all())
                // registrationId指定用户
                //.setAudience(Audience.registrationId(parm.get("id")))
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(IosNotification.newBuilder()
                                .setAlert(parm.get("msg"))
                                .setBadge(+1)
                                // 这里是设置提示音
                                .setSound("happy")
                                .addExtras(parm)
                                .build())
                        .build())
                .setOptions(Options.newBuilder().setApnsProduction(false).build())
                // 自定义信息
                .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())
                .build();
        try {
            PushResult pu = jpushClient.sendPush(payload);
            log.info(String.valueOf(pu));
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }
    }
    // 极光推送>>All所有平台
    public static void jpushAll(Map<String, String> param) {
        // 创建JPushClient
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
        // 创建option
        PushPayload payload = PushPayload.newBuilder()
                // 所有平台的用户
                .setPlatform(Platform.all())
                // registrationId指定用户
                .setAudience(Audience.registrationId(param.get("id")))
                .setNotification(Notification.newBuilder()
                        // 发送ios
                        .addPlatformNotification(IosNotification.newBuilder()
                                // 消息体
                                .setAlert(param.get("msg"))
                                .setBadge(+1)
                                // ios提示音
                                .setSound("happy")
                                // 附加参数
                                .addExtras(param)
                                .build())
                        // 发送android
                        .addPlatformNotification(AndroidNotification.newBuilder()
                                // 附加参数
                                .addExtras(param)
                                // 消息体
                                .setAlert(param.get("msg"))
                                .build())
                        .build())
                // 指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式)
                .setOptions(Options.newBuilder().setApnsProduction(true).build())
                // 自定义信息
                .setMessage(Message.newBuilder().setMsgContent(param.get("msg")).addExtras(param).build())
                .build();
        try {
            PushResult pu = jpushClient.sendPush(payload);
            log.info(String.valueOf(pu));
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java
@@ -195,6 +195,15 @@
                    sysMenuDOS1.forEach(sysMenuDO1 -> {
                        SysMenuVO sysMenuVO1 = new SysMenuVO();
                        BeanUtils.copyProperties(sysMenuDO1, sysMenuVO1);
                        List<SysMenuDO> sysMenuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
                                .eq(SysMenuDO::getParentId, sysMenuDO1.getMenuId()).orderByAsc(SysMenuDO::getOrderNum));
                        List<SysMenuVO> sysMenuVOList=new ArrayList<>();
                        sysMenuDOList.forEach(sysMenuDO2 -> {
                            SysMenuVO sysMenuVO2=new SysMenuVO();
                            BeanUtils.copyProperties(sysMenuDO2,sysMenuVO2);
                            sysMenuVOList.add(sysMenuVO2);
                        });
                        sysMenuVO1.setSysMenuVOList(sysMenuVOList);
                        sysMenuVOS1.add(sysMenuVO1);
                    });
                    sysMenuVO.setSysMenuVOList(sysMenuVOS1);
@@ -263,26 +272,30 @@
        List<Long> collect =
            sysRoleMenuDOS.stream().map(sysRoleMenuDO -> sysRoleMenuDO.getMenuId()).collect(Collectors.toList());
        List<SysMenuDO> sysMenuDOS =
            sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().in(SysMenuDO::getMenuId, collect));
            sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().in(SysMenuDO::getMenuId, collect).eq(SysMenuDO::getParentId,0));
        List<SysMenuVO> sysMenuVOS = new ArrayList<>();
        sysMenuDOS.forEach(sysMenuDO -> {
            SysMenuVO sysMenuVO = new SysMenuVO();
            List<SysMenuVO> menuVOS=new ArrayList<>();
            BeanUtils.copyProperties(sysMenuDO, sysMenuVO);
            List<SysMenuDO> sysMenuDOList=sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getParentId,sysMenuDO.getMenuId()).in(SysMenuDO::getMenuId, collect));
            sysMenuDOList.forEach(sysMenuDO1->{
                SysMenuVO sysMenuVO1 = new SysMenuVO();
                List<SysMenuVO> sysMenuVOList=new ArrayList<>();
                BeanUtils.copyProperties(sysMenuDO1, sysMenuVO1);
                List<SysMenuDO> sysMenuDOList1=sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getParentId,sysMenuDO1.getMenuId()).in(SysMenuDO::getMenuId, collect));
                sysMenuDOList1.forEach(sysMenuDO2 -> {
                    SysMenuVO sysMenuVO2=new SysMenuVO();
                    BeanUtils.copyProperties(sysMenuDO2,sysMenuVO2);
                    sysMenuVOList.add(sysMenuVO2);
                });
                sysMenuVO1.setSysMenuVOList(sysMenuVOList);
                menuVOS.add(sysMenuVO1);
            });
            sysMenuVO.setSysMenuVOList(menuVOS);
            sysMenuVOS.add(sysMenuVO);
        });
        List<SysMenuVO> collect1 =
            sysMenuVOS.stream().filter(sysMenuVO -> sysMenuVO.getParentId() == 0).collect(Collectors.toList());
        if (!ObjectUtils.isEmpty(collect1)) {
            collect1.forEach(sysMenuVO -> {
                Long menuId = sysMenuVO.getMenuId();
                List<SysMenuVO> sysMenuVOS1 =
                    sysMenuVOS.stream().filter(sysMenuVO1 -> sysMenuVO1.getParentId().intValue() == menuId.intValue())
                        .collect(Collectors.toList());
                sysMenuVO.setSysMenuVOList(sysMenuVOS1);
            });
        }
        return R.ok(collect1);
        return R.ok(sysMenuVOS);
    }
    /**
@@ -294,22 +307,13 @@
     */
    @Override
    public R listMenuBackstageByRole(Long roleId) {
        List<SysMenuVO> sysMenuVOS = new ArrayList<>();
        List<SysRoleMenuDO> sysRoleMenuDOS =
            sysRoleMenuDAO.selectList(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId));
        if (!ObjectUtils.isEmpty(sysRoleMenuDOS)) {
            List<Long> longs =
                sysRoleMenuDOS.stream().map(sysRoleMenuDO -> sysRoleMenuDO.getMenuId()).collect(Collectors.toList());
            List<SysMenuDO> sysMenuDOS =
                sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().in(SysMenuDO::getMenuId, longs));
            if (!ObjectUtils.isEmpty(sysMenuDOS)) {
                sysMenuDOS.forEach(sysMenuDO -> {
                    SysMenuVO sysMenuVO1 = new SysMenuVO();
                    BeanUtils.copyProperties(sysMenuDO, sysMenuVO1);
                    sysMenuVOS.add(sysMenuVO1);
                });
            }
                return R.ok(longs);
        }
        return R.ok(sysMenuVOS);
        return R.fail();
    }
}