Parcourir la source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

trick9191 il y a 7 ans
Parent
commit
0ef98379e1

+ 50 - 24
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/gateway/controller/GcTokenController.java

@ -3,9 +3,11 @@ package com.yihu.wlyy.web.gateway.controller;
import com.fasterxml.jackson.databind.deser.Deserializers;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.gateway.GcClientDetails;
import com.yihu.wlyy.entity.gateway.GcHttpLog;
import com.yihu.wlyy.entity.gateway.GcToken;
import com.yihu.wlyy.entity.login.LoginLog;
import com.yihu.wlyy.entity.security.Token;
import com.yihu.wlyy.repository.gateway.GcHttpLogDao;
import com.yihu.wlyy.service.common.account.DoctorService;
import com.yihu.wlyy.service.common.account.TokenService;
import com.yihu.wlyy.service.common.login.LoginLogService;
@ -22,6 +24,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
@ -45,6 +48,8 @@ public class GcTokenController {
    private GcTokenService gcTokenService;
    @Autowired
    private GcClientDetailsService clientDetailsService;
    @Autowired
    private GcHttpLogDao httpLogDao;
    @ApiOperation("获取accesstoken")
    @RequestMapping(value = "accesstoken", method = RequestMethod.POST)
@ -52,33 +57,54 @@ public class GcTokenController {
            @ApiParam(name = "appid", value = "appid", required = true) @RequestParam(required = true, value = "appid") String appid,
            @ApiParam(name = "appSecret", value = "appSecret", required = true) @RequestParam(required = true, value = "appSecret") String appSecret,
            HttpServletRequest request) {
        //得到用户
        GcClientDetails clientDetails = clientDetailsService.findByAppId(appid);
        if (clientDetails == null) {
            ResultOneModel resultOneModel = new ResultOneModel(null);
            resultOneModel.setCode(BaseResultModel.codeEm.error_Appid.getCode());
            resultOneModel.setMessage(BaseResultModel.codeEm.error_Appid.getMessage());
            return resultOneModel;
        }
        //判断appSecret
        if (!appSecret.equals(clientDetails.getAppSecret())) {
            ResultOneModel resultOneModel = new ResultOneModel(null);
            resultOneModel.setCode(BaseResultModel.codeEm.error_AppSecret.getCode());
            resultOneModel.setMessage(BaseResultModel.codeEm.error_AppSecret.getMessage());
            return resultOneModel;
        }
        //生成token
        GcToken gcToken = null;
        String ip = "";
        try {
            gcToken = gcTokenService.createToken(appid, appSecret, NetworkUtil.getIpAddress(request));
        } catch (IOException e) {
            e.printStackTrace();
            ip = NetworkUtil.getIpAddress(request);
            //得到用户
            GcClientDetails clientDetails = clientDetailsService.findByAppId(appid);
            if (clientDetails == null) {
                ResultOneModel resultOneModel = new ResultOneModel(null);
                resultOneModel.setCode(BaseResultModel.codeEm.error_Appid.getCode());
                resultOneModel.setMessage(BaseResultModel.codeEm.error_Appid.getMessage());
                saveHttpLog(ip, new JSONObject(request.getParameterMap()).toString(), "", "", request.getRequestURI(), 0, BaseResultModel.codeEm.error_Appid.getMessage());
                return resultOneModel;
            }
            //判断appSecret
            if (!appSecret.equals(clientDetails.getAppSecret())) {
                ResultOneModel resultOneModel = new ResultOneModel(null);
                resultOneModel.setCode(BaseResultModel.codeEm.error_AppSecret.getCode());
                resultOneModel.setMessage(BaseResultModel.codeEm.error_AppSecret.getMessage());
                saveHttpLog(ip, new JSONObject(request.getParameterMap()).toString(), "", "", request.getRequestURI(), 0, BaseResultModel.codeEm.error_Appid.getMessage());
                return resultOneModel;
            }
            //生成token
            GcToken gcToken = null;
            try {
                gcToken = gcTokenService.createToken(appid, appSecret, NetworkUtil.getIpAddress(request));
                saveHttpLog(ip, new JSONObject(request.getParameterMap()).toString(), new JSONObject(gcToken).toString(), gcToken.getAccesstoken(), request.getRequestURI(), 1, "成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
            GcTokenModel gcTokenModel = new GcTokenModel();
            BeanUtils.copyProperties(gcToken, gcTokenModel);
            return new ResultOneModel(gcTokenModel);
        } catch (Exception e) {
            saveHttpLog(ip, new JSONObject(request.getParameterMap()).toString(), "", "", request.getRequestURI(), 0, BaseResultModel.codeEm.login_system_error.getMessage());
            return new ResultOneModel(BaseResultModel.codeEm.login_system_error.getCode(), BaseResultModel.codeEm.login_system_error.getMessage());
        }
        GcTokenModel gcTokenModel = new GcTokenModel();
        BeanUtils.copyProperties(gcToken, gcTokenModel);
        return new ResultOneModel(gcTokenModel);
    }
    private void saveHttpLog(String ip, String input, String output, String token, String method, Integer flag, String message) {
        GcHttpLog gcHttpLog = new GcHttpLog();
        gcHttpLog.setCreateTime(new Date());
        gcHttpLog.setIp(ip);
        gcHttpLog.setInput(input);
        gcHttpLog.setOutput(output);
        gcHttpLog.setToken(token);
        gcHttpLog.setMethod(method);
        gcHttpLog.setFlag(flag);
        gcHttpLog.setMessage(message);
        httpLogDao.save(gcHttpLog);
    }
}