package com.matrix.system.padApi.action; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.RSAUtils; import com.matrix.core.tools.UUIDUtil; import com.matrix.system.app.vo.UserInfoVo; import com.matrix.system.common.authority.DefaultAuthorityManager; import com.matrix.system.common.authority.strategy.AccountPasswordLogin; import com.matrix.system.common.authority.strategy.LoginStrategy; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.dao.SysCompanyDao; import com.matrix.system.common.init.LocalCache; import com.matrix.system.common.service.SysUsersService; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.dao.SysShopInfoDao; import com.matrix.system.hive.service.SysShopInfoService; import com.matrix.system.padApi.dto.WebPadLoginDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "*") @Api(value = "PadApiCommonAction", tags = "pad端公共请求类(含登陆)") @RestController @RequestMapping(value = "/api/common/pad") public class PadApiCommonAction { @Autowired private SysUsersService sysUsersService; @Autowired private DefaultAuthorityManager authorityManager; @Autowired SysShopInfoDao sysShopInfoDao; @Autowired SysCompanyDao sysCompanyDao; @Autowired private SysShopInfoService sysShopInfoService; @Value("${login_public_key}") private String publicKey; @ApiOperation(value = "登陆接口", notes = "pad端登陆接口") @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = UserInfoVo.class) }) @PostMapping(value = "/login") public AjaxResult dologin(@RequestBody @Validated WebPadLoginDto loginDto) throws Exception { SysUsers user = new SysUsers(); user.setSuAccount(loginDto.getUsername()); user.setSuPassword(loginDto.getPassword()); LoginStrategy apLogin = new AccountPasswordLogin(user, sysUsersService); user = authorityManager.login(apLogin); UserInfoVo userInfoVo = new UserInfoVo(); if(user.getShopId()!=null){ SysShopInfo shopInfo = sysShopInfoService.findById(user.getShopId()); user.setShopName(shopInfo.getShopName()); userInfoVo.setShopName(shopInfo.getShopShortName()); } user.setSuPassword(null); String token = UUIDUtil.getRandomID(); LocalCache.save(token, user); userInfoVo.setId(user.getSuId()); userInfoVo.setName(user.getSuName()); userInfoVo.setRoleName(user.getRoleName()); userInfoVo.setPhoto(user.getSuPhoto()); String sb = token + "_1" + "_/api/vip/findVipInfoById/972"; AjaxResult result = AjaxResult.buildSuccessInstance("登陆成功"); authorityManager.initUserPower(result); result.putInMap("user", userInfoVo); result.putInMap("token", token); result.putInMap("rasToken", RSAUtils.encryptByPublicKey(sb, publicKey)); return result; } @ApiOperation(value = "用户退出系统", notes = "用户退出系统") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = AjaxResult.class) }) @GetMapping(value = "/loginOut") public AjaxResult loginOut() { authorityManager.getLoginOut(); return AjaxResult.buildSuccessInstance("退出系统成功"); } }