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