package com.panzhihua.auth.api; import javax.annotation.Resource; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.interfaces.OperLog; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import com.panzhihua.auth.model.dos.LoginBody; import com.panzhihua.auth.service.LoginService; import com.panzhihua.common.exceptions.TokenException; import com.panzhihua.common.model.vos.LoginReturnVO; import com.panzhihua.common.model.vos.LoginReturnsVO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.utlis.JWTTokenUtil; import io.jsonwebtoken.Claims; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 登录\登出 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-11-19 16:56 **/ @RestController @RequestMapping("/") public class LoginApi extends BaseController { @Resource private LoginService loginService; /** * 小程序登录 * * @param openId * 微信标识 * @return jwt */ @OperLog(operModul = "小程序登录") @PostMapping("/loginApplets") public R loginApplets(@RequestParam("openId") String openId,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginApplets(openId,appid); return R.ok(loginReturnVO); } /** * 用户登出 * * @param token * 登录用户token * @return 登出结果 */ @OperLog(operModul = "用户退出登录") @PostMapping("/logout") public R logout(@RequestParam("token") String token) { loginService.logoutApplets(token); return R.ok(); } /** * 运营后台登录 * * @param account * 账户 * @param password * 密码 * @return 登录结果 */ @OperLog(operModul = "运营后台登录") @PostMapping("/loginAppletsBackStage") public R loginAppletsBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginAppletsBackStage(account, password,appid); return R.ok(loginReturnVO); } /** * 大数据统计平台(区、街道、社区三层登陆接口) * * @param loginBody * 账户 * @return 登录结果 * @author manailin * @date 2021-5-13 10:56 */ @OperLog(operModul = "大数据统计平台(区、街道、社区三层登陆接口)") @PostMapping("/loginBigDataBackStage") public R loginBigDataBackStage(@RequestBody LoginBody loginBody) { String account = loginBody.getAccount(); String password = loginBody.getPassword(); if (ObjectUtils.isEmpty(account) || ObjectUtils.isEmpty(password)) { return R.fail("账户密码不能为空"); } LoginReturnVO loginReturnVO = loginService.loginBigDataBackStage(account, password,this.getAppId()); return R.ok(loginReturnVO); } /** * 社区后台登录 * * @param account * 账户 * @param password * 密码 * @return 登录结果 */ @OperLog(operModul = "社区后台登录") @PostMapping("/loginCommunityBackage") public R loginCommunityBackage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginCommunityBackage(account, password,appid); return R.ok(loginReturnVO); } /** * 认证中心刷新token * * @param refreshToken * 用户端保存的刷新token * @return 新的token 和刷新token */ @PostMapping("/refreshToken") public R refreshToken(@RequestParam("refreshToken") String refreshToken) { Boolean expired = JWTTokenUtil.isTokenExpired(refreshToken); if (expired) { throw new TokenException("刷新token已过期"); } Claims claims = JWTTokenUtil.getClaimsFromToken(refreshToken); boolean empty = ObjectUtils.isEmpty(claims); if (empty) { throw new TokenException("刷新token校验失败"); } String subject = claims.getSubject(); Integer type = (Integer)claims.get("type"); boolean empty1 = ObjectUtils.isEmpty(subject); boolean empty2 = ObjectUtils.isEmpty(type); if (empty1 || empty2) { throw new TokenException("刷新token校验失败"); } LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO(); loginUserInfoVO.setUserId(Long.valueOf(subject)); loginUserInfoVO.setType(type); String token = JWTTokenUtil.generateToken(loginUserInfoVO); String refeshToken = JWTTokenUtil.generateRefeshToken(loginUserInfoVO); LoginReturnVO loginReturnVO = new LoginReturnVO(); loginReturnVO.setToken(token); loginReturnVO.setRefreshToken(refeshToken); return R.ok(loginReturnVO); } /** * 认证中心刷新token * * 用户端保存的刷新token * @return 新的token 和刷新token */ @PostMapping("/getNewToken") public R getNewToken(@RequestBody LoginUserInfoVO loginUserInfoVO) { String token = JWTTokenUtil.generateToken(loginUserInfoVO); String refeshToken = JWTTokenUtil.generateRefeshToken(loginUserInfoVO); LoginReturnVO loginReturnVO = new LoginReturnVO(); loginReturnVO.setToken(token); loginReturnVO.setRefreshToken(refeshToken); return R.ok(loginReturnVO); } /** * 商家后台登录 * * @param account * 账户 * @param password * 密码 * @return 登录结果 */ @OperLog(operModul = "商家后台登录") @PostMapping("/loginShopBackStage") public R loginShopBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginShopBackStage(account, password,appid); return R.ok(loginReturnVO); } /** * 网格综治APP登录 * * @param account * 账户 * @param password * 密码 * @return 登录结果 */ @OperLog(operModul = "网格综治app登录") @PostMapping("/loginGridApp") public R loginGridApp(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnsVO loginReturnVO = loginService.loginGridApp(account, password,appid); return R.ok(loginReturnVO); } /** * 网格综治后台登录 * * @param account * 账户 * @param password * 密码 * @return 登录结果 */ @OperLog(operModul = "网格综治后台登录") @PostMapping("/loginGridBackstage") public R loginGridBackstage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginGridBackstage(account, password,appid); return R.ok(loginReturnVO); } /** * 城管后台登录 * @param account 账号 * @param password 密码 * @return 登录结果 */ @OperLog(operModul = "城管后台登录") @PostMapping("/loginCgBackage") public R loginCgBackage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginCgBackage(account, password,appid); return R.ok(loginReturnVO); } /** * 一键报警APP登录 * @param account 账号 * @param password 密码 * @return 登录结果 */ @OperLog(operModul = "一键报警APP登录 ") @PostMapping("/loginAlarmApp") public R loginAlarmApp(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnsVO loginReturnVO = loginService.loginAlarmApp(account, password,appid); return R.ok(loginReturnVO); } /** * 便民服务商家后台登录 * * @param account * 账户 * @param password * 密码 * @return 登录结果 */ @OperLog(operModul = "便民服务商家后台登录 ") @PostMapping("/loginMerchantBackStage") public R loginMerchantBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginMerchantBackStage(account, password,appid); return R.ok(loginReturnVO); } /** * 西区大屏登录 * @param account 账号 * @param password 密码 * @return 登录结果 */ @OperLog(operModul = "西区大屏登录") @PostMapping("/loginXQDP") public R loginXQDP(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginXQDP(account, password,appid); return R.ok(loginReturnVO); } /** * 微商业街用户登录 * * @param account * 账户 * @param password * 密码 * @return 登录结果 */ @PostMapping("/loginMcsUser") @OperLog(operModul = "微商业街用户登录") public R loginMcsUser(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginMcsUser(account, password,appid); return R.ok(loginReturnVO); } @GetMapping("/tfLogin") public R tfLogin(@RequestParam("account")String account,@RequestParam("password")String password,@RequestParam("appid")String appid){ LoginReturnVO loginReturnVO=loginService.tfLogin(account,password,appid); return R.ok(loginReturnVO); } /** * 电动车商城后台用户登录 * * @param account * 账户 * @param password * 密码 * @return 登录结果 */ @PostMapping("/loginBatteryUser") public R loginBatteryUser(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) { LoginReturnVO loginReturnVO = loginService.loginBatteryUser(account, password,appid); return R.ok(loginReturnVO); } }