|
@ -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);
|
|
|
}
|
|
|
}
|