package com.matrix.system.app.action; import com.alibaba.fastjson.JSONObject; import com.matrix.component.redis.RedisClient; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.UUIDUtil; import com.matrix.system.app.dto.LoginDto; 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.service.SysUsersService; import com.matrix.system.hive.service.SysShopInfoService; 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.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author wzy * @date 2020-12-21 **/ @Api(value = "CommonAction", tags = "手机端公共请求类(含登陆)") @RestController @RequestMapping(value = "/api/common") public class ApiCommonAction { @Autowired private SysUsersService sysUsersService; @Autowired private SysShopInfoService sysShopInfoService; @Autowired private DefaultAuthorityManager authorityManager; @Autowired private RedisClient redisClient; @ApiOperation(value = "登陆接口", notes = "手机端登陆接口") @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = UserInfoVo.class) }) @PostMapping(value = "/login") public AjaxResult login(@RequestBody @Validated LoginDto loginDto) { SysUsers user = new SysUsers(); user.setSuAccount(loginDto.getUsername()); user.setSuPassword(loginDto.getPassword()); LoginStrategy apLogin = new AccountPasswordLogin(user, sysUsersService); user = authorityManager.login(apLogin); if(user.getShopId()!=null){ user.setShopName(sysShopInfoService.findById(user.getShopId()).getShopName()); } user.setSuPassword(null); String token = UUIDUtil.getRandomID(); redisClient.saveValueForever(token, JSONObject.toJSONString(user)); redisClient.saveValueForever(user.getSuId().toString(), token); UserInfoVo userInfoVo = new UserInfoVo(); userInfoVo.setId(user.getSuId()); userInfoVo.setName(user.getSuName()); userInfoVo.setRoleName(user.getRoleName()); userInfoVo.setPhoto(user.getSuPhoto()); AjaxResult result = AjaxResult.buildSuccessInstance("登陆成功"); result.putInMap("user", userInfoVo); result.putInMap("token", token); return result; } }