You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
230 lines
7.9 KiB
230 lines
7.9 KiB
using CA_Platform_Linker.Models.Coss;
|
|
using CA_Platform_Linker.Models.DTO;
|
|
using CA_Platform_Linker.Services.Interfaces;
|
|
using CA_Platform_Linker.Tools;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace CA_Platform_Linker.Controllers
|
|
{
|
|
[Route("[controller]/[action]")]
|
|
[ApiController]
|
|
public class ClientController : ControllerBase
|
|
{
|
|
private readonly IClientService _clientService;
|
|
|
|
public ClientController(IClientService clientService)
|
|
{
|
|
_clientService = clientService;
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> Login([FromQuery] string clientType = "LIS")
|
|
{
|
|
try
|
|
{
|
|
|
|
var result = await _clientService.StartAutoSignAsync(clientType, 3600 * 24);
|
|
LogHelper.Log.Info(result.ToString());
|
|
if (result.status == "200")
|
|
{
|
|
return Ok(new ApiLoginResponse
|
|
{
|
|
Success = true,
|
|
Message = "二维码生成成功,请扫码登录",
|
|
SignDataId = result.data.signDataId,
|
|
QrCode = result.data.qrCode
|
|
});
|
|
}
|
|
else
|
|
{
|
|
return BadRequest(new ApiLoginResponse
|
|
{
|
|
Success = false,
|
|
Message = $"二维码生成失败: {result.message}"
|
|
});
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Log.Error($"二维码生成失败: {ex.Message}");
|
|
return BadRequest(new ApiLoginResponse
|
|
{
|
|
Success = false,
|
|
Message = $"二维码生成失败: {ex.Message}"
|
|
});
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> AddSignJob([FromBody] ApiSignRequest request, [FromQuery] string clientType = "LIS")
|
|
{
|
|
return BadRequest(new ApiSignResponse
|
|
{
|
|
Success = false,
|
|
Message = "接口已停用,请使用 AutoSign 接口"
|
|
});
|
|
|
|
try
|
|
{
|
|
var result = await _clientService.AddSignJobAsync(
|
|
clientType,
|
|
request.Title,
|
|
request.Data,
|
|
request.UserId,
|
|
request.Algo,
|
|
request.ExpiryDate
|
|
);
|
|
|
|
if (result.status == "200")
|
|
{
|
|
return Ok(new ApiSignResponse
|
|
{
|
|
Success = true,
|
|
Message = "添加签名任务成功",
|
|
SignDataId = result.data.signDataId,
|
|
QrCode = result.data.qrCode
|
|
});
|
|
}
|
|
else
|
|
{
|
|
return BadRequest(new ApiSignResponse
|
|
{
|
|
Success = false,
|
|
Message = $"添加签名任务失败: {result.message}"
|
|
});
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Log.Error($"添加签名任务失败: {ex.Message}");
|
|
return BadRequest(new ApiSignResponse
|
|
{
|
|
Success = false,
|
|
Message = $"添加签名任务失败: {ex.Message}"
|
|
});
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> AutoSign([FromBody] ApiAutoSignRequest request, [FromQuery] string clientType = "LIS", [FromQuery] int clientOper = 0)
|
|
{
|
|
try
|
|
{
|
|
if (clientOper < 0 || clientOper > 99)
|
|
{
|
|
return BadRequest(new ApiAutoSignResponse
|
|
{
|
|
Success = false,
|
|
Message = "clientOper 参数值必须在 0-99 范围内"
|
|
});
|
|
}
|
|
|
|
var result = await _clientService.AutoSignAsync(
|
|
clientType,
|
|
request.UserId,
|
|
request.SignToken,
|
|
request.Data,
|
|
request.Algo,
|
|
request.ExpiryDate,
|
|
request.MZNum,
|
|
request.ZYNum,
|
|
request.SignID,
|
|
clientOper
|
|
);
|
|
|
|
if (result.status == "200")
|
|
{
|
|
return Ok(new ApiAutoSignResponse
|
|
{
|
|
Success = true,
|
|
Message = "自动签名成功",
|
|
SignResult = result.data.signResult,
|
|
SignCert = result.data.signCert,
|
|
SignDataId = result.data.signDataId
|
|
});
|
|
}
|
|
else
|
|
{
|
|
LogHelper.Log.Error($"自动签名失败: {result.message}");
|
|
return BadRequest(new ApiAutoSignResponse
|
|
{
|
|
Success = false,
|
|
Message = $"自动签名失败: {result.message}"
|
|
});
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Log.Error($"自动签名失败: {ex.Message}");
|
|
return BadRequest(new ApiAutoSignResponse
|
|
{
|
|
Success = false,
|
|
Message = $"自动签名失败: {ex.Message}"
|
|
});
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> GetSignResult([FromBody] ApiGetSignResultRequest request, [FromQuery] string clientType = "LIS")
|
|
{
|
|
try
|
|
{
|
|
var result = await _clientService.GetSignResultAsync(clientType, request.SignDataId);
|
|
|
|
if (result.status == "200")
|
|
{
|
|
string message = "查询中";
|
|
bool isLoginSuccess = false;
|
|
|
|
if (result.data.jobStatus == "FINISH")
|
|
{
|
|
message = "登录成功";
|
|
isLoginSuccess = true;
|
|
}
|
|
else if (result.data.jobStatus == "PROCESSING")
|
|
{
|
|
message = "等待扫码";
|
|
}
|
|
else if (result.data.jobStatus == "FAIL")
|
|
{
|
|
message = "签名失败";
|
|
}
|
|
else if (result.data.jobStatus == "TIMEOUT")
|
|
{
|
|
message = "登录超时";
|
|
}
|
|
|
|
return Ok(new ApiGetSignResultResponse
|
|
{
|
|
Success = true,
|
|
Message = message,
|
|
JobStatus = result.data.jobStatus,
|
|
SignResult = result.data.signResult,
|
|
SignCert = result.data.signCert,
|
|
UserId = result.data.msspId,
|
|
IsLoginSuccess = isLoginSuccess
|
|
});
|
|
}
|
|
else
|
|
{
|
|
return BadRequest(new ApiGetSignResultResponse
|
|
{
|
|
Success = false,
|
|
Message = $"获取签名结果失败: {result.message}"
|
|
});
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Log.Error($"获取签名结果失败: {ex.Message}");
|
|
return BadRequest(new ApiGetSignResultResponse
|
|
{
|
|
Success = false,
|
|
Message = $"获取签名结果失败: {ex.Message}"
|
|
});
|
|
}
|
|
}
|
|
}
|
|
} |