CZT
2023-11-27 c206acfaedc69c390fb67daa81bc686f58a212ef
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.ld.igds.phone35.controller;
 
import com.alibaba.fastjson.JSONObject;
import com.ld.igds.camera.data.ApiCameraData;
import com.ld.igds.camera.data.ApiCameraResp;
import com.ld.igds.constant.RespCodeEnum;
import com.ld.igds.phone35.dto.Phone35AuthUser;
import com.ld.igds.phone35.dto.PhoneResponse;
import com.ld.igds.phone35.manager.Phone35Manager;
import com.ld.igds.phone35.param.Phone35Request;
import com.ld.igds.phone35.util.PhoneRespUtil;
import com.ld.igds.sec.manager.SecManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
 
/**
 * 手机APP服务路由接口
 *
 * @author chen
 */
@Controller
@RequestMapping("api-phone/v35")
public class Phone35Controller {
    @Autowired
    private Phone35Manager phone35Manager;
    @Autowired
    private SecManager securityManager;
 
    /**
     * 登录入口
     * @param req
     * @return
     */
    @SuppressWarnings("unchecked")
    @ResponseBody
    @RequestMapping("/login")
    public PhoneResponse<Object> phoneLogin(@RequestBody Phone35Request<JSONObject> req){
 
        //判断参数
        if(null == req){
            return PhoneRespUtil.error(RespCodeEnum.CODE_1007,RespCodeEnum.CODE_1007.getMsg());
        }
 
        PhoneResponse<Object> result = PhoneRespUtil.error(RespCodeEnum.CODE_1111,RespCodeEnum.CODE_1111.getMsg());
 
        try {
            //执行业务操作
            result = phone35Manager.execute(req,null);
        } catch (Exception e) {
            result = PhoneRespUtil.error(RespCodeEnum.CODE_1111,
                    "后端异常:" + e.getMessage());
        }
 
        return result;
    }
 
    /**
     * 业务分发入口
     * @param req
     * @return
     */
    @SuppressWarnings("unchecked")
    @ResponseBody
    @RequestMapping("/gateway")
    public PhoneResponse<Object> phoneGateway(@RequestBody Phone35Request<JSONObject> req) {
 
        //判断参数
        if (null == req) {
            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, RespCodeEnum.CODE_1007.getMsg());
        }
 
        //判断接口编码
        if (null == req.getInterfaceId()) {
            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, RespCodeEnum.CODE_1007.getMsg());
        }
 
        //获取用户信息,如果有则更新,如果没有则跳出
        Phone35AuthUser phone35AuthUser = phone35Manager.checkTokenAuth(req);
        if (null == phone35AuthUser) {
            return PhoneRespUtil.error(RespCodeEnum.CODE_1006, "您登录已超时,请重新登录!");
        }
 
        PhoneResponse<Object> result = PhoneRespUtil.error(RespCodeEnum.CODE_1111, RespCodeEnum.CODE_1111.getMsg());
 
        try {
 
            //执行业务操作
            result = phone35Manager.execute(req, phone35AuthUser);
 
        } catch (Exception e) {
            result = PhoneRespUtil.error(RespCodeEnum.CODE_1111,
                    "后端异常:" + e.getMessage());
        }
        return result;
    }
 
    /**
     * 值仓上传
     * @param files
     * @param req
     * @return
     * @throws IOException
     */
    @ResponseBody
    @RequestMapping("/upload-img")
    public PhoneResponse<Object> phoneUploadImg(
            @RequestParam("uploadkey") MultipartFile[] files,
            HttpServletRequest req) throws IOException {
 
        return phone35Manager.phoneUploadImg(files[0],req);
    }
 
    /**
     * 视频保活
     * @param param
     * @return
     */
    @ResponseBody
    @RequestMapping("/keep-alive")
    public ApiCameraResp keepAlive(@RequestBody ApiCameraData param) {
        return securityManager.keepAlive(param);
    }
}