xiaoyong931011
2022-04-18 7e9976fe57ab5133b019a9258e7c054f74e1d2ab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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("退出系统成功");
    }
 
 
}