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("退出系统成功");
|
}
|
|
|
}
|